Ulf Wiger (AL/EAB) ulf.wiger@REDACTED
Wed Mar 2 14:12:08 CET 2005

Well, Joe, it's actually quite elementary, but you may
need to read the UML 2.0 Infrastructure Final Adopted Spec
in order to see the light. In it, on page 38, you can read:

"UML is defined as a model that is based on MOF used as a metamodel,"

If this is not clear enough, on page 39 we receive further 

"One of the primary uses of the UML 2.0 Infrastructure specification 
is that it should be reused when creating other metamodels. The UML 
metamodel reuses the Infrastructure Library in two different ways:

- All of the UML metamodel is instantiated from meta-metaclasses 
  that are defined in the Infrastructure Library.

- The UML metamodel imports and specializes all metaclasses in the 
  Infrastructure Library.

As was discussed earlier, it is possible for a model to be used as 
a metamodel, and here we make use of this fact. The Infrastructure
Library is in one capacity used as a meta-metamodel and in the 
other aspect as a metamodel, and is thus reused in two dimensions."

Just to make sure that everyone fully understands the structure,
page 40 hammers it home:

"When dealing with meta-layers to define languages there are generally 
three layers that always has to be taken into account:

- the language specification, or the metamodel,
- the user specification, or the model, and
- objects of the model.

This structure can be applied recursively many times so that we 
get a possibly infinite number of meta-layers; what is a metamodel 
in one case can be a model in another case, and this is what happens 
with UML and MOF. UML is a language specification (metamodel) from 
which users can define their own models. Similarly, MOF is also a 
language specification (metamodel) from which users can define their 
own models. From the perspective of MOF, however, UML is viewed as a 
user (i.e., the members of the OMG that have developed the language) 
specification that is based on MOF as a language specification. In the 
four-layer metamodel hierarchy, MOF is commonly referred to as a 
meta-metamodel, even though strictly speaking it is a metamodel."


> -----Original Message-----
> From: owner-erlang-questions@REDACTED
> [mailto:owner-erlang-questions@REDACTED]On Behalf Of Joe Armstrong
> (AL/EAB)
> Sent: den 2 mars 2005 13:36
> To: Erlang (E-mail)
> Cc: Hans Brolin (AS/EAB); helen work
> Subject: Gulp
>   OMG anyone?
>   Some quotes from the amazing Meta-Object Facility 
> Specification available at
> The Meta Object Facility Specification is what is used to
> descibe the meta-meta model of a UML model (was that right?)- 
> this 358 pages mastodon 
> document is full of little gems like (section 2.2.1, page 34):
>     The metamodel layer is comprised of the descriptions 
> (i.e., meta-metadata) 
>     that define the structure and semantics of metadata. 
> Meta-metadata is informally aggregated 
>     as metamodels. A metamodel is an "abstract language" for 
> describing different kinds of data;
>     that is, a language without a concrete syntax or notation.
> I'm having slight problems understanding this:
>     Let's try an put the clause "describing the meta-meta 
> model of a UML-model"
> into my language understanding engine.
>     "describing the meta-meta model of a UML-model" 
>     => "describing X" where X = "the meta-meta model of a UML-model"
>     I think that
> 	"the meta-meta model of a UML-model" => "meta-meta-meta model"
>     and "describing X" => a meta-model of X
>     so this should be a meta-meta-meta-meta model
>     But is this 
> 	 "a language without a concrete syntax or notation" 
>     This is the puzzling bit.
> /Joe

More information about the erlang-questions mailing list