two interesting test cases for SHACL

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