官网: 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_01TSP_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 是一个值得深入了解的开放标准。


相关资源: