Kind

Category

RigidSortal

Provides identity

yes

Identity principle

simple

Rigidity

rigid

Dependency

optional

Allowed supertypes

Category, Mixin

Allowed subtypes

Subkind, Phase, Role

Forbidden associations

Derivation, Structuration, SubCollectionOf, SubQuantityOf

Abstract

undefined

Definition

A «Kind» is construct you are going to use in most of your models. It is used to represent rigid concepts that provide an identity principle for their instances and do not require a relational dependency. A «Kind» represent a Functional Complex, i.e., a whole that has parts contributing in different ways for its functionality (see the ComponentOf relation for more details about functional parts). Let’s see some examples:

Kind examples

Constraints

C1: A «Kind» cannot have an identity provider («Kind», «Collective», «Quality», «Relator», «Mode» and «Quantity») as its direct or indirect super-type.

Kind forbidden 1

C2: A «Kind» cannot have types that inherit identitySubkind», «Role» and «Phase») as its direct or indirect super-type.

Kind forbidden 2

C3: A «Kind» cannot have types that aggregate individuals with different identity principlesCategory», «RoleMixin» and «Mixin») as its direct or indirect subtypes.

C4: As a rigid type, a «Kind» cannot have any anti-rigid type («Role», «RoleMixin» and «Phase») as its direct or indirect super-type.

Common questions

Q1: If a «Kind» is relationally independent, does that mean we cannot define relations for theses types?

A1: No! When we say that a «Kind» is relationally independent, we mean that it does not necessarily require a relation to be defined, like a «Role» does. Here is an example in which a «Kind» has a dependency.

Example O1

This example was extracted from the Software Requirements Reference Ontology (SRRO). Click here to take a look at it.

Examples

EX1: Fragment from the Configuration Management Task Ontology (see more):

Example MTO

EX2: Fragment from the OntoUML Org Ontology (O3) (see more):

Example O3