https://cacontology.projectvic.org/partnerships/shapes#PartnershipDataQualityShape
Enhanced data quality validation for partnerships with gUFO quality consistency rules.
Focus nodes of this shape (cacontology-partnerships:PublicPrivatePartnership) can have the following properties:
| PROPERTY | DESCRIPTION | MIN | MAX | VALUE TYPE | OTHER CONSTRAINTS |
|---|---|---|---|---|---|
rdfs:comment |
sh:message Partnership comment should be between 10 and 1000 characters when provided. |
0 | 1 | xsd:string |
sh:minLength
10
sh:maxLength
1000
|
rdfs:label |
sh:message Partnership label should be between 5 and 200 characters when provided. |
0 | 1 | xsd:string |
sh:minLength
5
sh:maxLength
200
|
@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#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
cacontology-partnerships-shapes:PartnershipDataQualityShape a sh:NodeShape ;
rdfs:label "Partnership Data Quality Shape"@en ;
rdfs:comment "Enhanced data quality validation for partnerships with gUFO quality consistency rules."@en ;
sh:property [ sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:maxLength 200 ;
sh:message "Partnership label should be between 5 and 200 characters when provided."@en ;
sh:minCount 0 ;
sh:minLength 5 ;
sh:path rdfs:label ],
[ sh:datatype xsd:string ;
sh:maxCount 1 ;
sh:maxLength 1000 ;
sh:message "Partnership comment should be between 10 and 1000 characters when provided."@en ;
sh:minCount 0 ;
sh:minLength 10 ;
sh:path rdfs:comment ] ;
sh:sparql [ sh:message "Partnership effectiveness and success rate should be consistent (gUFO quality consistency)."@en ;
sh:select """
SELECT $this
WHERE {
$this cacontology-partnerships:hasPartnershipEffectiveness ?effectiveness ;
cacontology-partnerships:hasSuccessRate ?rate .
{
FILTER (?effectiveness = "highly_effective" && ?rate < 0.7)
} UNION {
FILTER (?effectiveness = "effective" && (?rate < 0.5 || ?rate > 0.8))
} UNION {
FILTER (?effectiveness = "moderate" && (?rate < 0.3 || ?rate > 0.6))
} UNION {
FILTER (?effectiveness = "limited" && ?rate > 0.4)
} UNION {
FILTER (?effectiveness = "ineffective" && ?rate > 0.2)
}
}
""" ],
[ sh:message "Trust level and collaboration intensity should be correlated (gUFO quality consistency)."@en ;
sh:select """
SELECT $this
WHERE {
$this cacontology-partnerships:hasTrustLevel ?trust ;
cacontology-partnerships:hasCollaborationIntensity ?intensity .
{
FILTER (?trust >= 0.8 && ?intensity NOT IN ("intensive", "fully_integrated"))
} UNION {
FILTER (?trust <= 0.3 && ?intensity NOT IN ("low", "moderate"))
}
}
""" ] ;
sh:targetClass cacontology-partnerships:PublicPrivatePartnership .