- From: Olivier Corby <Olivier.Corby@sophia.inria.fr>
- Date: Wed, 07 Dec 2011 15:44:14 +0100
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- CC: SPARQL Working Group <public-rdf-dawg@w3.org>
Received on Wednesday, 7 December 2011 14:44:44 UTC
> eval(D(G), OneOrMore(x:term, path, vy:var)) = > Let X = eval(x, path) > Let R = the empty multiset > For n in X > Let V = {} > ALP(n, path, R, V) > End > result is R > > > I don't think so. V is the set of nodes visited and should carry > across calls to ALP for each possible next step in set X. > > In OneOrMore the form of ALP being called is the main worked function > and V is an accumulator of visited nodes. > > In ALP, ALP(x:term, path) passes in an empty set to the main worker > function. This is the route taken by ZeroOrMore. OneOrMore calls the > main worked function directly. > > Do you have an example of the difference as you see it? My understanding (?) is that for each value of n in the loop, V is empty. Because, according to the definition of ALP, V is empty when returning from ALP(n, path, R, V) So it is clearer (to me) if it is explicit in the call. It would be even clearer with : ALP(n, path, R, {}) Am I missing something here ? Olivier
Received on Wednesday, 7 December 2011 14:44:44 UTC