“Modelling” is at the core of the RobMoSys ambition and approach, and the project has identified these five complementary levels in model formality:
The project's pragmatic focus is on levels 2. and 3., but it does keep 4. and 5. in mind in every discussion and decision about how and what to put in a model. Note that levels can overlap to some extend.
The aim of RobMoSys is to cover the modeling levels with functional tooling. This include adequate code-grounding (where applicable) to actually use the models in real-systems (e.g. code-generation towards frameworks, executable components, analysis tools, etc.).
There is a subtle relationship between the (meta-)models, the actual modeling languages and the concrete models. This relationship is depicted in the figure below.
A modeller (i.e. a modeling-tool user who creates models) always works with a concrete syntax. This syntax can be textual, graphical, tabular or any combination thereof. The concrete syntax (sometimes also called notation) is defined by (i.e. it conforms to) the modeling language. The concrete syntax of a modeling language is independent of the abstract syntax of an actual meta-model. However, the structure of the modeling language must adhere to the structures defined in a meta-model. In most cases, it makes sense to first specify the meta-model, then to generate a modeling language out of the meta-model and then to adjust only the syntax of the modeling language (without affecting the structure). A model created by the modeller is typically only a representation for the in-memory model that uses the abstract syntax. The abstract syntax is also used to serialize the models in order to make them persistent.
Finally, the model itself is an abstract representation of the actual system (which can be either software, hardware or any combination thereof). Often, it makes sense to package the model with the related software/hardware parts and to ship them together as a so called modeling twin.
Are you new to model-driven engineering? Find introduction literature in the Frequently Asked Questions.
There is a relation between meta-models and ontologies that can be bridged as described here.
The strength of ontologies is the representation of knowledge with extensible structures. Moreover, ontologies allow reasoning on knowledge and the inference of further knowledge. The strength of meta-models is the definition of clear and unambiguous structures. This is particularly useful to represent physical entities and physical properties of the real-world. There are robotics use-cases where in some cases ontologies and in other cases meta-models can be preferred. Therefore it is reasonable to allow using both of them in combination, rather than restricting the usage of only one of them in isolation.