diff --git a/ontologies/223p.ttl b/ontologies/223p.ttl index a1418fa..f1a9c86 100644 --- a/ontologies/223p.ttl +++ b/ontologies/223p.ttl @@ -1052,10 +1052,10 @@ s223:ConcentrationSensor a s223:Class, s223:Controller a s223:Class, sh:NodeShape ; rdfs:label "Controller" ; - rdfs:comment "A device for regulation of a system or component in normal operation, which executes a FunctionBlock." ; + rdfs:comment "A device for regulation of a system or component in normal operation, which executes a Function." ; rdfs:subClassOf s223:Equipment ; - sh:property [ rdfs:comment "If the relation executes is present it must associate the Controller with a FunctionBlock." ; - sh:class s223:FunctionBlock ; + sh:property [ rdfs:comment "If the relation executes is present it must associate the Controller with a Function." ; + sh:class s223:Function ; sh:path s223:executes ] ; sh:rule [ a sh:TripleRule ; rdfs:comment "Infer the hasRole s223:Role-Controller relation for every instance of Controller" ; @@ -1064,10 +1064,10 @@ s223:Controller a s223:Class, sh:subject sh:this ] . s223:ControllerRoleShape a sh:NodeShape ; - rdfs:comment "Equipment that executes a FunctionBlock must have a s223:hasRole relation to s223:Role-Controller." ; + rdfs:comment "Equipment that executes a Function must have a s223:hasRole relation to s223:Role-Controller." ; sh:property [ a sh:PropertyShape ; sh:hasValue s223:Role-Controller ; - sh:message "Equipment that executes a FunctionBlock must have a s223:hasRole relation to s223:Role-Controller." ; + sh:message "Equipment that executes a Function must have a s223:hasRole relation to s223:Role-Controller." ; sh:minCount 1 ; sh:path s223:hasRole ] ; sh:targetSubjectsOf s223:executes . @@ -1124,11 +1124,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." ; @@ -1141,7 +1137,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 ; @@ -1359,17 +1359,7 @@ s223:Filter a s223:Class, 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: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 ; @@ -1395,7 +1385,17 @@ FILTER (NOT EXISTS { } } ) . } -""" ] ] . +""" ] ], + [ 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 ; @@ -1703,25 +1703,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." ; @@ -1741,7 +1723,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:QuantifiableActuatableProperty a s223:Class, sh:NodeShape ; @@ -18896,13 +18896,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 ; @@ -18938,7 +18932,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 ; @@ -19545,7 +19545,7 @@ s223:hasFrequency a rdf:Property ; s223:hasInput a rdf:Property ; rdfs:label "has function input" ; - rdfs:comment "The relation hasInput is used to relate a FunctionBlock (see `s223:FunctionBlock`) to a Property (see `s223:Property`) that is used as input." . + rdfs:comment "The relation hasInput is used to relate a Function (see `s223:Function`) to a Property (see `s223:Property`) that is used as input." . s223:hasMeasurementResolution a rdf:Property ; rdfs:label "has measurement resolution" ; @@ -39680,7 +39680,7 @@ s223:hasElectricalPhase a rdf:Property ; s223:hasOutput a rdf:Property ; rdfs:label "has function output" ; - rdfs:comment "The relation hasOutput is used to relate a FunctionBlock (see `s223:FunctionBlock`) to a Property (see `s223:Property`) that is calculated by the FunctionBlock." . + rdfs:comment "The relation hasOutput is used to relate a Function (see `s223:Function`) to a Property (see `s223:Property`) that is calculated by the Function." . qudt:BitEncoding a qudt:BitEncodingType ; rdfs:label "Bit Encoding" ; @@ -45756,10 +45756,10 @@ s223:EnumeratedObservableProperty a s223:Class, rdfs:subClassOf s223:EnumerableProperty, s223:ObservableProperty . -s223:FunctionBlock a s223:Class, +s223:Function a s223:Class, sh:NodeShape ; rdfs:label "Function block" ; - rdfs:comment "A FunctionBlock is used to model transfer and/or transformation of information (i.e. Property). It has relations to input Properties and output Properties. The actual algorithms that perform the transformations are described in CDL and are out of scope of the 223 standard." ; + rdfs:comment "A Function is used to model transfer and/or transformation of information (i.e. Property). It has relations to input Properties and output Properties. The actual algorithms that perform the transformations are described in CDL and are out of scope of the 223 standard." ; rdfs:subClassOf s223:Concept ; sh:or ( [ sh:property [ rdfs:comment "A Function block must be associated with at least one Property using the relation hasInput." ; sh:class s223:Property ; @@ -45922,7 +45922,7 @@ s223:connected a s223:SymmetricProperty, s223:executes a rdf:Property ; rdfs:label "executes" ; - rdfs:comment "The relation executes is used to specify that a Controller (see `s223:Controller`) is responsible for the execution of a FunctionBlock (see `s223:FunctionBlock`). " . + rdfs:comment "The relation executes is used to specify that a Controller (see `s223:Controller`) is responsible for the execution of a Function (see `s223:Function`). " . s223:hasDomainSpace a rdf:Property ; rdfs:label "has domain space" ; @@ -58655,10 +58655,7 @@ s223:EnumerationKind-Substance a s223:Class, rdfs:label "Substance" ; rdfs:comment "This class has enumerated subclasses of the substances that are consumed, produced, transported, sensed, controlled or otherwise interacted with (e.g. water, air, etc.)." ; rdfs:subClassOf s223:EnumerationKind ; - sh:property [ rdfs:comment "If the relation hasConstituent is present, it must associate an EnumerationKind-Substance with one or more Properties that identify and characterize those constituents." ; - sh:class s223:Property ; - sh:path s223:hasConstituent ], - [ rdfs:comment "A substance may only have atomic constituents, it may not have a constituent that also has constituents." ; + sh:property [ rdfs:comment "A substance may only have atomic constituents, it may not have a constituent that also has constituents." ; sh:path s223:hasConstituent ; sh:sparql [ a sh:SPARQLConstraint ; rdfs:comment "If a substance has a constituent, that constituent may not itself have constituents." ; @@ -58670,7 +58667,10 @@ WHERE { $this s223:hasConstituent ?constituent . ?constituent s223:ofSubstance/s223:hasConstituent ?nextConstituent . } -""" ] ] . +""" ] ], + [ rdfs:comment "If the relation hasConstituent is present, it must associate an EnumerationKind-Substance with one or more Properties that identify and characterize those constituents." ; + sh:class s223:Property ; + sh:path s223:hasConstituent ] . s223:LineNeutralVoltage-120V a s223:Class, s223:LineNeutralVoltage-120V, @@ -63294,10 +63294,10 @@ Enumerable properties must be associated with an EnumerationKind. sh:class s223:EnumerationKind-Substance ; sh:maxCount 1 ; sh:path s223:ofSubstance ], - [ rdfs:comment "A Property can be associated with at most one FunctionBlock using the inverse relation hasOutput." ; - sh:class s223:FunctionBlock ; + [ rdfs:comment "A Property can be associated with at most one Function using the inverse relation hasOutput." ; + sh:class s223:Function ; sh:maxCount 1 ; - sh:message "A Property can be associated with at most one FunctionBlock using the inverse relation hasOutput." ; + sh:message "A Property can be associated with at most one Function using the inverse relation hasOutput." ; sh:path [ sh:inversePath s223:hasOutput ] ], [ rdfs:comment "" ; sh:path s223:ofSubstance ; @@ -70886,24 +70886,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." ; @@ -70956,7 +70939,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 Function." ; + sh:class s223:Function ; + 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 """ @@ -72031,22 +72031,28 @@ 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://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://qudt.org/schema/qudt/"^^xsd:anyURI ; + sh:prefix "qudt" ], + [ 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://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 "quantitykind" ], + 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" ], [ a sh:PrefixDeclaration ; sh:namespace "http://purl.org/dc/terms/"^^xsd:anyURI ; sh:prefix "dcterms" ], @@ -72076,28 +72082,22 @@ unit:CentiM a qudt:DerivedUnit, sh:prefix "skos" ], [ 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://data.ashrae.org/standard223#"^^xsd:anyURI ; - sh:prefix "s223" ], [ sh:namespace "http://qudt.org/schema/qudt/"^^xsd:anyURI ; sh:prefix "qudt" ], - [ sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; - sh:prefix "rdf" ], + [ sh:namespace "http://qudt.org/vocab/quantitykind/"^^xsd:anyURI ; + sh:prefix "quantitykind" ], [ 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 "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" ] . unit:NUM a qudt:CountingUnit, qudt:Unit ;