Questions about REDUCED, LeftJoin, Join

Hello all,

I'm confused by REDUCED in the current version of the draft. Is
REDUCED going to be removed or not? Because it is only described in
the 9.4 REDUCED section and is mostly missing in other parts of the
draft, eg. list of keywords in A.8 Grammar, or list of modifiers in
12.2 SPARQL Query.
So it seems "half-removed" to me.

In section 12.4 SPARQL Algebra after definition of LeftJoin list is a
"Written in full that is:" part, but it seems to me, that it is not
equivalent to the definition.

{ μ1 | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are not compatible }
{ μ1 | μ1 in Ω1and μ2 in Ω2, and μ1 and μ2 are compatible and
expr(merge(μ1, μ2)) is false }
correspond to
{ μ | μ in Ω1 such that for all μ′ in Ω2, μ and μ′ are not compatible }
{ μ | μ in Ω1 such that for all μ′ in Ω2, μ and μ' are compatible and
expr(merge(μ, μ')) is false }
from the definition of Diff?

My last question has probably already been discussed and answered, so
could someone point me to some good explanation?
What is the reason for Join(Ω1,Ω2) being defined in a way that is
different from relational algebra when it comes to 'NULL values'?
I do understand that unlike relational algebra, SPARQL algebra does
not define schema for results of algebra operations, so at this time
it is impossible to define Join to disallow joining of two mappings
that 'contain NULLs in common columns'.
But is this desired?

In my opinion this feature makes evaluation of SPARQL queries more
complicated and I can't see the benefits it brings. What is the
use-case behind this decision?

Best regards,
Jiri Dokulil

Received on Tuesday, 24 April 2007 11:53:51 UTC