https://ontology.caseontology.org/icac/educational-exploitation/shapes/WrittenHarassmentGUFOShape
Validation shape for written harassment activities with gUFO Event temporal tracking.
@prefix cacontology-educational: <https://ontology.caseontology.org/icac/educational-exploitation/> .
@prefix cacontology-educational-shapes: <https://ontology.caseontology.org/icac/educational-exploitation/shapes/> .
@prefix gufo: <http://purl.org/nemo/gufo#> .
@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-educational-shapes:WrittenHarassmentGUFOShape a sh:NodeShape ;
rdfs:label "gUFO Written Harassment Shape"@en ;
rdfs:comment "Validation shape for written harassment activities with gUFO Event temporal tracking."@en ;
sh:property [ sh:hasValue gufo:Event ;
sh:message "Written harassment must be typed as gUFO Event"@en ;
sh:minCount 1 ;
sh:path rdf:type ],
[ sh:datatype xsd:string ;
sh:maxLength 500 ;
sh:message "Harassment content must be between 1 and 500 characters"@en ;
sh:minLength 1 ;
sh:path cacontology-educational:harassmentContent ],
[ sh:datatype xsd:string ;
sh:in ( "assignment" "test" "homework" "note" "report_card" "feedback" ) ;
sh:message "Harassment medium must be a valid academic medium"@en ;
sh:path cacontology-educational:harassmentMedium ],
[ sh:datatype xsd:string ;
sh:in ( "single_incident" "occasional" "frequent" "systematic" ) ;
sh:message "Harassment frequency must be a valid frequency level"@en ;
sh:path cacontology-educational:harassmentFrequency ] ;
sh:targetClass cacontology-educational:WrittenHarassment .