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

### Navigation

- index
- modules |
- next |
- CubicWeb 3.11.0 »

# 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 Tutorials.

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 with CubicWeb
  - 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
    - 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. Literate programming
    - 7.6. 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.request)
    - 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. `cubicweb-ctl` tool
  - 3. Creation of your first instance
  - 4. Configure an instance
  - 5. User interface for web site configuration
  - 6. Multiple sources of data
  - 7. LDAP integration
  - 8. Working with a distributed client (using Pyro)
  - 9. CubicWeb in Google AppEngine
  - 10. Migrating cubicweb instances - benefits from a distributed architecture
  - 11. Backups (mostly with postgresql)
  - 12. RQL logs
- Appendixes
  - 1. Frequently Asked Questions (FAQ)
  - 2. Relation Query Language (RQL)
  - 3. Introducing Mercurial
  - 4. Installation dependencies
  - 5. Javascript docstrings

See also:

- the Index,
- the Module Index,

### Navigation

- index
- modules |
- next |
- CubicWeb 3.11.0 »