https://cacontology.projectvic.org/athletic#DualCoachingRoleExploitationShape
Enhanced validation shape for dual coaching role exploitation with gUFO Role multiplicity validation.
Focus nodes of this shape (cacontology-athletic:DualCoachingRoleExploitation) can have the following properties:
| PROPERTY | DESCRIPTION | MIN | MAX | VALUE TYPE | OTHER CONSTRAINTS |
|---|---|---|---|---|---|
| cacontology-athletic:multipleRoles | Number of coaching roles held simultaneously. Enhanced with gUFO Role multiplicity. sh:message Dual coaching role exploitation must specify between 2 and 10 roles. |
1 | 1 | xsd:nonNegativeInteger |
sh:minInclusive
2
sh:maxInclusive
10
|
@prefix cacontology-athletic: <https://cacontology.projectvic.org/athletic#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
cacontology-athletic:DualCoachingRoleExploitationShape a sh:NodeShape ;
rdfs:label "Dual Coaching Role Exploitation Shape"@en ;
rdfs:comment "Enhanced validation shape for dual coaching role exploitation with gUFO Role multiplicity validation."@en ;
sh:property [ sh:datatype xsd:nonNegativeInteger ;
sh:maxCount 1 ;
sh:maxInclusive 10 ;
sh:message "Dual coaching role exploitation must specify between 2 and 10 roles."@en ;
sh:minCount 1 ;
sh:minInclusive 2 ;
sh:path cacontology-athletic:multipleRoles ] ;
sh:rule [ a sh:SPARQLRule ;
sh:construct """
INSERT { $this a cacontology-athletic:DualRoleValidationError . }
WHERE {
$this a cacontology-athletic:DualCoachingRoleExploitation .
{
SELECT $this (COUNT(DISTINCT ?role) AS ?roleCount)
WHERE {
$this cacontology-athletic:holdsCoachingRole ?role .
}
GROUP BY $this
}
FILTER (?roleCount < 2)
}
""" ;
sh:message "Dual coaching role exploitation must involve at least 2 different coaching roles"@en ;
sh:prefixes cacontology-athletic: ;
sh:severity sh:Violation ] ;
sh:targetClass cacontology-athletic:DualCoachingRoleExploitation .