Brick Schema 详解:智能建筑的统一元数据标准
官网: https://brickschema.org/
GitHub: https://github.com/BrickSchema/Brick
许可证: BSD
什么是 Brick Schema?
Brick 是一个开源项目,旨在为建筑物中的物理、逻辑和虚拟资产建立标准化的语义描述体系,以及它们之间的关系。
简单来说:它是智能建筑的通用语言。
为什么需要 Brick?
现代建筑包含复杂的子系统:
- HVAC(暖通空调)
- 照明系统
- 消防系统
- 安防系统
- 能源管理
问题是:这些系统通常来自不同厂商,使用各自的标签和命名约定,导致:
- ❌ 数据孤岛
- ❌ 集成成本高昂
- ❌ 分析应用难以跨系统运行
Brick 的目标是:提供一个统一的标准,让所有建筑系统能够”说同一种语言”。
Brick 的三大核心组件
1. RDF 类层次结构 (RDF Class Hierarchy)
Building
├── Floor
│ ├── Room
│ │ ├── HVAC Zone
│ │ ├── Lighting Zone
│ │ └── Sensor
│ │ ├── Temperature Sensor
│ │ ├── Occupancy Sensor
│ │ └── CO2 Sensor
使用 RDF (Resource Description Framework) 描述建筑子系统、实体和设备。
2. 关系集合 (Relationships)
一套最小化的原则性关系,用于将实体连接成有向图:
:AHU1 rdf:type brick:Air_Handler_Unit .
:VAV1 rdf:type brick:VAV .
:AHU1 brick:feeds :VAV1 .
:TempSensor1 rdf:type brick:Temperature_Sensor .
:TempSensor1 brick:isPointOf :VAV1 .
常见关系:
feeds- 馈送关系(如 AHU 馈送 VAV)isPointOf- 点位归属hasPart- 组成部分measures- 测量什么controls- 控制什么
3. 封装方法 (Encapsulation)
支持将低级组件组合成复杂组件:
VAV Box
├── Damper
├── Temperature Sensor
├── Air Flow Sensor
└── Controller
技术架构
基于语义网技术
Brick 利用 Semantic Web 技术栈:
| 技术 | 用途 |
|---|---|
| RDF | 资源描述框架,数据模型 |
| OWL | Web 本体语言,定义概念关系 |
| SPARQL | 查询语言,用于检索建筑数据 |
| Turtle | 序列化格式,人类可读的 RDF |
数据模型示例
@prefix brick: <https://brickschema.org/schema/Brick#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
:Building_A rdf:type brick:Building .
:Floor_1 rdf:type brick:Floor .
:Floor_1 brick:isPartOf :Building_A .
:Room_101 rdf:type brick:Room .
:Room_101 brick:isPartOf :Floor_1 .
:HVAC_Zone_1 rdf:type brick:HVAC_Zone .
:HVAC_Zone_1 brick:hasPart :Room_101 .
:Thermostat_1 rdf:type brick:Thermostat .
:Thermostat_1 brick:isPointOf :HVAC_Zone_1 .
:Thermostat_1 brick:measures brick:Temperature .
Brick 的优势
1. 降低部署成本
- 统一标准减少定制化集成工作
- 分析应用可跨建筑复用
2. 跨厂商集成
- 打破供应商锁定
- 整合 HVAC、照明、消防、安防等多个子系统
3. 简化智能应用开发
- 标准查询接口(SPARQL)
- 一致的命名约定
- 丰富的设备语义
4. 消除非标准标签
- 告别
TEMP_SETPT_01或TSP_1F_RM101这类晦涩标签 - 使用标准化的
Thermostat+measures Temperature
实际应用场景
场景 1:故障诊断
SELECT ?sensor WHERE {
?sensor rdf:type brick:Temperature_Sensor .
?sensor brick:isPointOf ?zone .
?zone brick:hasPart ?room .
?room brick:isPartOf :Floor_1 .
}
查询一楼所有温度传感器。
场景 2:能耗分析
SELECT ?meter ?equipment WHERE {
?meter rdf:type brick:Power_Meter .
?meter brick:isPointOf ?equipment .
?equipment rdf:type brick:AHU .
}
找到所有连接空调机组的功率计。
场景 3:自动化控制
SELECT ?thermostat ?vav WHERE {
?thermostat rdf:type brick:Thermostat .
?thermostat brick:controls ?vav .
?vav rdf:type brick:VAV .
}
找到所有温控器及其控制的变风量箱。
版本与开发
语义化版本
- 主版本:重大变更
- 次版本:每6个月发布,向后兼容的功能扩展
- 补丁版本:增量修复
开发团队
始于2016年,由以下机构共同参与:
- IBM
- Carnegie Mellon University
- UC Berkeley
- UC Los Angeles
- UC San Diego
- University of Virginia
- University of Southern Denmark
如何开始使用
1. 访问资源
- 📚 文档: https://docs.brickschema.org/
- 🔍 本体浏览器: https://ontology.brickschema.org/
- 💬 论坛: https://groups.google.com/forum/#!forum/brickschema
2. 下载发布版本
wget https://github.com/BrickSchema/Brick/releases/download/v1.3.0/Brick.ttl
3. Python 示例
from rdflib import Graph, Namespace
# 加载 Brick 本体
g = Graph()
g.parse("Brick.ttl", format="turtle")
# 定义命名空间
BRICK = Namespace("https://brickschema.org/schema/Brick#")
# 查询所有传感器
query = """
SELECT ?sensor WHERE {
?sensor rdf:type brick:Sensor .
}
"""
results = g.query(query, initNs={"brick": BRICK})
for row in results:
print(row.sensor)
总结
Brick Schema 解决了智能建筑领域的核心痛点:数据互操作性。
通过提供一个标准化的语义框架,它让:
- 建筑业主能够整合多厂商系统
- 开发者能够编写可复用的分析应用
- 设施管理者能够更有效地监控和优化建筑性能
对于正在开发智能建筑、数字孪生或 IoT 平台的人来说,Brick 是一个值得深入了解的开放标准。
相关资源: