W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > March 2015

Re: recursive shapes in SHACL

From: Richard Cyganiak <richard@cyganiak.de>
Date: Wed, 25 Mar 2015 14:34:06 +0000
Cc: "public-data-shapes-wg@w3.org" <public-data-shapes-wg@w3.org>
Message-Id: <6046FED0-935B-488A-B7CD-7E29295D210A@cyganiak.de>
To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>

> On 24 Mar 2015, at 15:35, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
> 
> I believe that the current design of SHACL
> (https://w3c.github.io/data-shapes/shacl/) will make recursive shapes very
> problematic.
> 
> Both variations in
> http://w3c.github.io/data-shapes/shacl/#sparql-AbstractValueShapePropertyConst
> raint
> do not work correctly. (Consider how the designs would work on the SHACL
> versions of the examples in
> https://lists.w3.org/Archives/Public/public-data-shapes-wg/2015Mar/0377.html.)
> 
> Does anyone have a proposal on how to handle recursive shapes that does not
> give rise to difficulties?

One possible design would be to have two language features, sh:valueShapeValidated and sh:valueShapeInformative.

sh:valueShapeValidated gives rise to a violation if the value doesn’t satisfy the specified shape. This is like the current sh:valueShape. But shape definitions with cycles of this features are illegal.

sh:valueShapeInformative allows cycles, but an implementation is not required to check it. In other words, an implementation may use any means of its own choice to determine whether it considers the value to be satisfying or not. One option is to do nothing, and accept any value. Another option is to do something clever with recursion. Another option is to inspect the URI given as the value. Another option is to check if the value has an rdf:type that has the required shape associated.

Best,
Richard
Received on Wednesday, 25 March 2015 14:34:40 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:18 UTC