CubicWeb
— Define your knowledge
CubicWeb builds your application

schema.py
1class City(EntityType):
2 name = String(required=True)
3
4class Museum(EntityType):
5 name = String(required=True)
6 is_in = SubjectRelation("City", cardinality="1*")

CubicWeb is an open-source (LGPL) Python Web framework built with Semantic Web principles in mind. It promotes reusability through the usage of components (called cubes). It is the most appropriate choice for data-centric applications.

Get Started

An engine driven by the explicit data model of the application

schema.py
1Any NAME Where X is Museum, X name NAME
Modeling your data is the first step, as it always should be because applications fade away but data is here to stay. Once your model is implemented, your CubicWeb application runs and you can incrementally add high-value functionalities for your users.

RQL, an intuitive query language close to business vocabulary

Based on the application model, RQL is a compact language focused on the attributes and relationships of the data. It is similar to SPARQL but is more readable by human beings.

An architecture that natively separates selection and visualisation

Museumname
is_in
Cityname
After a RQL request has selected a graph of data, several views can be applied to display the information in the most relevant way. All CubicWeb architecture is designed along this pattern.

Data security by design

Permissions are directly defined in the data model with limitless precision. Security checks are automatically added to any RQL request submitted to the engine.

An efficient data storage

CubicWeb relies on a standard SQL database for storing and managing data. PostgreSQL is the preferred database of CubicWeb.