- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Sun, 13 Nov 2016 19:24:09 -0800
- To: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
Here are two test cases that exhibit interesting situations, along with
their results according to the SHACL document as of 13 November.
Data Graph D:
ex:i1 rdf:type ex:c ;
ex:p1 ex:i2 .
1/ property constraints and focus node constraints
Shapes Graph S1:
se:s1 rdf:type sh:Shape ;
sh:targetClass ex:c ;
sh:property [ sh:predicate ex:p2 ;
sh:property se:s2 ] ;
sh:shape se:s2 .
se:s2 sh:predicate ex:p1 ;
sh:class ex:c .
Validating D against S1 produces the following validation report
[ rdf:type sh:ValidationResult ;
sh:severity sh:Violation ;
sh:focusNode ex:i1 ;
sh:sourceConstraintComponent sh:ShapeConstraintComponent ;
sh:sourceShape se:s1 ] .
It is actually a tiny bit unclear what makes a property constraint. There
is wording that values of sh:property have sh:PropertyConstraint as expected
type, but there is no actual explicit connection between nodes with expected
type sh:PropertyConstraint. However, se:s2 is definitely a property
constraint as it is the value of sh:property in a shape.
2/ finding shapes
Shapes Graph S2:
se:s1
sh:not se:s2 .
se:s2
sh:targetClass ex:c ;
sh:class ex:d .
se:s3
sh:targetClass ex:c ;
sh:nodeKind sh:BlankNode .
Validating D against S2 produces the following validation report
[ rdf:type sh:ValidationResult ;
sh:severity sh:Violation ;
sh:focusNode ex:i1 ;
sh:sourceConstraintComponent sh:ClassConstraintComponent ;
sh:sourceShape se:s2 ] .
Peter F. Patel-Schneider
Nuance Communications
Received on Monday, 14 November 2016 03:24:44 UTC