https://cacontology.projectvic.org/partnerships/shapes#PartnershipCompositionShape
Validates gUFO part-whole relationships for partnership composition.
@prefix cacontology-partnerships: <https://cacontology.projectvic.org/partnerships#> .
@prefix cacontology-partnerships-shapes: <https://cacontology.projectvic.org/partnerships/shapes#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
cacontology-partnerships-shapes:PartnershipCompositionShape a sh:NodeShape ;
rdfs:label "Partnership Composition Shape"@en ;
rdfs:comment "Validates gUFO part-whole relationships for partnership composition."@en ;
sh:sparql [ sh:message "Partnership composition must include complementary organizational capabilities (gUFO part-whole constraint)."@en ;
sh:select """
SELECT $this
WHERE {
$this rdf:type cacontology-partnerships:PublicPrivatePartnership .
$this cacontology-partnerships:includesPartner ?publicOrg ;
?publicOrg cacontology-partnerships:hasRole ?publicRole ;
?publicRole rdf:type cacontology-partnerships:LawEnforcementPartner .
FILTER NOT EXISTS {
$this cacontology-partnerships:includesPartner ?privateOrg ;
?privateOrg cacontology-partnerships:hasRole ?privateRole ;
?privateRole rdf:type ?privateRoleType ;
?privateRoleType rdfs:subClassOf* cacontology-partnerships:PartnerRole .
FILTER (?privateRoleType != cacontology-partnerships:LawEnforcementPartner)
}
}
""" ] ;
sh:targetClass cacontology-partnerships:PublicPrivatePartnership .