diff --git a/ontologies/223p.ttl b/ontologies/223p.ttl index 08a759d..5568334 100644 --- a/ontologies/223p.ttl +++ b/ontologies/223p.ttl @@ -42,7 +42,8 @@ g36:ChilledWaterCoil a s223:Class, rdfs:label "ChilledWaterCoil" ; rdfs:comment "A cooling element made of pipe or tube that may or may not be finned and formed into helical or serpentine shape." ; rdfs:subClassOf s223:CoolingCoil ; - sh:property [ rdfs:comment "The ChilledWaterCoil shall be connected to a ChilledWaterValve using the relation connectedTo." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "The ChilledWaterCoil shall be connected to a ChilledWaterValve using the relation connectedTo." ; sh:path s223:connectedTo ; sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class g36:ChilledWaterValve ] ; @@ -55,7 +56,8 @@ g36:ChilledWaterValve a s223:Class, rdfs:label "Chilled Water Valve" ; rdfs:comment "A device to regulate or stop the flow of cold fluid in a pipe or a duct by throttling." ; rdfs:subClassOf s223:Valve ; - sh:or ( [ sh:property [ rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; + sh:or ( [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -68,7 +70,8 @@ g36:ChilledWaterValve a s223:Class, sh:maxCount 1 ; sh:minCount 1 ; sh:path s223:hasAspect ] ] ] ; - sh:severity s223:g36 ] ] [ sh:property [ rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; + sh:severity s223:g36 ] ] [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; sh:minCount 2 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 2 ; @@ -82,7 +85,8 @@ g36:ChilledWaterValve a s223:Class, sh:minCount 1 ; sh:path s223:hasAspect ] ] ] ; sh:severity s223:g36 ] ] ) ; - sh:property [ rdfs:comment "A chilled water valve shall have medium Water-ChilledWater using the relation hasMedium." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A chilled water valve shall have medium Water-ChilledWater using the relation hasMedium." ; sh:hasValue s223:Water-ChilledWater ; sh:maxCount 1 ; sh:minCount 1 ; @@ -96,7 +100,8 @@ g36:Damper a s223:Class, rdfs:label "Damper" ; rdfs:comment "An element inserted into an air-distribution system or element of an air-distribution system permitting modification of the air resistance of the system and consequently changing the airflow rate or shutting off the airflow." ; rdfs:subClassOf s223:Damper ; - sh:or ( [ sh:property [ rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ; + sh:or ( [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -109,7 +114,8 @@ g36:Damper a s223:Class, sh:maxCount 1 ; sh:minCount 1 ; sh:path s223:hasAspect ] ] ] ; - sh:severity s223:g36 ] ] [ sh:property [ rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ; + sh:severity s223:g36 ] ] [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ; sh:minCount 2 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 2 ; @@ -125,190 +131,14 @@ g36:Damper a s223:Class, sh:severity s223:g36 ] ] ) ; sh:severity s223:g36 . -g36:DualDuctTerminalWithDischargeSensor a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "DualDuctTerminalWithDischargeSensor" ; - rdfs:comment "A dual duct air terminal mixes two independent sources of primary air. This terminal uses one discharge sensor." ; - rdfs:subClassOf s223:DualDuctTerminal ; - sh:property [ rdfs:comment "DualDuctTerminalWithDischargeSensor shall contain 2 dampers using the relation contains." ; - sh:minCount 2 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 2 ; - sh:qualifiedMinCount 2 ; - sh:qualifiedValueShape [ sh:class g36:Damper ] ; - sh:severity s223:g36 ], - [ rdfs:comment "In DualDuctTerminalWithDischargeSensor, one Damper has Role Heating using the relation hasRole." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Heating ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "In DualDuctTerminalWithDischargeSensor, one Damper has Role Cooling using the relation hasRole." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Cooling ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The DualDuctTerminalWithDischargeSensor OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:DualDuctTerminalWithInletSensors a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "DualDuctTerminalWithInletSensors" ; - rdfs:comment "A dual duct air terminal mixes two independent sources of primary air. This terminal uses two inlet sensors." ; - rdfs:subClassOf s223:DualDuctTerminal ; - sh:property [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 2 dampers using the relation contains" ; - sh:minCount 2 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 2 ; - sh:qualifiedMinCount 2 ; - sh:qualifiedValueShape [ sh:class g36:Damper ] ; - sh:severity s223:g36 ], - [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Heating ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Cooling using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Cooling ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one cooling supply airflow property using the relation hasProperty." ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path s223:hasAspect ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Cooling ] ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one heating supply airflow property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path s223:hasAspect ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Heating ] ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:DualFanDualDuctAirHandlingUnit a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "DualFanDualDuctAirHandlingUnit" ; - rdfs:comment "DualFanDualDuctAirHandlingUnit" ; - rdfs:subClassOf s223:AirHandlingUnit ; - sh:property [ rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Supply ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:HotWaterCoil ] [ sh:class g36:ElectricHeatingCoil ] ) ] ; - sh:severity s223:g36 ], - [ rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - g36:ElectricHeatingCoil a s223:Class, rdfs:Class, sh:NodeShape ; rdfs:label "Electric Heating Coil" ; rdfs:comment "A heating element that forms into a helical or serpentine shape and uses electricity to perform heating." ; rdfs:subClassOf s223:ResistanceHeater ; - sh:property [ rdfs:comment "An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -326,7 +156,8 @@ g36:Fan a s223:Class, rdfs:label "Fan" ; rdfs:comment "A machine used to create flow within a gas such as air." ; rdfs:subClassOf s223:Fan ; - sh:property [ rdfs:comment "A Fan shall have at least one Start/Stop command using the relation hasProperty." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A Fan shall have at least one Start/Stop command using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -338,68 +169,14 @@ g36:Fan a s223:Class, sh:severity s223:g36 ] ; sh:severity s223:g36 . -g36:FanPoweredTerminal a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "FanPoweredTerminal" ; - rdfs:comment "An air terminal containing a fan. Airflow may pass through or be parallel to the fan. These units may also have supplemental heating or cooling." ; - rdfs:subClassOf s223:FanPoweredTerminal ; - sh:property [ rdfs:comment "A FanPoweredTerminal shall have exactly one Damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ] ; - sh:severity s223:g36 ], - [ rdfs:comment "A FanPoweredTerminal shall have exactly one Fan or FanWithVFD using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:Fan ] [ sh:class g36:FanWithVFD ] ) ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The FanPoweredTerminal InletConnectionPoint shall have at least one supply airflow property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "A FanPoweredTerminal shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:HotWaterCoil ] [ sh:class g36:ElectricHeatingCoil ] ) ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The FanPoweredTerminal OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - g36:FanWithVFD a s223:Class, rdfs:Class, sh:NodeShape ; rdfs:label "FanWithVFD" ; rdfs:comment "A machine used to create flow within a gas such as air. This machine can be controlled to vary in speed." ; rdfs:subClassOf g36:Fan ; - sh:property [ rdfs:comment "A fan with VFD shall have at least one fan speed command using the relation hasProperty." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A fan with VFD shall have at least one fan speed command using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -415,21 +192,14 @@ g36:FanWithVFD a s223:Class, sh:severity s223:g36 ] ; sh:severity s223:g36 . -g36:Filter a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "Filter" ; - rdfs:comment "A device that removes particulates from gasses such as air." ; - rdfs:subClassOf s223:Filter ; - sh:severity s223:g36 . - g36:HotWaterCoil a s223:Class, rdfs:Class, sh:NodeShape ; rdfs:label "HotWater/ReheatCoil" ; rdfs:comment "A heating element made of pipe or tube that may or may not be finned and formed into helical or serpentine shape." ; rdfs:subClassOf s223:HeatingCoil ; - sh:property [ rdfs:comment "The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ; sh:minCount 1 ; sh:path s223:connectedTo ; sh:qualifiedMinCount 1 ; @@ -443,7 +213,8 @@ g36:HotWaterValve a s223:Class, rdfs:label "Hot Water Valve" ; rdfs:comment "A device to regulate or stop the flow of hot fluid in a pipe or a duct by throttling." ; rdfs:subClassOf s223:Valve ; - sh:or ( [ sh:property [ rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; + sh:or ( [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -456,7 +227,8 @@ g36:HotWaterValve a s223:Class, sh:maxCount 1 ; sh:minCount 1 ; sh:path s223:hasAspect ] ] ] ; - sh:severity s223:g36 ] ] [ sh:property [ rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; + sh:severity s223:g36 ] ] [ sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ; sh:minCount 2 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 2 ; @@ -470,7 +242,8 @@ g36:HotWaterValve a s223:Class, sh:minCount 1 ; sh:path s223:hasAspect ] ] ] ; sh:severity s223:g36 ] ] ) ; - sh:property [ rdfs:comment "A hot water shall have medium Water-HotWater using the relation hasMedium." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A hot water shall have medium Water-HotWater using the relation hasMedium." ; sh:hasValue s223:Water-HotWater ; sh:maxCount 1 ; sh:minCount 1 ; @@ -478,499 +251,14 @@ g36:HotWaterValve a s223:Class, sh:severity s223:g36 ] ; sh:severity s223:g36 . -g36:MultiZoneVAVAirHandlingUnit a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "MultiZoneVAVAirHandlingUnit" ; - rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit serves multiple zones." ; - rdfs:subClassOf s223:AirHandlingUnit ; - sh:property [ rdfs:comment "One MultiZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one return air temperature property using the relation hasProperty. " ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Return ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "One MultiZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one outdoor air temperature property using the relation hasProperty. " ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Outside ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The MultiZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains" ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Supply ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "One MultiZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The MultiZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The MultiZoneVAVAirHandlingUnit shall contain at least one return air damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:hasValue s223:Role-Return ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The MultiZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:ChilledWaterCoil ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The MultiZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:HotWaterCoil ] [ sh:class g36:ElectricHeatingCoil ] ) ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:MultiZoneVAVAirHandlingUnit-AllPoints a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "MultiZoneVAVAirHandlingUnit" ; - rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit serves multiple zones." ; - rdfs:subClassOf g36:MultiZoneVAVAirHandlingUnit ; - sh:property [ rdfs:comment "For units with a common economizer/minimum OA damper, one MultiZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one outdoor airflow property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path s223:hasAspect ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Outside ] ] ] ] ] ] ] ], - [ rdfs:comment "For units with a common economizer/minimum OA damper, it shall contain a damper with the role economizer and the role outside using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Outside ] ], - [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Economizer ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a separate minimum outdoor air damper and DP sensor, the MultiZoneVAVAirHandlingUnit shall contain at least one two-position outdoor air damper with a differential pressure property using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:TwoPositionDamper ; - sh:node [ sh:not [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Economizer ] ] ] ; - sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Outside ] ], - [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a separate minimum outdoor air damper and AFMS, the MultiZoneVAVAirHandlingUnit shall contain at least one modulating outdoor air damper with a minimum airflow property using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:not [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Economizer ] ] ] ; - sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Outside ] ], - [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path s223:hasAspect ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Dimensioned-Minimum ] ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultiZoneVAVAirHandlingUnit shall contain a relief air damper with an analog damper command property using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:hasValue s223:Role-Relief ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultiZoneVAVAirHandlingUnit shall have at least one building static pressure property using the relation hasProperty, and the building static pressure sensor shall have an observation location at a DomainSpace using the relation hasObservationLocation." ; - sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path ( [ sh:inversePath s223:observes ] s223:hasObservationLocation ) ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:DomainSpace ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with both a relief air damper and a relief fan, the MultiZoneVAVAirHandlingUnit shall have at least one relief air damper with a two-position damper command property using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:TwoPositionDamper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Relief ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with both a relief air damper and a relief fan, the MultiZoneVAVAirHandlingUnit shall have at least one relief fan with a VFD using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Relief ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, the MultiZoneVAVAirHandlingUnit shall contain at least one return fan using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Return ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, the MultiZoneVAVAirHandlingUnit shall contain at least one exhaust air damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:hasValue s223:Role-Exhaust ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the supply fan in the MultiZoneVAVAirHandlingUnit shall have at least one supply airflow property using te relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Supply ; - sh:path s223:hasRole ] ], - [ sh:property [ sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the return fan in the MultiZoneVAVAirHandlingUnit shall have at least one return airflow property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Return ; - sh:path s223:hasRole ] ], - [ sh:property [ sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Return ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, if direct building pressure logic is used, the OutletConnectionPoint of the return fan in the MultiZoneVAVAirHandlingUnit shall have at least one return fan discharge static pressure property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Return ; - sh:path s223:hasRole ] ], - [ sh:property [ sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Return ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For units with a return fan, if direct building pressure logic is used, the MultiZoneVAVAirHandlingUnit shall have at least one building static pressure property using the relation hasProperty, and the building static pressure sensor shall have an observation location at a DomainSpace using the relation hasObservationLocation." ; - sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path ( [ sh:inversePath s223:observes ] s223:hasObservationLocation ) ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:DomainSpace ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:SingleZoneVAVAirHandlingUnit a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "SingleZoneVAVAirHandlingUnit" ; - rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit that serves one zone only." ; - rdfs:subClassOf s223:AirHandlingUnit ; - sh:property [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Supply ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:HotWaterCoil ] [ sh:class g36:ElectricHeatingCoil ] ) ] ; - sh:severity s223:g36 ], - [ rdfs:comment "A SingleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:hasValue s223:Role-Supply ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasAspect ] ] ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one outdoor air damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Outside ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one return air damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Return ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:ChilledWaterCoil ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:SingleZoneVAVAirHandlingUnit-AllPoints a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "SingleZoneVAVAirHandlingUnit" ; - rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit that serves one zone only." ; - rdfs:subClassOf g36:SingleZoneVAVAirHandlingUnit ; - sh:property [ rdfs:comment "In the case where the SingleZoneVAVAirHandlingUnit has relief dampers but no relief fan, a modulating damper shall be contained using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ; - sh:node [ sh:property [ sh:hasValue s223:Role-Relief ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, a two position relief damper and relief fan shall be contained using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:TwoPositionDamper ; - sh:node [ sh:property [ sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Relief ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit shall contain at least one relief fan using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasRole ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:hasValue s223:Role-Relief ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit shall have at least one building static pressure property using the relation hasProperty, and the building static pressure sensor shall have an observation location at a DomainSpace using the relation hasObservationLocation." ; - sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Pressure ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ sh:minCount 1 ; - sh:path ( [ sh:inversePath s223:observes ] s223:hasObservationLocation ) ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:DomainSpace ] ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit shall contain at least one return fan using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:FanWithVFD ; - sh:node [ sh:property [ sh:hasValue s223:Role-Return ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ] ; - sh:severity s223:g36 ], - [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit shall contain at least one exhaust air damper with either an analog or two-position damper command property using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue s223:Role-Exhaust ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasRole ] ] ; - sh:or ( [ sh:class g36:Damper ] [ sh:class g36:TwoPositionDamper ] ) ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - g36:TwoPositionDamper a s223:Class, rdfs:Class, sh:NodeShape ; rdfs:label "Two Position Damper" ; rdfs:comment "An element inserted into an air-distribution system or element of an air-distribution system permitting modification of the air resistance of the system and consequently changing the airflow rate or shutting off the airflow. This element only has two positions: fully open and fully closed." ; rdfs:subClassOf s223:Damper ; - sh:property [ rdfs:comment "A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -986,99 +274,20 @@ g36:TwoPositionDamper a s223:Class, sh:severity s223:g36 ] ; sh:severity s223:g36 . -g36:VAV a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "VAV" ; - rdfs:comment "An air-terminal unit assembly having one ducted air inlet and a damper for regulating the airflow rate." ; - rdfs:subClassOf s223:SingleDuctTerminal ; - sh:property [ rdfs:comment "A VAV shall contain exactly one Damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class g36:Damper ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The VAV OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty.", - "This rule originally also checked connection points this may mapTo. Instead of always checking mapsTo, it would be better to have a tool that optionally applies properties to the connection points that are mapped to each other or adjacent." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:VolumeFlowRate ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - -g36:VAVWithReheat a s223:Class, - rdfs:Class, - sh:NodeShape ; - rdfs:label "VAV with Reheat" ; - rdfs:comment "An air-terminal unit assembly having one ducted air inlet, a damper, and a reheat coil for regulating the airflow rate and discharge air temperature." ; - rdfs:subClassOf g36:VAV ; - sh:property [ rdfs:comment "The VAVWithReheat shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:or ( [ sh:class g36:HotWaterCoil ] [ sh:class g36:ElectricHeatingCoil ] ) ] ; - sh:severity s223:g36 ], - [ rdfs:comment "The VAVWithReheat OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ; - sh:node [ sh:property [ sh:hasValue quantitykind:Temperature ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ] ] ] ] ] ] ; - sh:severity s223:g36 ] ; - sh:severity s223:g36 . - g36:Zone a s223:Class, rdfs:Class, sh:NodeShape ; rdfs:label "Zone" ; rdfs:comment "A Zone is a generic thermal zone, with the points required for Guideline 36 controls. It is a collection of s223:DomainSpace instances." ; rdfs:subClassOf s223:Zone ; - sh:property [ rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:EnumeratedObservableProperty ; - sh:node [ sh:property [ sh:class s223:EnumerationKind-OnOff ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasEnumerationKind ], - [ rdfs:comment "Property shall be measured at a window." ; - sh:class s223:Window ; - sh:path [ sh:alternativePath ( ( [ sh:inversePath s223:observes ] s223:hasMeasurementLocation ) [ sh:inversePath s223:hasProperty ] ) ] ] ] ] ; - sh:severity sh:Info ], - [ rdfs:comment "A Zone shall have at least one zone thermostat override switch property using the relation hasProperty." ; - sh:minCount 1 ; - sh:path s223:hasProperty ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:EnumeratedObservableProperty ; - sh:node [ sh:property [ sh:class s223:EnumerationKind-Override ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasEnumerationKind ] ] ] ; - sh:severity sh:Info ], - [ rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ; sh:hasValue s223:Domain-HVAC ; sh:minCount 1 ; sh:path s223:hasDomain ; sh:severity s223:g36 ], - [ rdfs:comment "A Zone shall have at least one zone temperature property using the relation hasProperty. " ; + [ g36:requirementLevel g36:Required ; + rdfs:comment "A Zone shall have at least one zone temperature property using the relation hasProperty. " ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -1089,7 +298,8 @@ g36:Zone a s223:Class, sh:path qudt:hasQuantityKind ] ] ] ; sh:qualifiedValueShapesDisjoint true ; sh:severity s223:g36 ], - [ rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ; + [ g36:requirementLevel g36:Applicable ; + rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -1104,7 +314,8 @@ g36:Zone a s223:Class, sh:path s223:hasAspect ] ] ] ; sh:qualifiedValueShapesDisjoint true ; sh:severity sh:Info ], - [ rdfs:comment "A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ; + [ g36:requirementLevel g36:Applicable ; + rdfs:comment "A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -1118,7 +329,8 @@ g36:Zone a s223:Class, sh:minCount 1 ; sh:path s223:ofSubstance ] ] ] ; sh:severity sh:Info ], - [ rdfs:comment "A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ; + [ g36:requirementLevel g36:Applicable ; + rdfs:comment "A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ; sh:minCount 1 ; sh:path s223:hasProperty ; sh:qualifiedMinCount 1 ; @@ -1127,6 +339,31 @@ g36:Zone a s223:Class, sh:maxCount 1 ; sh:minCount 1 ; sh:path s223:hasEnumerationKind ] ] ] ; + sh:severity sh:Info ], + [ g36:requirementLevel g36:Applicable ; + rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty." ; + sh:minCount 1 ; + sh:path s223:hasProperty ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:EnumeratedObservableProperty ; + sh:node [ sh:property [ sh:class s223:EnumerationKind-OnOff ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasEnumerationKind ], + [ rdfs:comment "Property shall be measured at a window." ; + sh:class s223:Window ; + sh:path [ sh:alternativePath ( ( [ sh:inversePath s223:observes ] s223:hasMeasurementLocation ) [ sh:inversePath s223:hasProperty ] ) ] ] ] ] ; + sh:severity sh:Info ], + [ g36:requirementLevel g36:Applicable ; + rdfs:comment "A Zone shall have at least one zone thermostat override switch property using the relation hasProperty." ; + sh:minCount 1 ; + sh:path s223:hasProperty ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:EnumeratedObservableProperty ; + sh:node [ sh:property [ sh:class s223:EnumerationKind-Override ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasEnumerationKind ] ] ] ; sh:severity sh:Info ] ; sh:severity s223:g36 . @@ -1136,12 +373,14 @@ g36:ZoneGroup a s223:Class, rdfs:label "Zone Group" ; rdfs:comment "A ZoneGroup is a grouping of zones that may be scheduled together. Zone groupings must be assigned based on rules in section 3.1.3 of Guideline 36." ; rdfs:subClassOf s223:ZoneGroup ; - sh:property [ rdfs:comment "A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ; + sh:property [ g36:requirementLevel g36:Required ; + rdfs:comment "A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ; sh:hasValue s223:Domain-HVAC ; sh:minCount 1 ; sh:path s223:hasDomain ; sh:severity s223:g36 ], - [ rdfs:comment "A ZoneGroup shall contain at least one Zone using the relation contains." ; + [ g36:requirementLevel g36:Required ; + rdfs:comment "A ZoneGroup shall contain at least one Zone using the relation contains." ; sh:class g36:Zone ; sh:minCount 1 ; sh:path s223:contains ; @@ -1961,6 +1200,26 @@ s223:Actuator a s223:Class, sh:minCount 1 ; sh:path s223:commandedByProperty ] . +s223:AirHandlingUnit a s223:Class, + sh:NodeShape ; + rdfs:label "Air handling unit" ; + rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system." ; + rdfs:subClassOf s223:Equipment ; + sh:property [ rdfs:comment "An AirHandlingUnit shall have at least one inlet using the medium Air." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; + sh:node [ sh:property [ sh:class s223:Medium-Air ; + sh:path s223:hasMedium ] ] ] ], + [ rdfs:comment "An AirHandlingUnit shall have at least one outlet using the medium Air." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; + sh:node [ sh:property [ sh:class s223:Medium-Air ; + sh:path s223:hasMedium ] ] ] ] . + s223:BACnetExternalReference a s223:Class, sh:NodeShape ; rdfs:label "BACnetExternalReference" ; @@ -2202,11 +1461,7 @@ s223:DifferentialSensor a s223:Class, rdfs:label "Differential sensor" ; rdfs:comment "A sensor that measures the difference of a quantity between any two points in the system." ; rdfs:subClassOf s223:AbstractSensor ; - sh:property [ rdfs:comment "A Differential Sensor must be defined in terms of the QuantityKind that is being measured." ; - sh:class qudt:QuantityKind ; - sh:minCount 1 ; - sh:path ( s223:observes qudt:hasQuantityKind ) ], - [ rdfs:comment "A Differential Sensor must have different values for hasObservationLocationHigh and hasObservationLocationLow." ; + sh:property [ rdfs:comment "A Differential Sensor must have different values for hasObservationLocationHigh and hasObservationLocationLow." ; sh:path s223:hasObservationLocationHigh ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "Ensure that the values of hasObservationLocationHigh and hasObservationLocationLow are distinct." ; @@ -2219,7 +1474,11 @@ WHERE { $this s223:hasObservationLocationLow ?low . FILTER (?high = ?low) . } -""" ] ] ; +""" ] ], + [ rdfs:comment "A Differential Sensor must be defined in terms of the QuantityKind that is being measured." ; + sh:class qudt:QuantityKind ; + sh:minCount 1 ; + sh:path ( s223:observes qudt:hasQuantityKind ) ] ; sh:xone ( [ sh:property [ rdfs:comment "A DifferentialSensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocationHigh." ; sh:class s223:Connectable ; sh:maxCount 1 ; @@ -2260,6 +1519,20 @@ s223:Door a s223:Class, sh:node [ sh:property [ sh:class s223:Medium-Air ; sh:path s223:hasMedium ] ] ] ] . +s223:DualDuctTerminal a s223:Class, + sh:NodeShape ; + rdfs:label "Dual duct air terminal." ; + rdfs:comment "A dual duct air terminal mixes two independent sources of primary air." ; + rdfs:seeAlso s223:TerminalUnit ; + rdfs:subClassOf s223:TerminalUnit ; + sh:property [ rdfs:comment "A DualDuctTerminal shall have at least two inlets using the medium Air." ; + sh:minCount 2 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 2 ; + sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; + sh:node [ sh:property [ sh:class s223:Medium-Air ; + sh:path s223:hasMedium ] ] ] ] . + s223:Duct a s223:Class, sh:NodeShape ; rdfs:label "Duct" ; @@ -2400,6 +1673,60 @@ s223:FanCoilUnit a s223:Class, sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:in ( s223:Role-Heating s223:Role-Cooling ) ] ] . +s223:FanPoweredTerminal a s223:Class, + sh:NodeShape ; + rdfs:label "Fan Powered Air Terminal" ; + rdfs:comment "An air terminal containing a fan. Airflow may pass through or be parallel to the fan. These units may also have supplemental heating or cooling." ; + rdfs:subClassOf s223:TerminalUnit ; + sh:property [ rdfs:comment "A FanPoweredTerminal must be associated with at least one Fan by using the relation contains." ; + sh:minCount 1 ; + sh:path s223:contains ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:Fan ] ] . + +s223:Filter a s223:Class, + sh:NodeShape ; + rdfs:label "Filter" ; + rdfs:comment "A device that removes contaminants from gases or liquids." ; + rdfs:subClassOf s223:Equipment ; + sh:property [ rdfs:comment "A filter should have one common constituent between the inlet and outlet" ; + sh:path s223:hasConnectionPoint ; + sh:severity sh:Warning ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Ensure that the filter inlet and outlet have compatible mediums." ; + sh:message "{$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}." ; + sh:prefixes ; + sh:select """ +SELECT $this ?m2 ?m1 +WHERE { +$this s223:cnx ?cp, ?cp2 . +?cp a s223:InletConnectionPoint . +?cp2 a s223:OutletConnectionPoint . +?cp s223:hasMedium ?m1 . +?cp2 s223:hasMedium ?m2 . +FILTER (?m1 != ?m2 ) . +FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . +FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . +FILTER (NOT EXISTS { + SELECT $this ?con3 ?m1 ?m2 + WHERE { + ?m1 s223:hasConstituent/s223:ofSubstance ?con3 . + ?m2 s223:hasConstituent/s223:ofSubstance ?con3 . + } +} ) . +} +""" ] ], + [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ], + [ rdfs:comment "A Filter shall have at least one outlet." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ] . + s223:FlowSensor a s223:Class, sh:NodeShape ; rdfs:label "Flow sensor" ; @@ -2691,25 +2018,7 @@ s223:Pump a s223:Class, rdfs:label "Pump" ; rdfs:comment "A machine for imparting energy to a fluid, drawing a fluid into itself through an entrance port, and forcing the fluid out through an exhaust port." ; rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:or ( [ sh:property [ sh:class s223:Medium-Water ; - sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Refrigerant ; - sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Oil ; - sh:path s223:hasMedium ] ] ) ] ] ], - [ rdfs:comment "A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:or ( [ sh:property [ sh:class s223:Medium-Water ; - sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Refrigerant ; - sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Oil ; - sh:path s223:hasMedium ] ] ) ] ] ], - [ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media." ; + sh:property [ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media." ; sh:path s223:hasConnectionPoint ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media." ; @@ -2729,7 +2038,25 @@ WHERE { FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* ?mediuma}) . FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* ?mediumb}) . } -""" ] ] . +""" ] ], + [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; + sh:node [ sh:or ( [ sh:property [ sh:class s223:Medium-Water ; + sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Refrigerant ; + sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Oil ; + sh:path s223:hasMedium ] ] ) ] ] ], + [ rdfs:comment "A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; + sh:node [ sh:or ( [ sh:property [ sh:class s223:Medium-Water ; + sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Refrigerant ; + sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Medium-Oil ; + sh:path s223:hasMedium ] ] ) ] ] ] . s223:RadiantPanel a s223:Class, sh:NodeShape ; @@ -2894,6 +2221,17 @@ FILTER NOT EXISTS {?rule rdfs:comment ?comment} . """ ] ; sh:targetClass s223:Class . +s223:SingleDuctTerminal a s223:Class, + sh:NodeShape ; + rdfs:label "Single Duct Terminal." ; + rdfs:comment "An air-terminal unit assembly having one ducted air inlet and a damper for regulating the airflow rate." ; + rdfs:subClassOf s223:TerminalUnit ; + sh:property [ rdfs:comment "A SingleDuctTerminal must be associated with at least one Damper using the relation contains." ; + sh:minCount 1 ; + sh:path s223:contains ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:Damper ] ] . + s223:SolarThermalCollector a s223:Class, sh:NodeShape ; rdfs:label "Solar thermal collector" ; @@ -3042,6 +2380,7 @@ s223:inverseOf a rdf:Property ; g36:ChilledWaterCoilAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:CoolingCoil matches the constraints defined by g36:ChilledWaterCoil, it will be declared as an instance of that class." ; sh:condition g36:ChilledWaterCoil ; sh:object g36:ChilledWaterCoil ; sh:predicate rdf:type ; @@ -3050,6 +2389,7 @@ g36:ChilledWaterCoilAnnotation a sh:NodeShape ; g36:ChilledWaterValveAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:ChilledWaterValve, it will be declared as an instance of that class." ; sh:condition g36:ChilledWaterValve ; sh:object g36:ChilledWaterValve ; sh:predicate rdf:type ; @@ -3058,38 +2398,16 @@ g36:ChilledWaterValveAnnotation a sh:NodeShape ; g36:DamperAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:Damper, it will be declared as an instance of that class." ; sh:condition g36:Damper ; sh:object g36:Damper ; sh:predicate rdf:type ; sh:subject sh:this ] ; sh:targetClass s223:Damper . -g36:DualDuctTerminalWithDischargeSensorAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:DualDuctTerminalWithDischargeSensor ; - sh:object g36:DualDuctTerminalWithDischargeSensor ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:DualDuctTerminal . - -g36:DualDuctTerminalWithInletSensorsAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:DualDuctTerminalWithInletSensors ; - sh:object g36:DualDuctTerminalWithInletSensors ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:DualDuctTerminal . - -g36:DualFanDualDuctAirHandlingUnitAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:DualFanDualDuctAirHandlingUnit ; - sh:object g36:DualFanDualDuctAirHandlingUnit ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:AirHandlingUnit . - g36:ElectricHeatingCoilAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:ResistanceHeater matches the constraints defined by g36:ElectricHeatingCoil, it will be declared as an instance of that class." ; sh:condition g36:ElectricHeatingCoil ; sh:object g36:ElectricHeatingCoil ; sh:predicate rdf:type ; @@ -3098,22 +2416,16 @@ g36:ElectricHeatingCoilAnnotation a sh:NodeShape ; g36:FanAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:Fan, it will be declared as an instance of that class." ; sh:condition g36:Fan ; sh:object g36:Fan ; sh:predicate rdf:type ; sh:subject sh:this ] ; sh:targetClass s223:Fan . -g36:FanPoweredTerminalAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:FanPoweredTerminal ; - sh:object g36:FanPoweredTerminal ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:FanPoweredTerminal . - g36:FanWithVFDAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:FanWithVFD, it will be declared as an instance of that class." ; sh:condition g36:FanWithVFD ; sh:object g36:FanWithVFD ; sh:predicate rdf:type ; @@ -3130,6 +2442,7 @@ g36:FilterAnnotation a sh:NodeShape ; g36:HotWaterCoilAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:HeatingCoil matches the constraints defined by g36:HotWaterCoil, it will be declared as an instance of that class." ; sh:condition g36:HotWaterCoil ; sh:object g36:HotWaterCoil ; sh:predicate rdf:type ; @@ -3138,87 +2451,32 @@ g36:HotWaterCoilAnnotation a sh:NodeShape ; g36:HotWaterValveAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:HotWaterValve, it will be declared as an instance of that class." ; sh:condition g36:HotWaterValve ; sh:object g36:HotWaterValve ; sh:predicate rdf:type ; sh:subject sh:this ] ; sh:targetClass s223:Valve . -g36:MultiZoneVAVAirHandlingUnitAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:MultiZoneVAVAirHandlingUnit ; - sh:object g36:MultiZoneVAVAirHandlingUnit ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:AirHandlingUnit . - -g36:SingleZoneVAVAirHandlingUnitAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:SingleZoneVAVAirHandlingUnit ; - sh:object g36:SingleZoneVAVAirHandlingUnit ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:AirHandlingUnit . +g36:Optional a s223:Class, + g36:Required, + sh:NodeShape ; + rdfs:label "Optional" ; + rdfs:comment "Optional monitoring points, not required for G36 sequences of control" ; + rdfs:subclassOf s223:EnumerationKind . g36:TwoPositionDamperAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:TwoPositionDamper, it will be declared as an instance of that class." ; sh:condition g36:TwoPositionDamper ; sh:object g36:TwoPositionDamper ; sh:predicate rdf:type ; sh:subject sh:this ] ; sh:targetClass s223:Damper . -g36:VAVAnnotation a sh:NodeShape ; - sh:rule [ a sh:TripleRule ; - sh:condition g36:VAV ; - sh:object g36:VAV ; - sh:predicate rdf:type ; - sh:subject sh:this ] ; - sh:targetClass s223:SingleDuctTerminal . - -g36:VAV_4-1 a sh:NodeShape ; - rdfs:label "VAV_4-1, with Cooling Only" ; - sh:property [ rdfs:comment "VAV outlet connection point maps to the Damper connection point" ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:OutletConnectionPoint ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:node [ sh:property [ sh:class g36:VAV ; - sh:minCount 1 ; - sh:path [ sh:inversePath s223:hasConnectionPoint ] ] ] ; - sh:path s223:mapsTo ] ] ] ], - [ sh:class s223:DomainSpace ; - sh:minCount 1 ; - sh:node [ sh:property [ sh:class g36:Zone ; - sh:minCount 1 ; - sh:path [ sh:inversePath s223:contains ] ] ] ; - sh:path s223:connectedTo ], - [ rdfs:comment "The Air Flow Station must hasObservationLocation the Damper InletConnectionPoint." ; - sh:class s223:InletConnectionPoint ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:node [ sh:property [ sh:class s223:Damper ; - sh:minCount 1 ; - sh:path [ sh:inversePath s223:hasConnectionPoint ] ] ] ; - sh:path s223:hasObservationLocation ] ; - sh:targetClass g36:VAV . - -g36:VAV_4-2 a sh:NodeShape ; - rdfs:label "VAV with reheat" ; - rdfs:comment "This could just be a rule, rather than a subclass of VAVWithReheat. Not sure which pattern is more sensible" ; - sh:property [ sh:class s223:DomainSpace ; - sh:minCount 1 ; - sh:node [ sh:property [ sh:class g36:Zone ; - sh:minCount 1 ; - sh:path [ sh:inversePath s223:contains ] ] ] ; - sh:path s223:connectedTo ; - sh:severity s223:g36 ] ; - sh:targetClass g36:VAVWithReheat . - g36:ZoneAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:Zone matches the constraints defined by g36:Zone, it will be declared as an instance of that class." ; sh:condition g36:Zone ; sh:object g36:Zone ; sh:predicate rdf:type ; @@ -3227,11 +2485,16 @@ g36:ZoneAnnotation a sh:NodeShape ; g36:ZoneGroupAnnotation a sh:NodeShape ; sh:rule [ a sh:TripleRule ; + rdfs:comment "If an instance of s223:ZoneGroup matches the constraints defined by g36:ZoneGroup, it will be declared as an instance of that class." ; sh:condition g36:ZoneGroup ; sh:object g36:ZoneGroup ; sh:predicate rdf:type ; sh:subject sh:this ] ; - sh:targetClass s223:Zone . + sh:targetClass s223:ZoneGroup . + +g36:requirementLevel a rdf:Property ; + rdfs:label "requirementLevel" ; + rdfs:comment "The relation requirementLevel relates a PropertyShape to an enumerated requirement level: optional, applicable, or required." . qudt:AbstractQuantityKind-qudt_latexSymbol rdfs:isDefinedBy ; sh:group qudt:IdentifiersAndDescriptionsPropertyGroup ; @@ -19853,49 +19116,6 @@ s223:Electricity-Neutral a s223:Class, rdfs:comment "Electricity-Neutral" ; rdfs:subClassOf s223:Medium-Electricity . -s223:Filter a s223:Class, - sh:NodeShape ; - rdfs:label "Filter" ; - rdfs:comment "A device that removes contaminants from gases or liquids." ; - rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ], - [ rdfs:comment "A Filter shall have at least one outlet." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ], - [ rdfs:comment "A filter should have one common constituent between the inlet and outlet" ; - sh:path s223:hasConnectionPoint ; - sh:severity sh:Warning ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Ensure that the filter inlet and outlet have compatible mediums." ; - sh:message "{$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}." ; - sh:prefixes ; - sh:select """ -SELECT $this ?m2 ?m1 -WHERE { -$this s223:cnx ?cp, ?cp2 . -?cp a s223:InletConnectionPoint . -?cp2 a s223:OutletConnectionPoint . -?cp s223:hasMedium ?m1 . -?cp2 s223:hasMedium ?m2 . -FILTER (?m1 != ?m2 ) . -FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . -FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . -FILTER (NOT EXISTS { - SELECT $this ?con3 ?m1 ?m2 - WHERE { - ?m1 s223:hasConstituent/s223:ofSubstance ?con3 . - ?m2 s223:hasConstituent/s223:ofSubstance ?con3 . - } -} ) . -} -""" ] ] . - s223:Gas-SuperHeated a s223:Class, s223:Gas-SuperHeated, sh:NodeShape ; @@ -20016,13 +19236,7 @@ s223:HeatExchanger a s223:Class, rdfs:label "Heat exchanger" ; rdfs:comment "A component intended to transfer heat from one medium to another while keeping the two media separate." ; rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "A heat exchanger shall have at least 4 connection points." ; - sh:minCount 4 ; - sh:path s223:hasConnectionPoint ], - [ rdfs:comment "If the relation hasRole is present it must associate the HeatExchanger with a EnumerationKind-Role." ; - sh:class s223:EnumerationKind-Role ; - sh:path s223:hasRole ], - [ rdfs:comment "Heat Exchangers should have the same number of non-electrical inlet and outlet connection points." ; + sh:property [ rdfs:comment "Heat Exchangers should have the same number of non-electrical inlet and outlet connection points." ; sh:path s223:hasConnectionPoint ; sh:severity sh:Warning ; sh:sparql [ a sh:SPARQLConstraint ; @@ -20058,7 +19272,13 @@ GROUP BY $this } FILTER (?incount != ?outcount) } -""" ] ] . +""" ] ], + [ rdfs:comment "A heat exchanger shall have at least 4 connection points." ; + sh:minCount 4 ; + sh:path s223:hasConnectionPoint ], + [ rdfs:comment "If the relation hasRole is present it must associate the HeatExchanger with a EnumerationKind-Role." ; + sh:class s223:EnumerationKind-Role ; + sh:path s223:hasRole ] . s223:Junction a s223:Class, sh:NodeShape ; @@ -20082,7 +19302,12 @@ s223:Junction a s223:Class, sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ; sh:qualifiedValueShapesDisjoint true ] ] ) ; - sh:property [ rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Junction." ; + sh:property [ rdfs:comment "A Junction must be associated with exactly one EnumerationKind-Medium using the relation hasMedium." ; + sh:class s223:Substance-Medium ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasMedium ], + [ rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Junction." ; sh:name "Test for compatible declared Medium" ; sh:path s223:hasMedium ; sh:sparql [ a sh:SPARQLConstraint ; @@ -20121,12 +19346,7 @@ FILTER (?m1 != ?m2 ) . FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . } -""" ] ], - [ rdfs:comment "A Junction must be associated with exactly one EnumerationKind-Medium using the relation hasMedium." ; - sh:class s223:Substance-Medium ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasMedium ] . +""" ] ] . s223:Light-Infrared a s223:Class, s223:Light-Infrared, @@ -20324,6 +19544,13 @@ s223:Role-Discharge a s223:Class, rdfs:comment "Role-Discharge" ; rdfs:subClassOf s223:EnumerationKind-Role . +s223:Role-Economizer a s223:Class, + s223:Role-Economizer, + sh:NodeShape ; + rdfs:label "Role-Economizer" ; + rdfs:comment "Role-Economizer" ; + rdfs:subClassOf s223:EnumerationKind-Role . + s223:Role-Evaporator a s223:Class, s223:Role-Evaporator, sh:NodeShape ; @@ -20331,6 +19558,13 @@ s223:Role-Evaporator a s223:Class, rdfs:comment "Role-Evaporator" ; rdfs:subClassOf s223:EnumerationKind-Role . +s223:Role-Exhaust a s223:Class, + s223:Role-Exhaust, + sh:NodeShape ; + rdfs:label "Role-Exhaust" ; + rdfs:comment "Role-Exhaust" ; + rdfs:subClassOf s223:EnumerationKind-Role . + s223:Role-Expansion a s223:Class, s223:Role-Expansion, sh:NodeShape ; @@ -20373,6 +19607,20 @@ s223:Role-Recirculating a s223:Class, rdfs:comment "Role-Recirculating" ; rdfs:subClassOf s223:EnumerationKind-Role . +s223:Role-Relief a s223:Class, + s223:Role-Relief, + sh:NodeShape ; + rdfs:label "Role-Relief" ; + rdfs:comment "Role-Relief" ; + rdfs:subClassOf s223:EnumerationKind-Role . + +s223:Role-Return a s223:Class, + s223:Role-Return, + sh:NodeShape ; + rdfs:label "Role-Return" ; + rdfs:comment "Role-Return" ; + rdfs:subClassOf s223:EnumerationKind-Role . + s223:Role-Secondary a s223:Class, s223:Role-Secondary, sh:NodeShape ; @@ -20380,6 +19628,13 @@ s223:Role-Secondary a s223:Class, rdfs:comment "Role-Secondary" ; rdfs:subClassOf s223:EnumerationKind-Role . +s223:Role-Supply a s223:Class, + s223:Role-Supply, + sh:NodeShape ; + rdfs:label "Role-Supply" ; + rdfs:comment "Role-Supply" ; + rdfs:subClassOf s223:EnumerationKind-Role . + s223:RunStatus-Off a s223:Class, s223:RunStatus-Off, sh:NodeShape ; @@ -20562,26 +19817,6 @@ s223:Window a s223:Class, sh:node [ sh:property [ sh:class s223:EM-Light ; sh:path s223:hasMedium ] ] ] ] . -s223:ZoneGroup a s223:Class, - sh:NodeShape ; - rdfs:label "Zone group" ; - rdfs:comment "A ZoneGroup is a logical grouping (collection) of Zones for some functional or system reason, to identify a domain of control, such as a Lighting Zone, or a heating zone." ; - rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "A ZoneGroup must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; - sh:class s223:EnumerationKind-Domain ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasDomain ], - [ rdfs:comment "A ZoneGroup must be associated with at least one Zone using the relation hasZone." ; - sh:class s223:Zone ; - sh:minCount 1 ; - sh:path s223:hasZone ] ; - sh:rule [ a sh:TripleRule ; - rdfs:comment "Infer a hasDomain relation by checking any enclosed Zones to determine the domain." ; - sh:object [ sh:path ( s223:hasZone s223:hasDomain ) ] ; - sh:predicate s223:hasDomain ; - sh:subject sh:this ] . - s223:actuates a rdf:Property ; rdfs:label "actuates" ; rdfs:comment "The relation actuates binds an Actuator to the Equipment that it actuates. The Equipment will have the ActuatableProperty that commands the Actuator (see `s223:commandedByProperty`)." . @@ -40326,12 +39561,38 @@ s223:DCPositiveVoltage-5.0V a s223:Class, rdfs:comment "DCPositiveVoltage-5.0V" ; rdfs:subClassOf s223:DCVoltage-DCPositiveVoltage . +s223:DomainSpace a s223:Class, + sh:NodeShape ; + rdfs:label "Domain Space" ; + rdfs:comment "A DomainSpace is a member (or component) of a Zone and is associated with a Domain such as Lighting, HVAC, PhysicalSecurity, etc. Physical spaces enclose Domain spaces." ; + rdfs:subClassOf s223:Connectable ; + sh:property [ rdfs:comment "A DomainSpace must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; + sh:class s223:EnumerationKind-Domain ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasDomain ], + [ rdfs:comment "A DomainSpace must be enclosed by a PhysicalSpace." ; + sh:message "A DomainSpace must be enclosed by a PhysicalSpace." ; + sh:minCount 1 ; + sh:path [ sh:inversePath s223:encloses ] ; + sh:severity sh:Info ] ; + sh:rule [ a sh:TripleRule ; + rdfs:comment "Infer a hasDomain relation by checking any enclosing Zone to determine the domain." ; + sh:object [ sh:path ( [ sh:inversePath s223:hasDomainSpace ] s223:hasDomain ) ] ; + sh:predicate s223:hasDomain ; + sh:subject sh:this ] . + s223:EnumerableProperty a s223:Class, sh:NodeShape ; rdfs:label "Enumerable Property" ; rdfs:comment "An EnumerableProperty is a property with an enumerated (fixed) set of possible values." ; rdfs:subClassOf s223:Property ; - sh:property [ rdfs:comment "Checks for valid enumeration value consistent with the stated EnumerationKind." ; + sh:property [ rdfs:comment "An EnumerableProperty must be associated with exactly one EnumerationKind using the relation hasEnumerationKind." ; + sh:class s223:EnumerationKind ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasEnumerationKind ], + [ rdfs:comment "Checks for valid enumeration value consistent with the stated EnumerationKind." ; sh:path s223:hasValue ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "Checks for valid enumeration value consistent with the stated EnumerationKind." ; @@ -40344,12 +39605,7 @@ $this s223:hasValue ?value . $this s223:hasEnumerationKind ?kind . FILTER (NOT EXISTS {?value a/rdfs:subClassOf* ?kind}) . } -""" ] ], - [ rdfs:comment "An EnumerableProperty must be associated with exactly one EnumerationKind using the relation hasEnumerationKind." ; - sh:class s223:EnumerationKind ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasEnumerationKind ] . +""" ] ] . s223:ExternalReference a s223:Class, sh:NodeShape ; @@ -40358,17 +39614,6 @@ s223:ExternalReference a s223:Class, rdfs:comment "ExternalReference is an abstract class that represents a thing that contains API or protocol parameter values necessary to associate a property with a value." ; rdfs:subClassOf s223:Concept . -s223:FanPoweredTerminal a s223:Class, - sh:NodeShape ; - rdfs:label "Fan Powered Air Terminal" ; - rdfs:comment "An air terminal containing a fan. Airflow may pass through or be parallel to the fan. These units may also have supplemental heating or cooling." ; - rdfs:subClassOf s223:TerminalUnit ; - sh:property [ rdfs:comment "A FanPoweredTerminal must be associated with at least one Fan by using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:Fan ] ] . - s223:HeatingCoil a s223:Class, sh:NodeShape ; rdfs:label "Heating coil" ; @@ -40423,17 +39668,6 @@ s223:ResistanceHeater a s223:Class, sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class s223:Role-Heating ] ] . -s223:SingleDuctTerminal a s223:Class, - sh:NodeShape ; - rdfs:label "Single Duct Terminal." ; - rdfs:comment "An air-terminal unit assembly having one ducted air inlet and a damper for regulating the airflow rate." ; - rdfs:subClassOf s223:TerminalUnit ; - sh:property [ rdfs:comment "A SingleDuctTerminal must be associated with at least one Damper using the relation contains." ; - sh:minCount 1 ; - sh:path s223:contains ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:Damper ] ] . - s223:Substance-CO2 a s223:Class, s223:Substance-CO2, sh:NodeShape ; @@ -40741,6 +39975,26 @@ s223:Water-HotWater a s223:Class, rdfs:comment "Water-Hot water" ; rdfs:subClassOf s223:Medium-Water . +s223:ZoneGroup a s223:Class, + sh:NodeShape ; + rdfs:label "Zone group" ; + rdfs:comment "A ZoneGroup is a logical grouping (collection) of Zones for some functional or system reason, to identify a domain of control, such as a Lighting Zone, or a heating zone." ; + rdfs:subClassOf s223:Concept ; + sh:property [ rdfs:comment "A ZoneGroup must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; + sh:class s223:EnumerationKind-Domain ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasDomain ], + [ rdfs:comment "A ZoneGroup must be associated with at least one Zone using the relation hasZone." ; + sh:class s223:Zone ; + sh:minCount 1 ; + sh:path s223:hasZone ] ; + sh:rule [ a sh:TripleRule ; + rdfs:comment "Infer a hasDomain relation by checking any enclosed Zones to determine the domain." ; + sh:object [ sh:path ( s223:hasZone s223:hasDomain ) ] ; + sh:predicate s223:hasDomain ; + sh:subject sh:this ] . + s223:commandedByProperty a rdf:Property ; rdfs:label "commanded by Property" ; rdfs:comment "The relation commandedByProperty binds an Actuator to the ActuatableProperty that it responds to. This Property will be owned by the equipment that it actuates (see `s223:actuates`)." . @@ -46902,13 +46156,6 @@ s223:Role-Controller a s223:Class, rdfs:comment "Role-Controller" ; rdfs:subClassOf s223:EnumerationKind-Role . -s223:Role-Exhaust a s223:Class, - s223:Role-Exhaust, - sh:NodeShape ; - rdfs:label "Role-Exhaust" ; - rdfs:comment "Role-Exhaust" ; - rdfs:subClassOf s223:EnumerationKind-Role . - s223:Signal-Modulated a s223:Class, s223:Signal-Modulated, sh:NodeShape ; @@ -46976,30 +46223,71 @@ s223:Water-GlycolSolution a s223:Class, qudt:hasUnit unit:PERCENT ] ; rdfs:comment "This class has enumerated subclasses of water-glycol solutions in various concentrations." ; rdfs:subClassOf s223:Medium-Water ; - sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Water." ; + sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Glycol." ; sh:path s223:hasConstituent ; sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class s223:QuantifiableProperty ; - sh:node [ sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Water." ; - sh:hasValue s223:Medium-Water ; + sh:node [ sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Glycol." ; + sh:hasValue s223:Medium-Glycol ; sh:path s223:ofSubstance ], [ rdfs:comment "The quantity kind of the constituent must be VolumeFraction." ; sh:hasValue quantitykind:VolumeFraction ; sh:path qudt:hasQuantityKind ] ] ] ], - [ rdfs:comment "There must be at least two QuantifiableProperties that characterize the constituents of a Water-GlycolSolution." ; - sh:class s223:QuantifiableProperty ; - sh:minCount 2 ; - sh:path s223:hasConstituent ], - [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Glycol." ; + [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Water." ; sh:path s223:hasConstituent ; sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class s223:QuantifiableProperty ; - sh:node [ sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Glycol." ; - sh:hasValue s223:Medium-Glycol ; + sh:node [ sh:property [ rdfs:comment "One of the constituents of a Water-GlycolSolution must be Medium-Water." ; + sh:hasValue s223:Medium-Water ; sh:path s223:ofSubstance ], [ rdfs:comment "The quantity kind of the constituent must be VolumeFraction." ; sh:hasValue quantitykind:VolumeFraction ; - sh:path qudt:hasQuantityKind ] ] ] ] . + sh:path qudt:hasQuantityKind ] ] ] ], + [ rdfs:comment "There must be at least two QuantifiableProperties that characterize the constituents of a Water-GlycolSolution." ; + sh:class s223:QuantifiableProperty ; + sh:minCount 2 ; + sh:path s223:hasConstituent ] . + +s223:Zone a s223:Class, + sh:NodeShape ; + rdfs:label "Zone" ; + rdfs:comment "A Zone is a logical grouping (collection) of domain spaces for some functional or system reason, to identify a domain of control, such as a Lighting Zone, or a heating zone" ; + rdfs:subClassOf s223:Concept ; + sh:property [ rdfs:comment "A Zone must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; + sh:class s223:EnumerationKind-Domain ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:path s223:hasDomain ], + [ rdfs:comment "A Zone must be associated with at least one DomainSpace using the relation hasDomainSpace." ; + sh:class s223:DomainSpace ; + sh:minCount 1 ; + sh:path s223:hasDomainSpace ], + [ rdfs:comment "The associated Domain of a Zone and the Domain of the DomainSpaces it contains must be the same." ; + sh:path s223:hasDomain ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "The associated Domain of a Zone and the Domain of the DomainSpaces it contains must be the same." ; + sh:message "Zone {$this} has a Domain of {?domain}, but it contains a DomainSpace {?ds} which has a Domain of {?dsdomain}. These should be the same." ; + sh:prefixes ; + sh:select """ +SELECT DISTINCT $this ?domain ?ds ?dsdomain +WHERE { +$this a s223:Zone . +$this s223:hasDomain ?domain . +$this s223:contains ?ds . +?ds s223:hasDomain ?dsdomain . +FILTER (?domain != ?dsdomain) +} +""" ] ] ; + sh:rule [ a sh:TripleRule ; + rdfs:comment "Infer a hasDomain relation by checking any enclosed DomainSpaces to determine the domain." ; + sh:object [ sh:path ( s223:hasDomainSpace s223:hasDomain ) ] ; + sh:predicate s223:hasDomain ; + sh:subject sh:this ], + [ a sh:TripleRule ; + rdfs:comment "Infer a hasDomain relation by checking any enclosing ZoneGroup to determine the domain." ; + sh:object [ sh:path ( [ sh:inversePath s223:hasZone ] s223:hasDomain ) ] ; + sh:predicate s223:hasDomain ; + sh:subject sh:this ] . s223:connected a s223:SymmetricProperty, rdf:Property ; @@ -47019,10 +46307,6 @@ s223:hasObservationLocationLow a rdf:Property ; rdfs:comment "The relation hasObservationLocationLow associates a differential sensor to one of the topological locations where a differential property is observed (see `s223:observes`)." ; rdfs:subPropertyOf s223:hasObservationLocation . -s223:hasValue a rdf:Property ; - rdfs:label "hasValue" ; - rdfs:comment "hasValue is used to contain a fixed value that is part of a 223 model, rather than a computed, measured, or externally derived variable." . - s223:hasZone a rdf:Property ; rdfs:label "has zone" ; rdfs:comment "The relation hasZone is used to associate a ZoneGroup with the Zones that make up that ZoneGroup." . @@ -53788,20 +53072,6 @@ s223:DC-6V a s223:Class, rdfs:comment "This class has enumerated instances of all polarities of 6 volt electricity." ; rdfs:subClassOf s223:Electricity-DC . -s223:DualDuctTerminal a s223:Class, - sh:NodeShape ; - rdfs:label "Dual duct air terminal." ; - rdfs:comment "A dual duct air terminal mixes two independent sources of primary air." ; - rdfs:seeAlso s223:TerminalUnit ; - rdfs:subClassOf s223:TerminalUnit ; - sh:property [ rdfs:comment "A DualDuctTerminal shall have at least two inlets using the medium Air." ; - sh:minCount 2 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 2 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:Medium-Air ; - sh:path s223:hasMedium ] ] ] ] . - s223:EnumerationKind-Direction a s223:Class, s223:EnumerationKind-Direction, sh:NodeShape ; @@ -53987,13 +53257,6 @@ s223:Occupancy-Presence a s223:Class, rdfs:comment "This class has enumerated subclasses indicating whether physical presence is detected or not." ; rdfs:subClassOf s223:EnumerationKind-Occupancy . -s223:Role-Economizer a s223:Class, - s223:Role-Economizer, - sh:NodeShape ; - rdfs:label "Role-Economizer" ; - rdfs:comment "Role-Economizer" ; - rdfs:subClassOf s223:EnumerationKind-Role . - s223:TerminalUnit a s223:Class, sh:NodeShape ; rdfs:label "Terminal Unit" ; @@ -54069,47 +53332,6 @@ s223:Voltage-6V a s223:Class, rdfs:subClassOf s223:Numerical-Voltage, s223:QuantifiableProperty . -s223:Zone a s223:Class, - sh:NodeShape ; - rdfs:label "Zone" ; - rdfs:comment "A Zone is a logical grouping (collection) of domain spaces for some functional or system reason, to identify a domain of control, such as a Lighting Zone, or a heating zone" ; - rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "The associated Domain of a Zone and the Domain of the DomainSpaces it contains must be the same." ; - sh:path s223:hasDomain ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "The associated Domain of a Zone and the Domain of the DomainSpaces it contains must be the same." ; - sh:message "Zone {$this} has a Domain of {?domain}, but it contains a DomainSpace {?ds} which has a Domain of {?dsdomain}. These should be the same." ; - sh:prefixes ; - sh:select """ -SELECT DISTINCT $this ?domain ?ds ?dsdomain -WHERE { -$this a s223:Zone . -$this s223:hasDomain ?domain . -$this s223:contains ?ds . -?ds s223:hasDomain ?dsdomain . -FILTER (?domain != ?dsdomain) -} -""" ] ], - [ rdfs:comment "A Zone must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; - sh:class s223:EnumerationKind-Domain ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasDomain ], - [ rdfs:comment "A Zone must be associated with at least one DomainSpace using the relation hasDomainSpace." ; - sh:class s223:DomainSpace ; - sh:minCount 1 ; - sh:path s223:hasDomainSpace ] ; - sh:rule [ a sh:TripleRule ; - rdfs:comment "Infer a hasDomain relation by checking any enclosed DomainSpaces to determine the domain." ; - sh:object [ sh:path ( s223:hasDomainSpace s223:hasDomain ) ] ; - sh:predicate s223:hasDomain ; - sh:subject sh:this ], - [ a sh:TripleRule ; - rdfs:comment "Infer a hasDomain relation by checking any enclosing ZoneGroup to determine the domain." ; - sh:object [ sh:path ( [ sh:inversePath s223:hasZone ] s223:hasDomain ) ] ; - sh:predicate s223:hasDomain ; - sh:subject sh:this ] . - s223:connectedFrom a rdf:Property ; rdfs:label "connected from" ; s223:inverseOf s223:connectedTo ; @@ -54126,6 +53348,10 @@ s223:hasObservationLocationHigh a rdf:Property ; rdfs:comment "The relation hasObservationLocationHigh associates a differential sensor to one of the topological locations where a differential property is observed (see `s223:observes`)." ; rdfs:subPropertyOf s223:hasObservationLocation . +s223:hasValue a rdf:Property ; + rdfs:label "hasValue" ; + rdfs:comment "hasValue is used to contain a fixed value that is part of a 223 model, rather than a computed, measured, or externally derived variable." . + qudt:Aspect a qudt:AspectClass, sh:NodeShape ; rdfs:label "QUDT Aspect" ; @@ -56911,6 +56137,27 @@ The abvolt is another option for a unit of voltage in the cgs system."""^^rdf:HT qudt:symbol "statV/cm" ; rdfs:isDefinedBy . +s223:Damper a s223:Class, + sh:NodeShape ; + rdfs:label "Damper" ; + rdfs:comment "An element inserted into an air-distribution system or element of an air-distribution system permitting modification of the air resistance of the system and consequently changing the airflow rate or shutting off the airflow." ; + rdfs:subClassOf s223:Equipment ; + sh:property [ rdfs:comment "A Damper shall have at least one inlet using the medium Air.", + "Does this need to allow bidirectional connection points?" ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; + sh:node [ sh:property [ sh:class s223:Medium-Air ; + sh:path s223:hasMedium ] ] ] ], + [ rdfs:comment "A Damper shall have at least one outlet using the medium Air." ; + sh:minCount 1 ; + sh:path s223:hasConnectionPoint ; + sh:qualifiedMinCount 1 ; + sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; + sh:node [ sh:property [ sh:class s223:Medium-Air ; + sh:path s223:hasMedium ] ] ] ] . + s223:EnumeratedActuatableProperty a s223:Class, sh:NodeShape ; rdfs:label "Enumerated actuatable property" ; @@ -57137,6 +56384,20 @@ s223:QuantifiableActuatableProperty a s223:Class, rdfs:subClassOf s223:ActuatableProperty, s223:QuantifiableProperty . +s223:QuantifiableObservableProperty a s223:Class, + sh:NodeShape ; + rdfs:label "Quantifiable Observable Property" ; + rdfs:comment "This class is for quantifiable properties of which numerical values cannot be modified by a user or a machine outside of the model, but only observed, like a temperature reading or a voltage measure." ; + rdfs:subClassOf s223:ObservableProperty, + s223:QuantifiableProperty . + +s223:Role-Cooling a s223:Class, + s223:Role-Cooling, + sh:NodeShape ; + rdfs:label "Role-Cooling" ; + rdfs:comment "Role-Cooling" ; + rdfs:subClassOf s223:EnumerationKind-Role . + s223:Substance-Particulate a s223:Class, s223:Substance-Particulate, sh:NodeShape ; @@ -57179,6 +56440,13 @@ s223:hasVoltage a rdf:Property ; rdfs:label "hasVoltage" ; rdfs:comment "The relation hasVoltage is used to identify the voltage of an electricity enumeration kind. " . +g36:Applicable a s223:Class, + g36:Required, + sh:NodeShape ; + rdfs:label "Applicable" ; + rdfs:comment "Required for G36 sequences of control if and only if the associate hardware is present" ; + rdfs:subclassOf s223:EnumerationKind . + qudt:UnitEquivalencePropertyGroup a sh:PropertyGroup ; rdfs:label "Equivalent Units" ; rdfs:isDefinedBy ; @@ -58525,53 +57793,12 @@ unit:V-PER-M a qudt:DerivedUnit, qudt:uneceCommonCode "D50" ; rdfs:isDefinedBy . -s223:AirHandlingUnit a s223:Class, - sh:NodeShape ; - rdfs:label "Air handling unit" ; - rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system." ; - rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "An AirHandlingUnit shall have at least one inlet using the medium Air." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:Medium-Air ; - sh:path s223:hasMedium ] ] ] ], - [ rdfs:comment "An AirHandlingUnit shall have at least one outlet using the medium Air." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:Medium-Air ; - sh:path s223:hasMedium ] ] ] ] . - s223:BidirectionalConnectionPoint a s223:Class, sh:NodeShape ; rdfs:label "Bidirectional Connection Point" ; rdfs:comment "A BidirectionalConnectionPoint is a predefined subclass of ConnectionPoint. Using a BidirectionalConnectionPoint implies that the flow direction is not fixed in one direction. It depends on the status of some other part of the system, such as a valve position, that is expected to change during operation (see `s223:Direction-Bidirectional`) or to model energy transfer occurring without specific flow direction." ; rdfs:subClassOf s223:ConnectionPoint . -s223:Damper a s223:Class, - sh:NodeShape ; - rdfs:label "Damper" ; - rdfs:comment "An element inserted into an air-distribution system or element of an air-distribution system permitting modification of the air resistance of the system and consequently changing the airflow rate or shutting off the airflow." ; - rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "A Damper shall have at least one inlet using the medium Air.", - "Does this need to allow bidirectional connection points?" ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:Medium-Air ; - sh:path s223:hasMedium ] ] ] ], - [ rdfs:comment "A Damper shall have at least one outlet using the medium Air." ; - sh:minCount 1 ; - sh:path s223:hasConnectionPoint ; - sh:qualifiedMinCount 1 ; - sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ; - sh:node [ sh:property [ sh:class s223:Medium-Air ; - sh:path s223:hasMedium ] ] ] ] . - s223:DayOfWeek-Weekday a s223:Class, s223:DayOfWeek-Weekday, sh:NodeShape ; @@ -58652,6 +57879,10 @@ s223:Valve a s223:Class, sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ; sh:qualifiedValueShapesDisjoint true ] ] ) . +s223:hasObservationLocation a rdf:Property ; + rdfs:label "has observation location" ; + rdfs:comment "The relation hasObservationLocation associates a sensor to the topological location where it is observing the property (see `s223:observes`). The observation location can be a Connectable (see `s223:Connectable`), Connection (see `s223:Connection`), or ConnectionPoint (see `s223:ConnectioPoint`)." . + s223:ofSubstance a rdf:Property ; rdfs:label "of substance" ; rdfs:comment "The relation ofSubstance is used to associate a Property with a specific Substance." . @@ -59835,27 +59066,6 @@ unit:W-PER-M2-K a qudt:DerivedUnit, qudt:uneceCommonCode "D55" ; rdfs:isDefinedBy . -s223:DomainSpace a s223:Class, - sh:NodeShape ; - rdfs:label "Domain Space" ; - rdfs:comment "A DomainSpace is a member (or component) of a Zone and is associated with a Domain such as Lighting, HVAC, PhysicalSecurity, etc. Physical spaces enclose Domain spaces." ; - rdfs:subClassOf s223:Connectable ; - sh:property [ rdfs:comment "A DomainSpace must be enclosed by a PhysicalSpace." ; - sh:message "A DomainSpace must be enclosed by a PhysicalSpace." ; - sh:minCount 1 ; - sh:path [ sh:inversePath s223:encloses ] ; - sh:severity sh:Info ], - [ rdfs:comment "A DomainSpace must be associated with exactly one EnumerationKind-Domain using the relation hasDomain." ; - sh:class s223:EnumerationKind-Domain ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:path s223:hasDomain ] ; - sh:rule [ a sh:TripleRule ; - rdfs:comment "Infer a hasDomain relation by checking any enclosing Zone to determine the domain." ; - sh:object [ sh:path ( [ sh:inversePath s223:hasDomainSpace ] s223:hasDomain ) ] ; - sh:predicate s223:hasDomain ; - sh:subject sh:this ] . - s223:EnumerationKind-Numerical a s223:Class, s223:EnumerationKind-Numerical, sh:NodeShape ; @@ -59863,8 +59073,19 @@ s223:EnumerationKind-Numerical a s223:Class, qudt:hasQuantityKind quantitykind:Unknown ; qudt:hasUnit unit:UNKNOWN ; rdfs:comment "Numerical enumeration kinds are used to support the definitions of the Electricity medium. The enumerations instances in these classes have names that are recognizable by humans but are just a string for a computer application. To avoid the need to parse strings, each of these enumeration kinds have properties associated with the enumeration that represent electrical phase, voltage, and frequency. The purpose of these properties is to enable a machine to query them and obtain the same information that a person would associate with the sting" ; - rdfs:subClassOf s223:EnumerationKind, - s223:QuantifiableProperty . + rdfs:subClassOf s223:EnumerationKind ; + sh:property [ rdfs:comment "An EnumerationKind-Numerical can be associated with a decimal value using the relation hasValue." ; + sh:datatype xsd:decimal ; + sh:path s223:hasValue ], + [ rdfs:comment "An EnumerationKind-Numerical must be associated with at least one QuantityKind using the relation hasQuantityKind." ; + sh:class qudt:QuantityKind ; + sh:minCount 1 ; + sh:path qudt:hasQuantityKind ], + [ rdfs:comment "An EnumerationKind-Numerical must be associated with at least one Unit using the relation hasUnit." ; + sh:class qudt:Unit ; + sh:minCount 1 ; + sh:path qudt:hasUnit ; + sh:severity sh:Info ] . s223:EnumerationKind-Occupancy a s223:Class, s223:EnumerationKind-Occupancy, @@ -59906,13 +59127,19 @@ s223:LineNeutralVoltage-120V a s223:Class, rdfs:comment "120V Line-Neutral Voltage" ; rdfs:subClassOf s223:Numerical-LineNeutralVoltage . -s223:Role-Relief a s223:Class, - s223:Role-Relief, +s223:Role-Heating a s223:Class, + s223:Role-Heating, sh:NodeShape ; - rdfs:label "Role-Relief" ; - rdfs:comment "Role-Relief" ; + rdfs:label "Role-Heating" ; + rdfs:comment "Role-Heating" ; rdfs:subClassOf s223:EnumerationKind-Role . +s223:connectedTo a rdf:Property ; + rdfs:label "connected to" ; + s223:inverseOf s223:connectedFrom ; + rdfs:comment "The relation connectedTo indicates that connectable things are connected with a specific flow direction. A is connectedTo B, means a directionality beginning at A and ending at B. The inverse direction is indicated by connectedFrom (see `s223:connectedFrom`)." ; + rdfs:domain s223:Equipment . + qkdv:A-1E0L2I0M1H-1T-2D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -61156,13 +60383,6 @@ s223:EnumerationKind-Binary a s223:Class, rdfs:comment "This class has enumerated subclasses of True, False and Unknown used to describe the possible values of a binary property" ; rdfs:subClassOf s223:EnumerationKind . -s223:Role-Cooling a s223:Class, - s223:Role-Cooling, - sh:NodeShape ; - rdfs:label "Role-Cooling" ; - rdfs:comment "Role-Cooling" ; - rdfs:subClassOf s223:EnumerationKind-Role . - s223:Sensor a s223:Class, sh:NodeShape ; rdfs:label "Sensor" ; @@ -61216,6 +60436,10 @@ UNION sh:minCount 1 ; sh:path s223:observes ] ] ) . +s223:contains a rdf:Property ; + rdfs:label "contains" ; + rdfs:comment "The relation contains associates a PhysicalSpace or a piece of Equipment to a PhysicalSpace or another piece of Equipment, respectively." . + qudt:Verifiable a qudt:AspectClass, sh:NodeShape ; rdfs:label "Verifiable" ; @@ -61716,58 +60940,7 @@ A Connection may contain branches or intersections. These may be modeled using J sh:qualifiedMinCount 1 ; sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ; sh:qualifiedValueShapesDisjoint true ] ] ) ; - sh:property [ rdfs:comment "A Connection must only have a cnx relation with a ConnectionPoint" ; - sh:path s223:cnx ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "A Connection must only have a cnx relation with a ConnectionPoint" ; - sh:message "{$this} cannot have a s223:cnx relation to {?something}, because {?something} is not a ConnectionPoint." ; - sh:prefixes ; - sh:select """SELECT $this ?something -WHERE { -$this s223:cnx ?something . -FILTER NOT EXISTS {?something a/rdfs:subClassOf* s223:ConnectionPoint} . -}""" ] ], - [ rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Connection." ; - sh:name "Test for compatible declared Medium" ; - sh:path s223:hasMedium ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Connection." ; - sh:message "{$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ; - sh:prefixes ; - sh:select """ -SELECT $this ?m2 ?cp ?m1 -WHERE { -$this s223:cnx ?cp . -?cp a/rdfs:subClassOf* s223:ConnectionPoint . -?cp s223:hasMedium ?m1 . -$this s223:hasMedium ?m2 . -FILTER (?m1 != ?m2 ) . -FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . -FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . -} -""" ] ], - [ rdfs:comment "Ensure that the Medium identified by all the associated ConnectionPoints via the s223:hasMedium relation are compatible with one another." ; - sh:name "Test for compatible declared Medium" ; - sh:path s223:hasMedium ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Ensure that the Medium identified by all the associated ConnectionPoints via the s223:hasMedium relation are compatible with one another." ; - sh:message "{?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ; - sh:prefixes ; - sh:select """ -SELECT $this ?cp1 ?m1 ?cp2 ?m2 -WHERE { -$this s223:cnx ?cp1 . -?cp1 a/rdfs:subClassOf* s223:ConnectionPoint . -?cp1 s223:hasMedium ?m1 . -$this s223:cnx ?cp2 . -?cp2 a/rdfs:subClassOf* s223:ConnectionPoint . -?cp2 s223:hasMedium ?m2 . -FILTER (?m1 != ?m2 ) . -FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . -FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . -} -""" ] ], - [ rdfs:comment "If the relation connectsAt is present it must associate the Connection with a ConnectionPoint." ; + sh:property [ rdfs:comment "If the relation connectsAt is present it must associate the Connection with a ConnectionPoint." ; sh:class s223:ConnectionPoint ; sh:path s223:connectsAt ], [ rdfs:comment "If the relation connectsFrom is present it must associate the Connection with a Connectable." ; @@ -61796,7 +60969,58 @@ FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . sh:message "A Connection must have two or more cnx relations to ConnectionPoints" ; sh:minCount 2 ; sh:path s223:cnx ; - sh:severity sh:Info ] ; + sh:severity sh:Info ], + [ rdfs:comment "A Connection must only have a cnx relation with a ConnectionPoint" ; + sh:path s223:cnx ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "A Connection must only have a cnx relation with a ConnectionPoint" ; + sh:message "{$this} cannot have a s223:cnx relation to {?something}, because {?something} is not a ConnectionPoint." ; + sh:prefixes ; + sh:select """SELECT $this ?something +WHERE { +$this s223:cnx ?something . +FILTER NOT EXISTS {?something a/rdfs:subClassOf* s223:ConnectionPoint} . +}""" ] ], + [ rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Connection." ; + sh:name "Test for compatible declared Medium" ; + sh:path s223:hasMedium ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Ensure that the Medium identified by a ConnectionPoint via the s223:hasMedium relation is compatible with the Medium identified by the associated Connection." ; + sh:message "{$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ; + sh:prefixes ; + sh:select """ +SELECT $this ?m2 ?cp ?m1 +WHERE { +$this s223:cnx ?cp . +?cp a/rdfs:subClassOf* s223:ConnectionPoint . +?cp s223:hasMedium ?m1 . +$this s223:hasMedium ?m2 . +FILTER (?m1 != ?m2 ) . +FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . +FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . +} +""" ] ], + [ rdfs:comment "Ensure that the Medium identified by all the associated ConnectionPoints via the s223:hasMedium relation are compatible with one another." ; + sh:name "Test for compatible declared Medium" ; + sh:path s223:hasMedium ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Ensure that the Medium identified by all the associated ConnectionPoints via the s223:hasMedium relation are compatible with one another." ; + sh:message "{?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ; + sh:prefixes ; + sh:select """ +SELECT $this ?cp1 ?m1 ?cp2 ?m2 +WHERE { +$this s223:cnx ?cp1 . +?cp1 a/rdfs:subClassOf* s223:ConnectionPoint . +?cp1 s223:hasMedium ?m1 . +$this s223:cnx ?cp2 . +?cp2 a/rdfs:subClassOf* s223:ConnectionPoint . +?cp2 s223:hasMedium ?m2 . +FILTER (?m1 != ?m2 ) . +FILTER (NOT EXISTS {?m2 a/rdfs:subClassOf* ?m1}) . +FILTER (NOT EXISTS {?m1 a/rdfs:subClassOf* ?m2}) . +} +""" ] ] ; sh:rule [ a sh:SPARQLRule ; rdfs:comment "Infer the connectsFrom relation using connectsAt" ; sh:construct """ @@ -61847,11 +61071,9 @@ s223:EM-Light a s223:Class, rdfs:comment "The EM-Light class has enumerated subclasses of what are considered visible or near-visible light." ; rdfs:subClassOf s223:Medium-EM . -s223:connectedTo a rdf:Property ; - rdfs:label "connected to" ; - s223:inverseOf s223:connectedFrom ; - rdfs:comment "The relation connectedTo indicates that connectable things are connected with a specific flow direction. A is connectedTo B, means a directionality beginning at A and ending at B. The inverse direction is indicated by connectedFrom (see `s223:connectedFrom`)." ; - rdfs:domain s223:Equipment . +s223:mapsTo a rdf:Property ; + rdfs:label "mapsTo" ; + rdfs:comment "The relation mapsTo is used to associate a ConnectionPoint of a Connectable to a corresponding ConnectionPoint of the one containing it (see `pub:equipment-containment`). The associated ConnectionPoints must have the same direction (see `s223:EnumerationKind-Direction`) and compatiable medium Substance-Medium." . qudt:NumericUnionList a rdf:List ; rdfs:label "Numeric Union List" ; @@ -62417,27 +61639,9 @@ s223:LineLineVoltage-240V a s223:Class, rdfs:comment "240V Line-Line Voltage" ; rdfs:subClassOf s223:Numerical-LineLineVoltage . -s223:Role-Heating a s223:Class, - s223:Role-Heating, - sh:NodeShape ; - rdfs:label "Role-Heating" ; - rdfs:comment "Role-Heating" ; - rdfs:subClassOf s223:EnumerationKind-Role . - -s223:Role-Return a s223:Class, - s223:Role-Return, - sh:NodeShape ; - rdfs:label "Role-Return" ; - rdfs:comment "Role-Return" ; - rdfs:subClassOf s223:EnumerationKind-Role . - -s223:hasObservationLocation a rdf:Property ; - rdfs:label "has observation location" ; - rdfs:comment "The relation hasObservationLocation associates a sensor to the topological location where it is observing the property (see `s223:observes`). The observation location can be a Connectable (see `s223:Connectable`), Connection (see `s223:Connection`), or ConnectionPoint (see `s223:ConnectioPoint`)." . - -s223:mapsTo a rdf:Property ; - rdfs:label "mapsTo" ; - rdfs:comment "The relation mapsTo is used to associate a ConnectionPoint of a Connectable to a corresponding ConnectionPoint of the one containing it (see `pub:equipment-containment`). The associated ConnectionPoints must have the same direction (see `s223:EnumerationKind-Direction`) and compatiable medium Substance-Medium." . +s223:hasAspect a rdf:Property ; + rdfs:label "has aspect" ; + rdfs:comment "hasAspect is used to establish the context of a Property. The value must be an instance of EnumerationKind. For example, if a Property has a Temperature value of 45.3, the hasAspect relation is used to state what that represents, such as a Temperature limit during working hours, etc. A Property can have any number of hasAspect relations, as needed to establish the context." . qudt:HTMLOrStringOrLangStringOrLatexString a rdf:List ; rdfs:label "HTML or string or langString or LatexString" ; @@ -63645,13 +62849,6 @@ s223:EnumerationKind-Position a s223:Class, rdfs:comment "This class has enumerated subclasses of position such as closed or open." ; rdfs:subClassOf s223:EnumerationKind . -s223:Role-Supply a s223:Class, - s223:Role-Supply, - sh:NodeShape ; - rdfs:label "Role-Supply" ; - rdfs:comment "Role-Supply" ; - rdfs:subClassOf s223:EnumerationKind-Role . - s223:hasEnumerationKind a rdf:Property ; rdfs:label "has enumeration kind" ; rdfs:comment "The relation hasEnumerationKind associates an EnumerableProperty with a class of enumeration values. This is used to, for example, identify what kind of substance is transported along a Connection or which day of the week a setpoint is active." . @@ -64553,20 +63750,7 @@ A QuantifiableProperty (or subClass thereof) must always be associated with a Un Enumerable properties must be associated with an EnumerationKind. """ ; rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "" ; - sh:path s223:ofSubstance ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "If an incoming relation hasConstituent exists, then the Property must have a declared substance using the relation ofSubstance." ; - sh:message "Property {$this} is referred to by {?something} with s223:hasConstituent, but the Property has no value for s223:ofSubstance." ; - sh:prefixes ; - sh:select """ -SELECT $this ?something -WHERE { -?something s223:hasConstituent $this . -FILTER NOT EXISTS {$this s223:ofSubstance ?someSubstance} . -} -""" ] ], - [ rdfs:comment "If the relation hasAspect is present, it must associate the Property with an EnumerationKind." ; + sh:property [ rdfs:comment "If the relation hasAspect is present, it must associate the Property with an EnumerationKind." ; sh:class s223:EnumerationKind ; sh:path s223:hasAspect ], [ rdfs:comment "If the relation hasExternalReference is present it must associate the Property with an ExternalReference." ; @@ -64587,7 +63771,24 @@ FILTER NOT EXISTS {$this s223:ofSubstance ?someSubstance} . sh:class s223:FunctionBlock ; sh:maxCount 1 ; sh:message "A Property can be associated with at most one FunctionBlock using the inverse relation hasOutput." ; - sh:path [ sh:inversePath s223:hasOutput ] ] ; + sh:path [ sh:inversePath s223:hasOutput ] ], + [ rdfs:comment "" ; + sh:path s223:ofSubstance ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "If an incoming relation hasConstituent exists, then the Property must have a declared substance using the relation ofSubstance." ; + sh:message "Property {$this} is referred to by {?something} with s223:hasConstituent, but the Property has no value for s223:ofSubstance." ; + sh:prefixes ; + sh:select """ +SELECT $this ?something +WHERE { +?something s223:hasConstituent $this . +FILTER NOT EXISTS {$this s223:ofSubstance ?someSubstance} . +} +""" ] ], + [ rdfs:comment "An instance of s223:Property must not be observed (set) by more than one entity." ; + sh:maxCount 1 ; + sh:message "An instance of s223:Property must not be observed (set) by more than one entity." ; + sh:path [ sh:inversePath s223:observes ] ] ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "A Property instance cannot be declared an instance of both an ActuatableProperty and an ObservableProperty." ; sh:message "{$this} cannot be declared an instance of both an ActuatableProperty and an ObservableProperty." ; @@ -64600,12 +63801,6 @@ $this a/rdfs:subClassOf* s223:ObservableProperty . } """ ] . -qudt:hasUnit a rdf:Property ; - rdfs:label "has unit" ; - dcterms:description "This property relates a system of units with a unit of measure that is either a) defined by the system, or b) accepted for use by the system and is convertible to a unit of equivalent dimension that is defined by the system. Systems of units may distinguish between base and derived units. Base units are the units which measure the base quantities for the corresponding system of quantities. The base units are used to define units for all other quantities as products of powers of the base units. Such units are called derived units for the system. Thirdly, c) a reference to the unit of measure of a quantity (variable or constant) of interest"^^rdf:HTML ; - rdfs:comment "A reference to the unit of measure of a QuantifiableProperty of interest." ; - rdfs:isDefinedBy . - qkdv:A0E0L3I0M-1H0T0D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -65025,21 +64220,7 @@ s223:Connectable a s223:Class, s223:abstract true ; rdfs:comment "Connectable is an abstract class representing a thing such as, Equipment (see `s223:Equipment`), DomainSpace (see `s223:DomainSpace`), or Junction (see `s223:Junction`) that can be connected via ConnectionPoints and Connections." ; rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "If a Connectable has s223:connected or s223:connectedTo (i.e. high-level connection specification), it must also have the supporting cnx relations (low-level connection specification)." ; - sh:path s223:cnx ; - sh:severity sh:Warning ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "If a Connectable has s223:connected or s223:connectedTo (i.e. high-level connection specification), it must also have the supporting cnx relations (low-level connection specification)." ; - sh:message "{$this} is s223:connected (high-level) to {?otherC} but not connected at the cnx-level." ; - sh:prefixes ; - sh:select """ -SELECT $this ?otherC -WHERE { -$this s223:connected ?otherC . -FILTER NOT EXISTS {$this s223:cnx+ ?otherC} -} -""" ] ], - [ rdfs:comment "If the relation cnx is present it must associate the Connectable with a ConnectionPoint." ; + sh:property [ rdfs:comment "If the relation cnx is present it must associate the Connectable with a ConnectionPoint." ; sh:class s223:ConnectionPoint ; sh:path s223:cnx ], [ rdfs:comment "If the relation connected is present it must associate the Connectable with a Connectable." ; @@ -65060,7 +64241,21 @@ FILTER NOT EXISTS {$this s223:cnx+ ?otherC} [ rdfs:comment "If the relation hasConnectionPoint is present it must associate the Connectable with a ConnectionPoint." ; sh:class s223:ConnectionPoint ; sh:name "EquipmentToConnectionPointShape" ; - sh:path s223:hasConnectionPoint ] ; + sh:path s223:hasConnectionPoint ], + [ rdfs:comment "If a Connectable has s223:connected or s223:connectedTo (i.e. high-level connection specification), it must also have the supporting cnx relations (low-level connection specification)." ; + sh:path s223:cnx ; + sh:severity sh:Warning ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "If a Connectable has s223:connected or s223:connectedTo (i.e. high-level connection specification), it must also have the supporting cnx relations (low-level connection specification)." ; + sh:message "{$this} is s223:connected (high-level) to {?otherC} but not connected at the cnx-level." ; + sh:prefixes ; + sh:select """ +SELECT $this ?otherC +WHERE { +$this s223:connected ?otherC . +FILTER NOT EXISTS {$this s223:cnx+ ?otherC} +} +""" ] ] ; sh:rule [ a sh:SPARQLRule ; rdfs:comment "Infer the connected relation for BiDirectional connections" ; sh:construct """ @@ -65152,7 +64347,52 @@ ConnectionPoints are represented graphically in this standard by a triangle with """ ; rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "If a ConnectionPoint lacks a connectsThrough and mapsTo relation, and is not associated with a Junction or Equipment that is contained by an Equipment, then suggest that the ConnectionPoint probably needs an association with a Connection." ; + sh:property [ rdfs:comment "A ConnectionPoint must be associated with at most one Connectable using the cnx relation." ; + sh:message "A ConnectionPoint must be associated with at most one Connectable using the cnx relation." ; + sh:path s223:cnx ; + sh:qualifiedMaxCount 1 ; + sh:qualifiedValueShape [ sh:class s223:Connectable ] ; + sh:qualifiedValueShapesDisjoint true ], + [ rdfs:comment "A ConnectionPoint must be associated with at most one Connection using the cnx relation" ; + sh:message "A ConnectionPoint must be associated with at most one Connection using the cnx relation" ; + sh:path s223:cnx ; + sh:qualifiedMaxCount 1 ; + sh:qualifiedValueShape [ sh:class s223:Connection ] ; + sh:qualifiedValueShapesDisjoint true ], + [ rdfs:comment "A ConnectionPoint must be associated with at most one Connection using the relation connectsThrough." ; + sh:class s223:Connection ; + sh:maxCount 1 ; + sh:message "This ConnectionPoint must be associated with at most one Connection." ; + sh:name "ConnectionPointToConnectionShape" ; + sh:path s223:connectsThrough ; + sh:severity sh:Info ], + [ rdfs:comment "If the relation hasElectricalPhase is present it must associate the ConnectionPoint with an ElectricalPhaseIdentifier or ElectricalVoltagePhases." ; + sh:or ( [ sh:class s223:Aspect-ElectricalPhaseIdentifier ] [ sh:class s223:Aspect-ElectricalVoltagePhases ] ) ; + sh:path s223:hasElectricalPhase ], + [ rdfs:comment "A ConnectionPoint must be associated with exactly one Substance-Medium using the relation hasMedium." ; + sh:class s223:Substance-Medium ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "ConnectionPoint medium" ; + sh:path s223:hasMedium ], + [ rdfs:comment "If the relation hasRole is present it must associate the ConnectionPoint with an EnumerationKind-Role." ; + sh:class s223:EnumerationKind-Role ; + sh:path s223:hasRole ], + [ rdfs:comment "A ConnectionPoint must be associated with exactly one Connectable using the relation isConnectionPointOf." ; + sh:class s223:Connectable ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:name "ConnectionPointToEquipmentShape" ; + sh:path s223:isConnectionPointOf ], + [ rdfs:comment "A ConnectionPoint can be associated with at most one other ConnectionPoint using the relation mapsTo" ; + sh:class s223:ConnectionPoint ; + sh:maxCount 1 ; + sh:path s223:mapsTo ], + [ rdfs:comment "A ConnectionPoint can be associated with at most one other ConnectionPoint using the inverse of relation mapsTo" ; + sh:class s223:ConnectionPoint ; + sh:maxCount 1 ; + sh:path [ sh:inversePath s223:mapsTo ] ], + [ rdfs:comment "If a ConnectionPoint lacks a connectsThrough and mapsTo relation, and is not associated with a Junction or Equipment that is contained by an Equipment, then suggest that the ConnectionPoint probably needs an association with a Connection." ; sh:path s223:connectsThrough ; sh:severity sh:Info ; sh:sparql [ a sh:SPARQLConstraint ; @@ -65232,52 +64472,7 @@ $this s223:mapsTo ?otherCP . ?otherEquipment s223:hasConnectionPoint ?otherCP . FILTER NOT EXISTS {?otherEquipment s223:contains ?equipment} } -""" ] ], - [ rdfs:comment "A ConnectionPoint must be associated with at most one Connectable using the cnx relation." ; - sh:message "A ConnectionPoint must be associated with at most one Connectable using the cnx relation." ; - sh:path s223:cnx ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedValueShape [ sh:class s223:Connectable ] ; - sh:qualifiedValueShapesDisjoint true ], - [ rdfs:comment "A ConnectionPoint must be associated with at most one Connection using the cnx relation" ; - sh:message "A ConnectionPoint must be associated with at most one Connection using the cnx relation" ; - sh:path s223:cnx ; - sh:qualifiedMaxCount 1 ; - sh:qualifiedValueShape [ sh:class s223:Connection ] ; - sh:qualifiedValueShapesDisjoint true ], - [ rdfs:comment "A ConnectionPoint must be associated with at most one Connection using the relation connectsThrough." ; - sh:class s223:Connection ; - sh:maxCount 1 ; - sh:message "This ConnectionPoint must be associated with at most one Connection." ; - sh:name "ConnectionPointToConnectionShape" ; - sh:path s223:connectsThrough ; - sh:severity sh:Info ], - [ rdfs:comment "If the relation hasElectricalPhase is present it must associate the ConnectionPoint with an ElectricalPhaseIdentifier or ElectricalVoltagePhases." ; - sh:or ( [ sh:class s223:Aspect-ElectricalPhaseIdentifier ] [ sh:class s223:Aspect-ElectricalVoltagePhases ] ) ; - sh:path s223:hasElectricalPhase ], - [ rdfs:comment "A ConnectionPoint must be associated with exactly one Substance-Medium using the relation hasMedium." ; - sh:class s223:Substance-Medium ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:name "ConnectionPoint medium" ; - sh:path s223:hasMedium ], - [ rdfs:comment "If the relation hasRole is present it must associate the ConnectionPoint with an EnumerationKind-Role." ; - sh:class s223:EnumerationKind-Role ; - sh:path s223:hasRole ], - [ rdfs:comment "A ConnectionPoint must be associated with exactly one Connectable using the relation isConnectionPointOf." ; - sh:class s223:Connectable ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:name "ConnectionPointToEquipmentShape" ; - sh:path s223:isConnectionPointOf ], - [ rdfs:comment "A ConnectionPoint can be associated with at most one other ConnectionPoint using the relation mapsTo" ; - sh:class s223:ConnectionPoint ; - sh:maxCount 1 ; - sh:path s223:mapsTo ], - [ rdfs:comment "A ConnectionPoint can be associated with at most one other ConnectionPoint using the inverse of relation mapsTo" ; - sh:class s223:ConnectionPoint ; - sh:maxCount 1 ; - sh:path [ sh:inversePath s223:mapsTo ] ] . +""" ] ] . s223:DCVoltage-DCZeroVoltage a s223:Class, s223:DCVoltage-DCZeroVoltage, @@ -65296,6 +64491,12 @@ s223:Substance-Medium a s223:Class, rdfs:comment "This class has enumerated subclasses of a physical substance or anything that allows for the transfer of energy or information." ; rdfs:subClassOf s223:EnumerationKind-Substance . +qudt:hasUnit a rdf:Property ; + rdfs:label "has unit" ; + dcterms:description "This property relates a system of units with a unit of measure that is either a) defined by the system, or b) accepted for use by the system and is convertible to a unit of equivalent dimension that is defined by the system. Systems of units may distinguish between base and derived units. Base units are the units which measure the base quantities for the corresponding system of quantities. The base units are used to define units for all other quantities as products of powers of the base units. Such units are called derived units for the system. Thirdly, c) a reference to the unit of measure of a quantity (variable or constant) of interest"^^rdf:HTML ; + rdfs:comment "A reference to the unit of measure of a QuantifiableProperty of interest." ; + rdfs:isDefinedBy . + qkdv:A0E0L-1I0M1H0T0D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -65933,6 +65134,10 @@ s223:hasDomain a rdf:Property ; rdfs:label "has domain" ; rdfs:comment "The relation hasDomain is used to indicate what domain a Zone or DomainSpace pertains to (e.g. HVAC, lighting, electrical, etc.). Possible values are defined in EnumerationKind-Domain (see `s223:EnumerationKind-Domain`)." . +s223:observes a rdf:Property ; + rdfs:label "observes" ; + rdfs:comment "The relation observes binds a sensor to one ObservableProperty `see s223:ObservableProperty` which is used by the sensor to generate a measurement value (ex. a temperature) or a simple observation of a stimulus causing a reaction (a current binary switch that closes a dry contact when a fan is powered on)." . + qkdv:A0E-1L0I0M1H0T-2D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -66872,9 +66077,9 @@ unit:MilliM2 a qudt:Unit ; qudt:uneceCommonCode "MMK" ; rdfs:isDefinedBy . -s223:observes a rdf:Property ; - rdfs:label "observes" ; - rdfs:comment "The relation observes binds a sensor to one ObservableProperty `see s223:ObservableProperty` which is used by the sensor to generate a measurement value (ex. a temperature) or a simple observation of a stimulus causing a reaction (a current binary switch that closes a dry contact when a fan is powered on)." . +s223:hasRole a rdf:Property ; + rdfs:label "hasRole" ; + rdfs:comment "The relation hasRole is used to indicate the role of an Equipment, Connection, ConnectionPoint, or System within a building (e.g., a heating coil will be associated with Role-Heating). Possible values are defined in EnumerationKind-Role (see `s223:EnumerationKind-Role`)." . qkdv:A0E-1L1I0M1H0T-3D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -67350,23 +66555,6 @@ unit:M2 a qudt:DerivedUnit, qudt:uneceCommonCode "MTK" ; rdfs:isDefinedBy . -s223:EnumerationKind a s223:Class, - s223:EnumerationKind, - sh:NodeShape ; - rdfs:label "Enumeration kind" ; - rdfs:comment """This is the encapsulating class for all EnumerationKinds. - EnumerationKinds define the (closed) set of permissible values for a given purpose. - For example, the DayOfWeek EnumerationKind enumerates the days of the week and allows no other values. - -EnumerationKinds are arranged in a tree hierarchy, with the root class named EnumerationKind. Each subclass is named starting with its immediate superclass, followed by a hyphen and a name that is unique among the sibling superclasses. -Certain validation constraints exist in the standard that evaluate compatibility of EnumerationKinds. -Two values are deemed compatible if they are the same or if one is a direct ancestor (or descendant) of the other.""" ; - rdfs:subClassOf s223:Concept ; - sh:property [ rdfs:comment "An EnumerationKind must not use the generalized hasProperty relation. Some EnumerationKinds have specifically-defined relations to Property." ; - sh:maxCount 0 ; - sh:message "An EnumerationKind must not use the generalized hasProperty relation. EnumerationKind is a controlled vocabulary which must not be modified within a model." ; - sh:path s223:hasProperty ] . - qkdv:A0E-2L2I0M1H0T-3D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -67581,6 +66769,100 @@ quantitykind:MagneticFluxDensity a qudt:QuantityKind ; rdfs:isDefinedBy ; rdfs:seeAlso quantitykind:MagneticField . +quantitykind:Pressure a qudt:QuantityKind ; + rdfs:label "الضغط أو الإجهاد"@ar, + "Налягане"@bg, + "механично напрежение"@bg, + "Tlak"@cs, + "Druck"@de, + "Πίεση - τάση"@el, + "pressure"@en, + "presión"@es, + "فشار، تنش"@fa, + "pression"@fr, + "לחץ"@he, + "दबाव"@hi, + "दाब"@hi, + "nyomás"@hu, + "pressione"@it, + "tensione meccanica"@it, + "圧力"@ja, + "pressio"@la, + "Tekanan"@ms, + "tegasan"@ms, + "ciśnienie"@pl, + "naprężenie"@pl, + "pressão"@pt, + "tensão"@pt, + "presiune"@ro, + "tensiune mecanică"@ro, + "Давление"@ru, + "pritisk"@sl, + "tlak"@sl, + "basınç"@tr, + "压强、压力"@zh ; + dcterms:description "Pressure is an effect which occurs when a force is applied on a surface. Pressure is the amount of force acting on a unit area. Pressure is distinct from stress, as the former is the ratio of the component of force normal to a surface to the surface area. Stress is a tensor that relates the vector force to the vector area."^^rdf:HTML ; + qudt:applicableUnit unit:ATM, + unit:ATM_T, + unit:BAR, + unit:BARAD, + unit:BARYE, + unit:CentiBAR, + unit:CentiM_H2O, + unit:CentiM_HG, + unit:DYN-PER-CentiM2, + unit:DecaPA, + unit:DeciBAR, + unit:FT_H2O, + unit:FT_HG, + unit:GM_F-PER-CentiM2, + unit:GigaPA, + unit:HectoBAR, + unit:HectoPA, + unit:IN_H2O, + unit:IN_HG, + unit:KIP_F-PER-IN2, + unit:KiloBAR, + unit:KiloGM-PER-M-SEC2, + unit:KiloGM_F-PER-CentiM2, + unit:KiloGM_F-PER-M2, + unit:KiloGM_F-PER-MilliM2, + unit:KiloLB_F-PER-IN2, + unit:KiloPA, + unit:KiloPA_A, + unit:LB_F-PER-FT2, + unit:LB_F-PER-IN2, + unit:MegaBAR, + unit:MegaPA, + unit:MegaPSI, + unit:MicroATM, + unit:MicroBAR, + unit:MicroPA, + unit:MicroTORR, + unit:MilliBAR, + unit:MilliM_H2O, + unit:MilliM_HG, + unit:MilliM_HGA, + unit:MilliPA, + unit:MilliTORR, + unit:N-PER-CentiM2, + unit:N-PER-M2, + unit:N-PER-MilliM2, + unit:PA, + unit:PDL-PER-FT2, + unit:PSI, + unit:PicoPA, + unit:PlanckPressure, + unit:TORR ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Pressure"^^xsd:anyURI ; + qudt:hasDimensionVector qkdv:A0E0L-1I0M1H0T-2D0 ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Pressure"^^xsd:anyURI ; + qudt:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=31889"^^xsd:anyURI ; + qudt:latexDefinition "\\(p = \\frac{dF}{dA}\\), where \\(dF\\) is the force component perpendicular to the surface element of area \\(dA\\)."^^qudt:LatexString ; + qudt:plainTextDescription "Pressure is an effect which occurs when a force is applied on a surface. Pressure is the amount of force acting on a unit area. Pressure is distinct from stress, as the former is the ratio of the component of force normal to a surface to the surface area. Stress is a tensor that relates the vector force to the vector area." ; + rdfs:isDefinedBy ; + skos:broader quantitykind:ForcePerArea . + quantitykind:ThermodynamicTemperature a qudt:QuantityKind ; rdfs:label "درجة الحرارة المطلقة"@ar, "Термодинамична температура"@bg, @@ -68010,6 +67292,21 @@ quantitykind:MagneticFieldStrength_H a qudt:QuantityKind ; rdfs:isDefinedBy ; skos:broader quantitykind:ElectricCurrentPerUnitLength . +quantitykind:Temperature a qudt:QuantityKind ; + rdfs:label "Temperature"@en ; + dcterms:description "Temperature is a physical property of matter that quantitatively expresses the common notions of hot and cold. Objects of low temperature are cold, while various degrees of higher temperatures are referred to as warm or hot. Heat spontaneously flows from bodies of a higher temperature to bodies of lower temperature, at a rate that increases with the temperature difference and the thermal conductivity."^^rdf:HTML ; + qudt:applicableUnit unit:DEG_C, + unit:DEG_F, + unit:DEG_R, + unit:K, + unit:MilliDEG_C, + unit:PlanckTemperature ; + qudt:dbpediaMatch "http://dbpedia.org/resource/Temperature"^^xsd:anyURI ; + qudt:hasDimensionVector qkdv:A0E0L0I0M0H1T0D0 ; + qudt:plainTextDescription "Temperature is a physical property of matter that quantitatively expresses the common notions of hot and cold. Objects of low temperature are cold, while various degrees of higher temperatures are referred to as warm or hot. Heat spontaneously flows from bodies of a higher temperature to bodies of lower temperature, at a rate that increases with the temperature difference and the thermal conductivity." ; + rdfs:isDefinedBy ; + rdfs:seeAlso quantitykind:ThermodynamicTemperature . + quantitykind:VolumeFraction a qudt:QuantityKind ; rdfs:label "Volume Fraction"@en ; dcterms:description "\"Volume Fraction\" is the volume of a constituent divided by the volume of all constituents of the mixture prior to mixing. Volume fraction is also called volume concentration in ideal solutions where the volumes of the constituents are additive (the volume of the solution is equal to the sum of the volumes of its ingredients)."^^rdf:HTML ; @@ -68079,6 +67376,10 @@ unit:N a qudt:DerivedUnit, qudt:uneceCommonCode "NEW" ; rdfs:isDefinedBy . +s223:hasProperty a rdf:Property ; + rdfs:label "has Property" ; + rdfs:comment "The relation hasProperty associates any 223 Concept with a Property." . + quantitykind:HeatFlowRate a qudt:QuantityKind ; rdfs:label "Heat Flow Rate"@en ; dcterms:description "The rate of heat flow between two systems is measured in watts (joules per second). The formula for rate of heat flow is \\(\\bigtriangleup Q / \\bigtriangleup t = -K \\times A \\times \\bigtriangleup T/x\\), where \\(\\bigtriangleup Q / \\bigtriangleup t\\) is the rate of heat flow; \\(-K\\) is the thermal conductivity factor; A is the surface area; \\(\\bigtriangleup T\\) is the change in temperature and \\(x\\) is the thickness of the material. \\(\\bigtriangleup T/ x\\) is called the temperature gradient and is always negative because of the heat of flow always goes from more thermal energy to less)."^^qudt:LatexString ; @@ -68186,6 +67487,23 @@ unit:PER-M a qudt:Unit ; qudt:uneceCommonCode "C92" ; rdfs:isDefinedBy . +s223:EnumerationKind a s223:Class, + s223:EnumerationKind, + sh:NodeShape ; + rdfs:label "Enumeration kind" ; + rdfs:comment """This is the encapsulating class for all EnumerationKinds. + EnumerationKinds define the (closed) set of permissible values for a given purpose. + For example, the DayOfWeek EnumerationKind enumerates the days of the week and allows no other values. + +EnumerationKinds are arranged in a tree hierarchy, with the root class named EnumerationKind. Each subclass is named starting with its immediate superclass, followed by a hyphen and a name that is unique among the sibling superclasses. +Certain validation constraints exist in the standard that evaluate compatibility of EnumerationKinds. +Two values are deemed compatible if they are the same or if one is a direct ancestor (or descendant) of the other.""" ; + rdfs:subClassOf s223:Concept ; + sh:property [ rdfs:comment "An EnumerationKind must not use the generalized hasProperty relation. Some EnumerationKinds have specifically-defined relations to Property." ; + sh:maxCount 0 ; + sh:message "An EnumerationKind must not use the generalized hasProperty relation. EnumerationKind is a controlled vocabulary which must not be modified within a model." ; + sh:path s223:hasProperty ] . + s223:Medium-Air a s223:Class, s223:Medium-Air, sh:NodeShape ; @@ -68193,6 +67511,13 @@ s223:Medium-Air a s223:Class, rdfs:comment "This class has enumerated subclasses of Air in various states." ; rdfs:subClassOf s223:Substance-Medium . +g36:Required a s223:Class, + g36:Required, + sh:NodeShape ; + rdfs:label "Required" ; + rdfs:comment "Required for the basic G36 sequences of control" ; + rdfs:subclassOf s223:EnumerationKind . + qudt:PropertiesGroup a sh:PropertyGroup ; rdfs:label "Properties" ; rdfs:isDefinedBy ; @@ -68460,10 +67785,6 @@ s223:Medium-Water a s223:Class, rdfs:comment "This class has enumerated subclasses of water and aqueous solutions in various states." ; rdfs:subClassOf s223:Substance-Medium . -s223:hasAspect a rdf:Property ; - rdfs:label "has aspect" ; - rdfs:comment "hasAspect is used to establish the context of a Property. The value must be an instance of EnumerationKind. For example, if a Property has a Temperature value of 45.3, the hasAspect relation is used to state what that represents, such as a Temperature limit during working hours, etc. A Property can have any number of hasAspect relations, as needed to establish the context." . - qkdv:A0E1L0I0M0H0T0D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -69025,100 +68346,6 @@ quantitykind:PowerPerArea a qudt:QuantityKind ; qudt:informativeReference "http://www.physicsforums.com/library.php?do=view_item&itemid=406"^^xsd:anyURI ; rdfs:isDefinedBy . -quantitykind:Pressure a qudt:QuantityKind ; - rdfs:label "الضغط أو الإجهاد"@ar, - "Налягане"@bg, - "механично напрежение"@bg, - "Tlak"@cs, - "Druck"@de, - "Πίεση - τάση"@el, - "pressure"@en, - "presión"@es, - "فشار، تنش"@fa, - "pression"@fr, - "לחץ"@he, - "दबाव"@hi, - "दाब"@hi, - "nyomás"@hu, - "pressione"@it, - "tensione meccanica"@it, - "圧力"@ja, - "pressio"@la, - "Tekanan"@ms, - "tegasan"@ms, - "ciśnienie"@pl, - "naprężenie"@pl, - "pressão"@pt, - "tensão"@pt, - "presiune"@ro, - "tensiune mecanică"@ro, - "Давление"@ru, - "pritisk"@sl, - "tlak"@sl, - "basınç"@tr, - "压强、压力"@zh ; - dcterms:description "Pressure is an effect which occurs when a force is applied on a surface. Pressure is the amount of force acting on a unit area. Pressure is distinct from stress, as the former is the ratio of the component of force normal to a surface to the surface area. Stress is a tensor that relates the vector force to the vector area."^^rdf:HTML ; - qudt:applicableUnit unit:ATM, - unit:ATM_T, - unit:BAR, - unit:BARAD, - unit:BARYE, - unit:CentiBAR, - unit:CentiM_H2O, - unit:CentiM_HG, - unit:DYN-PER-CentiM2, - unit:DecaPA, - unit:DeciBAR, - unit:FT_H2O, - unit:FT_HG, - unit:GM_F-PER-CentiM2, - unit:GigaPA, - unit:HectoBAR, - unit:HectoPA, - unit:IN_H2O, - unit:IN_HG, - unit:KIP_F-PER-IN2, - unit:KiloBAR, - unit:KiloGM-PER-M-SEC2, - unit:KiloGM_F-PER-CentiM2, - unit:KiloGM_F-PER-M2, - unit:KiloGM_F-PER-MilliM2, - unit:KiloLB_F-PER-IN2, - unit:KiloPA, - unit:KiloPA_A, - unit:LB_F-PER-FT2, - unit:LB_F-PER-IN2, - unit:MegaBAR, - unit:MegaPA, - unit:MegaPSI, - unit:MicroATM, - unit:MicroBAR, - unit:MicroPA, - unit:MicroTORR, - unit:MilliBAR, - unit:MilliM_H2O, - unit:MilliM_HG, - unit:MilliM_HGA, - unit:MilliPA, - unit:MilliTORR, - unit:N-PER-CentiM2, - unit:N-PER-M2, - unit:N-PER-MilliM2, - unit:PA, - unit:PDL-PER-FT2, - unit:PSI, - unit:PicoPA, - unit:PlanckPressure, - unit:TORR ; - qudt:dbpediaMatch "http://dbpedia.org/resource/Pressure"^^xsd:anyURI ; - qudt:hasDimensionVector qkdv:A0E0L-1I0M1H0T-2D0 ; - qudt:informativeReference "http://en.wikipedia.org/wiki/Pressure"^^xsd:anyURI ; - qudt:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=31889"^^xsd:anyURI ; - qudt:latexDefinition "\\(p = \\frac{dF}{dA}\\), where \\(dF\\) is the force component perpendicular to the surface element of area \\(dA\\)."^^qudt:LatexString ; - qudt:plainTextDescription "Pressure is an effect which occurs when a force is applied on a surface. Pressure is the amount of force acting on a unit area. Pressure is distinct from stress, as the former is the ratio of the component of force normal to a surface to the surface area. Stress is a tensor that relates the vector force to the vector area." ; - rdfs:isDefinedBy ; - skos:broader quantitykind:ForcePerArea . - unit:BARAD a qudt:Unit ; rdfs:label "Barad"@en ; dcterms:description "A barad is a dyne per square centimetre (\\(dyn \\cdot cm^{-2}\\)), and is equal to \\(0.1 Pa \\) (\\(1 \\, micro \\, bar\\), \\(0.000014504 \\, p.s.i.\\)). Note that this is precisely the microbar, the confusable bar being related in size to the normal atmospheric pressure, at \\(100\\,dyn \\cdot cm^{-2}\\). Accordingly barad was not abbreviated, so occurs prefixed as in \\(cbarad = centibarad\\). Despite being the coherent unit for pressure in c.g.s., barad was probably much less common than the non-coherent bar. Barad is sometimes called \\(barye\\), a name also used for \\(bar\\)."^^qudt:LatexString ; @@ -69432,21 +68659,6 @@ quantitykind:SpecificEnergy a qudt:QuantityKind ; unit:GRAY, unit:SV . -quantitykind:Temperature a qudt:QuantityKind ; - rdfs:label "Temperature"@en ; - dcterms:description "Temperature is a physical property of matter that quantitatively expresses the common notions of hot and cold. Objects of low temperature are cold, while various degrees of higher temperatures are referred to as warm or hot. Heat spontaneously flows from bodies of a higher temperature to bodies of lower temperature, at a rate that increases with the temperature difference and the thermal conductivity."^^rdf:HTML ; - qudt:applicableUnit unit:DEG_C, - unit:DEG_F, - unit:DEG_R, - unit:K, - unit:MilliDEG_C, - unit:PlanckTemperature ; - qudt:dbpediaMatch "http://dbpedia.org/resource/Temperature"^^xsd:anyURI ; - qudt:hasDimensionVector qkdv:A0E0L0I0M0H1T0D0 ; - qudt:plainTextDescription "Temperature is a physical property of matter that quantitatively expresses the common notions of hot and cold. Objects of low temperature are cold, while various degrees of higher temperatures are referred to as warm or hot. Heat spontaneously flows from bodies of a higher temperature to bodies of lower temperature, at a rate that increases with the temperature difference and the thermal conductivity." ; - rdfs:isDefinedBy ; - rdfs:seeAlso quantitykind:ThermodynamicTemperature . - unit:DecaPA a qudt:Unit ; rdfs:label "Decapascal"@en ; dcterms:description "10-fold of the derived SI unit pascal"^^rdf:HTML ; @@ -69683,6 +68895,11 @@ qudt:IdentifiersAndDescriptionsPropertyGroup a sh:PropertyGroup ; rdfs:isDefinedBy ; sh:order 10.0 . +qudt:hasQuantityKind a rdf:Property ; + rdfs:label "has quantity kind" ; + rdfs:comment "A reference to the QuantityKind of a QuantifiableProperty of interest, e.g. quantitykind:Temperature." ; + rdfs:isDefinedBy . + qkdv:A0E0L-2I0M1H0T0D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -69826,13 +69043,6 @@ unit:PSI a qudt:Unit ; qudt:uneceCommonCode "PS" ; rdfs:isDefinedBy . -s223:QuantifiableObservableProperty a s223:Class, - sh:NodeShape ; - rdfs:label "Quantifiable Observable Property" ; - rdfs:comment "This class is for quantifiable properties of which numerical values cannot be modified by a user or a machine outside of the model, but only observed, like a temperature reading or a voltage measure." ; - rdfs:subClassOf s223:ObservableProperty, - s223:QuantifiableProperty . - unit:PicoPA a qudt:Unit ; rdfs:label "PicoPascal"@en ; qudt:applicableSystem sou:CGS, @@ -71294,6 +70504,31 @@ unit:GigaEV a qudt:DerivedUnit, qudt:uneceCommonCode "A85" ; rdfs:isDefinedBy . +s223:OutletConnectionPoint a s223:Class, + sh:NodeShape ; + rdfs:label "Outlet Connection Point" ; + rdfs:comment "An OutletConnectionPoint indicates that a substance must flow out of a Connectable (see 's223:Connectable') at this connection point and cannot flow in the other direction. An OutletConnectionPoint is a predefined subclass of ConnectionPoint." ; + rdfs:subClassOf s223:ConnectionPoint ; + sh:property [ rdfs:comment "If the relation mapsTo is present it must associate the OutletConnectionPoint with an OutletConnectionPoint." ; + sh:class s223:OutletConnectionPoint ; + sh:path s223:mapsTo ], + [ rdfs:comment "Ensure an OutletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; + sh:path s223:mapsTo ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Ensure an OutletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; + sh:message "{$this} must have a mapsTo an OutletConnectionPoint of {?parentEquipment} and not an external Connection to {?destinationEquipment}." ; + sh:prefixes ; + sh:select """ +SELECT $this ?parentEquipment ?destinationEquipment +WHERE { +?equipment s223:hasConnectionPoint $this . +?parentEquipment s223:contains ?equipment . +$this s223:connectsThrough/s223:connectsTo ?destinationEquipment . +FILTER NOT EXISTS {?parentEquipment s223:contains ?destinationEquipment} . +FILTER NOT EXISTS {$this s223:mapsTo ?anything} . +} +""" ] ] . + qkdv:A0E1L0I0M0H0T1D0 a qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, qudt:QuantityKindDimensionVector_SI ; @@ -71509,6 +70744,31 @@ unit:THM_US a qudt:Unit ; qudt:uneceCommonCode "N72" ; rdfs:isDefinedBy . +s223:InletConnectionPoint a s223:Class, + sh:NodeShape ; + rdfs:label "Inlet Connection Point" ; + rdfs:comment "An InletConnectionPoint indicates that a substance must flow into the equipment or domain space at this connection point and cannot flow the other direction. An IntletConnectionPoint is a subclass of ConnectionPoint." ; + rdfs:subClassOf s223:ConnectionPoint ; + sh:property [ rdfs:comment "If the relation mapsTo is present it must associate the InletConnectionPoint with an InletConnectionPoint." ; + sh:class s223:InletConnectionPoint ; + sh:path s223:mapsTo ], + [ rdfs:comment "Ensure an InletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; + sh:path s223:mapsTo ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Ensure an InletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; + sh:message "{$this} must have a mapsTo an InletConnectionPoint of {?parentEquipment} and not an external Connection from {?sourceEquipment}." ; + sh:prefixes ; + sh:select """ +SELECT $this ?parentEquipment ?sourceEquipment +WHERE { +?equipment s223:hasConnectionPoint $this . +?parentEquipment s223:contains ?equipment . +$this s223:connectsThrough/s223:connectsFrom ?sourceEquipment . +FILTER NOT EXISTS {?parentEquipment s223:contains ?sourceEquipment} . +FILTER NOT EXISTS {$this s223:mapsTo ?anything} . +} +""" ] ] . + qkdv:A0E0L0I0M1H0T-2D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -71878,35 +71138,6 @@ unit:PERCENT a qudt:Unit ; qudt:uneceCommonCode "P1" ; rdfs:isDefinedBy . -s223:hasProperty a rdf:Property ; - rdfs:label "has Property" ; - rdfs:comment "The relation hasProperty associates any 223 Concept with a Property." . - -s223:InletConnectionPoint a s223:Class, - sh:NodeShape ; - rdfs:label "Inlet Connection Point" ; - rdfs:comment "An InletConnectionPoint indicates that a substance must flow into the equipment or domain space at this connection point and cannot flow the other direction. An IntletConnectionPoint is a subclass of ConnectionPoint." ; - rdfs:subClassOf s223:ConnectionPoint ; - sh:property [ rdfs:comment "Ensure an InletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; - sh:path s223:mapsTo ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Ensure an InletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; - sh:message "{$this} must have a mapsTo an InletConnectionPoint of {?parentEquipment} and not an external Connection from {?sourceEquipment}." ; - sh:prefixes ; - sh:select """ -SELECT $this ?parentEquipment ?sourceEquipment -WHERE { -?equipment s223:hasConnectionPoint $this . -?parentEquipment s223:contains ?equipment . -$this s223:connectsThrough/s223:connectsFrom ?sourceEquipment . -FILTER NOT EXISTS {?parentEquipment s223:contains ?sourceEquipment} . -FILTER NOT EXISTS {$this s223:mapsTo ?anything} . -} -""" ] ], - [ rdfs:comment "If the relation mapsTo is present it must associate the InletConnectionPoint with an InletConnectionPoint." ; - sh:class s223:InletConnectionPoint ; - sh:path s223:mapsTo ] . - unit:MegaEV a qudt:DerivedUnit, qudt:Unit ; rdfs:label "Mega Electron Volt"@en ; @@ -71923,35 +71154,6 @@ unit:MegaEV a qudt:DerivedUnit, qudt:uneceCommonCode "B71" ; rdfs:isDefinedBy . -s223:hasRole a rdf:Property ; - rdfs:label "hasRole" ; - rdfs:comment "The relation hasRole is used to indicate the role of an Equipment, Connection, ConnectionPoint, or System within a building (e.g., a heating coil will be associated with Role-Heating). Possible values are defined in EnumerationKind-Role (see `s223:EnumerationKind-Role`)." . - -s223:OutletConnectionPoint a s223:Class, - sh:NodeShape ; - rdfs:label "Outlet Connection Point" ; - rdfs:comment "An OutletConnectionPoint indicates that a substance must flow out of a Connectable (see 's223:Connectable') at this connection point and cannot flow in the other direction. An OutletConnectionPoint is a predefined subclass of ConnectionPoint." ; - rdfs:subClassOf s223:ConnectionPoint ; - sh:property [ rdfs:comment "Ensure an OutletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; - sh:path s223:mapsTo ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Ensure an OutletConnectionPoint has a mapsTo relation to its containing Equipment if it has an external Connection" ; - sh:message "{$this} must have a mapsTo an OutletConnectionPoint of {?parentEquipment} and not an external Connection to {?destinationEquipment}." ; - sh:prefixes ; - sh:select """ -SELECT $this ?parentEquipment ?destinationEquipment -WHERE { -?equipment s223:hasConnectionPoint $this . -?parentEquipment s223:contains ?equipment . -$this s223:connectsThrough/s223:connectsTo ?destinationEquipment . -FILTER NOT EXISTS {?parentEquipment s223:contains ?destinationEquipment} . -FILTER NOT EXISTS {$this s223:mapsTo ?anything} . -} -""" ] ], - [ rdfs:comment "If the relation mapsTo is present it must associate the OutletConnectionPoint with an OutletConnectionPoint." ; - sh:class s223:OutletConnectionPoint ; - sh:path s223:mapsTo ] . - unit:U a qudt:Unit ; rdfs:label "Unified Atomic Mass Unit"@en ; dcterms:description "The unified atomic mass unit (symbol: \\(u\\)) or dalton (symbol: \\(Da\\)) is the standard unit that is used for indicating mass on an atomic or molecular scale (atomic mass). It is defined as one twelfth of the mass of an unbound neutral atom of carbon-12 in its nuclear and electronic ground state,[ and has a value of \\(1.660538921(73) \\times 10^{-27} kg\\). One dalton is approximately equal to the mass of one nucleon; an equivalence of saying \\(1 g mol^{-1}\\). The CIPM have categorised it as a 'non-SI unit' because units values in SI units must be obtained experimentally."^^qudt:LatexString ; @@ -71969,10 +71171,6 @@ unit:U a qudt:Unit ; qudt:uneceCommonCode "D43" ; rdfs:isDefinedBy . -s223:contains a rdf:Property ; - rdfs:label "contains" ; - rdfs:comment "The relation contains associates a PhysicalSpace or a piece of Equipment to a PhysicalSpace or another piece of Equipment, respectively." . - qkdv:A0E0L2I0M0H0T0D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -71990,10 +71188,122 @@ qkdv:A0E0L2I0M0H0T0D0 a qudt:QuantityKindDimensionVector_CGS, qudt:latexDefinition "\\(L^2\\)"^^qudt:LatexString ; rdfs:isDefinedBy . -qudt:hasQuantityKind a rdf:Property ; - rdfs:label "has quantity kind" ; - rdfs:comment "A reference to the QuantityKind of a QuantifiableProperty of interest, e.g. quantitykind:Temperature." ; - rdfs:isDefinedBy . +s223:QuantifiableProperty a s223:Class, + sh:NodeShape ; + rdfs:label "Quantifiable Property" ; + rdfs:comment "This class is for quantifiable values that describe an object (System, Equipment, etc.) that are typically static (hasValue). That is, they are neither measured nor specified in the course of operations." ; + rdfs:subClassOf s223:Property, + qudt:Quantity ; + sh:property [ rdfs:comment "A QuantifiableProperty can be associated with a decimal value using the relation hasValue." ; + sh:datatype xsd:decimal ; + sh:path s223:hasValue ], + [ rdfs:comment "A QuantifiableProperty must be associated with at least one QuantityKind using the relation hasQuantityKind." ; + sh:class qudt:QuantityKind ; + sh:minCount 1 ; + sh:path qudt:hasQuantityKind ], + [ rdfs:comment "A QuantifiableProperty must be associated with at least one Unit using the relation hasUnit." ; + sh:class qudt:Unit ; + sh:minCount 1 ; + sh:path qudt:hasUnit ; + sh:severity sh:Info ], + [ rdfs:comment "This QuantifiableProperty uses a different Unit than the Setpoint associated with it." ; + sh:path qudt:hasUnit ; + sh:severity sh:Info ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "This QuantifiableProperty uses a different Unit than the Setpoint associated with it." ; + sh:message "{$this} uses Unit {?punit}, while Setpoint {?setpoint} uses Unit {?sunit}. Be careful." ; + sh:prefixes ; + sh:select """ +SELECT $this ?setpoint ?punit ?sunit +WHERE { +$this qudt:hasUnit ?punit . +$this s223:hasSetpoint ?setpoint . +?setpoint qudt:hasUnit ?sunit . +?punit qudt:hasDimensionVector ?pdv . +?sunit qudt:hasDimensionVector ?sdv . +FILTER (?punit != ?sunit) . +FILTER (?pdv = ?sdv) . +} +""" ] ], + [ rdfs:comment "This QuantifiableProperty and the Setpoint associated with it have non-commensurate QuantityKinds." ; + sh:path qudt:hasQuantityKind ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "This QuantifiableProperty and the Setpoint associated with it have non-commensurate QuantityKinds." ; + sh:message "{$this} uses QuantityKind {?pqk} with DimensionVector {?pdv}, while Setpoint {?setpoint} uses QuantityKind {?sqk} with DimensionVector {?sdv}. These are non-commensurate" ; + sh:prefixes ; + sh:select """ +SELECT $this ?setpoint ?pqk ?sqk ?pdv ?sdv +WHERE { +$this qudt:hasQuantityKind ?pqk . +$this s223:hasSetpoint ?setpoint . +?setpoint qudt:hasQuantityKind ?sqk . +?pqk qudt:hasDimensionVector ?pdv . +?sqk qudt:hasDimensionVector ?sdv . +FILTER (?pqk != ?sqk) . +FILTER (?pdv != ?sdv) . +} +""" ] ], + [ rdfs:comment "This QuantifiableProperty and the associated Setpoint use non-commensurate Units." ; + sh:path qudt:hasUnit ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "This QuantifiableProperty and the associated Setpoint use non-commensurate Units." ; + sh:message "{$this} uses Unit {?punit}, while Setpoint {?setpoint} uses Unit {?sunit}. These are non-commensurate." ; + sh:prefixes ; + sh:select """ +SELECT $this ?setpoint ?punit ?sunit +WHERE { +$this qudt:hasUnit ?punit . +$this s223:hasSetpoint ?setpoint . +?setpoint qudt:hasUnit ?sunit . +?punit qudt:hasDimensionVector ?pdv . +?sunit qudt:hasDimensionVector ?sdv . +FILTER (?punit != ?sunit) . +FILTER (?pdv != ?sdv) . +} +""" ] ] ; + sh:rule [ a sh:SPARQLRule ; + rdfs:comment "Infer the hasQuantityKind relation if it is unambiguous." ; + sh:construct """ +CONSTRUCT { +$this qudt:hasQuantityKind ?uniqueqk +} +WHERE { +{ +SELECT $this (COUNT (DISTINCT (?qk)) AS ?count) +WHERE { +FILTER (NOT EXISTS {$this qudt:hasQuantityKind ?something}) . +$this qudt:hasUnit/qudt:hasQuantityKind ?qk . +} +GROUP BY $this +} +FILTER (?count = 1) +$this qudt:hasUnit/qudt:hasQuantityKind ?uniqueqk . +} +""" ; + sh:prefixes ] ; + sh:sparql [ a sh:SPARQLConstraint ; + rdfs:comment "Checks for consistent dimension vectors for a QuantityKind and the Unit" ; + sh:message "Inconsistent dimensionalities among the Property's Unit and Property's Quantity Kind" ; + sh:prefixes ; + sh:select """ +SELECT $this ?count +WHERE { +{ SELECT $this (COUNT (DISTINCT ?qkdv) AS ?count) + WHERE +{ + { + $this qudt:hasQuantityKind/qudt:hasDimensionVector ?qkdv . + } + UNION + { + $this qudt:hasUnit/qudt:hasDimensionVector ?qkdv . + } +} + GROUP BY $this +} +FILTER (?count > 1) . +} +""" ] . quantitykind:Volume a qudt:QuantityKind ; rdfs:label "Volume"@en ; @@ -72060,24 +71370,7 @@ The graphical depiction of Equipment used in this standard is a rounded cornered ![Graphical Depiction of Equipment.](figures/Figure_5-1Graphical_Depiciton_of_Equipment.svg) """ ; rdfs:subClassOf s223:Connectable ; - sh:property [ a sh:PropertyShape ; - rdfs:comment "If the relation contains is present it must associate the Equipment with either Equipment or Junction." ; - sh:name "device contains shape" ; - sh:or ( [ sh:class s223:Equipment ] [ sh:class s223:Junction ] ) ; - sh:path s223:contains ], - [ rdfs:comment "If the relation commandedByProperty is present it must associate the Equipment with a ActuatableProperty." ; - sh:class s223:ActuatableProperty ; - sh:path s223:commandedByProperty ], - [ rdfs:comment "If the relation executes is present it must associate the Equipment with a FunctionBlock." ; - sh:class s223:FunctionBlock ; - sh:path s223:executes ], - [ rdfs:comment "If the relation hasPhysicalLocation is present it must associate the Equipment with a PhysicalSpace." ; - sh:class s223:PhysicalSpace ; - sh:path s223:hasPhysicalLocation ], - [ rdfs:comment "If the relation hasRole is present it must associate the Equipment with a EnumerationKind-Role." ; - sh:class s223:EnumerationKind-Role ; - sh:path s223:hasRole ], - [ rdfs:comment "Disallow contained equipment from having external incoming connections." ; + sh:property [ rdfs:comment "Disallow contained equipment from having external incoming connections." ; sh:path s223:connectedFrom ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "Disallow contained equipment from having external incoming connections." ; @@ -72130,7 +71423,24 @@ UNION ?type1 rdfs:subClassOf* ?type2 . } } -""" ] ] ; +""" ] ], + [ a sh:PropertyShape ; + rdfs:comment "If the relation contains is present it must associate the Equipment with either Equipment or Junction." ; + sh:name "device contains shape" ; + sh:or ( [ sh:class s223:Equipment ] [ sh:class s223:Junction ] ) ; + sh:path s223:contains ], + [ rdfs:comment "If the relation commandedByProperty is present it must associate the Equipment with a ActuatableProperty." ; + sh:class s223:ActuatableProperty ; + sh:path s223:commandedByProperty ], + [ rdfs:comment "If the relation executes is present it must associate the Equipment with a FunctionBlock." ; + sh:class s223:FunctionBlock ; + sh:path s223:executes ], + [ rdfs:comment "If the relation hasPhysicalLocation is present it must associate the Equipment with a PhysicalSpace." ; + sh:class s223:PhysicalSpace ; + sh:path s223:hasPhysicalLocation ], + [ rdfs:comment "If the relation hasRole is present it must associate the Equipment with a EnumerationKind-Role." ; + sh:class s223:EnumerationKind-Role ; + sh:path s223:hasRole ] ; sh:rule [ a sh:SPARQLRule ; rdfs:comment "For equipment contained within another piece of equipment use the mapsTo relation to infer a Medium from the containing equipment." ; sh:construct """ @@ -72177,123 +71487,6 @@ s223:Numerical-Voltage a s223:Class, sh:hasValue unit:V ; sh:path qudt:hasUnit ] . -s223:QuantifiableProperty a s223:Class, - sh:NodeShape ; - rdfs:label "Quantifiable Property" ; - rdfs:comment "This class is for quantifiable values that describe an object (System, Equipment, etc.) that are typically static (hasValue). That is, they are neither measured nor specified in the course of operations." ; - rdfs:subClassOf s223:Property, - qudt:Quantity ; - sh:property [ rdfs:comment "This QuantifiableProperty and the Setpoint associated with it have non-commensurate QuantityKinds." ; - sh:path qudt:hasQuantityKind ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "This QuantifiableProperty and the Setpoint associated with it have non-commensurate QuantityKinds." ; - sh:message "{$this} uses QuantityKind {?pqk} with DimensionVector {?pdv}, while Setpoint {?setpoint} uses QuantityKind {?sqk} with DimensionVector {?sdv}. These are non-commensurate" ; - sh:prefixes ; - sh:select """ -SELECT $this ?setpoint ?pqk ?sqk ?pdv ?sdv -WHERE { -$this qudt:hasQuantityKind ?pqk . -$this s223:hasSetpoint ?setpoint . -?setpoint qudt:hasQuantityKind ?sqk . -?pqk qudt:hasDimensionVector ?pdv . -?sqk qudt:hasDimensionVector ?sdv . -FILTER (?pqk != ?sqk) . -FILTER (?pdv != ?sdv) . -} -""" ] ], - [ rdfs:comment "This QuantifiableProperty and the associated Setpoint use non-commensurate Units." ; - sh:path qudt:hasUnit ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "This QuantifiableProperty and the associated Setpoint use non-commensurate Units." ; - sh:message "{$this} uses Unit {?punit}, while Setpoint {?setpoint} uses Unit {?sunit}. These are non-commensurate." ; - sh:prefixes ; - sh:select """ -SELECT $this ?setpoint ?punit ?sunit -WHERE { -$this qudt:hasUnit ?punit . -$this s223:hasSetpoint ?setpoint . -?setpoint qudt:hasUnit ?sunit . -?punit qudt:hasDimensionVector ?pdv . -?sunit qudt:hasDimensionVector ?sdv . -FILTER (?punit != ?sunit) . -FILTER (?pdv != ?sdv) . -} -""" ] ], - [ rdfs:comment "This QuantifiableProperty uses a different Unit than the Setpoint associated with it." ; - sh:path qudt:hasUnit ; - sh:severity sh:Info ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "This QuantifiableProperty uses a different Unit than the Setpoint associated with it." ; - sh:message "{$this} uses Unit {?punit}, while Setpoint {?setpoint} uses Unit {?sunit}. Be careful." ; - sh:prefixes ; - sh:select """ -SELECT $this ?setpoint ?punit ?sunit -WHERE { -$this qudt:hasUnit ?punit . -$this s223:hasSetpoint ?setpoint . -?setpoint qudt:hasUnit ?sunit . -?punit qudt:hasDimensionVector ?pdv . -?sunit qudt:hasDimensionVector ?sdv . -FILTER (?punit != ?sunit) . -FILTER (?pdv = ?sdv) . -} -""" ] ], - [ rdfs:comment "A QuantifiableProperty can be associated with a decimal value using the relation hasValue." ; - sh:datatype xsd:decimal ; - sh:path s223:hasValue ], - [ rdfs:comment "A QuantifiableProperty must be associated with at least one QuantityKind using the relation hasQuantityKind." ; - sh:class qudt:QuantityKind ; - sh:minCount 1 ; - sh:path qudt:hasQuantityKind ], - [ rdfs:comment "A QuantifiableProperty must be associated with at least one Unit using the relation hasUnit." ; - sh:class qudt:Unit ; - sh:minCount 1 ; - sh:path qudt:hasUnit ; - sh:severity sh:Info ] ; - sh:rule [ a sh:SPARQLRule ; - rdfs:comment "Infer the hasQuantityKind relation if it is unambiguous." ; - sh:construct """ -CONSTRUCT { -$this qudt:hasQuantityKind ?uniqueqk -} -WHERE { -{ -SELECT $this (COUNT (DISTINCT (?qk)) AS ?count) -WHERE { -FILTER (NOT EXISTS {$this qudt:hasQuantityKind ?something}) . -$this qudt:hasUnit/qudt:hasQuantityKind ?qk . -} -GROUP BY $this -} -FILTER (?count = 1) -$this qudt:hasUnit/qudt:hasQuantityKind ?uniqueqk . -} -""" ; - sh:prefixes ] ; - sh:sparql [ a sh:SPARQLConstraint ; - rdfs:comment "Checks for consistent dimension vectors for a QuantityKind and the Unit" ; - sh:message "Inconsistent dimensionalities among the Property's Unit and Property's Quantity Kind" ; - sh:prefixes ; - sh:select """ -SELECT $this ?count -WHERE { -{ SELECT $this (COUNT (DISTINCT ?qkdv) AS ?count) - WHERE -{ - { - $this qudt:hasQuantityKind/qudt:hasDimensionVector ?qkdv . - } - UNION - { - $this qudt:hasUnit/qudt:hasDimensionVector ?qkdv . - } -} - GROUP BY $this -} -FILTER (?count > 1) . -} -""" ] . - quantitykind:Power a qudt:QuantityKind ; rdfs:label "القدرة"@ar, "Мощност"@bg, @@ -73322,18 +72515,30 @@ unit:CentiM a qudt:DerivedUnit, owl:versionInfo "Created with TopBraid Composer" ; sh:declare [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; sh:prefix "s223" ], - [ sh:namespace "http://data.ashrae.org/standard223/1.0/vocab/role#"^^xsd:anyURI ; - sh:prefix "role" ], [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; sh:prefix "qudt" ], - [ sh:namespace "http://qudt.org/vocab/quantitykind/"^^xsd:anyURI ; - sh:prefix "qudtqk" ], - [ sh:namespace "http://qudt.org/vocab/unit/"^^xsd:anyURI ; - sh:prefix "unit" ], + [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/ns/shacl#"^^xsd:anyURI ; + sh:prefix "sh" ], + [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; + sh:prefix "s223" ], [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; + sh:prefix "rdfs" ], + [ sh:namespace "http://www.w3.org/ns/shacl#"^^xsd:anyURI ; + sh:prefix "sh" ], [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; sh:prefix "s223" ], + [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; + sh:prefix "s223" ], + [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; + sh:prefix "qudt" ], + [ sh:namespace "http://qudt.org/vocab/quantitykind/"^^xsd:anyURI ; + sh:prefix "quantitykind" ], [ a sh:PrefixDeclaration ; sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; sh:prefix "dcterms" ], @@ -73361,34 +72566,22 @@ unit:CentiM a qudt:DerivedUnit, [ a sh:PrefixDeclaration ; sh:namespace "http://www.w3.org/2004/02/skos/core#"^^xsd:anyURI ; sh:prefix "skos" ], - [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; - sh:prefix "qudt" ], - [ sh:namespace "http://qudt.org/vocab/quantitykind/"^^xsd:anyURI ; - sh:prefix "quantitykind" ], [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; sh:prefix "s223" ], - [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; - sh:prefix "rdf" ], - [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; - sh:prefix "rdfs" ], - [ sh:namespace "http://www.w3.org/ns/shacl#"^^xsd:anyURI ; - sh:prefix "sh" ], [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; sh:prefix "qudt" ], [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; sh:prefix "s223" ], - [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; - sh:prefix "rdfs" ], - [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; - sh:prefix "s223" ], + [ sh:namespace "http://data.ashrae.org/standard223/1.0/vocab/role#"^^xsd:anyURI ; + sh:prefix "role" ], [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; sh:prefix "qudt" ], + [ sh:namespace "http://qudt.org/vocab/quantitykind/"^^xsd:anyURI ; + sh:prefix "qudtqk" ], + [ sh:namespace "http://qudt.org/vocab/unit/"^^xsd:anyURI ; + sh:prefix "unit" ], [ sh:namespace "http://www.w3.org/2000/01/rdf-schema#"^^xsd:anyURI ; - sh:prefix "rdfs" ], - [ sh:namespace "http://www.w3.org/ns/shacl#"^^xsd:anyURI ; - sh:prefix "sh" ], - [ sh:namespace "http://data.ashrae.org/standard223#"^^xsd:anyURI ; - sh:prefix "s223" ] . + sh:prefix "rdfs" ] . unit:NUM a qudt:CountingUnit, qudt:Unit ; @@ -73729,6 +72922,11 @@ qkdv:A0E0L2I0M1H0T-3D0 a qudt:QuantityKindDimensionVector_CGS, qudt:latexDefinition "\\(L^2 M T^-3\\)"^^qudt:LatexString ; rdfs:isDefinedBy . +s223:hasConnectionPoint a rdf:Property ; + rdfs:label "has connection point" ; + s223:inverseOf s223:isConnectionPointOf ; + rdfs:comment "The relation hasConnectionPoint is part of a pair of relations that bind a Connectable thing to a ConnectionPoint. It is the inverse of the relation isConnectionPointOf (see `s223:isConnectionPointOf`)." . + qkdv:A0E0L0I0M0H0T-1D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -73866,6 +73064,114 @@ qkdv:A0E0L-1I0M1H0T-2D0 a qudt:QuantityKindDimensionVector_CGS, qudt:latexDefinition "\\(L^-1 M T^-2\\)"^^qudt:LatexString ; rdfs:isDefinedBy . +quantitykind:VolumeFlowRate a qudt:QuantityKind ; + rdfs:label "Volume Flow Rate"@en ; + dcterms:description "Volumetric Flow Rate, (also known as volume flow rate, rate of fluid flow or volume velocity) is the volume of fluid which passes through a given surface per unit time."^^rdf:HTML ; + qudt:applicableUnit unit:BBL_UK_PET-PER-DAY, + unit:BBL_UK_PET-PER-HR, + unit:BBL_UK_PET-PER-MIN, + unit:BBL_UK_PET-PER-SEC, + unit:BBL_US-PER-DAY, + unit:BBL_US-PER-MIN, + unit:BBL_US_PET-PER-HR, + unit:BBL_US_PET-PER-SEC, + unit:BU_UK-PER-DAY, + unit:BU_UK-PER-HR, + unit:BU_UK-PER-MIN, + unit:BU_UK-PER-SEC, + unit:BU_US_DRY-PER-DAY, + unit:BU_US_DRY-PER-HR, + unit:BU_US_DRY-PER-MIN, + unit:BU_US_DRY-PER-SEC, + unit:CentiM3-PER-DAY, + unit:CentiM3-PER-HR, + unit:CentiM3-PER-MIN, + unit:CentiM3-PER-SEC, + unit:DeciM3-PER-DAY, + unit:DeciM3-PER-HR, + unit:DeciM3-PER-MIN, + unit:DeciM3-PER-SEC, + unit:FT3-PER-DAY, + unit:FT3-PER-HR, + unit:FT3-PER-MIN, + unit:FT3-PER-SEC, + unit:GAL_UK-PER-DAY, + unit:GAL_UK-PER-HR, + unit:GAL_UK-PER-MIN, + unit:GAL_UK-PER-SEC, + unit:GAL_US-PER-DAY, + unit:GAL_US-PER-HR, + unit:GAL_US-PER-MIN, + unit:GAL_US-PER-SEC, + unit:GI_UK-PER-DAY, + unit:GI_UK-PER-HR, + unit:GI_UK-PER-MIN, + unit:GI_UK-PER-SEC, + unit:GI_US-PER-DAY, + unit:GI_US-PER-HR, + unit:GI_US-PER-MIN, + unit:GI_US-PER-SEC, + unit:IN3-PER-HR, + unit:IN3-PER-MIN, + unit:IN3-PER-SEC, + unit:KiloL-PER-HR, + unit:L-PER-DAY, + unit:L-PER-HR, + unit:L-PER-MIN, + unit:L-PER-SEC, + unit:M3-PER-DAY, + unit:M3-PER-HR, + unit:M3-PER-MIN, + unit:M3-PER-SEC, + unit:MilliL-PER-DAY, + unit:MilliL-PER-HR, + unit:MilliL-PER-MIN, + unit:MilliL-PER-SEC, + unit:OZ_VOL_UK-PER-DAY, + unit:OZ_VOL_UK-PER-HR, + unit:OZ_VOL_UK-PER-MIN, + unit:OZ_VOL_UK-PER-SEC, + unit:OZ_VOL_US-PER-DAY, + unit:OZ_VOL_US-PER-HR, + unit:OZ_VOL_US-PER-MIN, + unit:OZ_VOL_US-PER-SEC, + unit:PINT_UK-PER-DAY, + unit:PINT_UK-PER-HR, + unit:PINT_UK-PER-MIN, + unit:PINT_UK-PER-SEC, + unit:PINT_US-PER-DAY, + unit:PINT_US-PER-HR, + unit:PINT_US-PER-MIN, + unit:PINT_US-PER-SEC, + unit:PK_UK-PER-DAY, + unit:PK_UK-PER-HR, + unit:PK_UK-PER-MIN, + unit:PK_UK-PER-SEC, + unit:PK_US_DRY-PER-DAY, + unit:PK_US_DRY-PER-HR, + unit:PK_US_DRY-PER-MIN, + unit:PK_US_DRY-PER-SEC, + unit:QT_UK-PER-DAY, + unit:QT_UK-PER-HR, + unit:QT_UK-PER-MIN, + unit:QT_UK-PER-SEC, + unit:QT_US-PER-DAY, + unit:QT_US-PER-HR, + unit:QT_US-PER-MIN, + unit:QT_US-PER-SEC, + unit:YD3-PER-DAY, + unit:YD3-PER-HR, + unit:YD3-PER-MIN, + unit:YD3-PER-SEC ; + qudt:exactMatch quantitykind:VolumePerUnitTime ; + qudt:hasDimensionVector qkdv:A0E0L3I0M0H0T-1D0 ; + qudt:informativeReference "http://en.wikipedia.org/wiki/Volumetric_flow_rate"^^xsd:anyURI ; + qudt:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=31889"^^xsd:anyURI ; + qudt:latexDefinition "\\(q_V = \\frac{dV}{dt}\\), where \\(V\\) is volume and \\(t\\) is time."^^qudt:LatexString ; + qudt:plainTextDescription "Volumetric Flow Rate, (also known as volume flow rate, rate of fluid flow or volume velocity) is the volume of fluid which passes through a given surface per unit time." ; + qudt:symbol "q_V" ; + rdfs:isDefinedBy . + qkdv:A0E0L3I0M0H0T-1D0 a qudt:QuantityKindDimensionVector_CGS, qudt:QuantityKindDimensionVector_ISO, qudt:QuantityKindDimensionVector_Imperial, @@ -73947,11 +73253,6 @@ qkdv:A0E0L0I0M1H0T0D0 a qudt:QuantityKindDimensionVector_CGS, qudt:latexDefinition "\\(M\\)"^^qudt:LatexString ; rdfs:isDefinedBy . -s223:hasConnectionPoint a rdf:Property ; - rdfs:label "has connection point" ; - s223:inverseOf s223:isConnectionPointOf ; - rdfs:comment "The relation hasConnectionPoint is part of a pair of relations that bind a Connectable thing to a ConnectionPoint. It is the inverse of the relation isConnectionPointOf (see `s223:isConnectionPointOf`)." . - quantitykind:Unknown a qudt:QuantityKind ; rdfs:label "Unknown" ; dcterms:description "Placeholder value used for reference from units where it is not clear what a given unit is a measure of." ; @@ -74132,114 +73433,6 @@ quantitykind:Length a qudt:QuantityKind ; qudt:symbol "l" ; rdfs:isDefinedBy . -quantitykind:VolumeFlowRate a qudt:QuantityKind ; - rdfs:label "Volume Flow Rate"@en ; - dcterms:description "Volumetric Flow Rate, (also known as volume flow rate, rate of fluid flow or volume velocity) is the volume of fluid which passes through a given surface per unit time."^^rdf:HTML ; - qudt:applicableUnit unit:BBL_UK_PET-PER-DAY, - unit:BBL_UK_PET-PER-HR, - unit:BBL_UK_PET-PER-MIN, - unit:BBL_UK_PET-PER-SEC, - unit:BBL_US-PER-DAY, - unit:BBL_US-PER-MIN, - unit:BBL_US_PET-PER-HR, - unit:BBL_US_PET-PER-SEC, - unit:BU_UK-PER-DAY, - unit:BU_UK-PER-HR, - unit:BU_UK-PER-MIN, - unit:BU_UK-PER-SEC, - unit:BU_US_DRY-PER-DAY, - unit:BU_US_DRY-PER-HR, - unit:BU_US_DRY-PER-MIN, - unit:BU_US_DRY-PER-SEC, - unit:CentiM3-PER-DAY, - unit:CentiM3-PER-HR, - unit:CentiM3-PER-MIN, - unit:CentiM3-PER-SEC, - unit:DeciM3-PER-DAY, - unit:DeciM3-PER-HR, - unit:DeciM3-PER-MIN, - unit:DeciM3-PER-SEC, - unit:FT3-PER-DAY, - unit:FT3-PER-HR, - unit:FT3-PER-MIN, - unit:FT3-PER-SEC, - unit:GAL_UK-PER-DAY, - unit:GAL_UK-PER-HR, - unit:GAL_UK-PER-MIN, - unit:GAL_UK-PER-SEC, - unit:GAL_US-PER-DAY, - unit:GAL_US-PER-HR, - unit:GAL_US-PER-MIN, - unit:GAL_US-PER-SEC, - unit:GI_UK-PER-DAY, - unit:GI_UK-PER-HR, - unit:GI_UK-PER-MIN, - unit:GI_UK-PER-SEC, - unit:GI_US-PER-DAY, - unit:GI_US-PER-HR, - unit:GI_US-PER-MIN, - unit:GI_US-PER-SEC, - unit:IN3-PER-HR, - unit:IN3-PER-MIN, - unit:IN3-PER-SEC, - unit:KiloL-PER-HR, - unit:L-PER-DAY, - unit:L-PER-HR, - unit:L-PER-MIN, - unit:L-PER-SEC, - unit:M3-PER-DAY, - unit:M3-PER-HR, - unit:M3-PER-MIN, - unit:M3-PER-SEC, - unit:MilliL-PER-DAY, - unit:MilliL-PER-HR, - unit:MilliL-PER-MIN, - unit:MilliL-PER-SEC, - unit:OZ_VOL_UK-PER-DAY, - unit:OZ_VOL_UK-PER-HR, - unit:OZ_VOL_UK-PER-MIN, - unit:OZ_VOL_UK-PER-SEC, - unit:OZ_VOL_US-PER-DAY, - unit:OZ_VOL_US-PER-HR, - unit:OZ_VOL_US-PER-MIN, - unit:OZ_VOL_US-PER-SEC, - unit:PINT_UK-PER-DAY, - unit:PINT_UK-PER-HR, - unit:PINT_UK-PER-MIN, - unit:PINT_UK-PER-SEC, - unit:PINT_US-PER-DAY, - unit:PINT_US-PER-HR, - unit:PINT_US-PER-MIN, - unit:PINT_US-PER-SEC, - unit:PK_UK-PER-DAY, - unit:PK_UK-PER-HR, - unit:PK_UK-PER-MIN, - unit:PK_UK-PER-SEC, - unit:PK_US_DRY-PER-DAY, - unit:PK_US_DRY-PER-HR, - unit:PK_US_DRY-PER-MIN, - unit:PK_US_DRY-PER-SEC, - unit:QT_UK-PER-DAY, - unit:QT_UK-PER-HR, - unit:QT_UK-PER-MIN, - unit:QT_UK-PER-SEC, - unit:QT_US-PER-DAY, - unit:QT_US-PER-HR, - unit:QT_US-PER-MIN, - unit:QT_US-PER-SEC, - unit:YD3-PER-DAY, - unit:YD3-PER-HR, - unit:YD3-PER-MIN, - unit:YD3-PER-SEC ; - qudt:exactMatch quantitykind:VolumePerUnitTime ; - qudt:hasDimensionVector qkdv:A0E0L3I0M0H0T-1D0 ; - qudt:informativeReference "http://en.wikipedia.org/wiki/Volumetric_flow_rate"^^xsd:anyURI ; - qudt:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=31889"^^xsd:anyURI ; - qudt:latexDefinition "\\(q_V = \\frac{dV}{dt}\\), where \\(V\\) is volume and \\(t\\) is time."^^qudt:LatexString ; - qudt:plainTextDescription "Volumetric Flow Rate, (also known as volume flow rate, rate of fluid flow or volume velocity) is the volume of fluid which passes through a given surface per unit time." ; - qudt:symbol "q_V" ; - rdfs:isDefinedBy . - quantitykind:Voltage a qudt:QuantityKind ; rdfs:label "Voltage"@en ; dcterms:description """\\(\\textit{Voltage}\\), also referred to as \\(\\textit{Electric Tension}\\), is the difference between electrical potentials of two points. For an electric field within a medium, \\(U_{ab} = - \\int_{r_a}^{r_b} E . {dr}\\), where \\(E\\) is electric field strength.