W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > April to June 2011

Re: bindings07

From: Paul Gearon <pgearon@revelytix.com>
Date: Sun, 22 May 2011 22:28:29 -0400
Message-ID: <BANLkTinpn3rerGHQ3Ph0Z4zhhjhgKimQew@mail.gmail.com>
To: Gregory Williams <greg@evilfunhouse.com>
Cc: Lee Feigenbaum <lee@thefigtrees.net>, SPARQL Working Group <public-rdf-dawg@w3.org>
I have not implemented this myself yet, however, I agree with Greg's
assessment. His interpretation is exactly what I expect.

Regards,
Paul Gearon

On Sun, May 22, 2011 at 3:16 PM, Gregory Williams <greg@evilfunhouse.com> wrote:
> On May 22, 2011, at 2:59 PM, Lee Feigenbaum wrote:
>
>> On 5/22/2011 2:52 PM, Gregory Williams wrote:
>>> On May 22, 2011, at 6:14 AM, Andy Seaborne wrote:
>>>
>>>> Rob Vesse has found a problem with the bindings test suite.  The results for bindings07 are wrong.  There was an optimizer bug in ARQ: and the tests didn't get run with the simple engine [*].
>>>>
>>>>     Andy
>>>>
>>>> [*] Run arq.qtest with  "--engine=ref" to run the simple, not optimization, no smarts query execution engine.  Does not scale - very simply executes each algebra operation and materialises all intermediate results.
>>>
>>> Good catch! It seems my implementation has a bug too (in the join ordering of the BINDINGS clause with the rest of the query).
>>
>> Could one of you please post or commit the proper results and we can re-approve it on Tuesday?
>
> I'd be more comfortable with Andy doing it (being closer to the Query document), but here's my understanding:
>
> The query has a graph pattern with an optional at the 'top level':
>
> SELECT ?s ?o1 ?o2 {
>  ?s ?p1 ?o1
>  OPTIONAL { ?s foaf:knows ?o2 }
> } BINDINGS ?o2 {
>  (:b)
> }
>
> The default graph contains:
>
> :a foaf:name "Alan" .
> :a foaf:mbox "alan@example.org" .
> :b foaf:name "Bob" .
> :b foaf:mbox "bob@example.org" .
> :c foaf:name "Alice" .
> :c foaf:mbox "alice@example.org" .
> :a foaf:knows :b .
> :b foaf:knows :c .
>
> The results for just the graph pattern are:
>
> ?s, ?o1, ?o2
> ------------
> :a, "Alan", :b
> :a "alan@example.org", :b
> :a :b, :b
> :b "Bob", :c
> :b "bob@example.org", :c
> :b :c, :c
> :c "Alice"
> :c "alice@example.org"
>
> Briefly:
>
> * Three results have ?o2=:b
> * Three have ?o2=:c
> * Two have ?o2 unbound.
>
> Now, applying the join for the BINDINGS where ?o2 is bound to :b, the first three results successfully join (:b = :b), the second three don't join (:c != :b), and the last two join because ?o2 isn't bound yet.
>
> I believe the results for this query *should* be:
>
> ?s, ?o1, ?o2
> ------------
> :a, :b, :b
> :a, "alan@example.org", :b
> :a, "Alan", :b
> :c, "alice@example.org", :b
> :c, "Alice", :b
>
> The current results file checked in to CVS additionally has:
>
> ?s, ?o1, ?o2
> ------------
> :b, :c, :b
> :b, "bob@example.org", :b
>
> So, to summarize, I think these two results should be removed and the remaining results represent the expected correct results.
>
> Andy, did I get that right?
>
> .greg
>
>
>
Received on Monday, 23 May 2011 02:28:58 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:46 GMT