ISSUE-22: Suggested revision of wording on recursion

During recent discussions, I noticed that I made a mistake not objecting 
to our previous resolution on the handling of recursion:

The resolution above talks about statically excluding recursion: as soon 
as shape declarations are causing loops, the shapes graph would be invalid.

This is an unnecessary restriction and excludes real-world scenarios 
such as tree structures. In tree structures, a parent may state that its 
children must have the same Shape, and algorithmically there is no 
problem because there can never be an infinite loop.

PROPOSAL: The starting point for recursion in SHACL is that dependency 
loops are invalid at run-time.

In other words, a run-time failure would be reported if the validation 
causes infinite loops (same node against same shape). This is how 
sh:hasShape already works.


Received on Thursday, 14 April 2016 01:26:28 UTC