R107 - modelint/shlaer-mellor-metamodel GitHub Wiki

R107 / 1:Mc

Ordinal Relationship is formalized by exactly one Identifier

Identifier formalizes zero, one or many Ordinal Relationship


To ensure that no two instances are ranked at the same level, an Identifier is required to formalize any Ordinal Relationship.

One Attribute in the Identifier will be used for ranking and must have an appropriate type where values may be compared in a sequential order.

Any remaining Attributes can be used to define a partial ordering across the Class population.

An Identifier could participate in more than one Ordinal Relationship (all of which would have to be on the same Class) if, and only if, the choice of Ranking attribute is different in each Ordinal Relationship. This also means that there would need to be more than one Identifier Attribute component with a Type supporting the necessary order comparison operations.

Erik Söderholm has pointed out that the logic of this relationship, R107, is derivable from R106.

Formalization

Ordinal Relationship.(Ranking identifier, Class, Domain) -> Identifier.(Number, Class, Domain)