Ontology Version: 3.0.0

cacontology-educational-shapes:DataQualityValidationShape leaf node


URI

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

Label

Enhanced Data Quality Validation Shape

Description

Validates enhanced data quality constraints with gUFO-enhanced educational domain validation.

Shape Properties

Instances of cacontology-educational:EducatorPerpetratedExploitation can have the following properties:

PROPERTY

MIN COUNT

MAX COUNT

TYPE

cacontology-educational:EducatorPerpetratedExploitation
cacontology-educational:exploitationDuration xsd:decimal
1 xsd:dateTimeStamp
1 xsd:dateTimeStamp
1 xsd:dateTimeStamp

Implementation

@prefix cacontology-educational: <https://cacontology.projectvic.org/educational#> .
@prefix cacontology-educational-shapes: <https://cacontology.projectvic.org/educational/shapes#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
cacontology-educational-shapes:DataQualityValidationShape a sh:NodeShape ;
    rdfs:label "Enhanced Data Quality Validation Shape"@en ;
    rdfs:comment "Validates enhanced data quality constraints with gUFO-enhanced educational domain validation."@en ;
    sh:sparql [ sh:message "Educational institution names must be unique within geographic area"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this rdf:type cacontology-educational:EducationalInstitution ;
                      cacontology-educational:institutionName ?name ;
                      cacontology-educational:geographicArea ?area .
                ?other rdf:type cacontology-educational:EducationalInstitution ;
                       cacontology-educational:institutionName ?name ;
                       cacontology-educational:geographicArea ?area .
                FILTER (?this != ?other)
            }
        """ ],
        [ sh:message "Victim age must be consistent with grade level and institutional type"@en ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this cacontology-educational:involvesVictim ?victim ;
                      cacontology-educational:atInstitution ?institution .
                ?victim cacontology-educational:victimAge ?age ;
                ?institution rdf:type cacontology-educational:IntermediateSchool .
                FILTER (?age < 11 || ?age > 14)
            }
        """ ] ;
    sh:targetClass cacontology-educational:EducationalInstitution,
        cacontology-educational:EducatorPerpetratedExploitation,
        cacontology-educational:EducatorRole .