[topicmapmail] Re: Re: Re: Topic map design guidelines? (Jan Algermissen) (Lars Marius Garshol)
Johannes Busse
busse@ews.uni-heidelberg.de
Fri, 23 Jul 2004 13:18:25 +0200
Am Donnerstag, 22. Juli 2004 09:57 schrieb topicmapmail-request@infoloom.co=
m:
> | more abstractly the main question is:
> | - Is it a good design to chain roles and assocs
> | =C2=A0 rather to such an extend, that your prediction will be sucessful?
> ...
> I don't understand this question. Can you explain?
Sorry for my poor english. In fact there are two quite different
questions:
=2D QUESTION 1: Do you work with "formal" roles or "material" roles:
+ Do you make use of roles solely as formal names to distinguish
the first and second (and third ...) member of a relation?
Then all assocs of the same type would be similar to a relational=20
database table, where the roles are similar to the headers
of the tables. This is what your example suggests:
> =C2=A0 parenthood(a : child, b : mother, c : father)
> =C2=A0 marriage(b : wife, c : husband)
In an relational database model the assoc parenthood
would be a table with the three colums a, b and c.
a | b | c
-------------+--------------+---------
ClaraSchumann| RobertSchuman| BabyDoll
+ Or do you make use of roles also to=20
model parts of a domain?
> =C2=A0 relatives(mother: ClaraSchumann;=20
father: RobertSchumann;=20
child: BabyDoll)=20
> =C2=A0 relatives(wife: ClaraSchumann;=20
husband: RobertSchumann)
In this case the relational model would consist of *six*
columns:
a-role | a-roleplayer | b-role | b-roleplayer | c-role | c-roleplayer
-------+--------------+--------+--------------+--------+-------------
mother | ClaraSchumann| father | RobertSchuman| child | BabyDoll
(note: this would be a quite poor database design, but we don't
want to care of that here).
I have diskussed this question 1 sveral month ago in this list; the
answer was that the second modelling sceme is valid according to the
XMT-Standard too.=20
Therefore we come to question 2:
=2D QUESTION 2: Iff you work with "material" roles: Which=20
*functional dependency* (a term adoptable
from relational database technology) between roles and=20
association types indicate a good design? There are several
possible functional dependencies:
+ (1) Once you know the role a topic plays
you can functionally determine the type of the association
+ (2) Once you know the assoc type you can functionally
determine the two or three topics, which play roles
within this association.
+ (3) There is no functional dependency between=20
roles and assoc types
(1) and (2) can apply at the same time; (3) is the counterdraft
of (1) and (2).
(note: if you would work with formal roles as above there
holds a functional dependency assocType -> {a,b,c}
for all ternary associations, whis is not a very interesting
information al all. But remember, we do not talk about formal
roles here)
What we do need for my opinion is something like
entity-relationship-diagrams for XTM-Design.=20
herzliche Gr=C3=BC=C3=9Fe
Johannes Busse
=2D-
Dr. Johannes Busse, Erziehungswiss. Seminar, Univ.Heidelberg
Akademiestr.3, 69117 HD | Kellereigasse 3, 69 526 Ladenburg=20
tel 06221 / 54-7531 | tel 06203 / 95 35 83
http://www.jbusse.de mailto:busse@ews.uni-heidelberg.de