Re: Examples of MINUS and NOT EXISTS

On 2010-03-31, at 11:26, Andy Seaborne wrote:
> 
> On 31/03/2010 10:57 AM, Steve Harris wrote:
>> I think it's just a p.o.v. thing.
>> 
>> Query 2 has no bindings in common, so it's somewhat nonsensical (squirrels MINUS calculators) if you think in terms of binding sets, which clearly not everyone does.
>> 
>> I understand that was the source of the addendum to the MINUS operator - that the result was the empty set when there was no intersection between the LHS and RHS, and the binding set of the RHS was non-empty? [did I get that right?] I believe that would make Q2 and Q3 return the same results, but I don't have an implementation to try it on. Q5 will still return different answers.
> 
> Yes, although whether the binding set of the RHS is empty is moot.
> 
> - that's why Q2 and Q3 are different - be careful that the data has only one triple in the data.  I can rerun with more data if that helps - the joy of scripting.
> 
> If we didn't have the disjointness condition on MINUS then
> 
> { ?s ?p ?o MINUS { :x :y :z } }
> { ?s ?p ?o MINUS { ?x ?y ?z } }
> { ?s ?p ?o MINUS { :a :b :c } }
> { ?s ?p ?o MINUS { } }
> 
> are all no rows (every pair of bindings is compatible) whatever the graph is, even if it's many triples.  Maybe it's better to do the NOT EXIST thing in the case of a concrete triple test.

Certainly. It makes more sense as a NOT EXISTS test.

- Steve

Received on Wednesday, 31 March 2010 12:18:37 UTC