https://cacontology.projectvic.org/tactical#SurveillanceOperationShape
Validation shape for surveillance operation instances.
@prefix cacontology-tactical: <https://cacontology.projectvic.org/tactical#> .
@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#> .
cacontology-tactical:SurveillanceOperationShape a sh:NodeShape ;
rdfs:label "Surveillance Operation Shape"@en ;
rdfs:comment "Validation shape for surveillance operation instances."@en ;
sh:property [ sh:datatype xsd:string ;
sh:in ( "physical_surveillance" "electronic_surveillance" "mobile_surveillance" "static_surveillance" "covert_surveillance" "overt_surveillance" ) ;
sh:maxCount 1 ;
sh:message "Surveillance operation must specify surveillance type from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-tactical:surveillanceType ],
[ sh:datatype xsd:decimal ;
sh:maxCount 1 ;
sh:maxInclusive 8760.0 ;
sh:message "Surveillance duration must be between 1 and 8760 hours (1 year)."@en ;
sh:minCount 0 ;
sh:minInclusive 1.0 ;
sh:path cacontology-tactical:surveillanceDuration ],
[ sh:datatype xsd:string ;
sh:in ( "person" "location" "vehicle" "communication" "activity" "network" ) ;
sh:maxCount 1 ;
sh:message "Surveillance operation must specify target type from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-tactical:targetType ],
[ sh:datatype xsd:string ;
sh:in ( "low" "moderate" "high" "extreme" "acceptable" "unacceptable" ) ;
sh:maxCount 1 ;
sh:message "Surveillance operation must specify detection risk from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-tactical:detectionRisk ],
[ sh:datatype xsd:nonNegativeInteger ;
sh:maxCount 1 ;
sh:maxInclusive 20 ;
sh:message "Surveillance team size must be between 1 and 20 members."@en ;
sh:minCount 1 ;
sh:minInclusive 1 ;
sh:path cacontology-tactical:surveillanceTeamSize ] ;
sh:targetClass cacontology-tactical:SurveillanceOperation .