Getting started
Click Modelling tab in top menu to start modelling
Click Video tab or Help tab in the top menu to get help

Here you find instruction videos and Help on how to use the Mimris Modelling App.

Metamodels
Building AKM Models:
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
  • Object and Relationship Definition: Users can create new modelling constructs tailored to specific domains.
  • Property and Method Specification: Customization of behaviour and attributes for each type.
  • Support for Cyclic Structures: Both the language and its metamodel can express cyclic dependencies, recursive relationships, and feedback loops.

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).

BPMN-Meta

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.

BPMN-example

When building a model, we use some predefined objects called "Object Types".

(Its can be compared to building a Lego model. Depending on which Lego blocks you have, we can build different models)

In AKM modelling we have predefined a Metamodel with the IRTV building blocks. From these we can build any new Metamodels and Models of any kind.

(The App that builds the App).

(It is possible to build your own Metamodel from a basic Object and Relationship type)

Metamodels:

CORE Metamodel
The CORE Metamodel is the basic building blocks for all Metamodels.

IRTV (Information, Role, Task, View) metamodel

AKM modelling can start with a generic IRTV-Metamodel, which contain the basic building blocks for AKM Models.
(shown in the left Palette in the modelling page).

We use these building blocks to build an Active Knowledge Model, which in turn can be use to generate Solution models for interactive Role and Task oriented Workplaces for all Roles in enterprise projects .

POPS (Product, Organisation, Process, Service) metamodel

AKM modelling can also start with a generic POPS-Metamodel, which contain the basic building blocks for AKM Models.
(shown in the left Palette in the modelling page).

We use these building blocks to build an Active Knowledge Model, which in turn can be use to generate Solution models for interactive Role and Task oriented Workplaces for all Roles in enterprise projects .

BPMN (Business Process Model and Notation) metamodel

AKM modelling can also start with a generic BPMN-Metamodel, which contain the basic building blocks for AKM Models.
(shown in the left Palette in the modelling page).

We use these building blocks to build an Active Knowledge Model, which in turn can be use to generate Solution models for interactive Role and Task oriented Workplaces for all Roles in enterprise projects .

Mimris Modeller

Modelling, and Metamodelling with Mimris

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

  • Specification: Using the CORE_META metamodel, users can define new object types and relationships, specifying their properties and methods.
  • Generation: From this model, users can generate a metamodel that serves as a new modelling language.
  • Instantiation: Using this Metamodel, users can model individual models as instantiations of their respective metamodels.
  • Reflection: Need for changes discovered when modelling, can be addressed by modifying the Specification model. This is a key aspect of metamodelling, as it allows for the evolution of the modelling language itself. Then the user regenerate the metamodel that is modified to adapt to new requirements, and these changes can be propagated to all models instantiated from it.

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

  • Recursive Definitions: Cyclic modelling enables objects or relationships to reference instances of their own type or related types, allowing for the representation of loops and feedback structures.
  • Self-Referencing Models: Metamodels that support cyclic modelling can define constructs such as “parent-child” hierarchies or linked workflows, where cycles naturally occur.
  • Metamodelling Cycles: In advanced usage, metamodels themselves can be defined using their own constructs—a process sometimes referred to as reflective metamodelling or meta-circularity. This allows the modelling environment to evolve, extend, or redefine its own structure.

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

  • Object and Relationship Definition: Users can create new modelling constructs tailored to specific domains.
  • Property and Method Specification: Customization of behaviour and attributes for each type.
  • Support for Cyclic Structures: Both the language and its metamodel can express cyclic dependencies, recursive relationships, and feedback loops.

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).

BPMN-Meta

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.

BPMN-example

Loading...