BASE <https://w3id.org/itsdata/metr/v1/>
PREFIX : <https://w3id.org/itsdata/metr/v1/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX sh: <http://www.w3.org/ns/shacl#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX vann: <http://purl.org/vocab/vann/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX cdm1: <https://w3id.org/citydata/part1/v1/>
PREFIX cdm2: <https://w3id.org/citydata/part2/v1/>
PREFIX its-core: <https://w3id.org/itsdata/core/v1/>
PREFIX its-time: <https://w3id.org/itsdata/time/v1/>
PREFIX its-location: <https://w3id.org/itsdata/location/v1/>
PREFIX its-regulation: <https://w3id.org/itsdata/regulation/v1/>
PREFIX its-vehicle: <https://w3id.org/itsdata/vehicle/v1/>
PREFIX its-communications: <https://w3id.org/itsdata/communications/v1/>

:CatalogueSHACL a owl:Ontology ;
    dcterms:title "SHACL constraints for the METR catalogue pattern"@en ;
    skos:definition "Validation shapes for METR catalogue concepts."@en ;
    owl:imports its-core:CoreSHACL ;
    vann:preferredNamespacePrefix "its-metr" ;
    vann:preferredNamespaceUri    "https://w3id.org/itsdata/metr/v1/" .

:CatalogueShape a sh:NodeShape ;
    sh:targetClass :Catalogue ;
    sh:property [
        sh:path :subjectArea ;
        sh:node its-core:MinOneShape ;
        sh:class :DefinedArea ;
    ] ;
    sh:property [
        sh:path :usesRegulationCodeList ;
        sh:node its-core:MinOneShape ;
        sh:class its-regulation:RegulationCodeList ;
    ] .

:DefinedAreaShape a sh:NodeShape ;
    sh:targetClass :DefinedArea ;
    sh:property [
        sh:path :supportedPreAnnouncedRegulation ;
        sh:class :SupportedRegulationCategory ;
    ] ;
    sh:property [
        sh:path :supportedEmergentRegulation ;
        sh:class :SupportedRegulationCategory ;
    ] .

:SupportedRegulationCategoryShape a sh:NodeShape ;
    sh:targetClass :SupportedRegulationCategory ;
    sh:property [
        sh:path :supportedRegulationCategory ;
        sh:node its-core:MinOneShape ;
        sh:class its-regulation:RegulationCode ;
    ] ;
    sh:property [
        sh:path :supportedVehicleCategory ;
        sh:node its-core:MinOneShape ;
        sh:class its-vehicle:VehicleCategoryCode ;
    ] ;
    sh:property [
        sh:path :cyberLocation ;
        sh:node its-core:MinOneShape ;
        sh:class its-communications:CyberLocation ;
    ] .