R33 - modelint/shlaer-mellor-metamodel GitHub Wiki

R33 / 1:1c-M

Classifier Attribute generates type values for exactly one Subclass

Subclass has type values generated by zero or one Classifier Attribute


By definition, a Classifier Attribute must provide one or more values to distinguish each subclass population in a Generalization.

When a given subclass identifier does not itself consist of a Classifier Attribute, only one value is required. But if two repeated Generalizations are connected, the highest level Superclass has a Classifier Attribute which assigns values for each lower level subclass. Here is an example:

images/class-attribute-subsystem/R33-10.png

A Subclass may or may not be part of a Generalization where instances are globally distinct across a Generalization (without the need for a Classifier Attribute).

Formalization

Subclass Classification Value.(Superclass, Generalization, Domain) -> Classifier Attribute.(Superclass, Generalization, Domain)
Subclass Classification Value.(Subclass, Generalization, Domain) -> Subclass.(Name, Rnum, Domain)

Many associative identifier attribute

The Value attribute is added to the identifier so that multiple instances of Subclass Classification Value are related to the same Classifier Attribute—Subclass instance pair