[topicmapmail] Any design guidelines for roletyping?
Bernard Vatant
bernard.vatant@mondeca.com
Thu, 2 Jan 2003 23:31:33 +0100
*Steve
Your arguments below don't change my opinion that making distinct topic
classes and role types is a better practice. More details:
|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'.
I tend to disagree with that. 'woman' is a subclass of 'person'. And a
subclass of 'woman' is 'married woman'. But - maybe those are subtle
things in English that I misunderstand - it seems to me that 'wife'
can't be used in an absolute way, like "Mary is-a wife", right? You have
to say: "Mary is the wife of Peter". So "wife" is always a role type in
English it seems.
Note that in French, the same word "femme" is used for "woman" or for
"wife". So both the following make sense:
"Mary est une femme"
"Mary est la femme de Peter"
... very weird indeed! It figures that French does not clearly make
distinct the role and the class in that case. The implicit cultural
meaning being that a woman who is not a wife is not really a wife. This
is definitely not politically correct, so it's more fashionable now to
use "femme" only for the class and not for the role, and prefer =
"=E9pouse"
or "compagne" for the role ...
|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.
Well, in that case, I would not use 'person' as a role type, but
something like 'native'.
|3. Your 1) (topic type =3D 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'?"
He can be both, because Benny *is-a* clarinettist, and of course, plays
the clarinet. But if I try to play the clarinet, I am not a
clarinettist. Those who heard my attempts will understand why :(=20
Now, there is a point interesting future TMCL and TMQL, it's the
subclassing of role types. For example an employment association could
use a generic role type 'employee' or specify more specific role types
like 'manager', 'CTO' etc ...
If 'CTO' is declared as subclass of 'employee', will a query of topics
playing an 'employee' role retrieve also the topics playing a 'CTO'
role?
Bernard