[sc34wg3] Comment on N0328 - identical association members

Lars Marius Garshol sc34wg3@isotopicmaps.org
19 Nov 2002 00:43:05 +0100

* Marc de Graauw
| I think it would be good to make it more explicit that an
| association cannot have two members with the same role and
| roleplayer. In SAM this is the case: an association has a non-empty
| set of roles [...] and two roles with the same role type and role
| player are equal [...], and since a set cannot contain two identical
| elements the set will contain a single role type-role player pair.

Actually, overall, the feedback I've received from people has made it
very clear that the duplicate removal system in the SAM is not
sufficiently emphasized for people to know that it is there. It seems
that we have to add prose to the specification to make the general
principle that duplicate members are removed from sets clear.

The question is whether you think that would be enough. Personally, I
would think that once this is established a glance at the equality
rule for association roles would be enough to tell people how it
works. Do you disagree?
| But XTM allows it and ISO only hints that is should be disallowed,
| so making this more explicit would be in order. Possibly the
| following text could be added to the association element in N0328
| [...]:
| "An association may not contain two identical member elements."
Actually, associations may perfectly well contain two identical
members in the interchange syntax. It's just that that's interpreted
in exactly the same way as an association where one of the two
identical members are removed.

| Aside: The Omnigator processes an association with two identical members
| somewhat strange. When I import: [...]
| I see one association (Self Identity) with one member (Tao) playing
| one role (Self). This is in line with the SAM. But when I export
| this TM to HyTM I get: [...]
| So apparently the two members, though not shown in the Omnigator,
| are retained and exported again as two members. 

That is correct. This is because the Omnigator does not apply
duplicate suppression on loaded topic maps. The rationale is that we
use it as a topic map debugger, and it would reduce its utility to do
this. (If you want to apply duplicate suppression to a topic map,
that's just a single method call in the OKS, but the Omnigator doesn't
make that call.)

So this is a bug in the Omnigator: it should display the other role.
I've now recorded this as a bug in our database, but it won't be fixed
for 1.4. (Thanks for reporting it.)

| (Frankly I don't see what two identical members in an association
| could be used for other than to express self-identity. And while
| self-identity is a fine concept in mystical philosophy, the
| association seems fairly useless.)

Yes. :-)
| Typo: this paragraph also contains "subjectIndictorRef" which should
| be "subjectIndicatorRef".

Indeed. Fixed now. (Thanks!)

Lars Marius Garshol, Ontopian         <URL: http://www.ontopia.net >
ISO SC34/WG3, OASIS GeoLang TC        <URL: http://www.garshol.priv.no >