Skip to content
This repository was archived by the owner on Dec 18, 2019. It is now read-only.
Tiago Prince Sales edited this page Oct 28, 2015 · 21 revisions

Kind

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.

Let's see some examples:

Rules for using kinds:

  1. A «Kind» cannot have another identity provider («Kind», «Collective», «Quantity», «Relator», «Mode» and «Quantity») as its direct or indirect super-type. Because of this rule, the following usages are not allowed:

  1. A «Kind» cannot have types that inherit identity («Subkind», «Role» and «Phase») as its direct or indirect super-type. Therefore, the following is not allowed:

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.

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

Usage of the «Kind» stereotype in real models:

Clone this wiki locally