Date: Tue, 05 Dec 2006 12:17:35 +0100
To: dawg mailing list <public-rdf-dawg@w3.org>
CC: "Seaborne, Andy" <andy.seaborne@hp.com>
```

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. 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.

----------
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."

- I assume that with 'empty mapping' you mean 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...

----------

"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".

---------
Defn: Compatible mappings

"...for every variable v in dom(mu_1) and in dom(mu_1), ..."

second mu_1 should be mu_2.

-----------
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).

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.

-------
Defn: join

"Let Omega_1 and Omega_2 be sets of mappings"

Shouldn't they be multisets?

"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.

-----

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 :)

------

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

Regards,

Jeen Broekstra
--