- From: Holger Knublauch <holger@topquadrant.com>
- Date: Tue, 4 Apr 2017 15:37:49 +1000
- To: Jose Emilio Labra Gayo <labra@uniovi.es>, "public-rdf-sha." <public-rdf-shapes@w3.org>
- Message-ID: <03287caa-14e2-c9ad-2428-53b87cafa53e@topquadrant.com>
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