[topicmapmail] Any design guidelines for roletyping?
Steve Pepper
pepper@ontopia.net
Thu, 02 Jan 2003 12:24:33 +0100
Marc,
You keep on bringing up interesting issues that have been on my list of
'things to get straight' for a long time! Thanks for provoking action.
At 15:09 01.01.2003 +0100, Marc de Graauw wrote:
>When I have role types in an association there are two possible approaches:
>
>1) Use topic types as role types.
> [e.g. "composer" and "composer"]
>
>2) Keep topic types and role types separate.
> [e.g. "person" and "wife"]
>
>...
>
>Does anyone have any design guidelines they follow themselves?
No ready answers, but a few pennyworth:
1. In my experience, there are often superclass-subclass relationships between
topic types and role types. To take your example: 'wife' is a subclass of
'person'.
2. Often the role type is a subclass, but sometimes it is a superclass, e.g. a
topic of type 'composer' playing the role of 'person' in a 'born-in'
association.
3. Your 1) (topic type = role type) is just the special case of these two.
4. None of this should surprise us since class hierarchies are defined
precisely
through differentiae that can usually be alternatively expressed via (roles in)
associations.
5. To illustrate this, ask the question:
Is Benny Goodman
- a topic of type 'clarinettist'; or
- a topic of type 'musician' (or even 'person') who plays a role of type
'player' in a 'player-of' association with the instrument 'clarinet'?"
6. The answer, I think, depends largely on the domain you are modelling and the
needs of your application. In the Italian Opera topic map, the distinction
between,
say 'composer' and 'librettist' is quite fundamental, so it makes sense to
express
it directly in the class hierarchy. In another topic map, Puccini and
Illica might
both be topics of type 'person'.
Steve
--
Steve Pepper, Chief Executive Officer <pepper@ontopia.net>
Convenor, ISO/IEC JTC1/SC34/WG3 Editor, XTM (XML Topic Maps)
Ontopia AS, Waldemar Thranes gt. 98, N-0175 Oslo, Norway.
http://www.ontopia.net/ phone: +47-23233080 GSM: +47-90827246