Discussion:
Newbie Topic Map Question
(too old to reply)
Hyeon Young Lee
2004-07-05 20:42:53 UTC
Permalink
Hello,

I am creating a relatively complex topic map in XTM. There are numerous
associations. My question: If I use a <roleSpec> in my associations to
define a relation R between two topics A and B, is it advisable to also use
<instanceOf> in my topics to say that A is an instance of B? Is this good,
wrong, or does it depend on the purpose?

An example:


<topic id="s1">
<instanceOf>
<topicRef xlink:href="#document"/>
</instanceOf>
....
</topic>

<association>
<instanceOf>
<topicRef xlink:href="#user_created_document"/>
</instanceOf>
<member>
<roleSpec>
<topicRef xlink:href="#user"/>
</roleSpec>
<topicRef xlink:href="#hy"/>
</member>
<member>
<roleSpec>
<topicRef xlink:href="#document"/>
</roleSpec>
<topicRef xlink:href="#s1"/>
....
</association>


As you can see, the relation between document and s1 is defined twice. I
have seen this in several topic maps, but found no clear guidelines.

Thanks....

Hyeon Young Lee
Lars Marius Garshol
2004-07-05 21:06:43 UTC
Permalink
Hi there,

* Hyeon Young Lee
|
| I am creating a relatively complex topic map in XTM. There are
| numerous associations. My question: If I use a <roleSpec> in my
| associations to define a relation R between two topics A and B, is
| it advisable to also use <instanceOf> in my topics to say that A is
| an instance of B? Is this good, wrong, or does it depend on the
| purpose?

Actually, there are three different things involved here:

- the types of the topics,

- the types of the associations between them, and

- the types of the roles they play in the associations.

The first two are both expressed with <instanceOf> but still
different, while the third is expressed with <roleSpec>.

| An example:
|
| <topic id="s1">
| <instanceOf>
| <topicRef xlink:href="#document"/>
| </instanceOf>
| ....
| </topic>
|
| <association>
| <instanceOf>
| <topicRef xlink:href="#user_created_document"/>
| </instanceOf>
| <member>
| <roleSpec>
| <topicRef xlink:href="#user"/>
| </roleSpec>
| <topicRef xlink:href="#hy"/>
| </member>
| <member>
| <roleSpec>
| <topicRef xlink:href="#document"/>
| </roleSpec>
| <topicRef xlink:href="#s1"/>
| ....
| </association>
|
| As you can see, the relation between document and s1 is defined
| twice. I have seen this in several topic maps, but found no clear
| guidelines.

To say that s1 is a document and that it plays the role of document in
the user_created_document association is actually two different
statements, so there is no redundancy here.

A more relevant question is perhaps whether the topic type "document"
and the role type "document" are actually the same thing. This topic
map claims that they are, but I'm not so sure this is the case. The
best fix to this problem might be to change the association to
something like (using LTM syntax):

created-by(hy : creator, s1 : creation)

That would be like this in XTM:

<association>
<instanceOf>
<topicRef xlink:href="#created-by"/>
</instanceOf>
<member>
<roleSpec>
<topicRef xlink:href="#creation"/>
</roleSpec>
<topicRef xlink:href="#hy"/>
</member>
<member>
<roleSpec>
<topicRef xlink:href="#creator"/>
</roleSpec>
<topicRef xlink:href="#s1"/>
....
</association>

This avoids using "document" for two different things and at the same
time improves the association (and the role types) by generalization.

I hope this helps!
--
Lars Marius Garshol, Ontopian <URL: http://www.ontopia.net >
GSM: +47 98 21 55 50 <URL: http://www.garshol.priv.no >
Hyeon Young Lee
2004-07-05 22:33:21 UTC
Permalink
Hello Lars Marius,

many thanks! What a pleasant surprise to hear from someone as knowledgeable
as you!



Best regards--

Hyeon Young
Post by Lars Marius Garshol
Hi there,
* Hyeon Young Lee
|
| I am creating a relatively complex topic map in XTM. There are
| numerous associations. My question: If I use a <roleSpec> in my
| associations to define a relation R between two topics A and B, is
| it advisable to also use <instanceOf> in my topics to say that A is
| an instance of B? Is this good, wrong, or does it depend on the
| purpose?
[...]

Loading...