Cannot make sense of this

This is a quote from the june 14th edition of the SPARQL document

Let SP := list of algebra expressions for sub-patterns of the group
Let F := all filters in the group (not in sub-patterns)
Let G := the empty pattern, Z, a basic graph pattern which is the  
empty set.

for each algebra sub-expression SA:
    If SA is an OPTIONAL,
       If SA is of the form OPTIONAL(Filter(F, A))
            G := LeftJoin(G, A, F)
       else
            G := LeftJoin(G, A, true)
    Otherwise for expression SA, G := Join(G, SA)

1. The variable SP is not mentioned again in the algorithm, and  
presumably is not needed?
2. if SA is an algebra expression (as opposed to a pattern  
expression), then presumably it cannot be of the form OPTIONAL  
anything ... as one of the purposes of the algrebafication (sic) is  
to eliminate optional clauses
3. On the other hand, immediately prior to this is the suggestion  
that this is a recursive algorithm:

A group pattern is mapped into the SPARQL algebra as follows: first,  
convert all elements making up the group into algebra expressions  
using this transformation process recursively, then apply the  
following transformation:

which implies that algebrafication (sic again) has already taken place.

4. What exactly, is implied by:

Let F := all filters in the group (not in sub-patterns)

Does this mean that all FILTER(constraint) expression should be  
wrapped into a big conjunction prior to determining what to do with  
them?



All in all, this section could do with some rigor. This should not be  
impossible.



Frank McCabe

Received on Wednesday, 10 October 2007 05:53:34 UTC