On 25/04/12 09:11, Polleres, Axel wrote:
> I have a question on the discussion for BINDINGS:
>
> Was the proposal of SA-3 to allow BINDINGS also within subselects
> considered?
>
> If I understand it correctly, this would be implementable by
> changing one grammar rule
> [8] SubSelect ::= SelectClause WhereClause SolutionModifier
> to
> [8] SubSelect ::= SelectClause WhereClause SolutionModifier BindingsClause
Downside - you need to add a subquery in order to put BINDINGS inside a
query i.e. overhead.
> I actually like this, since it seems to be quite a clean and simple
> way to address the issue:
>
> (i) it makes BINDINGS available essentially anywhere
> (ii) it still keeping BINDINGS "in spirit" at query level
BINDINGS don't really have any logical connection with query level as
they are defined to be a join of they data table to the results of the
graph pattern before select expressions and solution modifiers.
> (iii) it would allow to address the comments
> (iv) it wouldn't cause any algebra changes, would it?
BINDINGS don't exist in the algebra :-) in the sense there is no
"bindings" algebra operator. They are become a data table that is
joined in the usual way. So just make the data table allowed at more
places ...
>
> Thoughts?
>
> Best,
> Axel
>
>
Better: add BindingsClause to
[58] GraphPatternNotTriples
::= GroupOrUnionGraphPattern | OptionalGraphPattern |
MinusGraphPattern | GraphGraphPattern | ServiceGraphPattern | Filter |
Bind | BindingsClause
{ ?s ?p ?o BINDINGS ?p ?o { (:p 157) (:q 34.7) }
execution wise - happens after 'extend' (BIND) and before 'filter' (FILTER)
then its in subqueries and everywhere else.
Andy