W3C home > Mailing lists > Public > public-rdf-shapes@w3.org > February 2017

handling recursive shapes in SHACL

From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
Date: Mon, 20 Feb 2017 07:47:47 -0800
To: "public-rdf-shapes@w3.org" <public-rdf-shapes@w3.org>
Message-ID: <67153805-7972-ce49-5b77-e8121c82984c@gmail.com>
There needs to be stricter requirements on the behaviour of SHACL
implementations on shapes graphs that contain recursive shapes.  First, a
SHACL implementation needs to provide a way of determining whether the
shapes graph contains recursive shapes that the implementation does not
handle.  Second, if a SHACL implementation produces a validation report for
a shapes graph that contains recursive shapes then the results reported
needs to conform with the definition of SHACL at least on the non-recursive
shapes in the shapes graph.

For example, it is currently possible for SHACL implementations to implement
the following shapes graph as requiring that all SHACL instances of ex:C1 be
either ex:i1, ex:i2, or ex:i3.  But it is also possible for SHACL
implementations to implement the shapes graph as any behaviour whatsoever,
for example as requiring that all SHACL instances of ex:C1 are SHACL
instances of ex:C2.

se:s2 rdf:type sh:NodeShape ;
  sh:node se:s2 .
se:s3 rdf:type sh:NodeShape ;
  sh:targetClass ex:C1 ;
  sh:in ( ex:i1 ex:i2 ex:i3 ) .


If there are not such requirements interoperability will be severely
compromised.  Users of a SHACL implementation will have no way of
determining whether their shapes graphs containing recursive shapes can be
interoperably processed by other SHACL implementations.


Peter F. Patel-Schneider
Nuance Communications
Received on Monday, 20 February 2017 15:48:23 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:02:48 UTC