Introduction to Meta-Modeling

This tutorial is about creating and editing meta-models and models in AToM3 (we used the version 0.2.1 to create this tutorial). But first, what is a meta-model? A meta-model "is a precise definition of the constructs and rules needed for creating semantic models". In other words, a meta-model describes what is allowed in an environment where we can create models. Hence, in order to create valid models, we must respect the reality of their environment: its rules and its constructs. As a very simple example, suppose we describe a meta-model with the english language for creating sets of integers (this is not a complete example, we wanted to give something concrete to the reader):

This Meta-Model :

   valid constructs: A set of integers, appearance: {a1,a2,...}
   rules: any integer i is > 0

Allow those kind of models:

   {1,2,3,10,100};    {2};    etc.

but not those:

   {-1,5};    (4,5);    4,5,6,7;    34;    etc.

As you can see, we need a language (or a formalism) to describe meta-models which must be defined in a meta-meta-model. In AToM3, a meta-meta-model for the Entity-Relationship (ER) formalism provide us an environment for creating and editing meta-models.

Modeling hiearchy in AToM3

Meta-Meta Level

Entity-Relationship Meta-Model


Entity-Relationship Modeling environment


Custom Formalisms Modeling environment
(created at the Meta-Level)


Various instances of models
(created at the Model-Level)

To achieve the learning of building models/meta-models, I consider that the reader is completely new to AToM3. We will first Load and Setup AToM3, then we will see how the finite-state-automata (FSA) formalism works by creating a simple model with it. Then, we will recreate step by step the FSA meta-model.