@prefix dtx_srti_cz: <https://lod.tamtamresearch.com/resource/dtx_srti/SituationRecord/> .
@prefix dce: <http://purl.org/dc/elements/1.1/> .
@prefix dtx_srti: <http://cef.uv.es/lodroadtran18/def/transporte/dtx_srti#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix time: <http://www.w3.org/2006/time#> .


# location-related prefixes
@prefix adu: <http://cef.uv.es/lodroadtran18/def/transporte/dtx_srti/administrativeUnit#> .
@prefix gn_o: <http://www.geonames.org/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix geosparql: <http://www.opengis.net/ont/geosparql#> .
@prefix simple_features: <http://www.opengis.net/ont/sf#> .
@prefix virtrdf: <http://www.openlinksw.com/schemas/virtrdf#> .
@prefix adu_cz: <https://lod.tamtamresearch.com/resource/dtx_srti/administrativeUnit/> .
@prefix roads_cz: <https://lod.tamtamresearch.com/resource/dtx_srti/roads/> .

<https://lod.tamtamresearch.com/shacl/dtx_srti/SituationRecord> rdf:type sh:NodeShape, owl:Ontology ;
        owl:imports                    <http://www.opengis.net/ont/geosparql> , <http://www.w3.org/2006/time#2016> , <https://ec.europa.eu/eurostat/ramon/ontologies/geographic.rdf> ;
        dcterms:title                  "SHACL for Safety Related Traffic Information (SRTI) in Czechia"@en ;
        dcterms:title                  "SHACL pro informace o dopravním provozu souvisejících s bezpečností silničního provozu na území Česka"@cs ;
        rdfs:seeAlso                   "http://cef.uv.es/lodroadtran18/" ;
        rdfs:seeAlso                   "https://lod.tamtamresearch.com/" ;
        rdfs:seeAlso                   "https://tamtamresearch.com" ;
        rdfs:seeAlso                   "https://lod.tamtamresearch.com/resource/dtx_srti/administrativeUnit/" ;
        rdfs:seeAlso                   "https://lod.tamtamresearch.com/resource/dtx_srti/roads/" ;
        dce:date                       "2022-10-31"@en ;
        dce:source                     "http://cef.uv.es/lodroadtran18/def/transporte/dtx_srti/" ;
        dcterms:creator                "TamTam Research s.r.o." ;
        dcterms:contributor            "TamTam Research s.r.o." ;
        dcterms:contributor            "Eliška Vlčinská <eliska.vlcinska@tamtamresearch.com>" ;
        dcterms:abstract               "SHACL file defines constraints (mostly which information shall be present) on a RDF data describing Safety Realted Traffic information (SRTI) as is published for region of Czechia. RDF is using ontology LOD SRTI DATEX II which maps DATEX II Situation Publication class model into RDF. Each SituationRecord version is present (so there can be multiple versions of an SituationRecord with the same id). Validity in time is described by overall start and end date time. Location is described by point location and where possible, it is also defined by means of ALERT-C location reference. Locations shall refer to gazetteer of Czech Administrative Units and where possible also to gazetteer of Czech roads."@en ;
        dcterms:abstract               "SHACL soubor definuje omezení (většinou informace, které mají být přítomny) na RDF data, popisující informace o dopravním provozu souvisejících s bezpečností silničního provozu tak, jak jsou publikovány pro území Česka. RDF staví na ontologii LOD SRTI DATEX II, která promítá modelu tříd DATEX II Situation Publication do RDF. V datech je přítomná každá verze pro SituationRecord (takže se může vyskytnoutí více verzí pro SituationRecord s jedním id). Platnost v čase je popsána časem počátku a konce celkového období platnosti. Poloha je popsána bodlovou lokací a kde je to možné, je použita i metoda ALERT-C. Polohy by měly odkazovat do geografického indexu Českých adminstrativních jednotak a kde je to možné, tako do geografického indexu silnic v Česku."@cs ;
        dcterms:spatial                <http://publications.europa.eu/resource/authority/country/CZE> ;
        dcterms:license                "https://creativecommons.org/licenses/by/4.0/" ;
        dcterms:publisher              "TamTam Research s.r.o." ;
        owl:versionInfo                "1.0"@en .

#
# CommonSitRecShape
#
dtx_srti_cz:CommonSitRecShape a sh:NodeShape ;
  sh:property [
    sh:path rdfs:label ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path dcterms:title ;
    sh:maxCount 1 ;
  ] ;
  sh:property [
    sh:path dtx_srti:hasProbabilityOfOccurrence;
    sh:minCount 1;
    sh:maxCount 1;
    sh:in
      ( dtx_srti:riskOf dtx_srti:probable dtx_srti:certain ) ;
  ] ;
  sh:property [
    sh:path dtx_srti:situationRecordCreationTime ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:situationRecordVersionTime ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dcterms:isVersionOf ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasValidity ;
    sh:node dtx_srti_cz:ValidityShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:impact ;
    sh:node dtx_srti_cz:ImpactShape ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path geosparql:hasGeometry ;
    sh:node dtx_srti_cz:PointShape ;
    sh:maxCount 1;
  ] ;

  sh:property [
    sh:path dtx_srti:hasLocationReference ;
    sh:minCount 1 ;
    sh:maxCount 1 ;
    sh:node dtx_srti_cz:SingleRoadLinearLocationShape ;
  ] .
  # shape CANNOT be closed
  # -> all class-specific properties would
  # trip up the validation


#
# ValidityShape
#
dtx_srti_cz:ValidityShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:Validity ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasValidityStatus ;
    sh:in (
      dtx_srti:suspendedValidity
      dtx_srti:activeValidity
      dtx_srti:definedByValidityTimeSpec
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:validityTimeSpecification ;
    sh:node dtx_srti_cz:OverallPeriodShape ;
  ] ;
  sh:closed true .


#
# OverallPeriodShape
#
dtx_srti_cz:OverallPeriodShape a sh:NodeShape ;
  sh:class dtx_srti:OverallPeriod ;
  sh:ignoredProperties (rdf:type) ;
  sh:property [
    sh:path time:hasBeginning ;
    sh:node dtx_srti_cz:HasBeginningEndShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path time:hasEnd ;
    sh:node dtx_srti_cz:HasBeginningEndShape ;
    sh:minCount 0;
    sh:maxCount 1;
  ] ;
  sh:closed true .

dtx_srti_cz:HasBeginningEndShape a sh:NodeShape ;
  sh:class time:instant ;
  sh:ignoredProperties (rdf:type) ;
  sh:property [
    sh:path time:inXSDDateTime ;
    sh:datatype xsd:dateTime ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .

dtx_srti_cz:ImpactShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:Impact ;
  ] ;
  sh:property [
    sh:path dtx_srti:capacityRemaining ;
    sh:datatype dtx_srti:float%20percentage ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:numberOfLanesRestricted ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:numberOfOperationalLanes ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:numberOfOperationalLanes ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:originalNumberOfLanes ;
    sh:datatype xsd:int ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasTrafficConstrictionTypeEnum ;
    sh:in (
      dtx_srti:carriagewayBlocked
      dtx_srti:carriagewayPartiallyObstructed
      dtx_srti:lanesBlocked
      dtx_srti:lanesPartiallyObstructed
      dtx_srti:roadBlocked
      dtx_srti:roadPartiallyObstructed
    ) ;
    sh:maxCount 1;
  ] ;
  sh:closed true .

dtx_srti_cz:SingleRoadLinearLocationShape a sh:NodeShape ;
  sh:property [
    sh:path dtx_srti:hasAlertCLinear ;
    sh:message "Missing hasAlertCLinear" ;
    sh:node dtx_srti_cz:AlertCMethod2LinearShape ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasLinearWithinLinearElement ;
    sh:message "Missing hasLinearWithinLinearElement" ;
    sh:node dtx_srti_cz:LinearWithinLinearElementShape ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasSupplementaryPositionalDescription ;
    sh:message "Missing hasSupplementaryPositionalDescription" ;
    sh:node dtx_srti_cz:SupplementaryPositionalDescriptionShape ;
    sh:maxCount 1;
  ] .


#
# PointShape
#
dtx_srti_cz:PointShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value simple_features:Point ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path geosparql:asWKT ;
    sh:datatype virtrdf:Geometry ;
    sh:minCount 1;
    sh:maxCount 1;
  ] .


#
# AlertCMethod2LinearShape
#
dtx_srti_cz:AlertCMethod2LinearShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AlertCMethod2Linear ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:alertCLocationCountryCode ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:alertCLocationTableNumber ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:alertCLocationTableVersion ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCDirection ;
    sh:node dtx_srti_cz:AlertCDirectionShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCMethod2PrimaryPointLocation ;
    sh:node dtx_srti_cz:AlertCMethod2PrimaryPointLocationShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCMethod2SecondaryPointLocation ;
    sh:node dtx_srti_cz:AlertCMethod2SecondaryPointLocationShape ;
    sh:minCount 0;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# AlertCMethod2PrimaryPointLocationShape
#
dtx_srti_cz:AlertCMethod2PrimaryPointLocationShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AlertCMethod2PrimaryPointLocation ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCLocation ;
    sh:node dtx_srti_cz:AlertCLocationShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# AlertCMethod2SecondaryPointLocationShape
#
sh:AlertCMethod2SecondaryPointLocationShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AlertCMethod2SecondaryPointLocation ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCLocation ;
    sh:node dtx_srti_cz:AlertCLocationShape ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# AlertCLocationShape
#
dtx_srti_cz:AlertCLocationShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AlertCLocation ;
  ] ;
  sh:property [
    sh:path dtx_srti:specificLocation ;
    sh:datatype dtx_srti:AlertCLocationCode ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# AlertCDirectionShape
#
dtx_srti_cz:AlertCDirectionShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AlertCDirection ;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAlertCDirectionCoded ;
    sh:in (
      dtx_srti:positiveDirection
      dtx_srti:negativeDirection
      dtx_srti:both
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# LinearWithinLinearElementShape
#
dtx_srti_cz:LinearWithinLinearElementShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:LinearWithinLinearElement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:directionRelativeOnLinearSection ;
    sh:in (
      dtx_srti:both
      dtx_srti:opposite
      dtx_srti:aligned
      dtx_srti:unknown
    ) ;
    sh:minCount 0;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAdministrativeAreaOfLinearSection ;
    sh:node dtx_srti_cz:AdministrativeAreaShape ;
    sh:minCount 0;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasLinearElement ;
    sh:node dtx_srti_cz:LinearElementShape ;
    sh:minCount 0;
    sh:maxCount 1;
  ] .


#
# LinearElementShape
#
dtx_srti_cz:LinearElementShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:LinearElement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:type;
    sh:value dtx_srti:hasRoadNumber ;
    sh:minCount 0;
    sh:maxCount 1;
  ] .


#
# AdministrativeAreaShape
#
dtx_srti_cz:AdministrativeAreaShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value adu:AdministrativeUnit,
             gn_o:Feature ;
  ];
  sh:closed true .


#
# SupplementaryPositionalDescriptionShape
#
dtx_srti_cz:SupplementaryPositionalDescriptionShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:SupplementaryPositionalDescription ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:type;
    sh:value dtx_srti:hasCarriageway ;
    sh:node dtx_srti_cz:CarriagewayShape ;
    sh:minCount 0;
  ] ;
  sh:property [
    sh:path dtx_srti:type;
    sh:value dtx_srti:hasLane ;
    sh:node dtx_srti_cz:LaneShape ;
    sh:minCount 0;
  ] .


#
# CarriagewayShape
#
dtx_srti_cz:CarriagewayShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:Carriageway ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasCarriagewayEnum;
    sh:in (
      dtx_srti:connectingCarriageway
      dtx_srti:entrySlipRoad
      dtx_srti:exitSlipRoad
      dtx_srti:flyover
      dtx_srti:leftHandFeederRoad
      dtx_srti:leftHandParallelCarriageway
      dtx_srti:mainCarriageway
      dtx_srti:oppositeCarriageway
      dtx_srti:parallelCarriageway
      dtx_srti:rightHandFeederRoad
      dtx_srti:rightHandParallelCarriageway
      dtx_srti:roundabout
      dtx_srti:serviceRoad
      dtx_srti:slipRoads
      dtx_srti:underpass
    ) ;
    sh:maxCount 1;
  ] .

#
# LaneShape
#
dtx_srti_cz:LaneShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:Lane ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasLaneEnum;
    sh:in (
      dtx_srti:allLanesCompleteCarriageway
      dtx_srti:busLane
      dtx_srti:busStop
      dtx_srti:carPoolLane
      dtx_srti:centralReservation
      dtx_srti:crawlerLane
      dtx_srti:emergencyLane
      dtx_srti:escapeLane
      dtx_srti:expressLane
      dtx_srti:hardShoulder
      dtx_srti:heavyVehicleLane
      dtx_srti:layBy
      dtx_srti:leftHandTurningLane
      dtx_srti:leftLane
      dtx_srti:localTrafficLane
      dtx_srti:middleLane
      dtx_srti:PLACEHOLDER
      dtx_srti:overtakingLane
      dtx_srti:rightHandTurningLane
      dtx_srti:rightLane
      dtx_srti:rushHourLane
      dtx_srti:setDownArea
      dtx_srti:slowVehicleLane
      dtx_srti:throughTrafficLane
      dtx_srti:tidalFlowLane
      dtx_srti:turningLane
      dtx_srti:verge
    ) ;
    sh:maxCount 1;
  ] .


#
# VehicleShape
#
dtx_srti_cz:VehicleShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:Vehicle ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehicleStatus;
    sh:in (
      dtx_srti:damagedAndImmobilized
      dtx_srti:brokenDown
      dtx_srti:onFire
      dtx_srti:abandoned
      dtx_srti:damaged
      dtx_srti:burntOut
    ) ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehicleCharacteristics ;
    sh:node dtx_srti_cz:VehicleCharacteristicsShape ;
    sh:maxCount 1;
  ] ;
  sh:closed true .


#
# VehicleCharacteristicsShape
#
dtx_srti_cz:VehicleCharacteristicsShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:VehicleCharacteristics ;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehicleTypeEnum;
    sh:in (
      dtx_srti:moped
      dtx_srti:car
      dtx_srti:fourWheelDrive
      dtx_srti:bicycle
      dtx_srti:agriculturalVehicle
      dtx_srti:motorscooter
      dtx_srti:vehicleWithTrailer
      dtx_srti:motorcycle
      dtx_srti:other
      dtx_srti:vehicleWithCatalyticConverter
      dtx_srti:constructionOrMaintenanceVehicle
      dtx_srti:articulatedVehicle
      dtx_srti:twoWheeledVehicle
      dtx_srti:vehicle_with_caravan
      dtx_srti:vehicleWithoutCatalyticConverter
      dtx_srti:withOddNumberedRegistrationPlates
      dtx_srti:anyVehicle
      dtx_srti:tanker
      dtx_srti:highSidedVehicle
      dtx_srti:lorry
      dtx_srti:bus
      dtx_srti:carOrLightVehicle
      dtx_srti:van
      dtx_srti:caravan
      dtx_srti:threeWheeledVehicle
      dtx_srti:withEvenNumberedRegistrationPlates
      dtx_srti:tram
      dtx_srti:motorcycleWithSideCar
      dtx_srti:carWithTrailer
      dtx_srti:trailer
      dtx_srti:carWithCaravan
    )
  ] ;
  sh:closed true .

dtx_srti_cz:CommonObstructionShape a sh:NodeShape ;
  sh:property [
    sh:path dtx_srti:numberOfObstructions ;
    sh:datatype xsd:nonNegativeInteger ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:mobilityOfObstruction ;
    sh:node dtx_srti_cz:MobilityShape ;
    sh:maxCount 1;
  ] .

dtx_srti_cz:MobilityShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:Mobility ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:mobilityType ;
    sh:in (
      dtx_srti:unknownMobility
      dtx_srti:stationary
      dtx_srti:mobile
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .

dtx_srti_cz:CommonRoadworksShape a sh:NodeShape ;
  sh:property [
    sh:path dtx_srti:hasRoadworksDuration ;
    sh:in (
      dtx_srti:longTerm
      dtx_srti:mediumTerm
      dtx_srti:shortTerm
    ) ;
    sh:maxCount 1;
  ];
  sh:property [
    sh:path dtx_srti:hasRoadworksScaleEnum ;
    sh:in (
      dtx_srti:major
      dtx_srti:mediumRoadworksScale
      dtx_srti:minor
    ) ;
    sh:maxCount 1;
  ];
  sh:property [
    sh:path dtx_srti:underTraffic ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1;
  ];
  sh:property [
    sh:path dtx_srti:urgenRoadworks ;
    sh:datatype xsd:boolean ;
    sh:maxCount 1;
  ];
  sh:propetry [
    sh:path dtx_srti:mobility ;
    sh:node dtx_srti_cz:MobilityShape ;
    sh:maxCount 1;
  ] .

dtx_srti_cz:CommonConditionsShape a sh:NodeShape ;
  sh:property [
    sh:path dtx_srti:hasDrivingConditionTypeEnum ;
    sh:in (
      dtx_srti:winterConditions
      dtx_srti:passableWithCare
      dtx_srti:unknownDrivingCondition
      dtx_srti:veryHazardous
      dtx_srti:hazardous
      dtx_srti:impossible
      dtx_srti:normal
      dtx_srti:other
    ) ;
    sh:maxCount 1;
  ] .

dtx_srti_cz:SpeedValueShape a sh:NodeShape ;
  sh:property [
    sh:path rdf:type;
    sh:value dtx_srti:SpeedValue;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:numericValue ;
    sh:datatype xsd:float ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true .

################################
# PER-CLASS SHAPES START HERE! #
################################

dtx_srti_cz:AbnormalTrafficShape a sh:NodeShape ;
  sh:targetClass dtx_srti:AbnormalTraffic ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AbnormalTraffic;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAbnormalTrafficType ;
    sh:in (
      dtx_srti:unspecifiedAbnormalTraffic
      dtx_srti:stationaryTraffic
      dtx_srti:slowTraffic
      dtx_srti:queueingTraffic
      dtx_srti:other
      dtx_srti:heavyTraffic
    ) ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasRelativeTrafficFlowEnum ;
    sh:in (
      dtx_srti:trafficVeryMuchLighterThanNormal
      dtx_srti:trafficVeryMuchHeavierThanNormal
      dtx_srti:trafficLighterThanNormal
      dtx_srti:trafficHeavierThanNormal
      dtx_srti:trafficFlowNormal
    ) ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasTrafficTrendTypeEnum ;
    sh:in (
      dtx_srti:unknownTrafficTrend
      dtx_srti:trafficStable
      dtx_srti:trafficEasing
      dtx_srti:trafficBuildingUp
    ) ;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:AccidentShape a sh:NodeShape ;
  sh:targetClass dtx_srti:Accident;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:Accident ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAccidentType ;
    sh:in (
      dtx_srti:accident
      dtx_srti:accidentInvolvingHazardousMaterials
      dtx_srti:accidentInvolvingHeavyLorries
      dtx_srti:collision
      dtx_srti:multipleVehicleAccident
    ) ;
    sh:minCount 1 ;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehiclesInvolved ;
    sh:node dtx_srti_cz:VehicleShape ;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:AnimalPresenceObstructionShape a sh:NodeShape ;
  sh:targetClass dtx_srti:AnimalPresenceObstruction ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:AnimalPresenceObstruction ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasAnimalPresenceTypeEnum ;
    sh:in (
      dtx_srti:animalsOnTheRoad
      dtx_srti:herdOfAnimalsOnTheRoad
      dtx_srti:largeAnimalsOnTheRoad
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonObstructionShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common obstruction shape
    dtx_srti:numberOfObstructions
    dtx_srti:mobilityOfObstruction
  ).

dtx_srti_cz:ConstructionWorksShape a sh:NodeShape ;
  sh:targetClass dtx_srti:ConstructionWorks ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:ConstructionWorks ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasConstructionWorkType ;
    sh:in (
      dtx_srti:blastingWork
      dtx_srti:constructionWork
    ) ;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonRoadworksShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common roadworks shape
    dtx_srti:hasRoadworksDuration
    dtx_srti:hasRoadworksScaleEnum
    dtx_srti:underTraffic
    dtx_srti:urgentRoadworks
    dtx_srti:mobility
  ).

dtx_srti_cz:DisturbanceActivityShape a sh:NodeShape ;
  sh:targetClass dtx_srti:DisturbanceActivity ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:DisturbanceActivity ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasDisturbanceActivityTypeEnum ;
    sh:in (
      dtx_srti:other
      dtx_srti:evacuation
      dtx_srti:demostration
      dtx_srti:crowd
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:EnvironmentalObstructionShape a sh:NodeShape ;
  sh:targetClass dtx_srti:EnvironmentalObstruction ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:EnvironmentalObstruction ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasEnvironmentalObstructionTypeEnum ;
    sh:in (
      dtx_srti:fallenTrees
      dtx_srti:flooding
      dtx_srti:subsidence
      dtx_srti:rockfalls
      dtx_srti:landslips
      dtx_srti:avalanches
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonObstructionShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common obstruction shape
    dtx_srti:numberOfObstructions
    dtx_srti:mobilityOfObstruction
  ).

dtx_srti_cz:GeneralInstructionOrMessageToRoadUsersShape a sh:NodeShape ;
  sh:targetClass dtx_srti:GeneralInstructionOrMessageToRoadUsers ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:GeneralInstructionOrMessageToRoadUsers ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasGeneralInstructionOrMessageToRoadUsersType;
    sh:in (
      dtx_srti:allowEmergencyVehiclesToPass
      dtx_srti:approachWithCare
      dtx_srti:avoidTheArea
      dtx_srti:closeAllWIndowsTurnOffHeaterAndVents
      dtx_srti:crossJunctionWithCare
      dtx_srti:doNotAllowUnnecessaryGap
      dtx_srti:doNotLeaveYourVehicle
      dtx_srti:doNotThrowOutAnyBurningObjects
      dtx_srti:doNotUseNavigationSystems
      dtx_srti:driveCarefully
      dtx_srti:driveWithExtremeCaution
      dtx_srti:flashYourLights
      dtx_srti:followTheVehicleInFrontSmoothly
      dtx_srti:increaseNormalFollowingDistance
      dtx_srti:inEmergencyWaitForPatrolService
      dtx_srti:keepYourDistance
      dtx_srti:leaveYourVehicleProceedToNextSafePlace
      dtx_srti:noNakedFlames
      dtx_srti:noOvertaking
      dtx_srti:noSmoking
      dtx_srti:noStopping
      dtx_srti:noUturns
      dtx_srti:observeAmberAlert
      dtx_srti:observeSignals
      dtx_srti:observeSigns
      dtx_srti:oNLYTravelIfAbsolutelyNecessary
      dtx_srti:overtakeWithCare
      dtx_srti:pullOverToTHeEdgeOfTheRoadway
      dtx_srti:stopAtNextSafePlace
      dtx_srti:stopAtNextServiceArea
      dtx_srti:switchOffEngine
      dtx_srti:switchOffMobilePhonesAndTwoWayRadios
      dtx_srti:testYourBrakes
      dtx_srti:useBusService
      dtx_srti:useFogLights
      dtx_srti:useHazardWarningLights
      dtx_srti:useHeadlights
      dtx_srti:useRailService
      dtx_srti:useTramService
      dtx_srti:useUndergroundService
      dtx_srti:waitForEscortService
      dtx_srti:other
    ) ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:generalMessageToRoadUsers ;
    sh:datatype dtx_srti:MultilingualString ;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:GeneralNetworkManagementShape a sh:NodeShape ;
  sh:targetClass dtx_srti:GeneralNetworkManagement ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:GeneralNetworkManagement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasGeneralNetworkManagementType ;
    sh:in (
      dtx_srti:trafficHeld
      dtx_srti:trafficBeingManuallyDirected
      dtx_srti:tollGatesOpen
      dtx_srti:temporaryTrafficLights
      dtx_srti:rampMeteringInOperation
      dtx_srti:other
      dtx_srti:obstacleSignalling
      dtx_srti:convoyService
      dtx_srti:bridgeSwingInOperation
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:trafficManuallyDirectedBy ;
    sh:in (
      dtx_srti:veryimportantperson
      dtx_srti:trafficwarden
      dtx_srti:trafficofficer
      dtx_srti:sickperson
      dtx_srti:publictransportpassenger
      dtx_srti:politician
      dtx_srti:policeman
      dtx_srti:memberofthepublic
      dtx_srti:medicalstaff
      dtx_srti:infant
      dtx_srti:fireman
      dtx_srti:emergencyservicesperson
      dtx_srti:child
      dtx_srti:adult
    ) ;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:GeneralObstructionShape a sh:NodeShape ;
  sh:targetClass dtx_srti:GeneralObstruction ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:GeneralObstruction ;
  ] ;
  sh:property [
    sh:path dtx_srti:hasObstructionTypeEnum ;
    sh:in (
      dtx_srti:objectOnTheRoad
      dtx_srti:cyclistOnRoadway
      dtx_srti:airCrash
      dtx_srti:rescueAndRecoveryWork
      dtx_srti:other
      dtx_srti:shedLoad
      dtx_srti:peopleOnRoadway
      dtx_srti:unprotectedAccidentArea
      dtx_srti:incident
      dtx_srti:railCrash
      dtx_srti:clearanceWork
      dtx_srti:spillageOnTheRoad
      dtx_srti:childrenOnRoadway
    ) ;
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonObstructionShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common obstruction shape
    dtx_srti:numberOfObstructions
    dtx_srti:mobilityOfObstruction
  ).

dtx_srti_cz:MaintenanceWorksShape a sh:NodeShape ;
  sh:targetClass dtx_srti:MaintenanceWorks ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:MaintenanceWorks ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasRoadMaintenanceType ;
    sh:in (
      dtx_srti:snowPloughsInUse
      dtx_srti:maintenanceWork
      dtx_srti:other
      dtx_srti:repairWork
      dtx_srti:resurfacingWork
      dtx_srti:roadMarkingWork
    ) ;
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonRoadworksShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common roadworks shape
    dtx_srti:hasRoadworksDuration
    dtx_srti:hasRoadworksScaleEnum
    dtx_srti:underTraffic
    dtx_srti:urgentRoadworks
    dtx_srti:mobility
  ).

dtx_srti_cz:NonWeatherRelatedRoadConditionsShape a sh:NodeShape ;
  sh:targetClass dtx_srti:NonWeatherRelatedRoadConditions ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:NonWeatherRelatedRoadConditions ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasNonWeatherRelatedRoadConditionTypeEnum ;
    sh:in (
      dtx_srti:looseChippings
      dtx_srti:otherNonWeatherRelatedRoadCondition
      dtx_srti:roadSurfaceInPoorCondition
      dtx_srti:leavesOnRoad
      dtx_srti:looseSandOnRoad
      dtx_srti:mudOnRoad
      dtx_srti:petrolOnRoadway
      dtx_srti:slipperyRoad
      dtx_srti:oilOnRoad
    );
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonConditionsShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common conditions shape
    dtx_srti:hasDrivingConditionTypeEnum
  ).

dtx_srti_cz:PoorEnvironmentConditionsShape a sh:NodeShape ;
  sh:targetClass dtx_srti:PoorEnvironmentConditions ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:PoorEnvironmentConditions ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasPoorEnvironmentTypeEnum ;
    sh:in (
      dtx_srti:visibilityReduced
      dtx_srti:swarmOfInsects
      dtx_srti:strongWinds
      dtx_srti:strongGustsOfWind
      dtx_srti:stormForceWinds
      dtx_srti:snowFall
      dtx_srti:smokeHazard
      dtx_srti:sandStorms
      dtx_srti:rain
      dtx_srti:hail
      dtx_srti:frost
      dtx_srti:fog
      dtx_srti:extremeHeat
      dtx_srti:extremeCold
      dtx_srti:crosswinds
      dtx_srti:blowingSnow
      dtx_srti:blowingDust
      dtx_srti:badWeather
    );
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonConditionsShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common conditions shape
    dtx_srti:hasDrivingConditionTypeEnum
  ).

dtx_srti_cz:PublicEventShape a sh:NodeShape ;
  sh:targetClass dtx_srti:PublicEvent ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:PublicEvent ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasPublicEventType ;
    sh:in (
      dtx_srti:other
      dtx_srti:winterSportsMeeting
      dtx_srti:watersportsMeeting
      dtx_srti:tradeFair
      dtx_srti:tournament
      dtx_srti:tennisTournament
      dtx_srti:stateOccasion
      dtx_srti:sportsMeeting
      dtx_srti:showJumping
      dtx_srti:show
      dtx_srti:severalMajorEvents
      dtx_srti:rugbyMatch
      dtx_srti:raceMeeting
      dtx_srti:procession
      dtx_srti:parade
      dtx_srti:motorSportRaceMeeting
      dtx_srti:motorShow
      dtx_srti:match
      dtx_srti:market
      dtx_srti:marathon
      dtx_srti:majorEvent
      dtx_srti:internationalSportsMeeting
      dtx_srti:horseRaceMeeting
      dtx_srti:hockeyGame
      dtx_srti:golfTournament
      dtx_srti:gardeningOrFlowerShow
      dtx_srti:funfair
      dtx_srti:footballMatch
      dtx_srti:filmTVMaking
      dtx_srti:festival
      dtx_srti:fair
      dtx_srti:exhibition
      dtx_srti:culturalEvent
      dtx_srti:cricketMatch
      dtx_srti:concert
      dtx_srti:commercialEvent
      dtx_srti:ceremonialEvent
      dtx_srti:bullFight
      dtx_srti:boxingTournament
      dtx_srti:boatShow
      dtx_srti:boatRace
      dtx_srti:bicycleRace
      dtx_srti:basketballGame
      dtx_srti:baseballGame
      dtx_srti:ballGame
      dtx_srti:athleticsMeeting
      dtx_srti:airShow
      dtx_srti:agriculturalShow
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:ReroutingManagementShape a sh:NodeShape ;
  sh:targetClass dtx_srti:ReroutingManagement ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:ReroutingManagement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasReroutingManagementType ;
    sh:in (
      dtx_srti:useIntersectionOrJunction
      dtx_srti:useExit
      dtx_srti:useEntry
      dtx_srti:followSpecialMarkers
      dtx_srti:followLocalDiversion
      dtx_srti:followDiversionSigns
      dtx_srti:doNotUseIntersectionOrJunction
      dtx_srti:doNotUseExit
      dtx_srti:doNotUseEntry
      dtx_srti:doNotFollowDiversionSigns
    ) ;
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:RoadOrCarriagewayOrLaneManagementShape a sh:NodeShape ;
  sh:targetClass dtx_srti:RoadOrCarriagewayOrLaneManagement ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:RoadOrCarriagewayOrLaneManagement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasRoadOrCarriagewayOrLaneManagementType ;
    sh:in (
      dtx_srti:other
      dtx_srti:weightRestrictionInOperation
      dtx_srti:vehicleStorageInOperation
      dtx_srti:useSpecifiedLanesOrCarriageways
      dtx_srti:useOfSpecifiedLanesOrCarriagewaysAllowed
      dtx_srti:turnAroundInOperation
      dtx_srti:tidalFlowLaneInOperation
      dtx_srti:singleAlternateLineTraffic
      dtx_srti:rushHourLaneInOperation
      dtx_srti:rollingRoadBlock
      dtx_srti:roadClosed
      dtx_srti:roadCleared
      dtx_srti:overnightClosures
      dtx_srti:newRoadworksLayout
      dtx_srti:narrowLanes
      dtx_srti:lanesDeviated
      dtx_srti:laneClosures
      dtx_srti:keepToTheRight
      dtx_srti:keepToTheLeft
      dtx_srti:intermittentShortTermClosures
      dtx_srti:heightRestrictionInOperation
      dtx_srti:hardShoulderRunningInOperation
      dtx_srti:doNotUseSpecifiedLanesOrCarriageways
      dtx_srti:contraflow
      dtx_srti:closedPermanentlyForTheWinter
      dtx_srti:clearALaneForSnowploughsAndGrittingVehicles
      dtx_srti:clearALaneForEmergencyVehicles
      dtx_srti:carriagewayClosures
      dtx_srti:carPoolLaneInOperation
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:minimumCarOccupancy ;
    sh:datatype dtx_srti:NonNegativeInteger ;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:RoadsideAssistanceShape a sh:NodeShape ;
  sh:targetClass dtx_srti:RoadsideAssistance ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:RoadsideAssistance ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasRoadsideAssistenceTypeEnum ;
    sh:in (
      dtx_srti:other
      dtx_srti:vehicleRecovery
      dtx_srti:helicopterRescue
      dtx_srti:foodDelivery
      dtx_srti:firstAid
      dtx_srti:emergencyServices
      dtx_srti:busPassengerAssistance
      dtx_srti:airAmbulance
      dtx_srti:vehicleRepair
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:SpeedManagementShape a sh:NodeShape ;
  sh:targetClass dtx_srti:SpeedManagement ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:SpeedManagement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasSpeedManagementType ;
    sh:in (
      dtx_srti:other
      dtx_srti:reduceYourSpeed
      dtx_srti:policeSpeedChecksInOperation
      dtx_srti:observeSpeedLimits
    ) ;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:temporarySpeedLimit ;
    sh:node dtx_srti_cz:SpeedValueShape ;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
  ).

dtx_srti_cz:VehicleObstructionShape a sh:NodeShape ;
  sh:targetClass dtx_srti:VehicleObstruction ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:VehicleObstruction ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehicleObstructionTypeEnum ;
    sh:in (
      dtx_srti:damagedVehicle
      dtx_srti:brokenDownVehicle
      dtx_srti:militaryConvoy
      dtx_srti:abnormalLoad
      dtx_srti:slowMoving
      dtx_srti:vehicleOnWrongCarriageway
      dtx_srti:slowVehicle
      dtx_srti:longLoad
      dtx_srti:convoy
      dtx_srti:vehicleWithOverwideLoad
      dtx_srti:vehicleStuck
      dtx_srti:brokenDownHeavyLorry
      dtx_srti:vehicleOnFire
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasVehiclesInvolved ;
    sh:node dtx_srti_cz:VehicleShape ;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonObstructionShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common obstruction shape
    dtx_srti:numberOfObstructions
    dtx_srti:mobilityOfObstruction
  ).

dtx_srti_cz:WeatherRelatedRoadConditionsShape a sh:NodeShape ;
  sh:targetClass dtx_srti:WeatherRelatedRoadConditions ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:WeatherRelatedRoadConditions ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasWeatherRelatedRoadConditionTypeEnum;
    sh:in (
      dtx_srti:blackIce
      dtx_srti:surfaceWater
      dtx_srti:ice
      dtx_srti:icyPatches
      dtx_srti:snowDrifts
    ) ;
    sh:minCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonConditionsShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common conditions shape
    dtx_srti:hasDrivingConditionTypeEnum
  ).

dtx_srti_cz:WinterDrivingManagementShape a sh:NodeShape ;
  sh:targetClass dtx_srti:WinterDrivingManagement ;
  sh:property [
    sh:path rdf:type ;
    sh:value dtx_srti:WinterDrivingManagement ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:property [
    sh:path dtx_srti:hasWinterEquipmentManagementType ;
    sh:in (
      dtx_srti:other
      dtx_srti:winterEquipmentOnBoardRequired
      dtx_srti:useSnowTyres
      dtx_srti:useSnowChainsOrTyres
      dtx_srti:useSnowChains
      dtx_srti:doNotUseStudTyres
    ) ;
    sh:minCount 1;
    sh:maxCount 1;
  ] ;
  sh:closed true ;
  sh:node dtx_srti_cz:CommonSitRecShape ;
  sh:node dtx_srti_cz:CommonConditionsShape ;
  sh:ignoredProperties (
    # common properties not covered by this shape
    # but by shapes linked to this one!
    sh:path rdfs:label
    sh:path dcterms:title
    dtx_srti:hasLocationReference
    dtx_srti:hasAdministrativeAreaOfPoint
    dtx_srti:hasRoadNumber
    dtx_srti:hasValidity
    dtx_srti:hasProbabilityOfOccurrence
    dtx_srti:impact
    dtx_srti:situationRecordCreationTime
    dtx_srti:situationRecordVersionTime
    dcterms:isVersionOf
    geosparql:hasGeometry
    # common conditions shape
    dtx_srti:hasDrivingConditionTypeEnum
  ).
