OntoUML Stereotypes
Disclaimer
While efforts have been made to ensure accuracy, the material in this page is still under review and may contain inaccuracies or omissions. Users are advised to interpret and apply the content with caution.
Class Stereotypes
Kind
Definition: A Kind is a rigid sortal type that provides a uniform principle of identity for its instances [1]. In other words, every instance of a Kind is inherently of that type for its whole existence, and the type supplies the criteria for distinguishing those instances from others.
Example: Person or Organization can be modeled as Kinds. For instance, every individual person carries the essential identity of “Person” throughout their lifetime. In an OntoUML model, Person as a Kind means that any instance of Person must always be a person (rigidly) and has its own unique identity as a person.
Collective
Definition: A Collective is a rigid sortal whose instances are plural entities (collections or groups) composed of multiple individuals arranged in a uniform structure. A Collective provides an extensional identity principle for the group as a whole (the collection can change members over time without losing its identity as that collection if set as non-extensional) [1].
Example: A flock of birds or a forest (collection of trees) would be modeled as a Collective. For example, The Beatles as a rock band can be seen as a Collective: the band remained the same entity even after one member was replaced, meaning the group’s identity is defined at the collective level rather than by any particular member.
Quantity
Definition: A Quantity is a rigid sortal class whose instances are portions of some matter or mass, often described by mass nouns or substance terms. Quantities are individuals that do not carry an identity beyond the amount of stuff they constitute – they are typically divisible and lacking unique identity criteria for each portion [1].
Example: In a model, Water or Gold can be represented as Quantities. Any particular sample of gold or volume of water is an instance of those Quantity types. For instance, one liter of water doesn’t have an individual identity that differentiates it inherently from another liter of water – it’s identified by its volume and content, not by an intrinsic identity like a person or object would have.
Subkind
Definition: A Subkind is a rigid sortal subtype that does not introduce its own identity principle but instead inherits the identity criterion from a supertype Kind. Subkinds classify a more specific group within a Kind, carrying all the identity properties defined by that Kind. They partition a Kind into exhaustive, disjoint subclasses without altering how instances are identified (the identity comes from the Kind) [1].
Example: If Person is a Kind providing an identity principle for people, then MalePerson and FemalePerson could be modeled as Subkinds of Person. Each MalePerson or FemalePerson inherits the identity criteria from Person (being the same person over time). In practice, an individual like John who is classified as a Person can be further classified as a MalePerson Subkind, but John’s identity as an individual is still determined by him being a person; the Subkind adds additional classification (male gender) without changing the identity basis.
Role
Definition: A Role is an anti-rigid sortal type that an individual can instantiate contingent on a particular relational context or situation. Roles are relationally dependent types, meaning an entity plays a role only by virtue of participating in some relation with other entities. Because Roles are anti-rigid, an instance can gain or lose that classification without losing its identity – the instantiation of the Role is temporary and dependent on external circumstances. [1] [3]
Example: Student is a typical Role that a Person may play when enrolled in a school. A person isn’t essentially or eternally a student – this Role is only instantiated while the person is involved in an enrollment relationship with an educational institution. When the person graduates or leaves school, they cease to be a Student (stop instantiating that Role) but remain the same person (their identity as a person is unchanged). Other examples include Employee (a Role a person plays when employed by a company) and Husband (a Role a person plays in the context of a marriage). An individual can move in and out of these role types over time.
Phase
Definition: A Phase is an anti-rigid sortal that represents a transient, intrinsic condition or stage in the life of an entity. Phases partition the lifespan or state space of a Kind into exclusive periods or states, usually based on some property or stage (e.g., age, development state, status). A Phase is relationally independent (it does not require an external relator to be instantiated) but is temporary with respect to the instance’s existence. All instances of a Phase share the identity supplied by their corresponding Kind, but only satisfy the Phase’s classification during a certain timeframe or condition [1].
Example: Child and Adult can be modeled as Phases of the Kind Person (assuming we partition a person’s life by age). An individual person may be a Child in one period and then transition to the Adult phase later. The person’s identity remains the same (as a Person) but they are classified under different Phases as their intrinsic attributes (in this case, age) change. Another example, in a butterfly’s life cycle, Caterpillar and Butterfly are Phases of the Kind Insect (Lepidopteran) – the same insect individual goes through these phases, each phase being a temporary stage of that individual.
Category
Definition: A Category is a rigid non-sortal class (sometimes called a mixin class) that aggregates essential properties common to multiple distinct sortal types (Kinds or Subkinds). Categories do not supply an identity principle of their own (they are non-sortals) but are rigid, meaning if an individual instantiates the Category, it does so in all circumstances. A Category typically generalizes two or more disjoint sortal types that share certain fundamental features [6].
Example: Physical Object can be modeled as a Category that generalizes different Kinds such as Person, Car, and Tree. All of those subtypes are physical objects sharing common essential properties (e.g., having mass and spatial extension), so those common properties are captured in the Category PhysicalObject. Any instance of Person, Car, or Tree will necessarily instantiate PhysicalObject as well, since it rigidly applies to all of them. Another example from ontology literature is RationalAgent as a Category that includes both Person and IntelligentSoftwareAgent — both persons and AI agents could be seen as rational actors, so the Category defines properties they must both have (like the ability to reason).
RoleMixin
Definition: A RoleMixin is an anti-rigid, externally dependent non-sortal class that captures a role-like property shared by instances of different sorts (i.e. different identity-providing types). A RoleMixin generalizes role behaviors that can be played by heterogeneous kinds of objects. Because it’s anti-rigid, no instance is eternally in the RoleMixin type – an entity instantiates the RoleMixin only when it satisfies certain relational conditions – and because it’s externally dependent, that instantiation depends on some relation to other entity(ies), similar to roles. In short, a RoleMixin is an abstract “role pattern” applicable across multiple types [4].
Example: Customer can be modeled as a RoleMixin, since many different kinds of entities can act as a customer in a purchase context. For example, a Person and a Company (which are distinct Kinds with their own identity principles) might both play the role of “Customer”. Instead of having separate PersonCustomer and CompanyCustomer roles, an abstract RoleMixin Customer can be used to capture the common features of “being a customer” that apply to both persons and organizations. Another example, in communication, an abstract RoleMixin like Responder could be defined, which can be instantiated by either a human agent or an automated agent type, whenever they are in the responding role in some interaction.
PhaseMixin
Definition: A PhaseMixin is an anti-rigid non-sortal class that represents a contingent phase (state or condition) shared by instances of multiple different sorts. Like a RoleMixin, it is a dispersive abstract type applying across different underlying types, but unlike RoleMixin, a PhaseMixin corresponds to an intrinsic, time-bound condition rather than a relational role. A PhaseMixin is essentially a generalization of Phase-like characteristics that can apply to instances of heterogeneous Kinds. In formal terms, PhaseMixins (together with RoleMixins) are exactly those types that are anti-rigid and non-sortal [4].
Example: Consider an abstract condition like AdultOrganism that could cover adult stages of different species. We might model AdultOrganism as a PhaseMixin that applies to instances of Person, Elephant, Dog, or any other Kind representing an organism, whenever those individuals are in their adult phase. Each of those Kinds has its own identity principle (each is a Kind), and each defines its own Phase (like Person has phases Child/Adult, Dog has Puppy/AdultDog, etc.), but the PhaseMixin AdultOrganism captures the shared notion of “adult stage” across all those kinds. An individual entity (say, a particular dog) instantiates AdultOrganism during the time it’s an adult, and a particular person instantiates AdultOrganism during their adult life stage. This modeling assures that AdultOrganism is not tied to one Kind’s identity principle, and an instance ceases to instantiate the PhaseMixin when it’s no longer in that phase (e.g., if it were possible to revert, or simply that it only instantiates after a certain age).
Mixin
Definition: A Mixin is a non-sortal class (no single identity principle of its own) that aggregates properties which are essential to some of its instances but accidental to others – this means a Mixin is semi-rigid. Some instances instantiate the Mixin necessarily, while other instances instantiate it contingently. Mixins often represent a certain property or feature that can cut across different taxonomic hierarchies. They are used to factor out commonalities that are not uniformly essential to all instances [6].
Example: An example of a Mixin is Seatable – imagine a property type representing “being suitable for seating”. A variety of concrete objects can satisfy this: chairs and stools instantiate Seatable essentially (by their nature they are for sitting, so every chair or stool must be seatable), whereas a rock or a stack of books might instantiate Seatable only contingently (a rock can be used as a seat, but it’s not essentially meant for sitting). In an OntoUML model, Seatable as a Mixin would have chairs and stools as essential instances (if something is a Chair Kind, it must also be Seatable), while also potentially classifying other things that happen to be used as seats (accidentally seatable). The Mixin captures the shared property “can be sat upon” without implying that everything that has that property belongs to the same kind or carries that property essentially.
Relator
Definition: A Relator is an existentially dependent moment (in the sense of an object’s dependent aspect) that mediates or connects two or more otherwise independent entities. Every instance of a Relator involves at least two distinct individuals and cannot exist without them. Relators are the ontological counterparts of what we think of as relationships or reified connections – they bear the relationship between entities. In OntoUML, a class stereotyped «relator» represents a situation or link that depends on multiple entities (its participants) to exist [2].
Example: Typical examples of Relators include social or institutional relationships like Marriage, Employment, or Enrollment. For instance, an individual marriage Relator might connect two person instances as spouses; if either person ceases to exist (or the relational context is broken), that particular marriage instance cannot exist. Another example is a Purchase relator connecting a buyer and a seller (and perhaps an item); it is a single unit that depends on all parties – if the buyer or seller didn’t exist, that purchase relationship instance couldn’t exist. In a model, Marriage would be a relator class mediating Person-to-Person, EmploymentContract could be a relator connecting an Employee and a Company, etc.
Mode
Definition: A Mode is an intrinsic moment (a dependent property or trope) that inheres in exactly one individual. Modes are existentially dependent on a single bearer entity – they cannot exist without that specific entity – and they represent properties, conditions, or dispositions of that entity. Unlike relators, modes do not connect multiple individuals; they characterize only their one bearer. In OntoUML, a class with stereotype «mode» corresponds to a particular way some individual is, which depends on that individual [8].
Example: Examples of modes include abilities, states, or conditions of individual things. For instance, John’s skill in carpentry is a Mode that exists in John (and cannot exist without John). If we have a class Skill stereotyped as a Mode, an instance might be “Mary’s Spanish-language skill,” which is a particular mode inhering in Mary. Other examples: a person’s belief or intention (which exists in the mind of that person), an illness (a condition inhering in a patient), or a magnetic property of a specific metal object. Each of these modes depends on one specific bearer and cannot be transferred to or shared by another entity.
Quality
Definition: A Quality is a specific kind of Mode that represents a qualitative aspect of an individual – typically one that can be measured or compared – and is associated with a value in some quality dimension or space. In UFO terms, a Quality mediates between an individual (the bearer of the quality) and a value (often in a structured value space, like a number or a position on a scale). Every quality instance is existentially dependent on a particular bearer (the entity that “has” the quality) and can be conceived as an individual quality trope (e.g., a specific weight, color, or temperature of something) [3].
Example: Consider the quality of Weight for physical objects. If we model Weight as a Quality, an individual object (say, a specific parcel) might have an instance of Weight (a mode) that connects it to a value (e.g., 5 kilograms) in the weight dimension. Another example is Color as a Quality: an apple has a particular color trope (its specific shade of red) that links the apple to a position in the color space. In OntoUML, we might represent Color as a Quality class; an instance “this apple’s color” is a quality dependent on that apple and is associated with a value (like an RGB value or a spot on the spectrum). Qualities thus allow modeling of attributes as first-class individuals, where their values can be compared or structured (e.g. two apples can share the same color quality value).
Type
Definition: A Type (in OntoUML 2.0 extensions) is a rigid class whose instances are themselves types (classes or classifications of entities). In other words, a class stereotyped «type» is a higher-order type that classifies other classes. Any instance of a «type» is not a concrete individual but rather a category or kind at the object level. Because it is rigid, if something is an instance of a Type, it is necessarily so (it doesn’t shift its classification in this meta-level sense) [7]. This construct allows modeling of metaclasses or “types of types” within the OntoUML model.
Example: Consider modeling different models of cars: CarModel could be a class stereotyped as «type». Its instances would be specific car models (which are themselves classes of cars in reality). For example, Tesla Model S or Fiat 500 would be instances of the CarModel Type – each of those instances represents a class of actual cars. Another example, species might be a class with stereotype «type», whose instances are specific species (each species is a class of individual organisms). In an OntoUML model, using «type» allows us to treat those category-like entities (car models, species, product categories, etc.) as instances of a higher-order class while still respecting ontological distinctions.
DataType
Definition: A DataType in OntoUML represents a class of value spaces – it classifies primitive or value objects that are not considered individuals with identity in the domain, but rather abstract or structured values. A class stereotyped «datatype» defines a conceptual space of possible literal values (such as numbers, measures, or structured data like dates). DataType instances are typically used for attributes and are considered immutable and lacking an identity principle (two identical value instances are indistinguishable) [7].
Example: Common examples of DataTypes include things like Integer, String, or domain-specific value types like CurrencyAmount or RGBColor. For instance, if we have a Temperature DataType, its instances might be values like “36.6°C” – two occurrences of the value 36.6°C are not considered two distinct identifiable entities, but essentially the same value. In a model, one might have MassInKilograms as a DataType to represent mass measurements; an instance 5.0 (kg) is a value that could be attached to some Quality or attribute but is not an independent entity in the domain. DataTypes thus serve to model sets of values and measurements that objects can bear.
Enumeration
Definition: An Enumeration is a special kind of DataType class that specifies a finite, discrete set of possible literal values (enumeration literals) in a conceptual space. An Enumeration’s instances are those predefined values, and no others. Like other DataTypes, enumeration values have no independent identity and are considered identical if they have the same literal. The stereotype «enumeration» is used in OntoUML to represent attributes or classes where only a fixed list of values is allowed [7].
Example: An example of an Enumeration is DayOfWeek, which has exactly seven instances (Monday, Tuesday, ..., Sunday) as its allowed values. In an OntoUML model, DayOfWeek would be an enumeration class with those seven literals. Another example: DriverLicenseCategory could be an enumeration with values {A, B, C, D, E} representing different license types. Each literal like B (for a car license) is an instance of the DriverLicenseCategory enumeration. Enumerations are typically used for attributes where the set of values is strictly limited and known in advance.
Event
Definition: An Event is a class whose instances are events or occurrences in time – perdurants rather than endurants. An Event type represents something that happens and has a temporal extension, such as a process, action, or incident. Classes stereotyped as «event» are disjoint from endurant (object) classes; an instance of an event class cannot simultaneously be an instance of a substantive object class. In OntoUML (extended with UFO-B concepts), marking a class as «event» indicates it captures a historical occurrence, and model constraints prevent mixing events with endurants in the class hierarchy [5].
Example: Wedding, Conference, or Explosion could be modeled as event types. For instance, one might have an Accident class stereotyped «event» to represent accident occurrences. An individual accident (say, a specific car crash on January 1, 2025) is an instance of Accident. As an event, it unfolds in time and can have participants (like vehicles, persons) but it is not itself a persistent object. In the model, no endurant (like a Person or Car Kind) can be a subtype of Accident, and an event type cannot subtype an object type – this reflects the ontological separation of happenings versus things. Events often have attributes for time (e.g., start and end time) and can be related to endurants through event participation relationships.
Relationship Stereotypes
Material
Definition: A Material relationship is an association that represents a concrete, domain-specific relationship between endurant entities, which exists by virtue of a mediating relator entity. Material relations have a “material structure” of their own – there is some event, process, or relator underpinning the connection between the two related entities. In OntoUML, a material relation (stereotyped «material») indicates that the relationship cannot hold unless a certain relator instance exists connecting the participants [1]. Material relations are typically contingent (not necessarily always true for the same pair of individuals over time) and are derivable: there is usually a corresponding Relator class and mediation associations that formally ground the material relation.
Example: “is married to” between two Person instances is a Material relation – it holds due to the existence of a Marriage relator connecting those persons. If the marriage relator is dissolved (divorce), the material relation “married to” no longer holds. Similarly, “works for” (between a Person and a Company) is material, typically founded on an EmploymentContract or employment relator. The OntoUML model would include an explicit relator class Employment with mediations to Person and Company, and the material relation works for can be derived via that relator. In essence, material relations in the diagram show the surface-level connection (e.g., Person –works for→ Company) while a relator (e.g., an instance of Employment) and mediation links provide the ontological justification for why that relation holds.
Mediation
Definition: Mediation is a fundamental existential dependence relationship that connects a relator to the entities it depends on (its participants). An association stereotyped «mediation» links a relator type with a sortal type that the relator “mediates” or connects. Mediation signifies that an instance of the relator cannot exist unless it is mediating (linked to) an instance of the other type, and typically the relator is dependent on at least two such entities (hence there will be at least two mediation relations for a relator). In OntoUML, each relator must mediate at least two distinct individuals. Mediation is a directed relation: it goes from the relator to the mediated type(s), indicating the relator’s dependency on its participants [7].
Example: In a marriage scenario, a class Marriage (stereotyped «relator») will have two mediation relations: one mediating Marriage to Person (for the spouse role on one side) and another mediating Marriage to Person (for the spouse on the other side). Each Marriage instance must be connected via these mediations to two person instances – it cannot exist in isolation. Another example: an Enrollment relator between a Student and a School would be modeled with a mediation from Enrollment to Student and another from Enrollment to School. The presence of an Enrollment instance (say, a specific enrollment record) is contingent on a particular student and a particular school existing. Mediation explicitly captures that dependence in the model – e.g., “Enrollment (John ←enrollment→ University X)”, where the mediations connect the enrollment relator to John and to University X.
Characterization
Definition: Characterization is a relationship that links an individual (the bearer) with an intrinsic dependent property (the feature that characterizes it). In OntoUML, an association stereotyped «characterization» connects a mode or quality (the feature) to the object it characterizes. The feature is an existentially dependent moment of the bearer – it cannot exist without the bearer, and it represents some intrinsic aspect of that bearer. The characterization relation signifies that every instance of the bearer type is associated with (or “exemplifies”) an instance of the feature type in question. (In formal terms, if a characterization link exists, the feature is said to inhere in the bearer.) [7]
Example: If we model Weight as a Quality and Person as a Kind, a characterization relation might link Weight to Person (a person has a weight). An instance of Weight (say, John’s weight of 70 kg) characterizes the individual John. John cannot have that particular weight instance without John existing, and that weight depends on John. As another example, consider a mode class Belief and an object class Agent; a characterization relation Agent has Belief means each belief instance exists in (characterizes) some agent. If Mary holds a particular belief (instance of Belief), that belief characterization link ties it to Mary as its bearer. Characterization relations are by nature directed from the mode/quality to the bearer (the mode “characterizes” the bearer) and typically have a cardinality of 1 at the bearer end (each mode instance is tied to exactly one bearer).
Derivation
Definition: Derivation is a meta-relationship in OntoUML that connects a material relation to the relator that lies at its foundation. An association stereotyped «derivation» links a relator class to a material association, indicating that the material relationship can be logically derived from the existence of the relator and its mediation relations [2]. In effect, the derivation relationship specifies that if a certain relator instance is present connecting two entities, then a corresponding material relation instance holds between those entities (and vice-versa, the material relation’s presence implies a relator). This construct helps maintain consistency: cardinality constraints on the material relation are determined by the combination of mediations and the relator’s existence.
Example: In a model with Marriage as a relator and a material relation “is married to” between Person and Person, we would use a «derivation» to tie the is married to association to the Marriage class. This indicates that “Person A is married to Person B” is true if and only if there exists a Marriage instance connecting A and B. The derivation association often is shown as a dashed line from the relator to the material relation. Another example: a relator EmploymentContract might derive a material relation “works for” (Person –works for→ Company). The derivation relationship formally states that the works for link between a given person and company exists because an EmploymentContract relator instance connects them, and if that contract is terminated (relator ceases to exist), the works for relation no longer holds.
ComponentOf
Definition: ComponentOf is a part-whole relationship stereotype that represents a functional composition between two objects. An association «componentOf» indicates that the source is a part (component) of the target, and this part contributes in a specific way to the functionality of the whole. Both the whole and the part in a ComponentOf relation are typically functional complexes (Kinds or Subkinds that are complex objects). The relation is usually rigid for the part (the part must be part of some whole of the specified type while it exists) and often carries the inference that if the whole ceases to exist, the part’s specific role or existence as that component ceases as well (depending on cardinalities and modality) [7].
Example: A Engine is componentOf a Car. In an OntoUML model, if we have classes Car and Engine (both Kinds, say), a «componentOf» relation from Engine (source) to Car (target) means an engine is a part of a car. The engine plays a functional role (providing power) in the context of the car. If we remove the engine from the car, it no longer functions as a “car engine” (it might be just a spare part unless placed in another car). Other examples: Heart componentOf HumanBody, Wheel componentOf Bicycle. Each of these indicates a part-whole with a functional dependency: the part contributes to the operation or structure of the whole (and generally, a whole cannot function as intended without at least some of its key components present).
MemberOf
Definition: MemberOf is a part-whole relation denoting membership in a collective. The stereotype «memberOf» connects either an individual functional object or a sub-collective (as the part) to a Collective (as the whole). This relation indicates that the part is an element of a group/collection that is considered a single collective entity. It carries the semantics that the members together form the collective whole, and often the collective’s identity is independent of any particular member (extensional identity principle). Cardinality constraints usually allow multiple members in the collective and typically a member belongs to at most one such collective of the same type at a time (depending on the nature of the group) [1].
Example: Person memberOf Team: an OntoUML model might have a class Team stereotyped «collective» and class Person (a Kind), with a «memberOf» association from Person to Team. This means persons are members of teams. For instance, Alice is a member of The Design Team. If Alice leaves the team, she is no longer connected by that memberOf relation, but the team may still continue (possibly with different members). Another example: a Soldier memberOf Platoon or Tree memberOf Forest (if Forest is treated as a collective of trees). In each case, the collection’s identity (the team, platoon, or forest) isn’t tied to any single member – members can come or go. The MemberOf relation formalizes this membership part-whole connection in the model.
SubCollectionOf
Definition: SubCollectionOf is a part-whole stereotype used to represent a collective-to-collective parthood, i.e., a situation where a collective is part of a larger collective. Both the part and whole are Collectives in this relation. The sub-collection relation usually implies that every member of the sub-collective is also a member of the super-collective (the whole), and thus the sub-collective is essentially a subset of the larger collection (but treated as a unit itself). This relation is typically transitive and is used to model hierarchical groupings [1].
Example: A Squad is a sub-collection of a Battalion. If we model a military unit hierarchy, Battalion (whole) and Squad (part) could both be Collectives (each comprised of soldiers), with a «subCollectionOf» relation linking Squad to Battalion. This indicates each squad is part of some battalion. In an instance scenario, Squad Alpha (a collective of 10 soldiers) is a sub-collection of the 5th Battalion (a collective of 200 soldiers); all soldiers in Squad Alpha are members of the 5th Battalion. Another example: ResearchGroup subCollectionOf Department in a university context, if both are modeled as collectives of people. The SubCollectionOf relation helps maintain that the smaller group is conceptually part of the larger group, inheriting the membership context.
SubQuantityOf
Definition: SubQuantityOf is a part-whole relation that relates one Quantity to a larger Quantity of the same kind – essentially, it denotes a portion-to-whole relationship within stuff or masses. Both the part and whole are instances of a Quantity (a continuous substance or amount). The subquantity inherits the same identity criterion as the whole (since for quantities the identity is often defined by the kind of substance and possibly the total amount). This relation is transitive and is used to model situations where a quantity (e.g., a liter of water) is part of a larger quantity (e.g., a reservoir of water) [1].
Example: If Water is modeled as a Quantity type, a «subQuantityOf» association could relate Water to itself (or more specifically, between a volume and a larger volume of water) to express the notion “part of this water is contained in that whole”. For instance, the 2 liters of water in this bottle is a subquantity of the 100 liters of water in the barrel. In the model, we might not distinguish subclasses, but at the instance level we use subquantity links: an instance representing 2L of water is subQuantityOf an instance representing 100L of water. Another example: Gold subQuantityOf Gold (one nugget of gold as part of a larger heap of gold). This stereotype explicitly captures divisible substance parthood, where dividing or combining quantities yields the same type of quantity (and identity is tied to the substance, not to any particular parcel).
Participation
Definition: Participation is an association stereotype that links an endurant (object or agent) with an event, indicating that the endurant participates in (takes part in) the occurrence. This relationship is foundational in connecting the ontology of endurants (UFO-A) with the ontology of events (UFO-B). An association «participation» always relates a class stereotyped «event» to a class representing some endurant type. The existence of a participation link means that the endurant was involved in or present during the event [5]. In ontological terms, the event is existentially dependent on its participants to some extent (an event of a certain type might require specific participants to occur), and each participation is a specific way an endurant figures in an event.
Example: In a model with an Event class like SoccerMatch and an endurant class like Person (or SoccerPlayer as a role of Person), a «participation» association could connect SoccerPlayer to SoccerMatch. This would indicate that players (persons) participate in soccer match events. For a specific instance, John Doe participates in Match #45. Other examples include: Student (Person) participates in Exam (event), Machine participates in AssemblyProcess, or more generally Agent participates in Activity. The participation relation can carry additional semantics (roles in the event, time of participation), but fundamentally it ties the object to the event in which it took part. If John is linked to a particular Exam event via participation, it means John was a participant in that exam occurrence.
Creation
Definition: Creation is a specialized kind of participation that indicates an endurant’s coming into existence is tied to an event. An association stereotyped «creation» relates an event to an endurant type such that if an individual of that type is connected by this relation, that individual is generated or produced by that event. In other words, the event is the creative event for that object [5]. The created endurant did not exist before the event and begins to exist as the event happens or concludes. This stereotype captures the causal origination aspect in the model. (It is one half of the pair, with «termination» for ceasing to exist.)
Example: Consider a class Artwork (endurant) and an event class PaintingSession. A «creation» association from PaintingSession to Artwork would mean the artwork is created in the painting event. For instance, Mona Lisa (an instance of Artwork) is created in Da Vinci’s painting process event (an instance of PaintingSession). Another example: if Company is a Kind and FoundingEvent is an event class, a «creation» link can indicate that a company comes into existence as a result of a founding event. In the model, we might say StartupInc (Company) is connected to StartupIncFoundingEvent 2021 via a creation association – interpreting that the company was established in that event. The creation relationship makes it explicit that the event is responsible for the origination of the endurant.
Termination
Definition: Termination is the counterpart to creation – a specialized participation indicating that an endurant’s existence ends as a result of a certain event. When an endurant is linked to an event by a «termination» association, it means that event brings about the endurant’s termination (the object ceases to exist in or due to that event). The terminated entity does not exist after the event [5]. This stereotype allows modeling of destruction, death, expiration or other forms of existential cessation in the context of events.
Example: If we have a class Person and an event class DeathEvent, a «termination» association could connect them, meaning a person dies in that event. For instance, an instance DeathOfJohn (a DeathEvent) terminating the instance John (Person). Similarly, consider Company and DissolutionEvent with a termination link: a specific company ceases to exist during a particular dissolution event. Another example: a Building might have a termination relation with a Demolition event. E.g., Old City Hall Building is terminated by CityHallDemolition2022 event. In each case, the termination association in the model signifies that the event marks the final existence moment of the object – after the event, the object is no more.
HistoricalDependence
Definition: HistoricalDependence is a relationship indicating that one endurant is linked to another due to some past event or history involving them. It is typically used when an entity’s present state or existence is historically dependent on another entity’s involvement in an event. The stereotype «historicalDependence» connects two entities to show that one exists or has certain properties because of a specific event that happened involving the other. Essentially, it’s a way to model a dependency that isn’t ongoing like mediation, but rooted in a historical event (often an event that is not explicitly represented as a relator, but still has relevance) [7].
Example: An example from cultural heritage: a City might be historically dependent on a certain Painting because that painting (an image object) depicts the city at a point in time. In the model, we could have City –historicalDependence→ ImageObject with the interpretation: Paris is historically dependent on “Painting of Paris in 1800” in the sense that the image is a historical record of Paris at that time. Another example: a Site historicallyDependsOn an Artifact (the site is historically significant due to the discovery of that artifact there during an event). Or a person might have a historical dependence on an award object because a past event of winning that award is part of their history. The historicalDependence relation is a way to connect entities via an implicit past event context – it implies there was some event linking them (e.g., the act of creation, discovery, representation, etc. in the past).
Instantiation
Definition: Instantiation (in OntoUML 2.0) is a relationship that links a concrete instance to a type class that classifies it, effectively making the instance an instance-of a model element. The stereotype «instantiation» is used to represent an instance-of relationship within the model itself. It connects a class that represents individuals to another class that represents a higher-order type (a class of which those individuals are instances). This is particularly employed when modeling type hierarchies or using the «type» stereotype classes. The relation is directed: typically from the individual (instance) to the type-of-type (classifier class) [7].
Example: Suppose we have a class CarModel (stereotyped «type») and another class Car (a Kind). We can use a «instantiation» association to connect Car to CarModel to indicate that each instance of Car is classified by some instance of CarModel. For instance, a specific car car123 is an instance of the model Tesla Model S. In the model, we might not represent individual instances explicitly, but we represent that Car123 (if it were an object) instantiates TeslaModelS (which is an instance of CarModel). Another concrete example: Person class connected via instantiation to a PersonType class – if we treat categories like “StudentType” as instances of PersonType, an instantiation link could show that “Alice” (a Person) is an instance of the type “Student” (if “Student” itself is modeled as an instance of a higher-order class). In summary, instantiation relations in OntoUML capture the idea that “every instance of Class A is classified by some instance of Class B” – for example, every individual car instantiates exactly one car model.
References
[1] Guizzardi, G. (2005). Ontological Foundations for Structural Conceptual Models. (PhD Thesis). Enschede, The Netherlands: Telematica Instituut / University of Twente.
[2] Falbo, R. A. (2014). OntoUML Quick Guide and Pattern Language. Technical Report, NEMO, Federal University of Espírito Santo.
[3] Guizzardi, G., Herre, H., & Wagner, G. (2004). “Towards Ontological Foundations for UML Conceptual Models.” In ER 2004 Workshops (pp. 110–121). Springer.
[4] Guizzardi, G., et al. (2018). “Ontology-Based Model Transformations in OntoUML: Supporting Role and Phase Mixins.” NEMO Research Report, Federal University of Espírito Santo.
[5] Guizzardi, G., et al. (2013). “Towards Ontological Foundations for the Conceptual Modeling of Events.” In ER 2013 – Conceptual Modeling (LNCS 8217, pp. 327–341). Springer.
[6] Suchánek, M., & Alves, V. (2018). OntoUML Specification Documentation. (Ontology specification document).
[7] AlpineBits Alliance. (2023). Modeling Language: OntoUML (AlpineBits Ontology Documentation).
[8] Guizzardi, G., & Falbo, R. A. (2008). “Experiencing UFO-Based Ontology Design.” Journal of Software Engineering and Applications, 1(1), 19–28.