Metamodeling
A meta-model is the collection of "concepts" (things, terms, etc.) within a certain domain and an attempt at describing the world around us for a particular purpose. Meta-models are also referred to as “a precise definition of the constructs and rules needed for creating semantic models” [Metamodel-a].
Common purposes for meta-models are [Metamodel-a]:
- As a "schema" for semantic data that needs to be exchanged or stored, in a repository, for example
- As a language that supports a particular method or process
- As a language to express additional semantics of existing information
Meta-models are most related to the term ontology. “Meta-models, ontology and conceptual models are often used to describe and analyze the relations between concepts. A model is an abstraction of phenomena in the real world, and a meta-model is yet another abstraction highlighting properties of the model itself. Meta-modeling is closely related to, and to some extent overlapping, ontology analysis and conceptual modeling” [Söderström2002] referring to [Gigch1991].
Ontology express something meaningful within a specified domain of interest by utilizing a grammar for using vocabulary. The grammar specifies what it means to be a well-formed statement, assertion, query, etc. (formal constraints) on how terms in the ontology’s controlled vocabulary can be used together. [Metamodel-b]
Meta-modeling can be considered as an explicit description (constructs and rules) of how a domain-specific model is built. In particular, this comprises a formalized specification of the domain-specific notations. Typically, meta-models are – and always should – follow a a strict rule set. [Metamodel-a]. “A valid meta-model is an ontology, but not all ontology are modeled explicitly as meta-models” [Metamodel-b].
For software engineering, two types of models (and their corresponding modeling activities) can be distinguished:
- Meta-Data Modeling (Meta-data model)
- Meta-Process Modeling (Meta-process model)