Pamomo - A Tool for Inter-Modelling


In this page you will find an Eclipse plug-in for pattern-based inter-modelling. This is the activity of building models that describe how modelling languages should be related, and includes many common activities in Model Driven Engineering like the specification of model-to-model transformations, the definition of model matching and traceability constraints, and the development of inter-model consistency maintainers.

With Pamomo you will be able to:

-          build pattern-based inter-modelling specifications, using a textual syntax.

-          check whether two models are correctly traced or matched according to an inter-modelling specification.

-          trace two given models according to an inter-modelling specification, for model matching and model traceability.

The tool support two modes of execution:

-          offline: it generates files with OCL/EOL code implementing the chosen scenario (check-only / operational, matching / traceability). The generated files can be used afterwards for any incoming models, or be integrated in other tools and model driven tasks.

-          online: it executes an inter-modelling specification on the selected input models. In operational scenarios, the result is shown in a three-pane window, the one in the middle containing the generated trace model.


Installing prerequisites


Download and install Java 1.5, Eclipse 3.5.1, the latest version of EMF, and Epsilon.


Eclipse can be downloaded here.

Instructions on how to install EMF are available here.

Instructions on how to install Epsilon are available here.


A complete bundle containing Eclipse 3.5.1 and a compatible version of EMF is available at:


Mac OS X(Carbon)

Mac OS X(Cocoa 32)

Mac OS X(Cocoa 64)

Linux 32-bit

Linux 64-bit






Installing Pamomo offline


1.      Extract the installation zip file in a directory of your system

2.      Run Eclipse

3.      Go to Help -> Install New Software

4.      Click the Add button

5.      Click the Local button

6.      Select the directory in which you have extracted the zip file (the directory you have to select is the one that contains the plugins and features subdirectories)

7.      Untick the Group items by category checkbox

8.      Tick the checkbox to the left of the node Pamomo in the tree

9.      Click Next

10.  Accept terms of the licence agreement

11.  Click Finish

12.  Restart Eclipse


How to use it

Coming soon. 


Example 1: the libraries


Two libraries use two different formats to store their inventory of books: one uses Relational Database Schemas (RDBMS) and the other uses XML. The libraries would like to match their inventories in order to identify similar books and subjects, so that they can integrate their inventories. In this example we use Pamomo for that purpose. 

First, we build ecore meta-models for each one of the formats: rdbms.ecore and Myxml.ecore. RDBMS defines books and subjects, and those books with the same subject description are related to the same object Subject. On the contrary, the XML format allows nested relationships, and even if two books have the same subject description, they are assigned two different objects Subject.

Next, we build a third meta-model identifying traces between RDBMS and XML: corresp.ecore. The trace meta-model defines different trace types, as well as which elements they can relate. However, the conditions under which these traces should be created is given in a declarative way through a pamomo inter-modelling specification: rdbms-xml.pamomo. The specification defines four patterns: the first one relates RDBMS and XML books, and adds an "ed" suffix to the publishers in the XML format; the second pattern maps subjects in both formats; the third one forbids RDBMS subjects having the same description; and the fourth one does not permit two XML publishers with same name.

Finally, we can execute the specification in two given RDBMS and XML inventories (i.e. two models conformant to the previously defined meta-models). Here you have an example of RDBMS model and XML model. In order to match the two inventory models, right-click on the file rdbms-xml.pamomo, and select PAMOMO - Traces -> Execute model matching. You will be asked to select a source model (select model.rdbms), a correspondence model (type the name of a new file where the trace model will be populated), and a target model (select model.Myxml). The result consisting in the two models and their relations will be shown in a three pane window.

You can download the complete pamomo project for this example here. It contains the meta-models of RDBMS and XML, the trace meta-model, the pamomo specification, and two example models. Just extract the downloaded zip file in your Eclipse workspace and import it.




Inter-modelling: From theory to practice. 2010. Esther Guerra, Juan de Lara, Dimitrios S. Kolovos and Richard F. Paige. Lecture Notes in Computer Science 6394, Part I, Springer. pp.: 376-391. Presented at MODELS'10: ACM/IEEE 13th International Conference on Model Driven Engineering Languages and Systems.




If you have some problem or question, please feel free to contact us:

-          Esther Guerra: Esther.Guerra <at>

-          Juan de Lara: Juan.deLara <at>


Last update: June 2010