Skip to content
This repository has been archived by the owner on Dec 18, 2019. It is now read-only.

Category

Tiago Prince Sales edited this page Nov 4, 2015 · 8 revisions

Category

Overview

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

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:

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.

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

Examples

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

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

Clone this wiki locally