Skip to main content

Metamodels

Core Metamodelling Concepts​

What is Metamodelling?​

When building an NS ApplicationNS Application (NSApplication). A pre-built software stack that provides common enterprise application functionality such as CRUD, search, authentication, and business process modeling out of the box., you model your systemSystemA set of interconnected components that work together to achieve a specific purpose or function. by composing elements. These building blocks (Data ElementsData Element (DataElement). A fundamental data concept or entity within an application's domain, acting as an anthropomorphic translation of a real-life object or concept., Task Elements) are the theoretical NS Elements embodied in our elements ontology. By building your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. within the boundaries of these specific blocks, rules, and constraints, you are already using a metamodel.

Metamodelling is the practice of defining the very language, rules, and constraints that dictate how these building blocks are allowed to exist and interact. By working at this meta-level, we can adapt the foundational rules of the systemSystemA set of interconnected components that work together to achieve a specific purpose or function. or build entirely new types of software architectures that go beyond a standard Management Information SystemSystemA set of interconnected components that work together to achieve a specific purpose or function. (MIS).

Abstraction Layers​

We consider a meta-model (M2 modelM2 ModelA meta-model, ontology, or Domain Specific Language (DSL) specified in M3.) to be the specification (concepts, relationships, and rules) that a model (M1 modelM1 ModelAn actual model that instantiates an M2 meta-model or ontology.) must conform to. To clarify this modelling hierarchy let us look at our standard applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. model using the example of an invoicing systemSystemA set of interconnected components that work together to achieve a specific purpose or function.:

  • M1 ModelM1 ModelAn actual model that instantiates an M2 meta-model or ontology.: This is the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. model you design to describe your systemSystemA set of interconnected components that work together to achieve a specific purpose or function.. For example, if you create an invoicing systemSystemA set of interconnected components that work together to achieve a specific purpose or function., you would model:
    • Data ElementsData Element (DataElement). A fundamental data concept or entity within an application's domain, acting as an anthropomorphic translation of a real-life object or concept.: Invoice, InvoiceLine, Client, ...
    • Task Elements: InvoiceCreateTask, ClientSendInvoicesTask, ...
  • M0 ModelM0 ModelActual data that instantiates an M1 model in an information system.: This refers to the actual data in your applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution.—the live instantiations of your M1 elements when the applicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. is running. In your invoicing systemSystemA set of interconnected components that work together to achieve a specific purpose or function., that would be:
    • Clients: Alice, Bob, Charlie
    • Invoices: AB0001, AB0002

Navigating Up to the Meta-Level:
The M2 modelM2 ModelA meta-model, ontology, or Domain Specific Language (DSL) specified in M3. specifies the language and concepts your model is defined in. In the case of our NS ApplicationApplicationThe overarching model container grouping all components, domain logic, and configurations for an enterprise solution. model, the M2 layerLayerLogical separation of functionality within a single system/application, focused on code organization. defines the concepts of data elementsData Element (DataElement). A fundamental data concept or entity within an application's domain, acting as an anthropomorphic translation of a real-life object or concept., task elements, etc. This meta-model is the core specification to model an NS Management Information SystemSystemA set of interconnected components that work together to achieve a specific purpose or function. (MIS). Finally, the M3 ModelM3 ModelA meta-meta-model used to define other meta-models or ontologies; it must be meta-circular (defined within itself). (The Meta-Metamodel) defines the language used to build metamodels themselves (such as the concept of an ElementClass or a Reference).