- From: Andy Seaborne <andy.seaborne@topquadrant.com>
- Date: Tue, 18 Apr 2017 16:50:58 +0100
- To: public-sparql-exists@w3.org
On 13/04/17 22:04, james anderson wrote:
> good evening;
>
>> On 2017-04-13, at 21:50, Peter F. Patel-Schneider <pfpschneider@gmail.com> wrote:
>>
>> [ā¦] This removes the
>> initial empty BGP in many group graph patterns, including
>> { VALUES ?junk { } BIND ( ?this AS ?that ) ?that a ex:bad . }
>> resulting in
>> Join( Extend( empty multiset, ?that, ?this ), BGP( ?that a ex:bad ) )
>
> are these the same with respect to āZā and simplification?
>
> { VALUES ?junk { } BIND ( ?this AS ?that ) ?that a ex:bad . }
Similar, not same; there is an inner Z the start of the graph pattern.
"Inner" in the sense that it ends up most nested in the algebra as the
group graph pattern builds from left to right. The {} is part of the
VALUES expression.
(join
(extend ((?that ?this))
(join
(Z)
(table empty)))
(bgp (triple ?that rdf:type ex:bad)) )
which becomes
(join
(extend ((?that ?this))
(table empty))
(bgp (triple ?that rdf:type ex:bad))))
>
> and
>
> { { } BIND ( ?this AS ?that ) ?that a ex:bad . }
which has two Z, the implicit one and the one due to {}.
which is:
(join
(extend ((?that ?this))
(join
(Z)
(Z)))
(bgp (triple ?that rdf:type ex:bad))))
which becomes
(join
(extend ((?that ?this))
(Z))
(bgp (triple ?that rdf:type ex:bad))))
which is different because
VALUES ?junk { }
is a data table of no rows of one variable
whereas
{ { } BIND ( ?this AS ?that )
has an empty BGP, which evaluates to one row of no variables.
Andy
>
> best regards, from berlin,
>
>
>
>
Received on Tuesday, 18 April 2017 15:51:33 UTC