Category

Category
RigidNonSortal
Provides identity
no
Identity principle
multiple
Rigidity
rigid
Dependency
optional
Allowed supertypes
Category, Mixin
Allowed subtypes
Kind, Subkind, Collective, Quantity, Relator, Category
Forbidden associations
Structuration
Abstract
True

Definition

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:

Category 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.

Constraints

C1: A «Category» is always abstract. Notice that abstract classes are represented with an italic label.

Category application 1

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».

Category forbidden 1

C3: A «Category» is a rigid construct, therefore it cannot have as ancestor an anti-rigid type, as: «Role», «RoleMixin», «Phase».

Category forbidden 2

C4: Categories cannot have as descendants the following types: «Mixin», «Role», «Phase».

Category forbidden 3

Common questions

Ask us some question if something is not clear …

Examples

EX1: Fragment from the ECG Ontology (see more):

Example ECG

EX2: Fragment from UFO-S, a commitment-based service ontology (see more):

Example UFO-S