Documentation

Brick is a uniform schema for representing metadata in buildings. Our schema defines a concrete ontology for sensors, subsystems and relationships among them, which enables portable applications. We demonstrate the completeness and effectiveness of Brick by using it to represent the entire vendor-specific sensor metadata of diverse buildings across different campuses, each comprising thousands of data points, and running complex unmodified applications on these buildings.

Brick Concepts

Our research paper describes the Brick design and development in depth (link to paper). Here we highlight the essential concepts of Brick.

Tagset

Every entity in the buildings is represented by a Tagset, which is decomposed to multiple Tags. We model Point, Equipment, Location, and MeasurementProperty as entities in buildings. Each of these are organized into a hierarchy.

Brick Class Hierarchy

As an example, Room Temperature Sensor is a Tagset that consists of Tags, Room, Temperature, and Sensor. Room Temperature Sensor is a subclass of Temperature Sensor, which itself is a subclass of Sensor. With such a hierarchy, one can find a collection of temperature sensors easily using SPARQL or tag search. One can also add new Tagsets with Tags if it is not defined in our schema. We encourage you to share your custom Tagsets with us to make Brick more comprehensive (Issues).

Tags

Tags represent unit concept in buildings and are decomposed from Tagsets. Tags are used to infer Tagsets’ meaning and search without using a query language. For example, one can easily know Room Temperature Sensor is related to Room, Temperature, and Sensor programatically. This moderates tag-based representation mechanisms to have more coverage.

Relationships

Relationships represent how Brick entities connect with each other. Brick has the following relationships. We constrain the subjects and the objects that relationships can have.

Relationship Definition Subject Object
hasLocation A is located in B. Location
controls A determines the internal state of B.
isPartOf A is a component/part of B.
hasPoint A has a point B that functions for A. Equipment Point
feeds Something flows from A to B.

Viewing Brick Files

http://viewer.brickschema.org/ has a simple .ttl file viewer that allows you to see the structure of Brick building files. Here is an example output for Soda Hall at UC Berkeley.

##Data Format and Query Language Brick adheres to the RDF data model (Resource Description Framework), which represents knowledge as a graph expressed as triples: subject, predicate, object

Applications and services can query the RDF representation of a building using SPARQL (SPARQL Protocol and RDF Query Language).