-
Notifications
You must be signed in to change notification settings - Fork 1
Category
Provides Identity: No
Identity Principle: Multiple
Rigidity: Rigid
Dependency: Optional
Allowed Supertypes: «Category», «Mixin»
Allowed Subtypes: «Subkind», «Kind», «Collective», «Quantity», «Relator»
Forbidden Associations: «Structuration»
Abstract: True
A «Category» is a rigid mixin that does not require a dependency to be specified. It is used to aggregate essential properties to individuals which following different identity principles.
Let's see some examples:
Categories are usually used in a refactoring process. For example, let's suppose that you defined two classes in your model, Person and Animal. Now you want to state that either people and animals have a weight. You than create a «Category», which has weight, and generalize the existing classes into it.
C1: A «Category» is always abstract. Notice that abstract classes are represented with an italic label.
C2: A «Category» aggregate individuals that follow different identity principles, therefore it may not have as ancestor the following constructs: «Kind», «Quantity», «Collective», «Subkind», «Role», «Phase», «Relator», «Mode», «Quality».
C3: A «Category» is a rigid construct, therefore it cannot have as ancestor an anti-rigid type, as: «Role», «RoleMixin», «Phase».
C4: Categories cannot have as descendants the following types: «Mixin», «Role», «Phase».
EX1: Fragment from the ECG Ontology (see more):
EX2: Fragment from UFO-S, a commitment-based service ontology (see more):
- Home
-
OntoUML Tutorial
- Theoretical Foundations
- Class Stereotypes
- Relation Stereotypes
- OntoUML Pattern Catalogue