(2) Meta-Object Facility (MOF) defines a common, abstract language for the
specification of metamodels. In the MOF context, a model is a collection of related
metadata, and metadata that describes metadata is called meta-metadata, and a model
that consists of meta-metadata is called a metamodel. In other words, MOF is a metametamodel
or model of a metamodel (sometimes called an ontology). For example,
the UML supports a number of different diagrams such as class diagrams, use case
diagrams, and activity diagrams. Each of these diagram types is a different type of
metamodel. MOF also defines a framework for implementing repositories that hold
metadata described by the metamodels. The framework provides mappings to transform
MOF metamodels into metadata APIs. Thus, MOF enables dissimilar metamodels
that represent different domains to be used in an interoperable way. CORBA, UML,
and CWM (see below) are all MOF-compliant metamodels.