CubicWeb - The Semantic Web is a construction game! — CubicWeb 3.10.1

### Navigation

- index
- modules |
- next |
- CubicWeb 3.10.1 »

# CubicWeb - The Semantic Web is a construction game!

CubicWeb is a semantic web application framework, licensed under the LGPL, that empowers developers to efficiently build web applications by reusing components (called cubes) and following the well known object-oriented design principles.

Its main features are:

- an engine driven by the explicit data model of the application,
- a query language named RQL similar to W3C’s SPARQL,
- a selection+view mechanism for semi-automatic XHTML/XML/JSON/text generation,
- a library of reusable components (data model and views) that fulfill common needs,
- the power and flexibility of the Python programming language,
- the reliability of SQL databases, LDAP directories, Subversion and Mercurial for storage backends.

Built since 2000 from an R&D effort still continued, supporting 100,000s of daily visits at some production sites, CubicWeb is a proven end to end solution for semantic web application development that promotes quality, reusability and efficiency.

The unbeliever will read the Building a simple blog.

The hacker will join development at the forge.

The impatient developer will move right away to Installation and set-up of a CubicWeb environment.

The chatter lover will join the jabber forum, the mailing-list and the blog.

- Introduction to CubicWeb
  - 1. A little history...
  - 2. The Core Concepts of CubicWeb
- Tutorials
  - 1. Building a simple blog
  - 2. Building a photo gallery with CubicWeb
  - 3. Use Windmill with CubicWeb

- Repository development
  - 1. Cubes
    - 1.1. Standard structure for a cube
    - 1.2. Creating a new cube from scratch using cubicweb-ctl newcube
    - 1.3. Available cubes
  - 2. The VRegistry, selectors and application objects
    - 2.1. The VRegistry
    - 2.2. Selectors
    - 2.3. The AppObject class
    - 2.4. Base selectors
  - 3. Data model
    - 3.1. Yams schema
    - 3.2. Defining your schema using yams
    - 3.3. Metadata
    - 3.4. Pre-defined entities in the library
    - 3.5. Defining a Workflow
  - 4. Data as objects
    - 4.1. Access to persistent data
    - 4.2. The `AnyEntity` class
    - 4.3. Inheritance
    - 4.4. Application logic
    - 4.5. Loaded attributes and default sorting management
    - 4.6. Interfaces and Adapters
    - 4.7. How to use entities objects and adapters
    - 4.8. Anatomy of an entity class
  - 5. Core APIs
    - 5.1. Python/RQL API
    - 5.2. Executing RQL queries from a view or a hook
    - 5.3. Proper usage of .execute
    - 5.4. The ResultSet API
    - 5.5. The Cursor API
    - 5.6. Request and ResultSet methods
  - 6. Repository customization
    - 6.1. Sessions
    - 6.2. Hooks and Operations
    - 6.3. Notifications management
    - 6.4. Tasks
  - 7. Tests
    - 7.1. Unit tests
    - 7.2. Automatic views testing
    - 7.3. Testing on a real-life database
    - 7.4. Testing with other cubes
    - 7.5. Test APIS
  - 8. Migration
    - 8.1. Migration scripts management
    - 8.2. Base context
    - 8.3. New cube dependencies
    - 8.4. Schema migration
    - 8.5. Data migration
    - 8.6. Workflow creation
    - 8.7. Configuration migration
    - 8.8. Others migration functions
  - 9. Profiling and performance
- Web side development
  - Publisher
    - CubicWebPublisher API
  - Controllers
    - Overview
    - Registration
    - Concrete controllers
  - The Request class (cubicweb.web)
    - Overview
    - API
  - The View system
    - Principles
    - Templates
    - The Primary View
    - The “Click and Edit” (also reledit) View
    - Base views
    - Startup views
    - Boxes
    - Table view
    - XML and RSS views
    - URL publishing
    - URL rewriting
    - Breadcrumbs
  - Configuring the user interface
    - Relation tags
    - The uicfg module
  - Javascript
    - Conventions
    - Server-side Javascript API
    - Javascript events
    - Important javascript AJAX APIS
    - A simple example with asyncRemoteExec
    - Anatomy of a reloadComponent call
    - A simple reloadComponent example
    - Anatomy of a loadxhtml call
    - A simple example with loadxhtml
    - A more real-life example
    - Javascript library: overview
    - API
    - Testing javascript
  - CSS Stylesheet
    - Conventions
    - Extending / overriding existing styles
    - CubicWeb stylesheets
  - Edition control
    - HTML form construction
    - Dissection of a form
    - The form validation process
    - The edit controller
    - Examples
  - The facets system
    - Base classes for facets
  - Internationalization
    - String internationalization
    - Handling the translation catalog
    - Editing po files

- Administration
  - 1. Installation and set-up of a CubicWeb environment
  - 2. Creation of your first instance
  - 3. Configure an instance
  - 4. User interface for web site configuration
  - 5. Multiple sources of data
  - 6. LDAP integration
  - 7. Working with a distributed client (using Pyro)
  - 8. CubicWeb in Google AppEngine
  - 9. Migrating cubicweb instances - benefits from a distributed architecture
  - 10. Backups (mostly with postgresql)
  - RQL logs
- Appendixes
  - 1. Frequently Asked Questions
  - 2. `cubicweb-ctl` tool
  - 3. Relation Query Language (RQL)
  - 4. Introducing Mercurial
  - 5. Installation dependencies
  - 6. Javascript docstrings

See also:

- the Index,
- the Module Index,

### Navigation

- index
- modules |
- next |
- CubicWeb 3.10.1 »