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