W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > October to December 2006

Re: comments on rq24-algebra (v1.12)

From: Seaborne, Andy <andy.seaborne@hp.com>
Date: Tue, 05 Dec 2006 12:08:12 +0000
Message-ID: <4575612C.1040506@hp.com>
To: Jeen Broekstra <jeen.broekstra@aduna-software.com>
CC: dawg mailing list <public-rdf-dawg@w3.org>



Jeen Broekstra wrote:
> I just finished a group read, with a few colleagues, of the current
> algebra document, and here is some initial feedback, observations both
> from myself and from my colleagues.

Version 1.12 I hope.  Date 1/Dec.


 > We concentrated on section X.2, so
> that is what all my comments are about. It is a bit difficult to
> pinpoint passages in the doc, I'll try and make it clear by quoting
> relevant passages.

Thanks for the comments.

I'd appreciate comments on section X.1.1 as well, where the transformation 
from syntax to abstract query happens.

> 
> ----------
> Directly under the definition of substitution function, mu_0 is
> introduced. Then it says:
> 
>  "Write Omega_0 for the multiset consisting of exactly the empty mapping
>   with cardinality 1."
> 
> Two comments:
>  - I assume that with 'empty mapping' you mean mu_0?

Yes.  Changed to "empty mapping mu_0"

>  - please add a comma between 'mapping' and 'with'. I spent five minutes
>    trying to figure out how an empty mapping could have cardinality 1...

Done :-)

> 
> ----------
> 
>  "Write Omega(?x -> t) for the multiset consisting of exactly mu(?x -> t
>   : {{ (x, t) }} with cardinality 1".
> 
> This was rather opaque on first read. I'd rephrase to simply:
>  "Omega(?x -> t) is the multiset { mu(?x -> t) } with cardinality 1".

I wanted to mention the notation from the line before.

What about:

"Write Ω(?x->t) for multiset consisting of exactly μ(?x->t),
that is, { { (x, t) } } with cardinality 1."


> 
> ---------
> Defn: Compatible mappings
> 
>  "...for every variable v in dom(mu_1) and in dom(mu_1), ..."
> 
>   second mu_1 should be mu_2.

Corrected.

> 
> -----------
> Defn: Filter
> 
> Filter(expr, Omega) is presumably a multiset itself, that should be
> specified more precisely (curly bracket notation may lead ppl to think
> it's a normal set).

A mutiset is defined by the pair of a set and a cardinality function over that 
set.  That's why {} is used - it is defining a set.

It says earlier:
[[
@@A note about multisets: set and a cardinality function
]]
for now:

http://en.wikipedia.org/wiki/Multiset

:-)

> 
> The last line defines:
> 
>  card[Filter(expr, Omega)](mu)  = card[Omega](mu)
> 
> Presumably that seeks to define that the filter has no influence on
> duplicates. The definition however does not hold for all mu but only for
> those mappings that are in the filtered set. For mappings in Omega that
> are not in the filtered set, the cardinality is (obviously) different.

True: but then card[Filter(expr, Omega)](mu) is not defined for mu not in the 
set of Filter(expr, Omega).  That's defined

[[
Write card[Ω](μ) for the cardinality of μ in a multiset of mappings Ω.
]]

where Ω is Filter(expr, Omega)  here

but I've added an @@ to flesh that out.

> 
> -------
> Defn: join
> 
>  "Let Omega_1 and Omega_2 be sets of mappings"
> 
>  Shouldn't they be multisets?

Yes - fixed.

> 
>  "Join(Omega_1, Omega_2) = { mu_1 union mu_2 ... }"
> 
>  With 'union' you presumably mean 'set-union', I'd use that to have the
>  same term everywhere consistently.

Yes.
No - it's union of Omega_1 and Omega_2

card[Join(Ω1, Ω2)](μ) = sum over μ in (Ω1 set-union Ω2), card[Ω1](μ1)*card[Ω2](μ2)

(I had notation difficulties here - I want to write big-U i = .... but xHTML 
is not friendly and we can't assume MathML or particular fonts everywhere. 
And images don't scale).

> 
> -----
> 
> Defn: Diff
> 
> At this point we got a bit lost. I have difficulties grokking why the
> definitions of Diff and LeftJoin include an expression as one of the
> operands. I can't even comment on how to rephrase this as I simply don't
> quite understand it (yet; I'll keep puzzling), but I would be much
> happier with a more 'standard' definition of both operators that just
> takes two operands, and then later on introduce the filter expression
> (if needed).
> 
> At the very least I could use some clarification here :)

http://lists.w3.org/Archives/Public/public-rdf-dawg/2006OctDec/0115.html
http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2006Oct/0030.html
http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/2006Oct/0031.html

> 
> ------
> 
> This is as far as I got for now, I hope this is of some use. More later,
> hopefully.

I look forward top the next batch,

	Andy

> 
> Regards,
> 
> Jeen Broekstra
Received on Tuesday, 5 December 2006 12:08:32 GMT

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