Re: SHACL for SHACL

Jose,

as someone who is working on implementations for both SHACL and ShEx, 
and member of both groups, would you see a way to reformulate our 
current paragraph so that it would represent a more liberal definition 
of recursion? Currently in 3.4.3 we state:

Thevalidation 
<http://w3c.github.io/data-shapes/shacl/#dfn-validation>withrecursive 
<http://w3c.github.io/data-shapes/shacl/#dfn-recursive-shape>shapes is 
not defined in SHACL and is left to SHACL processor implementations. For 
example, SHACL processors may support recursion scenarios or produce a 
failure when they detect recursion.

I think there is generally no problem with the recursive use of sh:node, 
sh:property etc as long as no negation is used and no focus node/shape 
combination is reached twice. I can see that ShEx has

     http://shex.io/shex-semantics/#negation-requirement

which looks related.

(I am not at all confident that at this stage such changes could still 
be realistically made, yet we are not in CR yet).

BTW of course many if not most implementations of SHACL will still 
support recursion, it's just that the spec doesn't prescribe this right 
now, so most likely the practical use of SHACL will diverge from the 
official document here.

Thanks,
Holger


On 4/04/2017 15:23, Jose Emilio Labra Gayo wrote:
>
>
>     Unfortunately this exercise confirms my long-held belief that the
>     current work-around to avoid structural recursion leads to
>     unmaintainable and redundant shape definitions. SHACL users will
>     get negatively surprised by this. I believe we have made a mistake
>     in SHACL by generally making structural recursion undefined.
>
>
> I completely agree on that.
>
> In fact, that is one of the main differences between ShEx and SHACL.
>
> -- 
> Regards, Jose Labra

Received on Tuesday, 4 April 2017 05:38:27 UTC