;
rdfs:subClassOf ns1:Concept,
- ns4:EnumeratedValue ;
+ ns1:Verifiable,
+ ns3:EnumeratedValue ;
sh:property ns1:EnumeratedValue-abbreviation,
ns1:EnumeratedValue-description,
ns1:EnumeratedValue-symbol .
@@ -616,7 +848,7 @@ ns1:Enumeration a rdfs:Class,
The tags are a set of positive whole numbers, not necessarily contiguous and having no numerical significance, each corresponding to the associated literal identifier. An order attribute can also be given on the enumeration elements. An enumeration can itself be a member of an enumeration. This allows enumerations to be enumerated in a selection. Enumerations are also subclasses of Scalar Datatype. This allows them to be used as the reference of a datatype specification."""^^rdf:HTML ;
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Concept,
- ns4:Enumeration ;
+ ns3:Enumeration ;
sh:property ns1:Enumeration-abbreviation,
ns1:Enumeration-default,
ns1:Enumeration-element .
@@ -626,7 +858,7 @@ ns1:EnumerationScale a rdfs:Class,
rdfs:label "Enumeration scale"^^xsd:string ;
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Scale,
- ns4:Enumeration .
+ ns3:Enumeration .
ns1:Figure a rdfs:Class,
sh:NodeShape ;
@@ -648,6 +880,10 @@ ns1:FloatingPointEncodingType a rdfs:Class,
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Encoding ;
sh:property [ a sh:PropertyShape ;
+ rdfs:isDefinedBy ;
+ sh:in ( ns1:DoublePrecisionEncoding ns1:IEEE754_1985RealEncoding ns1:SinglePrecisionRealEncoding ) ;
+ sh:path [ sh:inversePath rdf:type ] ],
+ [ a sh:PropertyShape ;
rdfs:isDefinedBy ;
sh:in ( ns1:DoublePrecisionEncoding ns1:IEEE754_1985RealEncoding ns1:SinglePrecisionRealEncoding ) ;
sh:path [ sh:inversePath rdf:type ] ] .
@@ -659,6 +895,10 @@ ns1:IntegerEncodingType a rdfs:Class,
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Encoding ;
sh:property [ a sh:PropertyShape ;
+ rdfs:isDefinedBy ;
+ sh:in ( ns1:LongUnsignedIntegerEncoding ns1:ShortUnsignedIntegerEncoding ns1:ShortUnsignedIntegerEncoding ns1:SignedIntegerEncoding ns1:UnsignedIntegerEncoding ) ;
+ sh:path [ sh:inversePath rdf:type ] ],
+ [ a sh:PropertyShape ;
rdfs:isDefinedBy ;
sh:in ( ns1:LongUnsignedIntegerEncoding ns1:ShortUnsignedIntegerEncoding ns1:ShortUnsignedIntegerEncoding ns1:SignedIntegerEncoding ns1:UnsignedIntegerEncoding ) ;
sh:path [ sh:inversePath rdf:type ] ] .
@@ -716,7 +956,12 @@ ns1:OrderedType a rdfs:Class,
sh:property [ a sh:PropertyShape ;
rdfs:isDefinedBy ;
sh:in ( ns1:Unordered ns1:PartiallyOrdered ns1:TotallyOrdered ) ;
- sh:path [ sh:inversePath rdf:type ] ] .
+ sh:path [ sh:inversePath rdf:type ] ],
+ [ a sh:PropertyShape ;
+ rdfs:isDefinedBy ;
+ sh:in ( ns1:Unordered ns1:PartiallyOrdered ns1:TotallyOrdered ) ;
+ sh:path [ sh:inversePath rdf:type ] ],
+ ns1:OrderedType-literal .
ns1:OrdinalScale a rdfs:Class,
sh:NodeShape ;
@@ -744,9 +989,22 @@ ns1:PhysicalConstant a rdfs:Class,
rdfs:comment "A physical constant is a physical quantity that is generally believed to be both universal in nature and constant in time. It can be contrasted with a mathematical constant, which is a fixed numerical value but does not directly involve any physical measurement. There are many physical constants in science, some of the most widely recognized being the speed of light in vacuum c, Newton's gravitational constant G, Planck's constant h, the electric permittivity of free space ε0, and the elementary charge e. Physical constants can take many dimensional forms, or may be dimensionless depending on the system of quantities and units used."^^rdf:HTML ;
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Quantity ;
- sh:property ns1:PhysicalConstant-latexDefinition,
+ sh:property ns1:PhysicalConstant-applicableSystem,
+ ns1:PhysicalConstant-applicableUnit,
+ ns1:PhysicalConstant-dbpediaMatch,
+ ns1:PhysicalConstant-exactConstant,
+ ns1:PhysicalConstant-exactMatch,
+ ns1:PhysicalConstant-hasDimensionVector,
+ ns1:PhysicalConstant-iec61360Code,
+ ns1:PhysicalConstant-informativeReference,
+ ns1:PhysicalConstant-isoNormativeReference,
+ ns1:PhysicalConstant-latexDefinition,
ns1:PhysicalConstant-latexSymbol,
- ns1:PhysicalConstant-mathMLdefinition .
+ ns1:PhysicalConstant-mathMLdefinition,
+ ns1:PhysicalConstant-normativeReference,
+ ns1:PhysicalConstant-siExactMatch,
+ ns1:PhysicalConstant-symbol,
+ ns1:PhysicalConstant-ucumCode .
ns1:PlaneAngleUnit a rdfs:Class,
sh:NodeShape ;
@@ -760,8 +1018,10 @@ ns1:Prefix a rdfs:Class,
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:Concept,
ns1:Verifiable ;
- sh:property ns1:Prefix-latexSymbol,
+ sh:property ns1:Prefix-exactMatch,
+ ns1:Prefix-latexSymbol,
ns1:Prefix-prefixMultiplier,
+ ns1:Prefix-siExactMatch,
ns1:Prefix-symbol,
ns1:Prefix-ucumCode .
@@ -776,14 +1036,29 @@ ns1:Quantifiable a rdfs:Class,
ns1:Quantifiable-hasUnit,
ns1:Quantifiable-relativeStandardUncertainty,
ns1:Quantifiable-standardUncertainty,
+ ns1:Quantifiable-standardUncertaintySN,
ns1:Quantifiable-unit,
- ns1:Quantifiable-value .
+ ns1:Quantifiable-value,
+ ns1:Quantifiable-valueSN .
ns1:Quantity a rdfs:Class,
sh:NodeShape ;
rdfs:label "Quantity"^^xsd:string ;
ns1:dbpediaMatch "http://dbpedia.org/resource/Quantity"^^xsd:anyURI ;
- rdfs:comment """A quantity is the measurement of an observable property of a particular object, event, or physical system. A quantity is always associated with the context of measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the underlying quantity kind is independent of any particular measurement. Thus, length is a quantity kind while the height of a rocket is a specific quantity of length; its magnitude that may be expressed in meters, feet, inches, etc. Examples of physical quantities include physical constants, such as the speed of light in a vacuum, Planck's constant, the electric permittivity of free space, and the fine structure constant.
+ rdfs:comment """A quantity is the measurement of an observable property of a particular object, event, or physical system.
+ A quantity is always associated with the context of measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the
+ underlying quantity kind is independent of any particular measurement. Thus, length is a quantity kind while the height of a rocket is a specific
+ quantity of length; its magnitude that may be expressed in meters, feet, inches, etc. Examples of physical quantities include physical constants, such as
+ the speed of light in a vacuum, Planck's constant, the electric permittivity of free space, and the fine structure constant.
+In other words, quantities are quantifiable aspects of the world, such as the duration of a movie, the distance between two points,
+velocity of a car, the pressure of the atmosphere, and a person's weight; and units are used to describe their numerical measure.
+Many quantity kinds are related to each other by various physical laws, and as a result, the associated units of some quantity
+kinds can be expressed as products (or ratios) of powers of other quantity kinds (e.g., momentum is mass times velocity and velocity is defined as distance
+divided by time). In this way, some quantities can be calculated from other measured quantities using their associations to the quantity kinds in these
+expressions. These quantity kind relationships are also discussed in dimensional analysis. Those that cannot be so expressed can be regarded
+as "fundamental" in this sense.
+A quantity is distinguished from a "quantity kind" in that the former carries a value and the latter is a type specifier."""^^rdf:HTML,
+ """
A quantity is the measurement of an observable property of a particular object, event, or physical system. A quantity is always associated with the context of measurement (i.e. the thing measured, the measured value, the accuracy of measurement, etc.) whereas the underlying quantity kind is independent of any particular measurement. Thus, length is a quantity kind while the height of a rocket is a specific quantity of length; its magnitude that may be expressed in meters, feet, inches, etc. Examples of physical quantities include physical constants, such as the speed of light in a vacuum, Planck's constant, the electric permittivity of free space, and the fine structure constant.
In other words, quantities are quantifiable aspects of the world, such as the duration of a movie, the distance between two points, velocity of a car, the pressure of the atmosphere, and a person's weight; and units are used to describe their numerical measure.
@@ -817,18 +1092,34 @@ ns1:QuantityKind a rdfs:Class,
ns1:QuantityKind-baseUSCustomaryUnitDimensions,
ns1:QuantityKind-belongsToSystemOfQuantities,
ns1:QuantityKind-dimensionVectorForSI,
+ ns1:QuantityKind-exactMatch,
ns1:QuantityKind-expression,
ns1:QuantityKind-generalization,
ns1:QuantityKind-hasDimensionVector,
+ ns1:QuantityKind-iec61360Code,
ns1:QuantityKind-isQuantityKindOf,
ns1:QuantityKind-latexDefinition,
ns1:QuantityKind-mathMLdefinition,
ns1:QuantityKind-qkdvDenominator,
- ns1:QuantityKind-qkdvNumerator .
+ ns1:QuantityKind-qkdvNumerator,
+ ns1:QuantityKind-siExactMatch .
ns1:QuantityKindDimensionVector a rdfs:Class,
sh:NodeShape ;
rdfs:label "Quantity Kind Dimension Vector"^^xsd:string ;
+ dcterms:description """
+ $\\text{Quantity Kind Dimension Vector}$ describes the dimensionality of a quantity kind in the context of a system of units.
+ In the SI system of units, the dimensions of a quantity kind are expressed as a product of the basic
+ physical dimensions mass ($M$), length ($L$), time ($T$) current ($I$), amount of substance ($N$),
+ luminous intensity ($J$) and absolute temperature
+ ($\\theta$) as $dim \\, Q = L^{\\alpha} \\, M^{\\beta} \\, T^{\\gamma} \\, I ^{\\delta} \\, \\theta ^{\\epsilon} \\, N^{\\eta} \\, J ^{\\nu}$.
+
+
+ The rational powers of the dimensional exponents, $\\alpha, \\, \\beta, \\, \\gamma, \\, \\delta, \\, \\epsilon, \\, \\eta, \\, \\nu$, are positive, negative, or zero.
+
+ For example, the dimension of the physical quantity kind $\\it{speed}$ is $\\boxed{length/time}$, $L/T$ or $LT^{-1}$,
+ and the dimension of the physical quantity kind force is $\\boxed{mass \\times acceleration}$ or $\\boxed{mass \\times (length/time)/time}$, $ML/T^2$ or $MLT^{-2}$ respectively.
+ """^^ns1:LatexString ;
ns1:informativeReference "http://en.wikipedia.org/wiki/Dimensional_analysis"^^xsd:anyURI,
"http://web.mit.edu/2.25/www/pdf/DA_unified.pdf"^^xsd:anyURI ;
rdfs:comment """
A Quantity Kind Dimension Vector describes the dimensionality of a quantity kind in the context of a system of units. In the SI system of units, the dimensions of a quantity kind are expressed as a product of the basic physical dimensions mass (\\(M\\)), length (\\(L\\)), time (\\(T\\)) current (\\(I\\)), amount of substance (\\(N\\)), luminous intensity (\\(J\\)) and absolute temperature (\\(\\theta\\)) as \\(dim \\, Q = L^{\\alpha} \\, M^{\\beta} \\, T^{\\gamma} \\, I ^{\\delta} \\, \\theta ^{\\epsilon} \\, N^{\\eta} \\, J ^{\\nu}\\).
@@ -846,7 +1137,9 @@ ns1:QuantityKindDimensionVector a rdfs:Class,
ns1:QuantityKindDimensionVector-dimensionExponentForThermodynamicTemperature,
ns1:QuantityKindDimensionVector-dimensionExponentForTime,
ns1:QuantityKindDimensionVector-dimensionlessExponent,
- ns1:QuantityKindDimensionVector-latexDefinition .
+ ns1:QuantityKindDimensionVector-hasReferenceQuantityKind,
+ ns1:QuantityKindDimensionVector-latexDefinition,
+ ns1:QuantityKindDimensionVector-latexSymbol .
ns1:QuantityKindDimensionVector_CGS a rdfs:Class,
sh:NodeShape ;
@@ -904,7 +1197,8 @@ ns1:QuantityKindDimensionVector_SI a rdfs:Class,
ns1:QuantityType a rdfs:Class,
sh:NodeShape ;
rdfs:label "Quantity type"^^xsd:string ;
- dcterms:description "\\(\\textit{Quantity Type}\\) is an enumeration of quanity kinds. It specializes \\(\\boxed{dtype:EnumeratedValue}\\) by constrinaing \\(\\boxed{dtype:value}\\) to instances of \\(\\boxed{qudt:QuantityKind}\\)."^^ns1:LatexString ;
+ dcterms:description "$\\textit{Quantity Type}$ is an enumeration of quanity kinds. It specializes $\\boxed{dtype:EnumeratedValue}$ by constrinaing $\\boxed{dtype:value}$ to instances of $\\boxed{qudt:QuantityKind}$."^^ns1:LatexString,
+ "\\(\\textit{Quantity Type}\\) is an enumeration of quanity kinds. It specializes \\(\\boxed{dtype:EnumeratedValue}\\) by constrinaing \\(\\boxed{dtype:value}\\) to instances of \\(\\boxed{qudt:QuantityKind}\\)."^^ns1:LatexString ;
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:EnumeratedValue ;
sh:property ns1:QuantityType-value .
@@ -989,6 +1283,10 @@ ns1:SignednessType a rdfs:Class,
rdfs:isDefinedBy ;
rdfs:subClassOf ns1:EnumeratedValue ;
sh:property [ a sh:PropertyShape ;
+ rdfs:isDefinedBy ;
+ sh:in ( ns1:SIGNED ns1:UNSIGNED ) ;
+ sh:path [ sh:inversePath rdf:type ] ],
+ [ a sh:PropertyShape ;
rdfs:isDefinedBy ;
sh:in ( ns1:SIGNED ns1:UNSIGNED ) ;
sh:path [ sh:inversePath rdf:type ] ] .
@@ -1032,10 +1330,13 @@ ns1:SystemOfQuantityKinds a rdfs:Class,
rdfs:label "System of Quantity Kinds"^^xsd:string ;
rdfs:comment "A system of quantity kinds is a set of one or more quantity kinds together with a set of zero or more algebraic equations that define relationships between quantity kinds in the set. In the physical sciences, the equations relating quantity kinds are typically physical laws and definitional relations, and constants of proportionality. Examples include Newton’s First Law of Motion, Coulomb’s Law, and the definition of velocity as the instantaneous change in position. In almost all cases, the system identifies a subset of base quantity kinds. The base set is chosen so that all other quantity kinds of interest can be derived from the base quantity kinds and the algebraic equations. If the unit system is explicitly associated with a quantity kind system, then the unit system must define at least one unit for each quantity kind. From a scientific point of view, the division of quantities into base quantities and derived quantities is a matter of convention."^^rdf:HTML ;
rdfs:isDefinedBy ;
- rdfs:subClassOf ns1:Concept ;
+ rdfs:subClassOf ns1:Concept,
+ ns1:Verifiable ;
sh:property ns1:SystemOfQuantityKinds-baseDimensionEnumeration,
+ ns1:SystemOfQuantityKinds-hasBaseQuantityKind,
ns1:SystemOfQuantityKinds-hasQuantityKind,
- ns1:SystemOfQuantityKinds-hasUnitSystem .
+ ns1:SystemOfQuantityKinds-hasUnitSystem,
+ ns1:SystemOfQuantityKinds-systemDerivedQuantityKind .
ns1:SystemOfUnits a rdfs:Class,
sh:NodeShape ;
@@ -1044,7 +1345,8 @@ ns1:SystemOfUnits a rdfs:Class,
"http://www.ieeeghn.org/wiki/index.php/System_of_Measurement_Units"^^xsd:anyURI ;
rdfs:comment "A system of units is a set of units which are chosen as the reference scales for some set of quantity kinds together with the definitions of each unit. Units may be defined by experimental observation or by proportion to another unit not included in the system. If the unit system is explicitly associated with a quantity kind system, then the unit system must define at least one unit for each quantity kind."^^rdf:HTML ;
rdfs:isDefinedBy ;
- rdfs:subClassOf ns1:Concept ;
+ rdfs:subClassOf ns1:Concept,
+ ns1:Verifiable ;
sh:property ns1:SystemOfUnits-applicablePhysicalConstant,
ns1:SystemOfUnits-hasAllowedUnit,
ns1:SystemOfUnits-hasBaseUnit,
@@ -1052,7 +1354,8 @@ ns1:SystemOfUnits a rdfs:Class,
ns1:SystemOfUnits-hasDefinedUnit,
ns1:SystemOfUnits-hasDerivedCoherentUnit,
ns1:SystemOfUnits-hasDerivedUnit,
- ns1:SystemOfUnits-hasUnit .
+ ns1:SystemOfUnits-hasUnit,
+ ns1:SystemOfUnits-prefix .
ns1:TransformType a rdfs:Class,
sh:NodeShape ;
@@ -1064,7 +1367,8 @@ ns1:TransformType a rdfs:Class,
ns1:Unit a rdfs:Class,
sh:NodeShape ;
rdfs:label "Unit"^^xsd:string ;
- dcterms:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). For example, the meter is a quantity of length that has been rigorously defined and standardized by the BIPM (International Board of Weights and Measures). Any measurement of the length can be expressed as a number multiplied by the unit meter. More formally, the value of a physical quantity Q with respect to a unit (U) is expressed as the scalar multiple of a real number (n) and U, as \\(Q = nU\\)."^^ns1:LatexString ;
+ dcterms:description "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). For example, the meter is a quantity of length that has been rigorously defined and standardized by the BIPM (International Board of Weights and Measures). Any measurement of the length can be expressed as a number multiplied by the unit meter. More formally, the value of a physical quantity Q with respect to a unit (U) is expressed as the scalar multiple of a real number (n) and U, as $Q = nU$."^^ns1:LatexString,
+ "A unit of measure, or unit, is a particular quantity value that has been chosen as a scale for measuring other quantities the same kind (more generally of equivalent dimension). For example, the meter is a quantity of length that has been rigorously defined and standardized by the BIPM (International Board of Weights and Measures). Any measurement of the length can be expressed as a number multiplied by the unit meter. More formally, the value of a physical quantity Q with respect to a unit (U) is expressed as the scalar multiple of a real number (n) and U, as \\(Q = nU\\)."^^ns1:LatexString ;
ns1:informativeReference "http://dbpedia.org/resource/Category:Units_of_measure"^^xsd:anyURI,
"http://www.allmeasures.com/Fullconversion.asp"^^xsd:anyURI ;
rdfs:isDefinedBy ,
@@ -1074,7 +1378,13 @@ ns1:Unit a rdfs:Class,
ns1:Verifiable ;
sh:property ns1:Unit-applicableSystem,
ns1:Unit-conversionMultiplier,
+ ns1:Unit-conversionMultiplierSN,
ns1:Unit-conversionOffset,
+ ns1:Unit-conversionOffsetSN,
+ ns1:Unit-definedUnitOfSystem,
+ ns1:Unit-derivedCoherentUnitOfSystem,
+ ns1:Unit-derivedUnitOfSystem,
+ ns1:Unit-exactMatch,
ns1:Unit-expression,
ns1:Unit-hasDimensionVector,
ns1:Unit-hasQuantityKind,
@@ -1083,8 +1393,10 @@ ns1:Unit a rdfs:Class,
ns1:Unit-latexSymbol,
ns1:Unit-mathMLdefinition,
ns1:Unit-omUnit,
+ ns1:Unit-prefix,
ns1:Unit-qkdvDenominator,
ns1:Unit-qkdvNumerator,
+ ns1:Unit-siExactMatch,
ns1:Unit-siUnitsExpression,
ns1:Unit-symbol,
ns1:Unit-ucumCode,
@@ -1366,14 +1678,39 @@ s223:Actuator a s223:Class,
sh:class s223:ActuatableProperty ;
sh:message "s223: An Actuator must be associated with at least one ActuatableProperty using the relation actuatedByProperty."^^xsd:string ;
sh:minCount 1 ;
- sh:path s223:actuatedByProperty ] .
+ sh:path s223:actuatedByProperty ],
+ [ rdfs:comment "An Actuator must be associated with at least one ActuatableProperty using the relation actuatedByProperty."^^xsd:string ;
+ sh:class s223:ActuatableProperty ;
+ sh:message "s223: An Actuator must be associated with at least one ActuatableProperty using the relation actuatedByProperty."^^xsd:string ;
+ 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:message "s223: If the relation actuates is present it must associate the Actuator with a Equipment."^^xsd:string ;
+ sh:path s223:actuates ] .
s223:AirHandlingUnit a s223:Class,
sh:NodeShape ;
rdfs:label "Air handling unit"^^xsd:string ;
rdfs:comment "An assembly consisting of 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."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "An AirHandlingUnit shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:property [ rdfs:comment "An AirHandlingUnit shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:message "s223: An AirHandlingUnit 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 "An AirHandlingUnit shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:message "s223: An AirHandlingUnit 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 "An AirHandlingUnit shall have at least one outlet using the medium Air."^^xsd:string ;
sh:message "s223: An AirHandlingUnit shall have at least one outlet using the medium Air."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -1412,6 +1749,28 @@ s223:AirSourceHeatPump a s223:Class,
sh:node [ sh:property [ sh:class s223:Fluid-Air ;
sh:path s223:hasMedium ] ] ] ] .
+s223:AirToAirHeatPump a s223:Class,
+ sh:NodeShape ;
+ rdfs:label "Air to air heat pump"^^xsd:string ;
+ rdfs:comment "A subclass of HeatPump that can heat or cool by transferring thermal energy between two bodies of air."^^xsd:string ;
+ rdfs:subClassOf s223:HeatPump ;
+ sh:property [ rdfs:comment "An AirToAirHeatPump shall have at least two outlets using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: An AirToAirHeatPump shall have at least two outlets using the medium Fluid-Air."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An AirToAirHeatPump shall have at least two inlets using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: An AirToAirHeatPump shall have at least two inlets using the medium Fluid-Air."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ] .
+
s223:BACnetExternalReference a s223:Class,
sh:NodeShape ;
rdfs:label "BACnetExternalReference"^^xsd:string ;
@@ -1423,12 +1782,38 @@ s223:BACnetExternalReference a s223:Class,
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 object-identifier is present it associates the external reference with the BACnet object having the specific object identifier."^^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 ],
[ 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 ;
sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:minCount 0 ;
sh:path ],
+ [ 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 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: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 ;
@@ -1436,24 +1821,42 @@ s223:BACnetExternalReference a s223:Class,
sh:minCount 0 ;
sh:path ],
[ a sh:PropertyShape ;
- rdfs:comment "If the relation object-identifier is present it associates the external reference with the BACnet object having the specific object identifier."^^xsd:string ;
+ 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 ;
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-array-index is present it provides the index for reading items from a property that is an array."^^xsd:string ;
- sh:datatype xsd:nonNegativeInteger ;
+ 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 ],
+ 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 ;
+ sh:datatype xsd:string ;
+ 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 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 object-identifier is present it associates the external reference with the BACnet object having the specific object identifier."^^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 ],
[ 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 ;
sh:datatype xsd:string ;
@@ -1467,6 +1870,19 @@ s223:BatteryCPShape a sh:NodeShape ;
rdfs:comment "A Battery shall have at least one outlet or bidirectional ConnectionPoint using the medium Electricity."^^xsd:string ;
sh:message "s223: A Battery shall have at least one outlet or bidirectional ConnectionPoint using the medium Electricity."^^xsd:string ;
sh:or ( [ sh:property [ rdfs:comment "A Battery shall have at least one outlet or bidirectional ConnectionPoint using the medium Electricity."^^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:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ] ] [ sh:property [ rdfs:comment "A Battery shall have at least one outlet or bidirectional ConnectionPoint using the medium Electricity."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ] ] ),
+ ( [ sh:property [ rdfs:comment "A Battery shall have at least one outlet or bidirectional ConnectionPoint using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
@@ -1495,6 +1911,22 @@ s223:Boiler a s223:Class,
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 outlet using the medium Water."^^xsd:string ;
+ sh:message "s223: 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:OutletConnectionPoint ;
+ 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 ;
+ sh:message "s223: 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "A Boiler shall have at least one outlet using the medium Water."^^xsd:string ;
sh:message "s223: A Boiler shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
@@ -1517,6 +1949,22 @@ s223:Chiller a s223:Class,
sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Chiller shall have at least one inlet using the medium Water."^^xsd:string ;
+ sh:message "s223: A Chiller 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Chiller shall have at least one outlet using the medium Water."^^xsd:string ;
+ sh:message "s223: A Chiller 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "A Chiller shall have at least one inlet using the medium Water."^^xsd:string ;
sh:message "s223: A Chiller shall have at least one inlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
@@ -1550,6 +1998,28 @@ FILTER NOT EXISTS {$this a/rdfs:subClassOf* ?class .
?class sh:or/rdf:rest*/rdf:first/sh:property/sh:path ?p .
}
}
+"""^^xsd:string ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment """Ensure that all instances of an s223 class use only the properties defined for that class. Note that
+properties from other namespaces are not checked by this validation."""^^xsd:string ;
+ sh:message "s223: Predicate {?p} is not defined for instance {$this}."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?p ?o
+WHERE {
+$this ?p ?o .
+FILTER(STRSTARTS (str(?p), "http://data.ashrae.org/standard223#") || STRSTARTS (str(?p), "http://qudt.org/schema/qudt"))
+FILTER NOT EXISTS {$this a sh:NodeShape}
+FILTER NOT EXISTS {$this a/rdfs:subClassOf* ?class .
+ ?class sh:property/sh:path ?p .
+}
+FILTER NOT EXISTS {$this a/rdfs:subClassOf* ?class .
+?class sh:xone/rdf:rest*/rdf:first/sh:property/sh:path ?p .
+}
+FILTER NOT EXISTS {$this a/rdfs:subClassOf* ?class .
+?class sh:or/rdf:rest*/rdf:first/sh:property/sh:path ?p .
+}
+}
"""^^xsd:string ] ;
sh:targetClass s223:Concept .
@@ -1558,18 +2028,30 @@ s223:Compressor a s223:Class,
rdfs:label "Compressor"^^xsd:string ;
rdfs:comment "A device for mechanically increasing the pressure of a gas."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A Compressor shall have at least one outlet."^^xsd:string ;
- sh:message "s223: A Compressor shall have at least one outlet."^^xsd:string ;
+ sh:property [ rdfs:comment "A Compressor shall have at least one inlet."^^xsd:string ;
+ sh:message "s223: A Compressor 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 ] ],
[ rdfs:comment "A Compressor shall have at least one inlet."^^xsd:string ;
sh:message "s223: A Compressor shall have at least one inlet."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ] .
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ],
+ [ rdfs:comment "A Compressor shall have at least one outlet."^^xsd:string ;
+ sh:message "s223: A Compressor 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 "A Compressor shall have at least one outlet."^^xsd:string ;
+ sh:message "s223: A Compressor 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:ConcentrationSensor a s223:Class,
sh:NodeShape ;
@@ -1586,7 +2068,11 @@ s223:Conductor a s223:Class,
rdfs:comment """A Conductor is a subclass of Connection. It is an abstraction that represents one or more wires used to convey electricity,
with the electricity conceptualized as flowing through a Conductor like water through a pipe. Each instance of Conductor applies to no more than one circuit."""^^xsd:string ;
rdfs:subClassOf s223:Connection ;
- sh:property [ rdfs:comment "A Conductor must be associated with exactly one Constituent-Electricity using the relation hasMedium."^^xsd:string ;
+ sh:property [ rdfs:comment "If the relation hasElectricalPhase is present it must associate the Conductor with an ElectricalPhaseIdentifier or ElectricalVoltagePhases."^^xsd:string ;
+ sh:message "s223: If the relation hasElectricalPhase is present it must associate the Conductor with an ElectricalPhaseIdentifier or ElectricalVoltagePhases."^^xsd:string ;
+ sh:or ( [ sh:class s223:Aspect-ElectricalPhaseIdentifier ] [ sh:class s223:Aspect-ElectricalVoltagePhases ] ) ;
+ sh:path s223:hasElectricalPhase ],
+ [ rdfs:comment "A Conductor must be associated with exactly one Constituent-Electricity using the relation hasMedium."^^xsd:string ;
sh:class s223:Constituent-Electricity ;
sh:maxCount 1 ;
sh:message "s223: A Conductor must be associated with exactly one Constituent-Electricity using the relation hasMedium."^^xsd:string ;
@@ -1594,14 +2080,40 @@ s223:Conductor a s223:Class,
sh:path s223:hasMedium ],
[ rdfs:comment "If the relation hasElectricalPhase is present it must associate the Conductor with an ElectricalPhaseIdentifier or ElectricalVoltagePhases."^^xsd:string ;
sh:message "s223: If the relation hasElectricalPhase is present it must associate the Conductor with an ElectricalPhaseIdentifier or ElectricalVoltagePhases."^^xsd:string ;
- sh:or ( [ sh:class s223:Aspect-ElectricalPhaseIdentifier ] [ sh:class s223:Aspect-ElectricalVoltagePhases ] ) ;
- sh:path s223:hasElectricalPhase ] .
+ sh:or ( [ sh:class s223:EnumerationKind-ElectricalPhaseIdentifier ] [ sh:class s223:EnumerationKind-ElectricalVoltagePhases ] ) ;
+ sh:path s223:hasElectricalPhase ],
+ [ rdfs:comment "A Conductor must be associated with exactly one Constituent-Electricity using the relation hasMedium."^^xsd:string ;
+ sh:class s223:Constituent-Electricity ;
+ sh:maxCount 1 ;
+ sh:message "s223: A Conductor must be associated with exactly one Constituent-Electricity using the relation hasMedium."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasMedium ] .
s223:ConnectionCnxShape a sh:NodeShape ;
rdfs:label "ConnectionCnxShape"^^xsd:string ;
rdfs:comment "You need either an InletCP and an OutletCP, or at least one BidirectionalCP and another CP of any type."^^xsd:string ;
sh:message "s223: You need either an InletCP and an OutletCP, or at least one BidirectionalCP and another CP of any type."^^xsd:string ;
sh:or ( [ sh:property [ rdfs:comment "A Connection shall have at least two connectsAt relations allowing flow in and out of the Connection."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:connectsAt ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ;
+ sh:severity sh:Warning ],
+ [ rdfs:comment "A Connection shall have at least two connectsAt relations allowing flow in and out of the Connection."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:connectsAt ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ;
+ sh:severity sh:Warning ] ] [ sh:property [ rdfs:comment "A Connection shall have at least two connectsAt relations allowing flow in and out of the Connection."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:connectsAt ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ;
+ sh:severity sh:Warning ] ] ),
+ ( [ sh:property [ rdfs:comment "A Connection shall have at least two connectsAt relations allowing flow in and out of the Connection."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:connectsAt ;
sh:qualifiedMinCount 1 ;
@@ -1630,6 +2142,10 @@ s223:Controller a s223:Class,
rdfs:comment "A device for regulation of a system or component in normal operation, which executes a Function."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
sh:property [ rdfs:comment "If the relation executes is present it must associate the Controller with a Function."^^xsd:string ;
+ sh:class s223:Function ;
+ sh:message "s223: If the relation executes is present it must associate the Controller with a Function."^^xsd:string ;
+ sh:path s223:executes ],
+ [ rdfs:comment "If the relation executes is present it must associate the Controller with a Function."^^xsd:string ;
sh:class s223:Function ;
sh:message "s223: If the relation executes is present it must associate the Controller with a Function."^^xsd:string ;
sh:path s223:executes ] ;
@@ -1662,6 +2178,22 @@ s223:CoolingTower a s223:Class,
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A CoolingTower shall have at least one inlet using the medium Water."^^xsd:string ;
+ sh:message "s223: 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:InletConnectionPoint ;
+ 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 ;
+ sh:message "s223: 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: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 ;
sh:message "s223: A CoolingTower shall have at least one outlet using the medium Water."^^xsd:string ;
sh:minCount 1 ;
@@ -1677,6 +2209,13 @@ s223:CorrelatedColorTemperatureSensor a s223:Class,
rdfs:comment "A subclass of LightSensor that observes the correlated color temperature (CCT) of a light source, defined as the absolute temperature of a blackbody whose chromaticity most nearly resembles that of the light source."^^xsd:string ;
rdfs:subClassOf s223:LightSensor ;
sh:property [ rdfs:comment "A CorrelatedColorTemperatureSensor must always observe a Property that has a QuantityKind of ThermodynamicTemperature."^^xsd:string ;
+ sh:message "s223: A CorrelatedColorTemperatureSensor must always observe a Property that has a QuantityKind of ThermodynamicTemperature."^^xsd:string ;
+ sh:path s223:observes ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Property ;
+ sh:node [ sh:property [ sh:hasValue ;
+ sh:path ns1:hasQuantityKind ] ] ] ],
+ [ rdfs:comment "A CorrelatedColorTemperatureSensor must always observe a Property that has a QuantityKind of ThermodynamicTemperature."^^xsd:string ;
sh:message "s223: A CorrelatedColorTemperatureSensor must always observe a Property that has a QuantityKind of ThermodynamicTemperature."^^xsd:string ;
sh:path s223:observes ;
sh:qualifiedMinCount 1 ;
@@ -1690,6 +2229,14 @@ s223:Door a s223:Class,
rdfs:comment "A hinged, sliding, or revolving barrier at the entrance to a building or room."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
sh:property [ rdfs:comment "A Door shall have at least two bidirectional connection points using the medium Air."^^xsd:string ;
+ sh:message "s223: A Door shall have at least two bidirectional connection points using the medium Air."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Door shall have at least two bidirectional connection points using the medium Air."^^xsd:string ;
sh:message "s223: A Door shall have at least two bidirectional connection points using the medium Air."^^xsd:string ;
sh:minCount 2 ;
sh:path s223:hasConnectionPoint ;
@@ -1705,6 +2252,14 @@ s223:DualDuctTerminal a s223:Class,
rdfs:seeAlso s223:TerminalUnit ;
rdfs:subClassOf s223:TerminalUnit ;
sh:property [ rdfs:comment "A DualDuctTerminal shall have at least two inlets using the medium Air."^^xsd:string ;
+ sh:message "s223: A DualDuctTerminal shall have at least two inlets using the medium Air."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Air ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A DualDuctTerminal shall have at least two inlets using the medium Air."^^xsd:string ;
sh:message "s223: A DualDuctTerminal shall have at least two inlets using the medium Air."^^xsd:string ;
sh:minCount 2 ;
sh:path s223:hasConnectionPoint ;
@@ -1725,6 +2280,13 @@ s223:DuvSensor a s223:Class,
rdfs:comment "A subclass of LightSensor that observes Duv of a light source, defined as the distance between the chromaticity of the light source and a blackbody radiator of equal correlated color temperature (CCT)."^^xsd:string ;
rdfs:subClassOf s223:LightSensor ;
sh:property [ rdfs:comment "A DuvSensor must always observe a Property that has a QuantityKind of Duv."^^xsd:string ;
+ sh:message "s223: A DuvSensor must always observe a Property that has a QuantityKind of Duv."^^xsd:string ;
+ sh:path s223:observes ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Property ;
+ sh:node [ sh:property [ sh:hasValue ;
+ sh:path ns1:hasQuantityKind ] ] ] ],
+ [ rdfs:comment "A DuvSensor must always observe a Property that has a QuantityKind of Duv."^^xsd:string ;
sh:message "s223: A DuvSensor must always observe a Property that has a QuantityKind of Duv."^^xsd:string ;
sh:path s223:observes ;
sh:qualifiedMinCount 1 ;
@@ -1738,6 +2300,14 @@ s223:ElectricBreaker a s223:Class,
rdfs:comment "A piece of equipment designed to open the circuit automatically at a predetermined overcurrent without damage to itself (when properly applied within its rating)."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
sh:property [ rdfs:comment "An ElectricBreaker shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: An ElectricBreaker 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An ElectricBreaker shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:message "s223: An ElectricBreaker shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -1757,7 +2327,16 @@ 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 at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "An ElectricOutlet shall have exactly one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: 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:InletConnectionPoint ;
+ 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 ;
sh:message "s223: An ElectricOutlet shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -1772,6 +2351,14 @@ s223:ElectricOutlet a s223:Class,
sh:qualifiedMaxCount 1 ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ 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 ;
+ sh:message "s223: An ElectricOutlet 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:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ] .
@@ -1788,6 +2375,22 @@ s223:ElectricTransformer a s223:Class,
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 outlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: 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:OutletConnectionPoint ;
+ 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 ;
+ sh:message "s223: 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "An ElectricTransformer shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:message "s223: An ElectricTransformer shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
@@ -1802,7 +2405,27 @@ 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 must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
+ sh:property [ rdfs:comment "A FanCoilUnit shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:message "s223: 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 Fan using the relation contains."^^xsd:string ;
+ sh:message "s223: 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 ] ],
+ [ rdfs:comment "A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
+ sh:message "s223: A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasRole ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:in ( s223:Role-Heating s223:Role-Cooling ) ] ],
+ [ rdfs:comment "A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
sh:message "s223: A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:contains ;
@@ -1816,26 +2439,40 @@ s223:FanCoilUnit a s223:Class,
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:message "s223: A FanCoilUnit shall have at least one inlet using the medium Air."^^xsd:string ;
+ [ rdfs:comment "A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
+ sh:message "s223: A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
sh:minCount 1 ;
- sh:path s223:hasConnectionPoint ;
+ sh:path s223:hasRole ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
- sh:node [ sh:property [ sh:class s223:Fluid-Air ;
- sh:path s223:hasMedium ] ] ] ],
+ sh:qualifiedValueShape [ sh:in ( s223:Role-Heating s223:Role-Cooling ) ] ],
[ rdfs:comment "A FanCoilUnit must be associated with at least 1 Fan using the relation contains."^^xsd:string ;
sh:message "s223: 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 ] ],
- [ rdfs:comment "A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
- sh:message "s223: A FanCoilUnit must at least have the role Role-Heating or Role-Cooling."^^xsd:string ;
+ [ rdfs:comment "A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
+ sh:message "s223: A FanCoilUnit must be associated with at least 1 Coil using the relation contains."^^xsd:string ;
sh:minCount 1 ;
- sh:path s223:hasRole ;
+ sh:path s223:contains ;
sh:qualifiedMinCount 1 ;
- sh:qualifiedValueShape [ sh:in ( s223:Role-Heating s223:Role-Cooling ) ] ] .
+ sh:qualifiedValueShape [ sh:class s223:Coil ] ],
+ [ rdfs:comment "A FanCoilUnit shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:message "s223: 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 shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:message "s223: 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 ] ] ] ] .
s223:FanPoweredTerminal a s223:Class,
sh:NodeShape ;
@@ -1843,6 +2480,12 @@ s223:FanPoweredTerminal a s223:Class,
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."^^xsd:string ;
rdfs:subClassOf s223:TerminalUnit ;
sh:property [ rdfs:comment "A FanPoweredTerminal must be associated with at least one Fan by using the relation contains."^^xsd:string ;
+ sh:message "s223: A FanPoweredTerminal must be associated with at least one Fan by using the relation contains."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:contains ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Fan ] ],
+ [ rdfs:comment "A FanPoweredTerminal must be associated with at least one Fan by using the relation contains."^^xsd:string ;
sh:message "s223: A FanPoweredTerminal must be associated with at least one Fan by using the relation contains."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:contains ;
@@ -1854,7 +2497,73 @@ 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 "Incompatible Medium. Case 3: Associated ConnectionPoints with mediums having constituents."^^xsd:string ;
+ sh:property [ rdfs:comment "A Filter shall have at least one outlet."^^xsd:string ;
+ sh:message "s223: 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 "A Filter shall have at least one outlet."^^xsd:string ;
+ sh:message "s223: 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 "A Filter shall have at least one inlet ConnectionPoint."^^xsd:string ;
+ sh:message "s223: 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 "Incompatible Medium. Case 1: Associated ConnectionPoints with two pure mediums."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:sparql [ a sh:SPARQLConstraint ;
+ rdfs:comment "Incompatible Medium. Case 1: Two pure mediums."^^xsd:string ;
+ sh:message "s223: {$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?m2 ?m1
+WHERE {
+$this s223:cnx ?cp1, ?cp2 .
+?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
+?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
+FILTER (?cp1 != ?cp2) .
+?cp1 s223:hasMedium ?m1 .
+?cp2 s223:hasMedium ?m2 .
+FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
+FILTER NOT EXISTS {?m2 s223:composedOf ?c2}
+FILTER (NOT EXISTS {?m2 rdfs:subClassOf* ?m1}) .
+FILTER (NOT EXISTS {?m1 rdfs:subClassOf* ?m2}) .
+}
+"""^^xsd:string ] ],
+ [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint."^^xsd:string ;
+ sh:message "s223: 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 "Incompatible Medium. Case 1: Associated ConnectionPoints with two pure mediums."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:sparql [ a sh:SPARQLConstraint ;
+ rdfs:comment "Incompatible Medium. Case 1: Two pure mediums."^^xsd:string ;
+ sh:message "s223: {$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?m2 ?m1
+WHERE {
+$this s223:cnx ?cp1, ?cp2 .
+?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
+?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
+FILTER (?cp1 != ?cp2) .
+?cp1 s223:hasMedium ?m1 .
+?cp2 s223:hasMedium ?m2 .
+FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
+FILTER NOT EXISTS {?m2 s223:composedOf ?c2}
+FILTER (NOT EXISTS {?m2 rdfs:subClassOf* ?m1}) .
+FILTER (NOT EXISTS {?m1 rdfs:subClassOf* ?m2}) .
+}
+"""^^xsd:string ] ],
+ [ rdfs:comment "Incompatible Medium. Case 3: Associated ConnectionPoints with mediums having constituents."^^xsd:string ;
sh:path s223:hasConnectionPoint ;
sh:sparql [ a sh:SPARQLConstraint ;
rdfs:comment "Incompatible Medium. Case 3: Two mediums with constituents."^^xsd:string ;
@@ -1883,17 +2592,11 @@ WHERE {
}
}
"""^^xsd:string ] ],
- [ rdfs:comment "A Filter shall have at least one inlet ConnectionPoint."^^xsd:string ;
- sh:message "s223: 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 "Incompatible Medium. Case 1: Associated ConnectionPoints with two pure mediums."^^xsd:string ;
+ [ rdfs:comment "Incompatible Medium. Case 2: Associated ConnectionPoints, one with a pure medium and one with a medium having constituents.."^^xsd:string ;
sh:path s223:hasConnectionPoint ;
sh:sparql [ a sh:SPARQLConstraint ;
- rdfs:comment "Incompatible Medium. Case 1: Two pure mediums."^^xsd:string ;
- sh:message "s223: {$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}."^^xsd:string ;
+ rdfs:comment "Incompatible Medium. Case 2: A medium with constituents and a pure medium."^^xsd:string ;
+ sh:message "s223: {$this} has an incompatible medium {?m1} with any constituent of {?m2}."^^xsd:string ;
sh:prefixes ;
sh:select """
SELECT $this ?m2 ?m1
@@ -1904,10 +2607,41 @@ $this s223:cnx ?cp1, ?cp2 .
FILTER (?cp1 != ?cp2) .
?cp1 s223:hasMedium ?m1 .
?cp2 s223:hasMedium ?m2 .
+?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
-FILTER NOT EXISTS {?m2 s223:composedOf ?c2}
-FILTER (NOT EXISTS {?m2 rdfs:subClassOf* ?m1}) .
-FILTER (NOT EXISTS {?m1 rdfs:subClassOf* ?m2}) .
+FILTER NOT EXISTS {
+ ?m2 s223:composedOf/s223:ofConstituent ?s12 .
+ {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
+}
+}
+"""^^xsd:string ] ],
+ [ rdfs:comment "Incompatible Medium. Case 3: Associated ConnectionPoints with mediums having constituents."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:sparql [ a sh:SPARQLConstraint ;
+ rdfs:comment "Incompatible Medium. Case 3: Two mediums with constituents."^^xsd:string ;
+ sh:message "s223: For Filter {$this} there is no compatible substance between medium {?m2} and medium {?m1}."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT ?this ?m2 ?m1
+WHERE {
+ ?this s223:cnx ?cp1, ?cp2 .
+ ?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
+ ?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
+ FILTER (?cp1 != ?cp2) .
+ ?cp1 s223:hasMedium ?m1 .
+ ?cp2 s223:hasMedium ?m2 .
+ ?m1 s223:composedOf/s223:ofConstituent ?s1 .
+ ?m2 s223:composedOf/s223:ofConstituent ?s2 .
+ FILTER NOT EXISTS {
+ ?m1 s223:composedOf/s223:ofConstituent ?s11 .
+ ?m2 s223:composedOf/s223:ofConstituent ?s12 .
+ FILTER (?s11 = ?s12) .
+ }
+ FILTER NOT EXISTS {
+ ?m1 s223:composedOf/s223:ofConstituent ?s21 .
+ ?m2 s223:composedOf/s223:ofConstituent ?s22 .
+ {?s22 rdfs:subClassOf* ?s21} UNION {?s21 rdfs:subClassOf* ?s22} .
+ }
}
"""^^xsd:string ] ],
[ rdfs:comment "Incompatible Medium. Case 2: Associated ConnectionPoints, one with a pure medium and one with a medium having constituents.."^^xsd:string ;
@@ -1932,13 +2666,7 @@ FILTER NOT EXISTS {
{?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
-"""^^xsd:string ] ],
- [ rdfs:comment "A Filter shall have at least one outlet."^^xsd:string ;
- sh:message "s223: 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 ] ] .
+"""^^xsd:string ] ] .
s223:FlowSensor a s223:Class,
sh:NodeShape ;
@@ -1959,6 +2687,22 @@ s223:FumeHood a s223:Class,
sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Air ;
sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A FumeHood shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:message "s223: A FumeHood 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 FumeHood shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:message "s223: A FumeHood 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 FumeHood shall have at least one inlet using the medium Air."^^xsd:string ;
sh:message "s223: A FumeHood shall have at least one inlet using the medium Air."^^xsd:string ;
sh:minCount 1 ;
@@ -1973,6 +2717,13 @@ s223:FunctionPropertyShape a sh:NodeShape ;
rdfs:comment "A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
sh:message "s223: A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
sh:or ( [ sh:property [ rdfs:comment "A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
+ sh:class s223:Property ;
+ sh:minCount 1 ;
+ sh:path s223:hasInput ] ] [ sh:property [ rdfs:comment "A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
+ sh:class s223:Property ;
+ sh:minCount 1 ;
+ sh:path s223:hasOutput ] ] ),
+ ( [ sh:property [ rdfs:comment "A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
sh:class s223:Property ;
sh:minCount 1 ;
sh:path s223:hasInput ] ] [ sh:property [ rdfs:comment "A Function must be associated with at least one Property using either the relation hasInput or hasOutput."^^xsd:string ;
@@ -1987,7 +2738,15 @@ s223:Furnace a s223:Class,
rdfs:label "Furnace"^^xsd:string ;
rdfs:comment "An enclosed chamber or structure in which heat is produced, as by burning fuel or by converting electrical energy. "^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A Furnace shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:property [ rdfs:comment "A Furnace shall have at least one inlet using the medium Air."^^xsd:string ;
+ sh:message "s223: A Furnace 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 Furnace shall have at least one outlet using the medium Air."^^xsd:string ;
sh:message "s223: A Furnace shall have at least one outlet using the medium Air."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -2001,6 +2760,14 @@ s223:Furnace a s223:Class,
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 Furnace shall have at least one outlet using the medium Air."^^xsd:string ;
+ sh:message "s223: A Furnace 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 ] ] ] ] .
@@ -2009,23 +2776,44 @@ s223:GaugePressureSensor a s223:Class,
rdfs:label "Differential sensor"^^xsd:string ;
rdfs:comment "A pressure sensor that indicates pressure relative to atmospheric pressure."^^xsd:string ;
rdfs:subClassOf s223:PressureSensor ;
- sh:property [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a value of true for qudt:isDeltaQuantity."^^xsd:string ;
+ sh:property [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
+ sh:message "s223: A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
+ sh:path ( s223:observes ns1:hasQuantityKind ) ;
+ sh:value ],
+ [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
+ sh:message "s223: A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
+ sh:path ( s223:observes ns1:hasQuantityKind ) ;
+ sh:value ],
+ [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a value of true for qudt:isDeltaQuantity."^^xsd:string ;
sh:maxCount 1 ;
sh:message "s223: A GaugePressureSensor must always observe a Property that has a value of true for qudt:isDeltaQuantity."^^xsd:string ;
sh:minCount 1 ;
sh:path ( s223:observes ns1:isDeltaQuantity ) ;
sh:value true ],
- [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
- sh:message "s223: A GaugePressureSensor must always observe a Property that has a QuantityKind of GaugePressure."^^xsd:string ;
- sh:path ( s223:observes ns1:hasQuantityKind ) ;
- sh:value ] .
+ [ rdfs:comment "A GaugePressureSensor must always observe a Property that has a value of true for qudt:isDeltaQuantity."^^xsd:string ;
+ sh:maxCount 1 ;
+ sh:message "s223: A GaugePressureSensor must always observe a Property that has a value of true for qudt:isDeltaQuantity."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path ( s223:observes ns1:isDeltaQuantity ) ;
+ sh:value true ] .
s223:Generator a s223:Class,
sh:NodeShape ;
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:message "s223: 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:message "s223: A Generator shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ;
+ 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:message "s223: A Generator shall have at least one outlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
@@ -2050,7 +2838,43 @@ s223:GroundSourceHeatPump a s223:Class,
sh:path s223:hasMedium ] ] ;
sh:path s223:hasConnectionPoint ] .
+s223:GroundToAirHeatPump a s223:Class,
+ sh:NodeShape ;
+ rdfs:label "Ground to air heat pump"^^xsd:string ;
+ rdfs:comment "A subclass of HeatPump that can heat or cool air by transferring thermal energy to and from the ground."^^xsd:string ;
+ rdfs:subClassOf s223:HeatPump ;
+ sh:property [ rdfs:comment "A GroundToAirHeatPump shall have at least one BidirectionalConnectionPoint using Medium-ThermalContact."^^xsd:string ;
+ sh:class s223:BidirectionalConnectionPoint ;
+ sh:message "s223: A GroundToAirHeatPump shall have at least one BidirectionalConnectionPoint using Medium-ThermalContact."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Medium-ThermalContact ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A GroundToAirHeatPump shall have at least one outlet using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: A GroundToAirHeatPump shall have at least one outlet using the medium Fluid-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 GroundToAirHeatPump shall have at least one inlet using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: A GroundToAirHeatPump shall have at least one inlet using the medium Fluid-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:HeatTransferRole sh:rule [ a sh:TripleRule ;
+ rdfs:comment "Infer the hasRole s223:Role-HeatTransfer relation for every instance of the listed targetClass values."^^xsd:string ;
+ sh:object s223:Role-HeatTransfer ;
+ sh:predicate s223:hasRole ;
+ sh:subject sh:this ],
+ [ a sh:TripleRule ;
rdfs:comment "Infer the hasRole s223:Role-HeatTransfer relation for every instance of the listed targetClass values."^^xsd:string ;
sh:object s223:Role-HeatTransfer ;
sh:predicate s223:hasRole ;
@@ -2081,6 +2905,12 @@ s223:HumiditySensor a s223:Class,
rdfs:comment "A HumiditySensor is a specialization of a Sensor that observes a QuantifiableObservableProperty that represents a humidity measurement. "^^xsd:string ;
rdfs:subClassOf s223:Sensor ;
sh:property [ rdfs:comment "A HumiditySensor must be defined in terms of the QuantityKind that is being measured, which must be either RelativeHumidity or AbsoluteHumidity."^^xsd:string ;
+ sh:class s223:QuantifiableObservableProperty ;
+ sh:message "s223: A HumiditySensor must observe a QuantifiableObservableProperty that hasQuantityKind of either RelativeHumidity or AbsoluteHumidity."^^xsd:string ;
+ sh:node [ sh:property [ sh:or ( [ sh:hasValue ] [ sh:hasValue ] ) ;
+ sh:path ns1:hasQuantityKind ] ] ;
+ sh:path s223:observes ],
+ [ rdfs:comment "A HumiditySensor must be defined in terms of the QuantityKind that is being measured, which must be either RelativeHumidity or AbsoluteHumidity."^^xsd:string ;
sh:class s223:QuantifiableObservableProperty ;
sh:message "s223: A HumiditySensor must observe a QuantifiableObservableProperty that hasQuantityKind of either RelativeHumidity or AbsoluteHumidity."^^xsd:string ;
sh:node [ sh:property [ sh:or ( [ sh:hasValue ] [ sh:hasValue ] ) ;
@@ -2093,6 +2923,13 @@ s223:IlluminanceSensor a s223:Class,
rdfs:comment "A subclass of LightSensor that observes illuminance, defined as the areal density of the luminous flux incident at a point on a surface."^^xsd:string ;
rdfs:subClassOf s223:LightSensor ;
sh:property [ rdfs:comment "An IlluminanceSensor will always observe a Property that has a QuantityKind of Illuminance."^^xsd:string ;
+ sh:message "s223: An IlluminanceSensor will always observe a Property that has a QuantityKind of Illuminance."^^xsd:string ;
+ sh:path s223:observes ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Property ;
+ sh:node [ sh:property [ sh:hasValue ;
+ sh:path ns1:hasQuantityKind ] ] ] ],
+ [ rdfs:comment "An IlluminanceSensor will always observe a Property that has a QuantityKind of Illuminance."^^xsd:string ;
sh:message "s223: An IlluminanceSensor will always observe a Property that has a QuantityKind of Illuminance."^^xsd:string ;
sh:path s223:observes ;
sh:qualifiedMinCount 1 ;
@@ -2107,6 +2944,18 @@ s223:InversePropertyShape a sh:NodeShape ;
CONSTRUCT {
?o ?invP $this .
}
+WHERE {
+ $this ?p ?o .
+ ?p s223:inverseOf ?invP .
+}
+ """^^xsd:string ;
+ sh:prefixes ],
+ [ a sh:SPARQLRule ;
+ rdfs:comment "Declare the inverse triples for relations that have defined inverse relations"^^xsd:string ;
+ sh:construct """
+CONSTRUCT {
+?o ?invP $this .
+}
WHERE {
$this ?p ?o .
?p s223:inverseOf ?invP .
@@ -2135,6 +2984,22 @@ s223:Inverter a s223:Class,
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Electricity-DC ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An Inverter shall have at least one inlet using the medium Electricity-DC."^^xsd:string ;
+ sh:message "s223: An Inverter shall have at least one inlet using the medium Electricity-DC."^^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:Electricity-DC ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An Inverter shall have at least one outlet using the medium Electricity-AC."^^xsd:string ;
+ sh:message "s223: An Inverter shall have at least one outlet using the medium Electricity-AC."^^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:Electricity-AC ;
sh:path s223:hasMedium ] ] ] ] .
s223:JunctionCPShape a sh:NodeShape ;
@@ -2145,13 +3010,30 @@ 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: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 ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ;
+ 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 ;
sh:qualifiedMinCount 1 ;
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: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 ;
@@ -2182,6 +3064,26 @@ s223:JunctionUsageWarning a sh:NodeShape ;
))
} .
}
+ """^^xsd:string ;
+ sh:severity sh:Warning ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment "This Junction is not used to model significant details of a branching point in a connection, and may not be required."^^xsd:string ;
+ sh:message "This Junction {$this} is not used to model significant details of a branching point in a connection, and may not be required."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+ SELECT $this
+ WHERE {
+ $this s223:hasConnectionPoint? | s223:connectedThrough? ?junc_cp_conn .
+
+ FILTER NOT EXISTS {
+ # Connection has a relation that is not in the structural or required relationships
+ { ?junc_cp_conn ?p ?o . } UNION {?o ?p ?junc_cp_conn . }
+ FILTER (?p NOT IN (
+ s223:connected, s223:connectedTo, s223:connectedThrough, s223:hasConnectionPoint,
+ s223:connectsAt, s223:isConnectionPointOf, s223:cnx, rdf:type, rdfs:label, rdfs:comment
+ ))
+ } .
+ }
"""^^xsd:string ;
sh:severity sh:Warning ] ;
sh:targetClass s223:Junction .
@@ -2191,13 +3093,13 @@ s223:Luminaire a s223:Class,
rdfs:label "Luminaire"^^xsd:string ;
rdfs:comment "A complete lighting unit consisting of a light source(s) and ballast(s) or driver(s) (when applicable), together with the parts designed to distribute the light, to position and protect the light source(s), and to connect the light source(s) to the power supply. Also known as a light fixture."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
- sh:property [ rdfs:comment "A Luminaire shall have at least one inlet using the medium Electricity."^^xsd:string ;
- sh:message "s223: A Luminaire shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "A Luminaire shall have at least one outlet using the medium EM-Light."^^xsd:string ;
+ sh:message "s223: A Luminaire shall have at least one outlet using the medium EM-Light."^^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:Constituent-Electricity ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:EM-Light ;
sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "A Luminaire shall have at least one outlet using the medium EM-Light."^^xsd:string ;
sh:message "s223: A Luminaire shall have at least one outlet using the medium EM-Light."^^xsd:string ;
@@ -2206,6 +3108,22 @@ s223:Luminaire a s223:Class,
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:EM-Light ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Luminaire shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A Luminaire 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Luminaire shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A Luminaire 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ] .
s223:Motor a s223:Class,
@@ -2214,6 +3132,14 @@ s223:Motor a s223:Class,
rdfs:comment "A machine in which power is applied to do work by the conversion of various forms of energy into mechanical force and motion."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
sh:property [ rdfs:comment "A Motor shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A Motor 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A Motor shall have at least one inlet using the medium Electricity."^^xsd:string ;
sh:message "s223: A Motor shall have at least one inlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -2237,6 +3163,17 @@ s223:OccupantCounter a s223:Class,
[ sh:hasValue ;
sh:maxCount 1 ;
sh:path ns1:hasUnit ] ] ;
+ sh:path s223:observes ],
+ [ rdfs:comment "An OccupantCounter must always observe a QuantifiableObservableProperty that has a QuantityKind of Population and a Unit of unit:NUM."^^xsd:string ;
+ 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:maxCount 1 ;
+ sh:path ns1:hasUnit ],
+ [ sh:hasValue ;
+ sh:maxCount 1 ;
+ sh:path ns1:hasQuantityKind ] ] ;
sh:path s223:observes ] .
s223:OccupantMotionSensor a s223:Class,
@@ -2245,6 +3182,14 @@ s223:OccupantMotionSensor a s223:Class,
rdfs:comment "A subclass of OccupancySensor that observes motion within its sensing region."^^xsd:string ;
rdfs:subClassOf s223:OccupancySensor ;
sh:property [ rdfs:comment "An OccupantMotionSensor must always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Motion."^^xsd:string ;
+ sh:class s223:EnumeratedObservableProperty ;
+ sh:message "s223: An OccupantMotionSensor must always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Motion."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:node [ sh:property [ sh:class s223:Occupancy-Motion ;
+ sh:maxCount 1 ;
+ sh:path s223:hasEnumerationKind ] ] ;
+ sh:path s223:observes ],
+ [ rdfs:comment "An OccupantMotionSensor must always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Motion."^^xsd:string ;
sh:class s223:EnumeratedObservableProperty ;
sh:message "s223: An OccupantMotionSensor must always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Motion."^^xsd:string ;
sh:minCount 1 ;
@@ -2259,6 +3204,14 @@ s223:OccupantPresenceSensor a s223:Class,
rdfs:comment "A subclass of OccupancySensor that observes presence within its sensing region."^^xsd:string ;
rdfs:subClassOf s223:OccupancySensor ;
sh:property [ rdfs:comment "An OccupantPresenceSensor will always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Presence."^^xsd:string ;
+ sh:class s223:EnumeratedObservableProperty ;
+ sh:message "s223: An OccupantPresenceSensor will always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Presence."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:node [ sh:property [ sh:class s223:Occupancy-Presence ;
+ sh:maxCount 1 ;
+ sh:path s223:hasEnumerationKind ] ] ;
+ sh:path s223:observes ],
+ [ rdfs:comment "An OccupantPresenceSensor will always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Presence."^^xsd:string ;
sh:class s223:EnumeratedObservableProperty ;
sh:message "s223: An OccupantPresenceSensor will always observe an EnumeratedObservableProperty that has an EnumerationKind of Occupancy-Presence."^^xsd:string ;
sh:minCount 1 ;
@@ -2287,6 +3240,10 @@ Explicitly declaring the quantity kind of a sensor's output is preferable to rel
"""^^xsd:string ;
rdfs:subClassOf s223:Sensor ;
sh:property [ rdfs:comment "If the relation ofSubstance is present it must associate the ParticulateSensor with a Substance-Particulate."^^xsd:string ;
+ sh:class s223:Substance-Particulate ;
+ sh:message "s223: If the relation ofSubstance is present it must associate the ParticulateSensor with a Substance-Particulate."^^xsd:string ;
+ sh:path s223:ofSubstance ],
+ [ rdfs:comment "If the relation ofSubstance is present it must associate the ParticulateSensor with a Substance-Particulate."^^xsd:string ;
sh:class s223:Substance-Particulate ;
sh:message "s223: If the relation ofSubstance is present it must associate the ParticulateSensor with a Substance-Particulate."^^xsd:string ;
sh:path s223:ofSubstance ] .
@@ -2311,6 +3268,22 @@ s223:PhotovoltaicModule a s223:Class,
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:EM-Light ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An PhotovoltaicModule must have at least one inlet using the medium EM-Light."^^xsd:string ;
+ sh:message "s223: An PhotovoltaicModule must 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:EM-Light ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "An PhotovoltaicModule shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: An PhotovoltaicModule 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ] .
s223:Pipe a s223:Class,
@@ -2331,6 +3304,20 @@ s223:PowerOverEthernetSwitch a s223:Class,
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A PowerOverEthernetSwitch shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A PowerOverEthernetSwitch shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A PowerOverEthernetSwitch shall have at least one BidirectionalConnectionPoint using the medium PowerAndSignal-PoE."^^xsd:string ;
+ sh:message "s223: A PowerOverEthernetSwitch shall have at least one BidirectionalConnectionPoint using the medium PowerAndSignal-PoE."^^xsd:string ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:PowerAndSignal-PoE ;
+ sh:path s223:hasMedium ] ] ] ],
[ rdfs:comment "A PowerOverEthernetSwitch shall have at least one BidirectionalConnectionPoint using the medium PowerAndSignal-PoE."^^xsd:string ;
sh:message "s223: A PowerOverEthernetSwitch shall have at least one BidirectionalConnectionPoint using the medium PowerAndSignal-PoE."^^xsd:string ;
sh:path s223:hasConnectionPoint ;
@@ -2344,7 +3331,28 @@ 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 "A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ 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 outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
sh:message "s223: A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -2357,19 +3365,6 @@ s223:Pump a s223:Class,
sh:path s223:hasMedium ] ] [ sh:property [ sh:class s223:Fluid-Oil ;
sh:path s223:hasMedium ] ] ) ;
sh:severity sh:Warning ] ] ],
- [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
- sh:message "s223: 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 ;
- sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
- sh:node [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
- sh:message "s223: A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
- sh:or ( [ sh:property [ sh:class s223:Fluid-Water ;
- 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 ] ] ],
[ rdfs:comment "The non-electrical ConnectionPoints of a Pump must have compatible Media."^^xsd:string ;
sh:path s223:hasConnectionPoint ;
sh:sparql [ a sh:SPARQLConstraint ;
@@ -2390,7 +3385,46 @@ WHERE {
FILTER (NOT EXISTS {?mediumb a/rdfs:subClassOf* ?mediuma}) .
FILTER (NOT EXISTS {?mediuma a/rdfs:subClassOf* ?mediumb}) .
}
-"""^^xsd:string ] ] .
+"""^^xsd:string ] ],
+ [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: 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 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:or ( [ sh:property [ sh:class s223:Fluid-Water ;
+ 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 ] ] ],
+ [ rdfs:comment "A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ rdfs:comment "A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: A Pump shall have at least one outlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:or ( [ sh:property [ sh:class s223:Fluid-Water ;
+ 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 ] ] ],
+ [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: 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 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ rdfs:comment "A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:message "s223: A Pump shall have at least one inlet using the medium Water, Oil or Refrigerant."^^xsd:string ;
+ sh:or ( [ sh:property [ sh:class s223:Fluid-Water ;
+ 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 ] ] ] .
s223:RadiantHeaterInletShape a sh:NodeShape ;
rdfs:label "Radiant heater inlet shape"^^xsd:string ;
@@ -2399,6 +3433,26 @@ s223:RadiantHeaterInletShape a sh:NodeShape ;
sh:severity sh:Warning ;
sh:targetClass s223:RadiantHeater ;
sh:xone ( [ sh:property [ rdfs:comment "A radiant heater shall have at least one inlet using the medium Electricity, NaturalGas, or inlet and outlet of Water."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:or ( [ sh:class s223:Constituent-Electricity ] [ sh:class s223:Fluid-NaturalGas ] ) ;
+ sh:path s223:hasMedium ] ] ] ] ] [ sh:property [ rdfs:comment "A radiant heater shall have at least one inlet using the medium Electricity, NaturalGas, or inlet and outlet of Water."^^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:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A radiant heater shall have at least one inlet using the medium Electricity, NaturalGas, or inlet and outlet of 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:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ] ] ),
+ ( [ sh:property [ rdfs:comment "A radiant heater shall have at least one inlet using the medium Electricity, NaturalGas, or inlet and outlet of Water."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
@@ -2443,6 +3497,26 @@ s223:RadiatorInletShape a sh:NodeShape ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ] ] ),
+ ( [ sh:property [ rdfs:comment "A Radiator shall have at least one inlet using the medium Electricity or inlet and outlet of 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:Constituent-Electricity ;
+ 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ 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:OutletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] ] ) .
@@ -2460,6 +3534,19 @@ $this sh:property ?propshape .
?propshape sh:path ?path .
FILTER NOT EXISTS {?sparqlconstraint 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 ] ;
sh:targetClass s223:Class .
@@ -2476,6 +3563,18 @@ $this sh:property ?propshape .
?propshape sh:path ?path .
FILTER NOT EXISTS {?propshape 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 property shape with 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:path ?path .
+FILTER NOT EXISTS {?propshape rdfs:comment ?comment} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2492,6 +3591,18 @@ $this sh:rule ?rule .
?rule a sh:SPARQLRule .
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 ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this
+WHERE {
+$this sh:rule ?rule .
+?rule a sh:SPARQLRule .
+FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2509,6 +3620,19 @@ $this sh:rule ?rule .
?rule sh:predicate ?pred .
FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
}
+"""^^xsd:string ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment "Ensure that every TripleRule must have an rdfs:comment. "^^xsd:string ;
+ sh:message "s223: The TripleRule inferring {?pred} for Class {$this} must have an rdfs:comment."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this ?pred
+WHERE {
+$this sh:rule ?rule .
+?rule a sh:TripleRule .
+?rule sh:predicate ?pred .
+FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2523,6 +3647,16 @@ SELECT $this
WHERE {
FILTER NOT EXISTS {$this a sh:NodeShape} .
}
+"""^^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 ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this
+WHERE {
+FILTER NOT EXISTS {$this a sh:NodeShape} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2538,6 +3672,17 @@ WHERE {
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 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:subClassOf* rdf:Property} .
+FILTER NOT EXISTS {$this rdfs:subClassOf* s223:Concept} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2552,6 +3697,16 @@ SELECT $this
WHERE {
FILTER NOT EXISTS {$this 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 ;
+ sh:prefixes ;
+ sh:select """
+SELECT $this
+WHERE {
+FILTER NOT EXISTS {$this rdfs:comment ?comment} .
+}
"""^^xsd:string ] ;
sh:targetClass s223:Class .
@@ -2561,6 +3716,19 @@ s223:SensorObservationLocationShape a sh:NodeShape ;
sh:message "s223: A Sensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocation."^^xsd:string ;
sh:targetClass s223:Sensor ;
sh:xone ( [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocation."^^xsd:string ;
+ sh:class s223:Connectable ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:hasObservationLocation ] ] [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocation."^^xsd:string ;
+ sh:class s223:Connection ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:hasObservationLocation ] ] [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocation."^^xsd:string ;
+ sh:class s223:ConnectionPoint ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:hasObservationLocation ] ] ),
+ ( [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of Connectable, Connection, or ConnectionPoint using the relation hasObservationLocation."^^xsd:string ;
sh:class s223:Connectable ;
sh:maxCount 1 ;
sh:minCount 1 ;
@@ -2580,6 +3748,15 @@ s223:SensorObservesShape a sh:NodeShape ;
sh:message "s223: A Sensor must be associated with exactly 1 of QuantifiableObservableProperty or EnumeratedObservableProperty using the relation observes."^^xsd:string ;
sh:targetClass s223:Sensor ;
sh:xone ( [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of QuantifiableObservableProperty or EnumeratedObservableProperty using the relation observes."^^xsd:string ;
+ sh:class s223:QuantifiableObservableProperty ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:observes ] ] [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of QuantifiableObservableProperty or EnumeratedObservableProperty using the relation observes."^^xsd:string ;
+ sh:class s223:EnumeratedObservableProperty ;
+ sh:maxCount 1 ;
+ sh:minCount 1 ;
+ sh:path s223:observes ] ] ),
+ ( [ sh:property [ rdfs:comment "A Sensor must be associated with exactly 1 of QuantifiableObservableProperty or EnumeratedObservableProperty using the relation observes."^^xsd:string ;
sh:class s223:QuantifiableObservableProperty ;
sh:maxCount 1 ;
sh:minCount 1 ;
@@ -2594,6 +3771,13 @@ s223:SensorReferenceLocationShape a sh:NodeShape ;
rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
sh:message "s223: A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
sh:or ( [ sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
+ sh:class s223:Connectable ;
+ sh:path s223:hasReferenceLocation ] ] [ sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
+ sh:class s223:Connection ;
+ sh:path s223:hasReferenceLocation ] ] [ sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
+ sh:class s223:ConnectionPoint ;
+ sh:path s223:hasReferenceLocation ] ] ),
+ ( [ sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
sh:class s223:Connectable ;
sh:path s223:hasReferenceLocation ] ] [ sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
sh:class s223:Connection ;
@@ -2601,6 +3785,9 @@ s223:SensorReferenceLocationShape a sh:NodeShape ;
sh:class s223:ConnectionPoint ;
sh:path s223:hasReferenceLocation ] ] ) ;
sh:property [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
+ sh:maxCount 1 ;
+ sh:path s223:hasReferenceLocation ],
+ [ rdfs:comment "A Sensor can be associated with a maximum of one Connectable, Connection, or ConnectionPoint using the relation hasReferenceLocation."^^xsd:string ;
sh:maxCount 1 ;
sh:path s223:hasReferenceLocation ] ;
sh:targetClass s223:Sensor .
@@ -2611,6 +3798,12 @@ s223:SingleDuctTerminal a s223:Class,
rdfs:comment "An air-terminal unit assembly having one ducted air inlet and a damper for regulating the airflow rate."^^xsd:string ;
rdfs:subClassOf s223:TerminalUnit ;
sh:property [ rdfs:comment "A SingleDuctTerminal must be associated with at least one Damper using the relation contains."^^xsd:string ;
+ sh:message "s223: A SingleDuctTerminal must be associated with at least one Damper using the relation contains."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:contains ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Damper ] ],
+ [ rdfs:comment "A SingleDuctTerminal must be associated with at least one Damper using the relation contains."^^xsd:string ;
sh:message "s223: A SingleDuctTerminal must be associated with at least one Damper using the relation contains."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:contains ;
@@ -2622,7 +3815,15 @@ 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:message "s223: 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A SolarThermalCollector shall have at least one inlet using the medium EM-Light."^^xsd:string ;
sh:message "s223: A SolarThermalCollector shall have at least one inlet using the medium EM-Light."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
@@ -2637,6 +3838,14 @@ s223:SolarThermalCollector a s223:Class,
sh:qualifiedMinCount 1 ;
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 inlet using the medium EM-Light."^^xsd:string ;
+ sh:message "s223: 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:EM-Light ;
sh:path s223:hasMedium ] ] ] ] .
s223:SymmetricPropertyShape a sh:NodeShape ;
@@ -2646,6 +3855,18 @@ s223:SymmetricPropertyShape a sh:NodeShape ;
CONSTRUCT {
?o ?p $this .
}
+WHERE {
+ $this ?p ?o .
+ ?p a s223:SymmetricProperty .
+}
+ """^^xsd:string ;
+ sh:prefixes ],
+ [ a sh:SPARQLRule ;
+ rdfs:comment "Declare the inverse triples for symmetric relations"^^xsd:string ;
+ sh:construct """
+CONSTRUCT {
+?o ?p $this .
+}
WHERE {
$this ?p ?o .
?p a s223:SymmetricProperty .
@@ -2660,6 +3881,13 @@ s223:TemperatureSensor a s223:Class,
rdfs:comment "A TemperatureSensor is a specialization of a Sensor that observes a QuantifiableObservableProperty that represents a temperature measurement."^^xsd:string ;
rdfs:subClassOf s223:Sensor ;
sh:property [ rdfs:comment "A TemperatureSensor must always observe a Property that has a QuantityKind of Temperature."^^xsd:string ;
+ sh:message "s223: A TemperatureSensor must always observe a Property that has a QuantityKind of Temperature."^^xsd:string ;
+ sh:path s223:observes ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:Property ;
+ sh:node [ sh:property [ sh:hasValue ;
+ sh:path ns1:hasQuantityKind ] ] ] ],
+ [ rdfs:comment "A TemperatureSensor must always observe a Property that has a QuantityKind of Temperature."^^xsd:string ;
sh:message "s223: A TemperatureSensor must always observe a Property that has a QuantityKind of Temperature."^^xsd:string ;
sh:path s223:observes ;
sh:qualifiedMinCount 1 ;
@@ -2673,6 +3901,11 @@ s223:ThermalEnergyStorageUnit a s223:Class,
rdfs:comment "A device that stores thermal energy."^^xsd:string ;
rdfs:subClassOf s223:Equipment ;
sh:property [ rdfs:comment "A Thermal Energy Storage Unit must have at least two connection points."^^xsd:string ;
+ sh:class s223:ConnectionPoint ;
+ sh:message "s223: A Thermal Energy Storage Unit must have at least two connection points."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ],
+ [ rdfs:comment "A Thermal Energy Storage Unit must have at least two connection points."^^xsd:string ;
sh:class s223:ConnectionPoint ;
sh:message "s223: A Thermal Energy Storage Unit must have at least two connection points."^^xsd:string ;
sh:minCount 2 ;
@@ -2690,6 +3923,10 @@ s223:ThreeWayValve a s223:Class,
rdfs:comment "A Valve that can divert a fluid in one of three directions."^^xsd:string ;
rdfs:subClassOf s223:Valve ;
sh:property [ rdfs:comment "A ThreeWayValve must have at least three ConnectionPoints using the relation hasConnectionPoint."^^xsd:string ;
+ sh:message "s223: A ThreeWayValve must have at least three ConnectionPoints using the relation hasConnectionPoint."^^xsd:string ;
+ sh:minCount 3 ;
+ sh:path s223:hasConnectionPoint ],
+ [ rdfs:comment "A ThreeWayValve must have at least three ConnectionPoints using the relation hasConnectionPoint."^^xsd:string ;
sh:message "s223: A ThreeWayValve must have at least three ConnectionPoints using the relation hasConnectionPoint."^^xsd:string ;
sh:minCount 3 ;
sh:path s223:hasConnectionPoint ] .
@@ -2709,6 +3946,17 @@ s223:Turbine a s223:Class,
[ rdfs:comment "A Turbine must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
sh:message "s223: A Turbine must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ],
+ [ rdfs:comment "A Turbine must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
+ sh:message "s223: A Turbine must be associated with at least one ConnectionPoint using the relation hasConnectionPoint."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ],
+ [ rdfs:comment "A Turbine shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:class s223:OutletConnectionPoint ;
+ sh:message "s223: A Turbine shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ;
sh:path s223:hasConnectionPoint ] .
s223:TwoWayValve a s223:Class,
@@ -2722,6 +3970,18 @@ s223:TwoWayValve a s223:Class,
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ],
+ [ rdfs:comment "A TwoWayValve shall have at least one inlet."^^xsd:string ;
+ sh:message "s223: 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:InletConnectionPoint ] ],
+ [ rdfs:comment "A TwoWayValve shall have at least one outlet."^^xsd:string ;
+ sh:message "s223: 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:OutletConnectionPoint ] ],
[ rdfs:comment "A TwoWayValve shall have at least one outlet."^^xsd:string ;
sh:message "s223: A TwoWayValve shall have at least one outlet."^^xsd:string ;
sh:minCount 1 ;
@@ -2734,6 +3994,23 @@ s223:ValveCPShape a sh:NodeShape ;
rdfs:comment "A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
sh:message "s223: A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
sh:or ( [ sh:property [ rdfs:comment "A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ],
+ [ rdfs:comment "A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
+ sh:minCount 1 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 1 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:BidirectionalConnectionPoint ] ;
+ sh:qualifiedValueShapesDisjoint true ] ] ),
+ ( [ sh:property [ rdfs:comment "A Valve shall have at least one inlet and one outlet or two bidirectional connection points."^^xsd:string ;
sh:minCount 1 ;
sh:path s223:hasConnectionPoint ;
sh:qualifiedMinCount 1 ;
@@ -2758,18 +4035,15 @@ 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 "If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
- sh:class s223:Equipment ;
- sh:message "s223: If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
- sh:path s223:connectedTo ],
- [ rdfs:comment "A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
- sh:message "s223: A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:property [ rdfs:comment "A VariableFrequencyDrive shall have at least one inlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A VariableFrequencyDrive 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 ] ] ] ],
+ sh:path s223:hasMedium ] ] ] ;
+ sh:severity sh:Warning ],
[ rdfs:comment "A VariableFrequencyDrive shall have at least one inlet using the medium Electricity."^^xsd:string ;
sh:message "s223: A VariableFrequencyDrive shall have at least one inlet using the medium Electricity."^^xsd:string ;
sh:minCount 1 ;
@@ -2778,27 +4052,111 @@ 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 ] .
+ sh:severity sh:Warning ],
+ [ rdfs:comment "A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A VariableFrequencyDrive 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
+ sh:class s223:Equipment ;
+ sh:message "s223: If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
+ sh:path s223:connectedTo ],
+ [ rdfs:comment "A VariableFrequencyDrive shall have at least one outlet using the medium Electricity."^^xsd:string ;
+ sh:message "s223: A VariableFrequencyDrive 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Constituent-Electricity ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
+ sh:class s223:Equipment ;
+ sh:message "s223: If the relation connectedTo is present it must associate the VariableFrequencyDrive with a Equipment."^^xsd:string ;
+ sh:path s223:connectedTo ] .
s223:WaterSourceHeatPump a s223:Class,
sh:NodeShape ;
rdfs:label "Water source heat pump"^^xsd:string ;
rdfs:comment "A subclass of HeatPump that can heat or cool by transferring thermal energy to and from a body of water."^^xsd:string ;
rdfs:subClassOf s223:HeatPump ;
- sh:property [ rdfs:comment "A WaterSourceHeatPump shall have at least one inlet using the medium Water."^^xsd:string ;
+ sh:property [ rdfs:comment "A WaterSourceHeatPump shall have at least one outlet using the medium Water"^^xsd:string ;
+ sh:message "s223: A WaterSourceHeatPump 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:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A WaterSourceHeatPump shall have at least one inlet using the medium Water."^^xsd:string ;
sh:message "s223: A WaterSourceHeatPump 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:InletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ] .
+
+s223:WaterToAirHeatPump a s223:Class,
+ sh:NodeShape ;
+ rdfs:label "Water to air heat pump"^^xsd:string ;
+ rdfs:comment "A subclass of HeatPump that can heat or cool air by transferring thermal energy with a body of water."^^xsd:string ;
+ rdfs:subClassOf s223:HeatPump ;
+ sh:property [ rdfs:comment "A WaterToAirHeatPump shall have at least one outlet using the medium Fluid-Water"^^xsd:string ;
+ sh:message "s223: A WaterToAirHeatPump shall have at least one outlet using the medium Fluid-Water."^^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:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A WaterToAirHeatPump shall have at least one inlet using the medium Fluid-Water."^^xsd:string ;
+ sh:message "s223: A WaterToAirHeatPump shall have at least one inlet using the medium Fluid-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:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ],
- [ rdfs:comment "A WaterSourceHeatPump shall have at least one outlet using the medium Water"^^xsd:string ;
- sh:message "s223: A WaterSourceHeatPump shall have at least one outlet using the medium Water."^^xsd:string ;
+ [ rdfs:comment "A WaterToAirHeatPump shall have at least one inlet using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: A WaterToAirHeatPump shall have at least one inlet using the medium Fluid-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 WaterToAirHeatPump shall have at least one outlet using the medium Fluid-Air."^^xsd:string ;
+ sh:message "s223: A WaterToAirHeatPump shall have at least one outlet using the medium Fluid-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 ] ] ] ] .
+
+s223:WaterToWaterHeatPump a s223:Class,
+ sh:NodeShape ;
+ rdfs:label "Water to water heat pump"^^xsd:string ;
+ rdfs:comment "A subclass of HeatPump that can heat or cool by transferring thermal energy to and from two flows of water."^^xsd:string ;
+ rdfs:subClassOf s223:HeatPump ;
+ sh:property [ rdfs:comment "A WaterToWaterHeatPump shall have at least two outlets using the medium Fluid-Water."^^xsd:string ;
+ sh:message "s223: A WaterToWaterHeatPump shall have at least two outlets using the medium Fluid-Water."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:OutletConnectionPoint ;
+ sh:node [ sh:property [ sh:class s223:Fluid-Water ;
+ sh:path s223:hasMedium ] ] ] ],
+ [ rdfs:comment "A WaterToWaterHeatPump shall have at least two inlets using the medium Fluid-Water."^^xsd:string ;
+ sh:message "s223: A WaterToWaterHeatPump shall have at least two inlets using the medium Fluid-Water."^^xsd:string ;
+ sh:minCount 2 ;
+ sh:path s223:hasConnectionPoint ;
+ sh:qualifiedMinCount 2 ;
+ sh:qualifiedValueShape [ sh:class s223:InletConnectionPoint ;
sh:node [ sh:property [ sh:class s223:Fluid-Water ;
sh:path s223:hasMedium ] ] ] ] .
@@ -2808,6 +4166,14 @@ s223:WindowShade a s223:Class,
rdfs:comment "A window covering that can be moved to block out or allow in light. "^^xsd:string ;
rdfs:subClassOf s223:Equipment .
+s223:hasDeadband a rdf:Property ;
+ rdfs:label "has deadband"^^xsd:string ;
+ rdfs:comment "This relation binds a control setpoint to the quantifiable property indicating the range of values within which a sensed variable can vary without indictating a condition has changed."^^xsd:string .
+
+s223:hasThreshold a rdf:Property ;
+ rdfs:label "has threshold"^^xsd:string ;
+ rdfs:comment "This relation binds a threshold to the quantifiable property indicating a specific value at which an action may be taken, distinguished from an offset or a range."^^xsd:string .
+
s223:inverseOf a rdf:Property ;
rdfs:label "inverse of"^^xsd:string ;
rdfs:comment "The relation inverseOf is a modeling construct to associate relations that are inverses of one another, such as connectedTo and connectedFrom."^^xsd:string .
@@ -2818,11 +4184,24 @@ s223:inverseOf a rdf:Property ;
sh:condition ;
sh:object ;
sh:predicate rdf:type ;
- sh:subject sh:this ] ;
- sh:targetClass s223:CoolingCoil .
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ] ;
+ sh:targetClass s223:CoolingCoil .
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."^^xsd:string ;
+ sh:condition ,
+ ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ,
;
@@ -2833,6 +4212,13 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ,
+ ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ,
;
@@ -2843,6 +4229,12 @@ s223:inverseOf a rdf:Property ;
a sh:NodeShape ;
sh:rule [ a sh:TripleRule ;
+ rdfs:comment "If an instance of s223:ElectricResistanceElement matches the constraints defined by g36:ElectricHeatingCoil, it will be declared as an instance of that class."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ a sh:TripleRule ;
rdfs:comment "If an instance of s223:ElectricResistanceElement matches the constraints defined by g36:ElectricHeatingCoil, it will be declared as an instance of that class."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2852,6 +4244,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2861,6 +4259,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2870,6 +4274,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2879,6 +4289,13 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ,
+ ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ,
;
@@ -2889,6 +4306,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2898,6 +4321,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2907,6 +4336,12 @@ s223:inverseOf a rdf:Property ;
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."^^xsd:string ;
+ sh:condition ;
+ sh:object ;
+ sh:predicate rdf:type ;
+ sh:subject sh:this ],
+ [ 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."^^xsd:string ;
sh:condition ;
sh:object ;
@@ -2935,7 +4370,8 @@ dcterms:replaces a owl:AnnotationProperty ;
owl:versionInfo "Created with TopBraid Composer"^^xsd:string .
- rdfs:label "QUDT SCHEMA Facade graph - v2.1.26"^^xsd:string ;
+ rdfs:label "QUDT SCHEMA Facade graph - v2.1.26"^^xsd:string,
+ "QUDT SCHEMA Facade graph - v2.1.32"^^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 .
@@ -2953,13 +4389,7 @@ ns1:AbstractQuantityKind-skos_broader rdfs:isDefinedBy .
-
-ns1:CT_UNCOUNTABLE a ns1:CardinalityType ;
- rdfs:label "Uncountable Cardinality Type"^^xsd:string ;
- dcterms:description "Any set with cardinality greater than that of the natural numbers, or \\(| X | \\; > \\; | \\mathbb N | \\), for example \\(| R| \\; = \\; c \\; > |\\mathbb N |\\), is said to be uncountable."^^ns1:LatexString ;
- ns1:literal "uncountable"^^xsd:string ;
+ ns3:literal "big"^^xsd:string ;
rdfs:isDefinedBy .
ns1:Citation-qudt_description rdfs:isDefinedBy ;
@@ -2999,9 +4429,28 @@ 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 ;
+ rdfs:isDefinedBy ,
+ ;
sh:severity sh:Info ;
sh:sparql [ a sh:SPARQLConstraint ;
rdfs:comment "Warns if a deprecated QUDT property is used"^^xsd:string ;
@@ -3015,12 +4464,26 @@ $this ?p ?o .
?p dcterms:isReplacedBy ?newp .
BIND (STR(?newp) AS ?newpstr)
BIND (STR(?p) AS ?oldpstr)
+}"""^^xsd:string ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment "Warns if a deprecated QUDT property is used"^^xsd:string ;
+ sh:message "Resource, '{$this}' uses the property '{?oldpstr}' which will be deprecated. Please use '{?newpstr}' instead."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """SELECT $this ?p ?oldpstr ?newpstr
+WHERE {
+?p qudt:deprecated true .
+?p a rdf:Property .
+$this ?p ?o .
+?p dcterms:isReplacedBy ?newp .
+BIND (STR(?newp) AS ?newpstr)
+BIND (STR(?p) AS ?oldpstr)
}"""^^xsd:string ] ;
sh:targetClass ns1:Concept .
ns1:DeprecationConstraint a sh:NodeShape ;
rdfs:label "Warning about use of a deprecated QUDT resource"^^xsd:string ;
- rdfs:isDefinedBy ;
+ rdfs:isDefinedBy ,
+ ;
sh:severity sh:Info ;
sh:sparql [ a sh:SPARQLConstraint ;
rdfs:comment "Warns if a deprecated QUDT resource is used"^^xsd:string ;
@@ -3034,6 +4497,19 @@ FILTER (!STRSTARTS(STR(?s),'http://qudt.org')) .
$this dcterms:isReplacedBy ?newq .
BIND (STR(?newq) AS ?newqstr)
BIND (STR($this) AS ?oldqstr)
+}"""^^xsd:string ],
+ [ a sh:SPARQLConstraint ;
+ rdfs:comment "Warns if a deprecated QUDT resource is used"^^xsd:string ;
+ sh:message "Resource, '{?s}' refers to '{?oldqstr}' which has been deprecated. Please refer to '{?newqstr}' instead."^^xsd:string ;
+ sh:prefixes ;
+ sh:select """SELECT ?s $this ?oldqstr ?newqstr
+WHERE {
+$this qudt:deprecated true .
+?s ?p $this .
+FILTER (!STRSTARTS(STR(?s),'http://qudt.org')) .
+$this dcterms:isReplacedBy ?newq .
+BIND (STR(?newq) AS ?newqstr)
+BIND (STR($this) AS ?oldqstr)
}"""^^xsd:string ] ;
sh:targetClass ns1:Concept .
@@ -3048,7 +4524,7 @@ ns1:ISO8601-UTCDateTime-BasicFormat a ns1:DateTimeStringEncodingType ;
ns1:LittleEndian a ns1:EndianType ;
rdfs:label "Little Endian"^^xsd:string ;
- ns4:literal "little"^^xsd:string ;
+ ns3:literal "little"^^xsd:string ;
rdfs:isDefinedBy .
ns1:PhysicalConstant-qudt_latexSymbol rdfs:isDefinedBy ;
@@ -3063,7 +4539,8 @@ ns1:PhysicsForums a org:Organization ;
ns1:Quantifiable-qudt_value a sh:PropertyShape ;
rdfs:isDefinedBy ;
sh:maxCount 1 ;
- sh:or ( [ sh:datatype xsd:float ] [ sh:datatype xsd:double ] [ sh:datatype xsd:integer ] [ sh:datatype xsd:decimal ] ) ;
+ sh:or ( [ sh:datatype xsd:float ] [ sh:datatype xsd:double ] [ sh:datatype xsd:integer ] [ sh:datatype xsd:decimal ] ),
+ ( [ sh:datatype xsd:float ] [ sh:datatype xsd:double ] [ sh:datatype xsd:integer ] [ sh:datatype xsd:decimal ] ) ;
sh:path ns1:value .
ns1:Quantity-qudt_description rdfs:isDefinedBy ;
@@ -3323,7 +4800,8 @@ ns1:citation a rdf:Property ;
ns1:coherentUnitSystem a rdf:Property ;
rdfs:label "coherent unit system"^^xsd:string ;
- dcterms:description "A system of units is coherent with respect to a system of quantities and equations if the system of units is chosen in such a way that the equations between numerical values have exactly the same form (including the numerical factors) as the corresponding equations between the quantities. In such a coherent system, no numerical factor other than the number 1 ever occurs in the expressions for the derived units in terms of the base units. For example, the \\(newton\\) and the \\(joule\\). These two are, respectively, the force that causes one kilogram to be accelerated at 1 metre per (1) second per (1) second, and the work done by 1 newton acting over 1 metre. Being coherent refers to this consistent use of 1. In the old c.g.s. system , with its base units the centimetre and the gram, the corresponding coherent units were the dyne and the erg, respectively the force that causes 1 gram to be accelerated at 1 centimetre per (1) second per (1) second, and the work done by 1 dyne acting over 1 centimetre. So \\(1\\,newton = 10^5 dyne\\), \\(1 joule = 10^7 erg\\), making each of the four compatible in a decimal sense within its respective other system, but not coherent therein.
"^^ns1:LatexString ;
+ dcterms:description "A system of units is coherent with respect to a system of quantities and equations if the system of units is chosen in such a way that the equations between numerical values have exactly the same form (including the numerical factors) as the corresponding equations between the quantities. In such a coherent system, no numerical factor other than the number 1 ever occurs in the expressions for the derived units in terms of the base units. For example, the $newton$ and the $joule$. These two are, respectively, the force that causes one kilogram to be accelerated at 1 metre per (1) second per (1) second, and the work done by 1 newton acting over 1 metre. Being coherent refers to this consistent use of 1. In the old c.g.s. system , with its base units the centimetre and the gram, the corresponding coherent units were the dyne and the erg, respectively the force that causes 1 gram to be accelerated at 1 centimetre per (1) second per (1) second, and the work done by 1 dyne acting over 1 centimetre. So $1\\,newton = 10^5 dyne$, $1 joule = 10^7 erg$, making each of the four compatible in a decimal sense within its respective other system, but not coherent therein.
"^^ns1:LatexString,
+ "A system of units is coherent with respect to a system of quantities and equations if the system of units is chosen in such a way that the equations between numerical values have exactly the same form (including the numerical factors) as the corresponding equations between the quantities. In such a coherent system, no numerical factor other than the number 1 ever occurs in the expressions for the derived units in terms of the base units. For example, the \\(newton\\) and the \\(joule\\). These two are, respectively, the force that causes one kilogram to be accelerated at 1 metre per (1) second per (1) second, and the work done by 1 newton acting over 1 metre. Being coherent refers to this consistent use of 1. In the old c.g.s. system , with its base units the centimetre and the gram, the corresponding coherent units were the dyne and the erg, respectively the force that causes 1 gram to be accelerated at 1 centimetre per (1) second per (1) second, and the work done by 1 dyne acting over 1 centimetre. So \\(1\\,newton = 10^5 dyne\\), \\(1 joule = 10^7 erg\\), making each of the four compatible in a decimal sense within its respective other system, but not coherent therein.
"^^ns1:LatexString ;
ns1:informativeReference "https://en.wikipedia.org/wiki/Coherence_(units_of_measurement)"^^xsd:anyURI ;
rdfs:isDefinedBy ;
rdfs:subPropertyOf ns1:hasUnitSystem .
@@ -3332,22 +4810,10 @@ ns1:conversionCoefficient a rdf:Property ;
rdfs:label "conversion coefficient"^^xsd:string ;
rdfs:isDefinedBy .
-ns1:currencyExponent a rdf:Property ;
- rdfs:label "currency exponent"^^xsd:string ;
- dcterms:description "The currency exponent indicates the number of decimal places between a major currency unit and its minor currency unit. For example, the US dollar is the major currency unit of the United States, and the US cent is the minor currency unit. Since one cent is 1/100 of a dollar, the US dollar has a currency exponent of 2. However, the Japanese Yen has no minor currency units, so the yen has a currency exponent of 0."^^rdf:HTML ;
- rdfs:isDefinedBy .
-
ns1:denominatorDimensionVector a rdf:Property ;
rdfs:label "denominator dimension vector"^^xsd:string ;
rdfs:isDefinedBy .
-ns1:derivedCoherentUnitOfSystem a rdf:Property ;
- rdfs:label "is coherent derived unit of system"^^xsd:string ;
- dcterms:description "This property relates a unit of measure to the unit system in which the unit is derived from the system's base units with a proportionality constant of one."^^rdf:HTML ;
- rdfs:isDefinedBy ;
- rdfs:subPropertyOf ns1:coherentUnitOfSystem,
- ns1:derivedUnitOfSystem .
-
ns1:derivedNonCoherentUnitOfSystem a rdf:Property ;
rdfs:label "is non-coherent derived unit of system"^^xsd:string ;
dcterms:description "This property relates a unit of measure to the unit system in which the unit is derived from the system's base units without proportionality constant of one."^^rdf:HTML ;
@@ -3356,6 +4822,7 @@ ns1:derivedNonCoherentUnitOfSystem a rdf:Property ;
ns1:derivedQuantityKindOfSystem a rdf:Property ;
rdfs:label "derived quantity kind of system"^^xsd:string ;
+ ns1:deprecated true ;
rdfs:isDefinedBy ;
rdfs:subPropertyOf ns1:isQuantityKindOf .
@@ -3371,10 +4838,6 @@ ns1:elementKind a rdf:Property ;
rdfs:label "element kind"^^xsd:string ;
rdfs:isDefinedBy .
-ns1:exactMatch a rdf:Property ;
- rdfs:label "exact match"^^xsd:string ;
- rdfs:isDefinedBy .
-
ns1:fieldCode a rdf:Property ;
rdfs:label "field code"^^xsd:string ;
ns1:plainTextDescription "A field code is a generic property for representing unique codes that make up other identifers. For example each QuantityKind class caries a domain code as its field code."^^xsd:string ;
@@ -3391,6 +4854,9 @@ ns1:floatPercentage a rdfs:Datatype,
rdfs:isDefinedBy ;
rdfs:subClassOf xsd:float ;
owl:equivalentClass [ a rdfs:Datatype ;
+ owl:onDatatype xsd:float ;
+ owl:withRestrictions ( [ xsd:minInclusive "0.0"^^xsd:float ] [ xsd:maxInclusive "100.0"^^xsd:float ] ) ],
+ [ a rdfs:Datatype ;
owl:onDatatype xsd:float ;
owl:withRestrictions ( [ xsd:minInclusive "0.0"^^xsd:float ] [ xsd:maxInclusive "100.0"^^xsd:float ] ) ] .
@@ -3431,10 +4897,6 @@ ns1:hasQuantity a rdf:Property ;
rdfs:label "has quantity"^^xsd:string ;
rdfs:isDefinedBy .
-ns1:hasReferenceQuantityKind a rdf:Property ;
- rdfs:label "has reference quantity kind"^^xsd:string ;
- rdfs:isDefinedBy .
-
ns1:hasVocabulary a rdf:Property ;
rdfs:label "has vocabulary"^^xsd:string ;
ns1:plainTextDescription "Used to relate a class to one or more graphs where vocabularies for the class are defined."^^xsd:string ;
@@ -3446,12 +4908,17 @@ ns1:integerPercentage a rdfs:Datatype,
rdfs:isDefinedBy ;
rdfs:subClassOf xsd:integer ;
owl:equivalentClass [ a rdfs:Datatype ;
+ rdfs:isDefinedBy ;
+ owl:onDatatype xsd:integer ;
+ owl:withRestrictions ( [ xsd:minInclusive 0 ] [ xsd:maxInclusive 100 ] ) ],
+ [ a rdfs:Datatype ;
rdfs:isDefinedBy ;
owl:onDatatype xsd:integer ;
owl:withRestrictions ( [ xsd:minInclusive 0 ] [ xsd:maxInclusive 100 ] ) ] .
ns1:isBaseQuantityKindOfSystem a rdf:Property ;
rdfs:label "is base quantity kind of system"^^xsd:string ;
+ ns1:deprecated true ;
rdfs:isDefinedBy ;
rdfs:subPropertyOf ns1:isQuantityKindOf .
@@ -3489,11 +4956,6 @@ ns1:positiveDeltaLimit a rdf:Property ;
dcterms:description "A positive change limit between consecutive sample values for a parameter. The Positive Delta may be the encoded value or engineering units value depending on whether or not a Calibrator is defined."^^rdf:HTML ;
rdfs:isDefinedBy .
-ns1:prefix a rdf:Property ;
- rdfs:label "prefix"^^xsd:string ;
- rdfs:comment "Associates a unit with the appropriate prefix, if any."^^xsd:string ;
- rdfs:isDefinedBy .
-
ns1:quantity a rdf:Property ;
rdfs:label "quantity"^^xsd:string ;
dcterms:description "a property to relate an observable thing with a quantity (qud:Quantity)"^^rdf:HTML ;
@@ -3518,18 +4980,15 @@ ns1:relevantUnit a rdf:Property ;
ns1:specialization a rdf:Property ;
rdfs:label "specialization"^^xsd:string ;
- dcterms:description "This property relates a quantity kind to its specialization(s). For example, linear velocity and angular velocity are both specializations of velocity."^^rdf:HTML ;
+ dcterms:description "This deprecated property originally related a quantity kind to its specialization(s). For example, linear velocity and angular velocity are both specializations of velocity."^^rdf:HTML,
+ "This property relates a quantity kind to its specialization(s). For example, linear velocity and angular velocity are both specializations of velocity."^^rdf:HTML ;
+ ns1:deprecated true ;
rdfs:isDefinedBy .
ns1:systemDefinition a rdf:Property ;
rdfs:label "system definition"^^xsd:string ;
rdfs:isDefinedBy .
-ns1:systemDerivedQuantityKind a rdf:Property ;
- rdfs:label "system derived quantity kind"^^xsd:string ;
- rdfs:isDefinedBy ;
- rdfs:subPropertyOf ns1:hasQuantityKind .
-
ns1:systemDimension a rdf:Property ;
rdfs:label "system dimension"^^xsd:string ;
rdfs:isDefinedBy .
@@ -4888,6 +6347,10 @@ ns1:valueQuantity a rdf:Property ;
a ns1:PhysicalConstant ;
rdfs:label "Josephson Constant"@en ;
dcterms:description """
+ The constant $\\textit{Josephson Constant}$ is a proportionality factor between voltage and frequency of an
+ alternating current corresponding to the product of two elementary charges $e$ and Planck's action quantum $h$.
+ """^^ns1:LatexString,
+ """
The constant $\\{Josephson Constant} is a proportionality factor between voltage and frequency of an
alternating current corresponding to the product of two elementary charges $e$ and Planck's action quantum $h$.
"""^^ns1:LatexString ;
@@ -6296,7 +7759,8 @@ ns1:valueQuantity a rdf:Property ;
rdfs:label "Faraday constant for conventional electric current"^^xsd:string ;
ns1:hasUnit ;
ns1:value 96485.33212 ;
- ns1:valueSN 9.648533e+04 ;
+ ns1:valueSN 9.648533e+04,
+ 9.648533e+04 ;
ns2:website "http://physics.nist.gov/cgi-bin/cuu/Value?f90#mid"^^xsd:anyURI .
a ns1:ConstantValue ;
@@ -6318,7 +7782,8 @@ ns1:valueQuantity a rdf:Property ;
ns1:standardUncertainty 0.0000044 ;
ns1:standardUncertaintySN 4.4e-06 ;
ns1:value -1.1648677 ;
- ns1:valueSN -1.164868e+00 ;
+ ns1:valueSN -1.164868e+00,
+ -1.164868e+00 ;
ns2:website "http://physics.nist.gov/cgi-bin/cuu/Value?s0srstd#mid"^^xsd:anyURI .
a ns1:ConstantValue ;
@@ -6326,7 +7791,8 @@ ns1:valueQuantity a rdf:Property ;
ns1:hasUnit ;
ns1:informativeReference "http://physics.nist.gov/cuu/Constants/bibliography.html"^^xsd:anyURI ;
ns1:value 299792458.0 ;
- ns1:valueSN 2.997925e+08 ;
+ ns1:valueSN 2.997925e+08,
+ 2.997925e+08 ;
ns2:website "http://physics.nist.gov/cgi-bin/cuu/Value?c#mid"^^xsd:anyURI .
a ns1:PhysicalConstant ;
@@ -6361,6 +7827,84 @@ ns1:valueQuantity a rdf:Property ;
rdfs:isDefinedBy ;
skos:closeMatch .
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-1L-1I0M1H0T-4D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -1 ;
+ ns1:dimensionExponentForLength -1 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 1 ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime -4 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-1 L^-1 M^1 T^-4 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-1L-2I0M1H-1T-3D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -1 ;
+ ns1:dimensionExponentForLength -2 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 1 ;
+ ns1:dimensionExponentForThermodynamicTemperature -1 ;
+ ns1:dimensionExponentForTime -3 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-1 L^-2 M^1 Θ^-1 T^-3 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-1L-5I0M1H0T-4D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -1 ;
+ ns1:dimensionExponentForLength -5 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 1 ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime -4 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-1 L^-5 M^1 T^-4 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-2L2I0M1H-1T-3D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -2 ;
+ ns1:dimensionExponentForLength 2 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 1 ;
+ ns1:dimensionExponentForThermodynamicTemperature -1 ;
+ ns1:dimensionExponentForTime -3 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-2 L^2 M^1 Θ^-1 T^-3 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-2L3I0M0H0T-1D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -2 ;
+ ns1:dimensionExponentForLength 3 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 0 ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime -1 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-2 L^3 T^-1 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E-9L0I0M0H-1T0D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent -9 ;
+ ns1:dimensionExponentForLength 0 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 0 ;
+ ns1:dimensionExponentForThermodynamicTemperature -1 ;
+ ns1:dimensionExponentForTime 0 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$E^-9 Θ^-1 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
a ns1:QuantityKindDimensionVector_CGS ;
rdfs:label "A0E0L-0.5I0M0.5TE0TM-1D0"^^xsd:string ;
ns1:dimensionExponentForAmountOfSubstance 0 ;
@@ -6387,6 +7931,32 @@ ns1:valueQuantity a rdf:Property ;
ns1:latexDefinition "\\(L^-0.5 M^0.5 T^-2\\)"^^ns1:LatexString ;
rdfs:isDefinedBy .
+ a ns1:QuantityKindDimensionVector_CGS ;
+ rdfs:label "A0E0L-0.5I0M0.5H0T-1D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent 0 ;
+ ns1:dimensionExponentForLength "-0.5"^^xsd:float ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass "0.5"^^xsd:float ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime -1 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$L^-0.5 M^0.5 T^-1$"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
+ a ns1:QuantityKindDimensionVector_CGS ;
+ rdfs:label "A0E0L-0.5I0M0.5H0T-2D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent 0 ;
+ ns1:dimensionExponentForLength "-0.5"^^xsd:float ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass "0.5"^^xsd:float ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime -2 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$L^-0.5 M^0.5 T^-2$"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
a ns1:QuantityKindDimensionVector_CGS ;
rdfs:label "A0E0L-1.5I0M0.5TE0TM-1D0"^^xsd:string ;
ns1:dimensionExponentForAmountOfSubstance 0 ;
@@ -6414,6 +7984,21 @@ ns1:valueQuantity a rdf:Property ;
ns2:todo "Suspicious. Electric Charge per Area would be ET/L**2"^^xsd:string ;
rdfs:isDefinedBy .
+ a ns1:QuantityKindDimensionVector_ISO,
+ ns1:QuantityKindDimensionVector_Imperial,
+ ns1:QuantityKindDimensionVector_SI ;
+ rdfs:label "A0E0L-1I0M-1H0T2D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent 0 ;
+ ns1:dimensionExponentForLength -1 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass -1 ;
+ ns1:dimensionExponentForThermodynamicTemperature 0 ;
+ ns1:dimensionExponentForTime 2 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$ L^-1 M^-1 T^2$"^^ns1:LatexString ;
+ rdfs:isDefinedBy .
+
a ns1:QuantityKindDimensionVector_ISO,
ns1:QuantityKindDimensionVector_Imperial,
ns1:QuantityKindDimensionVector_SI ;
@@ -6426,7 +8011,8 @@ ns1:valueQuantity a rdf:Property ;
ns1:dimensionExponentForThermodynamicTemperature 0 ;
ns1:dimensionExponentForTime 3 ;
ns1:dimensionlessExponent 0 ;
- ns1:latexDefinition "\\(L^-1 M^-1 T^3 Θ\\)"^^ns1:LatexString ;
+ ns1:latexDefinition "$L^-1 M^-1 T^3 Θ$"^^ns1:LatexString,
+ "\\(L^-1 M^-1 T^3 Θ\\)"^^ns1:LatexString ;
rdfs:isDefinedBy .
a ns1:QuantityKindDimensionVector_CGS,
@@ -6442,10 +8028,90 @@ ns1:valueQuantity a rdf:Property ;
ns1:dimensionExponentForThermodynamicTemperature 0 ;
ns1:dimensionExponentForTime 2 ;
ns1:dimensionlessExponent 0 ;
- ns1:latexDefinition "\\(L^{-1} T^2\\)"^^ns1:LatexString ;
+ ns1:latexDefinition "$L^{-1} T^2$"^^ns1:LatexString,
+ "\\(L^{-1} T^2\\)"^^ns1:LatexString ;
ns2:todo "Should be M-1L-2T4E2"^^xsd:string ;
rdfs:isDefinedBy .
+ a ns1:QuantityKindDimensionVector ;
+ rdfs:label "A0E0L-1I0M1H-1T-1D0"^^xsd:string ;
+ ns1:dimensionExponentForAmountOfSubstance 0 ;
+ ns1:dimensionExponentForElectricCurrent 0 ;
+ ns1:dimensionExponentForLength -1 ;
+ ns1:dimensionExponentForLuminousIntensity 0 ;
+ ns1:dimensionExponentForMass 1 ;
+ ns1:dimensionExponentForThermodynamicTemperature -1 ;
+ ns1:dimensionExponentForTime -1 ;
+ ns1:dimensionlessExponent 0 ;
+ ns1:latexDefinition "$L^-1 M Θ^-1 T^-1 $"^^ns1:LatexString ;
+ rdfs:isDefinedBy