OntoUML Diagrams
CaseTalk Modeler v15 introduces OntoUML diagram rendering - a feature that automatically infers OntoUML stereotypes from your FCO-IM conceptual model and renders them on UML class diagrams with color-coded stereotype labels.
Overview
OntoUML is an ontology-driven extension of UML that classifies types and relationships according to their ontological nature - whether instances are rigid or anti-rigid, whether a type provides its own identity, and how relationships are grounded in reality.
CaseTalk's FCO-IM modeling language captures rich semantic information about types, roles, constraints, and populations. The OntoUML feature leverages this existing model structure to automatically infer the correct OntoUML stereotype for each type and relationship - no separate annotation effort required.
Enabling the OntoUML Diagram Style
To render OntoUML stereotypes on your UML class diagram:
- Open your project in CaseTalk Modeler
- Navigate to Diagram > Diagram Options
- In the Style tab, find the OTFT Coloring option
- Select OntoUML from the dropdown
- Click OK and regenerate the UML class diagram
The diagram will now display:
- Stereotype labels (e.g.
«kind»,«role»,«relator») above each class name - Color-coded backgrounds matching OntoUML conventions
Supported Stereotypes
CaseTalk infers all 15 OntoUML class stereotypes and 12 relationship stereotypes from your FCO-IM model structure.
Class Stereotypes
| # | Stereotype | Description | Color | How to Configure in CaseTalk |
|---|---|---|---|---|
| 1 | «kind» |
Identity-providing entity | Green | Create an object type with its own identifier. Default for any root entity. |
| 2 | «subkind» |
Rigid specialization | Light green | Create a subtype. Default for any subtype. |
| 3 | «phase» |
Intrinsic lifecycle state | Peach | Add a state constraint (vcState) on a label of the supertype with matching subtype names, or set ConceptType = Status |
| 4 | «role» |
Relational specialization | Yellow | Set ConceptType = Role on the subtype |
| 5 | «collective» |
Collection of parts | Green | Set ConceptType = Aggregation on a related membership fact type |
| 6 | «quantity» |
Amount of matter | Green | Set ConceptType = Quantity on the entity |
| 7 | «relator» |
Mediating objectified fact | Red | Nominalise a binary fact type (e.g. "Student is enrolled in Course" becomes Enrollment) |
| 8 | «mode» |
Intrinsic property | Blue | Default for label types (e.g. Skill, Description) |
| 9 | «quality» |
Measurable property | Blue | Set ConceptType = Measure on the label type (e.g. Weight, Age) |
| 10 | «enumeration» |
Fixed value set | Lilac | Add a vcEnum value constraint on the label type |
| 11 | «datatype» |
Composite value | Lilac | Create a label type with sub-labels (e.g. Address with Street, City, PostalCode) |
| 12 | «category» |
Rigid mixin | Grey | Set Abstract = Yes and ensure subtypes come from different kind hierarchies |
| 13 | «roleMixin» |
Anti-rigid mixin | Grey | Same as category plus ConceptType = Role |
| 14 | «mixin» |
Semi-rigid mixin | Grey | Same as category (currently maps to category in inference) |
| 15 | «event» |
Occurrence / transaction | Lavender | Use a BTX (Business Transaction) type, or set ConceptType = Event |
Relationship Stereotypes
| Stereotype | Description | How to Configure |
|---|---|---|
«material» |
Standard fact type | Default for binary facts. Nominalise the fact for explicit relator derivation. |
«mediation» |
Relator-to-entity link | Automatically detected when a fact involves a relator and an entity |
«characterization» |
Label-to-entity link | Automatically detected when a fact involves a label type and an entity |
«memberOf» |
Part-whole (different types) | Set ConceptType = Aggregation on the fact type |
«componentOf» |
Structural composition | Set ConceptType = Composition on the fact type |
«subCollectionOf» |
Nested collection | Set ConceptType = Aggregation on a reflexive fact (same type on both sides) |
«subQuantityOf» |
Nested quantity | Both role players have ConceptType = Quantity |
«comparative» |
Quality-based comparison | Reflexive binary fact with ConceptType = Measure on the fact type |
«historical» |
Event-grounded relation | One of the role players is an event type |
«containment» |
Entity contains quantity | Binary fact between a regular entity and a quantity type |
«externalDependence» |
Asymmetric dependency | Reflexive binary fact with an asymmetric ring constraint |
«derivation» |
Material from relator | Implicit - shown by the relator-to-material pattern |
How It Works
CaseTalk's OntoUML inference engine examines several properties of each OFType to determine the appropriate stereotype:
- OFType Code
- Whether the type is a nominalisation (
_Nominalisation), label (_Label), fact (_Fact), or business transaction (_Btx)
- ConceptType
- The primary steering mechanism. Values include Role, Status, Quantity, Measure, Event, Aggregation, and Composition. Set via right-click, Edit, ConceptType field in the OTFT editor.
- IsAbstract
- Required for category, roleMixin, and mixin stereotypes. Set via the OTFT editor.
- Subtype relationships
- The engine checks whether a type is a subtype, whether it has subtypes, and whether subtypes span multiple kind hierarchies.
- Constraints
- Value constraints (vcEnum for enumerations, vcState for phases), uniqueness constraints (preferred UC for kind identification), and ring constraints.
- Objectification (nominalisation)
- A nominalised fact type with roles and played-by relationships is inferred as a relator.
The inference is fully automatic - you do not need to manually assign stereotypes. Simply model your domain in FCO-IM, set the appropriate ConceptType where needed, and the OntoUML rendering will show the correct stereotypes.
Example: University Domain
The diagram at the top of this page shows a University domain model with:
- Kinds: Person, Organization, Course, Building, Chemical Substance - root entities with their own identifiers
- Roles: Student, Professor - relational subtypes of Person (ConceptType = Role)
- Phases: Child, Adult - lifecycle states of Person (via state constraint)
- Subkinds: Man, Woman - rigid subtypes of Person
- Relators: Enrollment, Employment - objectified fact types mediating between entities
- Category: Rated Entity - abstract supertype shared by Person, Organization, and Course
- Collective: Research Group - a collection of Person members
- Enumerations: Academic Degree (BSc, MSc, PhD), Gender (Female, Male, Other), Type (Child, Adult, Person, Woman, Man)
- Qualities: Age, Weight, GPA Score - measurable properties (ConceptType = Measure)
- Modes: Skill, Description, various label types
- Event: Graduation - a business transaction
Each class box shows the inferred stereotype label and uses color-coding consistent with OntoUML conventions.
Semantic Richness
The diagram also demonstrates CaseTalk's semantic sections within each class box:
- Attributes with multiplicities (e.g.
Person Age [0..1]) - Uniqueness constraints (e.g.
Person_U1(Person)) - Semantics - verbalized business rules (e.g. "Person embodies the characteristics of a Type")
- Examples - sample population data (e.g. "person 1 masters Python")
This level of detail makes the OntoUML diagrams produced by CaseTalk especially valuable for domain experts, as they combine formal ontological classification with natural-language business rule documentation.
See Also
- OntoUML official website
- OntoUML/UFO Catalog
- CaseTalk Modeler - main product page
References
- Guizzardi, G. (2005). Ontological Foundations for Structural Conceptual Models. PhD Thesis.
- Fonseca, C.M., Porello, D., Guizzardi, G., Almeida, J.P.A., and Guarino, N. (2019). Relations in Ontology-Driven Conceptual Modeling. ER 2019, LNCS.