CAC Production SHACL Shapes with gUFO Validation
SHACL validation shapes for gUFO-enhanced CAC production ontology, including anti-rigidity constraints, temporal validation, and foundational type compliance.
Production Phase Shape
gUFO-enhanced validation shape for production phases with anti-rigidity constraints.
Production phase may have at most one begin point.
Production phase may have an end point.
Phase begin point must be before end point.
PREFIX cacontology-production: <https://cacontology.projectvic.org/production#> SELECT ?this WHERE { ?this cacontology-production:hasProductionPhaseBeginPoint ?begin . ?this cacontology-production:hasProductionPhaseEndPoint ?end . FILTER(?begin >= ?end) }
Phase instances must be anti-rigid (cannot exist without being instantiated by entities).
PREFIX gufo: <http://purl.org/nemo/gufo#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?this WHERE { ?this a gufo:Phase . FILTER NOT EXISTS { ?this a owl:Class . } FILTER NOT EXISTS { ?entity ?property ?this . ?property rdfs:subPropertyOf* gufo:hasPhase . } }
Active Production Phase Shape
Validation for active production phase instances.
Active production phase must specify current production activity.
Production Role Shape
gUFO-enhanced validation shape for production roles with anti-rigidity and temporal constraints.
Production role may have at most one begin point.
Production role may have an end point.
Role begin point must be before end point.
PREFIX cacontology-production: <https://cacontology.projectvic.org/production#> SELECT ?this WHERE { ?this cacontology-production:hasRoleBeginPoint ?begin . ?this cacontology-production:hasRoleEndPoint ?end . FILTER(?begin >= ?end) }
Role instances must be anti-rigid (cannot exist without being played by entities).
PREFIX gufo: <http://purl.org/nemo/gufo#> PREFIX owl: <http://www.w3.org/2002/07/owl#> SELECT ?this WHERE { ?this a gufo:Role . FILTER NOT EXISTS { ?this a owl:Class . } FILTER NOT EXISTS { ?entity ?property ?this . ?property rdfs:subPropertyOf* gufo:playsRole . } }
Producer Role Conflict Shape
Prevents conflicting roles from being assigned simultaneously.
Individual cannot simultaneously be Producer and VictimRole.
PREFIX cacontology-production: <https://cacontology.projectvic.org/production#> PREFIX cacontology-gufo: <https://cacontology.projectvic.org/gufo#> PREFIX gufo: <http://purl.org/nemo/gufo#> SELECT ?this WHERE { ?entity gufo:playsRole ?this . ?entity gufo:playsRole ?victimRole . ?this a cacontology-production:Producer . ?victimRole a cacontology:VictimRole . ?this cacontology-production:hasRoleBeginPoint ?producerBegin . ?victimRole cacontology-production:hasRoleBeginPoint ?victimBegin . FILTER(?producerBegin <= ?victimBegin) OPTIONAL { ?this cacontology-production:hasRoleEndPoint ?producerEnd } OPTIONAL { ?victimRole cacontology-production:hasRoleEndPoint ?victimEnd } FILTER( (!BOUND(?producerEnd) && !BOUND(?victimEnd)) || (!BOUND(?producerEnd) && ?victimBegin <= ?victimEnd) || (!BOUND(?victimEnd) && ?producerBegin <= ?producerEnd) || (BOUND(?producerEnd) && BOUND(?victimEnd) && !((?producerEnd < ?victimBegin) || (?victimEnd < ?producerBegin))) ) }
Production Event Shape
gUFO validation for production events ensuring proper temporal modeling.
Production event must have exactly one begin point.
Production event may have an end point.
Event begin point must be before end point.
SELECT ?this WHERE { ?this gufo:hasBeginPointInXSDDateTimeStamp ?begin . ?this gufo:hasEndPointInXSDDateTimeStamp ?end . FILTER(?begin >= ?end) }
Production Situation Shape
gUFO validation for production situations ensuring proper modeling of ongoing states.
Situations should involve multiple entities or persist over time.
SELECT ?this WHERE { ?this a gufo:Situation . FILTER NOT EXISTS { { SELECT ?this WHERE { ?this gufo:involves ?entity1 . ?this gufo:involves ?entity2 . FILTER(?entity1 != ?entity2) } } UNION { SELECT ?this WHERE { ?this gufo:hasBeginPointInXSDDateTimeStamp ?begin . ?this gufo:hasEndPointInXSDDateTimeStamp ?end . FILTER(?end > ?begin) } } } }
Production Offense Shape
Validation shape for CSAM production offense instances.
Production offense must specify exactly one production method from the allowed list.
Session count must be between 1 and 1000 when specified.
Production offense must specify victim count between 1 and 50.
Duration must be between 1 minute and 1 week (10080 minutes).
Production offense may have a start time.
Production offense may have an end time.
Live Production Event Shape
Validation shape for live production event instances.
Live production event must specify streaming platform (2-100 characters).
Viewer count must be between 1 and 10000 when specified.
Extended Production Operation Shape
Validation shape for extended production operation instances.
Extended operation duration must be between 7 days and 10 years.
Extended operation must have between 5 and 5000 total sessions.
Producer Shape
Validation shape for producer role instances.
Production experience must be between 0 and 50 years.
Technical skill level must be from the allowed list.
Primary Producer Shape
Validation shape for primary producer instances.
Primary producer must have leadership role set to true.
Facilitator Shape
Validation shape for facilitator role instances.
Facilitator must specify facilitation type from the allowed list.
Production Equipment Shape
Validation shape for production equipment instances.
Equipment must specify type from the allowed list.
Equipment condition must be from the allowed list.
Recording Device Shape
Validation shape for recording device instances.
Recording quality must be from the allowed list.
Storage capacity must be between 0.1 GB and 100 TB.
Production Location Shape
Validation shape for production location instances.
Production location must specify type from the allowed list.
Production location must specify privacy level from the allowed list.
Access control must be from the allowed list.
Image Post-Processing Shape
Validation shape for image post-processing instances.
Image post-processing must specify modification count between 1 and 1000.
Modification software must be specified (2-100 characters).
Text Overlay Shape
Validation shape for text overlay instances.
Text overlay must specify text type from the allowed list.
Text overlay must specify placement from the allowed list.
Links production to location where it occurred
Links facilitator to production they assist
Links post-processing to image modification
Links text overlay to image modification
Production Cross Reference Shape
Validates cross-references between production and related entities.
Production offense should have at least one producer or facilitator.
SELECT $this WHERE { $this a cacontology-production:ProductionOffense . FILTER NOT EXISTS { { ?producer cacontology-production:producesContent $this } UNION { ?facilitator cacontology-production:facilitatesProduction $this } } }
Equipment Usage Validation Shape
Validates that production offenses have appropriate equipment.
Production offense should specify equipment used for recording or streaming.
SELECT $this WHERE { $this a cacontology-production:ProductionOffense ; cacontology-production:productionMethod ?method . FILTER (?method IN ("direct_recording", "video_recording", "live_streaming")) FILTER NOT EXISTS { $this cacontology-production:usesEquipment ?equipment . ?equipment a cacontology-production:RecordingDevice . } }
Temporal Validation Shape
Validates temporal consistency in production offenses.
Start time must be before end time when both are specified.
SELECT $this WHERE { $this uco-core:startTime ?start ; uco-core:endTime ?end . FILTER (?start >= ?end) }
Extended Operation Validation Shape
Validates extended production operation consistency.
Extended operation duration should be consistent with total sessions.
SELECT $this WHERE { $this cacontology-production:operationDuration ?duration ; cacontology-production:totalSessions ?sessions . FILTER (?sessions > (?duration * 10)) }
Data Quality Shape
Validates data quality for production offenses.
Label should be between 5 and 200 characters when provided.
Comment should be between 10 and 1000 characters when provided.