https://cacontology.projectvic.org/physical-evidence/shapes#PhysicalEvidenceShape
Enhanced validation shape for physical evidence instances with gUFO quality aspects.
@prefix cacontology-physical-shapes: <https://cacontology.projectvic.org/physical-evidence/shapes#> .
@prefix cacontology-physical1: <https://cacontology.projectvic.org/physical-evidence#> .
@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-physical-shapes:PhysicalEvidenceShape a sh:NodeShape ;
rdfs:label "Physical Evidence Shape"@en ;
rdfs:comment "Enhanced validation shape for physical evidence instances with gUFO quality aspects."@en ;
sh:property [ sh:datatype xsd:string ;
sh:in ( "digital_media" "documents" "photographs" "clothing" "biological_samples" "weapons" "contraband" "personal_items" ) ;
sh:maxCount 1 ;
sh:message "Physical evidence must specify evidence type from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-physical1:evidenceType ],
[ sh:datatype xsd:string ;
sh:in ( "primary_evidence" "secondary_evidence" "corroborative_evidence" "circumstantial_evidence" "demonstrative_evidence" "real_evidence" ) ;
sh:maxCount 1 ;
sh:message "Physical evidence must specify evidence category from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-physical1:evidenceCategory ],
[ sh:datatype xsd:dateTime ;
sh:maxCount 1 ;
sh:message "Physical evidence must specify collection date."@en ;
sh:minCount 1 ;
sh:path cacontology-physical1:collectionDate ],
[ sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:maxLength 200 ;
sh:message "Physical evidence must specify collection location (5-200 characters)."@en ;
sh:minCount 1 ;
sh:minLength 5 ;
sh:path cacontology-physical1:collectionLocation ],
[ sh:datatype xsd:string ;
sh:in ( "excellent" "good" "fair" "poor" "damaged" "deteriorated" "contaminated" ) ;
sh:maxCount 1 ;
sh:message "Physical evidence must specify evidence condition from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-physical1:evidenceCondition ],
[ sh:datatype xsd:string ;
sh:in ( "collected" "processed" "analyzed" "stored" "returned" "destroyed" "missing" ) ;
sh:maxCount 1 ;
sh:message "Physical evidence must specify evidence status from the allowed list."@en ;
sh:minCount 1 ;
sh:path cacontology-physical1:evidenceStatus ],
[ sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:maxLength 50 ;
sh:message "Physical evidence must specify evidence number (5-50 characters)."@en ;
sh:minCount 1 ;
sh:minLength 5 ;
sh:path cacontology-physical1:evidenceNumber ],
[ sh:datatype xsd:string ;
sh:in ( "compromised" "questionable" "good" "excellent" "pristine" ) ;
sh:maxCount 1 ;
sh:message "Evidence integrity must be from allowed values (gUFO quality aspect)."@en ;
sh:path cacontology-physical1:hasEvidenceIntegrity ],
[ sh:datatype xsd:double ;
sh:maxCount 1 ;
sh:maxInclusive 1.0 ;
sh:message "Evidence reliability must be between 0.0 and 1.0 (gUFO quality aspect)."@en ;
sh:minInclusive 0.0 ;
sh:path cacontology-physical1:hasEvidenceReliability ],
[ sh:datatype xsd:string ;
sh:in ( "poor" "fair" "good" "excellent" "optimal" ) ;
sh:maxCount 1 ;
sh:message "Preservation quality must be from allowed values (gUFO quality aspect)."@en ;
sh:path cacontology-physical1:hasPreservationQuality ],
[ sh:datatype xsd:string ;
sh:in ( "minimal" "limited" "moderate" "high" "critical" ) ;
sh:maxCount 1 ;
sh:message "Forensic value must be from allowed values (gUFO quality aspect)."@en ;
sh:path cacontology-physical1:hasForensicValue ],
[ sh:datatype xsd:double ;
sh:maxCount 1 ;
sh:maxInclusive 1.0 ;
sh:message "Contamination level must be between 0.0 and 1.0 (gUFO quality aspect)."@en ;
sh:minInclusive 0.0 ;
sh:path cacontology-physical1:hasContaminationLevel ] ;
sh:targetClass cacontology-physical1:PhysicalEvidence .