Memoori is joined by Founder Members of the Brick Open Schema Project: Gabe Fierro, University of California, Berkley, Jason Koh, Mapped Inc & Erik Paulson from JCI. We Discuss the New Concepts, Features and Tools being Released in the Pending Version 1.2 of the Brick Schema
Catching Up with the Brick Schema for Smart Buildings
1. https://brickschema.org
Catching up with the Brick
Schema for Smart Buildings
A Refresher and What's New
Gabe Fierro Jason Koh Erik Paulson
UC Berkeley Mapped Johnson
Controls
3. https://brickschema.org
State of Building Metadata
- Open up your building management/automation system, look at the point names
- 3 different buildings/BMS/subsystems → 3 (or more) different labeling/naming schemes
4. https://brickschema.org
State of Building Metadata
S O D A 1 R 4 6 5 _ _ A R S
Site
AHU
AHU ID
Zone
zone ID
Zone air
temperature
setpoint
Random
delimiter
- Point names encode location, function, equipment, subsystems and more
in a single label
- Site/vendor-specific conventions
- Interpretation assumes expert domain knowledge, familiarity with building
5. https://brickschema.org
Make Working with Building Data Easier
- Most building data resides in opaque data silos
- Unclear, inconsistent, hard-to-interpret labels
- (if you have access to it at all)
- Existing metadata standards focus on other perspectives of the building
- Design, construction
- Asset management
- Commissioning, Auditing
- Need a metadata representation designed for data-driven building
software
- Unlock potential of building data
- Preserve existing investments
6. https://brickschema.org
Webinar Outline
- Brick Ontology
- What’s new since last time and what’s coming in v1.2
- New tools, documentation, websites
- Writing Building Software with Brick
- Common Architecture using Brick.
- Example Applications with Brick
- Making Brick Models
- Existing tools to create a Brick model from your site and data
- Upcoming tools
- Brick Community
- A new nonprofit - Brick Consortium
- The open source community
8. https://brickschema.org
https://brickschema.org
- Graph-based metadata schema for
smart buildings
Capture physical, logical, virtual
entities in buildings using a class
hierarchy
Capture the necessary relationships
between them
- Use Brick to describe timeseries data
and its context
9. https://brickschema.org
- Three main concepts, each the root
of their own class hierarchy
Classes provide definition,
organization to entities
Entities are the physical, logical and
virtual “things”
- Relationships dictate how entities
correspond and relate to each other
Equipment
Location
Point
isPointOf
hasPart
feeds
hasLocation
feeds
hasPart
hasLocation
isPointOf
18. https://brickschema.org
- Expanded set of Brick classes
- Location and Room types
- Electrical metering points
- Weather stations and points
- Over 100 classes added since v1.1
- Units of Measure integration
- Entity Properties for non-class metadata
19. https://brickschema.org
Entity Annotations and Metadata
- Units of Measure for Point classes:
- Build on open QUDT standard
- Support unit/type checking
- Enabled queries:
- What units does my sensor data
have?
- What units could a sensor of type
X have?
20. https://brickschema.org
Entity Annotations and Metadata
- New Entity Properties feature:
- Add structured, standardized
key-value pairs to entities
- Room volume, floor area
- Phase count, nominal voltage, rated
power, max rated speed
- Aggregations (daily max, monthly
average)
- Initial set for v1.2, accepting
community feedback moving
forward
21. https://brickschema.org
- New and improved tools
- brickschema Python package
- Translation/conversion software (later in this talk!)
- Brick model validation
- Alignments with / Conversions from existing
metadata representations
- (later in this talk!)
23. https://brickschema.org
- pip install brickschema
- Automatically load in latest Brick
definitions
- Load in Turtle, XML files from local
machine or the web, or convert
from existing sources
- Apply logical reasoning and
inference, or validate the model
- Run SPARQL queries in your
program or in a web interface
v0.2!
26. https://brickschema.org
A Common Architecture for Brick Applications
Read Data
Resource Discovery
with Brick
App
Logic
Actuate Controllers
Controller icon created by Justicon
https://thenounproject.com/term/remote/2893113/
Vendor-agnostic
Protocols
Vendor-specific
Protocols
Connectors
An example connector:
https://github.com/brickschema/brick-bacnet
Timeseries
Connectors
Connectors
27. https://brickschema.org
How to Relate Brick Models with Timeseries
Zone Air
Temperature Sensor
ZNT-101
is a
86915eca-...
hasTimeseriesID1
Timeseries
1
: Brick does not standardize the name for such references as different systems would need different implementations.
ID Timestamp Value
86915eca-... 2021-01-27T08:30Z 70.1
... ... ...
28. https://brickschema.org
Example Application 1: Calculate Air Freshness (1/2)
How many people have been in the
conference room in the past 3 hours?
Has the air of the entire room been replaced
more than three times in the past hour?
(>3 ACH1
, Air Change per Hour)
1
Miller et al. “Transmission of SARS-CoV-2 by inhalation of respiratory aerosol in the
Skagit Valley Chorale superspreading event”, Indoor 2020
29. https://brickschema.org
Example Application 1: Calculate Air Freshness (2/2)
RM-101
Room
ZN-101
HVAC
Zone
VAV-101
VAV
(RM101
Volume)
hasVolume
unit:M3
50
hasQuantityValue
hasUnit
feeds
hasPart
SAF101
hasPoint
SupplyAir
FlowSensor
# Identify the room’s VAV
?zone brick:hasPart <RM-101>.
?zone rdf:type brick:HVACZone.
?device brick:feeds ?zone.
?device rdf:type brick:TerminalUnit.
86915e...
hasTimeseriesID
Uncerscores are omitted due to the limited
space
# Get the air flow sensor’s timeseries ref.
?device brick:hasPoint ?saf.
?saf rdf:type brick:AirFlowSensor.
?saf brick:hasTimeseriesID ?saf_ref.
# Get the room’s volume.
?room brick:hasVolume ?quantity.
?quantity qudt:hasValue ?volume
?quantity qudt:hasUnit ?unit
}
select ?saf_ref ?volume ?unit where {
30. https://brickschema.org
Example Application 1: Calculate Air Freshness (2/2)
RM-101
Room
ZN-101
HVAC
Zone
VAV-101
VAV
(RM101
Volume)
hasVolume
unit:M3
50
hasQuantityValue
hasUnit
feeds
hasPart
SAF101
hasPoint
SupplyAir
FlowSensor
select ?saf_ref ?volume ?unit where {
# Identify the room’s VAV
?zone brick:hasPart <RM-101>.
?zone rdf:type brick:HVACZone.
?device brick:feeds ?zone.
?device rdf:type brick:TerminalUnit.
86915e...
hasTimeseriesID
Uncerscores are omitted due to the limited
space
# Get the air flow sensor’s timeseries ref.
?device brick:hasPoint ?saf.
?saf rdf:type brick:AirFlowSensor.
?saf brick:hasTimeseriesID ?saf_ref.
# Get the room’s volume.
?room brick:hasVolume ?quantity.
?quantity qudt:hasValue ?volume
?quantity qudt:hasUnit ?unit
}
31. https://brickschema.org
Logical Application Workflow
Express data requirements
using Brick queries
Brick Model
Database
?ahu ?mat ?sat ?ccv ?pos
Project Brick model into
table of results for target
building
Timeseries
Database
ident time value
Use identifiers in query
results to fetch relevant
timeseries data
To Data
Ecosystem
32. https://brickschema.org
Example Application 2: ASHRAE G36 FDD
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is SAT properly controlled by cooling
and heating coils?
4. Is economizer damper okay?
...
33. https://brickschema.org
Example Application 2: ASHRAE G36 FDD
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is SAT properly controlled by cooling
and heating coils?
4. Is economizer damper okay?
34. https://brickschema.org
RF1
SF1
AHU1
RAT1
SAT1
OAT1 MAT1
hasPart
hasPoint
Example Application 2: ASHRAE G36 FDD
RA
EA
OA SA
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
SS = Start Stop Command
SS1
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is economizer damper okay?
Equip
Point
35. https://brickschema.org
RF1
SF1
AHU1
RAT1
SAT1
OAT1 MAT1
hasPart
hasPoint
Example Application 2: ASHRAE G36 FDD
RA
EA
OA SA
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
SS = Start Stop Command
SS1
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is economizer damper okay?
1.
36. https://brickschema.org
RF1
SF1
AHU1
RAT1
SAT1
OAT1 MAT1
hasPart
hasPoint
Example Application 2: ASHRAE G36 FDD
RA
EA
OA SA
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
SS = Start Stop Command
SS1
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is economizer damper okay?
2.
37. https://brickschema.org
RF1
SF1
AHU1
RAT1
SAT1
OAT1 MAT1
hasPart
hasPoint
Example Application 2: ASHRAE G36 FDD
RA
EA
OA SA
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
SS = Start Stop Command
SS1
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is economizer damper okay?
3.
38. https://brickschema.org
RF1
SF1
AHU1
RAT1
SAT1
OAT1 MAT1
hasPart
hasPoint
Example Application 2: ASHRAE G36 FDD
RA
EA
OA SA
MAT = Mixed Air Temperature
SAT = Supply Air Temperature
RAT = Return Air Temperature
OAT = Outside Air Temperature
SS = Start Stop Command
SS1
1. Is MAT between RAT and OAT?
2. Is the Operation State changed too
frequently?
3. Is economizer damper okay?
3.
39. https://brickschema.org
- Rigorous type hierarchy for usable
abstraction of concepts as Classes
- Canonical and easy-to-follow
Relationships
Equipment
Location
Point
isPointOf
hasPart
feeds
hasLocation
feeds
hasPart
hasLocation
isPointOf
41. https://brickschema.org
Creating Brick models
Use the modeling and
loading tools of your graph
database, or a commercial
RDF data studio
Use the Python RDF API to
build a graph - import data
from CSV/database/REST
API/etc
42. https://brickschema.org
Creating Brick models from “messy” data
OpenRefine - data wrangling
tool originally from Google’s
Knowledge Graph team
Think supercharged Excel
with set-oriented mass edit
functions & scripting
Reconciliation API
Web service to predicts Brick classes, integrates with OpenRefine. Very
basic today, exploring using NLP to build a smarter version
https://www.youtube.com/watch?v=LKcXMvrxXzE
43. https://brickschema.org
Brick Builder - turn a CSV into a Brick model
Template to turn CSV into a graph model, row by
row. Supports some simple logic in the template to
control if a statement is included.
44. https://brickschema.org
Creating Brick models - upcoming tools
Next Gen Brick Builder - “Brickify”
Brick Builder has limited logic, so we explored using more expressive templating
systems like Handlebars/Mustache/Jinja
New software tool that supports multiple transformation types. Have transformers
for JCI Metasys RAC schedules, Jinja templates+CSV, Haystack JSON, and
developing more
Hope to release later this winter
45. https://brickschema.org
BIM to Brick
IFC/Revit + “data
augmentation”
Use Autodesk Forge
service to parse Revit
Convert parsed data
into RDF Brick model
Includes link to SVF for
3D visualization in
browser
Open-sourced soon
46. https://brickschema.org
Alignments and Conversions
- Different representations have roles in a building’s lifecycle
- Each designed to enable different applications
- Preserve existing investments:
- Brick works with other metadata representations
50. https://brickschema.org
Brick Consortium
Address industry need: make built environment data more interoperable
Nonprofit of researchers and industry, funded by industry partners, provide a path
to sustain Brick until 2040 or beyond.
Governance and development of Brick Schema, tooling, conformance testing, and
canonical use case and reference solution
Funds research and development work related to Brick and the built environment
Evangelize Brick and grow the industry
51. https://brickschema.org
Brick Consortium operations
● Organized around working groups, current groups:
○ Schema Development
○ Tooling
○ Public Research Dataset Creation
○ Application and Analytics Development
● Overseen by Steering Committee, Technical Committee, Communications
Committee, Testing/Compliance Committee
● Members vote on new schema version releases and seats on oversight
committees
○ Do not have to be a formal member to participate in open-source work!
● Membership levels available for commercial entities, non-profit institutions,
and individual researchers
52. https://brickschema.org
Brick Community
- Documentation, resources, downloads, reference models
- https://brickschema.org/
- Community forum and mailing list
- https://groups.google.com/forum/#!forum/brickschema
- GitHub Organization: open-source ontology and tool development
- https://github.com/BrickSchema/
Brick is open-source and community-driven
This means it gets better when you get involved!
Leave comments, request changes or submit your own