Skip to content

Missing hasQuantity and hasSubstance properties for some Point classes #713

@luber

Description

@luber

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:

  1. What physical quantity a point measures/controls (temperature, pressure, flow, etc.)
  2. 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

  1. Audit existing Point classes for missing hasQuantity/hasSubstance properties
  2. Add missing properties based on semantic meaning of class names
  3. Establish guidelines for future Point class definitions to require these properties

Environment

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions