Docs

pub:purpose

URI: pub:purpose


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:purpose> ns1:title "PURPOSE" ;
    rdfs:comment "The purpose of this standard is to define formal knowledge concepts and a methodology to apply them to create interoperable, machine-readable semantic frameworks for representing building automation and control data, and other building system information." .


        

pub:scope

URI: pub:scope


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:scope> ns1:title "SCOPE" ;
    rdfs:comment """This standard provides a comprehensive way to apply semantic formalisms to represent the context of building system data and relationships between the associated building mechanical system components so that software applications can find and understand the information in an automated way. It is intended to facilitate the development and implementation of building analytics tools and enterprise knowledge applications that can implement many building system functions, including:

(a) automated fault detection and diagnostics,
(b) building system commissioning,
(c) digital twins,
(d) optimization of energy use, and
(e) smart grid interactions.
""" .


        

pub:definitions

URI: pub:definitions


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<pub:definitions> ns1:subclauses ( <pub:definitions-terms> <pub:abbrev> ) ;
    ns1:title "DEFINITIONS" .


        

pub:definitions-terms

URI: pub:definitions-terms


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:definitions-terms> ns1:title "Terms Defined for this Standard" ;
    rdfs:comment """
**Connectable:** an abstract class that represents a thing (`Equipment`, `DomainSpace` or `Junction`) that can be connected via connection points and connections.

**Connection:** the modeling construct used to represent a physical thing (e.g., pipe, duct, or conductor) that is used to convey some `Substance-Medium` (e.g., water, air, or electricity) between two `Connectable` things.

**ConnectionPoint:** an abstract modeling construct used to represent the fact that one `Connectable` thing can be connected to another `Connectable` thing using a `Connection`. It is the abstract representation of the flange, wire terminal, or other physical feature where a connection is made.

**Domain:** a categorization of building service or specialization used to characterize equipment or spaces in a building. Example domains include HVAC, lighting, and plumbing.

**DomainSpace:** a portion or the entirety of a `PhysicalSpace` that is associated with a `EnumerationKind-Domain`, such as lighting, HVAC, or physical security. `DomainSpace`s can be combined to form a `Zone`.

**Equipment:** the modeling construct used to represent a device designed to accomplish a specific task. Examples include a pump, fan, heat exchanger, luminaire, temperature sensor, or flow meter. Both `Equipment` and `System` can be used to associate multiple pieces of `Equipment` with a higher-level concept. See {pub:equipment} and {pub:system} for clarification on the distinction between these concepts.

**Medium:** a substance used to convey mass, energy, or information through `Equipment` or a `System`.  Examples include air, water, refrigerant, and electricity.

**PhysicalSpace:** an architectural concept that represents a room, a collection of rooms such as a floor, a part of a room, or any physical space that might not even be thought of as a room, such as a patio.

Note: while the word "system" is used colloquially throughout this document (e.g., building system, control system), the `System` concept has a more formal definition than its colloquial usage.

**System:** a logical grouping or collection of `Equipment`, `Junction`, or other `System`s for some defined purpose. Example purposes include all the `Equipment` and `Junction`s that provide Domestic Hot Water service in a building, or all fire safety `Equipment` in a building that must be routinely inspected. A `System` cannot have a `ConnectionPoint`. See {pub:equipment} and {pub:system} for clarification on the distinction between these concepts.

**Zone:** a collection of `DomainSpace`s of a specific domain that are grouped together from the perspective of building services or controls.
""" .


        

pub:abbrev

URI: pub:abbrev


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:abbrev> ns1:title "Abbreviations and Acronyms Used in this Standard" ;
    rdfs:comment """
&nbsp;

|Acronym|Definition|
|:------ |:---------------------------------------|
|AHU|Air Handling Unit|
|ANSI|American National Standards Institute|
|ASHRAE|American Society of Heating, Refrigerating and Air-Conditioning Engineers|
|BACnet|Building Automation and Control Networks|
|CDL|Control Description Language|
|HVAC|Heating, Ventilation, and Air Conditioning|
|IFC|Industry Foundation Class|
|IRI|Internationalized Resource Identifier|
|LAN|Local Area Network|
|LL|Line-Line|
|LN|Line-Neutral|
|OWL|Web Ontology Language|
|PM|Particulate Matter|
|PoE|Power over Ethernet|
|QUDT|Quantities, Units, Dimensions, and Types|
|RDF|Resource Description Framework|
|RDFS|RDF Schema|
|SHACL|Shapes Constraint Language|
|SPARQL|SPARQL Protocol and RDF Query Language|
|USB|Universal Serial Bus|
|VAV|Variable Air Volume|
|W3C|World Wide Web Consortium|
""" .


        

pub:conceptual-framework

URI: pub:conceptual-framework


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:conceptual-framework> ns1:subclauses ( <pub:Conform-Constraints> <pub:Implicit-Info> <pub:Text-Serialization> <pub:Units> <pub:Namespace> <http://data.ashrae.org/standard223#Concept> <http://data.ashrae.org/standard223#hasProperty> ) ;
    ns1:title "CONCEPTUAL FRAMEWORK FOR SEMANTIC MODELING OF BUILDING SYSTEMS AND DATA" ;
    rdfs:comment """
This standard defines modeling constructs for use in creating a machine-readable representation of building systems, the building spaces that they serve,
and the measurement and control points used to provide a safe and comfortable environment for the building occupants. The standard can be considered a
toolkit of semantic building blocks and rules for using them to create a semantic model of a particular building or campus of buildings. The resulting model provides
a way for software applications to determine the relationships between the mechanical equipment in the building (i.e., AHU 1 gets chilled water from CH 3
and provides conditioned air to VAV Boxes 12 through 15 serving rooms on the third floor) and the meaning of measurements that are available
(i.e., T16 is a temperature sensor measuring the temperature of the air stream exiting AHU 1).

The model does not directly contain telemetric data about the real-time operation or past operation of the building systems. It does provide information
about the meaning or context of that data and defines external references that are used to point to a source of the data values, thus enabling analytics
 applications to find them. If the data source is a BACnet building automation and control system, the external reference contains the necessary information
 for analytic software to learn which BACnet device, object, and property corresponds to the desired piece of information. This enables construction of a BACnet
 message used to read the value.

These capabilities are achieved by applying concepts, standards, and query tools developed and deployed for information and data science applications outside the building domain. A primary commercial driver for developing these standards and tools is the Semantic Web, an extension of the World Wide Web that was created to make the semantic meaning of data accessible from the Internet machine readable.

This standard uses Resource Description Framework (RDF) (W3C) and its extended schema (RDFS) to represent the semantic ideas in the model. RDF is a general method for representing semantic ideas as of a triple. A triple consists of a subject, a predicate, and either a literal or an object. For example:

Jane hasFriend Dave

Jane hasSupervisor Mary

In this example, Jane is the subject of both triples, there are two different predicates, hasFriend and hasSupervisor, and there are two different objects,
 Dave and Mary. The number of triples is expanded as needed to capture the desired information. The collection of triples represents a directed
  multi-graph that can be searched or queried to answer questions or to infer information that may not be explicit in the graph. Figure 4-1 is a graph that
   corresponds to this example.

![Example triple graph.](figures/Figure_4-1_Triple_Example.svg)

This standard defines subjects, predicates, and objects relevant to the building space that are used to build a multi-graph representing a specific
 building or group of buildings. A compelling advantage of this graph-based approach is the ability to combine semantic graphs derived from complementary
 semantic models that apply to the same building. This makes it possible to take advantage of the combined information from distinct domains. For example, a
 RealEstateCore model that captures how spaces are assigned to different tenants in a building linked to the spaces represented in a Standard 223 model
 results in a semantic model containing the combined information. In a similar way, it is possible to link information from a computerized maintenance
 management system or an asset management system to the semantic graph of a Standard 223 model by adding a triple that binds a piece of equipment to its
 representation in the other system.

A model constructed from this standard describes the topology of the equipment and spaces in a building but not the geometric details. Linking a
Standard 223 model with an RDF representation of a building information model would add that geometric information.

Another advantage of using RDF to model building systems is that a query language standard, SPARQL (W3C SPARQL), exists and tools that implement SPARQL
are readily available. A building analytics tool developer needs only to create a library of queries relevant to their application, and use these queries
to interrogate any Standard 223 conformant model to find what they need from that building for their application.

Using RDF also provides a way to build conformance constraints into this standard in a way that enables conformance to be algorithmically verified.
This is done by using a different W3C standard, Shapes Constraints Language (SHACL) (W3C SHACL). SHACL defines a way to constrain the construction of RDF
graphs through the application of custom developed rules called shapes. The normative constraints described in this standard are formalized in
SHACL shapes. The description of each concept defined in this standard includes a table that lists related conformance constraints defined by these
SHACL shapes. Readily available SHACL reasoners check whether or not a particular model instance conforms to the shapes defined in this standard.

The concepts and relations mentioned below were designed to aid in standard development using RDF and SHACL exclusively and avoiding any dependence on OWL axioms.
This approach was chosen to avoid some of the shortcomings of using OWL in industrial settings, such as the open world assumption, the many flavors of OWL and their
support, and the sometimes counterintuitive implications of OWL reasoning for non-ontologists. (For example, if an instance satisfies the OWL axioms for a class, then
it is inferred to be an instance of that class). The use of SHACL shapes to define constraints and inferencing rules is a more intuitive way to define intended
model behavior and to verify conformance to the standard. The two most-used OWL inferences, supporting symmetric and inverse relations, are redefined in this standard
using SHACL rules.
""" .


        

pub:Conform-Constraints

URI: pub:Conform-Constraints


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:Conform-Constraints> ns1:title "Conformance Constraints and Validation" ;
    rdfs:comment """In this standard, SHACL shapes are used to define conformance constraints.
When a SHACL reasoner is applied to a model, discrepancies from the conformance constraints result in a message from the reasoner with one of three levels
of severity (sh:severity).

A message with a severity sh:Info means that a model construct is incomplete.

A message with a severity sh:Warning means that a model construct is used in an unexpected way.

A message with a severity sh:Violation means a model construct is invalid and does not comply with the standard.""" .


        

pub:Implicit-Info

URI: pub:Implicit-Info


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:Implicit-Info> ns1:title "Deriving Implicit Information from Inference Rules" ;
    rdfs:comment """SHACL is used in this standard to derive implicit information via a process called inferencing. Inference rules are used to define
how new triples are generated. The triples generated from this inference process enhance the ability to make useful queries without the burden of a modeler
crafting each one. The goal is to make model development easier without sacrificing the utility application developers need to find what they are looking
for. The description of each concept defined in this standard with related inference rules includes a table that lists the relevant SHACL shapes that specify
the inferencing.""" .


        

pub:Text-Serialization

URI: pub:Text-Serialization


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:Text-Serialization> ns1:title "Textual Serialization" ;
    rdfs:comment """
The normative content of this standard is documented in an RDF model textualized using Turtle (see {pub:AnnexA}). All models conforming to this standard shall
be textualized using Turtle.

The Turtle serialization format specifies that IRIs may be written as relative or absolute IRIs or prefixed names. The prefix
label is defined by using the "@prefix" directive followed by a colon followed by a partial IRI. The encoding
examples used in this document assume the following prefix statements:

```turtle
@prefix s223: <http://data.ashrae.org/standard223#> .
@prefix bacnet: <https://data.ashrae.org/bacnet/> .
@prefix qudt: <http://qudt.org/schema/qudt/> .
```

A prefixed name is turned into an IRI by concatenating the IRI associated with the prefix and the local part. The '@prefix' directive associates
a prefix label with an IRI, e.g., `s223:Equipment` expands to `<http://data.ashrae.org/standard223#Equipment>`. The scope of a prefix label is only within
the Turtle file that it appears. It is encouraged to use the prefix statements above when exchanging models.""" .


        

pub:Units

URI: pub:Units


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:Units> ns1:title "Units of Measure" ;
    rdfs:comment """ Because this standard includes references to measurements of physical properties, it is necessary to provide a model representation of
units of measure as well as what those units are quantifying (e.g. temperature, power, etc.). This standard builds upon the “Quantities, Units, Dimensions,
and Types” (QUDT) ontology which is an open-source model expressed in RDF/SHACL. The QUDT model is documented at [https://qudt.org](https://qudt.org). The key concepts
used here are the classes `qudt:Unit` and `qudt:QuantityKind`. The 223 standard is compatible with Version 3.1.1 of QUDT and is expected to be compatible with
all newer versions as well.""" .


        

pub:Namespace

URI: pub:Namespace


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:Namespace> ns1:title "Namespace" ;
    rdfs:comment """ Because it is anticipated that models conforming to this standard
will be combined with other semantic models, it is necessary to define
a namespace for the concepts defined by this standard to avoid any possible ambiguities
that might arise from a similar name used in the complementary model. In this standard
and all conforming models, the prefix “s223:” shall be used in the name of each
concept (class and relation) defined by this standard, e.g., s223:Equipment.
""" .


        

Concept

URI: http://data.ashrae.org/standard223#Concept


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Concept> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Concept" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Class> <http://data.ashrae.org/standard223#Relation> ),
        ( <http://data.ashrae.org/standard223#hasProperty> ) ;
    rdfs:comment "All classes and relations defined in the 223 standard are subclasses of `Concept`." ;
    rdfs:subClassOf rdfs:Resource ;
    sh:property [ rdfs:comment "Incompatible Medium. Case2: An entity with a pure medium and an associated `Property` with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 2: A pure medium and an associated `Property` with constituents." ;
                    sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "If the relation `hasProperty` is present, it shall associate the concept with a `Property`." ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:message "s223: If the relation `hasProperty` is present, it shall associate the concept with a `Property`." ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ],
        [ rdfs:comment "Incompatible Medium. Case1: An entity with a pure medium and an associated `Property` with a different pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
                    sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m2 .
FILTER (?m1 != ?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}) .
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case3: An entity with constituents and an associated `Property` with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 3: A medium with constituents and an associated `Property` with a pure medium." ;
                    sh:message "s223: {$this} `hasMedium` of {?m2}, but is associated with `Property` {?prop} that has `ofMedium` of {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m2 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case4: An entity with constituents and an associated `Property` with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 4: A medium with constituents and an associated `Property` with constituents." ;
                    sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?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} .
  }
}
""" ] ] .


        

Class

URI: http://data.ashrae.org/standard223#Class


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Class> a <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Class" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#AbstractClass> ) ;
    rdfs:comment "This is a modeling construct. All classes defined in the 223 standard are instances of `Class`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class ;
    sh:property [ rdfs:comment "A `Class` shall be associated with at least one label using the relation `rdfs:label`." ;
            sh:message "s223: A `Class` shall be associated with at least one label using the relation `rdfs:label`." ;
            sh:minCount 1 ;
            sh:path rdfs:label ;
            sh:severity sh:Warning ] .


        

Abstract class

URI: http://data.ashrae.org/standard223#AbstractClass


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#AbstractClass> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Abstract class" ;
    rdfs:comment "This is a modeling construct. Instances of abstract classes cannot be created. All abstract classes in this standard have a more specific subclass." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Class> .


        

Relation

URI: http://data.ashrae.org/standard223#Relation


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Relation> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Relation" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#RelationWithInverse> <http://data.ashrae.org/standard223#SymmetricRelation> ) ;
    rdfs:comment "A `Relation` associates the subject and the object in an RDF triple, the *predicate* portion of a *(subject, predicate, object)* triple." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept>,
        rdf:Property ;
    sh:property [ rdfs:comment "A `Relation` shall be associated with at least one label using the relation `rdfs:label`." ;
            sh:message "s223: A `Relation` shall be associated with at least one label using the relation `rdfs:label`." ;
            sh:minCount 1 ;
            sh:path rdfs:label ;
            sh:severity sh:Warning ] .


        

Relation with inverse

URI: http://data.ashrae.org/standard223#RelationWithInverse


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#RelationWithInverse> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Relation with inverse" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#inverseOf> ) ;
    rdfs:comment """An `RelationWithInverse` is modeling construct used to define symmetric behavior
for certain relations in the standard such as `connectedTo` and `connectedFrom`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Relation> ;
    sh:property [ rdfs:comment "An `RelationWithInverse` shall be associated with exactly one other `RelationWithInverse` using the relation `inverseOf`." ;
            sh:class <http://data.ashrae.org/standard223#RelationWithInverse> ;
            sh:maxCount 1 ;
            sh:message "s223: An `RelationWithInverse` shall be associated with exactly one other `RelationWithInverse` using the relation `inverseOf`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#inverseOf> ] .


        

inverse of

URI: http://data.ashrae.org/standard223#inverseOf


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#inverseOf> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "inverse of" ;
    rdfs:comment "A `Relation` that associates `Relation`s that are inverses of one another, such as `connectedTo` and `connectedFrom`." .


        

Symmetric relation

URI: http://data.ashrae.org/standard223#SymmetricRelation


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#SymmetricRelation> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Concept>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Symmetric relation" ;
    rdfs:comment """A modeling construct used to define symmetric behavior
for certain relations in the standard such as `cnx`, `connected`, and `pairedConnectionPoint`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Relation> .


        

has property

URI: http://data.ashrae.org/standard223#hasProperty


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasProperty> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has property" ;
    rdfs:comment "A `Relation` that associates a `Concept` with a `Property`." .


        

pub:equipment

URI: pub:equipment


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:equipment> ns1:subclauses ( <http://data.ashrae.org/standard223#Equipment> <pub:equipment-containment> <http://data.ashrae.org/standard223#contains> <http://data.ashrae.org/standard223#hasRole> <http://data.ashrae.org/standard223#hasPhysicalLocation> <http://data.ashrae.org/standard223#Sensor> <http://data.ashrae.org/standard223#Actuator> <http://data.ashrae.org/standard223#Controller> ) ;
    ns1:title "EQUIPMENT" ;
    rdfs:comment """
In common usage, terms like equipment and system have a variety of ambiguous and possibly conflicting interpretations. A semantic model is an attempt to eliminate such ambiguities and conflicts. `Equipment` and `System` have unique definitions and use cases in this ontology. Both concepts can be used to associate multiple pieces of `Equipment` with a higher-level concept. This association is accomplished using unique predicates. A new instance of `Equipment` can be associated with other `Equipment` using the relation `contains` (see {pub:equipment-containment}). Note that `Equipment` is `Connectable` (see {pub:connectedness}) and the relation `contains` implies physical containment. Alternatively, a `System` can be associated with one or more instances of `Equipment`, `System` or `Junction` using the relation `hasMember` (see {pub:system}). Note that `System` is not `Connectable` (see {pub:connectedness}), the relation `hasMember` does not imply physical containment.The decision of whether to model a higher-level concept as an Equipment or a System is a modeler’s choice.
""" .


        

Equipment

URI: http://data.ashrae.org/standard223#Equipment


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Equipment> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Equipment" ;
    rdfs:comment """`Equipment` is the modeling construct used to represent a thing designed to accomplish a specific task, or a complex thing
that contains component pieces of `Equipment` that are connected to each other and work together to accomplish a task. `Equipment` can have
`Connection`s and `ConnectionPoint`s through which one or more kinds of medium (see {s223:Substance-Medium}) might flow. Examples of `Equipment` defined in this ontology include `Pump`, `Fan`, `AirHeatExchanger`, `Luminaire`, and `Sensor`. `Equipment` can be connected to other `Connectable`s such as other `Equipment` or `DomainSpace`s.

The graphical depiction of Equipment used in this document is a round-cornered rectangle as shown in Figure 5-1.

![Graphical Depiction of Equipment.](figures/Figure_5-1_Graphical_Depiciton_of_Equipment.svg)""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connectable> ;
    sh:property [ rdfs:comment "If the relation `hasPhysicalLocation` is present, it shall associate the `Equipment` with a `PhysicalSpace`." ;
            sh:class <http://data.ashrae.org/standard223#PhysicalSpace> ;
            sh:message "s223: If the relation `hasPhysicalLocation` is present, it shall associate the `Equipment` with a `PhysicalSpace`." ;
            sh:path <http://data.ashrae.org/standard223#hasPhysicalLocation> ],
        [ rdfs:comment "Disallow contained equipment from having external incoming connections." ;
            sh:path <http://data.ashrae.org/standard223#connectedFrom> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Disallow contained equipment from having external incoming connections." ;
                    sh:message "s223: {$this} should not have a connection from external equipment {?otherDev} because {?container} contains {$this}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?container ?otherDev
WHERE {
$this s223:connectedFrom ?otherDev .
$this ^s223:contains ?container .
?container a/rdfs:subClassOf* s223:Equipment .
FILTER NOT EXISTS {?container s223:contains ?otherDev .}
}
""" ] ],
        [ rdfs:comment "Disallow contained equipment from having external outgoing connections." ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Disallow contained equipment from having external outgoing connections." ;
                    sh:message "s223: {$this} should not have a connection to external equipment {?otherDev} because {?container} contains {$this}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?container ?otherDev
WHERE {
$this s223:connectedTo ?otherDev .
$this ^s223:contains ?container .
?container a/rdfs:subClassOf* s223:Equipment .
FILTER NOT EXISTS {?container s223:contains ?otherDev .}
}
""" ] ],
        [ rdfs:comment "Warning about a subClass of `Equipment` of type A containing something that is in the same subClass branch." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:severity sh:Warning ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Warning about a subClass of `Equipment` of type A containing something that is in the same subClass branch." ;
                    sh:message "s223: {$this}, of type {?type1}, contains {?subEquip} of type {?type2}, that could result in double-counting items in the class hierarchy of {?type1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?subEquip ?type1 ?type2
WHERE {
  FILTER NOT EXISTS {$this a s223:Equipment} .
$this s223:contains+ ?subEquip .
  FILTER NOT EXISTS {?subEquip a s223:Equipment} .
$this a ?type1 .
?subEquip a ?type2 .
{
?type2 rdfs:subClassOf* ?type1 .
}
UNION
{
?type1 rdfs:subClassOf* ?type2 .
}
}
""" ] ],
        [ rdfs:comment "If the relation `hasRole` is present, it shall associate the `Equipment` with a `EnumerationKind-Role`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
            sh:message "s223: If the relation `hasRole` is present, it shall associate the `Equipment` with a `EnumerationKind-Role`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ],
        [ rdfs:comment """If the relation `actuatedByProperty` is present, it shall associate the `Equipment` with a `ActuatableProperty`.
Note that any `Equipment` may use this relation, not just `Actuator`.""" ;
            sh:class <http://data.ashrae.org/standard223#ActuatableProperty> ;
            sh:message "s223: If the relation `actuatedByProperty` is present, it shall associate the `Equipment` with a `ActuatableProperty`. Note that any `Equipment` may use this relation, not just `Actuator`." ;
            sh:path <http://data.ashrae.org/standard223#actuatedByProperty> ],
        [ a sh:PropertyShape ;
            rdfs:comment "If the relation `contains` is present, it shall associate the `Equipment` with either `Equipment` or `Junction`." ;
            sh:message "s223: If the relation `contains` is present, it shall associate the `Equipment` with either `Equipment` or `Junction`." ;
            sh:name "device contains shape" ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223#Equipment> ] [ sh:class <http://data.ashrae.org/standard223#Junction> ] ) ;
            sh:path <http://data.ashrae.org/standard223#contains> ],
        [ rdfs:comment "If the relation `executes` is present, it shall associate the `Equipment` with a `Function`." ;
            sh:class <http://data.ashrae.org/standard223#Function> ;
            sh:message "s223: If the relation `executes` is present, it shall associate the `Equipment` with a `Function`." ;
            sh:path <http://data.ashrae.org/standard223#executes> ] .


        

pub:equipment-containment

URI: pub:equipment-containment


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:equipment-containment> ns1:title "Equipment Containment" ;
    rdfs:comment """
A piece of equipment can only contain other pieces of equipment. For example, a fan
can be contained by an air handling unit. The relation `contains` is used to describe
a piece of equipment containing another piece of equipment (see {s223:contains}). The
relationship `mapsTo` relates a `ConnectionPoint` of a contained `Equipment` to the
`ConnectionPoint` of a containing `Equipment` (see {s223:mapsTo}). For example, the
air inlet to a heating coil contained in a fan coil unit may map to the air inlet
of the fan coil unit. Any air connection to the fan coil unit inlet is supplying
air to the inlet of the heating coil as well.

Multiple pieces of equipment contained by the same piece of equipment may connect
to each other, however, they may not connect to equipment that are not also contained.
To indicate how a contained piece of equipment connects to an external piece of
equipment, the relationship `mapsTo` is used. `mapsTo` will relate the connection
point of a contained equipment to the connection point of the containing equipment,
then the connection point of the containing equipment may connect to the external
equipment.

It may be desirable for a piece of containing equipment to have a `Property` that
has a value representing something that is associated with a contained piece of
equipment. For example, consider a fan coil unit that contains a fan and a coil.
The fan may have a `Property` that represents the speed of the fan. To make this fan
speed visible as a `Property` of the fan coil unit, a fan speed `Property` would be
added to the fan coil unit and its value would be an internal reference
(see {s223:hasInternalReference}) to the speed `Property` of the contained motor.
""" .


        

contains

URI: http://data.ashrae.org/standard223#contains


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#contains> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "contains" ;
    rdfs:comment "A `Relation` that associates a piece of `Equipment` with its component pieces of `Equipment`, or a `PhysicalSpace` (see {s223:PhysicalSpace}) with its component `PhysicalSpace`s." .


        

has role

URI: http://data.ashrae.org/standard223#hasRole


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasRole> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has role" ;
    rdfs:comment "A `Relation` that associates a role with of a piece of `Equipment`, a `Connection`, `ConnectionPoint`, or `System` within a building (e.g., a heating coil might be associated with `Role-Heating`). Possible values are defined in `EnumerationKind-Role` (see {s223:EnumerationKind-Role})." .


        

has physical location

URI: http://data.ashrae.org/standard223#hasPhysicalLocation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasPhysicalLocation> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has physical location" ;
    rdfs:comment "A `Relation` that associates a piece of `Equipment` with its physical location (i.e., in a `PhysicalSpace`). The physical location of a piece of `Equipment` is not necessarily the same as the location affected by the operation of the `Equipment`. For example, an air handler may physically be located on the roof, but its effect is to provide conditioned air to a `Zone` or `DomainSpace` within the building. By following the path of connections, it can be determined what other equipment or spaces are possibly impacted by the `Equipment`." .


        

Sensor

URI: http://data.ashrae.org/standard223#Sensor


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Sensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Sensor" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#ConcentrationSensor> <http://data.ashrae.org/standard223#ElectricCurrentSensor> <http://data.ashrae.org/standard223#FlowSensor> <http://data.ashrae.org/standard223#HumiditySensor> <http://data.ashrae.org/standard223#LightSensor> <http://data.ashrae.org/standard223#OccupancySensor> <http://data.ashrae.org/standard223#ParticulateSensor> <http://data.ashrae.org/standard223#PressureSensor> <http://data.ashrae.org/standard223#TemperatureSensor> <http://data.ashrae.org/standard223#VoltageSensor> <http://data.ashrae.org/standard223#hasMeasurementResolution> <http://data.ashrae.org/standard223#observes> <http://data.ashrae.org/standard223#hasObservationLocation> <http://data.ashrae.org/standard223#hasReferenceLocation> ) ;
    rdfs:comment """
A `Sensor` `observes` an `ObservableProperty` (see {s223:ObservableProperty})
which may be quantifiable (see {s223:QuantifiableObservableProperty}), such as a
temperature, flow, or concentration, or enumerable (see {s223:EnumeratedObservableProperty}),
such as an occupancy state.

If a `Sensor` observes a `QuantifiableObservableProperty` relative to an assumed
or common reference point, it can be modeled with only an observation location.
For example:

```turtle
@prefix : <http://example.com/> .

:example1 a s223:TemperatureSensor ;
    s223:hasObservationLocation :location1 ;
    qudt:hasQuantityKind quantitykind:Temperature .
```

If a `Sensor` observes a `QuantifiableObservableProperty` relative to a unique
or specified reference point, it can be modeled with an observation location and
a reference location, and indicating the difference between two values by setting `qudt:isDeltaQuantity` to `true`. For example:

```turtle
@prefix : <http://example.com/> .

:example2 a s223:TemperatureSensor ;
    s223:hasObservationLocation :location1 ;
    s223:hasReferenceLocation :location2 ;
    qudt:hasQuantityKind quantitykind:Temperature ;
    qudt:isDeltaQuantity true .
```
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly one location using the relation `hasObservationLocation`." ;
            sh:maxCount 1 ;
            sh:message "s223: A `Sensor` shall be associated with exactly one location using the relation `hasObservationLocation`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasObservationLocation> ],
        [ rdfs:comment "If the relation `hasMeasurementResolution` is present it shall associate a `Sensor` with a `QuantifiableProperty`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:message "s223: If the relation `hasMeasurementResolution` is present it shall associate a `Sensor` with a `QuantifiableProperty`." ;
            sh:path <http://data.ashrae.org/standard223#hasMeasurementResolution> ],
        [ rdfs:comment "If a `Sensor` measures a differential property, it shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
            sh:maxCount 1 ;
            sh:message "s223: If a `Sensor` measures a differential property, it shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
            sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> ],
        [ rdfs:comment "If the observed `Property` has `qudt:isDeltaQuantity` true, the `Sensor` shall have a `hasReferenceLocation` relation." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If the observed `Property` has `qudt:isDeltaQuantity` true, the `Sensor` shall have a `hasReferenceLocation` relation." ;
                    sh:message "s223: `Sensor` {$this} has `Property` {?x} with `qudt:isDeltaQuantity` true, but the `Sensor` lacks a reference location." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
          SELECT $this ?x
          WHERE {
$this s223:observes/qudt:isDeltaQuantity true .
$this s223:observes ?x .
?x a/rdfs:subClassOf* s223:QuantifiableProperty .
FILTER NOT EXISTS {$this s223:hasReferenceLocation ?y}
}
""" ] ],
        [ rdfs:comment "A `Sensor` shall be associated with exactly one `ObservableProperty` using the relation `observes`." ;
            sh:class <http://data.ashrae.org/standard223#ObservableProperty> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Sensor` shall be associated with exactly one `ObservableProperty` using the relation `observes`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#observes> ],
        [ rdfs:comment "If the `hasReferenceLocation` relation exists, the observed `Property` shall have `qudt:isDeltaQuantity` true." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If the `hasReferenceLocation` relation exists, the observed `Property` shall have `qudt:isDeltaQuantity` true." ;
                    sh:message "s223: `Sensor` {$this} has a reference location, but its `Property` lacks `qudt:isDeltaQuantity` true." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
          SELECT $this
          WHERE {
$this s223:hasReferenceLocation ?y .
$this s223:observes ?x .
?x a/rdfs:subClassOf* s223:QuantifiableProperty .
FILTER NOT EXISTS {$this s223:observes/qudt:isDeltaQuantity true}
}
""" ] ] .


        

Concentration sensor

URI: http://data.ashrae.org/standard223#ConcentrationSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ConcentrationSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Concentration sensor" ;
    rdfs:comment """A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a concentration of a miscible constituent in a medium,
in contrast to a `ParticulateSensor` that `observes` a `QuantifiableObservableProperty` that represents an amount of a particulate in a medium
(see {s223:ParticulateSensor}). The 223 standard does not constrain the `Unit` or `QuantityKind` reported by a `ConcentrationSensor`, but possible
`QuantityKind`s include `Concentration` (moles per volume), `Density` (mass per volume), `MoleFraction`, and `VolumeFraction`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> .


        

Electric current sensor

URI: http://data.ashrae.org/standard223#ElectricCurrentSensor


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ElectricCurrentSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric current sensor" ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of electric current." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "An `ElectricCurrentSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `ElectricCurrent`." ;
            sh:message "s223: An `ElectricCurrentSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `ElectricCurrent`." ;
            sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
            sh:value <http://qudt.org/vocab/quantitykind/ElectricCurrent> ] .


        

Flow sensor

URI: http://data.ashrae.org/standard223#FlowSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#FlowSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Flow sensor" ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of flow of fluid, typically with a `QuantityKind` of `VolumeFlowRate`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> .


        

Humidity sensor

URI: http://data.ashrae.org/standard223#HumiditySensor


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#HumiditySensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Humidity sensor" ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of relative or absolute humidity." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "A `HumiditySensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of either `RelativeHumidity` or `AbsoluteHumidity`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
            sh:message "s223: A `HumiditySensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of either `RelativeHumidity` or `AbsoluteHumidity`." ;
            sh:node [ sh:property [ sh:or ( [ sh:hasValue <http://qudt.org/vocab/quantitykind/RelativeHumidity> ] [ sh:hasValue <http://qudt.org/vocab/quantitykind/AbsoluteHumidity> ] ) ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ;
            sh:path <http://data.ashrae.org/standard223#observes> ] .


        

Light sensor

URI: http://data.ashrae.org/standard223#LightSensor


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#LightSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Light sensor" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#IlluminanceSensor> <http://data.ashrae.org/standard223#CorrelatedColorTemperatureSensor> <http://data.ashrae.org/standard223#DuvSensor> ) ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents an attribute of light, as specified by the `QuantityKind` of the `Property` being observed, as described below." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> .


        

Illuminance sensor

URI: http://data.ashrae.org/standard223#IlluminanceSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#IlluminanceSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Illuminance sensor" ;
    rdfs:comment """A `LightSensor` that `observes` a `QuantifiableObservableProperty` that represents an illuminance, defined as the areal density of the
luminous flux incident at a point on a surface.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#LightSensor> ;
    sh:property [ rdfs:comment "An `IlluminanceSensor` shall observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Illuminance`." ;
            sh:message "s223: An `IlluminanceSensor` shall observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Illuminance`." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Illuminance> ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

Correlated color temperature sensor

URI: http://data.ashrae.org/standard223#CorrelatedColorTemperatureSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CorrelatedColorTemperatureSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Correlated color temperature sensor" ;
    rdfs:comment """A `LightSensor` that `observes` a `QuantifiableObservableProperty` that represents a 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.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#LightSensor> ;
    sh:property [ rdfs:comment "A `CorrelatedColorTemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `CorrelatedColorTemperature`." ;
            sh:message "s223: A `CorrelatedColorTemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `CorrelatedColorTemperature`." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/CorrelatedColorTemperature> ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

Duv sensor

URI: http://data.ashrae.org/standard223#DuvSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#DuvSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Duv sensor" ;
    rdfs:comment """A `LightSensor` that `observes` a `QuantifiableObservableProperty` that represents a 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).""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#LightSensor> ;
    sh:property [ rdfs:comment "A `DuvSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Duv`." ;
            sh:message "s223: A `DuvSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Duv`." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Duv> ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

Occupancy sensor

URI: http://data.ashrae.org/standard223#OccupancySensor


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#OccupancySensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Occupancy sensor" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#OccupantMotionSensor> <http://data.ashrae.org/standard223#OccupantPresenceSensor> <http://data.ashrae.org/standard223#OccupantCountSensor> ) ;
    rdfs:comment "A `Sensor` that `observes` an `ObservableProperty` that represents an attribute of occupancy in a space." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> .


        

Occupant motion sensor

URI: http://data.ashrae.org/standard223#OccupantMotionSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#OccupantMotionSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Occupant motion sensor" ;
    rdfs:comment "An `OccupancySensor` that `observes` a `ObservableProperty` that represents motion within a sensing region." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#OccupancySensor> ;
    sh:property [ rdfs:comment "An `OccupantMotionSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Motion`." ;
            sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
            sh:message "s223: An `OccupantMotionSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Motion`." ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Occupancy-Motion> ;
                            sh:maxCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ;
            sh:path <http://data.ashrae.org/standard223#observes> ] .


        

Occupant presence sensor

URI: http://data.ashrae.org/standard223#OccupantPresenceSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#OccupantPresenceSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Occupant presence sensor" ;
    rdfs:comment "An `OccupancySensor` that `observes` a `ObservableProperty` that represents presence within a sensing region." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#OccupancySensor> ;
    sh:property [ rdfs:comment "An `OccupantPresenceSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Presence`." ;
            sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
            sh:message "s223: An `OccupantPresenceSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Presence`." ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Occupancy-Presence> ;
                            sh:maxCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ;
            sh:path <http://data.ashrae.org/standard223#observes> ] .


        

Occupant count sensor

URI: http://data.ashrae.org/standard223#OccupantCountSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#OccupantCountSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Occupant count sensor" ;
    rdfs:comment """An `OccupancySensor` that `observes` a `QuantifiableObservableProperty` that represents a population, usually of humans, within
  a sensing region.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#OccupancySensor> ;
    sh:property [ rdfs:comment """An `OccupantCountSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Population` and
a `Unit` of `NUM`.""" ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
            sh:message """s223: An `OccupantCountSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Population` and
a `Unit` of `NUM`.""" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/unit/NUM> ;
                            sh:maxCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasUnit> ],
                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Population> ;
                            sh:maxCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ;
            sh:path <http://data.ashrae.org/standard223#observes> ] .


        

Particulate sensor

URI: http://data.ashrae.org/standard223#ParticulateSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ParticulateSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Particulate sensor" ;
    rdfs:comment """A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents an amount of a particulate in a medium, in contrast
to a `ConcentrationSensor` that `observes` a `QuantifiableObservableProperty` that represents a concentration of a miscible constituent in a medium
(see {s223:ConcentrationSensor}).

The 223 standard does not constrain the `Unit` or `QuantityKind` reported by a `ParticulateSensor`, but possible
`QuantityKind`s include `Density` (mass per volume), `ParticleNumberDensity` (count per volume), and `DimensionlessRatio` (with units such as `PPM` or
`PPB`). Some particulate sensors may claim to report a raw count of particles, for which a `QuantityKind` of `Count` could be used, but the required
context for such a measurement should be provided in the sensor's documentation to specify if it in fact measures a count per volume (e.g., `ParticleNumberDensity`),
time (e.g., `CountRate` or `ParticleCurrent`), or some
other combination. Explicitly declaring the `QuantityKind` of a sensor's output is preferable to relying on implicit assumptions.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "If the relation `ofSubstance` is present, it shall associate the `ParticulateSensor` with a `Substance-Particulate`." ;
            sh:class <http://data.ashrae.org/standard223#Substance-Particulate> ;
            sh:message "s223: If the relation `ofSubstance` is present, it shall associate the `ParticulateSensor` with a `Substance-Particulate`." ;
            sh:path <http://data.ashrae.org/standard223#ofSubstance> ] .


        

Pressure sensor

URI: http://data.ashrae.org/standard223#PressureSensor


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#PressureSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Pressure sensor" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#GaugePressureSensor> ) ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of pressure." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "A `PressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Pressure." ;
            sh:message "s223: A `PressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Pressure." ;
            sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
            sh:value <http://qudt.org/vocab/quantitykind/Pressure> ] .


        

Gauge pressure sensor

URI: http://data.ashrae.org/standard223#GaugePressureSensor


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#GaugePressureSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Gauge pressure sensor" ;
    rdfs:comment """A `PressureSensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of pressure relative to atmospheric pressure.
Such sensors are commonly used to monitor compressed gas cylinders, for example, where a gauge reading of zero signifies that the measured pressure
is equal to the atmospheric pressure, not a vacuum.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#PressureSensor> ;
    sh:property [ rdfs:comment "A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of GaugePressure." ;
            sh:message "s223: A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of GaugePressure." ;
            sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
            sh:value <http://qudt.org/vocab/quantitykind/GaugePressure> ],
        [ rdfs:comment "A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a value of true for `qudt:isDeltaQuantity`." ;
            sh:maxCount 1 ;
            sh:message "s223: A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a value of true for `qudt:isDeltaQuantity`." ;
            sh:minCount 1 ;
            sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/isDeltaQuantity> ) ;
            sh:value true ] .


        

Temperature sensor

URI: http://data.ashrae.org/standard223#TemperatureSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#TemperatureSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Temperature sensor" ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of temperature." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "A `TemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Temperature`." ;
            sh:message "s223: A `TemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Temperature`." ;
            sh:path <http://data.ashrae.org/standard223#observes> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

Voltage sensor

URI: http://data.ashrae.org/standard223#VoltageSensor


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#VoltageSensor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Voltage sensor" ;
    rdfs:comment "A `Sensor` that `observes` a `QuantifiableObservableProperty` that represents a measure of voltage." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Sensor> ;
    sh:property [ rdfs:comment "A `VoltageSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Voltage." ;
            sh:message "s223: A `VoltageSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Voltage." ;
            sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
            sh:value <http://qudt.org/vocab/quantitykind/Voltage> ] .


        

has measurement resolution

URI: http://data.ashrae.org/standard223#hasMeasurementResolution


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasMeasurementResolution> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has measurement resolution" ;
    rdfs:comment "A `Relation` that associates a `Sensor` with the `QuantifiableProperty` whose value indicates the smallest recognizable change in engineering units that the `Sensor` is able to measure." .


        

observes

URI: http://data.ashrae.org/standard223#observes


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#observes> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "observes" ;
    rdfs:comment """A `Relation` that associates a `Sensor` with one `ObservableProperty` (see {s223:ObservableProperty})
which is used by the sensor to generate a measurement value (e.g., a temperature) or a simple observation of a stimulus
causing a reaction (e.g., a current binary switch that closes a dry contact when a fan is powered on).""" .


        

has observation location

URI: http://data.ashrae.org/standard223#hasObservationLocation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasObservationLocation> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has observation location" ;
    rdfs:comment "A `Relation` that associates a `Sensor` with the topological location where it is observing a `Property` (see {s223:observes}). The observation location shall be a `Connectable` (see {s223:Connectable}), `Connection` (see {s223:Connection}), or `ConnectionPoint` (see {s223:ConnectionPoint})." .


        

has reference location

URI: http://data.ashrae.org/standard223#hasReferenceLocation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasReferenceLocation> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has reference location" ;
    rdfs:comment "A `Relation` that associates  a differential sensor with the topological location of the baseline (reference) `Property` (see {s223:observes})." .


        

Actuator

URI: http://data.ashrae.org/standard223#Actuator


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Actuator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Actuator" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#actuates> <http://data.ashrae.org/standard223#actuatedByProperty> ) ;
    rdfs:comment """A piece of `Equipment` that receives control signals and electrically, pneumatically, or hydraulically makes changes in the
physical world, such as the position of a valve or damper.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "If the relation `actuates` is present, it shall associate the `Actuator` with a piece of `Equipment`." ;
            sh:class <http://data.ashrae.org/standard223#Equipment> ;
            sh:message "s223: If the relation `actuates` is present, it shall associate the `Actuator` with a piece of `Equipment`." ;
            sh:path <http://data.ashrae.org/standard223#actuates> ],
        [ rdfs:comment "An `Actuator` shall be associated with at least one `ActuatableProperty` using the relation `actuatedByProperty`." ;
            sh:class <http://data.ashrae.org/standard223#ActuatableProperty> ;
            sh:message "s223: An `Actuator` shall be associated with at least one `ActuatableProperty` using the relation `actuatedByProperty`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#actuatedByProperty> ] .


        

actuates

URI: http://data.ashrae.org/standard223#actuates


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#actuates> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "actuates" ;
    rdfs:comment "A `Relation` that associates an `Actuator` with the `Equipment` that it actuates." .


        

actuated by property

URI: http://data.ashrae.org/standard223#actuatedByProperty


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#actuatedByProperty> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "actuated by property" ;
    rdfs:comment """A `Relation` that associates a piece of `Equipment` with the `ActuatableProperty` that it responds to. If the `Equipment`
is an `Actuator` (a subclass of `Equipment`), `actuatedByProperty` is a required relation. An `Actuator` may also identify another piece of
`Equipment` being actuated. (see {s223:actuates}).""" .


        

Controller

URI: http://data.ashrae.org/standard223#Controller


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Controller> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Controller" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Function> <http://data.ashrae.org/standard223#executes> ) ;
    rdfs:comment "A piece of equipment for regulation of a system or component in normal operation, which executes one or more `Function`s." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "If the relation `executes` is present, it shall associate the `Controller` with a `Function`." ;
            sh:class <http://data.ashrae.org/standard223#Function> ;
            sh:message "s223: If the relation `executes` is present, it shall associate the `Controller` with a `Function`." ;
            sh:path <http://data.ashrae.org/standard223#executes> ] .


        

Function

URI: http://data.ashrae.org/standard223#Function


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Function> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Function" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#hasInput> <http://data.ashrae.org/standard223#hasOutput> ) ;
    rdfs:comment "A `Function` is used to model transfer and/or transformation of information (i.e., `Property`). It has relations to input Properties and output Properties. The actual algorithms that perform the transformations are described in CDL and are out of scope of the 223 standard." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "If the relation `hasInput` is present it shall associate a `Function` with a `Property`." ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:message "s223: If the relation `hasInput` is present it shall associate a `Function` with a `Property`." ;
            sh:path <http://data.ashrae.org/standard223#hasInput> ],
        [ rdfs:comment "If the relation `hasOutput` is present it shall associate a `Function` with a `Property`." ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:message "s223: If the relation `hasOutput` is present it shall associate a `Function` with a `Property`." ;
            sh:path <http://data.ashrae.org/standard223#hasOutput> ] .


        

has input

URI: http://data.ashrae.org/standard223#hasInput


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasInput> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has input" ;
    rdfs:comment "A `Relation` that associates a `Function` (see {s223:Function}) with a `Property` (see {s223:Property}) that is used as input to the `Function`." .


        

has output

URI: http://data.ashrae.org/standard223#hasOutput


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasOutput> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has output" ;
    rdfs:comment "A `Relation` that associates a `Function` (see {s223:Function}) with a `Property` (see {s223:Property}) that is calculated by the `Function`." .


        

executes

URI: http://data.ashrae.org/standard223#executes


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#executes> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "executes" ;
    rdfs:comment "A `Relation` that associates a `Controller` (see {s223:Controller}) with the `Function`s (see {s223:Function}) that it executes." .


        

pub:connection

URI: pub:connection


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:connection> ns1:subclauses ( <http://data.ashrae.org/standard223#Connectable> <http://data.ashrae.org/standard223#ConnectionPoint> <http://data.ashrae.org/standard223#Connection> <http://data.ashrae.org/standard223#Junction> <pub:connectedness> <http://data.ashrae.org/standard223#hasMedium> ) ;
    ns1:title "CONNECTION" ;
    rdfs:comment """
This clause is the top level of the hierarchical structure of the portion of the
model that represents the characteristics and features of connections that provide
a means for a medium such as air, water, or electricity, to flow from one `ConnectionPoint`
to another. Examples of connections are ducts, pipes, and conductors.
""" .


        

Connectable

URI: http://data.ashrae.org/standard223#Connectable


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Connectable> a <http://data.ashrae.org/standard223#AbstractClass>,
        sh:NodeShape ;
    rdfs:label "Connectable" ;
    rdfs:comment "`Connectable` is an abstract class representing a thing such as `Equipment` (see {s223:Equipment}), `DomainSpace` (see {s223:DomainSpace}), or `Junction` (see {s223:Junction}) that can be `connected` to other `Connectable`s via `ConnectionPoint`s and `Connection`s." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "If the relation `cnx` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: If the relation `cnx` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
            sh:path <http://data.ashrae.org/standard223#cnx> ],
        [ rdfs:comment "If the relation `hasOptionalConnectionPoint` relation is present, it shall associate the `Connectable` with a `ConnectionPoint` that may not be connected. The \"dangling connection point\" should not generate a validation error." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: If the relation `hasOptionalConnectionPoint` relation is present, it shall associate the `Connectable` with a `ConnectionPoint` that may not be connected. The \"dangling connection point\" should not generate a validation error." ;
            sh:path <http://data.ashrae.org/standard223#hasOptionalConnectionPoint> ],
        [ rdfs:comment "If a `Connectable` has `connected` or `connectedTo` (i.e. high-level connection specification), it must also have the supporting `cnx` relations (low-level connection specification)." ;
            sh:path <http://data.ashrae.org/standard223#cnx> ;
            sh:severity sh:Warning ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a `Connectable` has the relation`connected` or `connectedTo` (i.e. high-level connection specification), it must also have the supporting `cnx` relations (low-level connection specification)." ;
                    sh:message "s223: {$this} is s223:connected (high-level) to {?otherC} but not connected at the cnx-level." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?otherC
WHERE {
$this s223:connected ?otherC .
FILTER NOT EXISTS {$this s223:cnx+ ?otherC}
}
""" ] ],
        [ rdfs:comment "If the relation `connectedFrom` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:message "s223: If the relation `connectedFrom` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:path <http://data.ashrae.org/standard223#connectedFrom> ],
        [ rdfs:comment "If the relation `hasConnectionPoint` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: If the relation `hasConnectionPoint` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
            sh:name "EquipmentToConnectionPointShape" ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ],
        [ rdfs:comment "If the relation `connected` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:message "s223: If the relation `connected` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:name "SymmetricConnectableToConnectableShape" ;
            sh:path <http://data.ashrae.org/standard223#connected> ],
        [ rdfs:comment "If the relation `connectedTo` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:message "s223: If the relation `connectedTo` is present, it shall associate the `Connectable` with a `Connectable`." ;
            sh:name "ConnectableToConnectableShape" ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "If the relation `connectedThrough` is present, it shall associate the `Connectable` with a `Connection`." ;
            sh:class <http://data.ashrae.org/standard223#Connection> ;
            sh:message "s223: If the relation `connectedThrough` is present, it shall associate the `Connectable` with a `Connection`." ;
            sh:name "EquipmentToConnectionShape" ;
            sh:path <http://data.ashrae.org/standard223#connectedThrough> ] .


        

Connection point

URI: http://data.ashrae.org/standard223#ConnectionPoint


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ConnectionPoint> a <http://data.ashrae.org/standard223#AbstractClass>,
        sh:NodeShape ;
    rdfs:label "Connection point" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> <http://data.ashrae.org/standard223#InletConnectionPoint> <http://data.ashrae.org/standard223#OutletConnectionPoint> <http://data.ashrae.org/standard223#pairedConnectionPoint> <http://data.ashrae.org/standard223#mapsTo> <http://data.ashrae.org/standard223#hasMedium> ) ;
    rdfs:comment """A `ConnectionPoint` is an abstract modeling construct used to represent the fact that one connectable thing can be connected to another connectable thing using a `Connection`. It is the abstract representation of the flange, wire terminal, or other physical feature where a connection is made. `Equipment`, `DomainSpace`s and `Junction`s can have one or more `ConnectionPoint`s (see {s223:Connectable}).

A `ConnectionPoint` is constrained to relate to a specific medium such as air, water, or electricity which determines what other things can be connected to it. For example, constraining a `ConnectionPoint` to be for air means it cannot be used for an electrical connection.

A `ConnectionPoint` belongs to exactly one connectable thing (see {s223:Connectable}).

`ConnectionPoint`s are represented graphically in this standard by a triangle with the point indicating a direction of flow, or a diamond in the case of a bidirectional flow as shown in Figure 6-1.

![Graphical Representation of a ConnectionPoint](figures/Figure_5-2_Graphical_Depiciton_of_Connection_Points.svg)""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "If a `ConnectionPoint` `mapsTo` another `ConnectionPoint`, the respective `Equipment` should have a `contains` relation." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a `ConnectionPoint` `mapsTo` another `ConnectionPoint`, the respective `Equipment` should have a `contains` relation." ;
                    sh:message "s223: {?otherEquipment} should contain {?equipment} because `ConnectionPoint` {$this} has a `mapsTo` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?equipment ?otherEquipment
WHERE {
$this s223:mapsTo ?otherCP .
?equipment s223:hasConnectionPoint $this .
?otherEquipment s223:hasConnectionPoint ?otherCP .
FILTER NOT EXISTS {?otherEquipment s223:contains ?equipment}
}
""" ] ],
        [ rdfs:comment "Ensure that the Medium identified by a `ConnectionPoint` via the `hasMedium` relation is compatible with the Medium identified by the entity identified by the `mapsTo` relation." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Ensure that the Medium identified by a `ConnectionPoint` via the `hasMedium` relation is compatible with the Medium identified by the entity identified by the `mapsTo` relation." ;
                    sh:message "s223: {$this} declares a medium of {?a}, but the medium of {?b} is declared by {?target} pointed to by the `mapsTo` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT DISTINCT $this ?a ?b ?target
WHERE {
$this s223:hasMedium ?a .
$this s223:mapsTo+ ?target .
?target s223:hasMedium ?b .
?a a/rdfs:subClassOf* s223:Substance-Medium .
?b a/rdfs:subClassOf* s223:Substance-Medium .
FILTER (?a != ?b ) .
FILTER (NOT EXISTS {?b a/rdfs:subClassOf* ?a}) .
FILTER (NOT EXISTS {?a a/rdfs:subClassOf* ?b}) .
}
""" ] ],
        [ rdfs:comment "A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the relation `mapsTo`" ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:maxCount 1 ;
            sh:message "s223: A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the relation `mapsTo`" ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ],
        [ rdfs:comment "A `ConnectionPoint` must not have both a `mapsTo` and a `connectsThrough` relation." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `ConnectionPoint` must not have both a `mapsTo` and a `connectsThrough` relation." ;
                    sh:message "s223: {$this} cannot have both a `mapsTo` {?uppercp} and a `connectsThrough` {?connection}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?uppercp ?connection
WHERE {
$this s223:mapsTo ?uppercp .
$this s223:connectsThrough ?connection .
?connection a/rdfs:subClassOf* s223:Connection .
}
""" ] ],
        [ rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connection` using the `cnx` relation" ;
            sh:message "s223: A `ConnectionPoint` shall be associated with at most one `Connection` using the `cnx` relation" ;
            sh:path <http://data.ashrae.org/standard223#cnx> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Connection> ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connectable` using the `cnx` relation." ;
            sh:message "s223: A `ConnectionPoint` shall be associated with at most one `Connectable` using the `cnx` relation." ;
            sh:path <http://data.ashrae.org/standard223#cnx> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Connectable> ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment "A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the inverse of relation `mapsTo`" ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:maxCount 1 ;
            sh:message "s223: A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the inverse of relation `mapsTo`" ;
            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#mapsTo> ] ],
        [ rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, but is associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` might need a `mapsTo` relation to a `ConnectionPoint` of the containing `Equipment`." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ;
            sh:severity sh:Info ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, but is associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` might need a `mapsTo` relation to a `ConnectionPoint` of the containing `Equipment`." ;
                    sh:message "s223: `ConnectionPoint` {$this} could be missing a `mapsTo` relation to a `ConnectionPoint` of {?containerEquipment} because it is associated with a `Junction` or `Equipment` that is contained by {?containerEquipment}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
    SELECT $this ?containerEquipment
    WHERE {
        FILTER NOT EXISTS {$this s223:connectsThrough ?anything1} .
        FILTER NOT EXISTS {$this s223:mapsTo ?anything2} .
        FILTER NOT EXISTS {?anything3 s223:hasBoundaryConnectionPoint $this} .
        $this s223:isConnectionPointOf ?equipment .
        ?containerEquipment s223:contains ?equipment .
        }
        """ ] ],
        [ rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, and is not associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` probably needs an association with a `Connection`." ;
            sh:path <http://data.ashrae.org/standard223#connectsThrough> ;
            sh:severity sh:Info ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, and is not associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` probably needs an association with a `Connection`." ;
                    sh:message "s223: `ConnectionPoint` {$this} probably needs an association with a `Connection`, or use of `hasOptionalConnectionPoint` or `hasBoundaryConnectionPoint` qualifiers." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
    SELECT $this
    WHERE {
        FILTER NOT EXISTS {?sys1 s223:hasBoundaryConnectionPoint $this} .
        FILTER NOT EXISTS {?sys2 s223:hasOptionalConnectionPoint $this} .
        FILTER NOT EXISTS {$this s223:connectsThrough ?anything1} .
        FILTER NOT EXISTS {$this s223:mapsTo ?anything2} .
        $this s223:isConnectionPointOf ?equipment .
        FILTER NOT EXISTS {?containerEquipment s223:contains ?equipment} .
        }
        """ ] ],
        [ rdfs:comment "If the relation `hasRole` is present, it shall associate the `ConnectionPoint` with an `EnumerationKind-Role`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
            sh:message "s223: If the relation `hasRole` is present, it shall associate the `ConnectionPoint` with an `EnumerationKind-Role`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ],
        [ rdfs:comment "A `ConnectionPoint` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
            sh:maxCount 1 ;
            sh:message "s223: A `ConnectionPoint` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:name "ConnectionPoint medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ],
        [ rdfs:comment "A `ConnectionPoint` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> ;
            sh:message "s223: A `ConnectionPoint` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
            sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> ],
        [ rdfs:comment "A `ConnectionPoint` shall be associated with exactly one `Connectable` using the relation `isConnectionPointOf`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:maxCount 1 ;
            sh:message "s223: A `ConnectionPoint` shall be associated with exactly one `Connectable` using the relation `isConnectionPointOf`." ;
            sh:minCount 1 ;
            sh:name "ConnectionPointToEquipmentShape" ;
            sh:path <http://data.ashrae.org/standard223#isConnectionPointOf> ],
        [ rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connection` using the relation `connectsThrough`." ;
            sh:class <http://data.ashrae.org/standard223#Connection> ;
            sh:maxCount 1 ;
            sh:message "s223: This `ConnectionPoint` shall be associated with at most one `Connection`." ;
            sh:name "ConnectionPointToConnectionShape" ;
            sh:path <http://data.ashrae.org/standard223#connectsThrough> ;
            sh:severity sh:Info ] ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Subclasses of ConnectionPoint are Disjoint. An instance of a subclass of ConnectionPoint cannot be an instance of multiple such subclasses." ;
            sh:message "s223: `ConnectionPoint` {$this} cannot be an instance of both {?subclass1} and {?subclass2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
        SELECT $this ?subclass1 ?subclass2 WHERE {
            $this a ?subclass1, ?subclass2 .
            ?subclass1 a s223:Class .
            ?subclass2 a s223:Class .
            ?subclass1 rdfs:subClassOf s223:ConnectionPoint .
            ?subclass2 rdfs:subClassOf s223:ConnectionPoint .
            FILTER(?subclass1 != ?subclass2)
        }
    """ ] .


        

Bidirectional connection point

URI: http://data.ashrae.org/standard223#BidirectionalConnectionPoint


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#BidirectionalConnectionPoint> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Bidirectional connection point" ;
    rdfs:comment "A `BidirectionalConnectionPoint` is a `ConnectionPoint` for which a `Substance-Medium` is expected to flow either into or out of the associated `Connectable`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:property [ rdfs:comment "If the relation `mapsTo` is present, it shall associate the `BidirectionalConnectionPoint` with a `BidirectionalConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:message "s223: If the relation `mapsTo` is present, it shall associate the `BidirectionalConnectionPoint` with a `BidirectionalConnectionPoint`." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ],
        [ rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `BidirectionalConnectionPoint` with a `ConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `BidirectionalConnectionPoint` with a `ConnectionPoint`." ;
            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ] .


        

Inlet connection point

URI: http://data.ashrae.org/standard223#InletConnectionPoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#InletConnectionPoint> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Inlet connection point" ;
    rdfs:comment "An `InletConnectionPoint` is a `ConnectionPoint` for which a `Substance-Medium` is expected to flow into the associated `Connectable`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:property [ rdfs:comment "If the relation `mapsTo` is present, it shall associate the `InletConnectionPoint` with an `InletConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:message "s223: If the relation `mapsTo` is present, it shall associate the `InletConnectionPoint` with an `InletConnectionPoint`." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ],
        [ rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `InletConnectionPoint` with an `OutletConnectionPoint` or `BidirectionalConnectionPoint`." ;
            sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `InletConnectionPoint` with an `OutletConnectionPoint` or `BidirectionalConnectionPoint`." ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ) ;
            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
        [ rdfs:comment "Ensure an `InletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Ensure an `InletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
                    sh:message "s223: {$this} must have a `mapsTo` an `InletConnectionPoint` of {?parentEquipment} and not an external `Connection` from {?sourceEquipment}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?parentEquipment ?sourceEquipment
WHERE {
?equipment s223:hasConnectionPoint $this .
?parentEquipment s223:contains ?equipment .
$this s223:connectsThrough/s223:connectsFrom ?sourceEquipment .
FILTER NOT EXISTS {?parentEquipment s223:contains ?sourceEquipment} .
FILTER NOT EXISTS {$this s223:mapsTo ?anything} .
}
""" ] ] .


        

Outlet connection point

URI: http://data.ashrae.org/standard223#OutletConnectionPoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#OutletConnectionPoint> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Outlet connection point" ;
    rdfs:comment "An `OutletConnectionPoint` is a `ConnectionPoint` for which a `Substance-Medium` is expected to flow out of the associated `Connectable`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:property [ rdfs:comment "Ensure an `OutletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Ensure an `OutletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
                    sh:message "s223: {$this} must have a `mapsTo` an `OutletConnectionPoint` of {?parentEquipment} and not an external `Connection` to {?destinationEquipment}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?parentEquipment ?destinationEquipment
WHERE {
?equipment s223:hasConnectionPoint $this .
?parentEquipment s223:contains ?equipment .
$this s223:connectsThrough/s223:connectsTo ?destinationEquipment .
FILTER NOT EXISTS {?parentEquipment s223:contains ?destinationEquipment} .
FILTER NOT EXISTS {$this s223:mapsTo ?anything} .
}
""" ] ],
        [ rdfs:comment "If the relation `mapsTo` is present, it shall associate the `OutletConnectionPoint` with an `OutletConnectionPoint`." ;
            sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:message "s223: If the relation `mapsTo` is present, it shall associate the `OutletConnectionPoint` with an `OutletConnectionPoint`." ;
            sh:path <http://data.ashrae.org/standard223#mapsTo> ],
        [ rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `OutletConnectionPoint` with an `InletConnectionPoint` or `BidirectionalConnectionPoint`." ;
            sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `OutletConnectionPoint` with an `InletConnectionPoint` or `BidirectionalConnectionPoint`." ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ) ;
            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ] .


        

paired connection point

URI: http://data.ashrae.org/standard223#pairedConnectionPoint


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#pairedConnectionPoint> a <http://data.ashrae.org/standard223#SymmetricRelation> ;
    rdfs:label "paired connection point" ;
    rdfs:comment "A `Relation` that associates two `ConnectionPoint`s where an `InletConnectionPoint` shares the same `Substance-Medium` with an `OutletConnectionPoint`." .


        

maps to

URI: http://data.ashrae.org/standard223#mapsTo


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#mapsTo> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "maps to" ;
    rdfs:comment "A `Relation` that associates a `ConnectionPoint` of a `Connectable` with a corresponding `ConnectionPoint` of the one containing it. The associated `ConnectionPoint`s shall have a compatible medium (see {s223:Substance-Medium})." .


        

has medium

URI: http://data.ashrae.org/standard223#hasMedium


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasMedium> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has medium" ;
    rdfs:comment "The relation `hasMedium` is used to indicate what medium is flowing through the connection (e.g., air, water, electricity). The possible values are defined in `Substance-Medium` (see {s223:Substance-Medium})." .


        

Connection

URI: http://data.ashrae.org/standard223#Connection


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Connection> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Connection" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#EM> <http://data.ashrae.org/standard223#Pipe> <http://data.ashrae.org/standard223#Duct> <http://data.ashrae.org/standard223#Conductor> <http://data.ashrae.org/standard223#Waveguide> ) ;
    rdfs:comment """A `Connection` is the modeling construct used to represent the thing (e.g., pipe, duct, conductor, or free space) that is used to convey
some Medium (e.g., water, air, electricity, light, Wi-Fi) between two connectable things. All connections have two or more connection points bound
to either `Equipment` (see {s223:Equipment}), `DomainSpace` (see {s223:DomainSpace}), or `Junction` (see {s223:Junction}). See Figure 6-2. If the direction
of flow is constrained, that constraint is indicated by using one or more `InletConnectionPoint`s (see {s223:InletConnectionPoint}) to represent the
inflow points and `OutletConnectionPoint`s (see {s223:OutletConnectionPoint}) to represent the outflow points.

A `Connection` may contain branches or intersections. These may be modeled using `Junction`s if it is necessary to identify a specific intersection.
(see {s223:Junction}).

The constraint to maintain compatible mediums among a `Connection` and all of its associated `ConnectionPoint`s gives rise to multiple
validation test cases, where the specified medium might be a pure medium, or a mixture with constituents. See {s223:Substance-Medium} for
more details.

![Graphical Depiction of Connection.](figures/Figure_5-3_Connection.svg)""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "Incompatible Medium. Case 2: A `Connection` with constituents and an associated `ConnectionPoint` with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 2: A `Connection` with constituents and an associated `ConnectionPoint` with a pure medium." ;
                    sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 3: `Connection` with a pure medium and an associated `ConnectionPoint` with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 3: `Connection` with a pure medium and an associated `ConnectionPoint` with constituents." ;
                    sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "A `Connection` shall have two or more `connectsAt` relations to `ConnectionPoint`s." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A `Connection` shall have two or more `connectsAt` relations to `ConnectionPoint`s." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#connectsAt> ;
            sh:severity sh:Warning ],
        [ rdfs:comment "A `Connection` must only have a `cnx` relation with a `ConnectionPoint`" ;
            sh:path <http://data.ashrae.org/standard223#cnx> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `Connection` must only have a `cnx` relation with a `ConnectionPoint`" ;
                    sh:message "s223: {$this} cannot have a s223:cnx relation to {?something}, because {?something} is not a `ConnectionPoint`." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """SELECT $this ?something
WHERE {
$this s223:cnx ?something .
FILTER NOT EXISTS {?something a/rdfs:subClassOf* s223:ConnectionPoint} .
}""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s, one with a medium with constituents and one with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 6: A medium with constituents and a pure medium." ;
                    sh:message "s223: {?cp1} with medium {?m1} is incompatible with {?cp2} with medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
                    sh:message "s223: {?cp1} with medium {?m2} is incompatible with {?cp2} with medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m2 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m1 .
    ?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} .
  }
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 1: A `Connection` with a pure medium and an associated `ConnectionPoint` with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
                    sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] ],
        [ rdfs:comment "A `Connection` shall have two or more `cnx` relations to `ConnectionPoint`s." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A `Connection` shall have two or more `cnx` relations to `ConnectionPoint`s." ;
            sh:path <http://data.ashrae.org/standard223#cnx> ],
        [ rdfs:comment "If the relation `hasThermodynamicPhase` is present, it shall associate the `Connection` with at most one `EnumerationKind-ThermodynamicPhase`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> ;
            sh:maxCount 1 ;
            sh:message "s223: If the relation `hasThermodynamicPhase` is present, it shall associate the `Connection` with at most one `EnumerationKind-ThermodynamicPhase`." ;
            sh:path <http://data.ashrae.org/standard223#hasThermodynamicPhase> ],
        [ rdfs:comment "If the relation `connectsTo` is present, it shall associate the `Connection` with a `Connectable`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:message "s223: If the relation `connectsTo` is present, it shall associate the `Connection` with a `Connectable`." ;
            sh:name "ConnectionToDownstreamConnectableShape" ;
            sh:path <http://data.ashrae.org/standard223#connectsTo> ],
        [ rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
                    sh:message "s223: {?cp1} with medium {?m1} is incompatible with {?cp2} with medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] ],
        [ rdfs:comment "If the relation `hasRole` is present, it shall associate the `Connection` with an `EnumerationKind-Role`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
            sh:message "s223: If the relation `hasRole` is present, it shall associate the `Connection` with an `EnumerationKind-Role`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ],
        [ rdfs:comment "Incompatible Medium. Case 4: A `Connection` with constituents and an associated `ConnectionPoint` with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 4: A `Connection` with constituents and an associated `ConnectionPoint` with constituents." ;
                    sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
    ?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} .
  }
}
""" ] ],
        [ rdfs:comment "A `Connection` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Connection` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:name "Connection medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ],
        [ rdfs:comment "If the relation `connectsFrom` is present, it shall associate the `Connection` with a `Connectable`." ;
            sh:class <http://data.ashrae.org/standard223#Connectable> ;
            sh:message "s223: If the relation `connectsFrom` is present, it shall associate the `Connection` with a `Connectable`." ;
            sh:name "ConnectionToUpstreamConnectableShape" ;
            sh:path <http://data.ashrae.org/standard223#connectsFrom> ] .


        

EM connection

URI: http://data.ashrae.org/standard223#EM


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EM> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "EM connection" ;
    rdfs:comment "A type of `Connection` that represents air, a vacuum, outer space, or a similar environment used to convey electromagnetic energy i.e., `Constituent-EM`, without the use of a solid materials such as fiber optic cables or other such `Waveguide`s." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connection> ;
    sh:property [ rdfs:comment "`EM` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Constituent-EM> ;
            sh:maxCount 1 ;
            sh:message "s223: `EM` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ] .


        

Pipe

URI: http://data.ashrae.org/standard223#Pipe


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Pipe> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Pipe" ;
    rdfs:comment "A `Connection` that is used primarily to transport liquids and gases such as water, sewage, natural gas, and compressed air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connection> .


        

Duct

URI: http://data.ashrae.org/standard223#Duct


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Duct> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Duct" ;
    rdfs:comment "A `Connection` that is used to transport air such as supply, return, and exhaust in HVAC (Heating, Ventilation, and Air Conditioning) systems." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connection> .


        

Conductor

URI: http://data.ashrae.org/standard223#Conductor


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Conductor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Conductor" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#EthernetCable> <http://data.ashrae.org/standard223#USBCable> ) ;
    rdfs:comment "A `Connection` that represents one or more wires used to convey `Constituent-Electricity`. Each instance of `Conductor` applies to no more than one electrical circuit." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connection> ;
    sh:property [ rdfs:comment "Ensure the electrical phase is the same as all connected `ConnectionPoint`s" ;
            sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Ensure the electrical phase is the same as all connected `ConnectionPoint`s" ;
                    sh:message "s223: {$this} has an electrical phase of {?myphase} which is different from {?cpPhase} for `ConnectionPoint` {?cp}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
    SELECT $this ?myphase ?cp ?cpPhase
    WHERE {
        $this s223:hasElectricalPhase ?myphase .
        $this s223:connectsAt ?cp .
        ?cp s223:hasElectricalPhase ?cpPhase .
        FILTER (?myphase != ?cpPhase) .
        }
        """ ] ],
        [ rdfs:comment "A `Conductor` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Conductor` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
            sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> ],
        [ rdfs:comment "A `Conductor` shall be associated with exactly one `Constituent-Electricity` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Conductor` shall be associated with exactly one `Constituent-Electricity` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ] .


        

Ethernet cable

URI: http://data.ashrae.org/standard223#EthernetCable


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EthernetCable> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Ethernet cable" ;
    rdfs:comment """A type of `Conductor` that consists of 1, 2 or 4 pairs of twisted wire and is used for `Signal-WiredEthernet` communication. Subclasses of `EthernetCable` represent common types used in buildings.

: EthernetCable Subclasses

| Subclass |
|:-----------|
| `EthernetCable-Cat1` |
| `EthernetCable-Cat2` |
| `EthernetCable-Cat3` |
| `EthernetCable-Cat4` |
| `EthernetCable-Cat5` |
| `EthernetCable-Cat5e` |
| `EthernetCable-Cat6` |
| `EthernetCable-Cat6a` |
| `EthernetCable-Cat7` |
| `EthernetCable-Cat7a` |
| `EthernetCable-Cat8` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Conductor> ;
    sh:property [ rdfs:comment "A `EthernetCable` shall be associated with exactly one `Signal-WiredEthernet` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
            sh:maxCount 1 ;
            sh:message "s223: A `EthernetCable` shall be associated with exactly one `Signal-WiredEthernet` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ] .


        

USB cable

URI: http://data.ashrae.org/standard223#USBCable


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#USBCable> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "USB cable" ;
    rdfs:comment "A type of `Conductor` that consists of 1 to 5 pairs of twisted wire and is used for `Signal-USB` communication." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Conductor> ;
    sh:property [ rdfs:comment "A `USBCable` shall be associated with `Signal-USB` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
            sh:maxCount 1 ;
            sh:message "s223: A `USBCable` shall be associated with `Signal-USB` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ] .


        

Waveguide

URI: http://data.ashrae.org/standard223#Waveguide


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Waveguide> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Waveguide" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#CoaxialCable> <http://data.ashrae.org/standard223#FiberOpticCable> ) ;
    rdfs:comment "A type of `Connection` the represents structures, such as fiber optic or coaxial cables, used to convey electromagnetic energy i.e., `Constituent-EM` in a specific direction. Without the physical constraint of a waveguide, waves would expand into three-dimensional space and their intensities would decrease according to the inverse square law." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connection> ;
    sh:property [ rdfs:comment "`Waveguide` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Constituent-EM> ;
            sh:maxCount 1 ;
            sh:message "s223: `Waveguide` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ] .


        

Coaxial cable

URI: http://data.ashrae.org/standard223#CoaxialCable


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CoaxialCable> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Coaxial cable" ;
    rdfs:comment "A type of `Waveguide` that consists of a central conductor, surrounded by an insulator, a metallic shield, and an outer jacket, all sharing the same geometric axis - which allows it to efficiently transmit high-frequency signals over long distances with minimal interference - and is used for `Wideband-DOCSIS` and `Wideband-CATV` communication." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Waveguide> ;
    sh:property [ rdfs:comment "`CoaxialCable` shall be associated with `Wideband-DOCSIS`, or `Wideband-CATV` using the relation `hasMedium`." ;
            sh:maxCount 1 ;
            sh:message "s223: `CoaxialCable` shall be associated with `Wideband-DOCSIS`, or `Wideband-CATV` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:xor ( [ sh:class <http://data.ashrae.org/standard223#Wideband-DOCSIS> ] [ sh:class <http://data.ashrae.org/standard223#Wideband-CATV> ] ) ] .


        

Fiber optic cable

URI: http://data.ashrae.org/standard223#FiberOpticCable


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FiberOpticCable> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fiber optic cable" ;
    rdfs:comment """A type of `Waveguide` that consists of thin, flexible strands of glass or plastic fibers that transmit data as pulses of light and is used for `Signal-FiberEthernet` or `Wideband-CATV` communication. Subclasses of `FiberOpticCable` represent common types used in buildings.

: FiberOpticCable Subclasses

| Subclass |
|:-----------|
| `FiberOpticCable-OM1` |
| `FiberOpticCable-OM2` |
| `FiberOpticCable-OM3` |
| `FiberOpticCable-OM4` |
| `FiberOpticCable-OM5` |
| `FiberOpticCable-OS1` |
| `FiberOpticCable-OS2` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Waveguide> ;
    sh:property [ rdfs:comment "`FiberOpticCable` shall be associated with exactly one `Signal-FiberEthernet` or `Wideband-CATV` using the relation `hasMedium`." ;
            sh:maxCount 1 ;
            sh:message "s223: `FiberOpticCable` shall be associated with exactly one `Signal-FiberEthernet` or `Wideband-CATV` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:xor ( [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Wideband-CATV> ] ) ] .


        

Junction

URI: http://data.ashrae.org/standard223#Junction


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Junction> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Junction" ;
    rdfs:comment """A `Junction` is a modeling construct used when a branching point within a `Connection` (see {s223:Connection}) is of significance,
such as specifying the observation location of a `Sensor`, or when a modeler wants to expose a branch point within a containing piece of `Equipment`.
When a `Junction` is used, what might have been modeled as a single, branched `Connection`
is separated into three or more separate connections, all tied together with the `Junction` and its associated connection points.

`Junction` is a subclass of `Connectable`, which gives it the ability to have connection points, but unlike `Equipment` (and like `Connection`)
it is not allowed to change the `Substance-Medium` that passes through it. This is why `Junction` is a sibling class to `Equipment` and not a subclass.
This constraint to maintain compatible mediums among a `Junction` and all of its associated `ConnectionPoint`s gives rise to multiple
validation test cases, where the specified medium might be a pure medium, or a mixture with constituents (see {s223:Substance-Medium}).""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connectable> ;
    sh:property [ rdfs:comment "Incompatible Medium. Case 2: A `Junction` with constituents and an associated `ConnectionPoint` with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 2: A `Junction` with constituents and an associated `ConnectionPoint` with a pure medium." ;
                    sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case5: Two `ConnectionPoint`s with pure mediums." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
                    sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m2 .
FILTER (?m1 != ?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}) .
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s, one with a medium with constituents and one a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s with a medium with constituents and a pure medium." ;
                    sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
                    sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
    ?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} .
  }
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 3: `Junction` with a pure medium and an associated `ConnectionPoint` with constituents" ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 3: `Junction` with a pure medium and an associated `ConnectionPoint` with constituents." ;
                    sh:message "s223: `Junction` {$this} with Medium {?m1} is incompatible with {?cp} with Medium {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case4: `Junction` with constituents and an associated `ConnectionPoint` with constituents." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 4: `Junction` with constituents and an associated `ConnectionPoint` with constituents." ;
                    sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
    ?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} .
  }
}
""" ] ],
        [ rdfs:comment "A `Junction` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Junction` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ],
        [ rdfs:comment "Incompatible Medium. Case1: A `Junction` with a pure medium and an associated `ConnectionPoint` with a pure medium." ;
            sh:name "Test for compatible declared Medium" ;
            sh:path <http://data.ashrae.org/standard223#hasMedium> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
                    sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] ] .


        

pub:connectedness

URI: pub:connectedness


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:connectedness> ns1:subclauses ( <http://data.ashrae.org/standard223#connected> <http://data.ashrae.org/standard223#connectedTo> <http://data.ashrae.org/standard223#connectedFrom> <http://data.ashrae.org/standard223#connectedThrough> <http://data.ashrae.org/standard223#connectsTo> <http://data.ashrae.org/standard223#connectsFrom> <http://data.ashrae.org/standard223#connectsThrough> <http://data.ashrae.org/standard223#connectsAt> <http://data.ashrae.org/standard223#hasConnectionPoint> <http://data.ashrae.org/standard223#isConnectionPointOf> <http://data.ashrae.org/standard223#cnx> ) ;
    ns1:title "Relations Describing Connectedness" ;
    rdfs:comment """
The collection of relations defined for `Connectable`, `ConnectionPoint`, and `Connection`
is intended to facilitate model queries that answer questions about how equipment
is connected and to what it is connected. These relations are shown in Figure 6-3.

![Connection Relations.](figures/Figure_6-1_Connection_Relationships.svg)

It is not necessary for a model developer to create each of these relations individually.
A model can be created using a simpler construct shown in Figure 6-4 using the
`cnx` relation. Inference rules can then be applied to generate the complete set
shown in Figure 6-3. The intent is to simplify model development without losing
the connectedness relationships that facilitate model queries.

![CNX Relations.](figures/Figure_6-2_CNX_Relationships.svg)
""" .


        

connected

URI: http://data.ashrae.org/standard223#connected


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#connected> a <http://data.ashrae.org/standard223#SymmetricRelation>,
        rdf:Property ;
    rdfs:label "connected" ;
    rdfs:comment "The relation `connected` indicates that two connectable things are `connected` without regard to the direction of flow." .


        

connected to

URI: http://data.ashrae.org/standard223#connectedTo


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:connectedTo a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "connected to" ;
    ns1:inverseOf ns1:connectedFrom ;
    rdfs:comment "The relation `connectedTo` indicates that connectable things are `connected` with a specific direction of flow. A is `connectedTo` B, means a direction of flow from A to B.  The inverse direction is indicated by `connectedFrom` (see {s223:connectedFrom})." .


        

connected from

URI: http://data.ashrae.org/standard223#connectedFrom


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:connectedFrom a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "connected from" ;
    ns1:inverseOf ns1:connectedTo ;
    rdfs:comment "The relation `connectedFrom` indicates that connectable things are `connected` with a specific direction of flow. B is `connectedFrom` A, means that the direction of flow is from A to B.  The inverse direction is indicated by `connectedTo` (see {s223:connectedTo})." .


        

connected through

URI: http://data.ashrae.org/standard223#connectedThrough


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#connectedThrough> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "connected through" ;
    rdfs:comment "A `Relation` that associates a `Connectable` thing with a `Connection`, without regard to the direction of flow. It is used to discover what connection links two connectable things." .


        

connects to

URI: http://data.ashrae.org/standard223#connectsTo


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#connectsTo> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "connects to" ;
    rdfs:comment "A `Relation` that associates a `Connection` with a `Connectable` thing, with an implied direction of flow. A `connectsTo` B indicates a flow from A to B." .


        

connects from

URI: http://data.ashrae.org/standard223#connectsFrom


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#connectsFrom> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "connects from" ;
    rdfs:comment "A `Relation` that associates a `Connectable` thing with a `Connection`, with an implied direction of flow. B `connectsFrom` A indicates a flow from A to B." .


        

connects through

URI: http://data.ashrae.org/standard223#connectsThrough


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:connectsThrough a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "connects through" ;
    ns1:inverseOf ns1:connectsAt ;
    rdfs:comment "A `Relation` that associates a `ConnectionPoint` with a `Connection`, without regard to the direction of flow." .


        

connects at

URI: http://data.ashrae.org/standard223#connectsAt


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:connectsAt a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "connects at" ;
    ns1:inverseOf ns1:connectsThrough ;
    rdfs:comment "A `Relation` that associates a `Connection` with a specific `ConnectionPoint`." .


        

has connection point

URI: http://data.ashrae.org/standard223#hasConnectionPoint


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:hasConnectionPoint a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "has connection point" ;
    ns1:inverseOf ns1:isConnectionPointOf ;
    rdfs:comment "One of two `Relation`s that associates `Connectable` thing with a `ConnectionPoint`. It is the inverse of the relation `isConnectionPointOf` (see {s223:isConnectionPointOf})." .


        

is connection point of

URI: http://data.ashrae.org/standard223#isConnectionPointOf


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:isConnectionPointOf a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "is connection point of" ;
    ns1:inverseOf ns1:hasConnectionPoint ;
    rdfs:comment "One of two `Relation`s that associates a `ConnectionPoint` with a `Connectable` thing. It is the inverse of the relation `hasConnectionPoint` (see {s223:hasConnectionPoint})." .


        

cnx

URI: http://data.ashrae.org/standard223#cnx


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#cnx> a <http://data.ashrae.org/standard223#SymmetricRelation>,
        rdf:Property ;
    rdfs:label "cnx" ;
    rdfs:comment "A `Relation` that associates adjacent entities in a connection path, comprised of Equipment-ConnectionPoint-Connection-ConnectionPoint-Equipment sequences." .


        

pub:system

URI: pub:system


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:system> ns1:subclauses ( <http://data.ashrae.org/standard223#System> <http://data.ashrae.org/standard223#hasMember> <http://data.ashrae.org/standard223#hasBoundaryConnectionPoint> <http://data.ashrae.org/standard223#hasOptionalConnectionPoint> ) ;
    ns1:title "SYSTEM" ;
    rdfs:comment """In common usage, terms like equipment and system have a variety of ambiguous and possibly conflicting interpretations. A semantic model is an attempt to eliminate such ambiguities and conflicts. `Equipment` and `System` have unique definitions and use cases in this ontology. Both concepts can be used to associate multiple pieces of `Equipment` with a higher-level concept. This association is accomplished using unique predicates. A new instance of `Equipment` can be associated with other `Equipment` using the relation `contains` (see {pub:equipment-containment}). Note that `Equipment` is `Connectable` (see {pub:connectedness}) and the relation `contains` implies physical containment. Alternatively, a `System` can be associated with one or more instances of `Equipment`, `System` or `Junction` using the relation `hasMember` (see {pub:system}). Note that `System` is not `Connectable` (see {pub:connectedness}), the relation `hasMember` does not imply physical containment.The decision of whether to model a higher-level concept as an Equipment or a System is a modeler’s choice.
""" .


        

System

URI: http://data.ashrae.org/standard223#System


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#System> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "System" ;
    rdfs:comment "A logical grouping of one or more pieces of `Equipment`, `Junction`s, or other `System`s for some functional purpose." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasOptionalConnectionPoint` relation is used to reference those connection points of its equipment that may not be connected, the \"dangling connection point\" should not generate a validation error." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasOptionalConnectionPoint` relation is used to reference those connection points of its equipment that may not be connected, the \"dangling connection point\" should not generate a validation error." ;
            sh:path <http://data.ashrae.org/standard223#hasOptionalConnectionPoint> ],
        [ rdfs:comment "A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasBoundaryConnectionPoint` relation is used to reference those connection points of its equipment that must be connected, but in the context of validating the model with the system by itself, the \"dangling connection point\" should not generate a validation error." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasBoundaryConnectionPoint` relation is used to reference those connection points of its equipment that must be connected, but in the context of validating the model with the system by itself, the \"dangling connection point\" should not generate a validation error." ;
            sh:path <http://data.ashrae.org/standard223#hasBoundaryConnectionPoint> ],
        [ rdfs:comment "If the relation `hasRole` is present, it shall associate the `System` with an `EnumerationKind-Role`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
            sh:message "s223: If the relation `hasRole` is present, it shall associate the `System` with an `EnumerationKind-Role`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ],
        [ a sh:PropertyShape ;
            rdfs:comment "A `System` shall be associated with at least one instance of `Equipment`, `Junction`, or `System` using the relation `hasMember`." ;
            sh:message "s223: A `System` shall be associated with at least one instance of `Equipment`, `Junction`, or `System` using the relation `hasMember`." ;
            sh:minCount 1 ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223#Equipment> ] [ sh:class <http://data.ashrae.org/standard223#Junction> ] [ sh:class <http://data.ashrae.org/standard223#System> ] ) ;
            sh:path <http://data.ashrae.org/standard223#hasMember> ;
            sh:severity sh:Warning ] ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Ensure that the boundary `ConnectionPoint`s of a `System` belong to only members of that `System`" ;
            sh:message "s223: `System` {$this} `hasBoundaryConnectionPoint` {?cp}, belonging to {?con} that is not a member of {?this}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp ?con
WHERE {
$this s223:hasBoundaryConnectionPoint ?cp .
?cp s223:isConnectionPointOf ?con .
FILTER NOT EXISTS {$this s223:hasMember+ ?con}
}
""" ] .


        

has member

URI: http://data.ashrae.org/standard223#hasMember


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasMember> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has member" ;
    rdfs:comment "A `Relation` that associates a `System` with its component `Equipment` and/or `System`s." .


        

has boundary connection point

URI: http://data.ashrae.org/standard223#hasBoundaryConnectionPoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasBoundaryConnectionPoint> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has boundary connection point" ;
    rdfs:comment "The `hasBoundaryConnectionPoint` relation means the `ConnectionPoint` represents the boundary of a `System` (see {s223:System}) defined by the modeler, such as a model fragment provided by the vendor of a collection of equipment intended for integration with another model. The presence of this relation is used to indicate that such a \"dangling connection point\" should not generate a validation error in a non-integrated context but should generate an error in an integrated context." .


        

has optional connection point

URI: http://data.ashrae.org/standard223#hasOptionalConnectionPoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasOptionalConnectionPoint> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has optional connection point" ;
    rdfs:comment "The `hasOptionalConnectionPoint` relation means that the `ConnectionPoint` is optional and is not required to be connected. The presence of this relation is used to indicate that such a \"dangling connection point\" should not generate a validation error in an integrated or non-integrated context." .


        

pub:space

URI: pub:space


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:space> ns1:subclauses ( <pub:physical-space> <pub:domain-space> ) ;
    ns1:title "SPACE" ;
    rdfs:comment """
There are two types of spaces: `PhysicalSpace`and `DomainSpace`. `PhysicalSpace`s represent the building from the architectural and occupant perspective. A `PhysicalSpace` may represent a room (e.g., an office or conference room), a part of a room (e.g., a foyer), a collection of rooms (e.g., a floor or the entire building), or any other physical region in a building (e.g., a patio or a roof), or a whole campus.

A `DomainSpace` is a subclass of `Connectable` (see {s223:Connectable}) that represents some portion of a `PhysicalSpace` that is affected by a building service associated with a particular domain (e.g., HVAC, lighting, see {s223:EnumerationKind-Domain}). `DomainSpace`s can be viewed as the endpoints of building services.

`DomainSpace`s can represent an entire `PhysicalSpace` or a portion of a `PhysicalSpace`, and thus `PhysicalSpace`s enclose `DomainSpace`s. An instance of a `PhysicalSpace` may enclose `DomainSpace`s from different domains, and may also enclose multiple `DomainSpace`s of the same domain. For example, a `PhysicalSpace` may represent an office that `encloses` a single HVAC `DomainSpace` and multiple lighting `DomainSpace`s. This would indicate a single HVAC service is provided to the office, along with multiple lighting services (e.g., one that provides lighting to the area of the office that receives daylight, and another that provides lighting to the area of the office that does not receive daylight). Multiple `DomainSpace`s of the same domain may overlap. For example, a `DomainSpace` affected by lighting devices that provide general lighting service to a room may overlap with the  `DomainSpace` affected by the lighting devices that provide emergency lighting service to a room.""" .


        

pub:physical-space

URI: pub:physical-space


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<pub:physical-space> ns1:subclauses ( <http://data.ashrae.org/standard223#PhysicalSpace> <http://data.ashrae.org/standard223#encloses> <http://data.ashrae.org/standard223#OutdoorPhysicalSpace> ) ;
    ns1:title "Physical Space" .


        

Physical space

URI: http://data.ashrae.org/standard223#PhysicalSpace


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#PhysicalSpace> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Physical space" ;
    rdfs:comment "An architectural concept representing a room, a part of a room, a collection of rooms, or any other physical region in a building. PhysicalSpaces may be grouped to define larger `PhysicalSpace`s using the relation `contains` (see {s223:contains})." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "If the relation `encloses` is present, it shall associate the `PhysicalSpace` with a `DomainSpace`." ;
            sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "s223: If the relation `encloses` is present, it shall associate the `PhysicalSpace` with a `DomainSpace`." ;
            sh:path <http://data.ashrae.org/standard223#encloses> ],
        [ rdfs:comment "If the relation `contains` is present, it shall associate the `PhysicalSpace` with a `PhysicalSpace`." ;
            sh:class <http://data.ashrae.org/standard223#PhysicalSpace> ;
            sh:message "s223: If the relation `contains` is present, it shall associate the `PhysicalSpace` with a `PhysicalSpace`." ;
            sh:path <http://data.ashrae.org/standard223#contains> ] .


        

encloses

URI: http://data.ashrae.org/standard223#encloses


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#encloses> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "encloses" ;
    rdfs:comment "A `Relation` that associates a `PhysicalSpace` with one or more `DomainSpace`s." .


        

Outdoor physical space

URI: http://data.ashrae.org/standard223#OutdoorPhysicalSpace


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#OutdoorPhysicalSpace> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Outdoor physical space" ;
    rdfs:comment "A `PhysicalSpace` that is outside of the building where, for example, outdoor ambient properties might be measured, within a suitably defined `DomainSpace`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#PhysicalSpace> .


        

pub:domain-space

URI: pub:domain-space


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<pub:domain-space> ns1:subclauses ( <http://data.ashrae.org/standard223#DomainSpace> <http://data.ashrae.org/standard223#hasDomain> ) ;
    ns1:title "Domain Space" .


        

Domain space

URI: http://data.ashrae.org/standard223#DomainSpace


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#DomainSpace> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Domain space" ;
    rdfs:comment "A portion of a `PhysicalSpace` that is affected by a building service associated with a domain. `DomainSpace`s may represent an entire `PhysicalSpace` or any portion of a `PhysicalSpace` (see {s223:PhysicalSpace}). Multiple `DomainSpace`s of the same domain may overlap, and `DomainSpace`s of different domains may also overlap, but `DomainSpace`s can not overlap multiple `PhysicalSpace`s. `DomainSpace`s may be grouped into `Zone`s using the relation `hasDomainSpace` (see {s223:hasDomainSpace})." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Connectable> ;
    sh:property [ rdfs:comment "A `DomainSpace` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Domain> ;
            sh:maxCount 1 ;
            sh:message "s223: A `DomainSpace` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasDomain> ],
        [ rdfs:comment "A `DomainSpace` must be enclosed by a `PhysicalSpace`." ;
            sh:message "s223: A `DomainSpace` must be enclosed by a `PhysicalSpace`." ;
            sh:minCount 1 ;
            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#encloses> ] ;
            sh:severity sh:Info ] .


        

has domain

URI: http://data.ashrae.org/standard223#hasDomain


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDomain> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has domain" ;
    rdfs:comment "A `Relation` that associates a `Zone` or `DomainSpace` with an `EnumerationKind-Domain` (e.g., `Domain-HVAC`, `Domain-Lighting`)." .


        

pub:zone

URI: pub:zone


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:zone> ns1:subclauses ( <http://data.ashrae.org/standard223#Zone> <http://data.ashrae.org/standard223#hasDomainSpace> <http://data.ashrae.org/standard223#hasZone> ) ;
    ns1:title "ZONE" ;
    rdfs:comment """
    A `Zone` is a logical grouping of one or more `DomainSpace`s and/or `Zone`s of a specific domain for some building service or control-related purpose. Multiple `Zone`s of the same domain may overlap. For example, a `Zone` that defines `DomainSpace`s that are subject to an occupancy-control strategy may overlap with a `Zone` that defines `DomainSpace`s that are subject to a supervisory scheduled-control strategy.""" .


        

Zone

URI: http://data.ashrae.org/standard223#Zone


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Zone> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Zone" ;
    rdfs:comment "A logical grouping of one or more `DomainSpace`s or other `Zone`s for some building service or control-related purpose. `Zone`s can have properties that are inputs or outputs to a `Function` (see {s223:Function}), which can be executed by `Controller`s (see {s223:Controller}) or other `Equipment`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:message "s223: A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
                        sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
                        sh:message "s223: A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasDomainSpace> ] ] [ sh:property [ rdfs:comment "A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
                        sh:class <http://data.ashrae.org/standard223#Zone> ;
                        sh:message "s223: A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasZone> ] ] ) ;
    sh:property [ rdfs:comment "The associated domain of a `Zone` and the Domain of the `DomainSpace`s it `contains` must be the same." ;
            sh:path <http://data.ashrae.org/standard223#hasDomain> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "The associated `EnumerationKind-Domain` of a `Zone` and the `EnumerationKind-Domain` of the `DomainSpace`s it contains must be the same." ;
                    sh:message "s223: `Zone` {$this} has a Domain of {?domain}, but it contains a `DomainSpace` {?ds} which has a Domain of {?dsdomain}. These should be the same." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT DISTINCT $this ?domain ?ds ?dsdomain
WHERE {
$this a s223:Zone .
$this s223:hasDomain ?domain .
$this s223:contains ?ds .
?ds s223:hasDomain ?dsdomain .
FILTER (?domain != ?dsdomain)
}
""" ] ],
        [ rdfs:comment "A `Zone` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Domain> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Zone` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasDomain> ] .


        

has domain space

URI: http://data.ashrae.org/standard223#hasDomainSpace


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDomainSpace> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has domain space" ;
    rdfs:comment "A `Relation` that associates a `Zone` with its component `DomainSpace`s." .


        

has zone

URI: http://data.ashrae.org/standard223#hasZone


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasZone> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has zone" ;
    rdfs:comment "A `Relation` that associates a `Zone` with component `Zone`s." .


        

pub:enumerations

URI: pub:enumerations


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:enumerations> ns1:subclauses ( <http://data.ashrae.org/standard223#EnumerationKind> <http://data.ashrae.org/standard223#EnumerationKind-Aspect> <http://data.ashrae.org/standard223#EnumerationKind-Binary> <http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek> <http://data.ashrae.org/standard223#EnumerationKind-Domain> <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> <http://data.ashrae.org/standard223#EnumerationKind-Numerical> <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> <http://data.ashrae.org/standard223#EnumerationKind-Role> <http://data.ashrae.org/standard223#EnumerationKind-Substance> ) ;
    ns1:title "ENUMERATIONS" ;
    rdfs:comment """Enumerations are sets of values that are closed (they cannot take on values outside of what is explicitly listed in the definition) and named (each value has a unique name). The values within an enumeration share a "kind," which communicates how the enumerations are intended to be used.

The standard uses enumerations to convey groups of useful values for describing attributes of things e.g., Properties, `Equipment`.""" .


        

Enumeration kind

URI: http://data.ashrae.org/standard223#EnumerationKind


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind>,
        sh:NodeShape ;
    rdfs:label "Enumeration kind" ;
    rdfs:comment """This is the encapsulating class for all `EnumerationKind`s.
`EnumerationKind`s define the (closed) set of permissible values for a given purpose.
For example, `EnumerationKind-DayOfWeek` enumerates the days of the week and allows no other values.

`EnumerationKind`s are arranged in a class hierarchy tree, with the root class named `EnumerationKind`. Each subclass is named
starting with its immediate superclass, followed by a hyphen and a name that is unique among the sibling classes.
Each class is also an instance of itself. This unusual modeling pattern was used to achieve:

- The ability to set an `EnumerationKind` value that is more general, or not yet fully specified
  at the time of modeling, such as `Electricity-AC` without having to state exactly what voltage or frequency it is.

- The ability to use the `sh:class` SHACL predicate at any level in the `EnumerationKind` hierarchy
  to constrain a value in the s223 specification, even if it is a more general one such as `Electricity-AC` in the above example.

Certain validation constraints exist in the standard that evaluate compatibility of `EnumerationKind`s.
Two values are deemed compatible if they are the same, if one is a direct ancestor (or descendant) of the other,
or if they are mixtures sharing at least one constituent.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> .


        

Aspect

URI: http://data.ashrae.org/standard223#EnumerationKind-Aspect


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Aspect> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Aspect>,
        sh:NodeShape ;
    rdfs:label "Aspect" ;
    ns1:subclauses ( <pub:EquipmentInformation> <pub:EquipmentOperation> <pub:OperationalLimits> <pub:ControlParameters> <pub:DeltaQuantities> ) ;
    rdfs:comment "Aspect enumerations provide context to the meaning of a `Property` that would otherwise not be apparent." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Equipment information aspect

URI: pub:EquipmentInformation


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:EquipmentInformation> rdfs:label "Equipment information aspect" ;
    ns1:title "Equipment Information" ;
    rdfs:comment """These aspects are used on properties that provide static information about something e.g., a `System`,
or `Equipment`. These aspects are typically used on properties of type `Property`. The property value is typically stored as a string.

: Aspect Equipment Information Enumerations

| Enumeration | Description |
|:-----------|:-------------|
| `Aspect-CatalogNumber` | {s223:Aspect-CatalogNumber/rdfs:comment} |
| `Aspect-Manufacturer` | {s223:Aspect-Manufacturer/rdfs:comment} |
| `Aspect-Model` | {s223:Aspect-Model/rdfs:comment} |
| `Aspect-SerialNumber` | {s223:Aspect-SerialNumber/rdfs:comment} |""" .


        

Equipment operation aspect

URI: pub:EquipmentOperation


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:EquipmentOperation> rdfs:label "Equipment operation aspect" ;
    ns1:title "Equipment Operation" ;
    rdfs:comment """These aspects are used on properties that provide dynamic information about something e.g., a `System`,
or `Equipment`. These aspects are typically used on properties of type `EnumerableProperty` and subtypes thereof.

: Aspect Equipment Operation Enumerations

| Enumeration | Description |
|:-----------|:-------------|
| `Aspect-Alarm` | {s223:Aspect-Alarm/rdfs:comment} |
| `Aspect-Fault` | {s223:Aspect-Fault/rdfs:comment} |
| `Aspect-OperatingMode` | {s223:Aspect-OperatingMode/rdfs:comment} |
| `Aspect-OperatingStatus` | {s223:Aspect-OperatingStatus/rdfs:comment} |""" .


        

Operational limits aspect

URI: pub:OperationalLimits


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:OperationalLimits> rdfs:label "Operational limits aspect" ;
    ns1:title "Operational Limits" ;
    rdfs:comment """These aspects are used on properties that define the range of another `Property`.
These aspects are used on properties of type `QuantifiableObservableProperty`.

: Aspect Operational Limits Enumerations

| Enumeration | Description |
|:-----------|:-------------|
| `Aspect-Maximum` | {s223:Aspect-Maximum/rdfs:comment} |
| `Aspect-Minimum` | {s223:Aspect-Minimum/rdfs:comment} |
| `Aspect-Nominal` | {s223:Aspect-Nominal/rdfs:comment} |
| `Aspect-Rated` | {s223:Aspect-Rated/rdfs:comment} |""" .


        

Control parameter aspect

URI: pub:ControlParameters


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:ControlParameters> rdfs:label "Control parameter aspect" ;
    ns1:title "Control Parameters" ;
    rdfs:comment """These aspects are used on properties that define the limits for control and
alarm algorithms. These aspects are used on properties of type `QuantifiableActuatableProperty`.

: Aspect Control Parameters Enumerations

| Enumeration | Description |
|:-----------|:-------------|
| `Aspect-Deadband` | {s223:Aspect-Deadband/rdfs:comment} |
| `Aspect-HighLimit` | {s223:Aspect-HighLimit/rdfs:comment} |
| `Aspect-LowLimit` | {s223:Aspect-LowLimit/rdfs:comment} |
| `Aspect-Setpoint` | {s223:Aspect-Setpoint/rdfs:comment} |
| `Aspect-Threshold` | {s223:Aspect-Threshold/rdfs:comment} |""" .


        

Delta quantity aspect

URI: pub:DeltaQuantities


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DeltaQuantities> rdfs:label "Delta quantity aspect" ;
    ns1:title "Delta Quantities" ;
    rdfs:comment """These aspects are used on properties to modify the quantity kind. These
aspects are used on properties of type `QuantifiableProperty` and subtypes thereof.

: Aspect Delta Quantities Enumerations

| Enumeration | Description |
|:-----------|:-------------|
| `Aspect-Delta` | {s223:Aspect-Delta/rdfs:comment} |""" .


        

Binary

URI: http://data.ashrae.org/standard223#EnumerationKind-Binary


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Binary> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Binary>,
        sh:NodeShape ;
    rdfs:label "Binary" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Binary-Logical> <http://data.ashrae.org/standard223#Binary-OnOff> <http://data.ashrae.org/standard223#Binary-Position> ) ;
    rdfs:comment """This class and its enumerated subclasses represent common binary values.

: EnumerationKind-Binary Enumerations

| Enumeration |
|:-----------|
| `Binary-Logical` |
| `Binary-OnOff` |
| `Binary-Position` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Logical

URI: http://data.ashrae.org/standard223#Binary-Logical


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Binary-Logical> a <http://data.ashrae.org/standard223#Binary-Logical>,
        <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Logical" ;
    rdfs:comment """This class and its enumerated subclasses represent the possible values of a logical `Property` i.e., True or False.

: Binary-Logical Enumerations

| Enumeration |
|:-----------|
| `Logical-True` |
| `Logical-False` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Binary> .


        

On/off

URI: http://data.ashrae.org/standard223#Binary-OnOff


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Binary-OnOff> a <http://data.ashrae.org/standard223#Binary-OnOff>,
        <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "On/off" ;
    rdfs:comment """This class and its enumerated subclasses represent basic operational states i.e., On and Off.

: Binary-OnOff Enumerations

| Enumeration |
|:-----------|
| `OnOff-Off` |
| `OnOff-On` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Binary> .


        

Position

URI: http://data.ashrae.org/standard223#Binary-Position


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Binary-Position> a <http://data.ashrae.org/standard223#Binary-Position>,
        <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Position" ;
    rdfs:comment """This class and its enumerated subclasses represent basic positional states i.e., Closed and Open.

: Binary-Position Enumerations

| Enumeration |
|:-----------|
| `Position-Closed` |
| `Position-Open` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Binary> .


        

Day of week

URI: http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek>,
        sh:NodeShape ;
    rdfs:label "Day of week" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#DayOfWeek-Weekday> <http://data.ashrae.org/standard223#DayOfWeek-Weekend> ) ;
    rdfs:comment """This class and its enumerated subclasses represent the days of the week, according to the Gregorian calendar i.e., Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, and Sunday. The Weekend and Weekday EnumerationKinds define subsets of this `EnumerationKind` for Mon-Fri and Sat, Sun, respectively.

: EnumerationKind-DayOfWeek Enumerations

| Enumeration |
|:-----------|
| `DayOfWeek-Weekday` |
| `DayOfWeek-Weekend` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Weekday

URI: http://data.ashrae.org/standard223#DayOfWeek-Weekday


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#DayOfWeek-Weekday> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#DayOfWeek-Weekday>,
        sh:NodeShape ;
    rdfs:label "Weekday" ;
    rdfs:comment """This class and its enumerated subclasses represent weekdays according to the Gregorian calendar, i.e., Monday, Tuesday, Wednesday, Thursday, and Friday.

: DayOfWeek-Weekday Enumerations

| Enumeration |
|:-----------|
| `Weekday-Friday` |
| `Weekday-Monday` |
| `Weekday-Thursday` |
| `Weekday-Tuesday` |
| `Weekday-Wednesday` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek> .


        

Weekend

URI: http://data.ashrae.org/standard223#DayOfWeek-Weekend


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#DayOfWeek-Weekend> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#DayOfWeek-Weekend>,
        sh:NodeShape ;
    rdfs:label "Weekend" ;
    rdfs:comment """This class and its enumerated subclasses represent weekend days according to the Gregorian calendar, i.e., Saturday and Sunday.

: DayOfWeek-Weekend Enumerations

| Enumeration |
|:-----------|
| `Weekend-Saturday` |
| `Weekend-Sunday` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-DayOfWeek> .


        

Domain

URI: http://data.ashrae.org/standard223#EnumerationKind-Domain


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Domain> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Domain>,
        sh:NodeShape ;
    rdfs:label "Domain" ;
    rdfs:comment """This class and its enumerated subclasses represent building systems and services e.g., HVAC, Lighting, and Plumbing.

: EnumerationKind-Domain Enumerations

| Enumeration |
|:-----------|
| `Domain-ConveyanceSystems` |
| `Domain-Electrical` |
| `Domain-FireProtection` |
| `Domain-HVAC` |
| `Domain-Lighting` |
| `Domain-Networking` |
| `Domain-Occupancy` |
| `Domain-PhysicalSecurity` |
| `Domain-Plumbing` |
| `Domain-Refrigeration` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Electrical phase identifier

URI: http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier>,
        sh:NodeShape ;
    rdfs:label "Electrical phase identifier" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#hasElectricalPhase> ) ;
    rdfs:comment """This class and its enumerated subclasses represent all possible electrical phases for AC electricity service.

: EnumerationKind-ElectricalPhaseIdentifier Enumerations

| Enumeration |
|:-----------|
| `ElectricalPhaseIdentifier-A` |
| `ElectricalPhaseIdentifier-AB` |
| `ElectricalPhaseIdentifier-ABC` |
| `ElectricalPhaseIdentifier-B` |
| `ElectricalPhaseIdentifier-BC` |
| `ElectricalPhaseIdentifier-C` |
| `ElectricalPhaseIdentifier-CA` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

has electrical phase

URI: http://data.ashrae.org/standard223#hasElectricalPhase


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasElectricalPhase> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has electrical phase" ;
    rdfs:comment "A `Relation` that associates a `Conductor` or `ConnectionPoint` with at most one `EnumerationKind-ElectricalPhaseIdentifier`." .


        

Numerical

URI: http://data.ashrae.org/standard223#EnumerationKind-Numerical


@prefix ns1: <http://qudt.org/schema/qudt/> .
@prefix ns2: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EnumerationKind-Numerical> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Numerical>,
        sh:NodeShape ;
    rdfs:label "Numerical" ;
    ns1:hasQuantityKind <http://qudt.org/vocab/quantitykind/Unknown> ;
    ns1:hasUnit <http://qudt.org/vocab/unit/UNKNOWN> ;
    ns2:subclauses ( <http://data.ashrae.org/standard223#Numerical-Frequency> <http://data.ashrae.org/standard223#Numerical-NumberOfElectricalPhases> <http://data.ashrae.org/standard223#Numerical-Voltage> ) ;
    rdfs:comment """
Numerical enumeration kinds are used to support the definitions of the
`Constituent-Electricity`. The enumerations instances in these classes have names that
are recognizable by humans but are just a string for a computer application. To
avoid the need to parse strings, each of these `EnumerationKind`s have
relations with the `EnumerationKind`s that represent electrical
phase, voltage, and frequency. The purpose of these properties is to enable a
machine to query them and obtain the same information that a person would
associate with the string.
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> ;
    sh:property [ rdfs:comment "An `EnumerationKind-Numerical` may be associated with a decimal value using the relation `hasValue`." ;
            sh:datatype xsd:decimal ;
            sh:path <http://data.ashrae.org/standard223#hasValue> ],
        [ rdfs:comment "An `EnumerationKind-Numerical` shall be associated with at least one QuantityKind using the relation `qudt:hasQuantityKind`." ;
            sh:class ns1:QuantityKind ;
            sh:minCount 1 ;
            sh:path ns1:hasQuantityKind ],
        [ rdfs:comment "An `EnumerationKind-Numerical` shall be associated with exactly one Unit using the relation `qudt:hasUnit`." ;
            sh:class ns1:Unit ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:path ns1:hasUnit ] .


        

Frequency

URI: http://data.ashrae.org/standard223#Numerical-Frequency


@prefix ns1: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Numerical-Frequency> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Numerical-Frequency>,
        sh:NodeShape ;
    rdfs:label "Frequency" ;
    ns1:hasQuantityKind <http://qudt.org/vocab/quantitykind/Frequency> ;
    ns1:hasUnit <http://qudt.org/vocab/unit/HZ> ;
    rdfs:comment """This class and its enumerated subclasses represent common frequencies for AC electricity service.

: Numerical-Frequency Enumerations

| Enumeration |
|:-----------|
| `Frequency-50Hz` |
| `Frequency-60Hz` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Numerical> ;
    sh:property [ rdfs:comment "A `Numerical-Frequency` shall have a `Unit` of Hertz." ;
            sh:hasValue <http://qudt.org/vocab/unit/HZ> ;
            sh:path ns1:hasUnit ],
        [ rdfs:comment "A `Numerical-Frequency` shall have a `QuantityKind` of `Frequency`." ;
            sh:hasValue <http://qudt.org/vocab/quantitykind/Frequency> ;
            sh:path ns1:hasQuantityKind ] .


        

Number of electrical phases

URI: http://data.ashrae.org/standard223#Numerical-NumberOfElectricalPhases


@prefix ns1: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Numerical-NumberOfElectricalPhases> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Numerical-NumberOfElectricalPhases>,
        sh:NodeShape ;
    rdfs:label "Number of electrical phases" ;
    ns1:hasQuantityKind <http://qudt.org/vocab/quantitykind/NumberOfElectricalPhases> ;
    ns1:hasUnit <http://qudt.org/vocab/unit/NUM> ;
    rdfs:comment """This class and its enumerated subclasses represent all possible service phases for AC electricity service, i.e., single-phase or three-phase. The `hasNumberOfElectricalPhases` relation points to one of the values of this enumeration.

: Numerical-NumberOfElectricalPhases Enumerations

| Enumeration |
|:-----------|
| `NumberOfElectricalPhases-SinglePhase` |
| `NumberOfElectricalPhases-ThreePhase` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Numerical> .


        

Voltage

URI: http://data.ashrae.org/standard223#Numerical-Voltage


@prefix ns1: <http://qudt.org/schema/qudt/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Numerical-Voltage> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Numerical-Voltage>,
        sh:NodeShape ;
    rdfs:label "Voltage" ;
    ns1:hasQuantityKind <http://qudt.org/vocab/quantitykind/Voltage> ;
    ns1:hasUnit <http://qudt.org/vocab/unit/V> ;
    rdfs:comment """This class and its enumerated subclasses represent common voltages for electricity service.

: Numerical-Voltage Enumerations

| Enumeration |
|:-----------|
| `Voltage-0V` |
| `Voltage-10000V` |
| `Voltage-110V` |
| `Voltage-120V` |
| `Voltage-127V` |
| `Voltage-12V` |
| `Voltage-139V` |
| `Voltage-1730V` |
| `Voltage-1900V` |
| `Voltage-190V` |
| `Voltage-208V` |
| `Voltage-219V` |
| `Voltage-220V` |
| `Voltage-230V` |
| `Voltage-2400V` |
| `Voltage-240V` |
| `Voltage-24V` |
| `Voltage-277V` |
| `Voltage-2.5V` |
| `Voltage-3000V` |
| `Voltage-3300V` |
| `Voltage-3460V` |
| `Voltage-347V` |
| `Voltage-380V` |
| `Voltage-3810V` |
| `Voltage-3V` |
| `Voltage-400V` |
| `Voltage-415V` |
| `Voltage-4160V` |
| `Voltage-480V` |
| `Voltage-48V` |
| `Voltage-5770V` |
| `Voltage-5V` |
| `Voltage-6000V` |
| `Voltage-600V` |
| `Voltage-6600V` |
| `Voltage-6V` |
| `Voltage-PoE` (see {s223:Voltage-PoE}) |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Numerical> ;
    sh:property [ rdfs:comment "A `Numerical-Voltage` shall have a `Unit` of Volts." ;
            sh:hasValue <http://qudt.org/vocab/unit/V> ;
            sh:path ns1:hasUnit ],
        [ rdfs:comment "A `Numerical-Voltage` shall have a `QuantityKind` of `Voltage`." ;
            sh:hasValue <http://qudt.org/vocab/quantitykind/Voltage> ;
            sh:path ns1:hasQuantityKind ] .


        

Occupancy

URI: http://data.ashrae.org/standard223#EnumerationKind-Occupancy


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Occupancy> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Occupancy>,
        sh:NodeShape ;
    rdfs:label "Occupancy" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Occupancy-Motion> <http://data.ashrae.org/standard223#Occupancy-Presence> <http://data.ashrae.org/standard223#Occupancy-Occupied> ) ;
    rdfs:comment "This class and its enumerated subclasses represent the occupancy status of a space within a building, i.e., the state of being occupied by a human being. The `Occupancy-Motion` and `Occupancy-Presence` subclasses are associated with specific characteristics of occupancy and associated means of detection, while the `Occupancy-Occupied` subclass is generic, in that it is not associated with a specific characteristic or occupancy or associated means of detection." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Motion-based occupancy

URI: http://data.ashrae.org/standard223#Occupancy-Motion


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Occupancy-Motion> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Occupancy-Motion>,
        sh:NodeShape ;
    rdfs:label "Motion-based occupancy" ;
    rdfs:comment """This class and its enumerated subclasses represent the detection of human motion in a space.

: Occupancy-Motion Enumerations

| Enumeration |
|:-----------|
| `Motion-False` |
| `Motion-True` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> .


        

Presence-based occupancy

URI: http://data.ashrae.org/standard223#Occupancy-Presence


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Occupancy-Presence> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Occupancy-Presence>,
        sh:NodeShape ;
    rdfs:label "Presence-based occupancy" ;
    rdfs:comment """This class and its enumerated subclasses represent the detection of human presence in a space.

: Occupancy-Presence Enumerations

| Enumeration |
|:-----------|
| `Presence-False` |
| `Presence-True` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> .


        

Generic occupancy

URI: http://data.ashrae.org/standard223#Occupancy-Occupied


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Occupancy-Occupied> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Occupancy-Occupied>,
        sh:NodeShape ;
    rdfs:label "Generic occupancy" ;
    rdfs:comment """This class and its enumerated subclasses represent the generic detection of human occupancy in a space.

  : Occupancy-Occupied Enumerations

| Enumeration |
|:-----------|
| `Occupied-False` |
| `Occupied-True` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> .


        

Thermodynamic phase

URI: http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase>,
        sh:NodeShape ;
    rdfs:label "Thermodynamic phase" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#ThermodynamicPhase-Gas> <http://data.ashrae.org/standard223#ThermodynamicPhase-Liquid> <http://data.ashrae.org/standard223#hasThermodynamicPhase> ) ;
    rdfs:comment """This class and its enumerated subclasses represent thermodynamic phases, also referred to as states of matter.

: EnumerationKind-ThermodynamicPhase Enumerations

| Enumeration |
|:-----------|
| `ThermodynamicPhase-Gas` (see {s223:ThermodynamicPhase-Gas}) |
| `ThermodynamicPhase-Liquid` (see {s223:ThermodynamicPhase-Liquid}) |
| `ThermodynamicPhase-Solid` |
| `ThermodynamicPhase-Vapor` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Gas phase

URI: http://data.ashrae.org/standard223#ThermodynamicPhase-Gas


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ThermodynamicPhase-Gas> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#ThermodynamicPhase-Gas>,
        sh:NodeShape ;
    rdfs:label "Gas phase" ;
    rdfs:comment """This class and its enumerated subclasses represent gas in various thermodynamic states.

: ThermodynamicPhase-Gas Enumerations

| Enumeration |
|:-----------|
| `Gas-Superheated` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> .


        

Liquid phase

URI: http://data.ashrae.org/standard223#ThermodynamicPhase-Liquid


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ThermodynamicPhase-Liquid> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#ThermodynamicPhase-Liquid>,
        sh:NodeShape ;
    rdfs:label "Liquid phase" ;
    rdfs:comment """This class and its enumerated subclasses represent liquid in various thermodynamic states.

: ThermodynamicPhase-Liquid Enumerations

| Enumeration |
|:-----------|
| `Liquid-Subcooled` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> .


        

has thermodynamic phase

URI: http://data.ashrae.org/standard223#hasThermodynamicPhase


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasThermodynamicPhase> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has thermodynamic phase" ;
    rdfs:comment "A `Relation` that associates a Medium with its thermodynamic phases." .


        

Role

URI: http://data.ashrae.org/standard223#EnumerationKind-Role


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Role> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Role>,
        sh:NodeShape ;
    rdfs:label "Role" ;
    rdfs:comment """This class and its enumerated subclasses represent roles played by entities, such as cooling, generator,
relief, and return. These enumeration kinds are intended to indicate the capability of an entity to play a given
role, rather than the role being actively played at any given point in time. For example,
a reversible piece of equipment might play a role of `Role-Cooling` at one time, and `Role-Heating` at another time.
Such an entity would be modeled using the `hasRole` relation with both role values. The active role at a particular time can be modeled as a `Property` with
an `ExternalReference` to telemetry data.

: EnumerationKind-Role Enumerations

| Enumeration |
|:-----------|
| `Role-Condenser` |
| `Role-Cooling` |
| `Role-Dehumidifying` |
| `Role-Discharge` |
| `Role-Economizer` |
| `Role-Evaporator` |
| `Role-Exhaust` |
| `Role-Expansion` |
| `Role-Generator` |
| `Role-HeatRecovery` |
| `Role-HeatTransfer` |
| `Role-Heating` |
| `Role-Load` |
| `Role-OutdoorAirIntake` |
| `Role-Primary` |
| `Role-Recirculating` |
| `Role-Relief` |
| `Role-Return` |
| `Role-Secondary` |
| `Role-Supply` |
| `Role-Ventilating` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> .


        

Substance

URI: http://data.ashrae.org/standard223#EnumerationKind-Substance


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumerationKind-Substance> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EnumerationKind-Substance>,
        sh:NodeShape ;
    rdfs:label "Substance" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Substance-Medium> <http://data.ashrae.org/standard223#Substance-Particulate> <http://data.ashrae.org/standard223#Substance-Soot> ) ;
    rdfs:comment """
This class and its enumerated subclasses represent things that are produced, conveyed, sensed, controlled, or consumed.  Its enumerated subclasses differentate between mediums, particulates, and soot.

: EnumerationKind-Substance Enumerations

| Enumeration |
|:-----------|
| `Substance-Medium` (see {s223:Substance-Medium}) |
| `Substance-Particulate` (see {s223:Substance-Particulate}) |
| `Substance-Soot` (see {s223:Substance-Soot}) |
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind> ;
    sh:property [ rdfs:comment "If a substance has a constituent, that constituent may not itself have constituents." ;
            sh:path <http://data.ashrae.org/standard223#composedOf> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a substance has a constituent, that constituent may not itself have constituents." ;
                    sh:message "s223: This substance {$this} has a constituent {?constituent} that itself is composed of {?nextConstituent}. Create new substance with only atomic constituents." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?constituent ?nextConstituent
WHERE {
$this s223:composedOf/s223:ofConstituent ?constituent .
?constituent s223:composedOf/s223:ofConstituent ?nextConstituent .
}
""" ] ] .


        

Medium

URI: http://data.ashrae.org/standard223#Substance-Medium


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Substance-Medium> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Substance-Medium>,
        sh:NodeShape ;
    rdfs:label "Medium" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Medium-Constituent> <http://data.ashrae.org/standard223#Medium-Mix> ) ;
    rdfs:comment """This class and its enumerated subclasses represent substances that facilitate the conveyance of matter, energy, or information.  It is used to qualify `Connection`s and `ConnectionPoint`s with the relation `hasMedium` (see {s223:hasMedium}).

`Substance-Medium` is also the root of the medium hierarchy that is used to ensure compatibility of different medium designations. For example,
`Fluid-Water` and `Water-ChilledWater` are alternative but compatible ways of identifying what is flowing in a pipe, using different degrees of
specificity. `Water-ChilledWater` and `Water-HotWater` are not compatible. Compatibility is determined by testing if one medium is a subclass of the
other. This gets a bit more complicated in the case of mixtures, where at least one of the constituents of a mixture must be compatible with at least one of
the constituents of the other medium.

Testing for medium compatibility is done in the context of entities that have a `hasMedium` relation, such as

* `Connection` and its associated `ConnectionPoint`s. See {s223:Connection}.

* `Junction` and its associated `ConnectionPoint`s See {s223:Junction}.

* `Filter` and its associated `ConnectionPoint`s. See {s223:Filter}.

* Any `Concept` that has a `hasMedium` relation, compared with an associated `Property` with an `ofMedium` relation. See {s223:Concept}.

These tests are listed in the constraint tables for the respective classes listed above, identified as Case 1, Case 2, etc.

: Substance-Medium Enumerations

| Enumeration |
|:-----------|
| `Medium-Constituent` (see {s223:Medium-Constituent}) |
| `Medium-Mix` (see {s223:Medium-Mix}) |
| `Medium-ThermalContact` |
| `Medium-MechanicalLinkage` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Substance> .


        

Constituent

URI: http://data.ashrae.org/standard223#Medium-Constituent


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Medium-Constituent> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Medium-Constituent>,
        sh:NodeShape ;
    rdfs:label "Constituent" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Constituent-Electricity> <http://data.ashrae.org/standard223#Constituent-EM> <http://data.ashrae.org/standard223#Constituent-NOX> <http://data.ashrae.org/standard223#Constituent-Refrigerant> ) ;
    rdfs:comment """
This class and its enumerated subclasses represent substances that may be combined to form a `Medium-Mix`. Constituents are distinguished from `Medium-Mix` and its subclasses in that constituents cannot use the `composedOf` relation to reference a concentration of other constituents.

: Medium-Constituent Enumerations

| Enumeration |
|:-----------|
| `Constituent-Ar` |
| `Constituent-CO2` |
| `Constituent-CO` |
| `Constituent-Electricity` (see {s223:Constituent-Electricity}) |
| `Constituent-EM` (see {s223:Constituent-EM}) |
| `Constituent-Glycol` |
| `Constituent-H2O` |
| `Constituent-H2S` |
| `Constituent-CH4` |
| `Constituent-N2` |
| `Constituent-NH3` |
| `Constituent-NOX` (see {s223:Constituent-NOX}) |
| `Constituent-O2` |
| `Constituent-O3` |
| `Constituent-Oil` |
| `Constituent-Radon` |
| `Constituent-Refrigerant` (see {s223:Constituent-Refrigerant}) |
| `Constituent-SO2` |
| `Constituent-VolatileOrganicCompounds` |
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:property [ rdfs:comment "A Constituent cannot be composed of other substances." ;
            sh:maxCount 0 ;
            sh:message "s223: A Constituent cannot be composed of other substances." ;
            sh:path <http://data.ashrae.org/standard223#composedOf> ] .


        

Electricity

URI: http://data.ashrae.org/standard223#Constituent-Electricity


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Constituent-Electricity> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Constituent-Electricity>,
        sh:NodeShape ;
    rdfs:label "Electricity" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Electricity-AC> <http://data.ashrae.org/standard223#Electricity-DC> <http://data.ashrae.org/standard223#Electricity-Signal> ) ;
    rdfs:comment """This class and its enumerated subclasses represent common forms of electrical energy, including AC, DC, and electrical communication signals.

: Constituent-Electricity Enumerations

| Enumeration |
|:-----------|
| `Electricity-AC` (see {s223:Electricity-AC})|
| `Electricity-DC` (see {s223:Electricity-DC})|
| `Electricity-Earth`  |
| `Electricity-Neutral` |
| `Electricity-Signal` (see {s223:Electricity-Signal}) |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Constituent> .


        

AC electricity

URI: http://data.ashrae.org/standard223#Electricity-AC


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix ns2: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ns1:Electricity-AC a ns1:Class,
        ns1:Electricity-AC,
        sh:NodeShape ;
    rdfs:label "AC electricity" ;
    ns1:hasFrequency ns1:Numerical-Frequency ;
    ns1:hasNumberOfElectricalPhases ns1:Numerical-NumberOfElectricalPhases ;
    ns2:subclauses ( <pub:electricalwiringv2-p1> <pub:electricalwiringv2-p2> <pub:electricalwiringv2-p3> <pub:electricalwiringv2-p4> <pub:electricalwiringv2-p5> <pub:electricalwiringv2-p6> <pub:electricalwiringv2-p7> ns1:hasACLineLineVoltage ns1:hasACLineNeutralVoltage ns1:hasFrequency ns1:hasNumberOfElectricalPhases ) ;
    rdfs:comment """This class and its enumerated subclasses represent common AC electricity services.

: Electricity-AC Enumerations

| Enumeration |
|:-----------|
| `AC-10000VLL-1Ph-60Hz` |
| `AC-10000VLL-3Ph-60Hz` |
| `AC-10000VLL-5770VLN-1Ph-60Hz` |
| `AC-10000VLL-5770VLN-3Ph-60Hz` |
| `AC-110VLN-1Ph-50Hz` |
| `AC-120VLN-1Ph-60Hz` |
| `AC-127VLN-1Ph-50Hz` |
| `AC-139VLN-1Ph-50Hz` |
| `AC-1730VLN-1Ph-60Hz` |
| `AC-1900VLN-1Ph-60Hz` |
| `AC-190VLL-110VLN-1Ph-50Hz` |
| `AC-190VLL-110VLN-3Ph-50Hz` |
| `AC-190VLL-1Ph-50Hz` |
| `AC-190VLL-3Ph-50Hz` |
| `AC-208VLL-120VLN-1Ph-60Hz` |
| `AC-208VLL-120VLN-3Ph-60Hz` |
| `AC-208VLL-1Ph-60Hz` |
| `AC-208VLL-3Ph-60Hz` |
| `AC-208VLN-1Ph-60Hz` |
| `AC-219VLN-1Ph-60Hz` |
| `AC-220VLL-127VLN-1Ph-50Hz` |
| `AC-220VLL-127VLN-3Ph-50Hz` |
| `AC-220VLL-1Ph-50Hz` |
| `AC-220VLL-3Ph-50Hz` |
| `AC-230VLN-1Ph-50Hz` |
| `AC-2400VLN-1Ph-60Hz` |
| `AC-240VLL-120VLN-1Ph-60Hz` |
| `AC-240VLL-139VLN-1Ph-50Hz` |
| `AC-240VLL-139VLN-3Ph-50Hz` |
| `AC-240VLL-1Ph-50Hz` |
| `AC-240VLL-1Ph-60Hz` |
| `AC-240VLL-208VLN-120VLN-1Ph-60Hz` |
| `AC-240VLL-208VLN-120VLN-3Ph-60Hz` |
| `AC-240VLL-3Ph-50Hz` |
| `AC-240VLL-3Ph-60Hz` |
| `AC-240VLN-1Ph-50Hz` |
| `AC-24VLN-1Ph-50Hz` |
| `AC-24VLN-1Ph-60Hz` |
| `AC-277VLN-1Ph-60Hz` |
| `AC-3000VLL-1730VLN-1Ph-60Hz` |
| `AC-3000VLL-1730VLN-3Ph-60Hz` |
| `AC-3000VLL-1Ph-60Hz` |
| `AC-3000VLL-3Ph-60Hz` |
| `AC-3300VLL-1900VLN-1Ph-60Hz` |
| `AC-3300VLL-1900VLN-3Ph-60Hz` |
| `AC-3300VLL-1Ph-60Hz` |
| `AC-3300VLL-3Ph-60Hz` |
| `AC-3460VLN-1Ph-60Hz` |
| `AC-347VLN-1Ph-60Hz` |
| `AC-380VLL-1Ph-60Hz` |
| `AC-380VLL-219VLN-1Ph-60Hz` |
| `AC-380VLL-219VLN-3Ph-60Hz` |
| `AC-380VLL-3Ph-60Hz` |
| `AC-3810VLN-1Ph-60Hz` |
| `AC-400VLL-1Ph-50Hz` |
| `AC-400VLL-230VLN-1Ph-50Hz` |
| `AC-400VLL-230VLN-3Ph-50Hz` |
| `AC-400VLL-3Ph-50Hz` |
| `AC-415VLL-1Ph-50Hz` |
| `AC-415VLL-240VLN-1Ph-50Hz` |
| `AC-415VLL-240VLN-3Ph-50Hz` |
| `AC-415VLL-3Ph-50Hz` |
| `AC-4160VLL-1Ph-60Hz` |
| `AC-4160VLL-2400VLN-1Ph-60Hz` |
| `AC-4160VLL-2400VLN-3Ph-60Hz` |
| `AC-4160VLL-3Ph-60Hz` |
| `AC-480VLL-1Ph-60Hz` |
| `AC-480VLL-277VLN-1Ph-60Hz` |
| `AC-480VLL-277VLN-3Ph-60Hz` |
| `AC-480VLL-3Ph-60Hz` |
| `AC-5770VLN-1Ph-60Hz` |
| `AC-6000VLL-1Ph-60Hz` |
| `AC-6000VLL-3460VLN-1Ph-60Hz` |
| `AC-6000VLL-3460VLN-3Ph-60Hz` |
| `AC-6000VLL-3Ph-60Hz` |
| `AC-600VLL-1Ph-60Hz` |
| `AC-600VLL-347VLN-1Ph-60Hz` |
| `AC-600VLL-347VLN-3Ph-60Hz` |
| `AC-600VLL-3Ph-60Hz` |
| `AC-6600VLL-1Ph-60Hz` |
| `AC-6600VLL-3810VLN-1Ph-60Hz` |
| `AC-6600VLL-3810VLN-3Ph-60Hz` |
| `AC-6600VLL-3Ph-60Hz` |""" ;
    rdfs:subClassOf ns1:Constituent-Electricity ;
    sh:property [ rdfs:comment "An AC electricity medium shall have a frequency" ;
            sh:class ns1:Numerical-Frequency ;
            sh:minCount 1 ;
            sh:path ns1:hasFrequency ],
        [ rdfs:comment "An AC electricity medium may be associated with zero or more line-line voltages." ;
            sh:class ns1:Numerical-Voltage ;
            sh:path ns1:hasACLineLineVoltage ],
        [ rdfs:comment "An AC electricity medium may be associated with zero or more line-neutral voltages." ;
            sh:class ns1:Numerical-Voltage ;
            sh:path ns1:hasACLineNeutralVoltage ],
        [ rdfs:comment "An AC electricity medium shall have a number of electrical phases." ;
            sh:class ns1:Numerical-NumberOfElectricalPhases ;
            sh:minCount 1 ;
            sh:path ns1:hasNumberOfElectricalPhases ] .


        

pub:electricalwiringv2-p1

URI: pub:electricalwiringv2-p1


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p1> ns1:title "1-Phase 3-Wire (LLN) 120V/240V" ;
    rdfs:comment """
A 1-phase (also referred to as split-phase), 3-wire, 120V/240V transformer, the 3 electricity services it is capable of providing, and their associated mediums.

![1-Phase 3-Wire (LLN) 120V/240V](figures/Figure_10_1.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-240VLL-120VLN-1Ph-60Hz | 3 | 240 | 120 | US, Canada | ABN |
| AC-240VLL-1Ph-60Hz | 2 | 240 | - | US, Canada | AB |
| AC-120VLN-1Ph-60Hz | 2 | - | 120 | US, Canada | AN, BN |
""" .


        

pub:electricalwiringv2-p2

URI: pub:electricalwiringv2-p2


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p2> ns1:title "3-Phase 3-Wire (LLL) 480V Delta" ;
    rdfs:comment """
A 3-phase, 3-wire, 480V Delta transformer, the 2 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 3-Wire (LLL) 480V Delta](figures/Figure_10_2.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-480VLL-3Ph-60Hz | 3 | 480 | - | US | ABC |
| AC-480VLL-1Ph-60Hz | 2 | 480 | - | US | AB, BC, AC |
""" .


        

pub:electricalwiringv2-p3

URI: pub:electricalwiringv2-p3


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p3> ns1:title "3-Phase 4-Wire (LLLN) 347V/600V Wye" ;
    rdfs:comment """
A 3-phase, 4-Wire, 347V/600V Wye transformer, the 3 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 4-Wire (LLLN) 347V/600V Wye](figures/Figure_10_3.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-600VLL-347VLN-3Ph-60Hz | 3 | 600 | 347 | US, Canada | ABCN |
| AC-600VLL-1Ph-60Hz | 2 | 600 | - | US, Canada | AB, BC, AC |
| AC-347VLN-1Ph-60Hz | 2 | - | 347 | US, Canada | AN, BN, CN |
""" .


        

pub:electricalwiringv2-p4

URI: pub:electricalwiringv2-p4


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p4> ns1:title "3-Phase 4-Wire (LLLN) 120V/208V/240V High Leg Delta" ;
    rdfs:comment """
A 3-Phase, 4-Wire, 120V/208V/240V High Leg Delta transformer, the 6 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 4-Wire (LLLN) 120V/208V/240V High Leg Delta](figures/Figure_10_4.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-240VLL-208VLN-120VLN-3Ph-60Hz | 4 | 240 | 208, 120 | US | ABCN |
| AC-240VLL-208VLN-120VLN-1Ph-60Hz | 4 | 240 | 208, 120 | US | ACN, BCN |
| AC-240VLL-120VLN-1Ph-60Hz | 3 | 240 | 120 | US | ABN |
| AC-240VLL-3Ph-60Hz | 3 | 240 | - | US | ABC |
| AC-240VLL-1Ph-60Hz | 2 | 240 | - | US | AB, BC, AC |
| AC-120VLN-1Ph-60Hz | 2 | - | 120 | US | AN, BN |
""" .


        

pub:electricalwiringv2-p5

URI: pub:electricalwiringv2-p5


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p5> ns1:title "3-Phase 4-Wire (LLLN) 120V/208V Wye" ;
    rdfs:comment """
A 3-phase, 4-wire 120V/208V Wye transformer, the 5 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 4-Wire (LLLN) 120V/208V Wye](figures/Figure_10_5.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-208VLL-120VLN-3Ph-60Hz | 4 | 208 | 120 | US, Canada | ABCN |
| AC-208VLL-120VLN-1Ph-60Hz | 4 | 208 | 120 | US, Canada | ABN, BCN, ACN |
| AC-208VLL-3Ph-60Hz | 3 | 208 | - | US, Canada | ABC |
| AC-208VLL-1Ph-60Hz | 2 | 208 | - | US, Canada | AB, BC, AC |
| AC-120VLN-1Ph-60Hz | 2 | - | 120 | US, Canada | AN, BN, CN |
""" .


        

pub:electricalwiringv2-p6

URI: pub:electricalwiringv2-p6


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p6> ns1:title "3-Phase 4-Wire (LLLN) 230V/400V Wye" ;
    rdfs:comment """
A 3-phase, 4-wire 230V/400V Wye transformer, the 5 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 4-Wire (LLLN) 230V/400V Wye](figures/Figure_10_6.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-400VLL-230VLN-3Ph-50Hz | 4 | 400 | 230 | EU | ABCN |
| AC-400VLL-230VLN-1Ph-50Hz | 4 | 400 | 230 | EU | ABN, BCN, ACN |
| AC-400VLL-3Ph-50Hz | 3 | 400 | - | EU | ABC |
| AC-400VLL-1Ph-50Hz | 2 | 400 | - | EU | AB, BC, AC |
| AC-230VLN-1Ph-50Hz | 3 | - | 230 | EU | AN, BN, CN |
""" .


        

pub:electricalwiringv2-p7

URI: pub:electricalwiringv2-p7


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:electricalwiringv2-p7> ns1:title "3-Phase 4-Wire (LLLN) 240V/415V Wye" ;
    rdfs:comment """
A 3-phase, 4-wire, 240V/415V Wye transformer, the 5 AC electricity services it is capable of providing, and their associated mediums.

![3-Phase 4-Wire (LLLN) 240V/415V Wye](figures/Figure_10_7.svg)

| Medium | # wires | L-L | L-N | Countries | Phase Possibilities |
|:------------------:|:-----:|:----:|:----:|:-------:|:-------------------:|
| AC-415VLL-240VLN-3Ph-50Hz| 4 | 415 | 240 | Australia | ABCN |
| AC-415VLL-240VLN-1Ph-50Hz | 3 | 415 | 240 | Australia | ABN, BCN, ACN |
| AC-415VLL-3Ph-50Hz | 3 | 415 | - | Australia | ABC |
| AC-415VLL-1Ph-50Hz | 2 | 415 | - | Australia | AB, BC, AC |
| AC-240VLN-1Ph-50Hz | 2 | - | 240 | Australia | AN, BN, CN |
""" .


        

has AC line-line voltage

URI: http://data.ashrae.org/standard223#hasACLineLineVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasACLineLineVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has AC line-line voltage" ;
    rdfs:comment "A `Relation` that associates a `Constituent-Electricity` with an electrical voltage between two live lines." .


        

has AC line-neutral voltage

URI: http://data.ashrae.org/standard223#hasACLineNeutralVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasACLineNeutralVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has AC line-neutral voltage" ;
    rdfs:comment "A `Relation` that associates an `Electricity-AC` medium with an electrical voltage between a live line and a neutral line." .


        

has frequency

URI: http://data.ashrae.org/standard223#hasFrequency


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasFrequency> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has frequency" ;
    rdfs:comment "A `Relation` that associates an AC electricity `Substance-Medium` with its electrical frequency." .


        

has number of electrical phases

URI: http://data.ashrae.org/standard223#hasNumberOfElectricalPhases


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasNumberOfElectricalPhases> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has number of electrical phases" ;
    rdfs:comment "A `Relation` that associates an AC electricity `Substance-Medium` with its number of electrical phases." .


        

DC electricity

URI: http://data.ashrae.org/standard223#Electricity-DC


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix ns2: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ns1:Electricity-DC a ns1:Class,
        ns1:Electricity-DC,
        sh:NodeShape ;
    rdfs:label "DC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Numerical-Voltage ;
    ns2:subclauses ( ns1:hasDCDifferentialVoltage ns1:hasDCPositiveVoltage ns1:hasDCNegativeVoltage ns1:hasDCZeroVoltage ns1:DC-12V ns1:DC-24V ns1:DC-380V ns1:DC-48V ns1:DC-5V ns1:DC-6V ns1:DC-PoE ) ;
    rdfs:comment """This class and its enumerated subclasses represent common DC electricity services.

: Electricity-DC Enumerations

| Enumeration |
|:-----------|
| `DC-12V` |
| `DC-24V` |
| `DC-380V` |
| `DC-48V` |
| `DC-5V` |
| `DC-6V` |
| `DC-PoE` |""" ;
    rdfs:subClassOf ns1:Constituent-Electricity ;
    sh:property [ rdfs:comment "A DC electricity medium shall be associated with a differential voltage." ;
            sh:class ns1:Numerical-Voltage ;
            sh:minCount 1 ;
            sh:path ns1:hasDCDifferentialVoltage ],
        [ rdfs:comment "A DC electricity medium may be associated with a voltage with a value of zero." ;
            sh:class ns1:Voltage-0V ;
            sh:path ns1:hasDCZeroVoltage ],
        [ rdfs:comment "A DC electricity medium may be associated with a negative polarity voltage." ;
            sh:class ns1:Numerical-Voltage ;
            sh:path ns1:hasDCNegativeVoltage ],
        [ rdfs:comment "A DC electricity medium may be associated with a positive polarity voltage." ;
            sh:class ns1:Numerical-Voltage ;
            sh:path ns1:hasDCPositiveVoltage ] .


        

has DC differential voltage

URI: http://data.ashrae.org/standard223#hasDCDifferentialVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDCDifferentialVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has DC differential voltage" ;
    rdfs:comment "A `Relation` that associates an `Electricity-DC` medium with a differential voltage." .


        

has DC positive voltage

URI: http://data.ashrae.org/standard223#hasDCPositiveVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDCPositiveVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has DC positive voltage" ;
    rdfs:comment "A `Relation` that associates an `Electricity-DC` medium with a positive polarity voltage." .


        

has DC negative voltage

URI: http://data.ashrae.org/standard223#hasDCNegativeVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDCNegativeVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has DC negative voltage" ;
    rdfs:comment "A `Relation` that associates an `Electricity-DC` medium with a negative polarity voltage." .


        

has DC zero voltage

URI: http://data.ashrae.org/standard223#hasDCZeroVoltage


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDCZeroVoltage> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has DC zero voltage" ;
    rdfs:comment "A `Relation` that associates an `Electricity-DC` medium with a zero value voltage." .


        

12 VDC electricity

URI: http://data.ashrae.org/standard223#DC-12V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-12V a ns1:Class,
        ns1:DC-12V,
        sh:NodeShape ;
    rdfs:label "12 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-12V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 12 volt DC electricity.

: DC-12V Enumerations

| Enumeration |
|:-----------|
| `12V-12V-Neg` |
| `12V-12V-Pos` |
| `12V-6V-Neg-6V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

24 VDC electricity

URI: http://data.ashrae.org/standard223#DC-24V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-24V a ns1:Class,
        ns1:DC-24V,
        sh:NodeShape ;
    rdfs:label "24 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-24V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 24 volt DC electricity.

: DC-24V Enumerations

| Enumeration |
|:-----------|
| `24V-12V-Neg-12V-Pos` |
| `24V-24V-Neg` |
| `24V-24V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

380 VDC electricity

URI: http://data.ashrae.org/standard223#DC-380V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-380V a ns1:Class,
        ns1:DC-380V,
        sh:NodeShape ;
    rdfs:label "380 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-380V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 380 volt DC electricity.

: DC-380V Enumerations

| Enumeration |
|:-----------|
| `380V-190V-Neg-190V-Pos` |
| `380V-380V-Neg` |
| `380V-380V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

48 VDC electricity

URI: http://data.ashrae.org/standard223#DC-48V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-48V a ns1:Class,
        ns1:DC-48V,
        sh:NodeShape ;
    rdfs:label "48 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-48V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 48 volt DC electricity.

: DC-48V Enumerations

| Enumeration |
|:-----------|
| `48V-24V-Neg-24V-Pos` |
| `48V-48V-Neg` |
| `48V-48V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

5 VDC electricity

URI: http://data.ashrae.org/standard223#DC-5V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-5V a ns1:Class,
        ns1:DC-5V,
        sh:NodeShape ;
    rdfs:label "5 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-5V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 5 volt DC electricity.

: DC-5V Enumerations

| Enumeration |
|:-----------|
| `5V-2.5V-Neg-2.5V-Pos` |
| `5V-5V-Neg` |
| `5V-5V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

6 VDC electricity

URI: http://data.ashrae.org/standard223#DC-6V


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-6V a ns1:Class,
        ns1:DC-6V,
        sh:NodeShape ;
    rdfs:label "6 VDC electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-6V ;
    rdfs:comment """This class and its enumerated subclasses represent all polarities of 6 volt DC electricity.

: DC-6V Enumerations

| Enumeration |
|:-----------|
| `6V-3V-Neg-3V-Pos` |
| `6V-6V-Neg` |
| `6V-6V-Pos` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

PoE electricity

URI: http://data.ashrae.org/standard223#DC-PoE


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns1:DC-PoE a ns1:Class,
        ns1:DC-PoE,
        sh:NodeShape ;
    rdfs:label "PoE electricity" ;
    ns1:hasDCDifferentialVoltage ns1:Voltage-PoE ;
    rdfs:comment """This class and its enumerated subclasses represent standardized types of PoE DC electricity.

: DC-PoE Enumerations

| Enumeration |
|:-----------|
| `PoE-802.3af-1` |
| `PoE-802.3at-2` |
| `PoE-802.3bt-3` |
| `PoE-802.3bt-4` |""" ;
    rdfs:subClassOf ns1:Electricity-DC .


        

Electrical signal

URI: http://data.ashrae.org/standard223#Electricity-Signal


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Electricity-Signal> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Electricity-Signal>,
        sh:NodeShape ;
    rdfs:label "Electrical signal" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Signal-WiredEthernet> <http://data.ashrae.org/standard223#Signal-Modulated> ) ;
    rdfs:comment """This class and its enumerated subclasses represent the use of electricity for creating communication signals, and common communication protocols.

: Electricity-Signal Enumerations

| Enumeration |
|:-----------|
| `Signal-EIA485` |
| `Signal-WiredEthernet` (see {s223:Signal-WiredEthernet}) |
| `Signal-IEC14908` |
| `Signal-Modulated` (see {s223:Signal-Modulated}) |
| `Signal-USB` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Constituent-Electricity> .


        

Wired Ethernet

URI: http://data.ashrae.org/standard223#Signal-WiredEthernet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Signal-WiredEthernet> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Signal-WiredEthernet>,
        sh:NodeShape ;
    rdfs:label "Wired Ethernet" ;
    rdfs:comment """This class and its enumerated subclasses represent common wired Ethernet communication protocols.

: Signal-WiredEthernet Enumerations

| Enumeration |
|:-----------|
| `WiredEthernet-10BASE-T` |
| `WiredEthernet-10BASE-T1L` |
| `WiredEthernet-10BASE-T1S` |
| `WiredEthernet-100BASE-T1` |
| `WiredEthernet-100BASE-TX` |
| `WiredEthernet-1000BASE-T` |
| `WiredEthernet-1000BASE-T1` |
| `WiredEthernet-2.5GBASE-T` |
| `WiredEthernet-2.5GBASE-T1` |
| `WiredEthernet-5GBASE-T` |
| `WiredEthernet-5GBASE-T1` |
| `WiredEthernet-10GBASE-T` |
| `WiredEthernet-10GBASE-T1` |
| `WiredEthernet-25GBASE-T` |
| `WiredEthernet-40GBASE-T` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Electricity-Signal> .


        

Modulated signal

URI: http://data.ashrae.org/standard223#Signal-Modulated


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Signal-Modulated> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Signal-Modulated>,
        sh:NodeShape ;
    rdfs:label "Modulated signal" ;
    rdfs:comment """This class and its enumerated subclasses represent common analog communication protocols.

: Signal-Modulated Enumerations

| Enumeration |
|:-----------|
| `Modulated-0-10V` |
| `Modulated-4-20mA` |
| `Modulated-Resistive` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Electricity-Signal> .


        

EM

URI: http://data.ashrae.org/standard223#Constituent-EM


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Constituent-EM> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Constituent-EM>,
        sh:NodeShape ;
    rdfs:label "EM" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#EM-Light> <http://data.ashrae.org/standard223#EM-RF> ) ;
    rdfs:comment """This class and its enumerated subclasses represent electromagnetic energy at commonly defined frequency ranges.

: Constituent-EM Enumerations

| Enumeration |
|:-----------|
| `EM-Light` (see {s223:EM-Light})|
| `EM-Microwave` |
| `EM-RF` (see {s223:EM-RF})|""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Constituent> .


        

Light

URI: http://data.ashrae.org/standard223#EM-Light


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EM-Light> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EM-Light>,
        sh:NodeShape ;
    rdfs:label "Light" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Light-Infrared> ) ;
    rdfs:comment """This class and its enumerated subclasses represent light at commonly defined frequency or wavelength ranges.

: EM-Light Enumerations

| Enumeration |
|:-----------|
| `Light-Infrared` (see {s223:Light-Infrared}) |
| `Light-Ultraviolet` |
| `Light-Visible` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Constituent-EM> .


        

Infrared light

URI: http://data.ashrae.org/standard223#Light-Infrared


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Light-Infrared> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Light-Infrared>,
        sh:NodeShape ;
    rdfs:label "Infrared light" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Infrared-Signal> ) ;
    rdfs:comment """ This class and its enumerated subclasses represent the use of electromagnetic energy in the infrared frequency range for multiple purposes, including communication signals.

  : Light-Infrared Enumerations

  | Enumeration |
  |:-----------|
  | `Infrared-Signal` (see {s223:Infrared-Signal}) |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EM-Light> .


        

Infrared signal

URI: http://data.ashrae.org/standard223#Infrared-Signal


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Infrared-Signal> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Infrared-Signal>,
        sh:NodeShape ;
    rdfs:label "Infrared signal" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Signal-FiberEthernet> ) ;
    rdfs:comment """ This class and its enumerated subclasses represent common infrared communication protocols.

: Infrared-Signal Enumerations

| Enumeration |
|:-----------|
| `Signal-FiberEthernet` (see {s223:Signal-FiberEthernet})|
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Light-Infrared> .


        

Fiber Ethernet

URI: http://data.ashrae.org/standard223#Signal-FiberEthernet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Signal-FiberEthernet> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Signal-FiberEthernet>,
        sh:NodeShape ;
    rdfs:label "Fiber Ethernet" ;
    rdfs:comment """This class and its enumerated subclasses represent common fiber Ethernet communication protocols.

: Signal-FiberEthernet Enumerations

| Enumeration |
|:-----------|
| `FiberEthernet-1X9` |
| `FiberEthernet-SFF` |
| `FiberEthernet-GBIC` |
| `FiberEthernet-SFP` |
| `FiberEthernet-300PIN` |
| `FiberEthernet-XENPAK` |
| `FiberEthernet-X2` |
| `FiberEthernet-XFP` |
| `FiberEthernet-SFP+` |
| `FiberEthernet-CFP` |
| `FiberEthernet-CFP+` |
| `FiberEthernet-QSFP` |
| `FiberEthernet-QSFP+` |
| `FiberEthernet-CFP` |
| `FiberEthernet-CFP2` |
| `FiberEthernet-CFP4` |
| `FiberEthernet-CXP` |
| `FiberEthernet-CPAK` |
| `FiberEthernet-QSFP28` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Infrared-Signal> .


        

RF

URI: http://data.ashrae.org/standard223#EM-RF


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EM-RF> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#EM-RF>,
        sh:NodeShape ;
    rdfs:label "RF" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#RF-Signal> ) ;
    rdfs:comment """
This class and its enumerated subclasses represent the use electromagnetic energy in the radio frequency range for multiple purposes, including communication signals.

: EM-RF Enumerations

| Enumeration |
|:-----------|
| `RF-Signal` |
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Constituent-EM> .


        

Radio frequency signal

URI: http://data.ashrae.org/standard223#RF-Signal


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#RF-Signal> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#RF-Signal>,
        sh:NodeShape ;
    rdfs:label "Radio frequency signal" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Signal-UHF> <http://data.ashrae.org/standard223#Signal-Wideband> ) ;
    rdfs:comment """This class and its enumerated subclasses represent the use of radio frequency for creating communication signals, and common communication protocols. The radio spectrum of frequencies (`RF-Signal`) is divided into bands (i.e., subclasses) with conventional names designated by the International Telecommunication Union (e.g., UHF for Ultra High Frequency).

: RF-Signal Enumerations

| Enumeration |
|:-----------|
| `Signal-ELF` |
| `Signal-SLF` |
| `Signal-ULF` |
| `Signal-VLF` |
| `Signal-LF` |
| `Signal-MF` |
| `Signal-HF` |
| `Signal-VHF` |
| `Signal-UHF` (see {s223:Signal-UHF}) |
| `Signal-SHF` |
| `Signal-EHF` |
| `Signal-THF` |
| `Signal-Wideband`  (see {s223:Signal-Wideband}) |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EM-RF> .


        

UHF

URI: http://data.ashrae.org/standard223#Signal-UHF


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Signal-UHF> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Signal-UHF>,
        sh:NodeShape ;
    rdfs:label "UHF" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#UHF-LicensedBand> <http://data.ashrae.org/standard223#UHF-ISMBand> ) ;
    rdfs:comment "RF Signal Ultra High Frequency 300 MHz to 3 GHz" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#RF-Signal> .


        

Licensed band

URI: http://data.ashrae.org/standard223#UHF-LicensedBand


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#UHF-LicensedBand> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#UHF-LicensedBand>,
        sh:NodeShape ;
    rdfs:label "Licensed band" ;
    rdfs:comment "This class represents communication protocols that use radio frequencies in licensed bands of the UHF spectrum." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Signal-UHF> .


        

ISM band

URI: http://data.ashrae.org/standard223#UHF-ISMBand


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#UHF-ISMBand> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#UHF-ISMBand>,
        sh:NodeShape ;
    rdfs:label "ISM band" ;
    rdfs:comment """This class and its enumerated subclasses represent communication protocols that use radio frequencies that are reserved internationally for license-free support of Industrial, Scientific, and Medical applications.

: UHF-ISMBand Enumerations

| Enumeration |
|:-----------|
| `ISMBand-BluetoothLE` |
| `ISMBand-IEEE802.11` |
| `ISMBand-IEEE802.15.4` |
| `ISMBand-RFID` |
| `ISMBand-NFC` |
| `ISMBand-LoRaWAN` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Signal-UHF> .


        

Wideband

URI: http://data.ashrae.org/standard223#Signal-Wideband


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Signal-Wideband> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Signal-Wideband>,
        sh:NodeShape ;
    rdfs:label "Wideband" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Wideband-CATV> <http://data.ashrae.org/standard223#Wideband-DOCSIS> ) ;
    rdfs:comment "Signal-Wideband" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#RF-Signal> .


        

CATV

URI: http://data.ashrae.org/standard223#Wideband-CATV


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Wideband-CATV> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Wideband-CATV>,
        sh:NodeShape ;
    rdfs:label "CATV" ;
    rdfs:comment "The Community Antenna Television communication protocol that is used to deliver cable TV service over `CoaxialCable` or `FiberOpticCable` communication networks." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Signal-Wideband> .


        

DOCSIS

URI: http://data.ashrae.org/standard223#Wideband-DOCSIS


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Wideband-DOCSIS> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Wideband-DOCSIS>,
        sh:NodeShape ;
    rdfs:label "DOCSIS" ;
    rdfs:comment "The global standard Data Over Cable Service Interface Specification communication protocol that is used to deliver high-speed internet service over `CoaxialCable` communication networks." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Signal-Wideband> .


        

NOX

URI: http://data.ashrae.org/standard223#Constituent-NOX


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Constituent-NOX> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Constituent-NOX>,
        sh:NodeShape ;
    rdfs:label "NOX" ;
    rdfs:comment """This class and its enumerated subclasses represent common Nitrogen Oxides (NOx).

: Constituent-NOX Enumerations

| Enumeration |
|:-----------|
| `NOX-NO` |
| `NOX-NO2` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Constituent> .


        

Refrigerant

URI: http://data.ashrae.org/standard223#Constituent-Refrigerant


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Constituent-Refrigerant> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Constituent-Refrigerant>,
        sh:NodeShape ;
    rdfs:label "Refrigerant" ;
    rdfs:comment """This class and its enumerated subclasses represent commonly used refrigerants. The composition of the refrigerants is defined in ASHRAE Standard 34 and ISO 817.

: Constituent-Refrigerant Enumerations

| Enumeration |
|:-----------|
| `Refrigerant-R-123` |
| `Refrigerant-R-1234yf` |
| `Refrigerant-R-1234ze` |
| `Refrigerant-R-134A` |
| `Refrigerant-R-22` |
| `Refrigerant-R-290` |
| `Refrigerant-R-32` |
| `Refrigerant-R-404A` |
| `Refrigerant-R-407A` |
| `Refrigerant-R-407C` |
| `Refrigerant-R-407F` |
| `Refrigerant-R-410A` |
| `Refrigerant-R-422A` |
| `Refrigerant-R-422C` |
| `Refrigerant-R-422D` |
| `Refrigerant-R-427A` |
| `Refrigerant-R-438A` |
| `Refrigerant-R-444A` |
| `Refrigerant-R-445A` |
| `Refrigerant-R-448A` |
| `Refrigerant-R-449A` |
| `Refrigerant-R-450A` |
| `Refrigerant-R-454A` |
| `Refrigerant-R-454C` |
| `Refrigerant-R-455A` |
| `Refrigerant-R-457A` |
| `Refrigerant-R-459B` |
| `Refrigerant-R-507` |
| `Refrigerant-R-513A` |
| `Refrigerant-R-516A` |
| `Refrigerant-R-600A` |
| `Refrigerant-R-717` |
| `Refrigerant-R-744` |
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Constituent> .


        

Mixed medium

URI: http://data.ashrae.org/standard223#Medium-Mix


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Medium-Mix> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Medium-Mix>,
        sh:NodeShape ;
    rdfs:label "Mixed medium" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Mix-Fluid> <http://data.ashrae.org/standard223#Mix-PowerAndSignal> ) ;
    rdfs:comment """
This class and its subclasses represent substances that are composed of constituents. The components of a `Medium-Mix` can be modeled using the relations `composedOf` and `ofConstituent`. See Figure 10-8a and Figure 10-8b.

Figure 10-8a shows `GlycolSolution-30Percent`, itself a subclass of
`Water-GlycolSolution`, `Fluid-Water`, and `Mix-Fluid`, with a _Water Concentration_
property referencing 70% `Constituent-H2O` by the relation `ofConstituent` and
a _Glycol Concentration_ property referencing 30% `Constituent-Glycol` also
by the relation `ofConstituent`.

Figure 10-8b shows `PowerAndSignal-PoE`, itself a subclass of `Mix-PowerAndSignal`,
composed of a _Power_ `Property` referencing `Electricity-DC` and a _Communications_
`Property` referencing `Signal-WiredEthernet`.

: Medium-Mix Enumerations

| Enumeration |
|:-----------|
| `Mix-Fluid` (see {s223:Mix-Fluid}) |
| `Mix-PowerAndSignal` (see {s223:Mix-PowerAndSignal}) |

![ ](figures/Figure_10-8_Substance.svg)
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:property [ rdfs:comment """If the relation `composedOf` is present, it shall associate a `Medium-Mix` with one or more Properties that
identify and characterize its constituents. The `Property` identifies the constituent using the relation `ofConstituent`. If appropriate, a
`QuantifiableProperty` may be used to also specify the amount of the constituent using the relations `qudt:hasQuantityKind`, `qudt:hasUnit`, and `hasValue`.
For example, see {s223:Water-GlycolSolution}.""" ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:path <http://data.ashrae.org/standard223#composedOf> ] .


        

Fluid mixture

URI: http://data.ashrae.org/standard223#Mix-Fluid


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Mix-Fluid> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Mix-Fluid>,
        sh:NodeShape ;
    rdfs:label "Fluid mixture" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Fluid-Water> ) ;
    rdfs:comment """This class and its enumerated subclasses represent substances that are commonly used to convey liquids or gases.

: Mix-Fluid Enumerations

| Enumeration |
|:-----------|
| `Fluid-Air` |
| `Fluid-NaturalGas` |
| `Fluid-Oil`  |
| `Fluid-Water` (see {s223:Fluid-Water}) |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Mix> .


        

Water

URI: http://data.ashrae.org/standard223#Fluid-Water


@prefix ns1: <http://sample.org/doc#> .
@prefix ns2: <http://data.ashrae.org/standard223#> .
@prefix ns3: <http://qudt.org/schema/qudt/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

ns2:Fluid-Water a ns2:Class,
        ns2:Fluid-Water,
        sh:NodeShape ;
    rdfs:label "Water" ;
    ns2:composedOf [ a ns2:QuantifiableProperty ;
            rdfs:label "H2O, i.e., pure water concentration" ;
            ns2:ofConstituent ns2:Constituent-H2O ;
            ns3:hasQuantityKind <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
            ns3:hasUnit <http://qudt.org/vocab/unit/PERCENT> ] ;
    ns1:subclauses ( ns2:Water-GlycolSolution ) ;
    rdfs:comment """This class and its enumerated subclasses represent water and aqueous solutions in various states.

: Fluid-Water Enumerations

| Enumeration |
|:-----------|
| `Water-ChilledWater` |
| `Water-GlycolSolution` (see {s223:Water-GlycolSolution}) |
| `Water-HotWater` |
| `Water-Steam` |""" ;
    rdfs:subClassOf ns2:Mix-Fluid .


        

Water-Glycol solution

URI: http://data.ashrae.org/standard223#Water-GlycolSolution


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix ns2: <http://qudt.org/schema/qudt/> .
@prefix ns3: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

ns1:Water-GlycolSolution a ns1:Class,
        ns1:Water-GlycolSolution,
        sh:NodeShape ;
    rdfs:label "Water-Glycol solution" ;
    ns1:composedOf [ a ns1:QuantifiableProperty ;
            rdfs:label "Unspecified" ;
            ns1:ofConstituent ns1:Constituent-H2O ;
            ns2:hasQuantityKind <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
            ns2:hasUnit <http://qudt.org/vocab/unit/PERCENT> ],
        [ a ns1:QuantifiableProperty ;
            rdfs:label "Unspecified" ;
            ns1:ofConstituent ns1:Constituent-Glycol ;
            ns2:hasQuantityKind <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
            ns2:hasUnit <http://qudt.org/vocab/unit/PERCENT> ] ;
    ns1:hasFreezingPoint [ a ns1:QuantifiableProperty ;
            rdfs:label "Freezing point" ;
            ns2:hasQuantityKind <http://qudt.org/vocab/quantitykind/Temperature> ] ;
    ns3:subclauses ( ns1:hasFreezingPoint ) ;
    rdfs:comment """This class and its enumerated subclasses represent common concentrations of water-glycol solution.

: Water-GlycolSolution Enumerations

| Enumeration |
|:-----------|
| `GlycolSolution-15Percent` |
| `GlycolSolution-30Percent` |""" ;
    rdfs:subClassOf ns1:Fluid-Water ;
    sh:property [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-H2O`." ;
            sh:path ns1:composedOf ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class ns1:QuantifiableProperty ;
                    sh:node [ sh:property [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-H2O`." ;
                                    sh:hasValue ns1:Constituent-H2O ;
                                    sh:path ns1:ofConstituent ],
                                [ rdfs:comment "The `QuantityKind` of the constituent shall be `VolumeFraction`." ;
                                    sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
                                    sh:path ns2:hasQuantityKind ] ] ] ],
        [ rdfs:comment "There shall be at least two QuantifiableProperties that characterize the constituents of a `Water-GlycolSolution`." ;
            sh:class ns1:QuantifiableProperty ;
            sh:minCount 2 ;
            sh:path ns1:composedOf ],
        [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-Glycol`." ;
            sh:path ns1:composedOf ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class ns1:QuantifiableProperty ;
                    sh:node [ sh:property [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-Glycol`." ;
                                    sh:hasValue ns1:Constituent-Glycol ;
                                    sh:path ns1:ofConstituent ],
                                [ rdfs:comment "The `QuantityKind` of the constituent shall be `VolumeFraction`." ;
                                    sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
                                    sh:path ns2:hasQuantityKind ] ] ] ],
        [ rdfs:comment "If the relation `hasFreezingPoint` is used, the object shall be a `QuantifiableProperty` with a `QuantityKind` of `Temperature`." ;
            sh:class ns1:QuantifiableProperty ;
            sh:message "s223: If the relation `hasFreezingPoint` is used, the object shall be a `QuantifiableProperty` with a `QuantityKind` of `Temperature`." ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                            sh:path ns2:hasQuantityKind ] ] ;
            sh:path ns1:hasFreezingPoint ] .


        

has freezing point

URI: http://data.ashrae.org/standard223#hasFreezingPoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasFreezingPoint> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has freezing point" ;
    rdfs:comment "The relation `hasFreezingPoint` is used to associate a freezing point with a glycol solution, but could be used with other Mediums as appropriate." .


        

Power and signal mixture

URI: http://data.ashrae.org/standard223#Mix-PowerAndSignal


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Mix-PowerAndSignal> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Mix-PowerAndSignal>,
        sh:NodeShape ;
    rdfs:label "Power and signal mixture" ;
    rdfs:comment """This class and its enumerated subclasses represent substances that are used to convey the combination of electrical power and electrical communication signals.

: Mix-PowerAndSignal Enumerations

| Enumeration |
|:-----------|
| `PowerAndSignal-PoE` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Medium-Mix> .


        

Particulate

URI: http://data.ashrae.org/standard223#Substance-Particulate


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Substance-Particulate> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Substance-Particulate>,
        sh:NodeShape ;
    rdfs:label "Particulate" ;
    rdfs:comment """This class and its enumerated subclasses represent common size thresholds of interest for particulate matter that is suspended in a
medium in a way that maintains the physical and chemical properties of the medium.

![Particulate Concentration](figures/Figure_x-y_Particulate_Concentration.svg)

Figure 10-9 shows an instance of a `Connection` with `hasMedium` referencing
`Fluid-Air` that has a `Property` _Particulate Concentration_ of particles with a
diameter of 2.5 micrometres (0.0025 mm) or smaller in units of micrograms per
cubic meter.

![Carbon Monoxide Concentration](figures/Figure_x-y_Medium_Concentration.svg)

Figure 10-10 shows an instance of a `Property` _CO Concentration_ with `ofSubstance`
referencing carbon monoxide `Constituent-CO` and `ofMedium` referencing `Fluid-Air`
measured in parts-per-million.  This figure also shows that the value of this
`Property` can be obtained by using the BACnet protocol via the external reference
to get the `present-value` of `analog-value,67` in the device with an instance
number `12345`.

: Substance-Particulate Enumerations

| Enumeration |
|:-----------|
| `Particulate-PM1.0` |
| `Particulate-PM10.0` |
| `Particulate-PM2.5` |
| `Particulate-Smoke` |""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Substance> .


        

Soot

URI: http://data.ashrae.org/standard223#Substance-Soot


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Substance-Soot> a <http://data.ashrae.org/standard223#Class>,
        <http://data.ashrae.org/standard223#Substance-Soot>,
        sh:NodeShape ;
    rdfs:label "Soot" ;
    rdfs:comment "Carbon particles resulting from the incomplete combustion of hydrocarbons. Soot is considered a hazardous substance with carcinogenic properties." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerationKind-Substance> .


        

pub:property_value

URI: pub:property_value


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:property_value> ns1:subclauses ( <http://data.ashrae.org/standard223#Property> <http://data.ashrae.org/standard223#ActuatableProperty> <http://data.ashrae.org/standard223#ObservableProperty> <http://data.ashrae.org/standard223#EnumerableProperty> <http://data.ashrae.org/standard223#QuantifiableProperty> <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> <http://data.ashrae.org/standard223#QuantifiableObservableProperty> <http://data.ashrae.org/standard223#EnumeratedObservableProperty> <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> <http://data.ashrae.org/standard223#hasValue> <http://qudt.org/schema/qudt/hasUnit> <http://qudt.org/schema/qudt/hasQuantityKind> <http://data.ashrae.org/standard223#hasAspect> <http://data.ashrae.org/standard223#ofSubstance> <http://data.ashrae.org/standard223#ofMedium> <http://data.ashrae.org/standard223#ofConstituent> <http://data.ashrae.org/standard223#composedOf> <http://data.ashrae.org/standard223#ExternalReference> <http://data.ashrae.org/standard223#hasExternalReference> <http://data.ashrae.org/standard223#hasInternalReference> <http://data.ashrae.org/standard223#isInternalReferenceOf> ) ;
    ns1:title "PROPERTIES AND VALUES" ;
    rdfs:comment "Things have properties, and properties have values." .


        

Property

URI: http://data.ashrae.org/standard223#Property


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Property> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Property" ;
    rdfs:comment """An attribute, quality, or characteristic of a feature of interest.

The `Property` class is the parent of all variations of a `Property`, which are:

- `ActuatableProperty`, a subclass of `Property` that can be modified by user or machine outside of the model (typically command);
- `ObservableProperty`, a subclass of `Property` that are observed (typically measures);
- `EnumerableProperty`, a subclass of `Property` defined by `EnumerationKind`; and
- `QuantifiableProperty`, a subclass of `Property` defined by numerical values.

And their subclass combinations:

- `QuantifiableActuatableProperty`,
- `QuantifiableObservableProperty`,
- `EnumeratedObservableProperty`, and
- `EnumeratedActuatableProperty`.

A `QuantifiableProperty` (or subclass thereof) shall always be associated with a `Unit` and a `QuantityKind`, either explicitly from the `Property`,
or through the associated Value. If the `Unit` is defined, the SHACL reasoner (if invoked) will figure out and assert a `QuantityKind` if it is
unambiguous.

Enumerable properties shall be associated with an `EnumerationKind`. Different flavors of properties are shown in Figure 11-1.

![Different flavors of Properties](figures/Figure_11-1_Flavors_of_Properties.svg)

A `Property` instance that is not an instance of one of the subclasses is unconstrained with respect to its value.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> ;
    sh:property [ rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasExternalReference` relation." ;
            sh:path <http://data.ashrae.org/standard223#hasInternalReference> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasExternalReference` relation." ;
                    sh:message "s223: {$this} cannot have both a `hasInternalReference` and a `hasExternalReference` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this
WHERE {
$this s223:hasInternalReference ?int .
$this s223:hasExternalReference ?ext .
}
""" ] ],
        [ rdfs:comment "If the relation `isInternalReferenceOf` is present, it shall associate the `Property` with at most one other `Property`." ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:message "s223: If the relation `isInternalReferenceOf` is present, it shall associate the `Property` with at most one other `Property`." ;
            sh:path <http://data.ashrae.org/standard223#isInternalReferenceOf> ],
        [ rdfs:comment "A `Property` must not have both a `hasExternalReference` and a `hasValue` relation." ;
            sh:path <http://data.ashrae.org/standard223#hasValue> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `Property` must not have both a `hasExternalReference` and a `hasValue` relation." ;
                    sh:message "s223: {$this} cannot have both a `hasExternalReference` and a `hasValue` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this
WHERE {
$this s223:hasExternalReference ?ext .
$this s223:hasValue ?val .
}
""" ] ],
        [ rdfs:comment "If the relation `hasInternalReference` is present, it shall associate the `Property` with at most one other `Property`." ;
            sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:maxCount 1 ;
            sh:message "s223: If the relation `hasInternalReference` is present, it shall associate the `Property` with at most one other `Property`." ;
            sh:path <http://data.ashrae.org/standard223#hasInternalReference> ],
        [ rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasValue` relation." ;
            sh:path <http://data.ashrae.org/standard223#hasInternalReference> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasValue` relation." ;
                    sh:message "s223: {$this} cannot have both a `hasInternalReference` and a `hasValue` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this
WHERE {
$this s223:hasInternalReference ?int .
$this s223:hasValue ?val .
}
""" ] ],
        [ rdfs:comment "A `Property` can use at most one relation `hasValue` if it is required to provide a static value in the model. It is not meant for real-time value (see {s223:hasExternalReference})." ;
            sh:maxCount 1 ;
            sh:message "s223: A `Property` can use at most one relation `hasValue` if it is required to provide a static value in the model. It is not meant for real-time value (see {s223:hasExternalReference})." ;
            sh:path <http://data.ashrae.org/standard223#hasValue> ],
        [ rdfs:comment "A `Property` must not be observed (set) by more than one entity." ;
            sh:maxCount 1 ;
            sh:message "s223: A `Property` must not be observed (set) by more than one entity." ;
            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] ],
        [ rdfs:comment "If the relation `hasExternalReference` is present, it shall associate the `Property` with an `ExternalReference`." ;
            sh:class <http://data.ashrae.org/standard223#ExternalReference> ;
            sh:message "s223: If the relation `hasExternalReference` is present, it shall associate the `Property` with an `ExternalReference`." ;
            sh:path <http://data.ashrae.org/standard223#hasExternalReference> ],
        [ rdfs:comment "" ;
            sh:path <http://data.ashrae.org/standard223#ofConstituent> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If an incoming relation `composedOf` exists, then the `Property` must have a declared substance using the relation `ofConstituent`." ;
                    sh:message "s223: `Property` {$this} is referred to by {?something} with s223:composedOf, but the `Property` has no value for s223:ofConstituent." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?something
WHERE {
?something s223:composedOf $this .
FILTER NOT EXISTS {$this s223:ofConstituent ?someSubstance} .
}
""" ] ],
        [ rdfs:comment "If a `Property` has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
            sh:path <http://data.ashrae.org/standard223#ofSubstance> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "If a `Property` has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
                    sh:message "s223: Since Property {$this} has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this
WHERE {
$this s223:ofSubstance ?substance .
FILTER NOT EXISTS {$this s223:ofMedium ?medium} .
}
""" ] ],
        [ rdfs:comment "A `Property` can be associated with at most one `Substance-Medium` using the relation `ofMedium`." ;
            sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Property` can be associated with at most one `Substance-Medium` using the relation `ofMedium`." ;
            sh:path <http://data.ashrae.org/standard223#ofMedium> ],
        [ rdfs:comment "A `Property` can be associated with at most one `Function` using the inverse relation `hasOutput`." ;
            sh:class <http://data.ashrae.org/standard223#Function> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Property` can be associated with at most one `Function` using the inverse relation `hasOutput`." ;
            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#hasOutput> ] ],
        [ rdfs:comment "A `Property` can be associated with at most one `EnumerationKind-Substance` using the relation `ofSubstance`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind-Substance> ;
            sh:maxCount 1 ;
            sh:message "s223: A `Property` can be associated with at most one `EnumerationKind-Substance` using the relation `ofSubstance`." ;
            sh:path <http://data.ashrae.org/standard223#ofSubstance> ],
        [ rdfs:comment "If the relation `hasAspect` is present, it shall associate the `Property` with an `EnumerationKind`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind> ;
            sh:message "s223: If the relation `hasAspect` is present, it shall associate the `Property` with an `EnumerationKind`." ;
            sh:path <http://data.ashrae.org/standard223#hasAspect> ] ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `Property` cannot be declared an instance of both an `ActuatableProperty` and an `ObservableProperty`." ;
            sh:message "s223: {$this} cannot be declared an instance of both an `ActuatableProperty` and an `ObservableProperty`." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
WHERE {
$this a/rdfs:subClassOf* s223:ActuatableProperty .
$this a/rdfs:subClassOf* s223:ObservableProperty .
}
""" ] .


        

Actuatable property

URI: http://data.ashrae.org/standard223#ActuatableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ActuatableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Actuatable property" ;
    rdfs:comment """The term "actuatable" implies that writing to the `ActuatableProperty` value will directly trigger a physical actuation by either an `Actuator` or `Equipment`.
In contrast, the term "observable" (see {s223:ObservableProperty}) implies that reading the `ObservableProperty` value will return the result of a physical observation.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Property> .


        

Observable property

URI: http://data.ashrae.org/standard223#ObservableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ObservableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Observable property" ;
    rdfs:comment """The term "observable" implies that reading the `ObservableProperty` value will return the result of a physical observation, usually by a `Sensor`.
In contrast, the term "actuatable" (see {s223:ActuatableProperty}) implies that writing to the `ActuatableProperty` value will directly trigger a physical actuation.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Property> ;
    sh:property [ rdfs:comment "An `ObservableProperty` is usually referred to by a `Sensor` using the relation `observes`." ;
            sh:class <http://data.ashrae.org/standard223#Sensor> ;
            sh:message "s223: An `ObservableProperty` is usually referred to by a `Sensor` using the relation `observes`." ;
            sh:minCount 1 ;
            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] ;
            sh:severity sh:Warning ] .


        

Enumerable property

URI: http://data.ashrae.org/standard223#EnumerableProperty


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EnumerableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Enumerable property" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#hasEnumerationKind> ) ;
    rdfs:comment "An `EnumerableProperty` is a `Property` with an enumerated (fixed) set of possible values." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Property> ;
    sh:property [ rdfs:comment "Checks for valid enumeration value consistent with the stated `EnumerationKind`." ;
            sh:path <http://data.ashrae.org/standard223#hasValue> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Checks for valid enumeration value consistent with the stated `EnumerationKind`." ;
                    sh:message "s223: {$this} has an enumeration value of {?value} which is not a valid {?kind}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?value ?kind
WHERE {
$this s223:hasValue ?value .
$this s223:hasEnumerationKind ?kind .
FILTER (NOT EXISTS {?value a/rdfs:subClassOf* ?kind}) .
}
""" ] ],
        [ rdfs:comment "An `EnumerableProperty` shall be associated with exactly one `EnumerationKind` using the relation `hasEnumerationKind`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerationKind> ;
            sh:maxCount 1 ;
            sh:message "s223: An `EnumerableProperty` shall be associated with exactly one `EnumerationKind` using the relation `hasEnumerationKind`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] .


        

has enumeration kind

URI: http://data.ashrae.org/standard223#hasEnumerationKind


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasEnumerationKind> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has enumeration kind" ;
    rdfs:comment "A `Relation` that associates an `EnumerableProperty` with a class of enumeration values. This is used to, for example, identify what kind of substance is transported along a `Connection` or which day of the week a setpoint is active." .


        

Quantifiable property

URI: http://data.ashrae.org/standard223#QuantifiableProperty


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#QuantifiableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Quantifiable property" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#hasAlarmStatus> <http://data.ashrae.org/standard223#hasDeadband> <http://data.ashrae.org/standard223#hasSetpoint> <http://data.ashrae.org/standard223#hasThreshold> ) ;
    rdfs:comment "This class is for quantifiable values that describe an object (`System`, `Equipment`, etc.) that are typically static (`hasValue`). That is, they are neither measured nor specified in the course of operations." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Property> ;
    sh:property [ rdfs:comment "This `QuantifiableProperty` and the Setpoint associated with it have non-commensurate `QuantityKind`s." ;
            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the Setpoint associated with it have non-commensurate `QuantityKind`s." ;
                    sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while Setpoint {?setpoint} uses `QuantityKind` {?sqk} with DimensionVector {?sdv}. These are non-commensurate" ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?setpoint ?pqk ?sqk ?pdv ?sdv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasQuantityKind ?sqk .
?pqk qudt:hasDimensionVector ?pdv .
?sqk qudt:hasDimensionVector ?sdv .
FILTER (?pqk != ?sqk) .
FILTER (?pdv != ?sdv) .
}
""" ] ],
        [ rdfs:comment "This `QuantifiableProperty` and the deadband associated with it have non-commensurate `QuantityKind`s." ;
            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the deadband associated with it have non-commensurate `QuantityKind`s." ;
                    sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while deadband {?deadband} uses `QuantityKind` {?dqk} with DimensionVector {?ddv}. These are non-commensurate" ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?deadband ?pqk ?dqk ?pdv ?ddv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasQuantityKind ?dqk .
?pqk qudt:hasDimensionVector ?pdv .
?dqk qudt:hasDimensionVector ?ddv .
FILTER (?pqk != ?dqk) .
FILTER (?pdv != ?ddv) .
}
""" ] ],
        [ rdfs:comment "This `QuantifiableProperty` and the associated deadband use non-commensurate `Unit`s." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the associated deadband use non-commensurate `Unit`s." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while deadband {?deadband} uses `Unit` {?dunit}. These are non-commensurate." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?deadband ?punit ?dunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasUnit ?dunit .
?punit qudt:hasDimensionVector ?pdv .
?dunit qudt:hasDimensionVector ?ddv .
FILTER (?punit != ?dunit) .
FILTER (?pdv != ?ddv) .
}
""" ] ],
        [ rdfs:comment "This `QuantifiableProperty` and the associated threshold use non-commensurate `Unit`s." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the associated threshold use non-commensurate `Unit`s." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while threshold {?threshold} uses `Unit` {?tunit}. These are non-commensurate." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?threshold ?punit ?tunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasUnit ?tunit .
?punit qudt:hasDimensionVector ?pdv .
?tunit qudt:hasDimensionVector ?tdv .
FILTER (?punit != ?tunit) .
FILTER (?pdv != ?tdv) .
}
""" ] ],
        [ rdfs:comment "This `QuantifiableProperty` cannot have a value without a `Unit`." ;
            sh:path <http://data.ashrae.org/standard223#hasValue> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` cannot have a value without a `Unit`." ;
                    sh:message "s223: {$this} referenced by {?subject} has a value of {?v} but does not specify a `Unit`." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?v ?subject
WHERE {
$this s223:hasValue ?v .
FILTER NOT EXISTS {$this qudt:hasUnit ?u} .
?subject ?p $this .
}
""" ] ],
        [ rdfs:comment "A `QuantifiableProperty` should use `s223:hasValue` instead of `qudt:value`." ;
            sh:maxCount 0 ;
            sh:message "s223: A `QuantifiableProperty` should use `s223:hasValue` instead of `qudt:value`." ;
            sh:path <http://qudt.org/schema/qudt/value> ],
        [ rdfs:comment "A `QuantifiableProperty` can be associated with at most one `Unit` using the relation `qudt:hasUnit`." ;
            sh:class <http://qudt.org/schema/qudt/Unit> ;
            sh:maxCount 1 ;
            sh:message "s223: A `QuantifiableProperty` can be associated with at most one `Unit` using the relation `qudt:hasUnit`." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ],
        [ rdfs:comment "A `QuantifiableProperty` can be associated with a`QuantifiableProperty` using the relation `hasThreshold`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:message "s223: A `QuantifiableProperty` can be associated with a`QuantifiableProperty` using the relation `hasThreshold`." ;
            sh:path <http://data.ashrae.org/standard223#hasThreshold> ],
        [ rdfs:comment """A `QuantifiableProperty` can be associated with an optional Boolean flag using the relation `qudt:isDeltaQuantity`.
If the relation `qudt:isDeltaQuantity` has a value of true, the associated value should be interpreted as a difference reading, such as a
temperature difference. This is needed to distinguish between a temperature reading and a temperature difference reading, which
affects unit conversion calculations.""" ;
            sh:datatype xsd:boolean ;
            sh:maxCount 1 ;
            sh:message """s223: A `QuantifiableProperty` can be associated with an optional Boolean flag using the relation `qudt:isDeltaQuantity`.
If the relation `qudt:isDeltaQuantity` has a value of true, the associated value should be interpreted as a difference reading, such as a
temperature difference. This is needed to distinguish between a temperature reading and a temperature difference reading, which
affects unit conversion calculations.""" ;
            sh:path <http://qudt.org/schema/qudt/isDeltaQuantity> ],
        [ rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the deadband associated with it." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:severity sh:Info ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the deadband associated with it." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while deadband {?deadband} uses `Unit` {?dunit}. Be careful." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?deadband ?punit ?dunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasUnit ?dunit .
?punit qudt:hasDimensionVector ?pdv .
?dunit qudt:hasDimensionVector ?ddv .
FILTER (?punit != ?dunit) .
FILTER (?pdv = ?ddv) .
}
""" ] ],
        [ rdfs:comment "A `QuantifiableProperty` can be associated with an `EnumerableProperty` using the relation `hasAlarmStatus`." ;
            sh:class <http://data.ashrae.org/standard223#EnumerableProperty> ;
            sh:message "s223: A `QuantifiableProperty` can be associated with an `EnumerableProperty` using the relation `hasAlarmStatus`." ;
            sh:path <http://data.ashrae.org/standard223#hasAlarmStatus> ],
        [ rdfs:comment "This `QuantifiableProperty` and the threshold associated with it have non-commensurate `QuantityKind`s." ;
            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the threshold associated with it have non-commensurate `QuantityKind`s." ;
                    sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while threshold {?threshold} uses `QuantityKind` {?tqk} with DimensionVector {?tdv}. These are non-commensurate" ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?threshold ?pqk ?sqk ?pdv ?sdv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasQuantityKind ?tqk .
?pqk qudt:hasDimensionVector ?pdv .
?tqk qudt:hasDimensionVector ?tdv .
FILTER (?pqk != ?tqk) .
FILTER (?pdv != ?tdv) .
}
""" ] ],
        [ rdfs:comment """Normally, a `QuantifiableProperty` is associated with a static decimal value using `hasValue`, along with a single
`Unit` and `QuantityKind`. However, in some cases, a `QuantifiableProperty` may instead be associated with a `QuantityValue` using the relation
`qudt:quantityValue`. This allows the `QuantityValue` to express multiple equivalent combinations of `Unit` and value.""" ;
            sh:class <http://qudt.org/schema/qudt/QuantityValue> ;
            sh:message """s223: Normally, a `QuantifiableProperty` is associated with a static decimal value using `hasValue`, along with a single
`Unit` and `QuantityKind`. However, in some cases, a `QuantifiableProperty` may instead be associated with a `QuantityValue` using the relation
`qudt:quantityValue`. This allows the `QuantityValue` to express multiple equivalent combinations of `Unit` and value.""" ;
            sh:path <http://qudt.org/schema/qudt/quantityValue> ],
        [ rdfs:comment "A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasSetpoint`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:message "s223: A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasSetpoint`." ;
            sh:path <http://data.ashrae.org/standard223#hasSetpoint> ],
        [ rdfs:comment "A `QuantifiableProperty` shall be associated with a `QuantityKind` using the relation `qudt:hasQuantityKind`." ;
            sh:class <http://qudt.org/schema/qudt/QuantityKind> ;
            sh:maxCount 1 ;
            sh:message "s223: A `QuantifiableProperty` shall be associated with a `QuantityKind` using the relation `qudt:hasQuantityKind`." ;
            sh:minCount 1 ;
            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ],
        [ rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the setpoint associated with it." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:severity sh:Info ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the setpoint associated with it." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while setpoint {?setpoint} uses `Unit` {?sunit}. Be careful." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?setpoint ?punit ?sunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasUnit ?sunit .
?punit qudt:hasDimensionVector ?pdv .
?sunit qudt:hasDimensionVector ?sdv .
FILTER (?punit != ?sunit) .
FILTER (?pdv = ?sdv) .
}
""" ] ],
        [ rdfs:comment "A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasDeadband`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:message "s223: A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasDeadband`." ;
            sh:path <http://data.ashrae.org/standard223#hasDeadband> ],
        [ rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the threshold associated with it." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:severity sh:Info ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the threshold associated with it." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while threshold {?threshold} uses `Unit` {?tunit}. Be careful." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?threshold ?punit ?tunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasUnit ?tunit .
?punit qudt:hasDimensionVector ?pdv .
?tunit qudt:hasDimensionVector ?tdv .
FILTER (?punit != ?tunit) .
FILTER (?pdv = ?tdv) .
}
""" ] ],
        [ rdfs:comment "This `QuantifiableProperty` and the associated setpoint use non-commensurate `Unit`s." ;
            sh:path <http://qudt.org/schema/qudt/hasUnit> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "This `QuantifiableProperty` and the associated setpoint use non-commensurate `Unit`s." ;
                    sh:message "s223: {$this} uses `Unit` {?punit}, while setpoint {?setpoint} uses `Unit` {?sunit}. These are non-commensurate." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this ?setpoint ?punit ?sunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasUnit ?sunit .
?punit qudt:hasDimensionVector ?pdv .
?sunit qudt:hasDimensionVector ?sdv .
FILTER (?punit != ?sunit) .
FILTER (?pdv != ?sdv) .
}
""" ] ] ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Checks for consistent dimension vectors for a `QuantityKind` and the `Unit`" ;
            sh:message "s223: Inconsistent dimensionalities among the `Property`'s `Unit` and `Property`'s `QuantityKind`" ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
   WHERE
{
      $this qudt:hasQuantityKind/qudt:hasDimensionVector ?qkdv1 .
      $this qudt:hasUnit/qudt:hasDimensionVector ?qkdv2 .
FILTER (?qkdv1 != ?qkdv2) .
}
""" ] .


        

has alarm status

URI: http://data.ashrae.org/standard223#hasAlarmStatus


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasAlarmStatus> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has alarm status" ;
    rdfs:comment "A `Relation` that associates an `EnumerableProperty` that describes an Alarm or Status with a `QuantifiableProperty`." .


        

has deadband

URI: http://data.ashrae.org/standard223#hasDeadband


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasDeadband> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has deadband" ;
    rdfs:comment "This relation binds a control setpoint to the `QuantifiableProperty` indicating the range of values within which a sensed variable can vary without indicating a condition has changed." .


        

has setpoint

URI: http://data.ashrae.org/standard223#hasSetpoint


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasSetpoint> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has setpoint" ;
    rdfs:comment "A `Relation` that associates a control setpoint with the `QuantifiableProperty` indicating the desired value which the control process is trying to maintain." .


        

has threshold

URI: http://data.ashrae.org/standard223#hasThreshold


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasThreshold> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has threshold" ;
    rdfs:comment "A `Relation` that associates a threshold with the `QuantifiableProperty` indicating a specific value at which an action may be taken, distinguished from an offset or a range." .


        

Quantifiable actuatable property

URI: http://data.ashrae.org/standard223#QuantifiableActuatableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#QuantifiableActuatableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Quantifiable actuatable property" ;
    rdfs:comment "This class is for instances of `QuantifiableProperty` for which numerical values are specified to be modifiable by a user or a machine outside of the model, like a setpoint." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ActuatableProperty>,
        <http://data.ashrae.org/standard223#QuantifiableProperty> .


        

Quantifiable observable property

URI: http://data.ashrae.org/standard223#QuantifiableObservableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#QuantifiableObservableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Quantifiable observable property" ;
    rdfs:comment "This class is for instances of `QuantifiableProperty` for which numerical values are observed, like a temperature reading or a voltage measure." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ObservableProperty>,
        <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:property [ rdfs:comment "A `QuantifiableObservableProperty` can be associated with zero or more `QuantifiableProperty`(s) indicating the desired value(s) which the control process is trying to maintain using the relation `hasSetpoint`." ;
            sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:message "s223: A `QuantifiableObservableProperty` can be associated with zero or more `QuantifiableProperty`(s) indicating the desired value(s) which the control process is trying to maintain using the relation `hasSetpoint`." ;
            sh:path <http://data.ashrae.org/standard223#hasSetpoint> ] .


        

Enumerated observable property

URI: http://data.ashrae.org/standard223#EnumeratedObservableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumeratedObservableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Enumerated observable property" ;
    rdfs:comment "An `EnumeratedObservableProperty` is a `Property` with an enumerated (fixed) set of possible values that cannot be changed (can only be observed)." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#EnumerableProperty>,
        <http://data.ashrae.org/standard223#ObservableProperty> .


        

Enumerated actuatable property

URI: http://data.ashrae.org/standard223#EnumeratedActuatableProperty


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#EnumeratedActuatableProperty> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Enumerated actuatable property" ;
    rdfs:comment "An `EnumeratedActuatableProperty` is a `Property` with an enumerated (fixed) set of possible values that can be changed (actuated)." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ActuatableProperty>,
        <http://data.ashrae.org/standard223#EnumerableProperty> .


        

has value

URI: http://data.ashrae.org/standard223#hasValue


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasValue> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has value" ;
    rdfs:comment "A `Relation` that associates something with a fixed value, as opposed to a computed, measured, or externally derived value." .


        

qudt:hasUnit

URI: http://qudt.org/schema/qudt/hasUnit


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://qudt.org/schema/qudt/hasUnit> rdfs:comment "A reference to the unit of measure of a `QuantifiableProperty` of interest, such as `DEG_C`." .


        

qudt:hasQuantityKind

URI: http://qudt.org/schema/qudt/hasQuantityKind


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://qudt.org/schema/qudt/hasQuantityKind> rdfs:comment "A reference to the `QuantityKind` of a `QuantifiableProperty` of interest, such as `Temperature`." .


        

has aspect

URI: http://data.ashrae.org/standard223#hasAspect


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasAspect> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has aspect" ;
    rdfs:comment "`hasAspect` is used to establish the context of a `Property`. The value must be an instance of `EnumerationKind`. For example, if a `Property` has a Temperature value of 45.3, the `hasAspect` relation is used to state what that represents, such as a Temperature limit during working hours, etc. A `Property` can have any number of `hasAspect` relations as needed to establish the context." .


        

of substance

URI: http://data.ashrae.org/standard223#ofSubstance


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#ofSubstance> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "of substance" ;
    rdfs:comment "A `Relation` that associates a `Property` being observed by a `Sensor` with the `EnumerationKind-Substance` it characterizes within a specific `Substance-Medium`. For example, to denote the concentration of a `EnumerationKind-Substance` in a `Substance-Medium`, `ofSubstance` is used. Typically, there is also an `ofMedium` relation between the observed `Property` and the `Substance-Medium`, (see Figures 10-9 and 10-10). For example, to represent the concentration of CO2 in air, we use `ofSubstance` to relate to CO2 and `ofMedium` to relate to air. The term `ofSubstance` is broad enough to include situations where a sensor is used to detect constituents that should not be present in a medium, such as ammonia in air. Therefore, `ofSubstance` is used to indicate the substance of interest, while `ofConstituent` would indicate a constituent that is normally present in the composition of the mix." .


        

of medium

URI: http://data.ashrae.org/standard223#ofMedium


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#ofMedium> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "of medium" ;
    rdfs:comment "A `Relation` that associates a `Property` with the specific Medium it describes. A `Property` corresponding to the temperature of a medium would be associated with this medium using the relation `ofMedium`." .


        

of constituent

URI: http://data.ashrae.org/standard223#ofConstituent


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#ofConstituent> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "of constituent" ;
    rdfs:comment "A `Relation` that associates a `Property` that characterizes a `Medium-Mix` with one of the constituents of that mix. (e.g., `Fluid-Water` `composedOf` `Property` `ofConstituent` `Constituent-H2O`." .


        

composed of

URI: http://data.ashrae.org/standard223#composedOf


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#composedOf> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "composed of" ;
    rdfs:comment "The relation `composedOf` is used to indicate what substances constitute a material. Allowable values are instances of `Property` that in turn identify constituents defined in `Medium-Constituent` (see {s223:Medium-Constituent}) via the relation `ofConstituent`." .


        

External reference

URI: http://data.ashrae.org/standard223#ExternalReference


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ExternalReference> a <http://data.ashrae.org/standard223#AbstractClass>,
        sh:NodeShape ;
    rdfs:label "External reference" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#BACnetExternalReference> ) ;
    rdfs:comment "`ExternalReference` is an abstract class that represents a thing that contains API or protocol parameter values necessary to associate a `Property` with a value." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Concept> .


        

BACnet external reference

URI: http://data.ashrae.org/standard223#BACnetExternalReference


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#BACnetExternalReference> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "BACnet external reference" ;
    ns1:subclauses ( <http://data.ashrae.org/bacnet/2020#device-name> <http://data.ashrae.org/bacnet/2020#device-identifier> <http://data.ashrae.org/bacnet/2020#object-name> <http://data.ashrae.org/bacnet/2020#object-identifier> <http://data.ashrae.org/bacnet/2020#property-identifier> <http://data.ashrae.org/bacnet/2020#property-array-index> <http://data.ashrae.org/bacnet/2020#priority-for-writing> ) ;
    rdfs:comment "An `ExternalReference` that contains BACnet protocol parameter values necessary to associate a `Property` with a value." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ExternalReference> .


        

Device name

URI: http://data.ashrae.org/bacnet/2020#device-name


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#device-name> a rdf:Property ;
    rdfs:label "Device name" ;
    rdfs:comment "The name of the BACnet device being referenced, more formally the Object_Name property of the device object within the BACnet device.  See ASHRAE 135-2024 Clause 12.11.2." .


        

Device identifier

URI: http://data.ashrae.org/bacnet/2020#device-identifier


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#device-identifier> a rdf:Property ;
    rdfs:label "Device identifier" ;
    rdfs:comment "The Object_Identifier property of the device object within the BACnet device.  See ASHRAE 135-2024 Clause 12.11.1." .


        

Object name

URI: http://data.ashrae.org/bacnet/2020#object-name


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#object-name> a rdf:Property ;
    rdfs:label "Object name" ;
    rdfs:comment "The Object_Name property of the object being referenced.  For example, for the object name of an Analog Value Object, see ASHRAE 135-2024 Clause 12.4.2." .


        

Object identifier

URI: http://data.ashrae.org/bacnet/2020#object-identifier


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#object-identifier> a rdf:Property ;
    rdfs:label "Object identifier" ;
    rdfs:comment "The Object_Identifier property of the object being referenced.  For example, for the object identifier of an Analog Value Object, see ASHRAE 135-2024 Clause 12.4.1." .


        

Property identifier

URI: http://data.ashrae.org/bacnet/2020#property-identifier


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#property-identifier> a rdf:Property ;
    rdfs:label "Property identifier" ;
    rdfs:comment "The Object_Identifier `Property` of the object being referenced.  For example, for the object identifier of an Analog Value Object, see ASHRAE 135-2024 Clause 12.4.1." .


        

Property array index

URI: http://data.ashrae.org/bacnet/2020#property-array-index


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#property-array-index> a rdf:Property ;
    rdfs:label "Property array index" ;
    rdfs:comment """If the property identified is of datatype array, this optional property of type Unsigned shall indicate the array index of
the element of the `Property` referenced by the ReadProperty service or the Read Access Specification of the ReadPropertyMultiple service. If the bacnet:property-array-index is omitted, this shall mean that the entire
array shall be referenced.  See ASHRAE 135-2024 Clause 15.5.1.1.3 and Clause 15.7.1.1.1.""" .


        

Priority for writing

URI: http://data.ashrae.org/bacnet/2020#priority-for-writing


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/bacnet/2020#priority-for-writing> a rdf:Property ;
    rdfs:label "Priority for writing" ;
    rdfs:comment """This parameter shall be an integer in the range 1..16, which indicates the priority assigned to the WriteProperty service. If an attempt
is made to write to a commandable property without specifying the bacnet:priority-for-writing, a default priority of 16 (the lowest priority) shall
be assumed. If an attempt is made to write to a property that is not commandable with a specified priority, the priority shall be
ignored.  See ASHRAE 135-2024 Clause 15.9.1.1.5.""" .


        

has external reference

URI: http://data.ashrae.org/standard223#hasExternalReference


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://data.ashrae.org/standard223#hasExternalReference> a <http://data.ashrae.org/standard223#Relation>,
        rdf:Property ;
    rdfs:label "has external reference" ;
    rdfs:comment "A `Relation` that associates a `Property` with an external telemetry source." .


        

has internal reference

URI: http://data.ashrae.org/standard223#hasInternalReference


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:hasInternalReference a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "has internal reference" ;
    ns1:inverseOf ns1:isInternalReferenceOf ;
    rdfs:comment """A `Relation` that associates a `Property` with another equivalent `Property`. For example, a `Property` that represents a `Zone`
temperature could have at most one `hasInternalReference` relation to another `Property` that is a temperature measurement from one room in the zone (see Figure 11-2).

![Zone Internal Reference.](figures/Figure_11-2_Zone_Internal_Reference.svg)

Another use of `hasInternalReference` is to make a `Property` of a piece of equipment
visible as a `Property` of a piece of containing equipment.
This is illustrated in Figure 11-3.

![Equipment Containment.](figures/Figure_11-3_Equipment_Contains_3.svg)

Note that the hasInternalReference relation is transitive.""" .


        

is internal reference of

URI: http://data.ashrae.org/standard223#isInternalReferenceOf


@prefix ns1: <http://data.ashrae.org/standard223#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ns1:isInternalReferenceOf a ns1:RelationWithInverse,
        rdf:Property ;
    rdfs:label "is internal reference of" ;
    ns1:inverseOf ns1:hasInternalReference ;
    rdfs:comment "The inverse of the relation `hasInternalReference` (see {s223:hasInternalReference})." .


        

pub:reference-equipment-models

URI: pub:reference-equipment-models


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:reference-equipment-models> ns1:subclauses ( <http://data.ashrae.org/standard223#AirHandlingUnit> <http://data.ashrae.org/standard223#AirHeatExchanger> <http://data.ashrae.org/standard223#Battery> <http://data.ashrae.org/standard223#Boiler> <http://data.ashrae.org/standard223#ChilledBeam> <http://data.ashrae.org/standard223#Chiller> <http://data.ashrae.org/standard223#ClothesWasher> <http://data.ashrae.org/standard223#CoffeeMaker> <http://data.ashrae.org/standard223#Coil> <http://data.ashrae.org/standard223#Compressor> <http://data.ashrae.org/standard223#Computer> <http://data.ashrae.org/standard223#ComputerPrinter> <http://data.ashrae.org/standard223#CoolingTower> <http://data.ashrae.org/standard223#CopyMachine> <http://data.ashrae.org/standard223#Damper> <http://data.ashrae.org/standard223#Dishwasher> <http://data.ashrae.org/standard223#Door> <http://data.ashrae.org/standard223#ElectricityBreaker> <http://data.ashrae.org/standard223#ElectricClothesDryer> <http://data.ashrae.org/standard223#ElectricCooktop> <http://data.ashrae.org/standard223#ElectricEnergyConverter> <http://data.ashrae.org/standard223#ElectricityMeter> <http://data.ashrae.org/standard223#ElectricityOutlet> <http://data.ashrae.org/standard223#ElectricOven> <http://data.ashrae.org/standard223#ElectricResistanceElement> <http://data.ashrae.org/standard223#ElectricWaterDispenser> <http://data.ashrae.org/standard223#ElectronicDisplay> <http://data.ashrae.org/standard223#Elevator> <http://data.ashrae.org/standard223#Escalator> <http://data.ashrae.org/standard223#EthernetSwitch> <http://data.ashrae.org/standard223#EthernetPort> <http://data.ashrae.org/standard223#Fan> <http://data.ashrae.org/standard223#FanCoilUnit> <http://data.ashrae.org/standard223#FiberEthernetOutlet> <http://data.ashrae.org/standard223#Filter> <http://data.ashrae.org/standard223#FlushToilet> <http://data.ashrae.org/standard223#Freezer> <http://data.ashrae.org/standard223#FumeHood> <http://data.ashrae.org/standard223#Furnace> <http://data.ashrae.org/standard223#Generator> <http://data.ashrae.org/standard223#HeatPump> <http://data.ashrae.org/standard223#Humidifier> <http://data.ashrae.org/standard223#Humidistat> <http://data.ashrae.org/standard223#HydronicHeatExchanger> <http://data.ashrae.org/standard223#IceMaker> <http://data.ashrae.org/standard223#Luminaire> <http://data.ashrae.org/standard223#MicrowaveOven> <http://data.ashrae.org/standard223#Motor> <http://data.ashrae.org/standard223#PhotovoltaicModule> <http://data.ashrae.org/standard223#PowerOverEthernetSwitch> <http://data.ashrae.org/standard223#PowerOverEthernetPort> <http://data.ashrae.org/standard223#Pump> <http://data.ashrae.org/standard223#RadiantHeater> <http://data.ashrae.org/standard223#Radiator> <http://data.ashrae.org/standard223#Refrigerator> <http://data.ashrae.org/standard223#RFOutlet> <http://data.ashrae.org/standard223#Sink> <http://data.ashrae.org/standard223#SolarThermalCollector> <http://data.ashrae.org/standard223#SteamInjector> <http://data.ashrae.org/standard223#TerminalUnit> <http://data.ashrae.org/standard223#ThermalEnergyStorageUnit> <http://data.ashrae.org/standard223#Thermostat> <http://data.ashrae.org/standard223#Turbine> <http://data.ashrae.org/standard223#USBOutlet> <http://data.ashrae.org/standard223#Valve> <http://data.ashrae.org/standard223#VariableFrequencyDrive> <http://data.ashrae.org/standard223#WaterOutlet> <http://data.ashrae.org/standard223#Window> <http://data.ashrae.org/standard223#WindowShade> <http://data.ashrae.org/standard223#WiredEthernetOutlet> ) ;
    ns1:title "REFERENCE FOR EQUIPMENT" ;
    rdfs:comment "This section contains component model templates for equipment that is commonly found in buildings." .


        

Air handling unit

URI: http://data.ashrae.org/standard223#AirHandlingUnit


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#AirHandlingUnit> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Air handling unit" ;
    rdfs:comment """A piece of `Equipment` consisting of a fan or fans and other equipment necessary to perform one or more of the following functions:
circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `AirHandlingUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: An `AirHandlingUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `AirHandlingUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: An `AirHandlingUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Air heat exchanger

URI: http://data.ashrae.org/standard223#AirHeatExchanger


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#AirHeatExchanger> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Air heat exchanger" ;
    rdfs:comment "A piece of `Equipment` that transfers heat from one air stream to another while keeping the two media separate." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `AirHeatExchanger` shall have at least two air inlets, each paired with an outlet." ;
            sh:message "s223: An `AirHeatExchanger` shall have at least two air inlets, each paired with an outlet." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                                [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
            sh:message "s223: An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 0 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:message "s223: An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ] ],
        [ rdfs:comment "An `AirHeatExchanger` shall have at least two air outlets, each paired with an inlet." ;
            sh:message "s223: An `AirHeatExchanger` shall have at least two air outlets, each paired with an inlet." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                                [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Battery

URI: http://data.ashrae.org/standard223#Battery


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Battery> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Battery" ;
    rdfs:comment "A piece of `Equipment` that stores a defined amount of chemical energy that can be converted to electrical energy via a chemical process. This process, typically referred to as discharging, produces a specific electrical voltage and current." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Boiler

URI: http://data.ashrae.org/standard223#Boiler


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Boiler> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Boiler" ;
    rdfs:comment "A piece of `Equipment` that uses fuel or electricity to heat water or other fluids and supply steam or hot water for heating, humidification, or other applications." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Boiler` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Boiler` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Boiler` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Boiler` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Chilled beam

URI: http://data.ashrae.org/standard223#ChilledBeam


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ChilledBeam> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Chilled beam" ;
    rdfs:comment "A piece of `Equipment` with a colder surface temperature where air passes through, and air movement is induced in the room to achieve cooling. Cooling medium is generally water." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ChilledBeam` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `ChilledBeam` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `ChilledBeam` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
            sh:message "s223: A `ChilledBeam` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `ChilledBeam` shall be associated with the `Role-Cooling` using the relation `hasRole`" ;
            sh:message "s223: A `ChilledBeam` shall be associated with the `Role-Cooling` using the relation `hasRole`" ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Cooling> ] ],
        [ rdfs:comment "A `ChilledBeam` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `ChilledBeam` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Chiller

URI: http://data.ashrae.org/standard223#Chiller


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Chiller> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Chiller" ;
    rdfs:comment "A piece of `Equipment` that removes heat from a liquid coolant via a vapor-compression, adsorption refrigeration, or absorption refrigeration cycles." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Chiller` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Chiller` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Chiller` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Chiller` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Clothes washer

URI: http://data.ashrae.org/standard223#ClothesWasher


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ClothesWasher> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Clothes washer" ;
    rdfs:comment "A piece of `Equipment` that automatically cleans a load of textiles (e.g., clothing, bedding)." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ClothesWasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ClothesWasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `ClothesWasher` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `ClothesWasher` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `ClothesWasher` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `ClothesWasher` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Coffee maker

URI: http://data.ashrae.org/standard223#CoffeeMaker


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CoffeeMaker> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Coffee maker" ;
    rdfs:comment "A piece of `Equipment` that automatically brews coffee." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `CoffeeMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `CoffeeMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Coil

URI: http://data.ashrae.org/standard223#Coil


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Coil> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Coil" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#CoolingCoil> <http://data.ashrae.org/standard223#HeatingCoil> ) ;
    rdfs:comment """A piece of `Equipment` consisting of a pipe or tube that is formed into a helical or serpentine shape, may or may not be finned, and is used in cooling or heating equipment.

A `Coil` shall conform to exactly one of the following patterns:

- **Pattern 1:**
  - The `Coil` has exactly two inlet connection points using the medium `Mix-Fluid`, with exactly one being `Fluid-Air`.
  - The `Coil` has exactly two outlet connection points using the medium `Mix-Fluid`, with exactly one being `Fluid-Air`.

- **Pattern 2:**
  - The Coil has exactly one inlet connection point using the medium `Mix-Fluid`.
  - The Coil has exactly one outlet connection point using the medium `Mix-Fluid`.
  - The Coil has one or two bidirectional connection points using the medium `Mix-Fluid` or `Medium-ThermalContact`.

- **Pattern 3:**
  - The Coil has exactly three bidirectional connection points using the medium `Mix-Fluid` or `Medium-ThermalContact`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:message "s223: A `Coil` shall fit one of the following patterns of `ConnectionPoint`s: 1: Two inlets and two outlets using the medium `Mix-Fluid`. 2: One inlet and one outlet using the medium `Mix-Fluid`, and one or two bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`. 3: Three bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`." ;
    sh:xone ( [ sh:property [ rdfs:comment "Pattern 1: For one of the two inlets the Fluid is Air." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 1: For one of the two outlets the Fluid is Air." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 1: A `Coil` shall have two inlets using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 2 ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 1: A `Coil` shall have two outlets using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 2 ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] [ sh:property [ rdfs:comment "Pattern 2: A `Coil` shall have one inlet using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 2: A `Coil` shall have one outlet using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 2: A `Coil` shall have one or two bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 2 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                                sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ] [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ] ) ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "Pattern 3: A `Coil` shall have three bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 3 ;
                        sh:qualifiedMinCount 3 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                                sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ] [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ] ) ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] ) .


        

Cooling coil

URI: http://data.ashrae.org/standard223#CoolingCoil


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CoolingCoil> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Cooling coil" ;
    rdfs:comment "A `Coil` that is specifically used to cool air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Coil> ;
    sh:property [ rdfs:comment "A cooling coil shall be related to the role '`Role-Cooling`' using the relation '`hasRole`'." ;
            sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ;
            sh:message "s223: A cooling coil shall be related to the role '`Role-Cooling`' using the relation '`hasRole`'." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ] .


        

Heating coil

URI: http://data.ashrae.org/standard223#HeatingCoil


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#HeatingCoil> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Heating coil" ;
    rdfs:comment "A `Coil` that is specifically used to heat air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Coil> ;
    sh:property [ rdfs:comment "A heating coil shall be related to the role '`Role-Heating`' using the relation '`hasRole`'." ;
            sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ;
            sh:message "s223: A heating coil shall be related to the role '`Role-Heating`' using the relation '`hasRole`'." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ] .


        

Compressor

URI: http://data.ashrae.org/standard223#Compressor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Compressor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Compressor" ;
    rdfs:comment "A piece of `Equipment` that mechanically increases the pressure of a gas." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Compressor` shall have at least one inlet." ;
            sh:message "s223: A `Compressor` shall have at least one inlet." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] ],
        [ rdfs:comment "A `Compressor` shall have at least one outlet." ;
            sh:message "s223: A `Compressor` shall have at least one outlet." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] ] .


        

Computer

URI: http://data.ashrae.org/standard223#Computer


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Computer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Computer" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#PersonalComputer> <http://data.ashrae.org/standard223#ServerComputer> ) ;
    rdfs:comment """A piece of `Equipment` that can be programmed to automatically carry out sequences of arithmetic or logical operations (computation).
Modern digital electronic computers can perform generic sets of operations known as programs. These programs enable computers to perform a
wide range of tasks.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Computer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Computer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Personal computer

URI: http://data.ashrae.org/standard223#PersonalComputer


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#PersonalComputer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Personal computer" ;
    rdfs:comment "A `Computer` designed primarily used by a single person." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Computer> ;
    sh:property [ rdfs:comment "A `PersonalComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `PersonalComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Server computer

URI: http://data.ashrae.org/standard223#ServerComputer


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ServerComputer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Server computer" ;
    rdfs:comment "A `Computer` that is primarily used by multiple people, or for the execution of tasks not directly coupled to human interaction." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Computer> ;
    sh:property [ rdfs:comment "A `ServerComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ServerComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Computer printer

URI: http://data.ashrae.org/standard223#ComputerPrinter


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ComputerPrinter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Computer printer" ;
    rdfs:comment "A piece of `Equipment` that processes an input electrical or RF signal, typically from a `Computer`, and outputs a durable representation of information, typically text and/or graphics, typically on paper." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ComputerPrinter` shall have at least one inlet using the medium `Electricity-Signal` or `EM-RF`." ;
            sh:message "s223: A `ComputerPrinter` shall have at least one inlet using the medium `Electricity-Signal` or `EM-RF`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Electricity-Signal> ] [ sh:class <http://data.ashrae.org/standard223#EM-RF> ] ) ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `ComputerPrinter` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ComputerPrinter` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Cooling tower

URI: http://data.ashrae.org/standard223#CoolingTower


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CoolingTower> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Cooling tower" ;
    rdfs:comment "A piece of `Equipment` that uses atmospheric air to cool warm water, generally by direct contact via evaporation." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `CoolingTower` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `CoolingTower` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `CoolingTower` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `CoolingTower` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Copy machine

URI: http://data.ashrae.org/standard223#CopyMachine


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#CopyMachine> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Copy machine" ;
    rdfs:comment "A piece of `Equipment` that processes an input of one or more durable representation(s) of information, typically text and/or graphics and typically on paper, and outputs one or more reproductions of the information for each input, typically on paper." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `CopyMachine` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `CopyMachine` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Damper

URI: http://data.ashrae.org/standard223#Damper


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Damper> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Damper" ;
    rdfs:comment "A piece of `Equipment` inserted into an air distribution system permitting modification of the air resistance of the system and consequently changing the airflow rate or shutting off the airflow." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Damper` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Damper` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Damper` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Damper` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Dishwasher

URI: http://data.ashrae.org/standard223#Dishwasher


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Dishwasher> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Dishwasher" ;
    rdfs:comment "A piece of `Equipment` that automatically cleans dishware, cookware, and cutlery." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Dishwasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Dishwasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Dishwasher` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Dishwasher` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Dishwasher` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Dishwasher` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Door

URI: http://data.ashrae.org/standard223#Door


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Door> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Door" ;
    rdfs:comment "A piece of `Equipment` consisting of hinged, sliding, or revolving barrier at the entrance to a building or room." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Door` shall have at least two bidirectional connection points using the medium `Fluid-Air`." ;
            sh:message "s223: A `Door` shall have at least two bidirectional connection points using the medium `Fluid-Air`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electricity breaker

URI: http://data.ashrae.org/standard223#ElectricityBreaker


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricityBreaker> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electricity breaker" ;
    rdfs:comment "A piece of equipment that automatically opens an electric circuit automatically at a predetermined overcurrent, so as to prevent damage to the circuit, the equipment connected to the circuit, and the building containing the circuit." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `ElectricityBreaker` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricityBreaker` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `ElectricityBreaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricityBreaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric clothes dryer

URI: http://data.ashrae.org/standard223#ElectricClothesDryer


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricClothesDryer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric clothes dryer" ;
    rdfs:comment "A piece of `Equipment` that automatically removes moisture from a load of textiles (e.g., clothing, bedding), typically after they are washed in a `ClothesWasher`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ElectricClothesDryer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ElectricClothesDryer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric cooktop

URI: http://data.ashrae.org/standard223#ElectricCooktop


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricCooktop> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric cooktop" ;
    rdfs:comment "A piece of `Equipment` with a flat surface containing one or more heat sources designed for cooking with pots and pans." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ElectricCooktop` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ElectricCooktop` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric energy converter

URI: http://data.ashrae.org/standard223#ElectricEnergyConverter


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricEnergyConverter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric energy converter" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#ElectricEnergyDCDCConverter> <http://data.ashrae.org/standard223#ElectricEnergyInverter> <http://data.ashrae.org/standard223#ElectricEnergyTransformer> ) ;
    rdfs:comment "A piece of `Equipment` that converts one form of electric power to another form of electric power." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ElectricEnergyConverter` shall have at least two connection points using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ElectricEnergyConverter` shall have at least two connection points using the the medium `Constituent-Electricity`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

DC-DC converter

URI: http://data.ashrae.org/standard223#ElectricEnergyDCDCConverter


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricEnergyDCDCConverter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "DC-DC converter" ;
    rdfs:comment "An `ElectricEnergyConverter` that transforms direct current (DC) electric power from one voltage to another voltage." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectricEnergyConverter> ;
    sh:property [ rdfs:comment "An `ElectricEnergyDCDCConverter` shall have at least two connection points using the medium `Electricity-DC`." ;
            sh:message "s223: An `ElectricEnergyDCDCConverter` shall have at least two connection points using the medium `Electricity-DC`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric energy inverter

URI: http://data.ashrae.org/standard223#ElectricEnergyInverter


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricEnergyInverter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric energy inverter" ;
    rdfs:comment "An `ElectricEnergyConverter` that tranforms direct current (DC) electric power to alternating current (AC) electric power, or vice versa." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectricEnergyConverter> ;
    sh:property [ rdfs:comment "An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-DC`." ;
            sh:message "s223: An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-DC`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-AC`." ;
            sh:message "s223: An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-AC`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-AC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric energy transformer

URI: http://data.ashrae.org/standard223#ElectricEnergyTransformer


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricEnergyTransformer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric energy transformer" ;
    rdfs:comment "An `ElectricEnergyConverter` that transforms alternating current (AC) electric power from one voltage to another voltage." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectricEnergyConverter> ;
    sh:property [ rdfs:comment "An `ElectricEnergyTransformer` shall have at least two connection points using the medium `Electricity-AC`." ;
            sh:message "s223: An `ElectricEnergyTransformer` shall have at least two connection points using the medium `Electricity-AC`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-AC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electricity meter

URI: http://data.ashrae.org/standard223#ElectricityMeter


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricityMeter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electricity meter" ;
    rdfs:comment """A piece of `Equipment` that contains at least one `VoltageSensor` and one `ElectricCurrentSensor`, and reports one or more
properties of electricity. Example reported properties include the following `QuantityKind`s: `Voltage`, `ElectricCurrent`, `ActiveEnergy`,
`ActivePower`, `ReactivePower`, `ApparentPower`, `PowerFactor`, and `Frequency` with unit Hertz. An `ElectricityMeter` may optionally contain a `Function` that represents the mathematical calculations of the reported properties of electricity.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `ElectricityMeter` shall contain at least two `Sensor`s." ;
            sh:message "s223: An `ElectricityMeter` shall contain at least two `Sensor`s." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#contains> ],
        [ rdfs:comment "An `ElectricityMeter` shall contain a `VoltageSensor` and `ElectricCurrentSensor` with the same observation location." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "An `ElectricityMeter` shall contain a `VoltageSensor` and `ElectricCurrentSensor` with the same observation location." ;
                    sh:message "s223: {$this} contains {?sensorA} and {?sensorB} with different observation locations: {?locA} and {?locB}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT DISTINCT $this ?sensorA ?locA ?sensorB ?locB
WHERE {
$this s223:contains ?sensorA .
$this s223:contains ?sensorB .
?sensorA a/rdfs:subClassOf* s223:Sensor .
?sensorB a/rdfs:subClassOf* s223:Sensor .
FILTER (?sensorA != ?sensorB) .
?sensorA s223:hasObservationLocation ?locA .
?sensorB s223:hasObservationLocation ?locB .
FILTER (?locA != ?locB) .
}
""" ] ],
        [ rdfs:comment """Placeholder: The medium observed by the sensors contained by an `ElectricityMeter` shall be within the `Constituent-Electricity`
hierarchy.""" ;
            sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
            sh:message "s223: The medium observed by the sensors contained by an `ElectricityMeter` shall be within the `Constituent-Electricity` hierarchy." ;
            sh:minCount 1 ;
            sh:path ( <http://data.ashrae.org/standard223#contains> <http://data.ashrae.org/standard223#hasObservationLocation> <http://data.ashrae.org/standard223#hasMedium> ) ],
        [ rdfs:comment "An `ElectricityMeter` shall contain at least one `ElectricCurrentSensor`." ;
            sh:message "s223: An `ElectricityMeter` shall contain at least one `ElectricCurrentSensor`." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ElectricCurrentSensor> ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment """The observation location of the contained `VoltageSensor`(s) and `ElectricCurrentSensor`(s) shall be a single instance of
  either a `Connection` or a `ConnectionPoint`.""" ;
            sh:message "s223: The observation location of the sensors contained by an `ElectricityMeter` shall be either a `Connection` or a `ConnectionPoint`." ;
            sh:minCount 1 ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223#Connection> ] [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ] ) ;
            sh:path ( <http://data.ashrae.org/standard223#contains> <http://data.ashrae.org/standard223#hasObservationLocation> ) ],
        [ rdfs:comment "An `ElectricityMeter` shall contain at least one `VoltageSensor`." ;
            sh:message "s223: An `ElectricityMeter` shall contain at least one `VoltageSensor`." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#VoltageSensor> ] ;
            sh:qualifiedValueShapesDisjoint true ] .


        

Electricity outlet

URI: http://data.ashrae.org/standard223#ElectricityOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricityOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electricity outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more receptacles for connecting electrical equipment to electrical power, typically via a plug and cord. Not to be confused with an `OutletConnectionPoint` with the medium `Constituent-Electricity`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `ElectricityOutlet` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricityOutlet` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `ElectricityOutlet` shall have exactly one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricityOutlet` shall have exactly one inlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric oven

URI: http://data.ashrae.org/standard223#ElectricOven


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricOven> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric oven" ;
    rdfs:comment "A piece of `Equipment` with an enclosed chamber designed for baking, roasting, and other cooking methods that rely on circulating heat." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ElectricOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ElectricOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electric resistance element

URI: http://data.ashrae.org/standard223#ElectricResistanceElement


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricResistanceElement> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric resistance element" ;
    rdfs:comment """A piece of `Equipment` that provides electrical resistance heating, for example an electric heating coil within a Fan Coil Unit.
It shall have one electricity `InletConnectionPoint`, and fit one of the following two patterns:

- Pattern 1: An `ElectricResistanceElement` shall have exactly one Bidirectional `ConnectionPoint` using the medium `Mix-Fluid`.
- Pattern 2: An `ElectricResistanceElement` shall have one inlet and one outlet using the medium `Mix-Fluid`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:message "s223: An `ElectricResistanceElement` shall have one electricity `InletConnectionPoint`, plus fit one of the following two patterns: Pattern 1: An `ElectricResistanceElement` shall have exactly one Bidirectional `ConnectionPoint` using the medium `Mix-Fluid`. Pattern 2: An `ElectricResistanceElement` shall have one inlet and one outlet using the medium `Mix-Fluid`." ;
    sh:property [ rdfs:comment "An `ElectricResistanceElement` shall have the role `Role-Heating`." ;
            sh:message "s223: An `ElectricResistanceElement` shall have the role `Role-Heating`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] ],
        [ rdfs:comment "An `ElectricResistanceElement` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricResistanceElement` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ;
    sh:xone ( [ sh:property [ rdfs:comment "Pattern 1: An `ElectricResistanceElement` shall have exactly one Bidirectional `ConnectionPoint` using the medium `Mix-Fluid`." ;
                        sh:message "s223: Pattern 1: An `ElectricResistanceElement` requires exactly one `BidirectionalConnectionPoint` using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "Pattern 2: An `ElectricResistanceElement` shall have one outlet using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
                        sh:qualifiedValueShapesDisjoint true ],
                    [ rdfs:comment "Pattern 2: An `ElectricResistanceElement` shall have one inlet using the medium `Mix-Fluid`." ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMaxCount 1 ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] ) .


        

Electric water dispenser

URI: http://data.ashrae.org/standard223#ElectricWaterDispenser


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectricWaterDispenser> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electric water dispenser" ;
    rdfs:comment "A piece of `Equipment` that dispenses water and optionally heats and/or cools the water prior to dispensing." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `ElectricWaterDispenser` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `ElectricWaterDispenser` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `ElectricWaterDispenser` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: An `ElectricWaterDispenser` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Electronic display

URI: http://data.ashrae.org/standard223#ElectronicDisplay


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ElectronicDisplay> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Electronic display" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Monitor> <http://data.ashrae.org/standard223#Television> ) ;
    rdfs:comment "A piece of `Equipment` that receives an input electrical signal and outputs information, typically text and/or graphics, in a visual form." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `ElectronicDisplay` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `ElectronicDisplay` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment "A `ElectronicDisplay` shall have at least one inlet using the medium `Electricity-Signal`." ;
            sh:message "s223: A `ElectronicDisplay` shall have at least one inlet using the medium `Electricity-Signal`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-Signal> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ] .


        

Monitor

URI: http://data.ashrae.org/standard223#Monitor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Monitor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Monitor" ;
    rdfs:comment "An `ElectronicDisplay` designed primarily for the output of visual information supplied by a `Computer`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectronicDisplay> .


        

Television

URI: http://data.ashrae.org/standard223#Television


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Television> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Television" ;
    rdfs:comment "An `ElectronicDisplay` that is designed primarily for the output of visual information supplied by a media broadcaster, and that typically has an integral tuner that is capable of selecting a single channel for display from the available input channel range." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectronicDisplay> .


        

Elevator

URI: http://data.ashrae.org/standard223#Elevator


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Elevator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Elevator" ;
    rdfs:comment "A piece of `Equipment` that vertically transports people or freight between floors or levels of a building via a vertical shaft commonly referred to as a hoistway. The people or freight are typically situated on a platform, or in a container commonly referred to as a car, cab, cabin, cage, or carriage." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Elevator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Elevator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Escalator

URI: http://data.ashrae.org/standard223#Escalator


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Escalator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Escalator" ;
    rdfs:comment "A piece of `Equipment` that vertically transports people between floors or levels of a building via a moving staircase." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Escalator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Escalator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Ethernet switch

URI: http://data.ashrae.org/standard223#EthernetSwitch


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EthernetSwitch> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Ethernet switch" ;
    rdfs:comment """A piece of `Equipment` that connects one or more instances of electrical equipment, such as `Computer`s and Wi-Fi access points,
to an Ethernet network so they can communicate with each other and, optionally, to the Internet.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `EthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `EthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `EthernetSwitch` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
            sh:message "s223: An `EthernetSwitch` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] ) ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Ethernet port

URI: http://data.ashrae.org/standard223#EthernetPort


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#EthernetPort> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Ethernet port" ;
    rdfs:comment """A piece of `Equipment` that connects a single instance of electrical equipment, such as `Computer`s and Wi-Fi access points,
to an Ethernet network so it can communicate with other equipment and, optionally, with the Internet.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `EthernetPort` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
            sh:message "s223: An `EthernetPort` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] ) ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `EthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
            sh:message "s223: An `EthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Fan

URI: http://data.ashrae.org/standard223#Fan


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Fan> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fan" ;
    rdfs:comment "A piece of `Equipment` that causes a gas (e.g., air) to flow." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Fan` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Fan` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Fan` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Fan` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Fan coil unit

URI: http://data.ashrae.org/standard223#FanCoilUnit


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FanCoilUnit> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fan coil unit" ;
    rdfs:comment "A piece of `Equipment` consisting of a `Coil` and a `Fan` that regulates the temperature of one or more spaces." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `FanCoilUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `FanCoilUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `FanCoilUnit` shall be associated with at least 1 `Coil` using the relation `contains`." ;
            sh:message "s223: A `FanCoilUnit` shall be associated with at least 1 `Coil` using the relation `contains`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Coil> ] ],
        [ rdfs:comment "A `FanCoilUnit` shall have the role `Role-Heating` or `Role-Cooling`." ;
            sh:message "s223: A `FanCoilUnit` shall have the role `Role-Heating` or `Role-Cooling`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:in ( <http://data.ashrae.org/standard223#Role-Heating> <http://data.ashrae.org/standard223#Role-Cooling> ) ] ],
        [ rdfs:comment "A `FanCoilUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `FanCoilUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `FanCoilUnit` shall be associated with at least 1 `Fan` using the relation `contains`." ;
            sh:message "s223: A `FanCoilUnit` shall be associated with at least 1 `Fan` using the relation `contains`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Fan> ] ] .


        

Fiber Ethernet outlet

URI: http://data.ashrae.org/standard223#FiberEthernetOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FiberEthernetOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fiber Ethernet outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more receptacles for connecting electrical equipment to a fiber Ethernet communication network, typically via a fiber Ethernet cable." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `FiberEthernetOutlet` shall have at least one outlet using the medium `Signal-FiberEthernet`." ;
            sh:message "s223: A `FiberEthernetOutlet` shall have at least one outlet using the medium `Signal-FiberEthernet`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `FiberEthernetOutlet` shall have exactly one inlet using the medium `Signal-FiberEthernet`." ;
            sh:message "s223: A `FiberEthernetOutlet` shall have exactly one inlet using the medium `Signal-FiberEthernet`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Filter

URI: http://data.ashrae.org/standard223#Filter


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Filter> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Filter" ;
    rdfs:comment """A piece of `Equipment` that removes contaminants from gases or liquids. See {s223:Substance-Medium} for
more details on validating compatible mediums upstream and downstream of a `Filter`.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "Incompatible Medium. Case 2: Associated `ConnectionPoint`s, one with a pure medium and one with a medium having constituents.." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 2: A medium with constituents and a pure medium." ;
                    sh:message "s223: {$this} has an incompatible medium {?m1} with any constituent of {?m2}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    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 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 1: Associated `ConnectionPoint`s with two pure mediums." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
                    sh:message "s223: {$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    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}) .
}
""" ] ],
        [ rdfs:comment "Incompatible Medium. Case 3: Associated `ConnectionPoint`s with mediums having constituents." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "Incompatible Medium. Case 3: Two mediums with constituents." ;
                    sh:message "s223: For `Filter` {$this} there is no compatible substance between medium {?m2} and medium {?m1}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    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} .
  }
}
""" ] ],
        [ rdfs:comment "A `Filter` shall have at least one outlet." ;
            sh:message "s223: A `Filter` shall have at least one outlet." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] ],
        [ rdfs:comment "A `Filter` shall have at least one inlet `ConnectionPoint`." ;
            sh:message "s223: A `Filter` shall have at least one inlet `ConnectionPoint`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] ] .


        

Flush toilet

URI: http://data.ashrae.org/standard223#FlushToilet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FlushToilet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Flush toilet" ;
    rdfs:comment """A piece of `Equipment` that collects human waste (i.e., urine and/or feces, and sometimes toilet paper) in a chamber containing water,
and contains an integral manual or automatic actuator that triggers the release of an additional volume of water that flushes everything from the chamber into
a drainage system that typically carries the mixture to a sewer system or septic tank.""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `FlushToilet` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `FlushToilet` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `FlushToilet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `FlushToilet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Freezer

URI: http://data.ashrae.org/standard223#Freezer


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Freezer> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Freezer" ;
    rdfs:comment "A piece of `Equipment` that maintains an internal temperature below the freezing point of water." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Freezer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Freezer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Fume hood

URI: http://data.ashrae.org/standard223#FumeHood


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FumeHood> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fume hood" ;
    rdfs:comment "A piece of `Equipment` that is typically mounted over a work area (e.g., a space, table, or shelf) and conducts unwanted gases away from the area." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `FumeHood` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `FumeHood` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `FumeHood` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `FumeHood` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Furnace

URI: http://data.ashrae.org/standard223#Furnace


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Furnace> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Furnace" ;
    rdfs:comment "A piece of `Equipment` that converts fuel or electrical energy into heat." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Furnace` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Furnace` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Furnace` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `Furnace` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Generator

URI: http://data.ashrae.org/standard223#Generator


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Generator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Generator" ;
    rdfs:comment "A piece of `Equipment` that converts non-electric energy into electric energy." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Generator` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
            sh:message "s223: A `Generator` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ],
        [ rdfs:comment "A `Generator` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:message "s223: A `Generator` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ] .


        

Heat pump

URI: http://data.ashrae.org/standard223#HeatPump


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#HeatPump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Heat pump" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#AirToAirHeatPump> <http://data.ashrae.org/standard223#GroundToAirHeatPump> <http://data.ashrae.org/standard223#WaterToAirHeatPump> <http://data.ashrae.org/standard223#WaterToWaterHeatPump> ) ;
    rdfs:comment "A piece of `Equipment` that heats or cools spaces by transferring thermal energy from one thermal environment to another using a reversible refrigeration cycle." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Air-to-air heat pump

URI: http://data.ashrae.org/standard223#AirToAirHeatPump


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#AirToAirHeatPump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Air-to-air heat pump" ;
    rdfs:comment "A `HeatPump` that transfers thermal energy between two bodies of air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#HeatPump> ;
    sh:property [ rdfs:comment "An `AirToAirHeatPump` shall have at least two inlets using the medium `Fluid-Air`." ;
            sh:message "s223: An `AirToAirHeatPump` shall have at least two inlets using the medium `Fluid-Air`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `AirToAirHeatPump` shall have at least two outlets using the medium `Fluid-Air`." ;
            sh:message "s223: An `AirToAirHeatPump` shall have at least two outlets using the medium `Fluid-Air`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Ground-to-air heat pump

URI: http://data.ashrae.org/standard223#GroundToAirHeatPump


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#GroundToAirHeatPump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Ground-to-air heat pump" ;
    rdfs:comment "A `HeatPump` that transfers thermal energy between air and the ground." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#HeatPump> ;
    sh:property [ rdfs:comment "A `GroundToAirHeatPump` shall have at least one `BidirectionalConnectionPoint` using `Medium-ThermalContact`." ;
            sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:message "s223: A `GroundToAirHeatPump` shall have at least one `BidirectionalConnectionPoint` using `Medium-ThermalContact`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `GroundToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `GroundToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `GroundToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `GroundToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Water-to-air heat pump

URI: http://data.ashrae.org/standard223#WaterToAirHeatPump


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#WaterToAirHeatPump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Water-to-air heat pump" ;
    rdfs:comment "A `HeatPump` that transfers thermal energy between air and a body of water." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#HeatPump> ;
    sh:property [ rdfs:comment "A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Water`" ;
            sh:message "s223: A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Water-to-water heat pump

URI: http://data.ashrae.org/standard223#WaterToWaterHeatPump


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#WaterToWaterHeatPump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Water-to-water heat pump" ;
    rdfs:comment "A `HeatPump` that transfers thermal energy between two flows of water." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#HeatPump> ;
    sh:property [ rdfs:comment "A `WaterToWaterHeatPump` shall have at least two outlets using the medium `Fluid-Water`." ;
            sh:message "s223: A `WaterToWaterHeatPump` shall have at least two outlets using the medium `Fluid-Water`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WaterToWaterHeatPump` shall have at least two inlets using the medium `Fluid-Water`." ;
            sh:message "s223: A `WaterToWaterHeatPump` shall have at least two inlets using the medium `Fluid-Water`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Humidifier

URI: http://data.ashrae.org/standard223#Humidifier


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Humidifier> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Humidifier" ;
    rdfs:comment "A piece of equipment that adds moisture to a gas (e.g., air)." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Humidistat

URI: http://data.ashrae.org/standard223#Humidistat


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Humidistat> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Humidistat" ;
    rdfs:comment "A piece of equipment that measures the relative humidity of the air and then uses this information to automatically adjust the amount of moisture in air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Hydronic heat exchanger

URI: http://data.ashrae.org/standard223#HydronicHeatExchanger


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#HydronicHeatExchanger> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Hydronic heat exchanger" ;
    rdfs:comment "A piece of equipment that transfers heat from one liquid stream to another while keeping the two media separate." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `HydronicHeatExchanger` shall have at least two liquid inlets, each paired with an outlet." ;
            sh:message "s223: A `HydronicHeatExchanger` shall have at least two liquid inlets, each paired with an outlet." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ],
                                [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ] ] ] ],
        [ rdfs:comment "A `HydronicHeatExchanger` shall have no `ConnectionPoint`s using the medium `Fluid-Air`." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A `HydronicHeatExchanger` shall have no `ConnectionPoint`s using the medium `Fluid-Air`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 0 ;
            sh:qualifiedValueShape [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ],
        [ rdfs:comment "A `HydronicHeatExchanger` shall have at least two liquid outlets, each paired with an inlet." ;
            sh:message "s223: A `HydronicHeatExchanger` shall have at least two liquid outlets, each paired with an inlet." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                                [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
            sh:message "s223: A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 0 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:message "s223: A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ] ] .


        

Ice maker

URI: http://data.ashrae.org/standard223#IceMaker


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#IceMaker> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Ice maker" ;
    rdfs:comment "A piece of `Equipment` that makes ice." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "An `IceMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: An `IceMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "An `IceMaker` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: An `IceMaker` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Luminaire

URI: http://data.ashrae.org/standard223#Luminaire


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Luminaire> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Luminaire" ;
    rdfs:comment "A piece of `Equipment` 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." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Luminaire` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Luminaire` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Luminaire` shall have at least one outlet using the medium `EM-Light`." ;
            sh:message "s223: A `Luminaire` shall have at least one outlet using the medium `EM-Light`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Microwave oven

URI: http://data.ashrae.org/standard223#MicrowaveOven


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#MicrowaveOven> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Microwave oven" ;
    rdfs:comment "An `ElectricOven` that cooks food by exposing it to electromagnetic radiation in the microwave frequency range." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectricOven> ;
    sh:property [ rdfs:comment "A `MicrowaveOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `MicrowaveOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Motor

URI: http://data.ashrae.org/standard223#Motor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Motor> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Motor" ;
    rdfs:comment "A piece of `Equipment` that converts electrical energy into mechanical energy." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Motor` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Motor` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Photovoltaic module

URI: http://data.ashrae.org/standard223#PhotovoltaicModule


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#PhotovoltaicModule> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Photovoltaic module" ;
    rdfs:comment "A piece of equipment that converts sunlight into electricity." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `PhotovoltaicModule` shall have at least one inlet using the medium `EM-Light`." ;
            sh:message "s223: A `PhotovoltaicModule` shall have at least one inlet using the medium `EM-Light`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `PhotovoltaicModule` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `PhotovoltaicModule` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Power-over-Ethernet switch

URI: http://data.ashrae.org/standard223#PowerOverEthernetSwitch


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#PowerOverEthernetSwitch> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Power-over-Ethernet switch" ;
    rdfs:comment "A piece of `Equipment` that connects and is capable of powering one or more instances of electrical equipment, such as computers and Wi-Fi access points, as well as connect the equipment to an Ethernet network so they can communicate with each other and, optionally, to the Internet." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `PowerOverEthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `PowerOverEthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `PowerOverEthernetSwitch` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
            sh:message "s223: A `PowerOverEthernetSwitch` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#PowerAndSignal-PoE> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Power over ethernet port

URI: http://data.ashrae.org/standard223#PowerOverEthernetPort


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#PowerOverEthernetPort> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Power over ethernet port" ;
    rdfs:comment "A piece of `Equipment` that connects and is capable of powering one instance of electrical equipment, such as computers and Wi-Fi access points, as well as connect it to an Ethernet network so it can communicate with other equipment and, optionally, with the Internet." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `PowerOverEthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
            sh:message "s223: A `PowerOverEthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `PowerOverEthernetPort` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
            sh:message "s223: A `PowerOverEthernetPort` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#PowerAndSignal-PoE> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Pump

URI: http://data.ashrae.org/standard223#Pump


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Pump> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Pump" ;
    rdfs:comment "A piece of `Equipment` that imparts energy to a fluid, drawing a fluid into itself through an inlet port, and forcing the fluid out through an outlet port." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "The non-electrical `ConnectionPoint`s of a `Pump` must have compatible Media." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "The non-electrical `ConnectionPoint`s of a `Pump` must have compatible Media." ;
                    sh:message "s223: {?cpa} and {?cpb} on the `Pump` {$this} have incompatible Media {$mediuma} and {$mediumb}." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    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}) .
}
""" ] ],
        [ rdfs:comment "A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
            sh:message "s223: A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ rdfs:comment "A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                            sh:message "s223: A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                            sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Refrigerant> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Oil> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                            sh:severity sh:Warning ] ] ],
        [ rdfs:comment "A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
            sh:message "s223: A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ rdfs:comment "A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                            sh:message "s223: A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                            sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Refrigerant> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Oil> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                            sh:severity sh:Warning ] ] ] .


        

Radiant heater

URI: http://data.ashrae.org/standard223#RadiantHeater


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#RadiantHeater> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Radiant heater" ;
    rdfs:comment """
A piece of `Equipment` with heating or cooling surface that delivers 50% or more of its heat transfer by radiation.
A `RadiantHeater` shall:

- Have the role `Role-Heating`.

- Have at least one outlet connection point using the medium `Light-Infrared`.

- Conform to exactly one of the following patterns:
  - **Pattern 1:**
    - Exactly one inlet connection point using the medium `Constituent-Electricity` or `Fluid-NaturalGas`.
  - **Pattern 2:**
    - Exactly one inlet connection point using the medium `Fluid-Water`.
    - Exactly one outlet connection point using the medium Fluid-Water.
""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `RadiantHeater` shall have at least one outlet connection point using the medium `Light-Infrared`." ;
            sh:message "s223: A `RadiantHeater` shall have at least one outlet connection point using the medium `Light-Infrared`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Light-Infrared> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A radiant heater shall have the role `Role-Heating`." ;
            sh:message "s223: A radiant heater shall have the role `Role-Heating`." ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] ] ;
    sh:xone ( [ sh:property [ rdfs:comment "Pattern 1: A radiant heater shall have at least one inlet using the medium `Constituent-Electricity` or `Fluid-NaturalGas`." ;
                        sh:message "s223: Pattern 1: A radiant heater shall have at least one inlet using the medium `Constituent-Electricity` or `Fluid-NaturalGas`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ] [ sh:class <http://data.ashrae.org/standard223#Fluid-NaturalGas> ] ) ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] [ sh:property [ rdfs:comment "Pattern 2: A radiant heater shall have an outlet using the medium `Fluid-Water`." ;
                        sh:message "s223: Pattern 2: A radiant heater shall have an outlet using the medium `Fluid-Water`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "Pattern 2: A radiant heater shall have an inlet using the medium `Fluid-Water`." ;
                        sh:message "s223: Pattern 2: A radiant heater shall have an inlet using the medium `Fluid-Water`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] ) .


        

Radiator

URI: http://data.ashrae.org/standard223#Radiator


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Radiator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Radiator" ;
    rdfs:comment """A piece of `Equipment` that provides primarily convective heating to a room using electricity, steam, or water
(e.g., electric baseboard heaters, heated floors, or traditional radiators).""" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "Radiators shall have the role `Role-Heating`." ;
            sh:message "s223: Radiators shall have the role `Role-Heating`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasRole> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] ],
        [ rdfs:comment "A `Radiator` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
            sh:message "s223: A `Radiator` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Refrigerator

URI: http://data.ashrae.org/standard223#Refrigerator


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Refrigerator> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Refrigerator" ;
    rdfs:comment "A piece of `Equipment` that maintains an internal temperature below the surrounding ambient temperature but above the freezing point of water." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Refrigerator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `Refrigerator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Radio frequency outlet

URI: http://data.ashrae.org/standard223#RFOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#RFOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Radio frequency outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more receptacles for connecting electrical equipment to a radio frequency (RF) communication network, via, for example, a coaxial cable." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `RFOutlet` shall have exactly one inlet using the medium `RF-Signal`." ;
            sh:message "s223: A `RFOutlet` shall have exactly one inlet using the medium `RF-Signal`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#RF-Signal> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `RFOutlet` shall have at least one outlet using the medium `RF-Signal`." ;
            sh:message "s223: A `RFOutlet` shall have at least one outlet using the medium `RF-Signal`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#RF-Signal> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Sink

URI: http://data.ashrae.org/standard223#Sink


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Sink> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Sink" ;
    rdfs:comment "A piece of `Equipment` for manually washing hands, dishes, or other items that receives as an input hot or cold water dispensed from one or two `Faucet`s, and is designed to hold a specific volume of water and release the held water through a `Drain`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Sink` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Sink` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Sink` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Sink` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Solar thermal collector

URI: http://data.ashrae.org/standard223#SolarThermalCollector


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SolarThermalCollector> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Solar thermal collector" ;
    rdfs:comment "A piece of `Equipment` that converts sunlight into thermal energy." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `SolarThermalCollector` shall have at least one inlet using the medium `EM-Light`." ;
            sh:message "s223: A `SolarThermalCollector` shall have at least one inlet using the medium `EM-Light`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `SolarThermalCollector` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `SolarThermalCollector` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Steam injector

URI: http://data.ashrae.org/standard223#SteamInjector


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SteamInjector> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Steam injector" ;
    rdfs:comment "A piece of `Equipment` for increasing the humidity of an air stream by injecting steam into the air stream." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `SteamInjector` shall have at least one inlet using the medium `Water-Steam`." ;
            sh:message "s223: A `SteamInjector` shall have at least one inlet using the medium `Water-Steam`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Water-Steam> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment "A `SteamInjector` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `SteamInjector` shall have at least one inlet using the medium `Fluid-Air`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ],
        [ rdfs:comment "A `SteamInjector` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:message "s223: A `SteamInjector` shall have at least one outlet using the medium `Fluid-Air`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ] .


        

Terminal unit

URI: http://data.ashrae.org/standard223#TerminalUnit


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#TerminalUnit> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Terminal unit" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#DualDuctTerminal> <http://data.ashrae.org/standard223#FanPoweredTerminal> <http://data.ashrae.org/standard223#SingleDuctTerminal> ) ;
    rdfs:comment "A piece of `Equipment` that modulates the volume of air delivered to a space." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `TerminalUnit` shall have at least one inlet `ConnectionPoint` using the medium `Fluid-Air`." ;
            sh:message "s223: A `TerminalUnit` shall have at least one inlet `ConnectionPoint` using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `TerminalUnit` shall have at least one outlet `ConnectionPoint` using the medium `Fluid-Air`." ;
            sh:message "s223: A `TerminalUnit` shall have at least one outlet `ConnectionPoint` using the medium `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Dual duct terminal

URI: http://data.ashrae.org/standard223#DualDuctTerminal


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#DualDuctTerminal> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Dual duct terminal" ;
    rdfs:comment "A `TerminalUnit` that mixes two independent sources of primary air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#TerminalUnit> ;
    sh:property [ rdfs:comment "A `DualDuctTerminal` shall have at least two inlets using the medium `Fluid-Air`." ;
            sh:message "s223: A `DualDuctTerminal` shall have at least two inlets using the medium `Fluid-Air`." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Fan-powered terminal

URI: http://data.ashrae.org/standard223#FanPoweredTerminal


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FanPoweredTerminal> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Fan-powered terminal" ;
    rdfs:comment "A `TerminalUnit` that contains a fan, and optionally has supplemental heating or cooling. Airflow may pass through or be parallel to the fan." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#TerminalUnit> ;
    sh:property [ rdfs:comment "A `FanPoweredTerminal` shall be associated with at least one `Fan` by using the relation `contains`." ;
            sh:message "s223: A `FanPoweredTerminal` shall be associated with at least one `Fan` by using the relation `contains`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Fan> ] ] .


        

Single duct terminal

URI: http://data.ashrae.org/standard223#SingleDuctTerminal


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SingleDuctTerminal> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Single duct terminal" ;
    rdfs:comment "A `TerminalUnit` unit that has one ducted air inlet and a damper for regulating the flow of air." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#TerminalUnit> ;
    sh:property [ rdfs:comment "A `SingleDuctTerminal` shall be associated with at least one `Damper` using the relation `contains`." ;
            sh:message "s223: A `SingleDuctTerminal` shall be associated with at least one `Damper` using the relation `contains`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Damper> ] ] .


        

Thermal energy storage unit

URI: http://data.ashrae.org/standard223#ThermalEnergyStorageUnit


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ThermalEnergyStorageUnit> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Thermal energy storage unit" ;
    rdfs:comment "A device that stores thermal energy." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A Thermal Energy Storage Unit shall have at least two connection points." ;
            sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:message "s223: A Thermal Energy Storage Unit shall have at least two connection points." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ] .


        

Thermostat

URI: http://data.ashrae.org/standard223#Thermostat


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Thermostat> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Thermostat" ;
    rdfs:comment "A piece of `Equipment` that maintains temperature at a fixed or adjustable setpoint." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Turbine

URI: http://data.ashrae.org/standard223#Turbine


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Turbine> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Turbine" ;
    rdfs:comment "A piece of `Equipment` that converts mechanical energy into electric energy." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Turbine` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
            sh:message "s223: A `Turbine` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ],
        [ rdfs:comment "A `Turbine` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:message "s223: A `Turbine` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ] .


        

USB outlet

URI: http://data.ashrae.org/standard223#USBOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#USBOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "USB outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more receptacles for connecting electrical equipment to a USB communication network, typically via a USB cable." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `USBOutlet` shall have exactly one inlet using the medium `Signal-USB`." ;
            sh:message "s223: A `USBOutlet` shall have exactly one inlet using the medium `Signal-USB`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `USBOutlet` shall have at least one outlet using the medium `Signal-USB`." ;
            sh:message "s223: A `USBOutlet` shall have at least one outlet using the medium `Signal-USB`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Valve

URI: http://data.ashrae.org/standard223#Valve


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#Valve> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Valve" ;
    ns1:subclauses ( <http://data.ashrae.org/standard223#Drain> <http://data.ashrae.org/standard223#Faucet> <http://data.ashrae.org/standard223#ThreeWayValve> <http://data.ashrae.org/standard223#TwoWayValve> ) ;
    rdfs:comment "A piece of `Equipment` that can be adjusted to allow, regulate, or stop the flow of fluid in a pipe or a duct." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Drain

URI: http://data.ashrae.org/standard223#Drain


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Drain> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Drain" ;
    rdfs:comment "A `Valve` that allows, regulates, or stops the flow of water from a `Sink`, `Shower`, `Bathtub`, or other plumbing service equipment into a plumbing drainage system that typically carries the mixture to a sewer system or septic tank." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> ;
    sh:property [ rdfs:comment "A `Drain` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Drain` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Drain` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Drain` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Faucet

URI: http://data.ashrae.org/standard223#Faucet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Faucet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Faucet" ;
    rdfs:comment "A `Valve` that allows, regulates, or stops the flow of hot or cold water from a plumbing supply system into a `Sink`, `Shower`, `Bathtub`, or other plumbing service equipment." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> ;
    sh:property [ rdfs:comment "A `Faucet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Faucet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `Faucet` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `Faucet` shall have at least one inlet using the medium `Fluid-Water`." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Three-way valve

URI: http://data.ashrae.org/standard223#ThreeWayValve


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ThreeWayValve> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Three-way valve" ;
    rdfs:comment "A `Valve` that can divert a fluid in one of three directions." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> ;
    sh:property [ rdfs:comment "A `ThreeWayValve` shall have at least three `ConnectionPoint`s using the relation `hasConnectionPoint`." ;
            sh:message "s223: A `ThreeWayValve` shall have at least three `ConnectionPoint`s using the relation `hasConnectionPoint`." ;
            sh:minCount 3 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ] .


        

Two-way valve

URI: http://data.ashrae.org/standard223#TwoWayValve


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#TwoWayValve> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Two-way valve" ;
    rdfs:comment "A `Valve` that can divert a fluid in one of two directions." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> ;
    sh:property [ rdfs:comment "A `TwoWayValve` shall have at least one inlet." ;
            sh:message "s223: A `TwoWayValve` shall have at least one inlet." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] ],
        [ rdfs:comment "A `TwoWayValve` shall have at least one outlet." ;
            sh:message "s223: A `TwoWayValve` shall have at least one outlet." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] ] .


        

Variable frequency drive

URI: http://data.ashrae.org/standard223#VariableFrequencyDrive


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#VariableFrequencyDrive> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Variable frequency drive" ;
    rdfs:comment "A piece of `Equipment` that varies its output frequency to vary the rotating speed and torque 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." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "If the relation `connectedTo` is present, it shall associate the `VariableFrequencyDrive` with a `Equipment`." ;
            sh:class <http://data.ashrae.org/standard223#Equipment> ;
            sh:message "s223: If the relation `connectedTo` is present, it shall associate the `VariableFrequencyDrive` with a `Equipment`." ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "A `VariableFrequencyDrive` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `VariableFrequencyDrive` shall have at least one inlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
            sh:severity sh:Warning ],
        [ rdfs:comment "A `VariableFrequencyDrive` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:message "s223: A `VariableFrequencyDrive` shall have at least one outlet using the medium `Constituent-Electricity`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Water outlet

URI: http://data.ashrae.org/standard223#WaterOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#WaterOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Water outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more pipe fittings for connecting plumbing equipment (e.g., `Faucet`) to a plumbing system." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `WaterOutlet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `WaterOutlet` shall have at least one outlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WaterOutlet` shall have exactly one inlet using the medium `Fluid-Water`." ;
            sh:message "s223: A `WaterOutlet` shall have exactly one inlet using the medium `Fluid-Water`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

Window

URI: http://data.ashrae.org/standard223#Window


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#Window> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Window" ;
    rdfs:comment "A piece of `Equipment` that provides a pathway for `EM-Light` or `Fluid-Air` (or both) to flow from a room to another room or the building exterior through a vertical or nearly vertical area of the room envelope." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `Window` shall have at least one inlet using the medium `EM-Light` or `Fluid-Air`." ;
            sh:message "s223: A `Window` shall have at least one inlet using the medium `EM-Light` or `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                            sh:severity sh:Warning ] ] ],
        [ rdfs:comment "A `Window` shall have at least one outlet using the medium `EM-Light` or `Fluid-Air`." ;
            sh:message "s223: A `Window` shall have at least one outlet using the medium `EM-Light` or `Fluid-Air`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                            sh:severity sh:Warning ] ] ] .


        

Window shade

URI: http://data.ashrae.org/standard223#WindowShade


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#WindowShade> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Window shade" ;
    rdfs:comment "A piece of `Equipment` that can be adjusted to allow, regulate, or stop the flow of light through a `Window`." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> .


        

Wired Ethernet outlet

URI: http://data.ashrae.org/standard223#WiredEthernetOutlet


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#WiredEthernetOutlet> a <http://data.ashrae.org/standard223#Class>,
        sh:NodeShape ;
    rdfs:label "Wired Ethernet outlet" ;
    rdfs:comment "A piece of `Equipment` that contains one or more receptacles for connecting electrical equipment to a wired Ethernet communication network, typically via a wired Ethernet cable." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Equipment> ;
    sh:property [ rdfs:comment "A `WiredEthernetOutlet` shall have at least one outlet using the medium `Signal-WiredEthernet`." ;
            sh:message "s223: A `WiredEthernetOutlet` shall have at least one outlet using the medium `Signal-WiredEthernet`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
        [ rdfs:comment "A `WiredEthernetOutlet` shall have exactly one inlet using the medium `Signal-WiredEthernet`." ;
            sh:message "s223: A `WiredEthernetOutlet` shall have exactly one inlet using the medium `Signal-WiredEthernet`." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
                                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] .


        

pub:AnnexA

URI: pub:AnnexA


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:AnnexA> ns1:clause "Annex A" ;
    ns1:title " - RDF REPRESENTATION OF THIS STANDARD (NORMATIVE)" ;
    rdfs:comment """The text of this standard was generated from an RDF Model. An electronic repository containing a normative Turtle
representation of the model can be found at [https://data.ashrae.org/bacnet/223p/223p.ttl](https://data.ashrae.org/bacnet/223p/223p.ttl).
A user may wish to use electronic tools to browse and study the details of the
standard, use the equipment types defined in the standard to build a building-specific information model, apply the SHACL
constraints to test a building specific model for conformance to the standard, or other uses.
""" .


        

pub:AnnexB

URI: pub:AnnexB


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:AnnexB> ns1:clause "Annex B" ;
    ns1:subclauses ( <pub:g36components> <pub:VAV_4-1> <pub:VAV_4-2> <pub:FPTU_4-3> <pub:DDTU_4-7> <pub:DDTU_4-8> <pub:MZ-VAV-AHU_4-9> <pub:DD-AHU_4-10> <pub:SZ-VAV-AHU_4-11> ) ;
    ns1:title " - ASHRAE GUIDELINE 36 EXTENSION (INFORMATIVE)" ;
    rdfs:comment """This extension uses the concepts defined in the 223 standard to model the ASHRAE Guideline 36 data requirements for air-side equipment, defined in Section 4 of ASHRAE Guideline 36-2024.
These requirements are modeled as classes that use SHACL constraints to define how the equipment should be modeled in 223, focusing on the data points needed for Guideline 36 control sequences.
These classes can be used to ensure that a model has the metadata necessary to support Guideline 36 sequences. They can be used to validate existing models against the requirements of Guideline 36 or to support modeling of compliant systems.
They can also be used to create templates or support tooling that creates models to match the defined constraints.
We have also included SHACL inference rules to infer labels for equipment within an existing 223 model, where modeling of the equipment satisfies the constraints defined for the Guideline 36 classes.
This can support querying and semantic interoperability between models created with and without use of this extension.
Additionally, this section includes example models of the systems presented in the Informative Appendix A of Guideline 36.
This content is intended to serve as an example of how the 223 standard can be extended to create higher level classes specific to an application, that can be useful for both validation and inference.
It is also intended to provide examples of how equipment can be modeled using 223.
""" .


        

pub:g36components

URI: pub:g36components


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:g36components> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> <http://data.ashrae.org/standard223/1.0/extensions/g36#DamperAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamperAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoilAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoilAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoilAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroupAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> <http://data.ashrae.org/standard223/1.0/extensions/g36#FanAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFDAnnotation> ) ;
    ns1:title "Model Components" ;
    rdfs:comment """
This section describes the classes representing common components used in this extension.
These components are not directly defined within Section 4 of Guideline 36, but are shared between the many systems described.
For example, g36:VAVTerminalCoolingOnly (see {g36:VAVTerminalCoolingOnly}),
g36:VAVTerminalWithReheat (see {g36:VAVTerminalWithReheat}),
g36:FanPoweredTerminal (see {g36:FanPoweredTerminal}),
g36:DualDuctTerminalWithInletSensors (see {g36:DualDuctTerminalWithInletSensors}),
and g36:DualDuctTerminalWithDischargeSensor (see {g36:DualDuctTerminalWithDischargeSensor})
all share requirements for what properties a Zone must have.
The Guideline 36 classes defined in subsequent sections are composed of the following components.
""" .


        

Damper

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#Damper


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Damper" ;
    rdfs:comment "A damper with an analog or two binary position command properties." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Damper> .


        

g36:DamperAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DamperAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DamperAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:Damper, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper>,
                <http://data.ashrae.org/standard223/1.0/extensions/g36#DamperOrShape1> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Damper> .


        

Two Position Damper

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Two Position Damper" ;
    rdfs:comment "A damper that can take two positions: fully open and fully closed." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Damper> ;
    sh:property [ rdfs:comment "A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ;
            sh:message "g36: A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                [ sh:class <http://data.ashrae.org/standard223#EnumerationKind-Binary> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ] .


        

g36:TwoPositionDamperAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamperAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamperAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:TwoPositionDamper, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Damper> .


        

HotWater/ReheatCoil

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "HotWater/ReheatCoil" ;
    rdfs:comment "A hot water coil connected to a control valve." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#HeatingCoil> ;
    sh:property [ rdfs:comment "The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ;
            sh:message "g36: The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> ] ] .


        

g36:HotWaterCoilAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoilAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoilAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:HeatingCoil matches the constraints defined by g36:HotWaterCoil, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#HeatingCoil> .


        

Electric Heating Coil

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Electric Heating Coil" ;
    rdfs:comment "An electrical heating element with an analog heating command." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#ElectricResistanceElement> ;
    sh:property [ rdfs:comment "An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ;
            sh:message "g36: An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

g36:ElectricHeatingCoilAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoilAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoilAnnotation> 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." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#ElectricResistanceElement> .


        

Hot Water Valve

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Hot Water Valve" ;
    rdfs:comment "A valve that controls the flow of hot water through a hot water coil." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> .


        

g36:HotWaterValveAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:HotWaterValve, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve>,
                <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveOrShape1> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Valve> .


        

ChilledWaterCoil

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "ChilledWaterCoil" ;
    rdfs:comment "A cooling coil with a connected chilled water valve." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#CoolingCoil> ;
    sh:property [ rdfs:comment "The ChilledWaterCoil shall be connected to a ChilledWaterValve using the relation connectedTo." ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> ] ] .


        

g36:ChilledWaterCoilAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoilAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoilAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:CoolingCoil matches the constraints defined by g36:ChilledWaterCoil, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#CoolingCoil> .


        

Chilled Water Valve

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Chilled Water Valve" ;
    rdfs:comment "A valve that controls the flow of chilled water through a chilled water coil." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Valve> .


        

g36:ChilledWaterValveAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:ChilledWaterValve, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve>,
                <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveOrShape1> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Valve> .


        

Zone

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#Zone


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Zone" ;
    rdfs:comment "A thermal zone with the points required for Guideline 36 control sequences. It is a collection of s223:DomainSpace instances." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Zone> ;
    sh:property [ rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ;
            sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
            sh:message "g36: A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasDomain> ],
        [ rdfs:comment "A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ;
            sh:message "g36: A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Constituent-CO2> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#ofConstituent> ],
                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ;
            sh:severity sh:Info ],
        [ rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ;
            sh:message "g36: A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Aspect-Delta> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ;
            sh:qualifiedValueShapesDisjoint true ;
            sh:severity sh:Info ],
        [ rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty." ;
            sh:message "g36: A Zone shall have at least one window switch on-off property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Binary-OnOff> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ],
                                [ rdfs:comment "Property shall be measured at a window." ;
                                    sh:class <http://data.ashrae.org/standard223#Window> ;
                                    sh:path [ sh:alternativePath ( ( [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] <http://data.ashrae.org/standard223#hasObservationLocation> ) [ sh:inversePath <http://data.ashrae.org/standard223#hasProperty> ] ) ] ] ] ] ;
            sh:severity sh:Info ],
        [ rdfs:comment "A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ;
            sh:message "g36: A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ;
            sh:severity sh:Info ] .


        

g36:ZoneAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of `Zone` matches the constraints defined by g36:Zone, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Zone> .


        

Zone Group

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Zone Group" ;
    rdfs:comment "A ZoneGroup is a grouping of zones that may be scheduled together. Zone groupings must be assigned based on rules in Clause 3.1.3 of Guideline 36." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Zone> ;
    sh:property [ rdfs:comment "A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ;
            sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
            sh:message "g36: A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasDomain> ],
        [ rdfs:comment "A ZoneGroup shall contain at least one Zone using the relation contains." ;
            sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
            sh:message "g36: A ZoneGroup shall contain at least one Zone using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ] .


        

g36:ZoneGroupAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroupAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroupAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of `Zone` matches the constraints defined by g36:ZoneGroup, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Zone> .


        

Fan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#Fan


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Fan" ;
    rdfs:comment "A fan with a start/stop command." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#Fan> ;
    sh:property [ rdfs:comment "A Fan shall have at least one Start/Stop command using the relation hasProperty." ;
            sh:message "g36: A Fan shall have at least one Start/Stop command using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
                    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Binary-OnOff> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ] .


        

g36:FanAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#FanAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#FanAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:Fan, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Fan> .


        

FanWithVFD

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "FanWithVFD" ;
    rdfs:comment "A fan controlled by a VFD." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ;
    sh:property [ rdfs:comment "A fan with VFD shall have at least one fan speed command using the relation hasProperty." ;
            sh:message "g36: A fan with VFD shall have at least one fan speed command using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] .


        

g36:FanWithVFDAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFDAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFDAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:FanWithVFD, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Fan> .


        

pub:VAV_4-1

URI: pub:VAV_4-1


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:VAV_4-1> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnlyAnnotation> <pub:VAVTerminalCoolingOnlyExample> ) ;
    ns1:title "VAV Terminal Unit - Cooling Only" ;
    rdfs:comment "This section describes the VAV Terminal Unit - Cooling Only class defined by this extension. Constraints are based on Guideline 36 Section 4.1." .


        

VAVTerminalCoolingOnly

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "VAVTerminalCoolingOnly" ;
    rdfs:comment "An air-terminal unit assembly having one ducted air inlet and a damper for regulating the airflow rate." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#SingleDuctTerminal> ;
    sh:property [ rdfs:comment "The VAVTerminalCoolingOnly connects to Domain Space in a g36:Zone" ;
            sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "g36: VAVTerminalCoolingOnly connects to Domain Space in a g36:Zone" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                            sh:minCount 1 ;
                            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] ] ] ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "The VAVTerminalCoolingOnly OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
            sh:message "g36: The VAVTerminalCoolingOnly OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The VAVTerminalCoolingOnly shall contain exactly one Damper using the relation contains." ;
            sh:message "g36: The VAVTerminalCoolingOnly shall contain exactly one Damper using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] ] .


        

g36:VAVTerminalCoolingOnlyAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnlyAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnlyAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:SingleDuctTerminal matches the constraints defined by g36:VAVTerminalCoolingOnly, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#SingleDuctTerminal> .


        

pub:VAVTerminalCoolingOnlyExample

URI: pub:VAVTerminalCoolingOnlyExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:VAVTerminalCoolingOnlyExample> ns1:title "Example VAV Terminal Unit - Cooling Only" ;
    rdfs:comment """VAV Terminal Unit - Cooling Only based on Figure A-1. [Link to Model](https://models.open223.info/guideline36-2021-A-1.ttl)

![Guideline 36 Figure A-1.](figures/g36-figure-a-1.png)""" .


        

pub:VAV_4-2

URI: pub:VAV_4-2


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:VAV_4-2> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheatAnnotation> <pub:VAVTerminalWithReheatExample> ) ;
    ns1:title "VAV Terminal Unit with Reheat" ;
    rdfs:comment "This section describes the VAV Terminal Unit with Reheat described in Section 4.2 and Appendix A, Figure A-2 (ASHRAE Guideline 36-2024)" .


        

VAVTerminalWithReheat

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "VAVTerminalWithReheat" ;
    rdfs:comment "An air-terminal unit assembly having one ducted air inlet, a damper, and a reheat coil for regulating the airflow rate and discharge air temperature." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> ;
    sh:property [ rdfs:comment "The VAVTerminalWithReheat connects to Domain Space in a g36:Zone" ;
            sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "g36: The VAVTerminalWithReheat connects to Domain Space in a g36:Zone" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                            sh:minCount 1 ;
                            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] ] ] ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "The VAVTerminalWithReheat shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
            sh:message "g36: The VAVTerminalWithReheat shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] ],
        [ rdfs:comment "The VAVTerminalWithReheat OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
            sh:message "g36: The VAVTerminalWithReheat OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] .


        

g36:VAVTerminalWithReheatAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheatAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheatAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:SingleDuctTerminal matches the constraints defined by g36:VAVTerminalWithReheat, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#SingleDuctTerminal> .


        

pub:VAVTerminalWithReheatExample

URI: pub:VAVTerminalWithReheatExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:VAVTerminalWithReheatExample> ns1:title "Example VAV Terminal Unit With Reheat" ;
    rdfs:comment """VAV Terminal Unit With Reheat based on Figure A-2. [Link to Model](https://models.open223.info/guideline36-2021-A-2.ttl)

![Guideline 36 Figure A-2.](figures/g36-figure-a-2.png)""" .


        

pub:FPTU_4-3

URI: pub:FPTU_4-3


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:FPTU_4-3> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminalAnnotation> <pub:FanPoweredTerminalExample> <pub:ParallelFanPoweredTerminalExample> ) ;
    ns1:title "Fan Powered Terminal Unit" ;
    rdfs:comment """This section describes the classes and example model of the Fan Powered Terminal Unit
(Series or Parallel, Constant or Variable Speed Fan) described in Section 4.3.""" .


        

FanPoweredTerminal

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "FanPoweredTerminal" ;
    rdfs:comment "An air terminal containing a fan. Airflow may pass through or be parallel to the fan. These units may also have supplemental heating or cooling." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#FanPoweredTerminal> ;
    sh:property [ sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "g36: The FanPoweredTerminal connects to Domain Space in a g36:Zone" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                            sh:minCount 1 ;
                            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ] ] ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "The FanPoweredTerminal OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
            sh:message "g36: The FanPoweredTerminal OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "A FanPoweredTerminal shall have exactly one Damper using the relation contains." ;
            sh:message "g36: A FanPoweredTerminal shall have exactly one Damper using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] ],
        [ rdfs:comment "A FanPoweredTerminal shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
            sh:message "g36: A FanPoweredTerminal shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] ],
        [ rdfs:comment "The FanPoweredTerminal InletConnectionPoint shall have at least one supply airflow property using the relation hasProperty." ;
            sh:message "g36: The FanPoweredTerminal InletConnectionPoint shall have at least one supply airflow property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "A FanPoweredTerminal shall have exactly one Fan or FanWithVFD using the relation contains." ;
            sh:message "g36: A FanPoweredTerminal shall have exactly one Fan or FanWithVFD using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ] ) ] ] .


        

g36:FanPoweredTerminalAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminalAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminalAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:FanPoweredTerminal matches the constraints defined by g36:FanPoweredTerminal, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#FanPoweredTerminal> .


        

pub:FanPoweredTerminalExample

URI: pub:FanPoweredTerminalExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:FanPoweredTerminalExample> ns1:title "Example Fan Powered Terminal Unit" ;
    rdfs:comment """Example Fan Powered Terminal Unit based on Figure A-3. [Link to Model](https://models.open223.info/guideline36-2021-A-3.ttl)

![Guideline 36 Figure A-3.](figures/g36-figure-a-3.png)""" .


        

pub:ParallelFanPoweredTerminalExample

URI: pub:ParallelFanPoweredTerminalExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:ParallelFanPoweredTerminalExample> ns1:title "Example Parallel Fan Powered Terminal Unit" ;
    rdfs:comment """Example Parallel Fan Powered Terminal Unit based on Figure A-4. [Link to Model](https://models.open223.info/guideline36-2021-A-4.ttl)

![Guideline 36 Figure A-4.](figures/g36-figure-a-4.png)""" .


        

pub:DDTU_4-7

URI: pub:DDTU_4-7


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DDTU_4-7> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensorsAnnotation> <pub:DualDuctTerminalWithInletSensorsExample> ) ;
    ns1:title "Dual Duct Terminal Unit with Inlet Sensors" ;
    rdfs:comment "This section describes the classes and example model of the Dual Duct Terminal Unit with Inlet at Sensors described in Section 4.4 and Appendix A, Figure A-7 (ASHRAE Guideline 36-2024)." .


        

DualDuctTerminalWithInletSensors

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "DualDuctTerminalWithInletSensors" ;
    rdfs:comment "A dual duct air terminal mixes two independent sources of primary air. This terminal uses two inlet sensors." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#DualDuctTerminal> ;
    sh:property [ sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "g36: The DualDuctTerminalWithInletSensors connects to Domain Space in a g36:Zone" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                            sh:minCount 1 ;
                            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ] ] ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one heating supply airflow property using the relation hasProperty." ;
            sh:message "g36: The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one heating supply airflow property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one cooling supply airflow property using the relation hasProperty." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Heating using the relation contains." ;
            sh:message "g36: DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ] ] ] ],
        [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 2 dampers using the relation contains" ;
            sh:message "g36: DualDuctTerminalWithInletSensors shall contain 2 dampers using the relation contains" ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 2 ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] ],
        [ rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Cooling using the relation contains." ;
            sh:message "g36: DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Cooling using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ] ] ] ] .


        

g36:DualDuctTerminalWithInletSensorsAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensorsAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensorsAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:DualDuctTerminal matches the constraints defined by g36:DualDuctTerminalWithInletSensors, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#DualDuctTerminal> .


        

pub:DualDuctTerminalWithInletSensorsExample

URI: pub:DualDuctTerminalWithInletSensorsExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DualDuctTerminalWithInletSensorsExample> ns1:title "Example Dual Duct Terminal Unit With Inlet Sensors" ;
    rdfs:comment """Dual Duct Terminal Unit based on Figure A-7. [Link to Model](https://models.open223.info/guideline36-2021-A-7.ttl)

![Guideline 36 Figure A-7.](figures/g36-figure-a-7.png)""" .


        

pub:DDTU_4-8

URI: pub:DDTU_4-8


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DDTU_4-8> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensorAnnotation> <pub:DualDuctTerminalWithDischargeSensorExample> ) ;
    ns1:title "Dual Duct Terminal Unit with Discharge Sensor" ;
    rdfs:comment "This section describes the classes and example model of the Dual Duct Terminal Unit with Discharge Sensor described in Section 4.5 and Appendix A, Figure A-8 (ASHRAE Guideline 36-2024)" .


        

DualDuctTerminalWithDischargeSensor

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "DualDuctTerminalWithDischargeSensor" ;
    rdfs:comment "A dual duct air terminal mixes two independent sources of primary air. This terminal uses one discharge sensor." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#DualDuctTerminal> ;
    sh:property [ sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
            sh:message "g36: The DualDuctTerminalWithDischargeSensor connects to Domain Space in a g36:Zone" ;
            sh:minCount 1 ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                            sh:minCount 1 ;
                            sh:path [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ] ] ;
            sh:path <http://data.ashrae.org/standard223#connectedTo> ],
        [ rdfs:comment "The DualDuctTerminalWithDischargeSensor OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
            sh:message "g36: The DualDuctTerminalWithDischargeSensor OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "In the DualDuctTerminalWithDischargeSensor, one Damper has Role Heating using the relation hasRole." ;
            sh:message "g36: In the DualDuctTerminalWithDischargeSensor, one Damper has Role Heating using the relation hasRole." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ] ] ] ],
        [ rdfs:comment "In the DualDuctTerminalWithDischargeSensor, one Damper has Role Cooling using the relation hasRole." ;
            sh:message "g36: In the DualDuctTerminalWithDischargeSensor, one Damper has Role Cooling using the relation hasRole." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ] ] ] ],
        [ rdfs:comment "The DualDuctTerminalWithDischargeSensor shall contain 2 dampers using the relation contains." ;
            sh:message "g36: The DualDuctTerminalWithDischargeSensor shall contain 2 dampers using the relation contains." ;
            sh:minCount 2 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 2 ;
            sh:qualifiedMinCount 2 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] ] .


        

g36:DualDuctTerminalWithDischargeSensorAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensorAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensorAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:DualDuctTerminal matches the constraints defined by g36:DualDuctTerminalWithDischargeSensor, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#DualDuctTerminal> .


        

pub:DualDuctTerminalWithDischargeSensorExample

URI: pub:DualDuctTerminalWithDischargeSensorExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DualDuctTerminalWithDischargeSensorExample> ns1:title "Example Dual Duct Terminal Unit With Discharge Sensors" ;
    rdfs:comment """Dual Duct Terminal Unit With Discharge Sensors based on Figure A-8. [Link to Model](https://models.open223.info/guideline36-2021-A-8.ttl)

![Guideline 36 Figure A-8.](figures/g36-figure-a-8.png)""" .


        

pub:MZ-VAV-AHU_4-9

URI: pub:MZ-VAV-AHU_4-9


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:MZ-VAV-AHU_4-9> ns1:subclauses ( ns1:MultipleZoneVAVAirHandlingUnitExample <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnitAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamper> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamperAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMSAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDPAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamper> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamperAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefFan> <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReturnFan> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefDamper> <pub:MultipleZoneVAVAirHandlingUnitExample> ) ;
    ns1:title "Multiple Zone VAV Air Handling Unit" ;
    rdfs:comment "This section describes the classes and example model of the Multiple Zone VAV Air Handling Unit described in Section 4.6 and Appendix A, Figures A-9 and A-10 (ASHRAE Guideline 36-2024)" .


        

doc:MultipleZoneVAVAirHandlingUnitExample

URI: http://sample.org/doc#MultipleZoneVAVAirHandlingUnitExample




        

MultipleZoneVAVAirHandlingUnit

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "MultipleZoneVAVAirHandlingUnit" ;
    rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit serves multiple zones." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one outdoor air temperature property using the relation hasProperty. " ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The  MultipleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
            sh:message "g36: The  MultipleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ] ],
        [ rdfs:comment "The MultipleZoneVAVAirHandlingUnit shall contain at least one return air damper using the relation contains." ;
            sh:message "g36: The MultipleZoneVAVAirHandlingUnit shall contain at least one return air damper using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "The  MultipleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:message "g36: The  MultipleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] ],
        [ rdfs:comment "The MultipleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains" ;
            sh:message "g36: The MultipleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains" ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one return air temperature property using the relation hasProperty. " ;
            sh:message "g36: One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one return air temperature property using the relation hasProperty. " ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "One MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:message "g36: One MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] .


        

g36:MultipleZoneVAVAirHandlingUnitAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnitAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnitAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Multiple Zone VAV Air Handling Unit-Common Damper

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamper


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamper> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit-Common Damper" ;
    rdfs:comment "For units with a common economizer/minimum OA damper, include the following points" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with a common economizer/minimum OA damper, MultipleZoneVAVAirHandlingUnit InletConnectionPoint must have at least one outdoor airflow property." ;
            sh:message "g36: For units with a common economizer/minimum OA damper, MultipleZoneVAVAirHandlingUnit InletConnectionPoint must have at least one outdoor airflow property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
            sh:message "g36: For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ] ] .


        

g36:MultipleZoneVAVAirHandlingUnit-CommonDamperAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamperAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamperAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a common economizer/minimum outdoor air damper, it will be declared as an instance of this class." ;
            sh:condition [ sh:property [ rdfs:comment "For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#contains> ;
                            sh:qualifiedMaxCount 1 ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                                [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ] ] ],
                <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamper> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Multiple Zone VAV Air Handling Unit-OAD and AFMS

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit-OAD and AFMS" ;
    rdfs:comment "A unit with a separate minimum outdoor air damper and AFMS" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with a separate minimum outdoor air damper and AFMS, MultipleZoneVAVAirHandlingUnit must contain a modulating outdoor air damper with a minimum airflow property." ;
            sh:message "g36: For units with a separate minimum outdoor air damper and AFMS, MultipleZoneVAVAirHandlingUnit must contain a modulating outdoor air damper with a minimum airflow property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:not [ sh:property [ sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ;
                            sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Aspect-Minimum> ] ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] .


        

g36:MultipleZoneVAVAirHandlingUnit-OADandAFMSAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMSAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMSAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit-OADandAFMS, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Multiple Zone VAV Air Handling Unit-OAD and DP

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit-OAD and DP" ;
    rdfs:comment "A unit with a separate minimum outdoor air damper and DP sensor" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with a separate minimum outdoor air damper and DP sensor, MultipleZoneVAVAirHandlingUnit must contain a two-position outdoor air damper with a differential pressure property." ;
            sh:message "g36: For units with a separate minimum outdoor air damper and DP sensor, MultipleZoneVAVAirHandlingUnit must contain a two-position outdoor air damper with a differential pressure property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
                    sh:node [ sh:not [ sh:property [ sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ;
                            sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] .


        

g36:MultipleZoneVAVAirHandlingUnit-OADandDPAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDPAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDPAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit-OADandDP, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Multiple Zone VAV Air Handling Unit With Relief Damper

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamper


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamper> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit With Relief Damper" ;
    rdfs:comment "A unit with an actuated relief damper but no relief fan" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
            sh:path ( [ sh:oneOrMorePath <http://data.ashrae.org/standard223#connectedTo> ] sh:zeroOrOnePath [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ) ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasDomain> ],
                                [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
            sh:message "g36: For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ] .


        

g36:MultipleZoneVAVAirHandlingUnit-WithReliefDamperAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamperAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamperAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a relief damper, it will be declared as an instance of this class." ;
            sh:condition [ sh:property [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#contains> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ] ],
                <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamper> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Multiple Zone VAV Air Handling Unit With Relief Fan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefFan


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefFan> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit With Relief Fan" ;
    rdfs:comment "A unit with a relief fan" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief fan with a VFD." ;
            sh:message "g36: For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief fan with a VFD." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ],
        [ rdfs:comment "For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief air damper with a two-position damper command property." ;
            sh:message "g36: For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief air damper with a two-position damper command property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ] .


        

Multiple Zone VAV Air Handling Unit With Return Fan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReturnFan


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReturnFan> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Multiple Zone VAV Air Handling Unit With Return Fan" ;
    rdfs:comment "A unit with a return fan" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For units with a return fan, if direct building pressure logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return fan discharge static pressure property." ;
            sh:message "g36: For units with a return fan, if direct building pressure logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return fan discharge static pressure property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ],
                        [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the supply fan in the MultipleZoneVAVAirHandlingUnit must have a supply airflow property." ;
            sh:message "g36: For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the supply fan in the MultipleZoneVAVAirHandlingUnit must have a supply airflow property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ],
                        [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ] ] ],
        [ rdfs:comment "For units with a return fan, the MultipleZoneVAVAirHandlingUnit must contain an exhaust air damper." ;
            sh:message "g36: For units with a return fan, the MultipleZoneVAVAirHandlingUnit must contain an exhaust air damper." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Exhaust> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return airflow property." ;
            sh:message "g36: For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return airflow property." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                            sh:node [ sh:property [ sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                            sh:qualifiedMinCount 1 ;
                                                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                                                    sh:maxCount 1 ;
                                                                                    sh:minCount 1 ;
                                                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ],
                        [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "For units with a return fan, the MultipleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
            sh:message "g36: For units with a return fan, the MultipleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "For units with a return fan, if direct building pressure logic is used, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
            sh:message "g36: For units with a return fan, if direct building pressure logic is used, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
            sh:minCount 1 ;
            sh:path ( <http://data.ashrae.org/standard223#connectedTo> <http://data.ashrae.org/standard223#connectedTo> [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] <http://data.ashrae.org/standard223#hasProperty> ) ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ;
    sh:severity sh:Info .


        

Single Zone VAV Air Handling Unit With Relief Damper

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefDamper


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefDamper> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Single Zone VAV Air Handling Unit With Relief Damper" ;
    rdfs:comment "A SingleZoneVAVAirHandlingUnit with a relief air damper and no relief fan" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "the SingleZoneVAVAirHandlingUnit contains a relief air damper with a modulating actuator." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ],
                                [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ] .


        

pub:MultipleZoneVAVAirHandlingUnitExample

URI: pub:MultipleZoneVAVAirHandlingUnitExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:MultipleZoneVAVAirHandlingUnitExample> ns1:title "Example Multiple Zone VAV Air Handling Unit" ;
    rdfs:comment """Multiple Zone VAV Air Handling Unit based on Figure A-9. [Link to Model](https://models.open223.info/guideline36-2021-A-9.ttl).

![Guideline 36 Figure A-9.](figures/g36-figure-a-9.png)""" .


        

pub:DD-AHU_4-10

URI: pub:DD-AHU_4-10


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DD-AHU_4-10> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnitAnnotation> <pub:DualFanDualDuctAirHandlingUnitExample> ) ;
    ns1:title "Dual Fan Dual Duct Air Handling Unit" ;
    rdfs:comment "This section describes the classes and example model of the Dual Fan Dual Duct Air Handling Unit described in Section 4.7 and Appendix A, Figure A-11 (ASHRAE Guideline 36-2024)" .


        

DualFanDualDuctAirHandlingUnit

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "DualFanDualDuctAirHandlingUnit" ;
    rdfs:comment "DualFanDualDuctAirHandlingUnit" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
            sh:message "g36: A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
            sh:message "g36: The DualFanDualDuctAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:message "g36: A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:message "g36: The DualFanDualDuctAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] ] .


        

g36:DualFanDualDuctAirHandlingUnitAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnitAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnitAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:DualFanDualDuctAirHandlingUnit, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

pub:DualFanDualDuctAirHandlingUnitExample

URI: pub:DualFanDualDuctAirHandlingUnitExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:DualFanDualDuctAirHandlingUnitExample> ns1:title "Example Dual Fan Dual Duct Air Handling Unit." ;
    rdfs:comment """Dual Fan Dual Duct Air Handling Unit based on Figure A-11. [Link to Model](https://models.open223.info/guideline36-2021-A-11.ttl)

![Guideline 36 Figure A-11.](figures/g36-figure-a-11.png)""" .


        

pub:SZ-VAV-AHU_4-11

URI: pub:SZ-VAV-AHU_4-11


@prefix ns1: <http://sample.org/doc#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:SZ-VAV-AHU_4-11> ns1:subclauses ( <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnitAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-NoReliefFan> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-NoReliefFanAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFan> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFanAnnotation> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFan> <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFanAnnotation> <pub:SingleZoneVAVAirHandlingUnitExample> ) ;
    ns1:title "Single Zone VAV Air Handling Unit" ;
    rdfs:comment "This section describes the classes and example model of the Single Zone VAV Air Handling Unit described in Section 4.8 and Appendix A, Figure A-12 (ASHRAE Guideline 36-2024)" .


        

SingleZoneVAVAirHandlingUnit

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "SingleZoneVAVAirHandlingUnit" ;
    rdfs:comment "An assembly consisting of sections containing a fan or fans and other necessary equipment to perform one or more of the following functions: circulating, filtration, heating, cooling, heat recovery, humidifying, dehumidifying, and mixing of air. It is usually connected to an air-distribution system. This air handling unit that serves one zone only." ;
    rdfs:subClassOf <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "A SingleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:message "g36: A SingleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one return air damper using the relation contains." ;
            sh:message "g36: The SingleZoneVAVAirHandlingUnit shall have at least one return air damper using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ] ] ] ] ],
        [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one outdoor air damper using the relation contains." ;
            sh:message "g36: The SingleZoneVAVAirHandlingUnit shall have at least one outdoor air damper using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                    sh:node [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ] ] ] ],
        [ rdfs:comment "The  SingleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
            sh:message "g36: The  SingleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ] ],
        [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
            sh:message "g36: The SingleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:message "g36: The SingleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
            sh:minCount 1 ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] ] .


        

g36:SingleZoneVAVAirHandlingUnitAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnitAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnitAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit, it will be declared as an instance of that class." ;
            sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

g36:SingleZoneVAVAirHandlingUnit-NoReliefFan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-NoReliefFan




        

g36:SingleZoneVAVAirHandlingUnit-NoReliefFanAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-NoReliefFanAnnotation




        

Single Zone VAV Air Handling Unit With Relief Fan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFan


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFan> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Single Zone VAV Air Handling Unit With Relief Fan" ;
    rdfs:comment "A SingleZoneVAVAirHandlingUnit with a relief fan and relief dampers" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must indeed have a relief fan." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ],
        [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which is connectedTo at least one HVAC DomainSpace or Zone, which has a building static pressure property." ;
            sh:path ( [ sh:oneOrMorePath <http://data.ashrae.org/standard223#connectedTo> ] sh:zeroOrOnePath [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ) ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasDomain> ],
                                [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                            sh:maxCount 1 ;
                                                            sh:minCount 1 ;
                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ],
        [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must indeed have a relief air damper with a two-position damper command property." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMaxCount 1 ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ] .


        

g36:SingleZoneVAVAirHandlingUnit-WithReliefFanAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFanAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFanAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit and has a relief fan, it will be declared as an instance of this class." ;
            sh:condition [ sh:property [ sh:path <http://data.ashrae.org/standard223#contains> ;
                            sh:qualifiedMaxCount 1 ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ] ],
                <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFan> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

Single Zone VAV Air Handling Unit With Return Fan

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFan


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFan> a <http://data.ashrae.org/standard223#Class>,
        rdfs:Class,
        sh:NodeShape ;
    rdfs:label "Single Zone VAV Air Handling Unit With Return Fan" ;
    rdfs:comment "A SingleZoneVAVAirHandlingUnit with a Return fan" ;
    rdfs:subClassOf <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:class <http://data.ashrae.org/standard223#AirHandlingUnit> ;
    sh:property [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ],
        [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit must contain an exhaust air damper with either an analog or two-position damper command property." ;
            sh:path <http://data.ashrae.org/standard223#contains> ;
            sh:qualifiedMinCount 1 ;
            sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Exhaust> ;
                                    sh:maxCount 1 ;
                                    sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ;
                    sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ] ) ] ] .


        

g36:SingleZoneVAVAirHandlingUnit-WithReturnFanAnnotation

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFanAnnotation


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFanAnnotation> a sh:NodeShape ;
    sh:rule [ a sh:TripleRule ;
            rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit and has a return fan, it will be declared as an instance of that class." ;
            sh:condition [ sh:property [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a Return air damper and a Return fan, the SingleZoneVAVAirHandlingUnit must indeed have a Return fan." ;
                            sh:path <http://data.ashrae.org/standard223#contains> ;
                            sh:qualifiedMaxCount 1 ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                                    sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ] ] ] ] ] ],
                <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
            sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFan> ;
            sh:predicate rdf:type ;
            sh:subject sh:this ] ;
    sh:targetClass <http://data.ashrae.org/standard223#AirHandlingUnit> .


        

pub:SingleZoneVAVAirHandlingUnitExample

URI: pub:SingleZoneVAVAirHandlingUnitExample


@prefix ns1: <http://sample.org/doc#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<pub:SingleZoneVAVAirHandlingUnitExample> ns1:title "Example Single Zone VAV Air Handling Unit Unit" ;
    rdfs:comment """Single Zone VAV Air Handling Unit Unit based on Figure A-12. [Link to Model](https://models.open223.info/guideline36-2021-A-12.ttl)

![Guideline 36 Figure A-10.](figures/g36-figure-a-12.png)""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b8

URI: nedb2d1fb8ae746a4b48d454a320283f9b8


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case4: An entity with constituents and an associated `Property` with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 4: A medium with constituents and an associated `Property` with constituents." ;
            sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?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} .
  }
}
""" ] .


        

Closed-world s223 shape

URI: http://data.ashrae.org/standard223#ClosedWorld223Shape


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ClosedWorld223Shape> a sh:NodeShape ;
    rdfs:label "Closed-world s223 shape" ;
    rdfs:comment "Ensure that all instances of an s223 class use only the relations defined for that class. Note that this only applies to s223 relations." ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment """Ensure that all instances of an s223 class use only the relations defined for that class. Note that only s223
relations are checked by this validation.""" ;
            sh:message "s223: s223 predicate {?p} is not defined for instance {$this}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?p ?o
WHERE {
?p a/rdfs:subClassOf* s223:Relation .
$this ?p ?o .
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 .
}
}
""" ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Concept> .


        

Closed-world QUDT shape

URI: http://data.ashrae.org/standard223#ClosedWorldQUDTShape


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ClosedWorldQUDTShape> a sh:NodeShape ;
    rdfs:label "Closed-world QUDT shape" ;
    rdfs:comment "Ensure that all instances of an s223 class use only the relations defined for that class. Note that this only applies to QUDT relations." ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment """Ensure that all instances of an s223 class use only the relations defined for that class. Note that only QUDT
relations are checked by this validation.""" ;
            sh:message "s223: QUDT predicate {?p} is not defined for instance {$this}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?p ?o
WHERE {
$this ?p ?o .
FILTER(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 .
}
}
""" ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Concept> .


        

nedb2d1fb8ae746a4b48d454a320283f9b6

URI: nedb2d1fb8ae746a4b48d454a320283f9b6


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case3: An entity with constituents and an associated `Property` with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 3: A medium with constituents and an associated `Property` with a pure medium." ;
            sh:message "s223: {$this} `hasMedium` of {?m2}, but is associated with `Property` {?prop} that has `ofMedium` of {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m2 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b13

URI: nedb2d1fb8ae746a4b48d454a320283f9b13


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case1: An entity with a pure medium and an associated `Property` with a different pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
            sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m2 .
FILTER (?m1 != ?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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b10

URI: nedb2d1fb8ae746a4b48d454a320283f9b10


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case2: An entity with a pure medium and an associated `Property` with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 2: A pure medium and an associated `Property` with constituents." ;
            sh:message "s223: {$this} `hasMedium` of {?m1}, but is associated with `Property` {?prop} that has `ofMedium` of {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m1 ?prop ?m2
WHERE {
$this s223:hasMedium ?m1 .
$this ?p ?prop .
?prop a/rdfs:subClassOf* s223:Property .
?prop s223:ofMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b12

URI: nedb2d1fb8ae746a4b48d454a320283f9b12


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasProperty` is present, it shall associate the concept with a `Property`." ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:message "s223: If the relation `hasProperty` is present, it shall associate the concept with a `Property`." ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> .


        

nedb2d1fb8ae746a4b48d454a320283f9b495

URI: nedb2d1fb8ae746a4b48d454a320283f9b495


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Add an rdfs:label if it is missing." ;
    sh:construct """
CONSTRUCT {$this rdfs:label ?newLabel .}
WHERE {
FILTER (NOT EXISTS {$this rdfs:label ?something}) .
BIND(REPLACE(STR($this), "^.*/([^/]*)$", "$1") AS ?localNameWithoutHash)
BIND(REPLACE(?localNameWithoutHash, "^.*#(.*)$", "$1") AS ?localName)
BIND(REPLACE(?localName, "-", " ", "i") AS ?newLabel)
}
""" ;
    sh:name "AddLabelFromLocalName" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b570

URI: nedb2d1fb8ae746a4b48d454a320283f9b570


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Declare the inverse triples for relations that have defined inverse relations" ;
    sh:construct """
CONSTRUCT {
?o ?invP $this .
}
WHERE {
  $this ?p ?o .
  ?p s223:inverseOf ?invP .
}
			""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/owl-subset> .


        

nedb2d1fb8ae746a4b48d454a320283f9b612

URI: nedb2d1fb8ae746a4b48d454a320283f9b612


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Declare the inverse triples for symmetric relations" ;
    sh:construct """
CONSTRUCT {
?o ?p $this .
}
WHERE {
  $this ?p ?o .
  ?p a s223:SymmetricRelation .
}
			""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/owl-subset> .


        

nedb2d1fb8ae746a4b48d454a320283f9b571

URI: nedb2d1fb8ae746a4b48d454a320283f9b571


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every SPARQLConstraint must have an rdfs:comment." ;
    sh:message "s223: The SPARQLConstraint for path {?path} for Class {$this} must have an rdfs:comment." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    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} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b574

URI: nedb2d1fb8ae746a4b48d454a320283f9b574


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every TripleRule must have an rdfs:comment." ;
    sh:message "s223: The TripleRule inferring {?pred} for Class {$this} must have an rdfs:comment." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    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} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b573

URI: nedb2d1fb8ae746a4b48d454a320283f9b573


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every SPARQLRule must have an rdfs:comment." ;
    sh:message "s223: Every SPARQLRule for Class {$this} must have an rdfs:comment." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    sh:select """
SELECT $this
WHERE {
$this sh:rule ?rule .
?rule a sh:SPARQLRule .
FILTER NOT EXISTS {?rule rdfs:comment ?comment} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b576

URI: nedb2d1fb8ae746a4b48d454a320283f9b576


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every class of the 223 standard must be a direct or indirect subclass of s223:Concept." ;
    sh:message "s223: Class {$this} must be within the rdfs:subClassOf hierarchy under s223:Concept." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    sh:select """
SELECT $this
WHERE {
FILTER NOT EXISTS {$this rdfs:subClassOf* rdf:Property} .
FILTER NOT EXISTS {$this rdfs:subClassOf* s223:Concept} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b2

URI: nedb2d1fb8ae746a4b48d454a320283f9b2


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Class` shall be associated with at least one label using the relation `rdfs:label`." ;
    sh:message "s223: A `Class` shall be associated with at least one label using the relation `rdfs:label`." ;
    sh:minCount 1 ;
    sh:path rdfs:label ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b572

URI: nedb2d1fb8ae746a4b48d454a320283f9b572


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every SHACL property shape must have an rdfs:comment." ;
    sh:message "s223: The property shape with path {?path} for Class {$this} must have an rdfs:comment." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    sh:select """
SELECT $this ?path
WHERE {
$this sh:property ?propshape .
?propshape sh:path ?path .
FILTER NOT EXISTS {?propshape rdfs:comment ?comment} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b577

URI: nedb2d1fb8ae746a4b48d454a320283f9b577


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every class of the 223 standard must also be an instance of sh:NodeShape." ;
    sh:message "s223: Class {$this} must be declared as an instance of sh:NodeShape." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    sh:select """
SELECT $this
WHERE {
FILTER NOT EXISTS {$this a sh:NodeShape} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b575

URI: nedb2d1fb8ae746a4b48d454a320283f9b575


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Every class of the 223 standard must have an rdfs:comment." ;
    sh:message "s223: Class {$this} must have an rdfs:comment." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/schema> ;
    sh:select """
SELECT $this
WHERE {
FILTER NOT EXISTS {$this rdfs:comment ?comment} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b17

URI: nedb2d1fb8ae746a4b48d454a320283f9b17


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Relation` shall be associated with at least one label using the relation `rdfs:label`." ;
    sh:message "s223: A `Relation` shall be associated with at least one label using the relation `rdfs:label`." ;
    sh:minCount 1 ;
    sh:path rdfs:label ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b19

URI: nedb2d1fb8ae746a4b48d454a320283f9b19


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `RelationWithInverse` shall be associated with exactly one other `RelationWithInverse` using the relation `inverseOf`." ;
    sh:class <http://data.ashrae.org/standard223#RelationWithInverse> ;
    sh:maxCount 1 ;
    sh:message "s223: An `RelationWithInverse` shall be associated with exactly one other `RelationWithInverse` using the relation `inverseOf`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#inverseOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2132

URI: nedb2d1fb8ae746a4b48d454a320283f9b2132


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment """If the relation `actuatedByProperty` is present, it shall associate the `Equipment` with a `ActuatableProperty`.
Note that any `Equipment` may use this relation, not just `Actuator`.""" ;
    sh:class <http://data.ashrae.org/standard223#ActuatableProperty> ;
    sh:message "s223: If the relation `actuatedByProperty` is present, it shall associate the `Equipment` with a `ActuatableProperty`. Note that any `Equipment` may use this relation, not just `Actuator`." ;
    sh:path <http://data.ashrae.org/standard223#actuatedByProperty> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2138

URI: nedb2d1fb8ae746a4b48d454a320283f9b2138


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `executes` is present, it shall associate the `Equipment` with a `Function`." ;
    sh:class <http://data.ashrae.org/standard223#Function> ;
    sh:message "s223: If the relation `executes` is present, it shall associate the `Equipment` with a `Function`." ;
    sh:path <http://data.ashrae.org/standard223#executes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2125

URI: nedb2d1fb8ae746a4b48d454a320283f9b2125


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Disallow contained equipment from having external incoming connections." ;
    sh:path <http://data.ashrae.org/standard223#connectedFrom> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Disallow contained equipment from having external incoming connections." ;
            sh:message "s223: {$this} should not have a connection from external equipment {?otherDev} because {?container} contains {$this}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?container ?otherDev
WHERE {
$this s223:connectedFrom ?otherDev .
$this ^s223:contains ?container .
?container a/rdfs:subClassOf* s223:Equipment .
FILTER NOT EXISTS {?container s223:contains ?otherDev .}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2129

URI: nedb2d1fb8ae746a4b48d454a320283f9b2129


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Warning about a subClass of `Equipment` of type A containing something that is in the same subClass branch." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:severity sh:Warning ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Warning about a subClass of `Equipment` of type A containing something that is in the same subClass branch." ;
            sh:message "s223: {$this}, of type {?type1}, contains {?subEquip} of type {?type2}, that could result in double-counting items in the class hierarchy of {?type1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?subEquip ?type1 ?type2
WHERE {
  FILTER NOT EXISTS {$this a s223:Equipment} .
$this s223:contains+ ?subEquip .
  FILTER NOT EXISTS {?subEquip a s223:Equipment} .
$this a ?type1 .
?subEquip a ?type2 .
{
?type2 rdfs:subClassOf* ?type1 .
}
UNION
{
?type1 rdfs:subClassOf* ?type2 .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2131

URI: nedb2d1fb8ae746a4b48d454a320283f9b2131


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasRole` is present, it shall associate the `Equipment` with a `EnumerationKind-Role`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
    sh:message "s223: If the relation `hasRole` is present, it shall associate the `Equipment` with a `EnumerationKind-Role`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2127

URI: nedb2d1fb8ae746a4b48d454a320283f9b2127


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Disallow contained equipment from having external outgoing connections." ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Disallow contained equipment from having external outgoing connections." ;
            sh:message "s223: {$this} should not have a connection to external equipment {?otherDev} because {?container} contains {$this}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?container ?otherDev
WHERE {
$this s223:connectedTo ?otherDev .
$this ^s223:contains ?container .
?container a/rdfs:subClassOf* s223:Equipment .
FILTER NOT EXISTS {?container s223:contains ?otherDev .}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2133

URI: nedb2d1fb8ae746a4b48d454a320283f9b2133


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:PropertyShape ;
    rdfs:comment "If the relation `contains` is present, it shall associate the `Equipment` with either `Equipment` or `Junction`." ;
    sh:message "s223: If the relation `contains` is present, it shall associate the `Equipment` with either `Equipment` or `Junction`." ;
    sh:name "device contains shape" ;
    sh:or ( [ sh:class <http://data.ashrae.org/standard223#Equipment> ] [ sh:class <http://data.ashrae.org/standard223#Junction> ] ) ;
    sh:path <http://data.ashrae.org/standard223#contains> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2124

URI: nedb2d1fb8ae746a4b48d454a320283f9b2124


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasPhysicalLocation` is present, it shall associate the `Equipment` with a `PhysicalSpace`." ;
    sh:class <http://data.ashrae.org/standard223#PhysicalSpace> ;
    sh:message "s223: If the relation `hasPhysicalLocation` is present, it shall associate the `Equipment` with a `PhysicalSpace`." ;
    sh:path <http://data.ashrae.org/standard223#hasPhysicalLocation> .


        

nedb2d1fb8ae746a4b48d454a320283f9b527

URI: nedb2d1fb8ae746a4b48d454a320283f9b527


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "For equipment contained within another piece of equipment use the `mapsTo` relation to infer a Medium from the containing equipment." ;
    sh:construct """
CONSTRUCT {
    ?childCp s223:hasMedium ?medium .
}
WHERE {
  $this s223:hasConnectionPoint ?cp .
  ?childCp s223:mapsTo ?cp .
  ?cp s223:connectsThrough ?connection .
  ?cp s223:hasMedium ?medium .
  FILTER NOT EXISTS {?childCp s223:hasMedium ?something} .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b528

URI: nedb2d1fb8ae746a4b48d454a320283f9b528


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "For equipment containing another piece of equipment, use the `mapsTo` relation to infer a Medium from the contained equipment." ;
    sh:construct """
CONSTRUCT {
    ?parentCp s223:hasMedium ?medium .
}
WHERE {
  $this s223:hasConnectionPoint ?cp .
  ?cp s223:mapsTo ?parentCp .
  ?cp s223:connectsThrough ?connection .
  ?cp s223:hasMedium ?medium .
  FILTER NOT EXISTS {?parentCp s223:hasMedium ?something} .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

Sensor observation location shape

URI: http://data.ashrae.org/standard223#SensorObservationLocationShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SensorObservationLocationShape> a sh:NodeShape ;
    rdfs:label "Sensor observation location shape" ;
    rdfs:comment "A `Sensor` shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasObservationLocation`." ;
    sh:message "s223: A `Sensor` shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasObservationLocation`." ;
    sh:targetClass <http://data.ashrae.org/standard223#Sensor> ;
    sh:xone ( [ sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasObservationLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#Connectable> ;
                        sh:maxCount 1 ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasObservationLocation> ] ] [ sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasObservationLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#Connection> ;
                        sh:maxCount 1 ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasObservationLocation> ] ] [ sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasObservationLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                        sh:maxCount 1 ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasObservationLocation> ] ] ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b1983

URI: nedb2d1fb8ae746a4b48d454a320283f9b1983


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the `hasReferenceLocation` relation exists, the observed `Property` shall have `qudt:isDeltaQuantity` true." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If the `hasReferenceLocation` relation exists, the observed `Property` shall have `qudt:isDeltaQuantity` true." ;
            sh:message "s223: `Sensor` {$this} has a reference location, but its `Property` lacks `qudt:isDeltaQuantity` true." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
          SELECT $this
          WHERE {
$this s223:hasReferenceLocation ?y .
$this s223:observes ?x .
?x a/rdfs:subClassOf* s223:QuantifiableProperty .
FILTER NOT EXISTS {$this s223:observes/qudt:isDeltaQuantity true}
}
""" ] .


        

Sensor reference location shape

URI: http://data.ashrae.org/standard223#SensorReferenceLocationShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SensorReferenceLocationShape> a sh:NodeShape ;
    rdfs:label "Sensor reference location shape" ;
    rdfs:comment "A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
    sh:message "s223: A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#Connectable> ;
                        sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> ] ] [ sh:property [ rdfs:comment "A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#Connection> ;
                        sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> ] ] [ sh:property [ rdfs:comment "A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
                        sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
                        sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> ] ] ) ;
    sh:property [ rdfs:comment "A `Sensor` can be associated with a maximum of one `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
            sh:maxCount 1 ;
            sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Sensor> .


        

Sensor observes shape

URI: http://data.ashrae.org/standard223#SensorObservesShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#SensorObservesShape> a sh:NodeShape ;
    rdfs:label "Sensor observes shape" ;
    rdfs:comment "A `Sensor` shall be associated with exactly 1 of `QuantifiableObservableProperty` or `EnumeratedObservableProperty` using the relation `observes`." ;
    sh:message "s223: A `Sensor` shall be associated with exactly 1 of `QuantifiableObservableProperty` or `EnumeratedObservableProperty` using the relation `observes`." ;
    sh:targetClass <http://data.ashrae.org/standard223#Sensor> ;
    sh:xone ( [ sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly 1 of `QuantifiableObservableProperty` or `EnumeratedObservableProperty` using the relation `observes`." ;
                        sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                        sh:maxCount 1 ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#observes> ] ] [ sh:property [ rdfs:comment "A `Sensor` shall be associated with exactly 1 of `QuantifiableObservableProperty` or `EnumeratedObservableProperty` using the relation `observes`." ;
                        sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
                        sh:maxCount 1 ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#observes> ] ] ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b1977

URI: nedb2d1fb8ae746a4b48d454a320283f9b1977


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Sensor` shall be associated with exactly one location using the relation `hasObservationLocation`." ;
    sh:maxCount 1 ;
    sh:message "s223: A `Sensor` shall be associated with exactly one location using the relation `hasObservationLocation`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasObservationLocation> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1982

URI: nedb2d1fb8ae746a4b48d454a320283f9b1982


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Sensor` shall be associated with exactly one `ObservableProperty` using the relation `observes`." ;
    sh:class <http://data.ashrae.org/standard223#ObservableProperty> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Sensor` shall be associated with exactly one `ObservableProperty` using the relation `observes`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#observes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1978

URI: nedb2d1fb8ae746a4b48d454a320283f9b1978


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasMeasurementResolution` is present it shall associate a `Sensor` with a `QuantifiableProperty`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: If the relation `hasMeasurementResolution` is present it shall associate a `Sensor` with a `QuantifiableProperty`." ;
    sh:path <http://data.ashrae.org/standard223#hasMeasurementResolution> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1980

URI: nedb2d1fb8ae746a4b48d454a320283f9b1980


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the observed `Property` has `qudt:isDeltaQuantity` true, the `Sensor` shall have a `hasReferenceLocation` relation." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If the observed `Property` has `qudt:isDeltaQuantity` true, the `Sensor` shall have a `hasReferenceLocation` relation." ;
            sh:message "s223: `Sensor` {$this} has `Property` {?x} with `qudt:isDeltaQuantity` true, but the `Sensor` lacks a reference location." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
          SELECT $this ?x
          WHERE {
$this s223:observes/qudt:isDeltaQuantity true .
$this s223:observes ?x .
?x a/rdfs:subClassOf* s223:QuantifiableProperty .
FILTER NOT EXISTS {$this s223:hasReferenceLocation ?y}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1979

URI: nedb2d1fb8ae746a4b48d454a320283f9b1979


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "If a `Sensor` measures a differential property, it shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
    sh:maxCount 1 ;
    sh:message "s223: If a `Sensor` measures a differential property, it shall be associated with exactly 1 of `Connectable`, `Connection`, or `ConnectionPoint` using the relation `hasReferenceLocation`." ;
    sh:path <http://data.ashrae.org/standard223#hasReferenceLocation> .


        

nedb2d1fb8ae746a4b48d454a320283f9b603

URI: nedb2d1fb8ae746a4b48d454a320283f9b603


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasObservationLocation` relation for a `Sensor` from the `Property` that it is observing, only if that `Property` is associated with a single entity." ;
    sh:construct """
CONSTRUCT {$this s223:hasObservationLocation ?something .}
WHERE {
{
SELECT ?prop (COUNT (DISTINCT ?measurementLocation) AS ?count) $this
WHERE {
FILTER (NOT EXISTS {$this s223:hasObservationLocation ?anything}) .
$this s223:observes ?prop .
?measurementLocation s223:hasProperty ?prop .
}
GROUP BY ?prop $this
}
FILTER (?count = 1) .
?something s223:hasProperty ?prop .
{?something a/rdfs:subClassOf* s223:Connectable}
UNION
{?something a/rdfs:subClassOf* s223:Connection}
UNION
{?something a/rdfs:subClassOf* s223:ConnectionPoint}
}
""" ;
    sh:name "InferredMeasurementLocation" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1529

URI: nedb2d1fb8ae746a4b48d454a320283f9b1529


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "An `ElectricCurrentSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `ElectricCurrent`." ;
    sh:message "s223: An `ElectricCurrentSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `ElectricCurrent`." ;
    sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
    sh:value <http://qudt.org/vocab/quantitykind/ElectricCurrent> .


        

nedb2d1fb8ae746a4b48d454a320283f9b967

URI: nedb2d1fb8ae746a4b48d454a320283f9b967


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `HumiditySensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of either `RelativeHumidity` or `AbsoluteHumidity`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
    sh:message "s223: A `HumiditySensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of either `RelativeHumidity` or `AbsoluteHumidity`." ;
    sh:node [ sh:property [ sh:or ( [ sh:hasValue <http://qudt.org/vocab/quantitykind/RelativeHumidity> ] [ sh:hasValue <http://qudt.org/vocab/quantitykind/AbsoluteHumidity> ] ) ;
                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ;
    sh:path <http://data.ashrae.org/standard223#observes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b982

URI: nedb2d1fb8ae746a4b48d454a320283f9b982


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `IlluminanceSensor` shall observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Illuminance`." ;
    sh:message "s223: An `IlluminanceSensor` shall observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Illuminance`." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Illuminance> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b738

URI: nedb2d1fb8ae746a4b48d454a320283f9b738


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `CorrelatedColorTemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `CorrelatedColorTemperature`." ;
    sh:message "s223: A `CorrelatedColorTemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `CorrelatedColorTemperature`." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/CorrelatedColorTemperature> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b766

URI: nedb2d1fb8ae746a4b48d454a320283f9b766


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `DuvSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Duv`." ;
    sh:message "s223: A `DuvSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Duv`." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Duv> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1006

URI: nedb2d1fb8ae746a4b48d454a320283f9b1006


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `OccupantMotionSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Motion`." ;
    sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
    sh:message "s223: An `OccupantMotionSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Motion`." ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Occupancy-Motion> ;
                    sh:maxCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ;
    sh:path <http://data.ashrae.org/standard223#observes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1009

URI: nedb2d1fb8ae746a4b48d454a320283f9b1009


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `OccupantPresenceSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Presence`." ;
    sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
    sh:message "s223: An `OccupantPresenceSensor` shall always observe an `EnumeratedObservableProperty` that has an `EnumerationKind` of `Occupancy-Presence`." ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Occupancy-Presence> ;
                    sh:maxCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ;
    sh:path <http://data.ashrae.org/standard223#observes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1002

URI: nedb2d1fb8ae746a4b48d454a320283f9b1002


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment """An `OccupantCountSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Population` and
a `Unit` of `NUM`.""" ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
    sh:message """s223: An `OccupantCountSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Population` and
a `Unit` of `NUM`.""" ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/unit/NUM> ;
                    sh:maxCount 1 ;
                    sh:path <http://qudt.org/schema/qudt/hasUnit> ],
                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Population> ;
                    sh:maxCount 1 ;
                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ;
    sh:path <http://data.ashrae.org/standard223#observes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1012

URI: nedb2d1fb8ae746a4b48d454a320283f9b1012


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `ofSubstance` is present, it shall associate the `ParticulateSensor` with a `Substance-Particulate`." ;
    sh:class <http://data.ashrae.org/standard223#Substance-Particulate> ;
    sh:message "s223: If the relation `ofSubstance` is present, it shall associate the `ParticulateSensor` with a `Substance-Particulate`." ;
    sh:path <http://data.ashrae.org/standard223#ofSubstance> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1552

URI: nedb2d1fb8ae746a4b48d454a320283f9b1552


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `PressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Pressure." ;
    sh:message "s223: A `PressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Pressure." ;
    sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
    sh:value <http://qudt.org/vocab/quantitykind/Pressure> .


        

nedb2d1fb8ae746a4b48d454a320283f9b939

URI: nedb2d1fb8ae746a4b48d454a320283f9b939


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of GaugePressure." ;
    sh:message "s223: A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of GaugePressure." ;
    sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
    sh:value <http://qudt.org/vocab/quantitykind/GaugePressure> .


        

nedb2d1fb8ae746a4b48d454a320283f9b942

URI: nedb2d1fb8ae746a4b48d454a320283f9b942


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a value of true for `qudt:isDeltaQuantity`." ;
    sh:maxCount 1 ;
    sh:message "s223: A `GaugePressureSensor` shall always observe a `QuantifiableObservableProperty` that has a value of true for `qudt:isDeltaQuantity`." ;
    sh:minCount 1 ;
    sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/isDeltaQuantity> ) ;
    sh:value true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1111

URI: nedb2d1fb8ae746a4b48d454a320283f9b1111


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `TemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Temperature`." ;
    sh:message "s223: A `TemperatureSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of `Temperature`." ;
    sh:path <http://data.ashrae.org/standard223#observes> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Property> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1581

URI: nedb2d1fb8ae746a4b48d454a320283f9b1581


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `VoltageSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Voltage." ;
    sh:message "s223: A `VoltageSensor` shall always observe a `QuantifiableObservableProperty` that has a `QuantityKind` of Voltage." ;
    sh:path ( <http://data.ashrae.org/standard223#observes> <http://qudt.org/schema/qudt/hasQuantityKind> ) ;
    sh:value <http://qudt.org/vocab/quantitykind/Voltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b661

URI: nedb2d1fb8ae746a4b48d454a320283f9b661


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `Actuator` shall be associated with at least one `ActuatableProperty` using the relation `actuatedByProperty`." ;
    sh:class <http://data.ashrae.org/standard223#ActuatableProperty> ;
    sh:message "s223: An `Actuator` shall be associated with at least one `ActuatableProperty` using the relation `actuatedByProperty`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#actuatedByProperty> .


        

nedb2d1fb8ae746a4b48d454a320283f9b660

URI: nedb2d1fb8ae746a4b48d454a320283f9b660


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `actuates` is present, it shall associate the `Actuator` with a piece of `Equipment`." ;
    sh:class <http://data.ashrae.org/standard223#Equipment> ;
    sh:message "s223: If the relation `actuates` is present, it shall associate the `Actuator` with a piece of `Equipment`." ;
    sh:path <http://data.ashrae.org/standard223#actuates> .


        

nedb2d1fb8ae746a4b48d454a320283f9b725

URI: nedb2d1fb8ae746a4b48d454a320283f9b725


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `executes` is present, it shall associate the `Controller` with a `Function`." ;
    sh:class <http://data.ashrae.org/standard223#Function> ;
    sh:message "s223: If the relation `executes` is present, it shall associate the `Controller` with a `Function`." ;
    sh:path <http://data.ashrae.org/standard223#executes> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1822

URI: nedb2d1fb8ae746a4b48d454a320283f9b1822


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasInput` is present it shall associate a `Function` with a `Property`." ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:message "s223: If the relation `hasInput` is present it shall associate a `Function` with a `Property`." ;
    sh:path <http://data.ashrae.org/standard223#hasInput> .


        

Function property shape

URI: http://data.ashrae.org/standard223#FunctionPropertyShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#FunctionPropertyShape> a sh:NodeShape ;
    rdfs:label "Function property shape" ;
    rdfs:comment "A `Function` must be associated with at least one `Property` using either the relation `hasInput` or `hasOutput`." ;
    sh:message "s223: A `Function` must be associated with at least one `Property` using either the relation `hasInput` or `hasOutput`." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Function` must be associated with at least one `Property` using either the relation `hasInput` or `hasOutput`." ;
                        sh:class <http://data.ashrae.org/standard223#Property> ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasInput> ] ] [ sh:property [ rdfs:comment "A `Function` must be associated with at least one `Property` using either the relation `hasInput` or `hasOutput`." ;
                        sh:class <http://data.ashrae.org/standard223#Property> ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasOutput> ] ] ) ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Function> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1823

URI: nedb2d1fb8ae746a4b48d454a320283f9b1823


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasOutput` is present it shall associate a `Function` with a `Property`." ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:message "s223: If the relation `hasOutput` is present it shall associate a `Function` with a `Property`." ;
    sh:path <http://data.ashrae.org/standard223#hasOutput> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1927

URI: nedb2d1fb8ae746a4b48d454a320283f9b1927


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasOptionalConnectionPoint` relation is present, it shall associate the `Connectable` with a `ConnectionPoint` that may not be connected. The \"dangling connection point\" should not generate a validation error." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: If the relation `hasOptionalConnectionPoint` relation is present, it shall associate the `Connectable` with a `ConnectionPoint` that may not be connected. The \"dangling connection point\" should not generate a validation error." ;
    sh:path <http://data.ashrae.org/standard223#hasOptionalConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1931

URI: nedb2d1fb8ae746a4b48d454a320283f9b1931


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasConnectionPoint` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: If the relation `hasConnectionPoint` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
    sh:name "EquipmentToConnectionPointShape" ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1930

URI: nedb2d1fb8ae746a4b48d454a320283f9b1930


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectedFrom` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:message "s223: If the relation `connectedFrom` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:path <http://data.ashrae.org/standard223#connectedFrom> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1928

URI: nedb2d1fb8ae746a4b48d454a320283f9b1928


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a `Connectable` has `connected` or `connectedTo` (i.e. high-level connection specification), it must also have the supporting `cnx` relations (low-level connection specification)." ;
    sh:path <http://data.ashrae.org/standard223#cnx> ;
    sh:severity sh:Warning ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a `Connectable` has the relation`connected` or `connectedTo` (i.e. high-level connection specification), it must also have the supporting `cnx` relations (low-level connection specification)." ;
            sh:message "s223: {$this} is s223:connected (high-level) to {?otherC} but not connected at the cnx-level." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?otherC
WHERE {
$this s223:connected ?otherC .
FILTER NOT EXISTS {$this s223:cnx+ ?otherC}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1933

URI: nedb2d1fb8ae746a4b48d454a320283f9b1933


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectedTo` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:message "s223: If the relation `connectedTo` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:name "ConnectableToConnectableShape" ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1926

URI: nedb2d1fb8ae746a4b48d454a320283f9b1926


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `cnx` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: If the relation `cnx` is present, it shall associate the `Connectable` with a `ConnectionPoint`." ;
    sh:path <http://data.ashrae.org/standard223#cnx> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1932

URI: nedb2d1fb8ae746a4b48d454a320283f9b1932


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connected` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:message "s223: If the relation `connected` is present, it shall associate the `Connectable` with a `Connectable`." ;
    sh:name "SymmetricConnectableToConnectableShape" ;
    sh:path <http://data.ashrae.org/standard223#connected> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1934

URI: nedb2d1fb8ae746a4b48d454a320283f9b1934


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectedThrough` is present, it shall associate the `Connectable` with a `Connection`." ;
    sh:class <http://data.ashrae.org/standard223#Connection> ;
    sh:message "s223: If the relation `connectedThrough` is present, it shall associate the `Connectable` with a `Connection`." ;
    sh:name "EquipmentToConnectionShape" ;
    sh:path <http://data.ashrae.org/standard223#connectedThrough> .


        

nedb2d1fb8ae746a4b48d454a320283f9b503

URI: nedb2d1fb8ae746a4b48d454a320283f9b503


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasConnectionPoint` relation using `cnx`" ;
    sh:construct """
CONSTRUCT {$this s223:hasConnectionPoint ?thing .}
WHERE {
$this s223:cnx ?thing .
}
""" ;
    sh:name "InferredEquipmentToConnectionPointProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b498

URI: nedb2d1fb8ae746a4b48d454a320283f9b498


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connected` relation for BiDirectional connections" ;
    sh:construct """
CONSTRUCT {$this s223:connected ?d2 .}
WHERE {
$this s223:connectedThrough/^s223:connectedThrough ?d2 .
FILTER ($this != ?d2) .
FILTER NOT EXISTS {$this s223:contains* ?d2} .
FILTER NOT EXISTS {?d2 s223:contains* $this} .
}
""" ;
    sh:name "InferredEquipmentToDownstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b506

URI: nedb2d1fb8ae746a4b48d454a320283f9b506


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `cnx` relationship using `hasConnectionPoint`." ;
    sh:construct """
CONSTRUCT {$this s223:cnx ?thing .}
WHERE {
$this s223:hasConnectionPoint ?thing .
}
""" ;
    sh:name "InferredEquipmentToConnectionPointCnxProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b504

URI: nedb2d1fb8ae746a4b48d454a320283f9b504


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectedFrom` relations using `connectsThrough` and `connectsFrom`." ;
    sh:construct """
CONSTRUCT {$this s223:connectedFrom ?equipment .}
WHERE {
$this s223:hasConnectionPoint ?cp .
?cp a s223:InletConnectionPoint .
?cp s223:connectsThrough/s223:connectsFrom ?equipment .
}
""" ;
    sh:name "InferredEquipmentToUpstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b502

URI: nedb2d1fb8ae746a4b48d454a320283f9b502


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connected` relation using `connectedTo`" ;
    sh:construct """
CONSTRUCT {$this s223:connected ?thing .}
WHERE {
$this s223:connectedTo ?thing .
}
""" ;
    sh:name "InferredEquipmentToEquipmentPropertyfromconnectedTo" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b501

URI: nedb2d1fb8ae746a4b48d454a320283f9b501


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connected` relation for BiDirectional connections" ;
    sh:construct """
CONSTRUCT {$this s223:connected ?d2 .}
WHERE {
$this s223:connectedThrough/^s223:connectedThrough ?d2 .
FILTER ($this != ?d2) .
FILTER NOT EXISTS {$this s223:contains* ?d2} .
FILTER NOT EXISTS {?d2 s223:contains* $this} .
}
""" ;
    sh:name "InferredEquipmentToDownstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b497

URI: nedb2d1fb8ae746a4b48d454a320283f9b497


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `cnx` relation using `isConnectionPointOf`." ;
    sh:construct """
CONSTRUCT {$this s223:cnx ?thing .}
WHERE {
$this ^s223:isConnectionPointOf ?thing .
}
""" ;
    sh:name "InferredEquipmentToConnectionPointCnxPropertyFromInverse" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b500

URI: nedb2d1fb8ae746a4b48d454a320283f9b500


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectedThrough` relation using `hasConnectionPoint` and `connectsThrough`" ;
    sh:construct """
CONSTRUCT {$this s223:connectedThrough ?connection .}
WHERE {
$this s223:hasConnectionPoint/s223:connectsThrough ?connection .
}
""" ;
    sh:name "InferredEquipmentToConnectionProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b505

URI: nedb2d1fb8ae746a4b48d454a320283f9b505


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectedTo` relation using `connectsThrough` and `connectsTo`." ;
    sh:construct """
CONSTRUCT {$this s223:connectedTo ?equipment .}
WHERE {
$this s223:hasConnectionPoint ?cp .
?cp a s223:OutletConnectionPoint .
?cp s223:connectsThrough/s223:connectsTo ?equipment .
}
""" ;
    sh:name "InferredEquipmentToDownstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b499

URI: nedb2d1fb8ae746a4b48d454a320283f9b499


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connected` relation using `connectedFrom`" ;
    sh:construct """
CONSTRUCT {$this s223:connected ?thing .}
WHERE {
$this s223:connectedFrom ?thing .
}
""" ;
    sh:name "InferredEquipmentToEquipmentPropertyfromconnectedFrom" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2053

URI: nedb2d1fb8ae746a4b48d454a320283f9b2053


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasRole` is present, it shall associate the `ConnectionPoint` with an `EnumerationKind-Role`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
    sh:message "s223: If the relation `hasRole` is present, it shall associate the `ConnectionPoint` with an `EnumerationKind-Role`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2041

URI: nedb2d1fb8ae746a4b48d454a320283f9b2041


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `ConnectionPoint` must not have both a `mapsTo` and a `connectsThrough` relation." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `ConnectionPoint` must not have both a `mapsTo` and a `connectsThrough` relation." ;
            sh:message "s223: {$this} cannot have both a `mapsTo` {?uppercp} and a `connectsThrough` {?connection}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?uppercp ?connection
WHERE {
$this s223:mapsTo ?uppercp .
$this s223:connectsThrough ?connection .
?connection a/rdfs:subClassOf* s223:Connection .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2038

URI: nedb2d1fb8ae746a4b48d454a320283f9b2038


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Ensure that the Medium identified by a `ConnectionPoint` via the `hasMedium` relation is compatible with the Medium identified by the entity identified by the `mapsTo` relation." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Ensure that the Medium identified by a `ConnectionPoint` via the `hasMedium` relation is compatible with the Medium identified by the entity identified by the `mapsTo` relation." ;
            sh:message "s223: {$this} declares a medium of {?a}, but the medium of {?b} is declared by {?target} pointed to by the `mapsTo` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT DISTINCT $this ?a ?b ?target
WHERE {
$this s223:hasMedium ?a .
$this s223:mapsTo+ ?target .
?target s223:hasMedium ?b .
?a a/rdfs:subClassOf* s223:Substance-Medium .
?b a/rdfs:subClassOf* s223:Substance-Medium .
FILTER (?a != ?b ) .
FILTER (NOT EXISTS {?b a/rdfs:subClassOf* ?a}) .
FILTER (NOT EXISTS {?a a/rdfs:subClassOf* ?b}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2040

URI: nedb2d1fb8ae746a4b48d454a320283f9b2040


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the relation `mapsTo`" ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:maxCount 1 ;
    sh:message "s223: A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the relation `mapsTo`" ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2049

URI: nedb2d1fb8ae746a4b48d454a320283f9b2049


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, but is associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` might need a `mapsTo` relation to a `ConnectionPoint` of the containing `Equipment`." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> ;
    sh:severity sh:Info ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, but is associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` might need a `mapsTo` relation to a `ConnectionPoint` of the containing `Equipment`." ;
            sh:message "s223: `ConnectionPoint` {$this} could be missing a `mapsTo` relation to a `ConnectionPoint` of {?containerEquipment} because it is associated with a `Junction` or `Equipment` that is contained by {?containerEquipment}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
    SELECT $this ?containerEquipment
    WHERE {
        FILTER NOT EXISTS {$this s223:connectsThrough ?anything1} .
        FILTER NOT EXISTS {$this s223:mapsTo ?anything2} .
        FILTER NOT EXISTS {?anything3 s223:hasBoundaryConnectionPoint $this} .
        $this s223:isConnectionPointOf ?equipment .
        ?containerEquipment s223:contains ?equipment .
        }
        """ ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2055

URI: nedb2d1fb8ae746a4b48d454a320283f9b2055


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `ConnectionPoint` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> ;
    sh:message "s223: A `ConnectionPoint` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
    sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2057

URI: nedb2d1fb8ae746a4b48d454a320283f9b2057


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connection` using the relation `connectsThrough`." ;
    sh:class <http://data.ashrae.org/standard223#Connection> ;
    sh:maxCount 1 ;
    sh:message "s223: This `ConnectionPoint` shall be associated with at most one `Connection`." ;
    sh:name "ConnectionPointToConnectionShape" ;
    sh:path <http://data.ashrae.org/standard223#connectsThrough> ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b2047

URI: nedb2d1fb8ae746a4b48d454a320283f9b2047


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the inverse of relation `mapsTo`" ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:maxCount 1 ;
    sh:message "s223: A `ConnectionPoint` can be associated with at most one other `ConnectionPoint` using the inverse of relation `mapsTo`" ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#mapsTo> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2058

URI: nedb2d1fb8ae746a4b48d454a320283f9b2058


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Subclasses of ConnectionPoint are Disjoint. An instance of a subclass of ConnectionPoint cannot be an instance of multiple such subclasses." ;
    sh:message "s223: `ConnectionPoint` {$this} cannot be an instance of both {?subclass1} and {?subclass2}." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
    sh:select """
        SELECT $this ?subclass1 ?subclass2 WHERE {
            $this a ?subclass1, ?subclass2 .
            ?subclass1 a s223:Class .
            ?subclass2 a s223:Class .
            ?subclass1 rdfs:subClassOf s223:ConnectionPoint .
            ?subclass2 rdfs:subClassOf s223:ConnectionPoint .
            FILTER(?subclass1 != ?subclass2)
        }
    """ .


        

nedb2d1fb8ae746a4b48d454a320283f9b2036

URI: nedb2d1fb8ae746a4b48d454a320283f9b2036


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a `ConnectionPoint` `mapsTo` another `ConnectionPoint`, the respective `Equipment` should have a `contains` relation." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a `ConnectionPoint` `mapsTo` another `ConnectionPoint`, the respective `Equipment` should have a `contains` relation." ;
            sh:message "s223: {?otherEquipment} should contain {?equipment} because `ConnectionPoint` {$this} has a `mapsTo` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?equipment ?otherEquipment
WHERE {
$this s223:mapsTo ?otherCP .
?equipment s223:hasConnectionPoint $this .
?otherEquipment s223:hasConnectionPoint ?otherCP .
FILTER NOT EXISTS {?otherEquipment s223:contains ?equipment}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2054

URI: nedb2d1fb8ae746a4b48d454a320283f9b2054


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:maxCount 1 ;
    sh:message "s223: A `ConnectionPoint` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:name "ConnectionPoint medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2056

URI: nedb2d1fb8ae746a4b48d454a320283f9b2056


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` shall be associated with exactly one `Connectable` using the relation `isConnectionPointOf`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:maxCount 1 ;
    sh:message "s223: A `ConnectionPoint` shall be associated with exactly one `Connectable` using the relation `isConnectionPointOf`." ;
    sh:minCount 1 ;
    sh:name "ConnectionPointToEquipmentShape" ;
    sh:path <http://data.ashrae.org/standard223#isConnectionPointOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2045

URI: nedb2d1fb8ae746a4b48d454a320283f9b2045


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connectable` using the `cnx` relation." ;
    sh:message "s223: A `ConnectionPoint` shall be associated with at most one `Connectable` using the `cnx` relation." ;
    sh:path <http://data.ashrae.org/standard223#cnx> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Connectable> ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b2051

URI: nedb2d1fb8ae746a4b48d454a320283f9b2051


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, and is not associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` probably needs an association with a `Connection`." ;
    sh:path <http://data.ashrae.org/standard223#connectsThrough> ;
    sh:severity sh:Info ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a `ConnectionPoint` lacks a `connectsThrough` and `mapsTo` relation, and is not associated with a `Junction` or `Equipment` that is contained by an `Equipment`, then suggest that the `ConnectionPoint` probably needs an association with a `Connection`." ;
            sh:message "s223: `ConnectionPoint` {$this} probably needs an association with a `Connection`, or use of `hasOptionalConnectionPoint` or `hasBoundaryConnectionPoint` qualifiers." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
    SELECT $this
    WHERE {
        FILTER NOT EXISTS {?sys1 s223:hasBoundaryConnectionPoint $this} .
        FILTER NOT EXISTS {?sys2 s223:hasOptionalConnectionPoint $this} .
        FILTER NOT EXISTS {$this s223:connectsThrough ?anything1} .
        FILTER NOT EXISTS {$this s223:mapsTo ?anything2} .
        $this s223:isConnectionPointOf ?equipment .
        FILTER NOT EXISTS {?containerEquipment s223:contains ?equipment} .
        }
        """ ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2043

URI: nedb2d1fb8ae746a4b48d454a320283f9b2043


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ConnectionPoint` shall be associated with at most one `Connection` using the `cnx` relation" ;
    sh:message "s223: A `ConnectionPoint` shall be associated with at most one `Connection` using the `cnx` relation" ;
    sh:path <http://data.ashrae.org/standard223#cnx> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Connection> ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b517

URI: nedb2d1fb8ae746a4b48d454a320283f9b517


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasElectricalPhase` value from any connected `Conductor`." ;
    sh:construct """
CONSTRUCT {$this s223:hasElectricalPhase ?phase .}
WHERE {
$this s223:connectsThrough/s223:hasElectricalPhase ?phase .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1999

URI: nedb2d1fb8ae746a4b48d454a320283f9b1999


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `BidirectionalConnectionPoint` with a `ConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `BidirectionalConnectionPoint` with a `ConnectionPoint`." ;
    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1998

URI: nedb2d1fb8ae746a4b48d454a320283f9b1998


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `mapsTo` is present, it shall associate the `BidirectionalConnectionPoint` with a `BidirectionalConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
    sh:message "s223: If the relation `mapsTo` is present, it shall associate the `BidirectionalConnectionPoint` with a `BidirectionalConnectionPoint`." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2155

URI: nedb2d1fb8ae746a4b48d454a320283f9b2155


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `InletConnectionPoint` with an `OutletConnectionPoint` or `BidirectionalConnectionPoint`." ;
    sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `InletConnectionPoint` with an `OutletConnectionPoint` or `BidirectionalConnectionPoint`." ;
    sh:or ( [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ) ;
    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2160

URI: nedb2d1fb8ae746a4b48d454a320283f9b2160


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Ensure an `InletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Ensure an `InletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
            sh:message "s223: {$this} must have a `mapsTo` an `InletConnectionPoint` of {?parentEquipment} and not an external `Connection` from {?sourceEquipment}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?parentEquipment ?sourceEquipment
WHERE {
?equipment s223:hasConnectionPoint $this .
?parentEquipment s223:contains ?equipment .
$this s223:connectsThrough/s223:connectsFrom ?sourceEquipment .
FILTER NOT EXISTS {?parentEquipment s223:contains ?sourceEquipment} .
FILTER NOT EXISTS {$this s223:mapsTo ?anything} .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2154

URI: nedb2d1fb8ae746a4b48d454a320283f9b2154


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `mapsTo` is present, it shall associate the `InletConnectionPoint` with an `InletConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
    sh:message "s223: If the relation `mapsTo` is present, it shall associate the `InletConnectionPoint` with an `InletConnectionPoint`." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2119

URI: nedb2d1fb8ae746a4b48d454a320283f9b2119


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `pairedConnectionPoint` is present, it shall associate the `OutletConnectionPoint` with an `InletConnectionPoint` or `BidirectionalConnectionPoint`." ;
    sh:message "s223: If the relation `pairedConnectionPoint` is present, it shall associate the `OutletConnectionPoint` with an `InletConnectionPoint` or `BidirectionalConnectionPoint`." ;
    sh:or ( [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ) ;
    sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2116

URI: nedb2d1fb8ae746a4b48d454a320283f9b2116


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Ensure an `OutletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Ensure an `OutletConnectionPoint` has a `mapsTo` relation to its containing `Equipment` if it has an external `Connection`" ;
            sh:message "s223: {$this} must have a `mapsTo` an `OutletConnectionPoint` of {?parentEquipment} and not an external `Connection` to {?destinationEquipment}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?parentEquipment ?destinationEquipment
WHERE {
?equipment s223:hasConnectionPoint $this .
?parentEquipment s223:contains ?equipment .
$this s223:connectsThrough/s223:connectsTo ?destinationEquipment .
FILTER NOT EXISTS {?parentEquipment s223:contains ?destinationEquipment} .
FILTER NOT EXISTS {$this s223:mapsTo ?anything} .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2118

URI: nedb2d1fb8ae746a4b48d454a320283f9b2118


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `mapsTo` is present, it shall associate the `OutletConnectionPoint` with an `OutletConnectionPoint`." ;
    sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
    sh:message "s223: If the relation `mapsTo` is present, it shall associate the `OutletConnectionPoint` with an `OutletConnectionPoint`." ;
    sh:path <http://data.ashrae.org/standard223#mapsTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1949

URI: nedb2d1fb8ae746a4b48d454a320283f9b1949


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
            sh:message "s223: {?cp1} with medium {?m2} is incompatible with {?cp2} with medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m2 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m1 .
    ?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} .
  }
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1951

URI: nedb2d1fb8ae746a4b48d454a320283f9b1951


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 1: A `Connection` with a pure medium and an associated `ConnectionPoint` with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
            sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1945

URI: nedb2d1fb8ae746a4b48d454a320283f9b1945


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Connection` must only have a `cnx` relation with a `ConnectionPoint`" ;
    sh:path <http://data.ashrae.org/standard223#cnx> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `Connection` must only have a `cnx` relation with a `ConnectionPoint`" ;
            sh:message "s223: {$this} cannot have a s223:cnx relation to {?something}, because {?something} is not a `ConnectionPoint`." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """SELECT $this ?something
WHERE {
$this s223:cnx ?something .
FILTER NOT EXISTS {?something a/rdfs:subClassOf* s223:ConnectionPoint} .
}""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1954

URI: nedb2d1fb8ae746a4b48d454a320283f9b1954


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "If the relation `hasThermodynamicPhase` is present, it shall associate the `Connection` with at most one `EnumerationKind-ThermodynamicPhase`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-ThermodynamicPhase> ;
    sh:maxCount 1 ;
    sh:message "s223: If the relation `hasThermodynamicPhase` is present, it shall associate the `Connection` with at most one `EnumerationKind-ThermodynamicPhase`." ;
    sh:path <http://data.ashrae.org/standard223#hasThermodynamicPhase> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1955

URI: nedb2d1fb8ae746a4b48d454a320283f9b1955


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectsTo` is present, it shall associate the `Connection` with a `Connectable`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:message "s223: If the relation `connectsTo` is present, it shall associate the `Connection` with a `Connectable`." ;
    sh:name "ConnectionToDownstreamConnectableShape" ;
    sh:path <http://data.ashrae.org/standard223#connectsTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1940

URI: nedb2d1fb8ae746a4b48d454a320283f9b1940


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 2: A `Connection` with constituents and an associated `ConnectionPoint` with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 2: A `Connection` with constituents and an associated `ConnectionPoint` with a pure medium." ;
            sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1959

URI: nedb2d1fb8ae746a4b48d454a320283f9b1959


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 4: A `Connection` with constituents and an associated `ConnectionPoint` with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 4: A `Connection` with constituents and an associated `ConnectionPoint` with constituents." ;
            sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
    ?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} .
  }
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1961

URI: nedb2d1fb8ae746a4b48d454a320283f9b1961


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Connection` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Connection` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:name "Connection medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

Connection cnx shape

URI: http://data.ashrae.org/standard223#ConnectionCnxShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ConnectionCnxShape> a sh:NodeShape ;
    rdfs:label "Connection cnx shape" ;
    rdfs:comment "You need either an `InletConnectionPoint` and an `OutletConnectionPoint`, or at least one `BidirectionalConnectionPoint` and another `ConnectionPoint` of any type." ;
    sh:message "s223: You need either an `InletConnectionPoint` and an `OutletConnectionPoint`, or at least one `BidirectionalConnectionPoint` and another `ConnectionPoint` of any type." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Connection` shall have at least two `connectsAt` relations allowing flow in and out of the `Connection`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#connectsAt> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#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`." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#connectsAt> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#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`." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#connectsAt> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ;
                        sh:severity sh:Warning ] ] ) ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Connection> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1962

URI: nedb2d1fb8ae746a4b48d454a320283f9b1962


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectsFrom` is present, it shall associate the `Connection` with a `Connectable`." ;
    sh:class <http://data.ashrae.org/standard223#Connectable> ;
    sh:message "s223: If the relation `connectsFrom` is present, it shall associate the `Connection` with a `Connectable`." ;
    sh:name "ConnectionToUpstreamConnectableShape" ;
    sh:path <http://data.ashrae.org/standard223#connectsFrom> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1944

URI: nedb2d1fb8ae746a4b48d454a320283f9b1944


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Connection` shall have two or more `connectsAt` relations to `ConnectionPoint`s." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A `Connection` shall have two or more `connectsAt` relations to `ConnectionPoint`s." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#connectsAt> ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b1947

URI: nedb2d1fb8ae746a4b48d454a320283f9b1947


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s, one with a medium with constituents and one with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 6: A medium with constituents and a pure medium." ;
            sh:message "s223: {?cp1} with medium {?m1} is incompatible with {?cp2} with medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1958

URI: nedb2d1fb8ae746a4b48d454a320283f9b1958


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasRole` is present, it shall associate the `Connection` with an `EnumerationKind-Role`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
    sh:message "s223: If the relation `hasRole` is present, it shall associate the `Connection` with an `EnumerationKind-Role`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1942

URI: nedb2d1fb8ae746a4b48d454a320283f9b1942


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 3: `Connection` with a pure medium and an associated `ConnectionPoint` with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 3: `Connection` with a pure medium and an associated `ConnectionPoint` with constituents." ;
            sh:message "s223: `Connection` {$this} with medium {?m2} is incompatible with {?cp} with medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1953

URI: nedb2d1fb8ae746a4b48d454a320283f9b1953


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Connection` shall have two or more `cnx` relations to `ConnectionPoint`s." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A `Connection` shall have two or more `cnx` relations to `ConnectionPoint`s." ;
    sh:path <http://data.ashrae.org/standard223#cnx> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1956

URI: nedb2d1fb8ae746a4b48d454a320283f9b1956


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
            sh:message "s223: {?cp1} with medium {?m1} is incompatible with {?cp2} with medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b519

URI: nedb2d1fb8ae746a4b48d454a320283f9b519


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectsFrom` relation using the relation `connectsAt`." ;
    sh:construct """
CONSTRUCT {$this s223:connectsFrom ?equipment .}
WHERE {
$this s223:connectsAt ?cp .
?cp a s223:OutletConnectionPoint .
?cp s223:isConnectionPointOf ?equipment .
}
""" ;
    sh:name "InferredConnectionToUpstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b521

URI: nedb2d1fb8ae746a4b48d454a320283f9b521


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer `cnx` relation using the relation `connectsThrough`." ;
    sh:construct """
CONSTRUCT {$this s223:cnx ?thing .}
WHERE {
$this ^s223:connectsThrough ?thing .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b518

URI: nedb2d1fb8ae746a4b48d454a320283f9b518


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer `cnx` relation using the relation `connectsAt`." ;
    sh:construct """
CONSTRUCT {$this s223:cnx ?thing .}
WHERE {
$this s223:connectsAt ?thing .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b520

URI: nedb2d1fb8ae746a4b48d454a320283f9b520


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectsTo` relation using the relation `connectsAt`." ;
    sh:construct """
CONSTRUCT {$this s223:connectsTo ?equipment .}
WHERE {
$this s223:connectsAt ?cp .
?cp a s223:InletConnectionPoint .
?cp s223:isConnectionPointOf ?equipment .
}
""" ;
    sh:name "InferredConnectionToDownstreamEquipmentProperty" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b522

URI: nedb2d1fb8ae746a4b48d454a320283f9b522


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `connectsAt` relation using the relation `cnx`." ;
    sh:construct """
CONSTRUCT {$this s223:connectsAt ?thing .}
WHERE {
$this s223:cnx ?thing .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b770

URI: nedb2d1fb8ae746a4b48d454a320283f9b770


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "`EM` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Constituent-EM> ;
    sh:maxCount 1 ;
    sh:message "s223: `EM` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1674

URI: nedb2d1fb8ae746a4b48d454a320283f9b1674


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Conductor` shall be associated with exactly one `Constituent-Electricity` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Conductor` shall be associated with exactly one `Constituent-Electricity` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1671

URI: nedb2d1fb8ae746a4b48d454a320283f9b1671


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Ensure the electrical phase is the same as all connected `ConnectionPoint`s" ;
    sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Ensure the electrical phase is the same as all connected `ConnectionPoint`s" ;
            sh:message "s223: {$this} has an electrical phase of {?myphase} which is different from {?cpPhase} for `ConnectionPoint` {?cp}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
    SELECT $this ?myphase ?cp ?cpPhase
    WHERE {
        $this s223:hasElectricalPhase ?myphase .
        $this s223:connectsAt ?cp .
        ?cp s223:hasElectricalPhase ?cpPhase .
        FILTER (?myphase != ?cpPhase) .
        }
        """ ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1673

URI: nedb2d1fb8ae746a4b48d454a320283f9b1673


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Conductor` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-ElectricalPhaseIdentifier> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Conductor` can be associated with at most one `EnumerationKind-ElectricalPhaseIdentifier` using the relation `hasElectricalPhase`." ;
    sh:path <http://data.ashrae.org/standard223#hasElectricalPhase> .


        

nedb2d1fb8ae746a4b48d454a320283f9b496

URI: nedb2d1fb8ae746a4b48d454a320283f9b496


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasElectricalPhase` value from any connected `ConnectionPoint`s." ;
    sh:construct """
CONSTRUCT {$this s223:hasElectricalPhase ?phase .}
WHERE {
$this s223:cnx/s223:hasElectricalPhase ?phase .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1910

URI: nedb2d1fb8ae746a4b48d454a320283f9b1910


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `EthernetCable` shall be associated with exactly one `Signal-WiredEthernet` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
    sh:maxCount 1 ;
    sh:message "s223: A `EthernetCable` shall be associated with exactly one `Signal-WiredEthernet` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1125

URI: nedb2d1fb8ae746a4b48d454a320283f9b1125


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `USBCable` shall be associated with `Signal-USB` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
    sh:maxCount 1 ;
    sh:message "s223: A `USBCable` shall be associated with `Signal-USB` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1667

URI: nedb2d1fb8ae746a4b48d454a320283f9b1667


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "`Waveguide` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Constituent-EM> ;
    sh:maxCount 1 ;
    sh:message "s223: `Waveguide` shall be associated with exactly one `Constituent-EM` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b698

URI: nedb2d1fb8ae746a4b48d454a320283f9b698


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "`CoaxialCable` shall be associated with `Wideband-DOCSIS`, or `Wideband-CATV` using the relation `hasMedium`." ;
    sh:maxCount 1 ;
    sh:message "s223: `CoaxialCable` shall be associated with `Wideband-DOCSIS`, or `Wideband-CATV` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:xor ( [ sh:class <http://data.ashrae.org/standard223#Wideband-DOCSIS> ] [ sh:class <http://data.ashrae.org/standard223#Wideband-CATV> ] ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b1874

URI: nedb2d1fb8ae746a4b48d454a320283f9b1874


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "`FiberOpticCable` shall be associated with exactly one `Signal-FiberEthernet` or `Wideband-CATV` using the relation `hasMedium`." ;
    sh:maxCount 1 ;
    sh:message "s223: `FiberOpticCable` shall be associated with exactly one `Signal-FiberEthernet` or `Wideband-CATV` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:xor ( [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Wideband-CATV> ] ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b1840

URI: nedb2d1fb8ae746a4b48d454a320283f9b1840


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Junction` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Junction` shall be associated with exactly one `Substance-Medium` using the relation `hasMedium`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1832

URI: nedb2d1fb8ae746a4b48d454a320283f9b1832


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s, one with a medium with constituents and one a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 6: Two `ConnectionPoint`s with a medium with constituents and a pure medium." ;
            sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

Junction CP shape

URI: http://data.ashrae.org/standard223#JunctionCPShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#JunctionCPShape> a sh:NodeShape ;
    rdfs:label "Junction CP shape" ;
    rdfs:comment "A `Junction` shall have at least two `ConnectionPoint`s including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point." ;
    sh:message "s223: A `Junction` shall have at least two `ConnectionPoint`s including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Junction` shall have at least two `ConnectionPoint`s including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ],
                    [ rdfs:comment "A `Junction` shall have at least two `ConnectionPoint`s including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "A `Junction` shall have at least two `ConnectionPoint`s including (a) at least one inlet and one outlet, or (b) at least one bidirectional connection point." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] ) ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Junction> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1830

URI: nedb2d1fb8ae746a4b48d454a320283f9b1830


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case5: Two `ConnectionPoint`s with pure mediums." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 5: Two `ConnectionPoint`s with pure mediums." ;
            sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
FILTER (?cp1 != ?cp2 ) .
?cp2 s223:hasMedium ?m2 .
FILTER (?m1 != ?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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1838

URI: nedb2d1fb8ae746a4b48d454a320283f9b1838


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case4: `Junction` with constituents and an associated `ConnectionPoint` with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 4: `Junction` with constituents and an associated `ConnectionPoint` with constituents." ;
            sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
    ?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} .
  }
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1834

URI: nedb2d1fb8ae746a4b48d454a320283f9b1834


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 7: Two `ConnectionPoint`s with mediums with constituents." ;
            sh:message "s223: {?cp1} with Medium {?m1} is incompatible with {?cp2} with Medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?cp1 ?m1 ?cp2 ?m2
WHERE {
$this s223:cnx ?cp1 .
?cp1 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp1 s223:hasMedium ?m1 .
$this s223:cnx ?cp2 .
?cp2 a/rdfs:subClassOf* s223:ConnectionPoint .
?cp2 s223:hasMedium ?m2 .
    ?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} .
  }
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1828

URI: nedb2d1fb8ae746a4b48d454a320283f9b1828


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 2: A `Junction` with constituents and an associated `ConnectionPoint` with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 2: A `Junction` with constituents and an associated `ConnectionPoint` with a pure medium." ;
            sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1841

URI: nedb2d1fb8ae746a4b48d454a320283f9b1841


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case1: A `Junction` with a pure medium and an associated `ConnectionPoint` with a pure medium." ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
            sh:message "s223: `Junction` {$this} with Medium {?m2} is incompatible with {?cp} with Medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m1 .
$this s223:hasMedium ?m2 .
FILTER (?m1 != ?m2 ) .
FILTER NOT EXISTS {?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}) .
}
""" ] .


        

Junction usage warning

URI: http://data.ashrae.org/standard223#JunctionUsageWarning


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#JunctionUsageWarning> a sh:NodeShape ;
    rdfs:label "Junction usage warning" ;
    rdfs:comment "This `Junction` is not used to model significant details of a branching point in a connection, and may not be required." ;
    sh:sparql [ 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." ;
            sh:message "s223: This `Junction` {$this} is not used to model significant details of a branching point in a connection, and may not be required." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            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
                    ))
                } .
            }
        """ ;
            sh:severity sh:Warning ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Junction> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1836

URI: nedb2d1fb8ae746a4b48d454a320283f9b1836


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 3: `Junction` with a pure medium and an associated `ConnectionPoint` with constituents" ;
    sh:name "Test for compatible declared Medium" ;
    sh:path <http://data.ashrae.org/standard223#hasMedium> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 3: `Junction` with a pure medium and an associated `ConnectionPoint` with constituents." ;
            sh:message "s223: `Junction` {$this} with Medium {?m1} is incompatible with {?cp} with Medium {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?m2 ?cp ?m1
WHERE {
$this s223:cnx ?cp .
?cp a/rdfs:subClassOf* s223:ConnectionPoint .
?cp s223:hasMedium ?m2 .
$this s223:hasMedium ?m1 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1654

URI: nedb2d1fb8ae746a4b48d454a320283f9b1654


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasOptionalConnectionPoint` relation is used to reference those connection points of its equipment that may not be connected, the \"dangling connection point\" should not generate a validation error." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasOptionalConnectionPoint` relation is used to reference those connection points of its equipment that may not be connected, the \"dangling connection point\" should not generate a validation error." ;
    sh:path <http://data.ashrae.org/standard223#hasOptionalConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1656

URI: nedb2d1fb8ae746a4b48d454a320283f9b1656


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasRole` is present, it shall associate the `System` with an `EnumerationKind-Role`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Role> ;
    sh:message "s223: If the relation `hasRole` is present, it shall associate the `System` with an `EnumerationKind-Role`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1657

URI: nedb2d1fb8ae746a4b48d454a320283f9b1657


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:PropertyShape ;
    rdfs:comment "A `System` shall be associated with at least one instance of `Equipment`, `Junction`, or `System` using the relation `hasMember`." ;
    sh:message "s223: A `System` shall be associated with at least one instance of `Equipment`, `Junction`, or `System` using the relation `hasMember`." ;
    sh:minCount 1 ;
    sh:or ( [ sh:class <http://data.ashrae.org/standard223#Equipment> ] [ sh:class <http://data.ashrae.org/standard223#Junction> ] [ sh:class <http://data.ashrae.org/standard223#System> ] ) ;
    sh:path <http://data.ashrae.org/standard223#hasMember> ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b1664

URI: nedb2d1fb8ae746a4b48d454a320283f9b1664


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Ensure that the boundary `ConnectionPoint`s of a `System` belong to only members of that `System`" ;
    sh:message "s223: `System` {$this} `hasBoundaryConnectionPoint` {?cp}, belonging to {?con} that is not a member of {?this}." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
    sh:select """
SELECT $this ?cp ?con
WHERE {
$this s223:hasBoundaryConnectionPoint ?cp .
?cp s223:isConnectionPointOf ?con .
FILTER NOT EXISTS {$this s223:hasMember+ ?con}
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b1655

URI: nedb2d1fb8ae746a4b48d454a320283f9b1655


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasBoundaryConnectionPoint` relation is used to reference those connection points of its equipment that must be connected, but in the context of validating the model with the system by itself, the \"dangling connection point\" should not generate a validation error." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A `System` may be defined with a number of connection points that are the \"boundary\" of the equipment. The `hasBoundaryConnectionPoint` relation is used to reference those connection points of its equipment that must be connected, but in the context of validating the model with the system by itself, the \"dangling connection point\" should not generate a validation error." ;
    sh:path <http://data.ashrae.org/standard223#hasBoundaryConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b613

URI: nedb2d1fb8ae746a4b48d454a320283f9b613


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasBoundaryConnectionPoint` relation using `hasOptionalConnectionPoint`." ;
    sh:construct """
CONSTRUCT {$this s223:hasBoundaryConnectionPoint ?thing .}
WHERE {
$this s223:hasOptionalConnectionPoint ?thing .
}
""" ;
    sh:name "InferredSystemToBoundaryConnectionPointFromOptional" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1725

URI: nedb2d1fb8ae746a4b48d454a320283f9b1725


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `encloses` is present, it shall associate the `PhysicalSpace` with a `DomainSpace`." ;
    sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
    sh:message "s223: If the relation `encloses` is present, it shall associate the `PhysicalSpace` with a `DomainSpace`." ;
    sh:path <http://data.ashrae.org/standard223#encloses> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1726

URI: nedb2d1fb8ae746a4b48d454a320283f9b1726


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `contains` is present, it shall associate the `PhysicalSpace` with a `PhysicalSpace`." ;
    sh:class <http://data.ashrae.org/standard223#PhysicalSpace> ;
    sh:message "s223: If the relation `contains` is present, it shall associate the `PhysicalSpace` with a `PhysicalSpace`." ;
    sh:path <http://data.ashrae.org/standard223#contains> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1891

URI: nedb2d1fb8ae746a4b48d454a320283f9b1891


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `DomainSpace` must be enclosed by a `PhysicalSpace`." ;
    sh:message "s223: A `DomainSpace` must be enclosed by a `PhysicalSpace`." ;
    sh:minCount 1 ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#encloses> ] ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b1890

URI: nedb2d1fb8ae746a4b48d454a320283f9b1890


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `DomainSpace` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Domain> ;
    sh:maxCount 1 ;
    sh:message "s223: A `DomainSpace` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDomain> .


        

nedb2d1fb8ae746a4b48d454a320283f9b526

URI: nedb2d1fb8ae746a4b48d454a320283f9b526


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer a `hasDomain` relation by checking any enclosing `Zone` to determine the domain." ;
    sh:construct """
CONSTRUCT {$this s223:hasDomain ?domain .}
WHERE {
$this ^s223:hasDomainSpace/s223:hasDomain ?domain .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

Zone loop shape

URI: http://data.ashrae.org/standard223#ZoneLoopShape


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

<http://data.ashrae.org/standard223#ZoneLoopShape> a sh:NodeShape ;
    rdfs:label "Zone loop shape" ;
    rdfs:comment "A `Zone` must not contain itself, directly or indirectly." ;
    sh:message "s223: A `Zone` must not contain itself, directly or indirectly." ;
    sh:property [ rdfs:comment "A `Zone` must not contain itself, directly or indirectly." ;
            sh:path <http://data.ashrae.org/standard223#hasZone> ;
            sh:sparql [ a sh:SPARQLConstraint ;
                    rdfs:comment "A `Zone` must not contain itself, directly or indirectly." ;
                    sh:message "s223: `Zone` {$this} must not contain itself (via s223:hasZone), directly or indirectly." ;
                    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
                    sh:select """
SELECT $this
WHERE {
$this s223:hasZone+ ?nestedZone .
FILTER ($this = ?nestedZone) .
}
""" ] ] ;
    sh:targetClass <http://data.ashrae.org/standard223#Zone> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1887

URI: nedb2d1fb8ae746a4b48d454a320283f9b1887


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "The associated domain of a `Zone` and the Domain of the `DomainSpace`s it `contains` must be the same." ;
    sh:path <http://data.ashrae.org/standard223#hasDomain> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "The associated `EnumerationKind-Domain` of a `Zone` and the `EnumerationKind-Domain` of the `DomainSpace`s it contains must be the same." ;
            sh:message "s223: `Zone` {$this} has a Domain of {?domain}, but it contains a `DomainSpace` {?ds} which has a Domain of {?dsdomain}. These should be the same." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT DISTINCT $this ?domain ?ds ?dsdomain
WHERE {
$this a s223:Zone .
$this s223:hasDomain ?domain .
$this s223:contains ?ds .
?ds s223:hasDomain ?dsdomain .
FILTER (?domain != ?dsdomain)
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1882

URI: nedb2d1fb8ae746a4b48d454a320283f9b1882


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
    sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
    sh:message "s223: A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDomainSpace> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1889

URI: nedb2d1fb8ae746a4b48d454a320283f9b1889


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Zone` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Domain> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Zone` shall be associated with exactly one `EnumerationKind-Domain` using the relation `hasDomain`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDomain> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1884

URI: nedb2d1fb8ae746a4b48d454a320283f9b1884


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
    sh:class <http://data.ashrae.org/standard223#Zone> ;
    sh:message "s223: A `Zone` shall be associated with at least one `DomainSpace` using the relation `hasDomainSpace` or be associated with at least one `Zone` using the relation `hasZone`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasZone> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1276

URI: nedb2d1fb8ae746a4b48d454a320283f9b1276


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of `Zone` matches the constraints defined by g36:ZoneGroup, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ZoneGroup> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1275

URI: nedb2d1fb8ae746a4b48d454a320283f9b1275


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of `Zone` matches the constraints defined by g36:Zone, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b627

URI: nedb2d1fb8ae746a4b48d454a320283f9b627


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer a `hasDomain` relation by checking any enclosed `Zone` to determine the domain." ;
    sh:construct """
CONSTRUCT {$this s223:hasDomain ?domain .}
WHERE {
$this s223:hasZone/s223:hasDomain ?domain .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b626

URI: nedb2d1fb8ae746a4b48d454a320283f9b626


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer a `hasDomain` relation by checking any enclosed `DomainSpace`s to determine the domain." ;
    sh:construct """
CONSTRUCT {$this s223:hasDomain ?domain .}
WHERE {
$this s223:hasDomainSpace/s223:hasDomain ?domain .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1818

URI: nedb2d1fb8ae746a4b48d454a320283f9b1818


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EnumerationKind-Numerical` shall be associated with at least one QuantityKind using the relation `qudt:hasQuantityKind`." ;
    sh:class <http://qudt.org/schema/qudt/QuantityKind> ;
    sh:minCount 1 ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1819

URI: nedb2d1fb8ae746a4b48d454a320283f9b1819


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EnumerationKind-Numerical` shall be associated with exactly one Unit using the relation `qudt:hasUnit`." ;
    sh:class <http://qudt.org/schema/qudt/Unit> ;
    sh:maxCount 1 ;
    sh:minCount 1 ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1817

URI: nedb2d1fb8ae746a4b48d454a320283f9b1817


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EnumerationKind-Numerical` may be associated with a decimal value using the relation `hasValue`." ;
    sh:datatype xsd:decimal ;
    sh:path <http://data.ashrae.org/standard223#hasValue> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1867

URI: nedb2d1fb8ae746a4b48d454a320283f9b1867


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Numerical-Frequency` shall have a `Unit` of Hertz." ;
    sh:hasValue <http://qudt.org/vocab/unit/HZ> ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1868

URI: nedb2d1fb8ae746a4b48d454a320283f9b1868


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Numerical-Frequency` shall have a `QuantityKind` of `Frequency`." ;
    sh:hasValue <http://qudt.org/vocab/quantitykind/Frequency> ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2103

URI: nedb2d1fb8ae746a4b48d454a320283f9b2103


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Numerical-Voltage` shall have a `QuantityKind` of `Voltage`." ;
    sh:hasValue <http://qudt.org/vocab/quantitykind/Voltage> ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2102

URI: nedb2d1fb8ae746a4b48d454a320283f9b2102


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Numerical-Voltage` shall have a `Unit` of Volts." ;
    sh:hasValue <http://qudt.org/vocab/unit/V> ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1857

URI: nedb2d1fb8ae746a4b48d454a320283f9b1857


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a substance has a constituent, that constituent may not itself have constituents." ;
    sh:path <http://data.ashrae.org/standard223#composedOf> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a substance has a constituent, that constituent may not itself have constituents." ;
            sh:message "s223: This substance {$this} has a constituent {?constituent} that itself is composed of {?nextConstituent}. Create new substance with only atomic constituents." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?constituent ?nextConstituent
WHERE {
$this s223:composedOf/s223:ofConstituent ?constituent .
?constituent s223:composedOf/s223:ofConstituent ?nextConstituent .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1997

URI: nedb2d1fb8ae746a4b48d454a320283f9b1997


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Constituent cannot be composed of other substances." ;
    sh:maxCount 0 ;
    sh:message "s223: A Constituent cannot be composed of other substances." ;
    sh:path <http://data.ashrae.org/standard223#composedOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2152

URI: nedb2d1fb8ae746a4b48d454a320283f9b2152


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "An AC electricity medium may be associated with zero or more line-neutral voltages." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Voltage> ;
    sh:path <http://data.ashrae.org/standard223#hasACLineNeutralVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2150

URI: nedb2d1fb8ae746a4b48d454a320283f9b2150


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An AC electricity medium shall have a frequency" ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Frequency> ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasFrequency> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2153

URI: nedb2d1fb8ae746a4b48d454a320283f9b2153


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An AC electricity medium shall have a number of electrical phases." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-NumberOfElectricalPhases> ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasNumberOfElectricalPhases> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2151

URI: nedb2d1fb8ae746a4b48d454a320283f9b2151


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "An AC electricity medium may be associated with zero or more line-line voltages." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Voltage> ;
    sh:path <http://data.ashrae.org/standard223#hasACLineLineVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1923

URI: nedb2d1fb8ae746a4b48d454a320283f9b1923


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A DC electricity medium may be associated with a voltage with a value of zero." ;
    sh:class <http://data.ashrae.org/standard223#Voltage-0V> ;
    sh:path <http://data.ashrae.org/standard223#hasDCZeroVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1925

URI: nedb2d1fb8ae746a4b48d454a320283f9b1925


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A DC electricity medium may be associated with a positive polarity voltage." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Voltage> ;
    sh:path <http://data.ashrae.org/standard223#hasDCPositiveVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1924

URI: nedb2d1fb8ae746a4b48d454a320283f9b1924


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A DC electricity medium may be associated with a negative polarity voltage." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Voltage> ;
    sh:path <http://data.ashrae.org/standard223#hasDCNegativeVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1922

URI: nedb2d1fb8ae746a4b48d454a320283f9b1922


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A DC electricity medium shall be associated with a differential voltage." ;
    sh:class <http://data.ashrae.org/standard223#Numerical-Voltage> ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDCDifferentialVoltage> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1719

URI: nedb2d1fb8ae746a4b48d454a320283f9b1719


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment """If the relation `composedOf` is present, it shall associate a `Medium-Mix` with one or more Properties that
identify and characterize its constituents. The `Property` identifies the constituent using the relation `ofConstituent`. If appropriate, a
`QuantifiableProperty` may be used to also specify the amount of the constituent using the relations `qudt:hasQuantityKind`, `qudt:hasUnit`, and `hasValue`.
For example, see {s223:Water-GlycolSolution}.""" ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:path <http://data.ashrae.org/standard223#composedOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1753

URI: nedb2d1fb8ae746a4b48d454a320283f9b1753


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "There shall be at least two QuantifiableProperties that characterize the constituents of a `Water-GlycolSolution`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#composedOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1748

URI: nedb2d1fb8ae746a4b48d454a320283f9b1748


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-H2O`." ;
    sh:path <http://data.ashrae.org/standard223#composedOf> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:node [ sh:property [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-H2O`." ;
                            sh:hasValue <http://data.ashrae.org/standard223#Constituent-H2O> ;
                            sh:path <http://data.ashrae.org/standard223#ofConstituent> ],
                        [ rdfs:comment "The `QuantityKind` of the constituent shall be `VolumeFraction`." ;
                            sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1754

URI: nedb2d1fb8ae746a4b48d454a320283f9b1754


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-Glycol`." ;
    sh:path <http://data.ashrae.org/standard223#composedOf> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
            sh:node [ sh:property [ rdfs:comment "One of the constituents of a `Water-GlycolSolution` shall be `Constituent-Glycol`." ;
                            sh:hasValue <http://data.ashrae.org/standard223#Constituent-Glycol> ;
                            sh:path <http://data.ashrae.org/standard223#ofConstituent> ],
                        [ rdfs:comment "The `QuantityKind` of the constituent shall be `VolumeFraction`." ;
                            sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFraction> ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1759

URI: nedb2d1fb8ae746a4b48d454a320283f9b1759


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasFreezingPoint` is used, the object shall be a `QuantifiableProperty` with a `QuantityKind` of `Temperature`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: If the relation `hasFreezingPoint` is used, the object shall be a `QuantifiableProperty` with a `QuantityKind` of `Temperature`." ;
    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ;
    sh:path <http://data.ashrae.org/standard223#hasFreezingPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2013

URI: nedb2d1fb8ae746a4b48d454a320283f9b2013


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "If an incoming relation `composedOf` exists, then the `Property` must have a declared substance using the relation `ofConstituent`." ;
    sh:message "s223: `Property` {$this} is referred to by {?something} with s223:composedOf, but the `Property` has no value for s223:ofConstituent." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
    sh:select """
SELECT $this ?something
WHERE {
?something s223:composedOf $this .
FILTER NOT EXISTS {$this s223:ofConstituent ?someSubstance} .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b2000

URI: nedb2d1fb8ae746a4b48d454a320283f9b2000


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasExternalReference` relation." ;
    sh:path <http://data.ashrae.org/standard223#hasInternalReference> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasExternalReference` relation." ;
            sh:message "s223: {$this} cannot have both a `hasInternalReference` and a `hasExternalReference` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
WHERE {
$this s223:hasInternalReference ?int .
$this s223:hasExternalReference ?ext .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2019

URI: nedb2d1fb8ae746a4b48d454a320283f9b2019


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Property` can be associated with at most one `EnumerationKind-Substance` using the relation `ofSubstance`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind-Substance> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Property` can be associated with at most one `EnumerationKind-Substance` using the relation `ofSubstance`." ;
    sh:path <http://data.ashrae.org/standard223#ofSubstance> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2017

URI: nedb2d1fb8ae746a4b48d454a320283f9b2017


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Property` can be associated with at most one `Function` using the inverse relation `hasOutput`." ;
    sh:class <http://data.ashrae.org/standard223#Function> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Property` can be associated with at most one `Function` using the inverse relation `hasOutput`." ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#hasOutput> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2020

URI: nedb2d1fb8ae746a4b48d454a320283f9b2020


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasAspect` is present, it shall associate the `Property` with an `EnumerationKind`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind> ;
    sh:message "s223: If the relation `hasAspect` is present, it shall associate the `Property` with an `EnumerationKind`." ;
    sh:path <http://data.ashrae.org/standard223#hasAspect> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2021

URI: nedb2d1fb8ae746a4b48d454a320283f9b2021


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "A `Property` cannot be declared an instance of both an `ActuatableProperty` and an `ObservableProperty`." ;
    sh:message "s223: {$this} cannot be declared an instance of both an `ActuatableProperty` and an `ObservableProperty`." ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
    sh:select """
SELECT $this
WHERE {
$this a/rdfs:subClassOf* s223:ActuatableProperty .
$this a/rdfs:subClassOf* s223:ObservableProperty .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b2016

URI: nedb2d1fb8ae746a4b48d454a320283f9b2016


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Property` can be associated with at most one `Substance-Medium` using the relation `ofMedium`." ;
    sh:class <http://data.ashrae.org/standard223#Substance-Medium> ;
    sh:maxCount 1 ;
    sh:message "s223: A `Property` can be associated with at most one `Substance-Medium` using the relation `ofMedium`." ;
    sh:path <http://data.ashrae.org/standard223#ofMedium> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2003

URI: nedb2d1fb8ae746a4b48d454a320283f9b2003


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Property` must not have both a `hasExternalReference` and a `hasValue` relation." ;
    sh:path <http://data.ashrae.org/standard223#hasValue> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `Property` must not have both a `hasExternalReference` and a `hasValue` relation." ;
            sh:message "s223: {$this} cannot have both a `hasExternalReference` and a `hasValue` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
WHERE {
$this s223:hasExternalReference ?ext .
$this s223:hasValue ?val .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2002

URI: nedb2d1fb8ae746a4b48d454a320283f9b2002


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `isInternalReferenceOf` is present, it shall associate the `Property` with at most one other `Property`." ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:message "s223: If the relation `isInternalReferenceOf` is present, it shall associate the `Property` with at most one other `Property`." ;
    sh:path <http://data.ashrae.org/standard223#isInternalReferenceOf> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2014

URI: nedb2d1fb8ae746a4b48d454a320283f9b2014


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If a `Property` has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
    sh:path <http://data.ashrae.org/standard223#ofSubstance> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "If a `Property` has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
            sh:message "s223: Since Property {$this} has an `ofSubstance` relation, it should also have an `ofMedium` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
WHERE {
$this s223:ofSubstance ?substance .
FILTER NOT EXISTS {$this s223:ofMedium ?medium} .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2006

URI: nedb2d1fb8ae746a4b48d454a320283f9b2006


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasValue` relation." ;
    sh:path <http://data.ashrae.org/standard223#hasInternalReference> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "A `Property` must not have both a `hasInternalReference` and a `hasValue` relation." ;
            sh:message "s223: {$this} cannot have both a `hasInternalReference` and a `hasValue` relation." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this
WHERE {
$this s223:hasInternalReference ?int .
$this s223:hasValue ?val .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2005

URI: nedb2d1fb8ae746a4b48d454a320283f9b2005


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "If the relation `hasInternalReference` is present, it shall associate the `Property` with at most one other `Property`." ;
    sh:class <http://data.ashrae.org/standard223#Property> ;
    sh:maxCount 1 ;
    sh:message "s223: If the relation `hasInternalReference` is present, it shall associate the `Property` with at most one other `Property`." ;
    sh:path <http://data.ashrae.org/standard223#hasInternalReference> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2009

URI: nedb2d1fb8ae746a4b48d454a320283f9b2009


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Property` must not be observed (set) by more than one entity." ;
    sh:maxCount 1 ;
    sh:message "s223: A `Property` must not be observed (set) by more than one entity." ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2011

URI: nedb2d1fb8ae746a4b48d454a320283f9b2011


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `hasExternalReference` is present, it shall associate the `Property` with an `ExternalReference`." ;
    sh:class <http://data.ashrae.org/standard223#ExternalReference> ;
    sh:message "s223: If the relation `hasExternalReference` is present, it shall associate the `Property` with an `ExternalReference`." ;
    sh:path <http://data.ashrae.org/standard223#hasExternalReference> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2008

URI: nedb2d1fb8ae746a4b48d454a320283f9b2008


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Property` can use at most one relation `hasValue` if it is required to provide a static value in the model. It is not meant for real-time value (see {s223:hasExternalReference})." ;
    sh:maxCount 1 ;
    sh:message "s223: A `Property` can use at most one relation `hasValue` if it is required to provide a static value in the model. It is not meant for real-time value (see {s223:hasExternalReference})." ;
    sh:path <http://data.ashrae.org/standard223#hasValue> .


        

nedb2d1fb8ae746a4b48d454a320283f9b463

URI: nedb2d1fb8ae746a4b48d454a320283f9b463


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ActuatableProperty` normally is referred to by `Equipment` using the relation `actuatedByProperty`." ;
    sh:class <http://data.ashrae.org/standard223#Equipment> ;
    sh:message "s223: An `ActuatableProperty` normally is referred to by `Equipment` using the relation `actuatedByProperty`." ;
    sh:minCount 1 ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#actuatedByProperty> ] ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b1720

URI: nedb2d1fb8ae746a4b48d454a320283f9b1720


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ObservableProperty` is usually referred to by a `Sensor` using the relation `observes`." ;
    sh:class <http://data.ashrae.org/standard223#Sensor> ;
    sh:message "s223: An `ObservableProperty` is usually referred to by a `Sensor` using the relation `observes`." ;
    sh:minCount 1 ;
    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b1709

URI: nedb2d1fb8ae746a4b48d454a320283f9b1709


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EnumerableProperty` shall be associated with exactly one `EnumerationKind` using the relation `hasEnumerationKind`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerationKind> ;
    sh:maxCount 1 ;
    sh:message "s223: An `EnumerableProperty` shall be associated with exactly one `EnumerationKind` using the relation `hasEnumerationKind`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1707

URI: nedb2d1fb8ae746a4b48d454a320283f9b1707


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Checks for valid enumeration value consistent with the stated `EnumerationKind`." ;
    sh:path <http://data.ashrae.org/standard223#hasValue> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Checks for valid enumeration value consistent with the stated `EnumerationKind`." ;
            sh:message "s223: {$this} has an enumeration value of {?value} which is not a valid {?kind}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?value ?kind
WHERE {
$this s223:hasValue ?value .
$this s223:hasEnumerationKind ?kind .
FILTER (NOT EXISTS {?value a/rdfs:subClassOf* ?kind}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2069

URI: nedb2d1fb8ae746a4b48d454a320283f9b2069


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the associated threshold use non-commensurate `Unit`s." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the associated threshold use non-commensurate `Unit`s." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while threshold {?threshold} uses `Unit` {?tunit}. These are non-commensurate." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?threshold ?punit ?tunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasUnit ?tunit .
?punit qudt:hasDimensionVector ?pdv .
?tunit qudt:hasDimensionVector ?tdv .
FILTER (?punit != ?tunit) .
FILTER (?pdv != ?tdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2077

URI: nedb2d1fb8ae746a4b48d454a320283f9b2077


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the deadband associated with it." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:severity sh:Info ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the deadband associated with it." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while deadband {?deadband} uses `Unit` {?dunit}. Be careful." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?deadband ?punit ?dunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasUnit ?dunit .
?punit qudt:hasDimensionVector ?pdv .
?dunit qudt:hasDimensionVector ?ddv .
FILTER (?punit != ?dunit) .
FILTER (?pdv = ?ddv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2063

URI: nedb2d1fb8ae746a4b48d454a320283f9b2063


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the Setpoint associated with it have non-commensurate `QuantityKind`s." ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the Setpoint associated with it have non-commensurate `QuantityKind`s." ;
            sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while Setpoint {?setpoint} uses `QuantityKind` {?sqk} with DimensionVector {?sdv}. These are non-commensurate" ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?setpoint ?pqk ?sqk ?pdv ?sdv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasQuantityKind ?sqk .
?pqk qudt:hasDimensionVector ?pdv .
?sqk qudt:hasDimensionVector ?sdv .
FILTER (?pqk != ?sqk) .
FILTER (?pdv != ?sdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2083

URI: nedb2d1fb8ae746a4b48d454a320283f9b2083


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasSetpoint`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasSetpoint`." ;
    sh:path <http://data.ashrae.org/standard223#hasSetpoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2079

URI: nedb2d1fb8ae746a4b48d454a320283f9b2079


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `QuantifiableProperty` can be associated with an `EnumerableProperty` using the relation `hasAlarmStatus`." ;
    sh:class <http://data.ashrae.org/standard223#EnumerableProperty> ;
    sh:message "s223: A `QuantifiableProperty` can be associated with an `EnumerableProperty` using the relation `hasAlarmStatus`." ;
    sh:path <http://data.ashrae.org/standard223#hasAlarmStatus> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2082

URI: nedb2d1fb8ae746a4b48d454a320283f9b2082


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment """Normally, a `QuantifiableProperty` is associated with a static decimal value using `hasValue`, along with a single
`Unit` and `QuantityKind`. However, in some cases, a `QuantifiableProperty` may instead be associated with a `QuantityValue` using the relation
`qudt:quantityValue`. This allows the `QuantityValue` to express multiple equivalent combinations of `Unit` and value.""" ;
    sh:class <http://qudt.org/schema/qudt/QuantityValue> ;
    sh:message """s223: Normally, a `QuantifiableProperty` is associated with a static decimal value using `hasValue`, along with a single
`Unit` and `QuantityKind`. However, in some cases, a `QuantifiableProperty` may instead be associated with a `QuantityValue` using the relation
`qudt:quantityValue`. This allows the `QuantityValue` to express multiple equivalent combinations of `Unit` and value.""" ;
    sh:path <http://qudt.org/schema/qudt/quantityValue> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2080

URI: nedb2d1fb8ae746a4b48d454a320283f9b2080


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the threshold associated with it have non-commensurate `QuantityKind`s." ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the threshold associated with it have non-commensurate `QuantityKind`s." ;
            sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while threshold {?threshold} uses `QuantityKind` {?tqk} with DimensionVector {?tdv}. These are non-commensurate" ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?threshold ?pqk ?sqk ?pdv ?sdv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasQuantityKind ?tqk .
?pqk qudt:hasDimensionVector ?pdv .
?tqk qudt:hasDimensionVector ?tdv .
FILTER (?pqk != ?tqk) .
FILTER (?pdv != ?tdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2085

URI: nedb2d1fb8ae746a4b48d454a320283f9b2085


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the setpoint associated with it." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:severity sh:Info ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the setpoint associated with it." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while setpoint {?setpoint} uses `Unit` {?sunit}. Be careful." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?setpoint ?punit ?sunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasUnit ?sunit .
?punit qudt:hasDimensionVector ?pdv .
?sunit qudt:hasDimensionVector ?sdv .
FILTER (?punit != ?sunit) .
FILTER (?pdv = ?sdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2071

URI: nedb2d1fb8ae746a4b48d454a320283f9b2071


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` cannot have a value without a `Unit`." ;
    sh:path <http://data.ashrae.org/standard223#hasValue> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` cannot have a value without a `Unit`." ;
            sh:message "s223: {$this} referenced by {?subject} has a value of {?v} but does not specify a `Unit`." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?v ?subject
WHERE {
$this s223:hasValue ?v .
FILTER NOT EXISTS {$this qudt:hasUnit ?u} .
?subject ?p $this .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2067

URI: nedb2d1fb8ae746a4b48d454a320283f9b2067


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the associated deadband use non-commensurate `Unit`s." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the associated deadband use non-commensurate `Unit`s." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while deadband {?deadband} uses `Unit` {?dunit}. These are non-commensurate." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?deadband ?punit ?dunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasUnit ?dunit .
?punit qudt:hasDimensionVector ?pdv .
?dunit qudt:hasDimensionVector ?ddv .
FILTER (?punit != ?dunit) .
FILTER (?pdv != ?ddv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2090

URI: nedb2d1fb8ae746a4b48d454a320283f9b2090


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the associated setpoint use non-commensurate `Unit`s." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the associated setpoint use non-commensurate `Unit`s." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while setpoint {?setpoint} uses `Unit` {?sunit}. These are non-commensurate." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?setpoint ?punit ?sunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasSetpoint ?setpoint .
?setpoint qudt:hasUnit ?sunit .
?punit qudt:hasDimensionVector ?pdv .
?sunit qudt:hasDimensionVector ?sdv .
FILTER (?punit != ?sunit) .
FILTER (?pdv != ?sdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2073

URI: nedb2d1fb8ae746a4b48d454a320283f9b2073


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `QuantifiableProperty` should use `s223:hasValue` instead of `qudt:value`." ;
    sh:maxCount 0 ;
    sh:message "s223: A `QuantifiableProperty` should use `s223:hasValue` instead of `qudt:value`." ;
    sh:path <http://qudt.org/schema/qudt/value> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2075

URI: nedb2d1fb8ae746a4b48d454a320283f9b2075


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `QuantifiableProperty` can be associated with a`QuantifiableProperty` using the relation `hasThreshold`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: A `QuantifiableProperty` can be associated with a`QuantifiableProperty` using the relation `hasThreshold`." ;
    sh:path <http://data.ashrae.org/standard223#hasThreshold> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2087

URI: nedb2d1fb8ae746a4b48d454a320283f9b2087


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasDeadband`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: A `QuantifiableProperty` can be associated with a `QuantifiableProperty` using the relation `hasDeadband`." ;
    sh:path <http://data.ashrae.org/standard223#hasDeadband> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2074

URI: nedb2d1fb8ae746a4b48d454a320283f9b2074


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `QuantifiableProperty` can be associated with at most one `Unit` using the relation `qudt:hasUnit`." ;
    sh:class <http://qudt.org/schema/qudt/Unit> ;
    sh:maxCount 1 ;
    sh:message "s223: A `QuantifiableProperty` can be associated with at most one `Unit` using the relation `qudt:hasUnit`." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2092

URI: nedb2d1fb8ae746a4b48d454a320283f9b2092


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLConstraint ;
    rdfs:comment "Checks for consistent dimension vectors for a `QuantityKind` and the `Unit`" ;
    sh:message "s223: Inconsistent dimensionalities among the `Property`'s `Unit` and `Property`'s `QuantityKind`" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
    sh:select """
SELECT $this
   WHERE
{
      $this qudt:hasQuantityKind/qudt:hasDimensionVector ?qkdv1 .
      $this qudt:hasUnit/qudt:hasDimensionVector ?qkdv2 .
FILTER (?qkdv1 != ?qkdv2) .
}
""" .


        

nedb2d1fb8ae746a4b48d454a320283f9b2065

URI: nedb2d1fb8ae746a4b48d454a320283f9b2065


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` and the deadband associated with it have non-commensurate `QuantityKind`s." ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` and the deadband associated with it have non-commensurate `QuantityKind`s." ;
            sh:message "s223: {$this} uses `QuantityKind` {?pqk} with DimensionVector {?pdv}, while deadband {?deadband} uses `QuantityKind` {?dqk} with DimensionVector {?ddv}. These are non-commensurate" ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?deadband ?pqk ?dqk ?pdv ?ddv
WHERE {
$this qudt:hasQuantityKind ?pqk .
$this s223:hasDeadband ?deadband .
?deadband qudt:hasQuantityKind ?dqk .
?pqk qudt:hasDimensionVector ?pdv .
?dqk qudt:hasDimensionVector ?ddv .
FILTER (?pqk != ?dqk) .
FILTER (?pdv != ?ddv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2084

URI: nedb2d1fb8ae746a4b48d454a320283f9b2084


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `QuantifiableProperty` shall be associated with a `QuantityKind` using the relation `qudt:hasQuantityKind`." ;
    sh:class <http://qudt.org/schema/qudt/QuantityKind> ;
    sh:maxCount 1 ;
    sh:message "s223: A `QuantifiableProperty` shall be associated with a `QuantityKind` using the relation `qudt:hasQuantityKind`." ;
    sh:minCount 1 ;
    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2076

URI: nedb2d1fb8ae746a4b48d454a320283f9b2076


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment """A `QuantifiableProperty` can be associated with an optional Boolean flag using the relation `qudt:isDeltaQuantity`.
If the relation `qudt:isDeltaQuantity` has a value of true, the associated value should be interpreted as a difference reading, such as a
temperature difference. This is needed to distinguish between a temperature reading and a temperature difference reading, which
affects unit conversion calculations.""" ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1 ;
    sh:message """s223: A `QuantifiableProperty` can be associated with an optional Boolean flag using the relation `qudt:isDeltaQuantity`.
If the relation `qudt:isDeltaQuantity` has a value of true, the associated value should be interpreted as a difference reading, such as a
temperature difference. This is needed to distinguish between a temperature reading and a temperature difference reading, which
affects unit conversion calculations.""" ;
    sh:path <http://qudt.org/schema/qudt/isDeltaQuantity> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2088

URI: nedb2d1fb8ae746a4b48d454a320283f9b2088


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the threshold associated with it." ;
    sh:path <http://qudt.org/schema/qudt/hasUnit> ;
    sh:severity sh:Info ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "This `QuantifiableProperty` uses a different `Unit` than the threshold associated with it." ;
            sh:message "s223: {$this} uses `Unit` {?punit}, while threshold {?threshold} uses `Unit` {?tunit}. Be careful." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT $this ?threshold ?punit ?tunit
WHERE {
$this qudt:hasUnit ?punit .
$this s223:hasThreshold ?threshold .
?threshold qudt:hasUnit ?tunit .
?punit qudt:hasDimensionVector ?pdv .
?tunit qudt:hasDimensionVector ?tdv .
FILTER (?punit != ?tunit) .
FILTER (?pdv = ?tdv) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b551

URI: nedb2d1fb8ae746a4b48d454a320283f9b551


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasAspect s223:Aspect-Deadband` for properties referred to by `hasDeadband`" ;
    sh:construct """
CONSTRUCT {?y s223:hasAspect  s223:Aspect-Deadband}
WHERE {
?prop s223:hasDeadband ?y .
FILTER NOT EXISTS {?y s223:hasAspect s223:Aspect-Deadband}
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b552

URI: nedb2d1fb8ae746a4b48d454a320283f9b552


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasAspect s223:Aspect-Threshold` for properties referred to by `hasThreshold`" ;
    sh:construct """
CONSTRUCT {?y s223:hasAspect  s223:Aspect-Threshold}
WHERE {
?prop s223:hasThreshold ?y .
FILTER NOT EXISTS {?y s223:hasAspect s223:Aspect-Threshold}
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b550

URI: nedb2d1fb8ae746a4b48d454a320283f9b550


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasAspect s223:Aspect-Setpoint` for properties referred to by `hasSetpoint`" ;
    sh:construct """
CONSTRUCT {?y s223:hasAspect  s223:Aspect-Setpoint}
WHERE {
?prop s223:hasSetpoint ?y .
FILTER NOT EXISTS {?y s223:hasAspect s223:Aspect-Setpoint}
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b553

URI: nedb2d1fb8ae746a4b48d454a320283f9b553


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:SPARQLRule ;
    rdfs:comment "Infer the `hasQuantityKind` relation if it is unambiguous." ;
    sh:construct """
CONSTRUCT {
$this qudt:hasQuantityKind ?uniqueqk
}
WHERE {
{
SELECT $this (COUNT (DISTINCT (?qk)) AS ?count)
WHERE {
FILTER (NOT EXISTS {$this qudt:hasQuantityKind ?something}) .
$this qudt:hasUnit/qudt:hasQuantityKind ?qk .
}
GROUP BY $this
}
FILTER (?count = 1)
$this qudt:hasUnit/qudt:hasQuantityKind ?uniqueqk .
}
""" ;
    sh:prefixes <http://data.ashrae.org/standard223/1.0/inference/model-rules> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2093

URI: nedb2d1fb8ae746a4b48d454a320283f9b2093


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "A `QuantifiableObservableProperty` can be associated with zero or more `QuantifiableProperty`(s) indicating the desired value(s) which the control process is trying to maintain using the relation `hasSetpoint`." ;
    sh:class <http://data.ashrae.org/standard223#QuantifiableProperty> ;
    sh:message "s223: A `QuantifiableObservableProperty` can be associated with zero or more `QuantifiableProperty`(s) indicating the desired value(s) which the control process is trying to maintain using the relation `hasSetpoint`." ;
    sh:path <http://data.ashrae.org/standard223#hasSetpoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b468

URI: nedb2d1fb8ae746a4b48d454a320283f9b468


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] 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-2024 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." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#property-identifier> .


        

nedb2d1fb8ae746a4b48d454a320283f9b471

URI: nedb2d1fb8ae746a4b48d454a320283f9b471


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] 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." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#device-identifier> ;
    sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$" .


        

nedb2d1fb8ae746a4b48d454a320283f9b465

URI: nedb2d1fb8ae746a4b48d454a320283f9b465


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] 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." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#object-name> .


        

nedb2d1fb8ae746a4b48d454a320283f9b466

URI: nedb2d1fb8ae746a4b48d454a320283f9b466


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:PropertyShape ;
    rdfs:comment "If the relation `priority-for-writing` is present it provides the priority for writing values to the object." ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#priority-for-writing> .


        

nedb2d1fb8ae746a4b48d454a320283f9b470

URI: nedb2d1fb8ae746a4b48d454a320283f9b470


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:PropertyShape ;
    rdfs:comment "If the relation `device-name` is present it associates the external reference with a BACnet device having the specific device name." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#device-name> .


        

nedb2d1fb8ae746a4b48d454a320283f9b469

URI: nedb2d1fb8ae746a4b48d454a320283f9b469


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] 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." ;
    sh:datatype xsd:string ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#object-identifier> ;
    sh:pattern "^[A-Za-z0-9-]+,[1-9][0-9]*$" .


        

nedb2d1fb8ae746a4b48d454a320283f9b467

URI: nedb2d1fb8ae746a4b48d454a320283f9b467


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] 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." ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1 ;
    sh:minCount 0 ;
    sh:path <http://data.ashrae.org/bacnet/2020#property-array-index> .


        

nedb2d1fb8ae746a4b48d454a320283f9b2022

URI: nedb2d1fb8ae746a4b48d454a320283f9b2022


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirHandlingUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: An `AirHandlingUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b2026

URI: nedb2d1fb8ae746a4b48d454a320283f9b2026


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirHandlingUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: An `AirHandlingUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b635

URI: nedb2d1fb8ae746a4b48d454a320283f9b635


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a return fan, it will be declared as an instance of this class." ;
    sh:condition [ sh:property [ rdfs:comment "For units with a return fan, the MultipleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
                    sh:minCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                            sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReturnFan> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1271

URI: nedb2d1fb8ae746a4b48d454a320283f9b1271


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1250

URI: nedb2d1fb8ae746a4b48d454a320283f9b1250


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a relief damper, it will be declared as an instance of this class." ;
    sh:condition [ sh:property [ rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
                    sh:minCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                                            sh:maxCount 1 ;
                                            sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefDamper> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b641

URI: nedb2d1fb8ae746a4b48d454a320283f9b641


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit-WithReliefDamperFan, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefDamper> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefDamper> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b628

URI: nedb2d1fb8ae746a4b48d454a320283f9b628


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a relief fan, it will be declared as an instance of this class." ;
    sh:condition [ sh:property [ rdfs:comment "For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief fan with a VFD." ;
                    sh:minCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMaxCount 1 ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                            sh:node [ sh:property [ sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-WithReliefFan> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1257

URI: nedb2d1fb8ae746a4b48d454a320283f9b1257


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit and has a relief fan, it will be declared as an instance of this class." ;
    sh:condition [ sh:property [ sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMaxCount 1 ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReliefFan> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1256

URI: nedb2d1fb8ae746a4b48d454a320283f9b1256


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1218

URI: nedb2d1fb8ae746a4b48d454a320283f9b1218


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:DualFanDualDuctAirHandlingUnit, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualFanDualDuctAirHandlingUnit> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1264

URI: nedb2d1fb8ae746a4b48d454a320283f9b1264


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:SingleZoneVAVAirHandlingUnit and has a return fan, it will be declared as an instance of that class." ;
    sh:condition [ sh:property [ rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a Return air damper and a Return fan, the SingleZoneVAVAirHandlingUnit must indeed have a Return fan." ;
                    sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMaxCount 1 ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
                            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ] ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#SingleZoneVAVAirHandlingUnit-WithReturnFan> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1248

URI: nedb2d1fb8ae746a4b48d454a320283f9b1248


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit-OADandAFMS, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandAFMS> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1249

URI: nedb2d1fb8ae746a4b48d454a320283f9b1249


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit-OADandDP, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-OADandDP> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1239

URI: nedb2d1fb8ae746a4b48d454a320283f9b1239


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:AirHandlingUnit matches the constraints defined by g36:MultipleZoneVAVAirHandlingUnit and has a common economizer/minimum outdoor air damper, it will be declared as an instance of this class." ;
    sh:condition [ sh:property [ rdfs:comment "For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
                    sh:minCount 1 ;
                    sh:path <http://data.ashrae.org/standard223#contains> ;
                    sh:qualifiedMaxCount 1 ;
                    sh:qualifiedMinCount 1 ;
                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
                            sh:node [ sh:property [ sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                        [ sh:minCount 1 ;
                                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                            sh:qualifiedMinCount 1 ;
                                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ] ] ],
        <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#MultipleZoneVAVAirHandlingUnit-CommonDamper> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1510

URI: nedb2d1fb8ae746a4b48d454a320283f9b1510


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirHeatExchanger` shall have at least two air inlets, each paired with an outlet." ;
    sh:message "s223: An `AirHeatExchanger` shall have at least two air inlets, each paired with an outlet." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                        [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1517

URI: nedb2d1fb8ae746a4b48d454a320283f9b1517


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirHeatExchanger` shall have at least two air outlets, each paired with an inlet." ;
    sh:message "s223: An `AirHeatExchanger` shall have at least two air outlets, each paired with an inlet." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                        [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1515

URI: nedb2d1fb8ae746a4b48d454a320283f9b1515


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
    sh:message "s223: An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 0 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:message "s223: An `AirHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b535

URI: nedb2d1fb8ae746a4b48d454a320283f9b535


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "Infer the `hasRole` s223:Role-HeatTransfer relation for every instance of the listed targetClass values." ;
    sh:object <http://data.ashrae.org/standard223#Role-HeatTransfer> ;
    sh:predicate <http://data.ashrae.org/standard223#hasRole> ;
    sh:subject sh:this .


        

Battery CP shape

URI: http://data.ashrae.org/standard223#BatteryCPShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#BatteryCPShape> a sh:NodeShape ;
    rdfs:label "Battery CP shape" ;
    rdfs:comment "A `Battery` shall have at least one outlet or bidirectional `ConnectionPoint` using the medium Electricity." ;
    sh:message "s223: A `Battery` shall have at least one outlet or bidirectional `ConnectionPoint` using the medium Electricity." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Battery` shall have at least one outlet or bidirectional `ConnectionPoint` using the medium Electricity." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] [ sh:property [ rdfs:comment "A `Battery` shall have at least one outlet or bidirectional `ConnectionPoint` using the medium Electricity." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] ) ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Battery> .


        

nedb2d1fb8ae746a4b48d454a320283f9b670

URI: nedb2d1fb8ae746a4b48d454a320283f9b670


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Boiler` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Boiler` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b674

URI: nedb2d1fb8ae746a4b48d454a320283f9b674


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Boiler` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Boiler` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1607

URI: nedb2d1fb8ae746a4b48d454a320283f9b1607


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ChilledBeam` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
    sh:message "s223: A `ChilledBeam` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1603

URI: nedb2d1fb8ae746a4b48d454a320283f9b1603


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ChilledBeam` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `ChilledBeam` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1613

URI: nedb2d1fb8ae746a4b48d454a320283f9b1613


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ChilledBeam` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `ChilledBeam` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1611

URI: nedb2d1fb8ae746a4b48d454a320283f9b1611


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ChilledBeam` shall be associated with the `Role-Cooling` using the relation `hasRole`" ;
    sh:message "s223: A `ChilledBeam` shall be associated with the `Role-Cooling` using the relation `hasRole`" ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasRole> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Cooling> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b492

URI: nedb2d1fb8ae746a4b48d454a320283f9b492


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "A `ChilledBeam` must always have the role `Role-Cooling`" ;
    sh:object <http://data.ashrae.org/standard223#Role-Cooling> ;
    sh:predicate <http://data.ashrae.org/standard223#hasRole> ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b678

URI: nedb2d1fb8ae746a4b48d454a320283f9b678


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Chiller` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Chiller` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b682

URI: nedb2d1fb8ae746a4b48d454a320283f9b682


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Chiller` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Chiller` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b686

URI: nedb2d1fb8ae746a4b48d454a320283f9b686


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ClothesWasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ClothesWasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b694

URI: nedb2d1fb8ae746a4b48d454a320283f9b694


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ClothesWasher` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `ClothesWasher` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b690

URI: nedb2d1fb8ae746a4b48d454a320283f9b690


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ClothesWasher` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `ClothesWasher` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b703

URI: nedb2d1fb8ae746a4b48d454a320283f9b703


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `CoffeeMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `CoffeeMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1765

URI: nedb2d1fb8ae746a4b48d454a320283f9b1765


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: For one of the two inlets the Fluid is Air." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1790

URI: nedb2d1fb8ae746a4b48d454a320283f9b1790


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: A `Coil` shall have one or two bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 2 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ] [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1769

URI: nedb2d1fb8ae746a4b48d454a320283f9b1769


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: For one of the two outlets the Fluid is Air." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1799

URI: nedb2d1fb8ae746a4b48d454a320283f9b1799


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 3: A `Coil` shall have three bidirectionals using the medium `Mix-Fluid` or `Medium-ThermalContact`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 3 ;
    sh:qualifiedMinCount 3 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ] [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1777

URI: nedb2d1fb8ae746a4b48d454a320283f9b1777


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: A `Coil` shall have two outlets using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 2 ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1773

URI: nedb2d1fb8ae746a4b48d454a320283f9b1773


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: A `Coil` shall have two inlets using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 2 ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1786

URI: nedb2d1fb8ae746a4b48d454a320283f9b1786


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: A `Coil` shall have one outlet using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1782

URI: nedb2d1fb8ae746a4b48d454a320283f9b1782


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: A `Coil` shall have one inlet using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1675

URI: nedb2d1fb8ae746a4b48d454a320283f9b1675


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A cooling coil shall be related to the role '`Role-Cooling`' using the relation '`hasRole`'." ;
    sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ;
    sh:message "s223: A cooling coil shall be related to the role '`Role-Cooling`' using the relation '`hasRole`'." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1185

URI: nedb2d1fb8ae746a4b48d454a320283f9b1185


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:CoolingCoil matches the constraints defined by g36:ChilledWaterCoil, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b525

URI: nedb2d1fb8ae746a4b48d454a320283f9b525


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "A `CoolingCoil` must always have the role `Role-Cooling`" ;
    sh:object <http://data.ashrae.org/standard223#Role-Cooling> ;
    sh:predicate <http://data.ashrae.org/standard223#hasRole> ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1712

URI: nedb2d1fb8ae746a4b48d454a320283f9b1712


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A heating coil shall be related to the role '`Role-Heating`' using the relation '`hasRole`'." ;
    sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ;
    sh:message "s223: A heating coil shall be related to the role '`Role-Heating`' using the relation '`hasRole`'." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasRole> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1223

URI: nedb2d1fb8ae746a4b48d454a320283f9b1223


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:HeatingCoil matches the constraints defined by g36:HotWaterCoil, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b536

URI: nedb2d1fb8ae746a4b48d454a320283f9b536


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "Heating coils must always have the role `Role-Heating`" ;
    sh:object <http://data.ashrae.org/standard223#Role-Heating> ;
    sh:predicate <http://data.ashrae.org/standard223#hasRole> ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b709

URI: nedb2d1fb8ae746a4b48d454a320283f9b709


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Compressor` shall have at least one outlet." ;
    sh:message "s223: A `Compressor` shall have at least one outlet." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b707

URI: nedb2d1fb8ae746a4b48d454a320283f9b707


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Compressor` shall have at least one inlet." ;
    sh:message "s223: A `Compressor` shall have at least one inlet." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1619

URI: nedb2d1fb8ae746a4b48d454a320283f9b1619


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Computer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Computer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1013

URI: nedb2d1fb8ae746a4b48d454a320283f9b1013


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PersonalComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `PersonalComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1079

URI: nedb2d1fb8ae746a4b48d454a320283f9b1079


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ServerComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ServerComputer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b711

URI: nedb2d1fb8ae746a4b48d454a320283f9b711


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ComputerPrinter` shall have at least one inlet using the medium `Electricity-Signal` or `EM-RF`." ;
    sh:message "s223: A `ComputerPrinter` shall have at least one inlet using the medium `Electricity-Signal` or `EM-RF`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Electricity-Signal> ] [ sh:class <http://data.ashrae.org/standard223#EM-RF> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b719

URI: nedb2d1fb8ae746a4b48d454a320283f9b719


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ComputerPrinter` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ComputerPrinter` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b726

URI: nedb2d1fb8ae746a4b48d454a320283f9b726


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `CoolingTower` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `CoolingTower` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b730

URI: nedb2d1fb8ae746a4b48d454a320283f9b730


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `CoolingTower` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `CoolingTower` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b734

URI: nedb2d1fb8ae746a4b48d454a320283f9b734


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `CopyMachine` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `CopyMachine` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1843

URI: nedb2d1fb8ae746a4b48d454a320283f9b1843


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Damper` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Damper` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1847

URI: nedb2d1fb8ae746a4b48d454a320283f9b1847


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Damper` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Damper` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1272

URI: nedb2d1fb8ae746a4b48d454a320283f9b1272


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:TwoPositionDamper, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1201

URI: nedb2d1fb8ae746a4b48d454a320283f9b1201


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Damper matches the constraints defined by g36:Damper, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper>,
        <http://data.ashrae.org/standard223/1.0/extensions/g36#DamperOrShape1> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b746

URI: nedb2d1fb8ae746a4b48d454a320283f9b746


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Dishwasher` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Dishwasher` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b742

URI: nedb2d1fb8ae746a4b48d454a320283f9b742


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Dishwasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Dishwasher` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b750

URI: nedb2d1fb8ae746a4b48d454a320283f9b750


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Dishwasher` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Dishwasher` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b754

URI: nedb2d1fb8ae746a4b48d454a320283f9b754


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Door` shall have at least two bidirectional connection points using the medium `Fluid-Air`." ;
    sh:message "s223: A `Door` shall have at least two bidirectional connection points using the medium `Fluid-Air`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b807

URI: nedb2d1fb8ae746a4b48d454a320283f9b807


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityBreaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricityBreaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b803

URI: nedb2d1fb8ae746a4b48d454a320283f9b803


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityBreaker` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricityBreaker` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b771

URI: nedb2d1fb8ae746a4b48d454a320283f9b771


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectricClothesDryer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ElectricClothesDryer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b775

URI: nedb2d1fb8ae746a4b48d454a320283f9b775


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectricCooktop` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ElectricCooktop` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1680

URI: nedb2d1fb8ae746a4b48d454a320283f9b1680


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectricEnergyConverter` shall have at least two connection points using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ElectricEnergyConverter` shall have at least two connection points using the the medium `Constituent-Electricity`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b779

URI: nedb2d1fb8ae746a4b48d454a320283f9b779


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricEnergyDCDCConverter` shall have at least two connection points using the medium `Electricity-DC`." ;
    sh:message "s223: An `ElectricEnergyDCDCConverter` shall have at least two connection points using the medium `Electricity-DC`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b787

URI: nedb2d1fb8ae746a4b48d454a320283f9b787


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-AC`." ;
    sh:message "s223: An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-AC`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-AC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b783

URI: nedb2d1fb8ae746a4b48d454a320283f9b783


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-DC`." ;
    sh:message "s223: An `ElectricEnergyInverter` shall have at least one connection point that uses the medium `Electricity-DC`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b791

URI: nedb2d1fb8ae746a4b48d454a320283f9b791


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricEnergyTransformer` shall have at least two connection points using the medium `Electricity-AC`." ;
    sh:message "s223: An `ElectricEnergyTransformer` shall have at least two connection points using the medium `Electricity-AC`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-AC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b812

URI: nedb2d1fb8ae746a4b48d454a320283f9b812


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "An `ElectricityMeter` shall contain a `VoltageSensor` and `ElectricCurrentSensor` with the same observation location." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "An `ElectricityMeter` shall contain a `VoltageSensor` and `ElectricCurrentSensor` with the same observation location." ;
            sh:message "s223: {$this} contains {?sensorA} and {?sensorB} with different observation locations: {?locA} and {?locB}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            sh:select """
SELECT DISTINCT $this ?sensorA ?locA ?sensorB ?locB
WHERE {
$this s223:contains ?sensorA .
$this s223:contains ?sensorB .
?sensorA a/rdfs:subClassOf* s223:Sensor .
?sensorB a/rdfs:subClassOf* s223:Sensor .
FILTER (?sensorA != ?sensorB) .
?sensorA s223:hasObservationLocation ?locA .
?sensorB s223:hasObservationLocation ?locB .
FILTER (?locA != ?locB) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b814

URI: nedb2d1fb8ae746a4b48d454a320283f9b814


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment """Placeholder: The medium observed by the sensors contained by an `ElectricityMeter` shall be within the `Constituent-Electricity`
hierarchy.""" ;
    sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
    sh:message "s223: The medium observed by the sensors contained by an `ElectricityMeter` shall be within the `Constituent-Electricity` hierarchy." ;
    sh:minCount 1 ;
    sh:path ( <http://data.ashrae.org/standard223#contains> <http://data.ashrae.org/standard223#hasObservationLocation> <http://data.ashrae.org/standard223#hasMedium> ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b818

URI: nedb2d1fb8ae746a4b48d454a320283f9b818


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityMeter` shall contain at least one `ElectricCurrentSensor`." ;
    sh:message "s223: An `ElectricityMeter` shall contain at least one `ElectricCurrentSensor`." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#ElectricCurrentSensor> ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b827

URI: nedb2d1fb8ae746a4b48d454a320283f9b827


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityMeter` shall contain at least one `VoltageSensor`." ;
    sh:message "s223: An `ElectricityMeter` shall contain at least one `VoltageSensor`." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#VoltageSensor> ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b820

URI: nedb2d1fb8ae746a4b48d454a320283f9b820


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment """The observation location of the contained `VoltageSensor`(s) and `ElectricCurrentSensor`(s) shall be a single instance of
  either a `Connection` or a `ConnectionPoint`.""" ;
    sh:message "s223: The observation location of the sensors contained by an `ElectricityMeter` shall be either a `Connection` or a `ConnectionPoint`." ;
    sh:minCount 1 ;
    sh:or ( [ sh:class <http://data.ashrae.org/standard223#Connection> ] [ sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ] ) ;
    sh:path ( <http://data.ashrae.org/standard223#contains> <http://data.ashrae.org/standard223#hasObservationLocation> ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b811

URI: nedb2d1fb8ae746a4b48d454a320283f9b811


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityMeter` shall contain at least two `Sensor`s." ;
    sh:message "s223: An `ElectricityMeter` shall contain at least two `Sensor`s." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#contains> .


        

nedb2d1fb8ae746a4b48d454a320283f9b833

URI: nedb2d1fb8ae746a4b48d454a320283f9b833


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityOutlet` shall have exactly one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricityOutlet` shall have exactly one inlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b829

URI: nedb2d1fb8ae746a4b48d454a320283f9b829


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricityOutlet` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricityOutlet` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1532

URI: nedb2d1fb8ae746a4b48d454a320283f9b1532


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectricOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ElectricOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1686

URI: nedb2d1fb8ae746a4b48d454a320283f9b1686


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricResistanceElement` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricResistanceElement` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1700

URI: nedb2d1fb8ae746a4b48d454a320283f9b1700


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: An `ElectricResistanceElement` shall have one inlet using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1691

URI: nedb2d1fb8ae746a4b48d454a320283f9b1691


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: An `ElectricResistanceElement` shall have exactly one Bidirectional `ConnectionPoint` using the medium `Mix-Fluid`." ;
    sh:message "s223: Pattern 1: An `ElectricResistanceElement` requires exactly one `BidirectionalConnectionPoint` using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1696

URI: nedb2d1fb8ae746a4b48d454a320283f9b1696


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: An `ElectricResistanceElement` shall have one outlet using the medium `Mix-Fluid`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1684

URI: nedb2d1fb8ae746a4b48d454a320283f9b1684


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricResistanceElement` shall have the role `Role-Heating`." ;
    sh:message "s223: An `ElectricResistanceElement` shall have the role `Role-Heating`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1219

URI: nedb2d1fb8ae746a4b48d454a320283f9b1219


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] 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." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b799

URI: nedb2d1fb8ae746a4b48d454a320283f9b799


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricWaterDispenser` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: An `ElectricWaterDispenser` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b795

URI: nedb2d1fb8ae746a4b48d454a320283f9b795


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `ElectricWaterDispenser` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `ElectricWaterDispenser` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1629

URI: nedb2d1fb8ae746a4b48d454a320283f9b1629


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectronicDisplay` shall have at least one inlet using the medium `Electricity-Signal`." ;
    sh:message "s223: A `ElectronicDisplay` shall have at least one inlet using the medium `Electricity-Signal`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-Signal> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1625

URI: nedb2d1fb8ae746a4b48d454a320283f9b1625


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ElectronicDisplay` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `ElectronicDisplay` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b837

URI: nedb2d1fb8ae746a4b48d454a320283f9b837


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Elevator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Elevator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b841

URI: nedb2d1fb8ae746a4b48d454a320283f9b841


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Escalator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Escalator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b861

URI: nedb2d1fb8ae746a4b48d454a320283f9b861


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EthernetSwitch` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
    sh:message "s223: An `EthernetSwitch` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b857

URI: nedb2d1fb8ae746a4b48d454a320283f9b857


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `EthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b853

URI: nedb2d1fb8ae746a4b48d454a320283f9b853


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
    sh:message "s223: An `EthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b845

URI: nedb2d1fb8ae746a4b48d454a320283f9b845


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `EthernetPort` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
    sh:message "s223: An `EthernetPort` shall have at least two `BidirectionalConnectionPoint`s using the medium `Signal-WiredEthernet` or `Signal-FiberEthernet`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ] [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1859

URI: nedb2d1fb8ae746a4b48d454a320283f9b1859


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Fan` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Fan` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1863

URI: nedb2d1fb8ae746a4b48d454a320283f9b1863


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Fan` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Fan` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1220

URI: nedb2d1fb8ae746a4b48d454a320283f9b1220


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:Fan, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1222

URI: nedb2d1fb8ae746a4b48d454a320283f9b1222


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Fan matches the constraints defined by g36:FanWithVFD, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b875

URI: nedb2d1fb8ae746a4b48d454a320283f9b875


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanCoilUnit` shall have the role `Role-Heating` or `Role-Cooling`." ;
    sh:message "s223: A `FanCoilUnit` shall have the role `Role-Heating` or `Role-Cooling`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasRole> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:in ( <http://data.ashrae.org/standard223#Role-Heating> <http://data.ashrae.org/standard223#Role-Cooling> ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b883

URI: nedb2d1fb8ae746a4b48d454a320283f9b883


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanCoilUnit` shall be associated with at least 1 `Fan` using the relation `contains`." ;
    sh:message "s223: A `FanCoilUnit` shall be associated with at least 1 `Fan` using the relation `contains`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Fan> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b879

URI: nedb2d1fb8ae746a4b48d454a320283f9b879


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanCoilUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `FanCoilUnit` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b869

URI: nedb2d1fb8ae746a4b48d454a320283f9b869


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanCoilUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `FanCoilUnit` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b873

URI: nedb2d1fb8ae746a4b48d454a320283f9b873


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanCoilUnit` shall be associated with at least 1 `Coil` using the relation `contains`." ;
    sh:message "s223: A `FanCoilUnit` shall be associated with at least 1 `Coil` using the relation `contains`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Coil> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b893

URI: nedb2d1fb8ae746a4b48d454a320283f9b893


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FiberEthernetOutlet` shall have at least one outlet using the medium `Signal-FiberEthernet`." ;
    sh:message "s223: A `FiberEthernetOutlet` shall have at least one outlet using the medium `Signal-FiberEthernet`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b897

URI: nedb2d1fb8ae746a4b48d454a320283f9b897


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FiberEthernetOutlet` shall have exactly one inlet using the medium `Signal-FiberEthernet`." ;
    sh:message "s223: A `FiberEthernetOutlet` shall have exactly one inlet using the medium `Signal-FiberEthernet`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-FiberEthernet> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b903

URI: nedb2d1fb8ae746a4b48d454a320283f9b903


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 1: Associated `ConnectionPoint`s with two pure mediums." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 1: Two pure mediums." ;
            sh:message "s223: {$this} with inlet medium {?m2} is incompatible with outlet medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b901

URI: nedb2d1fb8ae746a4b48d454a320283f9b901


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 2: Associated `ConnectionPoint`s, one with a pure medium and one with a medium having constituents.." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 2: A medium with constituents and a pure medium." ;
            sh:message "s223: {$this} has an incompatible medium {?m1} with any constituent of {?m2}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            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 .
?m2 s223:composedOf/s223:ofConstituent ?s2 .
FILTER NOT EXISTS {?m1 s223:composedOf ?c1} .
FILTER NOT EXISTS {
  ?m2 s223:composedOf/s223:ofConstituent ?s12 .
  {?s12 rdfs:subClassOf* ?m1} UNION {?m1 rdfs:subClassOf* ?s12} .
}
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b907

URI: nedb2d1fb8ae746a4b48d454a320283f9b907


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Filter` shall have at least one outlet." ;
    sh:message "s223: A `Filter` shall have at least one outlet." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b905

URI: nedb2d1fb8ae746a4b48d454a320283f9b905


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "Incompatible Medium. Case 3: Associated `ConnectionPoint`s with mediums having constituents." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "Incompatible Medium. Case 3: Two mediums with constituents." ;
            sh:message "s223: For `Filter` {$this} there is no compatible substance between medium {?m2} and medium {?m1}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            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} .
  }
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b909

URI: nedb2d1fb8ae746a4b48d454a320283f9b909


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Filter` shall have at least one inlet `ConnectionPoint`." ;
    sh:message "s223: A `Filter` shall have at least one inlet `ConnectionPoint`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b911

URI: nedb2d1fb8ae746a4b48d454a320283f9b911


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FlushToilet` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `FlushToilet` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b915

URI: nedb2d1fb8ae746a4b48d454a320283f9b915


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FlushToilet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `FlushToilet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b919

URI: nedb2d1fb8ae746a4b48d454a320283f9b919


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Freezer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Freezer` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b923

URI: nedb2d1fb8ae746a4b48d454a320283f9b923


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FumeHood` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `FumeHood` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b927

URI: nedb2d1fb8ae746a4b48d454a320283f9b927


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FumeHood` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `FumeHood` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b935

URI: nedb2d1fb8ae746a4b48d454a320283f9b935


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Furnace` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Furnace` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b931

URI: nedb2d1fb8ae746a4b48d454a320283f9b931


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Furnace` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `Furnace` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b945

URI: nedb2d1fb8ae746a4b48d454a320283f9b945


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Generator` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
    sh:message "s223: A `Generator` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b946

URI: nedb2d1fb8ae746a4b48d454a320283f9b946


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Generator` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
    sh:message "s223: A `Generator` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b666

URI: nedb2d1fb8ae746a4b48d454a320283f9b666


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirToAirHeatPump` shall have at least two outlets using the medium `Fluid-Air`." ;
    sh:message "s223: An `AirToAirHeatPump` shall have at least two outlets using the medium `Fluid-Air`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b662

URI: nedb2d1fb8ae746a4b48d454a320283f9b662


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `AirToAirHeatPump` shall have at least two inlets using the medium `Fluid-Air`." ;
    sh:message "s223: An `AirToAirHeatPump` shall have at least two inlets using the medium `Fluid-Air`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b955

URI: nedb2d1fb8ae746a4b48d454a320283f9b955


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `GroundToAirHeatPump` shall have at least one `BidirectionalConnectionPoint` using `Medium-ThermalContact`." ;
    sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
    sh:message "s223: A `GroundToAirHeatPump` shall have at least one `BidirectionalConnectionPoint` using `Medium-ThermalContact`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Medium-ThermalContact> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b959

URI: nedb2d1fb8ae746a4b48d454a320283f9b959


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `GroundToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `GroundToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b963

URI: nedb2d1fb8ae746a4b48d454a320283f9b963


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `GroundToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `GroundToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1161

URI: nedb2d1fb8ae746a4b48d454a320283f9b1161


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1165

URI: nedb2d1fb8ae746a4b48d454a320283f9b1165


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Water`" ;
    sh:message "s223: A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1153

URI: nedb2d1fb8ae746a4b48d454a320283f9b1153


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `WaterToAirHeatPump` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1157

URI: nedb2d1fb8ae746a4b48d454a320283f9b1157


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `WaterToAirHeatPump` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1173

URI: nedb2d1fb8ae746a4b48d454a320283f9b1173


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToWaterHeatPump` shall have at least two inlets using the medium `Fluid-Water`." ;
    sh:message "s223: A `WaterToWaterHeatPump` shall have at least two inlets using the medium `Fluid-Water`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1169

URI: nedb2d1fb8ae746a4b48d454a320283f9b1169


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterToWaterHeatPump` shall have at least two outlets using the medium `Fluid-Water`." ;
    sh:message "s223: A `WaterToWaterHeatPump` shall have at least two outlets using the medium `Fluid-Water`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1541

URI: nedb2d1fb8ae746a4b48d454a320283f9b1541


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `HydronicHeatExchanger` shall have no `ConnectionPoint`s using the medium `Fluid-Air`." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A `HydronicHeatExchanger` shall have no `ConnectionPoint`s using the medium `Fluid-Air`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 0 ;
    sh:qualifiedValueShape [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1549

URI: nedb2d1fb8ae746a4b48d454a320283f9b1549


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
    sh:message "s223: A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 0 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:message "s223: A `HydronicHeatExchanger` shall have no `BidirectionalConnectionPoint`s." ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1536

URI: nedb2d1fb8ae746a4b48d454a320283f9b1536


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `HydronicHeatExchanger` shall have at least two liquid inlets, each paired with an outlet." ;
    sh:message "s223: A `HydronicHeatExchanger` shall have at least two liquid inlets, each paired with an outlet." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ],
                        [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1544

URI: nedb2d1fb8ae746a4b48d454a320283f9b1544


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `HydronicHeatExchanger` shall have at least two liquid outlets, each paired with an inlet." ;
    sh:message "s223: A `HydronicHeatExchanger` shall have at least two liquid outlets, each paired with an inlet." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#pairedConnectionPoint> ],
                        [ sh:class <http://data.ashrae.org/standard223#Mix-Fluid> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b978

URI: nedb2d1fb8ae746a4b48d454a320283f9b978


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `IceMaker` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: An `IceMaker` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b974

URI: nedb2d1fb8ae746a4b48d454a320283f9b974


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An `IceMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: An `IceMaker` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b990

URI: nedb2d1fb8ae746a4b48d454a320283f9b990


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Luminaire` shall have at least one outlet using the medium `EM-Light`." ;
    sh:message "s223: A `Luminaire` shall have at least one outlet using the medium `EM-Light`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b986

URI: nedb2d1fb8ae746a4b48d454a320283f9b986


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Luminaire` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Luminaire` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b994

URI: nedb2d1fb8ae746a4b48d454a320283f9b994


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `MicrowaveOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `MicrowaveOven` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b998

URI: nedb2d1fb8ae746a4b48d454a320283f9b998


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Motor` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Motor` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1017

URI: nedb2d1fb8ae746a4b48d454a320283f9b1017


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PhotovoltaicModule` shall have at least one inlet using the medium `EM-Light`." ;
    sh:message "s223: A `PhotovoltaicModule` shall have at least one inlet using the medium `EM-Light`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1021

URI: nedb2d1fb8ae746a4b48d454a320283f9b1021


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PhotovoltaicModule` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `PhotovoltaicModule` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1037

URI: nedb2d1fb8ae746a4b48d454a320283f9b1037


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PowerOverEthernetSwitch` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
    sh:message "s223: A `PowerOverEthernetSwitch` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#PowerAndSignal-PoE> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1033

URI: nedb2d1fb8ae746a4b48d454a320283f9b1033


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PowerOverEthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `PowerOverEthernetSwitch` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1025

URI: nedb2d1fb8ae746a4b48d454a320283f9b1025


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PowerOverEthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
    sh:message "s223: A `PowerOverEthernetPort` shall have at least one inlet using the medium `Electricity-DC`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Electricity-DC> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1029

URI: nedb2d1fb8ae746a4b48d454a320283f9b1029


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `PowerOverEthernetPort` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
    sh:message "s223: A `PowerOverEthernetPort` shall have at least one `BidirectionalConnectionPoint` using the medium `PowerAndSignal-PoE`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#PowerAndSignal-PoE> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1043

URI: nedb2d1fb8ae746a4b48d454a320283f9b1043


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
    sh:message "s223: A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ rdfs:comment "A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                    sh:message "s223: A `Pump` shall have at least one inlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                    sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Refrigerant> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Oil> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                    sh:severity sh:Warning ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1041

URI: nedb2d1fb8ae746a4b48d454a320283f9b1041


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "The non-electrical `ConnectionPoint`s of a `Pump` must have compatible Media." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:sparql [ a sh:SPARQLConstraint ;
            rdfs:comment "The non-electrical `ConnectionPoint`s of a `Pump` must have compatible Media." ;
            sh:message "s223: {?cpa} and {?cpb} on the `Pump` {$this} have incompatible Media {$mediuma} and {$mediumb}." ;
            sh:prefixes <http://data.ashrae.org/standard223/1.0/validation/model> ;
            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}) .
}
""" ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1055

URI: nedb2d1fb8ae746a4b48d454a320283f9b1055


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
    sh:message "s223: A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ rdfs:comment "A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                    sh:message "s223: A `Pump` shall have at least one outlet using the medium `Fluid-Water`, `Fluid-Oil` or `Constituent-Refrigerant`." ;
                    sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Refrigerant> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Oil> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                    sh:severity sh:Warning ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1555

URI: nedb2d1fb8ae746a4b48d454a320283f9b1555


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `RadiantHeater` shall have at least one outlet connection point using the medium `Light-Infrared`." ;
    sh:message "s223: A `RadiantHeater` shall have at least one outlet connection point using the medium `Light-Infrared`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Light-Infrared> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1559

URI: nedb2d1fb8ae746a4b48d454a320283f9b1559


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A radiant heater shall have the role `Role-Heating`." ;
    sh:message "s223: A radiant heater shall have the role `Role-Heating`." ;
    sh:path <http://data.ashrae.org/standard223#hasRole> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1575

URI: nedb2d1fb8ae746a4b48d454a320283f9b1575


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: A radiant heater shall have an inlet using the medium `Fluid-Water`." ;
    sh:message "s223: Pattern 2: A radiant heater shall have an inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1571

URI: nedb2d1fb8ae746a4b48d454a320283f9b1571


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 2: A radiant heater shall have an outlet using the medium `Fluid-Water`." ;
    sh:message "s223: Pattern 2: A radiant heater shall have an outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1562

URI: nedb2d1fb8ae746a4b48d454a320283f9b1562


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Pattern 1: A radiant heater shall have at least one inlet using the medium `Constituent-Electricity` or `Fluid-NaturalGas`." ;
    sh:message "s223: Pattern 1: A radiant heater shall have at least one inlet using the medium `Constituent-Electricity` or `Fluid-NaturalGas`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:or ( [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ] [ sh:class <http://data.ashrae.org/standard223#Fluid-NaturalGas> ] ) ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

Radiator inlet shape

URI: http://data.ashrae.org/standard223#RadiatorInletShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#RadiatorInletShape> a sh:NodeShape ;
    rdfs:label "Radiator inlet shape" ;
    rdfs:comment "A `Radiator` shall have at least one inlet using the medium Electricity or inlet and outlet of Water." ;
    sh:message "s223: A `Radiator` shall have at least one inlet using the medium Electricity or inlet and outlet of Water." ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Radiator> ;
    sh:xone ( [ sh:property [ rdfs:comment "A `Radiator` shall have at least one inlet using the medium Electricity or inlet and outlet of Water." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] [ sh:property [ rdfs:comment "A `Radiator` shall have at least one outlet using the medium Water." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ],
                    [ rdfs:comment "A `Radiator` shall have at least one inlet using the medium Electricity or Water." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
                                sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                                                sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ] ] ) .


        

nedb2d1fb8ae746a4b48d454a320283f9b1650

URI: nedb2d1fb8ae746a4b48d454a320283f9b1650


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Radiator` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
    sh:message "s223: A `Radiator` shall have at least one bidirectional connection point using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1648

URI: nedb2d1fb8ae746a4b48d454a320283f9b1648


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "Radiators shall have the role `Role-Heating`." ;
    sh:message "s223: Radiators shall have the role `Role-Heating`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasRole> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Role-Heating> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1075

URI: nedb2d1fb8ae746a4b48d454a320283f9b1075


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Refrigerator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `Refrigerator` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1067

URI: nedb2d1fb8ae746a4b48d454a320283f9b1067


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `RFOutlet` shall have exactly one inlet using the medium `RF-Signal`." ;
    sh:message "s223: A `RFOutlet` shall have exactly one inlet using the medium `RF-Signal`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#RF-Signal> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1071

URI: nedb2d1fb8ae746a4b48d454a320283f9b1071


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `RFOutlet` shall have at least one outlet using the medium `RF-Signal`." ;
    sh:message "s223: A `RFOutlet` shall have at least one outlet using the medium `RF-Signal`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#RF-Signal> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1083

URI: nedb2d1fb8ae746a4b48d454a320283f9b1083


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Sink` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Sink` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1087

URI: nedb2d1fb8ae746a4b48d454a320283f9b1087


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Sink` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Sink` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1091

URI: nedb2d1fb8ae746a4b48d454a320283f9b1091


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SolarThermalCollector` shall have at least one inlet using the medium `EM-Light`." ;
    sh:message "s223: A `SolarThermalCollector` shall have at least one inlet using the medium `EM-Light`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1095

URI: nedb2d1fb8ae746a4b48d454a320283f9b1095


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SolarThermalCollector` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `SolarThermalCollector` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1099

URI: nedb2d1fb8ae746a4b48d454a320283f9b1099


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SteamInjector` shall have at least one inlet using the medium `Water-Steam`." ;
    sh:message "s223: A `SteamInjector` shall have at least one inlet using the medium `Water-Steam`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Water-Steam> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1103

URI: nedb2d1fb8ae746a4b48d454a320283f9b1103


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SteamInjector` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `SteamInjector` shall have at least one inlet using the medium `Fluid-Air`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1107

URI: nedb2d1fb8ae746a4b48d454a320283f9b1107


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SteamInjector` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:message "s223: A `SteamInjector` shall have at least one outlet using the medium `Fluid-Air`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true .


        

nedb2d1fb8ae746a4b48d454a320283f9b1736

URI: nedb2d1fb8ae746a4b48d454a320283f9b1736


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `TerminalUnit` shall have at least one inlet `ConnectionPoint` using the medium `Fluid-Air`." ;
    sh:message "s223: A `TerminalUnit` shall have at least one inlet `ConnectionPoint` using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1740

URI: nedb2d1fb8ae746a4b48d454a320283f9b1740


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `TerminalUnit` shall have at least one outlet `ConnectionPoint` using the medium `Fluid-Air`." ;
    sh:message "s223: A `TerminalUnit` shall have at least one outlet `ConnectionPoint` using the medium `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1810

URI: nedb2d1fb8ae746a4b48d454a320283f9b1810


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `DualDuctTerminal` shall have at least two inlets using the medium `Fluid-Air`." ;
    sh:message "s223: A `DualDuctTerminal` shall have at least two inlets using the medium `Fluid-Air`." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1217

URI: nedb2d1fb8ae746a4b48d454a320283f9b1217


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:DualDuctTerminal matches the constraints defined by g36:DualDuctTerminalWithInletSensors, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithInletSensors> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1216

URI: nedb2d1fb8ae746a4b48d454a320283f9b1216


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:DualDuctTerminal matches the constraints defined by g36:DualDuctTerminalWithDischargeSensor, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#DualDuctTerminalWithDischargeSensor> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1634

URI: nedb2d1fb8ae746a4b48d454a320283f9b1634


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `FanPoweredTerminal` shall be associated with at least one `Fan` by using the relation `contains`." ;
    sh:message "s223: A `FanPoweredTerminal` shall be associated with at least one `Fan` by using the relation `contains`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Fan> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1221

URI: nedb2d1fb8ae746a4b48d454a320283f9b1221


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:FanPoweredTerminal matches the constraints defined by g36:FanPoweredTerminal, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#FanPoweredTerminal> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1731

URI: nedb2d1fb8ae746a4b48d454a320283f9b1731


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `SingleDuctTerminal` shall be associated with at least one `Damper` using the relation `contains`." ;
    sh:message "s223: A `SingleDuctTerminal` shall be associated with at least one `Damper` using the relation `contains`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#Damper> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1274

URI: nedb2d1fb8ae746a4b48d454a320283f9b1274


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:SingleDuctTerminal matches the constraints defined by g36:VAVTerminalWithReheat, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalWithReheat> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1273

URI: nedb2d1fb8ae746a4b48d454a320283f9b1273


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:SingleDuctTerminal matches the constraints defined by g36:VAVTerminalCoolingOnly, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#VAVTerminalCoolingOnly> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1115

URI: nedb2d1fb8ae746a4b48d454a320283f9b1115


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Thermal Energy Storage Unit shall have at least two connection points." ;
    sh:class <http://data.ashrae.org/standard223#ConnectionPoint> ;
    sh:message "s223: A Thermal Energy Storage Unit shall have at least two connection points." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1118

URI: nedb2d1fb8ae746a4b48d454a320283f9b1118


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Turbine` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
    sh:message "s223: A `Turbine` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                    sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1117

URI: nedb2d1fb8ae746a4b48d454a320283f9b1117


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Turbine` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
    sh:message "s223: A `Turbine` shall be associated with at least one `ConnectionPoint` using the relation `hasConnectionPoint`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1126

URI: nedb2d1fb8ae746a4b48d454a320283f9b1126


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `USBOutlet` shall have exactly one inlet using the medium `Signal-USB`." ;
    sh:message "s223: A `USBOutlet` shall have exactly one inlet using the medium `Signal-USB`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1130

URI: nedb2d1fb8ae746a4b48d454a320283f9b1130


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `USBOutlet` shall have at least one outlet using the medium `Signal-USB`." ;
    sh:message "s223: A `USBOutlet` shall have at least one outlet using the medium `Signal-USB`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-USB> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

Valve CP shape

URI: http://data.ashrae.org/standard223#ValveCPShape


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223#ValveCPShape> a sh:NodeShape ;
    rdfs:label "Valve CP shape" ;
    rdfs:comment "A `Valve` shall have at least one inlet and one outlet or two bidirectional connection points." ;
    sh:message "s223: A `Valve` shall have at least one inlet and one outlet or two bidirectional connection points." ;
    sh:or ( [ sh:property [ rdfs:comment "A `Valve` shall have at least one inlet and one outlet or two bidirectional connection points." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ],
                    [ rdfs:comment "A `Valve` shall have at least one inlet and one outlet or two bidirectional connection points." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] [ sh:property [ rdfs:comment "A `Valve` shall have at least one inlet and one outlet or two bidirectional connection points." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#BidirectionalConnectionPoint> ] ;
                        sh:qualifiedValueShapesDisjoint true ] ] ) ;
    sh:severity sh:Warning ;
    sh:targetClass <http://data.ashrae.org/standard223#Valve> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1224

URI: nedb2d1fb8ae746a4b48d454a320283f9b1224


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:HotWaterValve, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve>,
        <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveOrShape1> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b1186

URI: nedb2d1fb8ae746a4b48d454a320283f9b1186


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] a sh:TripleRule ;
    rdfs:comment "If an instance of s223:Valve matches the constraints defined by g36:ChilledWaterValve, it will be declared as an instance of that class." ;
    sh:condition <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve>,
        <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveOrShape1> ;
    sh:object <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> ;
    sh:predicate rdf:type ;
    sh:subject sh:this .


        

nedb2d1fb8ae746a4b48d454a320283f9b762

URI: nedb2d1fb8ae746a4b48d454a320283f9b762


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Drain` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Drain` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b758

URI: nedb2d1fb8ae746a4b48d454a320283f9b758


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Drain` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Drain` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b885

URI: nedb2d1fb8ae746a4b48d454a320283f9b885


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Faucet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Faucet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b889

URI: nedb2d1fb8ae746a4b48d454a320283f9b889


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Faucet` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `Faucet` shall have at least one inlet using the medium `Fluid-Water`." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1116

URI: nedb2d1fb8ae746a4b48d454a320283f9b1116


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `ThreeWayValve` shall have at least three `ConnectionPoint`s using the relation `hasConnectionPoint`." ;
    sh:message "s223: A `ThreeWayValve` shall have at least three `ConnectionPoint`s using the relation `hasConnectionPoint`." ;
    sh:minCount 3 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1123

URI: nedb2d1fb8ae746a4b48d454a320283f9b1123


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `TwoWayValve` shall have at least one outlet." ;
    sh:message "s223: A `TwoWayValve` shall have at least one outlet." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1121

URI: nedb2d1fb8ae746a4b48d454a320283f9b1121


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `TwoWayValve` shall have at least one inlet." ;
    sh:message "s223: A `TwoWayValve` shall have at least one inlet." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1139

URI: nedb2d1fb8ae746a4b48d454a320283f9b1139


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `VariableFrequencyDrive` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `VariableFrequencyDrive` shall have at least one outlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1134

URI: nedb2d1fb8ae746a4b48d454a320283f9b1134


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

[] rdfs:comment "If the relation `connectedTo` is present, it shall associate the `VariableFrequencyDrive` with a `Equipment`." ;
    sh:class <http://data.ashrae.org/standard223#Equipment> ;
    sh:message "s223: If the relation `connectedTo` is present, it shall associate the `VariableFrequencyDrive` with a `Equipment`." ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b1135

URI: nedb2d1fb8ae746a4b48d454a320283f9b1135


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `VariableFrequencyDrive` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:message "s223: A `VariableFrequencyDrive` shall have at least one inlet using the medium `Constituent-Electricity`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Constituent-Electricity> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] ;
    sh:severity sh:Warning .


        

nedb2d1fb8ae746a4b48d454a320283f9b1145

URI: nedb2d1fb8ae746a4b48d454a320283f9b1145


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterOutlet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `WaterOutlet` shall have at least one outlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1149

URI: nedb2d1fb8ae746a4b48d454a320283f9b1149


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WaterOutlet` shall have exactly one inlet using the medium `Fluid-Water`." ;
    sh:message "s223: A `WaterOutlet` shall have exactly one inlet using the medium `Fluid-Water`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Water> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1585

URI: nedb2d1fb8ae746a4b48d454a320283f9b1585


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Window` shall have at least one inlet using the medium `EM-Light` or `Fluid-Air`." ;
    sh:message "s223: A `Window` shall have at least one inlet using the medium `EM-Light` or `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                    sh:severity sh:Warning ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1594

URI: nedb2d1fb8ae746a4b48d454a320283f9b1594


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `Window` shall have at least one outlet using the medium `EM-Light` or `Fluid-Air`." ;
    sh:message "s223: A `Window` shall have at least one outlet using the medium `EM-Light` or `Fluid-Air`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:or ( [ sh:property [ sh:class <http://data.ashrae.org/standard223#EM-Light> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] [ sh:property [ sh:class <http://data.ashrae.org/standard223#Fluid-Air> ;
                                        sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ) ;
                    sh:severity sh:Warning ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1177

URI: nedb2d1fb8ae746a4b48d454a320283f9b1177


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WiredEthernetOutlet` shall have at least one outlet using the medium `Signal-WiredEthernet`." ;
    sh:message "s223: A `WiredEthernetOutlet` shall have at least one outlet using the medium `Signal-WiredEthernet`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b1181

URI: nedb2d1fb8ae746a4b48d454a320283f9b1181


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A `WiredEthernetOutlet` shall have exactly one inlet using the medium `Signal-WiredEthernet`." ;
    sh:message "s223: A `WiredEthernetOutlet` shall have exactly one inlet using the medium `Signal-WiredEthernet`." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Signal-WiredEthernet> ;
                            sh:path <http://data.ashrae.org/standard223#hasMedium> ] ] ] .


        

Damper Or Shape 1

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#DamperOrShape1


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#DamperOrShape1> a sh:NodeShape ;
    rdfs:label "Damper Or Shape 1" ;
    rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ;
    sh:message "g36: A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ;
    sh:or ( [ sh:property [ rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] [ sh:property [ rdfs:comment "A damper shall have at least one analog damper command property or at least two binary damper command properties using the relation hasProperty." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://data.ashrae.org/standard223#EnumerationKind-Binary> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ] ] ) ;
    sh:targetClass <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> .


        

nedb2d1fb8ae746a4b48d454a320283f9b398

URI: nedb2d1fb8ae746a4b48d454a320283f9b398


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ;
    sh:message "g36: A Two Position Damper shall have at least one open-and-close damper command property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                        [ sh:class <http://data.ashrae.org/standard223#EnumerationKind-Binary> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b149

URI: nedb2d1fb8ae746a4b48d454a320283f9b149


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ;
    sh:message "g36: The HotWaterCoil shall be connected to a HotWaterValve using the relation connectedTo." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b105

URI: nedb2d1fb8ae746a4b48d454a320283f9b105


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ;
    sh:message "g36: An electric heating coil shall have at least one analog heating command property using a relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

Hot Water Valve Or Shape 1

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveOrShape1


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValveOrShape1> a sh:NodeShape ;
    rdfs:label "Hot Water Valve Or Shape 1" ;
    rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
    sh:message "g36: A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
    sh:or ( [ sh:property [ rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] [ sh:property [ rdfs:comment "A HotWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://data.ashrae.org/standard223#EnumerationKind-Binary> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ] ] ) ;
    sh:targetClass <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterValve> .


        

nedb2d1fb8ae746a4b48d454a320283f9b20

URI: nedb2d1fb8ae746a4b48d454a320283f9b20


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The ChilledWaterCoil shall be connected to a ChilledWaterValve using the relation connectedTo." ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> ] .


        

Chilled Water Valve Or Shape 1

URI: http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveOrShape1


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValveOrShape1> a sh:NodeShape ;
    rdfs:label "Chilled Water Valve Or Shape 1" ;
    rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
    sh:message "g36: A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
    sh:or ( [ sh:property [ rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
                        sh:minCount 1 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 1 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] [ sh:property [ rdfs:comment "A ChilledWaterValve shall have at least one analog valve command property or at least two binary valve command properties using the relation hasProperty." ;
                        sh:minCount 2 ;
                        sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                        sh:qualifiedMinCount 2 ;
                        sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
                                sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                            [ sh:hasValue <http://data.ashrae.org/standard223#EnumerationKind-Binary> ;
                                                sh:maxCount 1 ;
                                                sh:minCount 1 ;
                                                sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ] ] ) ;
    sh:targetClass <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterValve> .


        

nedb2d1fb8ae746a4b48d454a320283f9b439

URI: nedb2d1fb8ae746a4b48d454a320283f9b439


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ;
    sh:message "g36: A Zone shall have a zone temperature setpoint adjustment property using the relation hasProperty, if applicable." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Aspect-Delta> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ;
    sh:qualifiedValueShapesDisjoint true ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b434

URI: nedb2d1fb8ae746a4b48d454a320283f9b434


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ;
    sh:message "g36: A Zone shall have at least a zone CO2 concentration property using the relation hasProperty, if applicable control is used." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Constituent-CO2> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#ofConstituent> ],
                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b444

URI: nedb2d1fb8ae746a4b48d454a320283f9b444


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Zone shall have at least one window switch on-off property using the relation hasProperty." ;
    sh:message "g36: A Zone shall have at least one window switch on-off property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Binary-OnOff> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ],
                        [ rdfs:comment "Property shall be measured at a window." ;
                            sh:class <http://data.ashrae.org/standard223#Window> ;
                            sh:path [ sh:alternativePath ( ( [ sh:inversePath <http://data.ashrae.org/standard223#observes> ] <http://data.ashrae.org/standard223#hasObservationLocation> ) [ sh:inversePath <http://data.ashrae.org/standard223#hasProperty> ] ) ] ] ] ] ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b456

URI: nedb2d1fb8ae746a4b48d454a320283f9b456


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ;
    sh:message "g36: A Zone shall have at least one binary zone occupancy property using the relation hasProperty" ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedObservableProperty> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#EnumerationKind-Occupancy> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] ;
    sh:severity sh:Info .


        

nedb2d1fb8ae746a4b48d454a320283f9b433

URI: nedb2d1fb8ae746a4b48d454a320283f9b433


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ;
    sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
    sh:message "g36: A Zone shall have at least one Domain-HVAC using the relation hasDomain. " ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDomain> .


        

nedb2d1fb8ae746a4b48d454a320283f9b461

URI: nedb2d1fb8ae746a4b48d454a320283f9b461


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A ZoneGroup shall contain at least one Zone using the relation contains." ;
    sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
    sh:message "g36: A ZoneGroup shall contain at least one Zone using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> .


        

nedb2d1fb8ae746a4b48d454a320283f9b460

URI: nedb2d1fb8ae746a4b48d454a320283f9b460


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ;
    sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
    sh:message "g36: A ZoneGroup shall have the Domain HVAC using the relation hasDomain." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasDomain> .


        

nedb2d1fb8ae746a4b48d454a320283f9b109

URI: nedb2d1fb8ae746a4b48d454a320283f9b109


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A Fan shall have at least one Start/Stop command using the relation hasProperty." ;
    sh:message "g36: A Fan shall have at least one Start/Stop command using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#EnumeratedActuatableProperty> ;
            sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223#Binary-OnOff> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasEnumerationKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b145

URI: nedb2d1fb8ae746a4b48d454a320283f9b145


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A fan with VFD shall have at least one fan speed command using the relation hasProperty." ;
    sh:message "g36: A fan with VFD shall have at least one fan speed command using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b403

URI: nedb2d1fb8ae746a4b48d454a320283f9b403


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalCoolingOnly connects to Domain Space in a g36:Zone" ;
    sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
    sh:message "g36: VAVTerminalCoolingOnly connects to Domain Space in a g36:Zone" ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                    sh:minCount 1 ;
                    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] ] ] ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b407

URI: nedb2d1fb8ae746a4b48d454a320283f9b407


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalCoolingOnly OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
    sh:message "g36: The VAVTerminalCoolingOnly OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b414

URI: nedb2d1fb8ae746a4b48d454a320283f9b414


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalCoolingOnly shall contain exactly one Damper using the relation contains." ;
    sh:message "g36: The VAVTerminalCoolingOnly shall contain exactly one Damper using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b426

URI: nedb2d1fb8ae746a4b48d454a320283f9b426


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalWithReheat OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
    sh:message "g36: The VAVTerminalWithReheat OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b420

URI: nedb2d1fb8ae746a4b48d454a320283f9b420


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalWithReheat shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
    sh:message "g36: The VAVTerminalWithReheat shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b416

URI: nedb2d1fb8ae746a4b48d454a320283f9b416


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The VAVTerminalWithReheat connects to Domain Space in a g36:Zone" ;
    sh:class <http://data.ashrae.org/standard223#DomainSpace> ;
    sh:message "g36: The VAVTerminalWithReheat connects to Domain Space in a g36:Zone" ;
    sh:minCount 1 ;
    sh:node [ sh:property [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Zone> ;
                    sh:minCount 1 ;
                    sh:path [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] ] ] ;
    sh:path <http://data.ashrae.org/standard223#connectedTo> .


        

nedb2d1fb8ae746a4b48d454a320283f9b132

URI: nedb2d1fb8ae746a4b48d454a320283f9b132


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The FanPoweredTerminal InletConnectionPoint shall have at least one supply airflow property using the relation hasProperty." ;
    sh:message "g36: The FanPoweredTerminal InletConnectionPoint shall have at least one supply airflow property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b124

URI: nedb2d1fb8ae746a4b48d454a320283f9b124


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A FanPoweredTerminal shall have exactly one Damper using the relation contains." ;
    sh:message "g36: A FanPoweredTerminal shall have exactly one Damper using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b139

URI: nedb2d1fb8ae746a4b48d454a320283f9b139


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A FanPoweredTerminal shall have exactly one Fan or FanWithVFD using the relation contains." ;
    sh:message "g36: A FanPoweredTerminal shall have exactly one Fan or FanWithVFD using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Fan> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b117

URI: nedb2d1fb8ae746a4b48d454a320283f9b117


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The FanPoweredTerminal OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
    sh:message "g36: The FanPoweredTerminal OutletConnectionPoint shall have at least one discharge air temperature property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b126

URI: nedb2d1fb8ae746a4b48d454a320283f9b126


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A FanPoweredTerminal shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
    sh:message "g36: A FanPoweredTerminal shall contain at least one hot water coil or at least one electric heating coil for heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b74

URI: nedb2d1fb8ae746a4b48d454a320283f9b74


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Cooling using the relation contains." ;
    sh:message "g36: DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Cooling using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b67

URI: nedb2d1fb8ae746a4b48d454a320283f9b67


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Heating using the relation contains." ;
    sh:message "g36: DualDuctTerminalWithInletSensors shall contain 1 damper that has the Role Heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b49

URI: nedb2d1fb8ae746a4b48d454a320283f9b49


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one heating supply airflow property using the relation hasProperty." ;
    sh:message "g36: The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one heating supply airflow property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b58

URI: nedb2d1fb8ae746a4b48d454a320283f9b58


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualDuctTerminalWithInletSensors InletConnectionPoint shall have at least one cooling supply airflow property using the relation hasProperty." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b72

URI: nedb2d1fb8ae746a4b48d454a320283f9b72


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "DualDuctTerminalWithInletSensors shall contain 2 dampers using the relation contains" ;
    sh:message "g36: DualDuctTerminalWithInletSensors shall contain 2 dampers using the relation contains" ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 2 ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b38

URI: nedb2d1fb8ae746a4b48d454a320283f9b38


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "In the DualDuctTerminalWithDischargeSensor, one Damper has Role Cooling using the relation hasRole." ;
    sh:message "g36: In the DualDuctTerminalWithDischargeSensor, one Damper has Role Cooling using the relation hasRole." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Cooling> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b26

URI: nedb2d1fb8ae746a4b48d454a320283f9b26


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualDuctTerminalWithDischargeSensor OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
    sh:message "g36: The DualDuctTerminalWithDischargeSensor OutletConnectionPoint shall have at least one discharge airflow property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b33

URI: nedb2d1fb8ae746a4b48d454a320283f9b33


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "In the DualDuctTerminalWithDischargeSensor, one Damper has Role Heating using the relation hasRole." ;
    sh:message "g36: In the DualDuctTerminalWithDischargeSensor, one Damper has Role Heating using the relation hasRole." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Heating> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b43

URI: nedb2d1fb8ae746a4b48d454a320283f9b43


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualDuctTerminalWithDischargeSensor shall contain 2 dampers using the relation contains." ;
    sh:message "g36: The DualDuctTerminalWithDischargeSensor shall contain 2 dampers using the relation contains." ;
    sh:minCount 2 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 2 ;
    sh:qualifiedMinCount 2 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b159

URI: nedb2d1fb8ae746a4b48d454a320283f9b159


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b167

URI: nedb2d1fb8ae746a4b48d454a320283f9b167


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The  MultipleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
    sh:message "g36: The  MultipleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b179

URI: nedb2d1fb8ae746a4b48d454a320283f9b179


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The MultipleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains" ;
    sh:message "g36: The MultipleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains" ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b151

URI: nedb2d1fb8ae746a4b48d454a320283f9b151


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one outdoor air temperature property using the relation hasProperty. " ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b183

URI: nedb2d1fb8ae746a4b48d454a320283f9b183


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one return air temperature property using the relation hasProperty. " ;
    sh:message "g36: One MultipleZoneVAVAirHandlingUnit InletConnectionPoint shall have at least one return air temperature property using the relation hasProperty. " ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b173

URI: nedb2d1fb8ae746a4b48d454a320283f9b173


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The  MultipleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:message "g36: The  MultipleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b191

URI: nedb2d1fb8ae746a4b48d454a320283f9b191


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "One MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:message "g36: One MultipleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b169

URI: nedb2d1fb8ae746a4b48d454a320283f9b169


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The MultipleZoneVAVAirHandlingUnit shall contain at least one return air damper using the relation contains." ;
    sh:message "g36: The MultipleZoneVAVAirHandlingUnit shall contain at least one return air damper using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b199

URI: nedb2d1fb8ae746a4b48d454a320283f9b199


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a common economizer/minimum OA damper, MultipleZoneVAVAirHandlingUnit InletConnectionPoint must have at least one outdoor airflow property." ;
    sh:message "g36: For units with a common economizer/minimum OA damper, MultipleZoneVAVAirHandlingUnit InletConnectionPoint must have at least one outdoor airflow property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#InletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b208

URI: nedb2d1fb8ae746a4b48d454a320283f9b208


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
    sh:message "g36: For units with a common economizer/minimum OA damper, must have exactly one economizer/minimum outdoor air damper." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                        [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b215

URI: nedb2d1fb8ae746a4b48d454a320283f9b215


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a separate minimum outdoor air damper and AFMS, MultipleZoneVAVAirHandlingUnit must contain a modulating outdoor air damper with a minimum airflow property." ;
    sh:message "g36: For units with a separate minimum outdoor air damper and AFMS, MultipleZoneVAVAirHandlingUnit must contain a modulating outdoor air damper with a minimum airflow property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:not [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ;
                    sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                        [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Aspect-Minimum> ] ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b229

URI: nedb2d1fb8ae746a4b48d454a320283f9b229


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a separate minimum outdoor air damper and DP sensor, MultipleZoneVAVAirHandlingUnit must contain a two-position outdoor air damper with a differential pressure property." ;
    sh:message "g36: For units with a separate minimum outdoor air damper and DP sensor, MultipleZoneVAVAirHandlingUnit must contain a two-position outdoor air damper with a differential pressure property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
            sh:node [ sh:not [ sh:property [ sh:minCount 1 ;
                                    sh:path <http://data.ashrae.org/standard223#hasRole> ;
                                    sh:qualifiedMinCount 1 ;
                                    sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Economizer> ] ] ] ;
                    sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ],
                        [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b241

URI: nedb2d1fb8ae746a4b48d454a320283f9b241


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
    sh:path ( [ sh:oneOrMorePath <http://data.ashrae.org/standard223#connectedTo> ] sh:zeroOrOnePath [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ) ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasDomain> ],
                        [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b254

URI: nedb2d1fb8ae746a4b48d454a320283f9b254


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
    sh:message "g36: For units with actuated relief dampers but no relief fan, the MultipleZoneVAVAirHandlingUnit must contain a relief air damper with an analog damper command property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b263

URI: nedb2d1fb8ae746a4b48d454a320283f9b263


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief air damper with a two-position damper command property." ;
    sh:message "g36: For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief air damper with a two-position damper command property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b258

URI: nedb2d1fb8ae746a4b48d454a320283f9b258


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief fan with a VFD." ;
    sh:message "g36: For units with both a relief air damper and a relief fan, the MultipleZoneVAVAirHandlingUnit must have a relief fan with a VFD." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b315

URI: nedb2d1fb8ae746a4b48d454a320283f9b315


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, if direct building pressure logic is used, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
    sh:message "g36: For units with a return fan, if direct building pressure logic is used, the MultipleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which connectedTo at least one HVAC DomainSpace, which is contained by at least one Zone, which has a building static pressure property." ;
    sh:minCount 1 ;
    sh:path ( <http://data.ashrae.org/standard223#connectedTo> <http://data.ashrae.org/standard223#connectedTo> [ sh:inversePath <http://data.ashrae.org/standard223#contains> ] <http://data.ashrae.org/standard223#hasProperty> ) ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
            sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b311

URI: nedb2d1fb8ae746a4b48d454a320283f9b311


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, the MultipleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
    sh:message "g36: For units with a return fan, the MultipleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b294

URI: nedb2d1fb8ae746a4b48d454a320283f9b294


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, the MultipleZoneVAVAirHandlingUnit must contain an exhaust air damper." ;
    sh:message "g36: For units with a return fan, the MultipleZoneVAVAirHandlingUnit must contain an exhaust air damper." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Exhaust> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b298

URI: nedb2d1fb8ae746a4b48d454a320283f9b298


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return airflow property." ;
    sh:message "g36: For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return airflow property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ],
                [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b268

URI: nedb2d1fb8ae746a4b48d454a320283f9b268


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, if direct building pressure logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return fan discharge static pressure property." ;
    sh:message "g36: For units with a return fan, if direct building pressure logic is used, the OutletConnectionPoint of the return fan in the MultipleZoneVAVAirHandlingUnit must have a return fan discharge static pressure property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ],
                [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b281

URI: nedb2d1fb8ae746a4b48d454a320283f9b281


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the supply fan in the MultipleZoneVAVAirHandlingUnit must have a supply airflow property." ;
    sh:message "g36: For units with a return fan, if airflow tracking logic is used, the OutletConnectionPoint of the supply fan in the MultipleZoneVAVAirHandlingUnit must have a supply airflow property." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ],
                [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
                                    sh:node [ sh:property [ sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                                                    sh:qualifiedMinCount 1 ;
                                                    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                                            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                                        [ sh:hasValue <http://qudt.org/vocab/quantitykind/VolumeFlowRate> ;
                                                                            sh:maxCount 1 ;
                                                                            sh:minCount 1 ;
                                                                            sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b354

URI: nedb2d1fb8ae746a4b48d454a320283f9b354


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "the SingleZoneVAVAirHandlingUnit contains a relief air damper with a modulating actuator." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableActuatableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Binary-Position> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/DimensionlessRatio> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ],
                        [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b87

URI: nedb2d1fb8ae746a4b48d454a320283f9b87


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
    sh:message "g36: The DualFanDualDuctAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b99

URI: nedb2d1fb8ae746a4b48d454a320283f9b99


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The DualFanDualDuctAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:message "g36: The DualFanDualDuctAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b79

URI: nedb2d1fb8ae746a4b48d454a320283f9b79


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
    sh:message "g36: A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply duct static pressure property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b91

URI: nedb2d1fb8ae746a4b48d454a320283f9b91


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:message "g36: A DualFanDualDuctAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b332

URI: nedb2d1fb8ae746a4b48d454a320283f9b332


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one return air damper using the relation contains." ;
    sh:message "g36: The SingleZoneVAVAirHandlingUnit shall have at least one return air damper using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b344

URI: nedb2d1fb8ae746a4b48d454a320283f9b344


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
    sh:message "g36: The SingleZoneVAVAirHandlingUnit shall contain at least one supply fan with a VFD that has the role Supply using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b348

URI: nedb2d1fb8ae746a4b48d454a320283f9b348


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The SingleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:message "g36: The SingleZoneVAVAirHandlingUnit shall contain at least one HotWaterCoil or at least one ElectricHeatingCoil for heating using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#HotWaterCoil> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ElectricHeatingCoil> ] ) ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b324

URI: nedb2d1fb8ae746a4b48d454a320283f9b324


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "A SingleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:message "g36: A SingleZoneVAVAirHandlingUnit OutletConnectionPoint shall have at least one supply air temperature property using the relation hasProperty." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#hasConnectionPoint> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#OutletConnectionPoint> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Supply> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://data.ashrae.org/standard223#hasAspect> ],
                                                [ sh:hasValue <http://qudt.org/vocab/quantitykind/Temperature> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b342

URI: nedb2d1fb8ae746a4b48d454a320283f9b342


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The  SingleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
    sh:message "g36: The  SingleZoneVAVAirHandlingUnit shall contain at least one ChilledWaterCoil for cooling using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#ChilledWaterCoil> ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b337

URI: nedb2d1fb8ae746a4b48d454a320283f9b337


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "The SingleZoneVAVAirHandlingUnit shall have at least one outdoor air damper using the relation contains." ;
    sh:message "g36: The SingleZoneVAVAirHandlingUnit shall have at least one outdoor air damper using the relation contains." ;
    sh:minCount 1 ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ;
            sh:node [ sh:property [ sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-OutdoorAirIntake> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b363

URI: nedb2d1fb8ae746a4b48d454a320283f9b363


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must indeed have a relief fan." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b381

URI: nedb2d1fb8ae746a4b48d454a320283f9b381


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must indeed have a relief air damper with a two-position damper command property." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMaxCount 1 ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ;
            sh:node [ sh:property [ sh:path <http://data.ashrae.org/standard223#hasRole> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:hasValue <http://data.ashrae.org/standard223#Role-Relief> ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b368

URI: nedb2d1fb8ae746a4b48d454a320283f9b368


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has both a relief air damper and a relief fan, the SingleZoneVAVAirHandlingUnit must be connectedTo at least one VAV, which is connectedTo at least one HVAC DomainSpace or Zone, which has a building static pressure property." ;
    sh:path ( [ sh:oneOrMorePath <http://data.ashrae.org/standard223#connectedTo> ] sh:zeroOrOnePath [ sh:inversePath <http://data.ashrae.org/standard223#hasDomainSpace> ] ) ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Domain-HVAC> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasDomain> ],
                        [ sh:path <http://data.ashrae.org/standard223#hasProperty> ;
                            sh:qualifiedMinCount 1 ;
                            sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223#QuantifiableObservableProperty> ;
                                    sh:node [ sh:property [ sh:hasValue <http://qudt.org/vocab/quantitykind/Pressure> ;
                                                    sh:maxCount 1 ;
                                                    sh:minCount 1 ;
                                                    sh:path <http://qudt.org/schema/qudt/hasQuantityKind> ] ] ] ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b386

URI: nedb2d1fb8ae746a4b48d454a320283f9b386


@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit must indeed contain a return fan." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#FanWithVFD> ;
            sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Return> ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ] .


        

nedb2d1fb8ae746a4b48d454a320283f9b390

URI: nedb2d1fb8ae746a4b48d454a320283f9b390


@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

[] rdfs:comment "For the case where the SingleZoneVAVAirHandlingUnit has a return fan, the SingleZoneVAVAirHandlingUnit must contain an exhaust air damper with either an analog or two-position damper command property." ;
    sh:path <http://data.ashrae.org/standard223#contains> ;
    sh:qualifiedMinCount 1 ;
    sh:qualifiedValueShape [ sh:node [ sh:property [ sh:hasValue <http://data.ashrae.org/standard223#Role-Exhaust> ;
                            sh:maxCount 1 ;
                            sh:minCount 1 ;
                            sh:path <http://data.ashrae.org/standard223#hasRole> ] ] ;
            sh:or ( [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#Damper> ] [ sh:class <http://data.ashrae.org/standard223/1.0/extensions/g36#TwoPositionDamper> ] ) ] .