Ontology Version: 3.0.0

cacontology-educational-shapes:FoundationalTypeComplianceShape leaf node


URI

https://cacontology.projectvic.org/educational/shapes#FoundationalTypeComplianceShape

Label

Foundational Type Compliance Shape

Description

Ensures foundational typing compliance across educational domain entities.

Implementation

@prefix cac-core: <https://cacontology.projectvic.org/core#> .
@prefix cacontology-educational-shapes: <https://cacontology.projectvic.org/educational/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:FoundationalTypeComplianceShape a sh:NodeShape ;
    rdfs:label "Foundational Type Compliance Shape"@en ;
    rdfs:comment "Ensures foundational typing compliance across educational domain entities."@en ;
    sh:sparql [ sh:message "All educational institutions must be properly typed as gUFO Kinds"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducationalInstitution .
                FILTER (NOT EXISTS { ?this rdf:type gufo:Kind })
            }
        """ ],
        [ sh:message "All educator roles must be properly typed as anti-rigid gUFO Roles"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducatorRole .
                FILTER (NOT EXISTS { ?this rdf:type gufo:Role })
            }
        """ ],
        [ sh:message "All educational phases must be properly typed as anti-rigid gUFO Phases"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:AcademicTermPhase .
                FILTER (NOT EXISTS { ?this rdf:type gufo:Phase })
            }
        """ ],
        [ sh:message "All exploitation events must be properly typed as gUFO Events"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducatorPerpetratedExploitation .
                FILTER (NOT EXISTS { ?this rdf:type gufo:Event })
            }
        """ ],
        [ sh:message "All educational situations must be properly typed as gUFO Situations"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducationalExploitationSituation .
                FILTER (NOT EXISTS { ?this rdf:type gufo:Situation })
            }
        """ ] ;
    sh:targetNode gufo:Kind,
        cac-core:EnduringEntity,
        cac-core:Event,
        cac-core:Phase,
        cac-core:Role,
        cac-core:Situation .