@prefix : <https://w3id.org/citydata/part1/v1/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix i72: <https://w3id.org/citydata/21972/v1/> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix vann: <http://purl.org/vocab/vann/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@base <https://w3id.org/citydata/part1/v1/> .

<https://w3id.org/citydata/part1/v1/CityUnitsSHACL> rdf:type owl:Ontology ;
                                                     owl:imports :CityUnitsPattern ,
                                                                 :CoreSHACL ;
                                                     dcterms:title "City Data Model Part 1 - City Units Pattern - SHACL constraints" ;
                                                     vann:preferredNamespacePrefix "cdm1" ;
                                                     vann:preferredNamespaceUri "https://w3id.org/citydata/part1/v1/" ;
                                                     skos:definition "SHACL validation shapes for the City Units Pattern pattern module." .

#################################################################
#    Shapes
#################################################################

###  https://w3id.org/citydata/part1/v1/CapacityShape
:CapacityShape rdf:type sh:NodeShape ;
               sh:property [ sh:minCount "1"^^xsd:integer ;
                             sh:path i72:defined_by
                           ] ;
               sh:targetClass :Capacity .


###  https://w3id.org/citydata/part1/v1/CapacitySizeShape
:CapacitySizeShape rdf:type sh:NodeShape ;
                   sh:property [ sh:class :Capacity ;
                                 sh:node :ExactlyOneShape ;
                                 sh:path i72:cardinality_of
                               ] ;
                   sh:targetClass :CapacitySize .


###  https://w3id.org/citydata/part1/v1/CardinalityMeasureShape
:CardinalityMeasureShape rdf:type sh:NodeShape ;
                         sh:property [ sh:class i72:Cardinality_unit ;
                                       sh:path i72:unit_of_measure
                                     ] ;
                         sh:targetClass :CardinalityMeasure .


###  https://w3id.org/citydata/part1/v1/CardinalityUnitPerTimeShape
:CardinalityUnitPerTimeShape rdf:type sh:NodeShape ;
                             sh:property [ sh:class i72:Cardinality_unit ;
                                           sh:path i72:numerator
                                         ] ,
                                         [ sh:class :TimeUnit ;
                                           sh:path i72:denominator
                                         ] ;
                             sh:targetClass :CardinalityUnitPerTime .


###  https://w3id.org/citydata/part1/v1/MonetaryValueShape
:MonetaryValueShape rdf:type sh:NodeShape ;
                    sh:property [ sh:datatype xsd:gYear ;
                                  sh:node :ExactlyOneShape ;
                                  sh:path :hasRelativeYear
                                ] ,
                                [ sh:class i72:Monetary_unit ;
                                  sh:path i72:unit_of_measure
                                ] ;
                    sh:targetClass :MonetaryValue .


###  https://w3id.org/citydata/part1/v1/ValueOfMoneyShape
:ValueOfMoneyShape rdf:type sh:NodeShape ;
                   sh:property [ sh:class :MonetaryValue ;
                                 sh:path i72:value
                               ] ;
                   sh:targetClass :ValueOfMoney .
