OntoUML Diagrams

From CaseTalk Wiki
Jump to: navigation, search

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.

OntoUML stereotypes rendered on a CaseTalk UML class diagram (University domain)

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:

  1. Open your project in CaseTalk Modeler
  2. Navigate to Diagram > Diagram Options
  3. In the Style tab, find the OTFT Coloring option
  4. Select OntoUML from the dropdown
  5. 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

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.