- From: David McNeil <dmcneil@revelytix.com>
- Date: Wed, 23 Nov 2011 08:05:20 -0600
- To: public-rdf-dawg-comments@w3.org
- Message-ID: <CA+8VvdwtFOHGLrMhCN7X0ecBzGwYzQ_5Gp_3ZXy5LjNoPx08sA@mail.gmail.com>
I was studying the SPARQL 1.1 spec [1] and found that to my reading this
text in 18.4 could be tightened up a bit.
LeftJoin(Ω1, Ω2, expr) =
{ merge(μ1, μ2) | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are compatible
and expr(merge(μ1, μ2)) is true }
∪
{ μ1 | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are not compatible, or Ω2 is
empty }
∪
{ μ1 | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are compatible and
expr(merge(μ1, μ2)) is false, or Ω2 is empty }
Notice that the last two clauses can be read to mean that every tuple
in Ω1should be paired with every tuple in Ω
2 . I don't think this matches the prior definition of Diff. Would it make
sense to change the last two clauses to something like:
{ μ1 | μ1 in Ω1, ∀ μ2 in Ω2, μ1 and μ2 are not compatible, or Ω2 is
empty }
∪
{ μ1 | μ1 in Ω1 and ∃ μ2 in Ω2, such that μ1 and μ2 are compatible and
expr(merge(μ1, μ2)) is false, or Ω2 is empty }
In addition, shouldn't the "or Ω2 is empty" condition be dropped from one
of these clauses so that we only include the contents of Ω1 one time if Ω2
is empty?
Thank you.
-David
[1] - http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/
Received on Wednesday, 23 November 2011 14:05:59 UTC