ISSUE-22: Proposal based on sh:hasShape

I would like to write down the solution to the recursion issue that I 
have currently implemented in my prototype, and welcome comments whether 
this would resolve the issue.

Recursive evaluation of shapes can only be triggered via the sh:hasShape 
function. sh:hasShape takes three arguments:

     sh:hasShape(?focusNode, ?shape, ?shapesGraph)

Proposal: sh:hasShape must fail with a constraint violation, if it 
encounters a recursive call involving the same combination of arguments. 
The constraint violation could have a system generated message such as 
"Failed to evaluate constraint due to unsupported recursive use of 
sh:hasShape" and point at the focus node that was visited twice.

This would still allow most interesting cases that involve recursion 
between shapes, but excludes cases where the same instances are visited 
more than once.

What am I missing?

Thanks,
Holger

Received on Thursday, 11 June 2015 01:13:35 UTC