BrickSchema Documentation

The brickschema package makes it easy to get started with Brick and Python. Among the features it provides are:

  • management and querying of Brick models

  • simple OWL-RL, SHACL and other inference

  • Haystack and VBIS integration:
    • convert Haystack models to Brick

    • add VBIS tags to a Brick model, or get Brick types from VBIS tags

import brickschema

# creates a new rdflib.Graph with a recent version of the Brick ontology
# preloaded.
g = brickschema.Graph(load_brick=True)
# OR use the absolute latest Brick:
# g = brickschema.Graph(load_brick_nightly=True)
# OR create from an existing model
# g = brickschema.Graph(load_brick=True).from_haystack(...)

# load in data files from your file system
# ...or by URL (using rdflib)
g.parse("", format="ttl")

# perform reasoning on the graph (edits in-place)
g.expand(profile="tag") # infers Brick classes from Brick tags

# validate your Brick graph against built-in shapes (or add your own)
valid, _, resultsText = g.validate()
if not valid:
    print("Graph is not valid!")

# perform SPARQL queries on the graph
res = g.query("""SELECT ?afs ?afsp ?vav WHERE  {
    ?afs    a       brick:Air_Flow_Sensor .
    ?afsp   a       brick:Air_Flow_Setpoint .
    ?afs    brick:isPointOf ?vav .
    ?afsp   brick:isPointOf ?vav .
    ?vav    a   brick:VAV
for row in res:

# start a blocking web server with an interface for performing
# reasoning + querying functions
# now visit in http://localhost:8080


The brickschema package requires Python >= 3.6. It can be installed with pip:

pip install brickschema

Table of Contents

Indices and tables