Provides identity
Identity principle
Allowed supertypes
Kind, Subkind, Collective, Phase, Quantity, Relator, Role, RoleMixin, Mixin
Allowed subtypes
Forbidden associations


A «Role» is a construct used to represent anti-rigid specializations of identity providersKind», «Collective», «Quantity», «Relator», «Mode» and «Quantity») that are instantiated in relational contexts. All instances of a particular «Role» must follow the same identity principle. Here are some examples of roles:

Examples 0


C1: A «Role» must always have exactly one identity providerKind», «Collective», «Quantity», «Relator», «Mode», «Quantity») as an ancestor (a direct or indirect super-type). To model our list of roles presented above, we should given them identity providers:

Role application 1

C2: Every «Role» must be connected, directly or indirectly, to a «Mediation» relation, since it is a relationally dependent construct. Continuing our example above, we should do the following:

Role application 2

Remember that you can’t defined a relational dependency with a minimum cardinality of zero. Therefore, the fragment below is wrong!

Role forbidden 1

C3: A «Role» cannot be a supertype of a rigid type («Kind», «Subkind», «Collective», «Quantity», «Relator», «Category»).

Role forbidden 2

C4: A «Role» cannot be a supertype of a mixin types («Category», «RoleMixin», «Mixin»).

Role forbidden 3

Common questions

Q1: Can I define multiples dependencies for a «Role»?

A1: Yes, there is no restriction in the number of dependencies one can define for a «Role». However, think carefully before doing so. You might be adding some unwanted instantiations to your ontology. This is an Ontological Anti-Pattern, called Multiple Dependency (read more about it here)

Q2: Can a «Role» be used to specialize another «Role»?

A2: Yes, there is no restriction regarding it. Again, take care when doing so. Since the language only require at least one indirect dependency for a «Role», you might forget to define additional dependencies for the sub-types.


EX1: Conceptual model about roles in the Catholic clergy (see more):

Example Catholic Clergy

EX2: Fragment from an ontological analysis of a Human Genome scheme (see more):

Example Human Genome
Errata: No material derivation, bad material multiplicity, bad memberOf multiplicity

EX3: Fragment of the OntoUML Org Ontology (O3) (see more):

Example O3
Errata: Relator cannot be subtype of Relator, Category not abstract and no subtypes (or just one), no material relation