Home > Metamodelling Concepts > Metamodel
A metamodel is more or less a project, i.e. is a container for all the artefacts which are needed to describe a metamodel. It contains one or more metapackages.
Metamodels can depend on one or more foreign metamodels. The directed graph of metamodel dependencies must not contain cycles. Consider the following example:
- A: Metamodel A has no dependencies.
- B => A: Metamodel B is dependent on metamodel A.
- C => B: Metamodel C is dependent on metamodel B.
This is the short notation: C => B => A. Please note that it is not possible to add an additional dependency from metamodel A to metamodel C, because A => C would lead to a circular dependency graph that is illegal.
In SDL metamodels are represented by folders with the suffix .metamodel.
Metamodel dependencies are not explicitly specified, they are rather automatically calculated when the metamodel information - containing classes and their import statements - is parsed into an object model.
Next chapter: Metapackage