Executive Summary
This is an overview of modelling with metamodelling languages within Mimris, focusing specifically on the principles of cyclic metamodelling and modelling. It explains the distinction between models and metamodels, the importance of supporting cycles and recursion with models and metamodels, and describes how the CORE_META language in Mimris enables the creation of custom, domain-specific modelling languages. The practical use of graphical modelling and the support for cyclic and self-referential structures are highlighted, with a concrete example using the BPMN metamodel. This foundation empowers users to build expressive, adaptive, and effective modelling environments tailored to complex systems.
Introduction to Modelling Languages
A modelling language is an artificial, formal language designed to express data, information, or knowledge in a structured and consistent manner. Each modelling language adheres to a clearly defined set of rules that govern its syntax and semantics.
In Mimris, the modelling language is graphical in nature, providing a visual means of representing complex information and relationships.
Metamodelling: Defining Modelling Languages
A metamodel is a model that defines the structure, semantics, and constraints of a modelling language. In essence, a metamodel specifies the permissible constructs (such as objects, relationships, and properties) and the rules for their assembly. In practice, the term metamodel is often used interchangeably with modelling language, although, strictly speaking, the metamodel describes the language, while the modelling language is used to describe domain-specific models.
Metamodelling Process
Cyclic Modelling: Recursion and Self-Reference in Models
Cyclic modelling refers to the capability of a modelling language or metamodel to describe structures where elements can reference themselves directly or indirectly, forming cycles. This is particularly relevant for accurately representing real-world systems that contain recursive or repeating relationships (e.g., organizational hierarchies, network topologies, recursive processes).
Key Aspects of Cyclic Modelling
Mimris fully supports cyclic modelling at both the model and metamodel levels, allowing for rich and expressive representations of complex, interconnected systems.
Textual vs. Graphical Modelling Languages
In textual modelling languages, constructs are typically described in terms of nouns (entities) and verbs (actions or relationships). In a graphical modelling language such as Mimris, the corresponding terms are objects and relationships. This shift from textual to graphical representation enables a more intuitive and visual approach to modelling complex systems, particularly when visualizing cyclic or recursive structures.
CORE_META: The Foundation for Metamodelling
The modelling language used within Mimris to define new, custom modelling languages is called CORE_META
. CORE_META
provides a comprehensive set of modelling primitives that enable users to define custom object types (analogous to nouns) and relationship types (analogous to verbs), along with associated properties and methods.
Capabilities of CORE_META
Creating and Evolving Custom Modelling Languages
Once these custom types are specified (modelled), users can invoke the “Generate Metamodel” function to automatically produce their own metamodel. These metamodels—effectively new, domain-specific modelling languages—can then serve as the foundation for creating custom models tailored to particular needs or contexts.
Through iterative refinement and cyclic application of the modelling and metamodelling process, users can evolve their modelling languages, ensuring adaptability and continuous improvement. This cyclical process is fundamental for advanced modelling environments where requirements and concepts change over time.
By leveraging CORE_META
, users can develop highly specialized modelling languages that address the unique requirements of their projects, ensuring a more precise, expressive, and effective modelling process.
BPMN example model
The Mimris version of the BPMN Metamodel as shown below is rather advanced. It utilizes inheritance from an abstract object type (Gateway), relationships to and from the abstract type, in addition to relationships between non-abstract object types (Start, Task, End).
In addition it utilizes the "template2" field in the object and relationship views. This to achieve a completely different visualization of objects and relationships in the models built using the generated template than in the metamodel itself.
Below is shown an example model built using a template generated from the metamodel above.