Meta Meta Languages and Models

Meta Languages to define Languages and Meta Models to create Models

Meta, Metameta, and Metametameta Languages and Models

The Subject is part of the real world to be described by a Language or modelled by a model.

Meta, Metameta, and Metametameta Languages and Models

The Language or Model is an abstract representation of the real world.

Meta, Metameta, and Metametameta Languages and Models

The Meta Language or Meta Model is used to create languages or models.

Meta, Metameta, and Metametameta Languages and Models

The Metameta Language or Metameta Model is used to create meta languages or meta models.

Meta, Metameta, and Metametameta Languages and Models

The Metameta Language or Metameta Model is used to create meta languages or meta models.



About Meta Meta Modelling

Login Form

Meta Meta Modelling in the Literature

UML and Metametamodelling

UML and Metametamodelling

The term metametamodel appears as an essential part of the Unified Modelling Language (UML) (expressed as meta-metamodel): [a metametamodel is] "A model that defines the language for expressing a metamodel. The relationship between a meta-metamodel and a metamodel is analogous to the relationship between a metamodel and a model. This level of indirection is usually relevant only to tool builders, database builders, and the like. UML is defined in terms of a meta-metamodel, called the Meta-Object Facility (MOF)" (Rumbaugh et al. 1999 p340)).

The MOF has been incorporated into the international standard ISO/IEC 19502:2005 Information technology -- Meta Object Facility (MOF).

UML and MOF have moved on since 1999, with the latest versions (at the time of writing this) being 2011 (MOF, 2011; OMG, 2011).

UML talks about 'The Four-layer Metamodel Hierarchy' (UML, 2011; 17): "The meta-metamodelling layer forms the foundation of the metamodeling hierarchy. The primary responsibility of this layer is to define the language for specifying a metamodel. The layer is often referred to as M3, and MOF is an example of a meta-metamodel...a metamodel is an instance of a meta-metamodel". MOF, while writing in response to 'How Many Meta Layers?' (MOF, 2011; 8): "One of the sources of confusion in the OMG suite of standards is the perceived rigidness of a 'Four layered metamodel architecture...'. So that begs the questions, is 'architecture' synonymous with 'hierarchy', and what does the MOF document have in mind as the four layers?

However, confusion sets in when UML refers to MOF at level M3 as a 'metamodel' (not a meta-metamodel) in Fig 7.4 (UML, 2011; 15) and MOF also refers to itself, in a rather circular discussion, as a metamodel (not a meta-metamodel) in the introduction to its 'Subpart1': "...examples include several standard OMG metamodels including UML, MOF itself, CWM, SPEM,..." (MOF, 2011; 5). So, is MOF a metamodel or a metametamodel?

A metamodel is not the same as a metametamodel; it is an instantiation. OMG refer to MOF variously as a metamodel and a metametamodel. Therefore the OMG is simply muddled and inconsistent in its use of those terms.

Indeed, in its diagram referenced previously, the OMG come close to what could be a metametametalanguage, which would need to be M4 in the OMG scheme - but they don't have M4.

Of course, given that MOF is really a metamodel rather than a metametamodel, what is needed for the future is for OMG to establish a well-formed metametalanguage and put some clear space between that and both MOF and UML.

The consequence of that muddle is very serious, because that is one fundamental reason why it is virtually impossible to automate the checking of UML specifications for completeness and consistency, and the more complex a UML model, the more serious the consequences of failing to check completeness and consistency. A model with thousands of objects and relations in it can only be checked by automated tools. Humans cannot do it by the inspection of large numbers of diagrams!

There are various attempts (which will be identified and reviewed on this site over time) to deal with the problems of mapping UML diagrams to some form of representation that is much more amenable to automated completeness and consistency checking. For example, Alanen and Porres (2003) examine the problems of mapping between UML and Backus Naur forms of representation, but comment that: "Describing a mapping from metamodels to EBNF [Extended Backus-Naur Form] grammars is in many ways more demanding than the opposite. The reason is that metamodels inherently contain more information than EBNF grammars. While a EBNF grammar is quite similar in that it can be presented as a graph of nodes and directed edges, the edges themselves do not contain as much information as properties in a metamodel" (p6).

Thus, not only does UML pose serious risks in terms of problems of completeness and consistency checking, but also there are risks inherent in some of the pseudo-formal UML notations. This is because they have not been instantiated from a well-formed metametamodel.

Geoffrey Darnton, 2012


Alanen, M., and Porres, I. (2003) A Relation Between Context-Free Grammars and Meta Object Facility Metamodels, Turku: Åbo Akademi University.

OMG (2011) OMG Meta Object Facility (MOF) Core Specification, Available at: [accessed Jan 2012].

Rumbaugh, J., Jacobson, I., and Booch, G. (1999) The Unified Modeling Language Reference Manual, Reading MA: Addison-Wesley.

UML (2011) OMG Unified Modeling Language (OMG UML), Available at: [accessed Jan 2012].