[sc34wg3] Comment on N0328 - identical association members

Marc de Graauw sc34wg3@isotopicmaps.org
Thu, 14 Nov 2002 00:15:47 +0100


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
(http://www.y12.doe.gov/sgml/sc34/document/0299.htm#N1176) and two roles with
the same role type and role player are equal
(http://www.y12.doe.gov/sgml/sc34/document/0299.htm#N1256), and since a set
cannot contain two identical elements the set will contain a single role
type-role player pair.

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
(http://www.y12.doe.gov/sgml/sc34/document/0328.htm#N631):

"An association may not contain two identical member elements."

Aside: The Omnigator processes an association with two identical members
somewhat strange. When I import:

<topicMap>
 <topic id="tao">
  <baseName>
   <baseNameString>Tao</baseNameString>
  </baseName>
 </topic>
 <topic id="selfidentity">
  <baseName>
   <baseNameString>Self Identity</baseNameString>
  </baseName>
 </topic>
 <topic id="self">
  <baseName>
   <baseNameString>Self</baseNameString>
  </baseName>
 </topic>
 <association>
  <instanceOf>
   <topicRef xlink:href="#selfidentity"/>
  </instanceOf>
  <member>
   <roleSpec>
    <topicRef xlink:href="#self"/>
   </roleSpec>
   <topicRef xlink:href="#tao"/>
  </member>
  <member>
   <roleSpec>
    <topicRef xlink:href="#self"/>
   </roleSpec>
   <topicRef xlink:href="#tao"/>
  </member>
 </association>
</topicMap>

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:

<topicmap>
  <topic id="selfidentity">
    <topname>
      <basename>Self Identity</basename>
    </topname>
  </topic>
  <topic id="tao">
    <topname>
      <basename>Tao</basename>
    </topname>
  </topic>
  <topic id="id10"
identity="http://www.topicmaps.org/xtm/1.0/core.xtm#sort"></topic>
  <topic id="id11"
identity="http://www.topicmaps.org/xtm/1.0/core.xtm#display"></topic>
  <topic id="self">
    <topname>
      <basename>Self</basename>
    </topname>
  </topic>
  <assoc type="selfidentity">
    <assocrl type="self" href="tao"></assocrl>
    <assocrl type="self" href="tao"></assocrl>
  </assoc>
</topicmap>

So apparently the two members, though not shown in the Omnigator, are retained
and exported again as two members. (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.)

Typo: this paragraph also contains "subjectIndictorRef" which should be
"subjectIndicatorRef".

Marc