-
Notifications
You must be signed in to change notification settings - Fork 90
Description
Summary
Some Brick Point classes are missing essential hasQuantity and hasSubstance property definitions in the ontology, forcing developers to implement inference logic to determine what physical quantities and substances these points measure or control.
Issue Description
When processing Brick v1.4.4, we discovered that numerous Point classes lack proper hasQuantity and hasSubstance property definitions. This missing metadata forces applications to implement custom inference logic to determine:
- What physical quantity a point measures/controls (temperature, pressure, flow, etc.)
- What substance the point is associated with (air, water, steam, etc.)
This missing data significantly impacts the usability of Brick Schema for building automation applications.
Affected Point Classes (Examples)
Based on our analysis of v1.4.4, affected points include but are not limited to:
Current Definition (missing hasQuantity and hasSubstance):
brick:Supply_Air_Temperature_Setpoint_Limit a owl:Class,
sh:NodeShape ;
rdfs:label "Supply Air Temperature Setpoint Limit"@en ;
rdfs:subClassOf brick:Air_Temperature_Setpoint_Limit ;
skos:definition "A parameter that places a lower or upper bound on the range of permitted values of a Supply_Air_Temperature_Setpoint."@en ;
brick:hasAssociatedTag tag:Air,
tag:Supply,
tag:Temperature .
# Missing: brick:hasQuantity and brick:hasSubstance properties
Expected Definition (with missing properties):
brick:Supply_Air_Temperature_Setpoint_Limit a owl:Class,
sh:NodeShape ;
rdfs:label "Supply Air Temperature Setpoint Limit"@en ;
rdfs:subClassOf brick:Air_Temperature_Setpoint_Limit ;
skos:definition "A parameter that places a lower or upper bound on the range of permitted values of a Supply_Air_Temperature_Setpoint."@en ;
brick:hasAssociatedTag tag:Air,
tag:Supply,
tag:Temperature ;
brick:hasQuantity qudtqk:Temperature ;
brick:hasSubstance brick:Supply_Air .Comparison with Well-Defined Classes
For contrast, brick:Air_Temperature_Sensor is properly defined with both properties:
brick:Air_Temperature_Sensor a owl:Class,
sh:NodeShape ;
rdfs:label "Air Temperature Sensor"@en ;
rdfs:subClassOf brick:Temperature_Sensor ;
brick:hasQuantity qudtqk:Temperature ;
brick:hasSubstance brick:Air .Impact
- Developer burden: Forces custom inference logic in every application
- Inconsistency: Different applications may infer different quantities/substances
- Reduced interoperability: Missing semantic metadata limits automated processing
- Incomplete metadata: Applications cannot reliably determine point characteristics
Proposed Solution
- Audit existing Point classes for missing hasQuantity/hasSubstance properties
- Add missing properties based on semantic meaning of class names
- Establish guidelines for future Point class definitions to require these properties
Environment
- Brick Version: v1.4.4
- Source: https://github.com/BrickSchema/Brick/releases/download/v1.4.4/Brick.ttl
Additional Context
This issue affects building automation applications that need to automatically:
- Configure data collection points
- Set up alarming and monitoring
- Generate user interfaces
- Perform analytics on building data
The missing semantic metadata significantly reduces Brick's utility for automated use cases where applications need to understand what physical properties points represent without manual configuration.