[sc34wg3] RM4TM issue : is role player always a set?

Bernard Vatant sc34wg3@isotopicmaps.org
Wed, 20 Nov 2002 15:08:21 +0100

I have forgotten in the previous message that Jan had answered to Graham.
Sorry about that Jan, and some comments on your answer.

[Jan Algermissen]
> In the RM there is no notion of setness, all there is, is the constraint that
> there may not be more than one player for a single role.
> This constraint ensures that any group of subjects that play the same role in a
> relationship (as it understood in the world outside the graph) will be represented by
> a single node in the graph representation.

So what does this node represent, if not a set? Why not say it explicitly?

> This is important, since this set is
> a subject (the set of players of a certain role in a certain assertion)
> and so there must be a node for it.

I think we've all understood that now, from your and Steve's explanations :))

> For example, if we did not have that node, how would we reason about (=make assertions
> about) the cardinality of that set, in order to validate any cardinality constraints
> imposed on the number of players of a certain role.

For example that this cardinality might be 1+ ?
This is the case about a father-child relationship. I can have one or more children.
It seems to me non-natural that in the case I have two children, the role player would be
a set, and if I have only one child, not a set. If the assertion type says that the role
player is the set of my children, this should apply even when this set has only one
element (and even, why not, when it is empty)

> Role players are not allways sets and the graph does not 'know'  anything about this
> issue (there is only a subject that plays a certain role). WHAT this subject is (if it
> is a set or not) is part of the semantics of the particular assertion type.

Exact. But if the role player x is not a set, how do you make distinct the subject x and
the set {x}?
The second one is also a subject, which is exactly the set of subjects that play the role
So you have a problem here, and the only consistent way I see to solve it is to say:
"a role player is always a set of subjects".

> Example: If you have some class-instance assertion and you want to know what playes the
> class role, you would ask for the single subject that plays the class role, you would
> ask for the set of subjects that play the class role. You wouldn't, because you KNOW
> there will be only one player of that role, it's part of the semantics of the
> assertion type.

Hmm. In that case, the class-role-player-set has a single element ...

And it does not solve the issue of the set-member relationship ...