Warning:
This wiki has been archived and is now read-only.
CommentResponse:SC-2
Sebastián,
The design of property paths is a balance and needs to integrate in with the overall evaluation of a SPARQl query. The equivalences you describe are not part of the property path specification.
Consider even a simple pattern like:
{ ?x :p/:q ?y }
The working group has decide to make that equivalent to
SELECT ?x ?y { ?x :p ?V . ?V :q ?y }
that is, projecting ?V away but not requiring distinct results.
So to take one of your examples:
SELECT * WHERE { :a (:p*)/(:p*) ?x }
SELECT ?x WHERE { :a (:p*) ?V . ?V (:p*) ?x }
and the multiple cardinality of the overall query because each :p* stops following cycles but the second one is acting on all possible starting points.
The operations for path*, path{0} and path+ provide algebra operations and these can be combined using "/" and other path operators. There is no overall per-path expression condition on cardinality, instead the combination of operations leads to the cardinality.
We would be grateful if you would acknowledge that your comment has been answered by sending a reply to this mailing list.
Andy, on behalf of the SPARQL-WG