- 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