https://cacontology.projectvic.org/hotlines/core#MediaEvidenceShape
Enhanced SHACL shape for media evidence with comprehensive gUFO Object validation and forensic requirements.
@prefix hotline: <https://cacontology.projectvic.org/hotlines/core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@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 uco-observable: <https://ontology.unifiedcyberontology.org/uco/observable/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
hotline:MediaEvidenceShape a sh:NodeShape ;
rdfs:label "Media Evidence Shape"@en ;
rdfs:comment "Enhanced SHACL shape for media evidence with comprehensive gUFO Object validation and forensic requirements."@en ;
sh:property [ sh:class uco-observable:Hash ;
sh:message "Media evidence must have at least one hash"@en ;
sh:minCount 1 ;
sh:path uco-observable:hash ] ;
sh:rule [ a sh:SPARQLRule ;
sh:construct """
INSERT { $this a hotline:IntegrityError . }
WHERE {
$this a ?mediaType .
?mediaType rdfs:subClassOf* [ owl:unionOf (hotline:ImageEvidence hotline:VideoEvidence) ] .
FILTER NOT EXISTS {
$this uco-observable:hash ?hash .
?hash uco-observable:hashMethod ?method .
}
}
""" ;
sh:message "Media evidence must maintain cryptographic integrity"@en ;
sh:prefixes hotline: ;
sh:severity sh:Violation ] ;
sh:targetClass [ a owl:Class ;
owl:unionOf ( hotline:ImageEvidence hotline:VideoEvidence ) ] .