Ontology Version: 2.2.0

cacontology-educational:shapes/RoleParticipationValidationShape leaf node


URI

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

Label

gUFO Role Participation Validation Shape

Description

Validates role participation consistency and completeness for educational domain.

Target Classes (1)

Shape Properties

Instances of gufo:Role can have the following properties:

PROPERTY

MIN COUNT

MAX COUNT

TYPE

gufo:Role
cacontology-infrastructure:hasRoleBeginPoint 1 xsd:dateTimeStamp
cacontology-infrastructure:hasRoleEndPoint 1 xsd:dateTimeStamp
cacontology-multi:hasRoleBeginPoint 1 xsd:dateTimeStamp
cacontology-multi:hasRoleEndPoint 1 xsd:dateTimeStamp
cacontology-partnerships:hasRoleBeginPoint 1 xsd:dateTimeStamp
cacontology-partnerships:hasRoleEndPoint 1 xsd:dateTimeStamp
cacontology-production:hasRoleBeginPoint 0 1 xsd:dateTimeStamp
cacontology-production:hasRoleEndPoint 0 1 xsd:dateTimeStamp

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:RoleParticipationValidationShape a sh:NodeShape ;
    rdfs:label "gUFO Role Participation Validation Shape"@en ;
    rdfs:comment "Validates role participation consistency and completeness for educational domain."@en ;
    sh:sparql [ sh:message "Educator roles must be consistently employed at associated institutions"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducatorRole ;
                      cacontology-educational:employedAt ?institution ;
                      cacontology-educational:hasEmploymentPhase ?phase .
                ?phase cacontology-educational:employmentStatus "terminated" ;
                       cacontology-gufo:endTimePoint ?endTime .
                ?exploitation cacontology-educational:perpetratedBy ?this ;
                              cacontology-gufo:beginTimePoint ?exploitTime .
                FILTER (?exploitTime > ?endTime)
            }
        """ ],
        [ sh:message "All role participants must have complete participation information"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducatorRole .
                FILTER (NOT EXISTS { ?this cacontology-educational:employedAt ?institution } ||
                        NOT EXISTS { ?this cacontology-educational:hasEducatorAge ?age } ||
                        NOT EXISTS { ?this cacontology-educational:yearsOfExperience ?exp })
            }
        """ ] ;
    sh:targetClass gufo:Role .