@prefix cim: <https://cim.ucaiug.io/ns#> .
@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#> .

cim:BusNameMarker a sh:NodeShape ;
    rdfs:comment "Used to apply user standard names to TopologicalNodes. Associated with one or more terminals that are normally connected with the bus name.    The associated terminals are normally connected by non-retained switches. For a ring bus station configuration, all BusbarSection terminals in the ring are typically associated.   For a breaker and a half scheme, both BusbarSections would normally be associated.  For a ring bus, all BusbarSections would normally be associated.  For a \"straight\" busbar configuration, normally only the main terminal at the BusbarSection would be associated.  " ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description "The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 3 ;
            sh:path cim:IdentifiedObject.description ],
        [ sh:datatype xsd:string ;
            sh:description """The name is any free human readable and possibly non unique text naming the object.\r
""" ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 4 ;
            sh:path cim:IdentifiedObject.name ],
        [ sh:class cim:TopologicalNode ;
            sh:description "A user defined topological node that was originally defined in a planning model not yet having topology described by ConnectivityNodes. Once ConnectivityNodes has been created they may linked to user defined ToplogicalNdes using BusNameMarkers." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:IRI ;
            sh:order 1 ;
            sh:path cim:BusNameMarker.TopologicalNode ],
        [ sh:datatype xsd:string ;
            sh:description """Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended.\r
For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements.""" ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path cim:IdentifiedObject.mRID ],
        [ sh:datatype xsd:string ;
            sh:description "The terminals associated with this bus name marker." ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path cim:BusNameMarker.Terminal ] ;
    sh:targetClass cim:BusNameMarker .

cim:IdentifiedObject a sh:NodeShape ;
    rdfs:comment "This is a root class to provide common identification for all classes needing identification and naming attributes." ;
    sh:closed true ;
    sh:ignoredProperties ( <https://modellen.netbeheernederland.nl/nbnl-topology/draft-capaciteitskaart/Terminal> cim:TopologicalNode rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description """Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended.\r
For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements.""" ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path cim:IdentifiedObject.mRID ],
        [ sh:datatype xsd:string ;
            sh:description "The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path cim:IdentifiedObject.description ],
        [ sh:datatype xsd:string ;
            sh:description """The name is any free human readable and possibly non unique text naming the object.\r
""" ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path cim:IdentifiedObject.name ] ;
    sh:targetClass cim:IdentifiedObject .

cim:TopologicalNode a sh:NodeShape ;
    rdfs:comment """For a detailed substation model a topological node is a set of
connectivity nodes that, in the current network state, are connected
together through any type of closed switches, including  jumpers.
Topological nodes change as the current network state changes (i.e.,
switches, breakers, etc. change state).

For a planning model, switch statuses are not used to form topological
nodes.  Instead they are manually created or deleted in a model builder
tool. Topological nodes maintained this way are also called _busses_.""" ;
    sh:closed true ;
    sh:ignoredProperties ( rdf:type ) ;
    sh:property [ sh:datatype xsd:string ;
            sh:description """Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended.\r
For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements.""" ;
            sh:maxCount 1 ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 1 ;
            sh:path cim:IdentifiedObject.mRID ],
        [ sh:datatype xsd:string ;
            sh:description "The terminals associated with the topological node. This can be used as an alternative to the connectivity node path to terminal, thus making it unnecessary to model connectivity nodes in some cases. Note that if connectivity nodes are in the model, this association would probably not be used as an input specification." ;
            sh:minCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 0 ;
            sh:path cim:TopologicalNode.Terminal ],
        [ sh:datatype xsd:string ;
            sh:description "The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy." ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 2 ;
            sh:path cim:IdentifiedObject.description ],
        [ sh:datatype xsd:string ;
            sh:description """The name is any free human readable and possibly non unique text naming the object.\r
""" ;
            sh:maxCount 1 ;
            sh:nodeKind sh:Literal ;
            sh:order 3 ;
            sh:path cim:IdentifiedObject.name ] ;
    sh:targetClass cim:TopologicalNode .


