diff --git a/ontologies/223p.ttl b/ontologies/223p.ttl
index 794b159..76caeab 100644
--- a/ontologies/223p.ttl
+++ b/ontologies/223p.ttl
@@ -69,14 +69,14 @@ s223:SymmetricProperty a rdfs:Class,
sh:path s223:hasProperty ;
sh:qualifiedMinCount 2 ;
sh:qualifiedValueShape [ sh:class s223:EnumeratedActuatableProperty ;
- sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Binary ;
+ sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Position ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasEnumerationKind ],
- [ sh:hasValue s223:EnumerationKind-Position ;
+ sh:path s223:hasAspect ],
+ [ sh:hasValue s223:EnumerationKind-Binary ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasAspect ] ] ] ;
+ sh:path s223:hasEnumerationKind ] ] ] ;
sh:severity s223:g36 ] ] ) ;
sh:severity s223:g36 ;
sh:targetClass .
@@ -99,27 +99,27 @@ s223:SymmetricProperty a rdfs:Class,
sh:path s223:hasProperty ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:QuantifiableActuatableProperty ;
- sh:node [ sh:property [ sh:hasValue ;
+ sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Position ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path ns1:hasQuantityKind ],
- [ sh:hasValue s223:EnumerationKind-Position ;
+ sh:path s223:hasAspect ],
+ [ sh:hasValue ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasAspect ] ] ] ;
+ sh:path ns1:hasQuantityKind ] ] ] ;
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."^^xsd:string ;
sh:minCount 2 ;
sh:path s223:hasProperty ;
sh:qualifiedMinCount 2 ;
sh:qualifiedValueShape [ sh:class s223:EnumeratedActuatableProperty ;
- sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Binary ;
+ sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Position ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasEnumerationKind ],
- [ sh:hasValue s223:EnumerationKind-Position ;
+ sh:path s223:hasAspect ],
+ [ sh:hasValue s223:EnumerationKind-Binary ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasAspect ] ] ] ;
+ sh:path s223:hasEnumerationKind ] ] ] ;
sh:severity s223:g36 ] ] ) ;
sh:severity s223:g36 ;
sh:targetClass .
@@ -255,14 +255,14 @@ s223:SymmetricProperty a rdfs:Class,
sh:path s223:hasProperty ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:EnumeratedActuatableProperty ;
- sh:node [ sh:property [ sh:hasValue s223:EnumerationKind-Position ;
+ sh:node [ sh:property [ sh:class s223:EnumerationKind-Binary ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasAspect ],
- [ sh:class s223:EnumerationKind-Binary ;
+ sh:path s223:hasEnumerationKind ],
+ [ sh:hasValue s223:EnumerationKind-Position ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasEnumerationKind ] ] ] ;
+ sh:path s223:hasAspect ] ] ] ;
sh:severity s223:g36 ] ;
sh:severity s223:g36 .
@@ -272,37 +272,27 @@ s223:SymmetricProperty a rdfs:Class,
rdfs:label "Zone"^^xsd:string ;
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."^^xsd:string ;
rdfs:subClassOf s223:Zone ;
- sh:property [ rdfs:comment "A Zone shall have at least one zone temperature property using the relation hasProperty. "^^xsd:string ;
- sh:message "g36: A Zone shall have at least one zone temperature property using the relation hasProperty. "^^xsd:string ;
- sh:minCount 1 ;
- sh:path s223:hasProperty ;
- sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ;
- sh:node [ sh:property [ sh:hasValue ;
- sh:maxCount 1 ;
- sh:minCount 1 ;
- sh:path ns1:hasQuantityKind ] ] ] ;
- sh:qualifiedValueShapesDisjoint true ;
- sh:severity s223:g36 ],
- [ rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. "^^xsd:string ;
+ sh:property [ rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. "^^xsd:string ;
sh:hasValue s223:Domain-HVAC ;
sh:message "g36: A Zone shall have at least one Domain-HVAC using the relation hasDomain. "^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasDomain ;
sh:severity s223:g36 ],
- [ rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty."^^xsd:string ;
- sh:message "g36: A Zone shall have at least one window switch on-off property using the relation hasProperty."^^xsd:string ;
+ [ rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable."^^xsd:string ;
+ sh:message "g36: A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasProperty ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:EnumeratedObservableProperty ;
- sh:node [ sh:property [ rdfs:comment "Property shall be measured at a window."^^xsd:string ;
- sh:class s223:Window ;
- sh:path [ sh:alternativePath ( ( [ sh:inversePath s223:observes ] s223:hasMeasurementLocation ) [ sh:inversePath s223:hasProperty ] ) ] ],
- [ sh:class s223:EnumerationKind-OnOff ;
+ sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ;
+ sh:node [ sh:property [ sh:hasValue ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path s223:hasEnumerationKind ] ] ] ;
+ sh:path ns1:hasQuantityKind ],
+ [ sh:hasValue s223:Dimensioned-Delta ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:hasAspect ] ] ] ;
+ sh:qualifiedValueShapesDisjoint true ;
sh:severity sh:Info ],
[ rdfs:comment "A Zone shall have at least one zone thermostat override switch property using the relation hasProperty."^^xsd:string ;
sh:message "g36: A Zone shall have at least one zone thermostat override switch property using the relation hasProperty."^^xsd:string ;
@@ -315,22 +305,18 @@ s223:SymmetricProperty a rdfs:Class,
sh:minCount 1 ;
sh:path s223:hasEnumerationKind ] ] ] ;
sh:severity sh:Info ],
- [ rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable."^^xsd:string ;
- sh:message "g36: A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable."^^xsd:string ;
+ [ rdfs:comment "A Zone shall have at least one zone temperature property using the relation hasProperty. "^^xsd:string ;
+ sh:message "g36: A Zone shall have at least one zone temperature property using the relation hasProperty. "^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasProperty ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ;
- sh:node [ sh:property [ sh:hasValue s223:Dimensioned-Delta ;
- sh:maxCount 1 ;
- sh:minCount 1 ;
- sh:path s223:hasAspect ],
- [ sh:hasValue ;
+ sh:node [ sh:property [ sh:hasValue ;
sh:maxCount 1 ;
sh:minCount 1 ;
sh:path ns1:hasQuantityKind ] ] ] ;
sh:qualifiedValueShapesDisjoint true ;
- sh:severity sh:Info ],
+ sh:severity s223:g36 ],
[ rdfs:comment "A Zone shall have at least one binary zone occupancy property using the relation hasProperty"^^xsd:string ;
sh:message "g36: A Zone shall have at least one binary zone occupancy property using the relation hasProperty"^^xsd:string ;
sh:minCount 1 ;
@@ -348,14 +334,28 @@ s223:SymmetricProperty a rdfs:Class,
sh:path s223:hasProperty ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:QuantifiableObservableProperty ;
- sh:node [ sh:property [ sh:hasValue ;
+ sh:node [ sh:property [ sh:hasValue s223:Constituent-CO2 ;
sh:maxCount 1 ;
sh:minCount 1 ;
- sh:path ns1:hasQuantityKind ],
- [ sh:hasValue s223:Constituent-CO2 ;
+ sh:path s223:ofConstituent ],
+ [ sh:hasValue ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path ns1:hasQuantityKind ] ] ] ;
+ sh:severity sh:Info ],
+ [ rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty."^^xsd:string ;
+ sh:message "g36: A Zone shall have at least one window switch on-off property using the relation hasProperty."^^xsd:string ;
+ 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:ofConstituent ] ] ] ;
+ sh:path s223:hasEnumerationKind ],
+ [ rdfs:comment "Property shall be measured at a window."^^xsd:string ;
+ sh:class s223:Window ;
+ sh:path [ sh:alternativePath ( ( [ sh:inversePath s223:observes ] s223:hasMeasurementLocation ) [ sh:inversePath s223:hasProperty ] ) ] ] ] ] ;
sh:severity sh:Info ] ;
sh:severity s223:g36 .
@@ -873,8 +873,7 @@ as "fundamental" in this sense.
ns1:Quantifiable ;
sh:property ns1:Quantity-hasQuantityKind,
ns1:Quantity-isDeltaQuantity,
- ns1:Quantity-quantityValue,
- ns1:Quantity-quantityValueSN .
+ ns1:Quantity-quantityValue .
ns1:QuantityKind a rdfs:Class,
sh:NodeShape ;
@@ -1007,9 +1006,7 @@ ns1:QuantityValue a rdfs:Class,
rdfs:comment "A Quantity Value expresses the magnitude and kind of a quantity and is given by the product of a numerical value n
and a unit of measure U
. The number multiplying the unit is referred to as the numerical value of the quantity expressed in that unit. Refer to NIST SP 811 section 7 for more on quantity values."^^rdf:HTML ;
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Concept,
- ns1:Quantifiable ;
- sh:property ns1:QuantityValue-hasUnit,
- ns1:QuantityValue-unit .
+ ns1:Quantifiable .
ns1:RatioScale a rdfs:Class,
sh:NodeShape ;
@@ -1126,8 +1123,7 @@ ns1:SystemOfQuantityKinds a rdfs:Class,
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Concept,
ns1:Verifiable ;
- sh:property [ ],
- ns1:SystemOfQuantityKinds-baseDimensionEnumeration,
+ sh:property ns1:SystemOfQuantityKinds-baseDimensionEnumeration,
ns1:SystemOfQuantityKinds-hasBaseQuantityKind,
ns1:SystemOfQuantityKinds-hasQuantityKind,
ns1:SystemOfQuantityKinds-hasUnitSystem,
@@ -1210,13 +1206,13 @@ s223:Actuator a s223:Class,
rdfs:label "Actuator"^^xsd:string ;
rdfs:comment "A piece of equipment, either electrically, pneumatically, or hydraulically operated, that makes a change in the physical world, such as the position of a valve or damper."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "An Actuator must be associated with at least one ActuatableProperty using the relation actuatedByProperty."^^xsd:string ;
+ sh:property [ rdfs:comment "If the relation actuates is present it must associate the Actuator with a Equipment."^^xsd:string ;
+ sh:class s223:Equipment ;
+ sh:path s223:actuates ],
+ [ rdfs:comment "An Actuator must be associated with at least one ActuatableProperty using the relation actuatedByProperty."^^xsd:string ;
sh:class s223:ActuatableProperty ;
sh:minCount 1 ;
- sh:path s223:actuatedByProperty ],
- [ rdfs:comment "If the relation actuates is present it must associate the Actuator with a Equipment."^^xsd:string ;
- sh:class s223:Equipment ;
- sh:path s223:actuates ] .
+ sh:path s223:actuatedByProperty ] .
s223:AirHandlingUnit a s223:Class,
sh:NodeShape ;
@@ -1244,36 +1240,30 @@ s223:BACnetExternalReference a s223:Class,
rdfs:comment "BACnetExternalReference is a subclass of ExternalReference that contains BACnet protocol parameter values necessary to associate a property with a value."^^xsd:string ;
rdfs:subClassOf s223:ExternalReference ;
sh:property [ a sh:PropertyShape ;
- rdfs:comment "If the relation object-name is present it associates the external reference with the BACnet object having the specific object name."^^xsd:string ;
- sh:datatype xsd:string ;
+ rdfs:comment "If the relation priority-for-writing is present it provides the priority for writing values to the object."^^xsd:string ;
+ sh:datatype xsd:nonNegativeInteger ;
sh:maxCount 1 ;
sh:minCount 0 ;
- sh:path ],
+ sh:path ],
[ a sh:PropertyShape ;
- rdfs:comment "If the relation device-identifier is present it associates the external reference with a BACnet device having the specific device identifier."^^xsd:string ;
+ rdfs:comment "If the relation property-identifier is present it is either a decimal number or exactly equal to the ASHRAE 135-2020 Clause 21 identifier text of BACnetPropertyIdentifier. If it is omitted, it defaults to \"present-value\" except for BACnet File objects, where absence of property-identifier refers to the entire content of the file accessed with Stream Access."^^xsd:string ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:minCount 0 ;
- sh:path ;
- sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$"^^xsd:string ],
+ sh:path ],
[ a sh:PropertyShape ;
- rdfs:comment "If the relation property-identifier is present it is either a decimal number or exactly equal to the ASHRAE 135-2020 Clause 21 identifier text of BACnetPropertyIdentifier. If it is omitted, it defaults to \"present-value\" except for BACnet File objects, where absence of property-identifier refers to the entire content of the file accessed with Stream Access."^^xsd:string ;
+ rdfs:comment "If the relation device-identifier is present it associates the external reference with a BACnet device having the specific device identifier."^^xsd:string ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:minCount 0 ;
- sh:path ],
+ sh:path ;
+ sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$"^^xsd:string ],
[ a sh:PropertyShape ;
rdfs:comment "If the relation property-array-index is present it provides the index for reading items from a property that is an array."^^xsd:string ;
sh:datatype xsd:nonNegativeInteger ;
sh:maxCount 1 ;
sh:minCount 0 ;
sh:path ],
- [ a sh:PropertyShape ;
- rdfs:comment "If the relation priority-for-writing is present it provides the priority for writing values to the object."^^xsd:string ;
- sh:datatype xsd:nonNegativeInteger ;
- sh:maxCount 1 ;
- sh:minCount 0 ;
- sh:path ],
[ a sh:PropertyShape ;
rdfs:comment "If the relation device-name is present it associates the external reference with a BACnet device having the specific device name."^^xsd:string ;
sh:datatype xsd:string ;
@@ -1286,7 +1276,13 @@ s223:BACnetExternalReference a s223:Class,
sh:maxCount 1 ;
sh:minCount 0 ;
sh:path ;
- sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$"^^xsd:string ] .
+ sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$"^^xsd:string ],
+ [ a sh:PropertyShape ;
+ rdfs:comment "If the relation object-name is present it associates the external reference with the BACnet object having the specific object name."^^xsd:string ;
+ sh:datatype xsd:string ;
+ sh:maxCount 1 ;
+ sh:minCount 0 ;
+ sh:path ] .
s223:BatteryCPShape a sh:NodeShape ;
rdfs:label "Battery CP Shape"^^xsd:string ;
@@ -1313,18 +1309,18 @@ s223:Boiler a s223:Class,
rdfs:label "Boiler"^^xsd:string ;
rdfs:comment "A closed, pressure vessel that uses fuel or electricity for heating water or other fluids to supply steam or hot water for heating, humidification, or other applications."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A Boiler shall have at least one outlet using the medium Water."^^xsd:string ;
+ sh:property [ rdfs:comment "A Boiler shall have at least one inlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A Boiler shall have at least one inlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A Boiler shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1338,18 +1334,18 @@ s223:ChilledBeam a s223:Class,
sh:path s223:hasRole ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:Role-Cooling ] ],
- [ rdfs:comment "A ChilledBeam shall have at least one inlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A ChilledBeam shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A ChilledBeam shall have at least one outlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A ChilledBeam shall have at least one inlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1481,18 +1477,18 @@ s223:CoolingTower a s223:Class,
rdfs:label "Cooling tower"^^xsd:string ;
rdfs:comment "A heat transfer device in which atmospheric air cools warm water, generally by direct contact via evaporation."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A CoolingTower shall have at least one inlet using the medium Water."^^xsd:string ;
+ sh:property [ rdfs:comment "A CoolingTower shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A CoolingTower shall have at least one outlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A CoolingTower shall have at least one inlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1514,7 +1510,11 @@ s223:DifferentialSensor a s223:Class,
rdfs:label "Differential sensor"^^xsd:string ;
rdfs:comment "A sensor that measures the difference of a quantity between any two points in the system."^^xsd:string ;
rdfs:subClassOf s223:AbstractSensor ;
- sh:property [ rdfs:comment "A Differential Sensor must have different values for hasObservationLocationHigh and hasObservationLocationLow."^^xsd:string ;
+ sh:property [ rdfs:comment "A Differential Sensor must be defined in terms of the QuantityKind that is being measured."^^xsd:string ;
+ sh:class ns1:QuantityKind ;
+ sh:minCount 1 ;
+ sh:path ( s223:observes ns1:hasQuantityKind ) ],
+ [ rdfs:comment "A Differential Sensor must have different values for hasObservationLocationHigh and hasObservationLocationLow."^^xsd:string ;
sh:path s223:hasObservationLocationHigh ;
sh:sparql [ a sh:SPARQLConstraint ;
rdfs:comment "Ensure that the values of hasObservationLocationHigh and hasObservationLocationLow are distinct."^^xsd:string ;
@@ -1527,11 +1527,7 @@ WHERE {
$this s223:hasObservationLocationLow ?low .
FILTER (?high = ?low) .
}
-"""^^xsd:string ] ],
- [ rdfs:comment "A Differential Sensor must be defined in terms of the QuantityKind that is being measured."^^xsd:string ;
- sh:class ns1:QuantityKind ;
- sh:minCount 1 ;
- sh:path ( s223:observes ns1:hasQuantityKind ) ] ;
+"""^^xsd:string ] ] ;
sh:xone ( [ sh:property [ rdfs:comment "A DifferentialSensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocationLow."^^xsd:string ;
sh:class s223:Connectable ;
sh:maxCount 1 ;
@@ -1631,19 +1627,19 @@ s223:ElectricOutlet a s223:Class,
rdfs:label "Electric outlet"^^xsd:string ;
rdfs:comment "A device to which a piece of electrical equipment can be connected in order to provide it with electricity"^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "An ElectricOutlet shall have exactly one inlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "An ElectricOutlet shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
- sh:qualifiedMaxCount 1 ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "An ElectricOutlet shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ [ rdfs:comment "An ElectricOutlet shall have exactly one inlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMaxCount 1 ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1652,18 +1648,18 @@ s223:ElectricTransformer a s223:Class,
rdfs:label "Electric transformer"^^xsd:string ;
rdfs:comment "A piece of electrical equipment used to convert alternative current (AC) electric power from one voltage to another voltage."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "An ElectricTransformer shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "An ElectricTransformer shall have at least one inlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "An ElectricTransformer shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ [ rdfs:comment "An ElectricTransformer shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1687,21 +1683,7 @@ s223:FanCoilUnit a s223:Class,
rdfs:label "Fan coil unit"^^xsd:string ;
rdfs:comment "A device consisting of a heat exchanger (coil) and a fan to regulate the temperature of one or more spaces."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A FanCoilUnit shall have at least one outlet using the medium Air."^^xsd:string ;
- sh:minCount 1 ;
- sh:path s223:hasConnectionPoint ;
- sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
- sh:node [ sh:property [ sh:class s223:Fluid-Air ;
- sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A FanCoilUnit shall have at least one inlet using the medium Air."^^xsd:string ;
- sh:minCount 1 ;
- sh:path s223:hasConnectionPoint ;
- sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
- sh:node [ sh:property [ sh:class s223:Fluid-Air ;
- sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
+ sh:property [ rdfs:comment "A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:contains ;
sh:qualifiedMinCount 1 ;
@@ -1711,11 +1693,25 @@ s223:FanCoilUnit a s223:Class,
sh:path s223:hasRole ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:in ( s223:Role-Heating s223:Role-Cooling ) ] ],
+ [ rdfs:comment "A FanCoilUnit shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "A FanCoilUnit must be associated with at least 1 Fan using the relation contains."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:contains ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:Fan ] ] .
+ sh:qualifiedValueShape [ sh:class s223:Fan ] ],
+ [ rdfs:comment "A FanCoilUnit shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ] .
s223:FanPoweredTerminal a s223:Class,
sh:NodeShape ;
@@ -1733,7 +1729,12 @@ s223:Filter a s223:Class,
rdfs:label "Filter"^^xsd:string ;
rdfs:comment "A device that removes contaminants from gases or liquids."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A filter should have one common constituent between the inlet and outlet"^^xsd:string ;
+ sh:property [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ],
+ [ rdfs:comment "A filter should have one common constituent between the inlet and outlet"^^xsd:string ;
sh:path s223:hasConnectionPoint ;
sh:severity sh:Warning ;
sh:sparql [ a sh:SPARQLConstraint ;
@@ -1763,16 +1764,6 @@ WHERE {
}
}
"""^^xsd:string ] ],
- [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint."^^xsd:string ;
- 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."^^xsd:string ;
- sh:minCount 1 ;
- sh:path s223:hasConnectionPoint ;
- sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ],
[ rdfs:comment "Ensure that the filter inlet and outlet have compatible mediums."^^xsd:string ;
sh:path s223:hasConnectionPoint ;
sh:severity sh:Warning ;
@@ -1818,7 +1809,12 @@ FILTER NOT EXISTS {
{?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
-"""^^xsd:string ] ] .
+"""^^xsd:string ] ],
+ [ rdfs:comment "A Filter shall have at least one outlet."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ] .
s223:FlowSensor a s223:Class,
sh:NodeShape ;
@@ -1885,14 +1881,14 @@ s223:Generator a s223:Class,
rdfs:label "Generator"^^xsd:string ;
rdfs:comment "An energy transducer that transforms non-electric energy into electric energy."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A Generator shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "A Generator must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ],
+ [ rdfs:comment "A Generator shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:class s223:OutletConnectionPoint ;
sh:minCount 1 ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ;
- sh:path s223:hasConnectionPoint ],
- [ rdfs:comment "A Generator must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
- sh:minCount 1 ;
sh:path s223:hasConnectionPoint ] .
s223:HeatPump a s223:Class,
@@ -1995,13 +1991,13 @@ s223:JunctionCPShape a sh:NodeShape ;
sh:minCount 2 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ;
sh:qualifiedValueShapesDisjoint true ],
[ rdfs:comment "A Junction shall have at least two ConnectionPoints including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point."^^xsd:string ;
sh:minCount 2 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ;
sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "A Junction shall have at least two ConnectionPoints including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point."^^xsd:string ;
sh:minCount 2 ;
sh:path s223:hasConnectionPoint ;
@@ -2062,12 +2058,12 @@ s223:OccupantCounter a s223:Class,
sh:class s223:QuantifiableObservableProperty ;
sh:message "s223: An OccupantCounter must always observe a QuantifiableObservableProperty that has a QuantityKind of Population and a Unit of unit:NUM."^^xsd:string ;
sh:minCount 1 ;
- sh:node [ sh:property [ sh:hasValue ;
+ sh:node [ sh:property [ sh:hasValue ;
sh:maxCount 1 ;
- sh:path ns1:hasUnit ],
- [ sh:hasValue ;
+ sh:path ns1:hasQuantityKind ],
+ [ sh:hasValue ;
sh:maxCount 1 ;
- sh:path ns1:hasQuantityKind ] ] ;
+ sh:path ns1:hasUnit ] ] ;
sh:path s223:observes ] .
s223:OccupantMotionSensor a s223:Class,
@@ -2178,28 +2174,7 @@ s223:Pump a s223:Class,
rdfs:label "Pump"^^xsd:string ;
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."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media."^^xsd:string ;
- sh:path s223:hasConnectionPoint ;
- sh:sparql [ a sh:SPARQLConstraint ;
- rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media."^^xsd:string ;
- sh:message "s223: {?cpa} and {?cpb} on the Pump {$this} have incompatible Media {$mediuma} and {$mediumb}."^^xsd:string ;
- sh:prefixes ;
- sh:select """
-SELECT $this ?cpa ?cpb ?mediuma ?mediumb
-WHERE {
- $this s223:hasConnectionPoint ?cpa .
- $this s223:hasConnectionPoint ?cpb .
- FILTER (?cpa != ?cpb) .
- ?cpa s223:hasMedium ?mediuma .
- FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* s223:Constituent-Electricity}) .
- ?cpb s223:hasMedium ?mediumb .
- FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* s223:Constituent-Electricity}) .
- FILTER (?mediuma != ?mediumb) .
- FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* ?mediuma}) .
- FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* ?mediumb}) .
-}
-"""^^xsd:string ] ],
- [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:property [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
@@ -2222,7 +2197,28 @@ WHERE {
sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Fluid-Refrigerant ;
sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Fluid-Oil ;
sh:path s223:hasMedium ] ] ) ;
- sh:severity sh:Warning ] ] ] .
+ sh:severity sh:Warning ] ] ],
+ [ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:sparql [ a sh:SPARQLConstraint ;
+ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media."^^xsd:string ;
+ sh:message "s223: {?cpa} and {?cpb} on the Pump {$this} have incompatible Media {$mediuma} and {$mediumb}."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?cpa ?cpb ?mediuma ?mediumb
+WHERE {
+ $this s223:hasConnectionPoint ?cpa .
+ $this s223:hasConnectionPoint ?cpb .
+ FILTER (?cpa != ?cpb) .
+ ?cpa s223:hasMedium ?mediuma .
+ FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* s223:Constituent-Electricity}) .
+ ?cpb s223:hasMedium ?mediumb .
+ FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* s223:Constituent-Electricity}) .
+ FILTER (?mediuma != ?mediumb) .
+ FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* ?mediuma}) .
+ FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* ?mediumb}) .
+}
+"""^^xsd:string ] ] .
s223:RadiantPanelInletShape a sh:NodeShape ;
rdfs:label "Radiant panel inlet shape"^^xsd:string ;
@@ -2267,18 +2263,18 @@ s223:RadiatorInletShape a sh:NodeShape ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
- sh:path s223:hasMedium ] ] ] ] ] [ sh:property [ rdfs:comment "A Radiator shall have at least one outlet using the medium Water."^^xsd:string ;
+ sh:path s223:hasMedium ] ] ] ] ] [ sh:property [ rdfs:comment "A Radiator shall have at least one inlet using the medium Electricity or Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A Radiator shall have at least one inlet using the medium Electricity or Water."^^xsd:string ;
+ [ rdfs:comment "A Radiator shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] ] ) ;
sh:severity sh:Warning ;
@@ -2287,14 +2283,28 @@ s223:RadiatorInletShape a sh:NodeShape ;
s223:RequiredCommentsShape a sh:NodeShape ;
sh:severity sh:Info ;
sh:sparql [ a sh:SPARQLConstraint ;
- rdfs:comment "Every class of the 223 standard must be a direct or indirect subclass of s223:Concept. "^^xsd:string ;
- sh:message "s223: Class {$this} must be within the rdfs:subClassOf hierarchy under s223:Concept."^^xsd:string ;
+ rdfs:comment "Ensure that every SPARQLRule must have an rdfs:comment. "^^xsd:string ;
+ sh:message "s223: Every SPARQLRule for Class {$this} must have an rdfs:comment."^^xsd:string ;
sh:prefixes ;
sh:select """
SELECT $this
WHERE {
-FILTER NOT EXISTS {$this rdfs:subClassOf* rdf:Property} .
-FILTER NOT EXISTS {$this rdfs:subClassOf* s223:Concept} .
+$this sh:rule ?rule .
+?rule a sh:SPARQLRule .
+FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
+}
+"""^^xsd:string ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment "Ensure that any property shape must have an rdfs:comment. "^^xsd:string ;
+ sh:message "s223: The SPARQLConstraint for path {?path} for Class {$this} must have an rdfs:comment."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?path
+WHERE {
+$this sh:property ?propshape .
+?propshape sh:sparql ?sparqlconstraint .
+?propshape sh:path ?path .
+FILTER NOT EXISTS {?sparqlconstraint rdfs:comment ?comment} .
}
"""^^xsd:string ],
[ a sh:SPARQLConstraint ;
@@ -2311,15 +2321,13 @@ FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
}
"""^^xsd:string ],
[ a sh:SPARQLConstraint ;
- rdfs:comment "Ensure that every SPARQLRule must have an rdfs:comment. "^^xsd:string ;
- sh:message "s223: Every SPARQLRule for Class {$this} must have an rdfs:comment."^^xsd:string ;
+ rdfs:comment "Every class of the 223 standard must also be an instance of sh:NodeShape. "^^xsd:string ;
+ sh:message "s223: Class {$this} must be declared as an instance of sh:NodeShape."^^xsd:string ;
sh:prefixes ;
sh:select """
SELECT $this
WHERE {
-$this sh:rule ?rule .
-?rule a sh:SPARQLRule .
-FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
+FILTER NOT EXISTS {$this a sh:NodeShape} .
}
"""^^xsd:string ],
[ a sh:SPARQLConstraint ;
@@ -2335,36 +2343,24 @@ FILTER NOT EXISTS {?propshape rdfs:comment ?comment} .
}
"""^^xsd:string ],
[ a sh:SPARQLConstraint ;
- rdfs:comment "Every class of the 223 standard must have an rdfs:comment. "^^xsd:string ;
- sh:message "s223: Class {$this} must have an rdfs:comment."^^xsd:string ;
+ rdfs:comment "Every class of the 223 standard must be a direct or indirect subclass of s223:Concept. "^^xsd:string ;
+ sh:message "s223: Class {$this} must be within the rdfs:subClassOf hierarchy under s223:Concept."^^xsd:string ;
sh:prefixes ;
sh:select """
SELECT $this
WHERE {
-FILTER NOT EXISTS {$this rdfs:comment ?comment} .
+FILTER NOT EXISTS {$this rdfs:subClassOf* rdf:Property} .
+FILTER NOT EXISTS {$this rdfs:subClassOf* s223:Concept} .
}
"""^^xsd:string ],
[ a sh:SPARQLConstraint ;
- rdfs:comment "Every class of the 223 standard must also be an instance of sh:NodeShape. "^^xsd:string ;
- sh:message "s223: Class {$this} must be declared as an instance of sh:NodeShape."^^xsd:string ;
+ rdfs:comment "Every class of the 223 standard must have an rdfs:comment. "^^xsd:string ;
+ sh:message "s223: Class {$this} must have an rdfs:comment."^^xsd:string ;
sh:prefixes ;
sh:select """
SELECT $this
WHERE {
-FILTER NOT EXISTS {$this a sh:NodeShape} .
-}
-"""^^xsd:string ],
- [ a sh:SPARQLConstraint ;
- rdfs:comment "Ensure that any property shape must have an rdfs:comment. "^^xsd:string ;
- sh:message "s223: The SPARQLConstraint for path {?path} for Class {$this} must have an rdfs:comment."^^xsd:string ;
- sh:prefixes ;
- sh:select """
-SELECT $this ?path
-WHERE {
-$this sh:property ?propshape .
-?propshape sh:sparql ?sparqlconstraint .
-?propshape sh:path ?path .
-FILTER NOT EXISTS {?sparqlconstraint rdfs:comment ?comment} .
+FILTER NOT EXISTS {$this rdfs:comment ?comment} .
}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2385,19 +2381,19 @@ s223:SolarThermalCollector a s223:Class,
rdfs:label "Solar thermal collector"^^xsd:string ;
rdfs:comment "A device that converts sunlight into thermal energy."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A SolarThermalCollector shall have at least one inlet using the medium EM-Light."^^xsd:string ;
+ sh:property [ rdfs:comment "A SolarThermalCollector shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
- sh:node [ sh:property [ sh:class s223:EM-Light ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A SolarThermalCollector shall have at least one outlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A SolarThermalCollector shall have at least one inlet using the medium EM-Light."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
- sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:EM-Light ;
sh:path s223:hasMedium ] ] ] ] .
s223:SymmetricPropertyShape a sh:NodeShape ;
@@ -2473,16 +2469,16 @@ s223:TwoWayValve a s223:Class,
rdfs:label "Two way valve"^^xsd:string ;
rdfs:comment "A Valve that can divert a fluid in one of two directions."^^xsd:string ;
rdfs:subClassOf s223:Valve ;
- sh:property [ rdfs:comment "A TwoWayValve shall have at least one inlet."^^xsd:string ;
+ sh:property [ rdfs:comment "A TwoWayValve shall have at least one outlet."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ],
- [ rdfs:comment "A TwoWayValve shall have at least one outlet."^^xsd:string ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ],
+ [ rdfs:comment "A TwoWayValve shall have at least one inlet."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ] .
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ] .
s223:ValveCPShape a sh:NodeShape ;
rdfs:label "Valve"^^xsd:string ;
@@ -2513,7 +2509,10 @@ s223:VariableFrequencyDrive a s223:Class,
rdfs:label "VariableFrequencyDrive"^^xsd:string ;
rdfs:comment "An electronic device that varies its output frequency to vary the rotating speed of a motor, given a fixed input frequency. Used with fans or pumps to vary the flow in the system as a function of a maintained pressure."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
+ sh:class s223:Equipment ;
+ sh:path s223:connectedTo ],
+ [ rdfs:comment "A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
@@ -2527,10 +2526,7 @@ s223:VariableFrequencyDrive a s223:Class,
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ;
- sh:severity sh:Warning ],
- [ rdfs:comment "If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
- sh:class s223:Equipment ;
- sh:path s223:connectedTo ] .
+ sh:severity sh:Warning ] .
s223:WindowShade a s223:Class,
sh:NodeShape ;
@@ -2663,7 +2659,7 @@ s223:inverseOf a rdf:Property ;
owl:versionInfo "Created with TopBraid Composer"^^xsd:string .
- rdfs:label "QUDT SCHEMA Facade graph - v2.1.37"^^xsd:string ;
+ rdfs:label "QUDT SCHEMA Facade graph - v2.1.41"^^xsd:string ;
rdfs:comment "Facade graph for single place to redirect QUDT schema imports. Note that currently, the functions import uses SPIN and OWL."^^xsd:string ;
owl:versionInfo "Created with TopBraid Composer"^^xsd:string .
@@ -2721,6 +2717,24 @@ ns1:Concept-qudt_plainTextDescription rdfs:isDefinedBy ;
+ sh:sparql [ a sh:SPARQLConstraint ;
+ rdfs:comment "Checks for consistent dimension vectors for a QuantityKind and the Unit"^^xsd:string ;
+ sh:message "s223: Inconsistent dimensionalities for a Quantity's Unit and Quantity Kind"^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this
+ WHERE
+{
+ $this qudt:hasQuantityKind/qudt:hasDimensionVector ?qkdv1 .
+ $this qudt:hasUnit/qudt:hasDimensionVector ?qkdv2 .
+FILTER (?qkdv1 != ?qkdv2) .
+}
+"""^^xsd:string ] ;
+ sh:targetClass ns1:Quantity .
+
ns1:DeprecatedPropertyConstraint a sh:NodeShape ;
rdfs:label "Warning about use of a deprecated QUDT property"^^xsd:string ;
rdfs:isDefinedBy ;
@@ -6811,6 +6825,24 @@ ns1:valueQuantity a rdf:Property ;
ns1:symbol "0173-1#Z4-BAJ342#002"^^xsd:string ;
rdfs:isDefinedBy .
+ a ns1:QuantityKind ;
+ rdfs:label "Activity Thresholds"@en ;
+ dcterms:description "\"Activity Thresholds\" are thresholds of sensitivity for radioactivity."^^rdf:HTML ;
+ ns1:hasDimensionVector ;
+ ns1:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=43012"^^xsd:anyURI ;
+ ns1:latexSymbol "$\\overline{T_t}$"^^ns1:LatexString ;
+ ns1:plainTextDescription "\"Activity Thresholds\" are thresholds of sensitivity for radioactivity."^^xsd:string ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKind ;
+ rdfs:label "Adaptation"@en ;
+ dcterms:description "\"Adaptation\" is the recovery of visual ability following exposure to light (dark adaptation), usually measured in units of time."^^rdf:HTML ;
+ ns1:hasDimensionVector ;
+ ns1:informativeReference "http://en.wikipedia.org/wiki/Neural_adaptation#Visual"^^xsd:anyURI ;
+ ns1:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=43012"^^xsd:anyURI ;
+ ns1:plainTextDescription "\"Adaptation\" is the recovery of visual ability following exposure to light (dark adaptation)."^^xsd:string ;
+ rdfs:isDefinedBy .
+
a ns1:QuantityKind ;
rdfs:label "Alpha Disintegration Energy"@en ;
dcterms:description "The \"Alpha Disintegration Energy\" is the sum of the kinetic energy of the $\\alpha$-particle produced in the disintegration process and the recoil energy of the product atom in the reference frame in which the emitting nucleus is at rest before its disintegration."^^ns1:LatexString ;
@@ -7455,190 +7487,255 @@ The SI unit of pressure is the pascal (Pa), which is a very small unit relative
ns1:symbol "0173-1#Z4-BAJ292#002"^^xsd:string ;
rdfs:isDefinedBy .
- a ns1:QuantityKind ;
- rdfs:label "Average Energy Loss per Elementary Charge Produced"@en ;
- dcterms:description "\"Average Energy Loss per Elementary Charge Produced\" is also referred to as average energy loss per ion pair formed."^^rdf:HTML ;
- ns1:applicableUnit ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ;
- ns1:hasDimensionVector ;
- ns1:latexDefinition "$W_i = \\frac{E_k}{N_i}$, where $E_k$ is the initial kinetic energy of an ionizing charged particle and $N_i$ is the total ionization produced by that particle."^^ns1:LatexString ;
- ns1:normativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=31895"^^xsd:anyURI ;
- ns1:plainTextDescription "\"Average Energy Loss per Elementary Charge Produced\" is also referred to as average energy loss per ion pair formed."^^xsd:string ;
- ns1:symbol "W_i"^^xsd:string ;
- rdfs:isDefinedBy ;
- skos:broader .
-
- a ns1:QuantityKind ;
- rdfs:label "Average Head End Pressure"@en ;
- ns1:abbreviation "AHEP"^^xsd:string ;
- ns1:applicableUnit ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ;
- ns1:hasDimensionVector ;
- rdfs:isDefinedBy ;
- skos:broader .
-
- a ns1:QuantityKind ;
- rdfs:label "Average Specific Impulse"@en ;
- ns1:hasDimensionVector ;
- rdfs:comment "Avg Specific Impulse (lbf-sec/lbm) "^^xsd:string ;
+ a ns1:QuantityKind ;
+ rdfs:label "Auditory Thresholds"@en ;
+ dcterms:description "\"Auditory Thresholds\" is the thresholds of sensitivity to auditory signals and other input to the ear or the sense of hearing."^^rdf:HTML ;
+ ns1:applicableUnit ,
+ ,
+ ,
+ ,
+ ,
+ ;
+ ns1:hasDimensionVector ;
+ ns1:isoNormativeReference "http://www.iso.org/iso/catalogue_detail?csnumber=43012"^^xsd:anyURI ;
+ ns1:latexSymbol "$\\overline{T_a}$"^^ns1:LatexString ;
+ ns1:plainTextDescription "\"Auditory Thresholds\" is the thresholds of sensitivity to auditory signals and other input to the ear or the sense of hearing."^^xsd:string ;
rdfs:isDefinedBy ;
- skos:broader .
+ skos:broader .
- a ns1:QuantityKind ;
- rdfs:label "Average Vacuum Thrust"@en ;
- ns1:applicableUnit ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ,
- ;
- ns1:hasDimensionVector ;
+ a ns1:QuantityKind ;
+ rdfs:label "Auxillary Magnetic Field"@en ;
+ dcterms:description "Magnetic Fields surround magnetic materials and electric currents and are detected by the force they exert on other magnetic materials and moving electric charges. The electric and magnetic fields are two interrelated aspects of a single object, called the electromagnetic field. A pure electric field in one reference frame is observed as a combination of both an electric field and a magnetic field in a moving reference frame. The Auxillary Magnetic Field, H characterizes how the true Magnetic Field B influences the organization of magnetic dipoles in a given medium."^^rdf:HTML ;
+ ns1:applicableUnit ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ;
+ ns1:hasDimensionVector ;
+ ns1:latexSymbol "H"^^ns1:LatexString ;
+ ns1:plainTextDescription "Magnetic Fields surround magnetic materials and electric currents and are detected by the force they exert on other magnetic materials and moving electric charges. The electric and magnetic fields are two interrelated aspects of a single object, called the electromagnetic field. A pure electric field in one reference frame is observed as a combination of both an electric field and a magnetic field in a moving reference frame. The Auxillary Magnetic Field, H characterizes how the true Magnetic Field B influences the organization of magnetic dipoles in a given medium."^^xsd:string ;
rdfs:isDefinedBy ;
- skos:altLabel "AVT"^^xsd:string ;
- skos:broader .
-
- a ns1:QuantityKind ;
- rdfs:label "bandwidth distance product"^^xsd:string ;
- ns1:hasDimensionVector ;
- ns1:iec61360Code "0112/2///62720#UAD016"^^xsd:string ;
- rdfs:isDefinedBy .
-
- a ns1:QuantityKind ;
- rdfs:label "bandwidth length product"@en-us ;
- dcterms:description "parameter of transmission media for determination of frequency and length restrictions as reciprocal value of the multimode distortion corresponding to the product of maximum pulse frequency and maximum transmission distance"@en ;
- ns1:hasDimensionVector ;
- ns1:plainTextDescription "Parameter von Übertragungsmedien zur Bestimmung der Frequenz- und Längenrestriktionen als reziproke Wert der Modendispersion entsprechend dem Produkt aus maximaler Impulsfrequenz mal maximaler Übertragungsstrecke"@de ;
- ns1:symbol "0173-1#Z4-BAJ293#003"^^xsd:string ;
- rdfs:isDefinedBy .
+ skos:broader .
- a ns1:QuantityKind ;
- rdfs:label "Beta Disintegration Energy"@en ;
- dcterms:description "\"Beta Disintegration Energy\" is the energy released by a beta particle radioactive decay. It is the sum of the maximum beta-particle kinetic energy and the recoil energy of the atom produced in the reference frame in which the emitting nucleus is at rest before its disintegration."^^rdf:HTML ;
+ a ns1:QuantityKind ;
+ rdfs:label "Average Energy Loss per Elementary Charge Produced"@en ;
+ dcterms:description "\"Average Energy Loss per Elementary Charge Produced\" is also referred to as average energy loss per ion pair formed."^^rdf:HTML ;
+ ns1:applicableUnit ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+