Ontology Version: 2.2.0

cacontology-custodial:AuthorityRoleExclusivityShape leaf node


URI

https://cacontology.projectvic.org/custodial#AuthorityRoleExclusivityShape

Label

Authority Role Exclusivity Shape

Description

Validates authority role exclusivity constraints.

Target Classes (1)

Shape Properties

Instances of uco-identity:Person can have the following properties:

PROPERTY

MIN COUNT

MAX COUNT

TYPE

uco-identity:Person
cacontology-enterprises:participatesInCoercion cacontology-enterprises:SelfHarmCoercion
cacontology-enterprises:participatesInRecruitment cacontology-enterprises:ContentBasedRecruitment

Implementation

@prefix cacontology-custodial: <https://cacontology.projectvic.org/custodial#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix uco-identity: <https://ontology.unifiedcyberontology.org/uco/identity/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
cacontology-custodial:AuthorityRoleExclusivityShape a sh:NodeShape ;
    rdfs:label "Authority Role Exclusivity Shape"@en ;
    rdfs:comment "Validates authority role exclusivity constraints."@en ;
    sh:sparql [ sh:message "Person cannot simultaneously hold conflicting authority roles in same custodial context"@en ;
            sh:prefixes [ sh:declare [ sh:namespace "https://cacontology.projectvic.org/custodial#"^^xsd:anyURI ;
                            sh:prefix "cacontology-custodial" ] ] ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this cacontology-custodial:hasAuthority ?role1 ;
                      cacontology-custodial:hasAuthority ?role2 .
                ?role1 a cacontology-custodial:Guardian .
                ?role2 a cacontology-custodial:Teacher .
                ?custodialRel1 cacontology-custodial:involvesCustodian ?this .
                ?custodialRel2 cacontology-custodial:involvesCustodian ?this .
                ?custodialRel1 cacontology-custodial:involvesChild ?child .
                ?custodialRel2 cacontology-custodial:involvesChild ?child .
                FILTER (?role1 != ?role2)
            }
        """ ] ;
    sh:targetClass uco-identity:Person .