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, Mode, Quality, Role, Phase, RoleMixin, PhaseMixin, Mixin

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

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