Ontology Version: 2.2.0

cacontology-educational:shapes/TemporalConsistencyValidationShape leaf node


URI

https://ontology.caseontology.org/icac/educational-exploitation/shapes/TemporalConsistencyValidationShape

Label

gUFO Temporal Consistency Validation Shape

Description

Validates temporal consistency across gUFO Events, Phases, and Situations in educational context.

Implementation

@prefix cacontology-educational-shapes: <https://ontology.caseontology.org/icac/educational-exploitation/shapes/> .
@prefix gufo: <http://purl.org/nemo/gufo#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
cacontology-educational-shapes:TemporalConsistencyValidationShape a sh:NodeShape ;
    rdfs:label "gUFO Temporal Consistency Validation Shape"@en ;
    rdfs:comment "Validates temporal consistency across gUFO Events, Phases, and Situations in educational context."@en ;
    sh:sparql [ sh:message "Exploitation events must occur during educator employment period"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducatorPerpetratedExploitation ;
                      cacontology-educational:perpetratedBy ?educator ;
                      cacontology-gufo:beginTimePoint ?exploitBegin .
                ?educator cacontology-gufo:employmentBeginTimePoint ?empBegin ;
                          cacontology-gufo:employmentEndTimePoint ?empEnd .
                FILTER (?exploitBegin < ?empBegin || ?exploitBegin > ?empEnd)
            }
        """ ],
        [ sh:message "Investigation must begin after or during exploitation period"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducationalInvestigation ;
                      cacontology-educational:investigates ?exploitation ;
                      cacontology-gufo:beginTimePoint ?invBegin .
                ?exploitation cacontology-gufo:beginTimePoint ?exploitBegin .
                FILTER (?invBegin < ?exploitBegin)
            }
        """ ],
        [ sh:message "Academic phases must have logical temporal sequence"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:AcademicTermPhase ;
                      cacontology-gufo:beginTimePoint ?begin ;
                      cacontology-gufo:endTimePoint ?end .
                FILTER (?begin >= ?end)
            }
        """ ] ;
    sh:targetNode gufo:Event,
        gufo:Phase,
        gufo:Situation .