The document describes the MetaL modeling language, which has two layers - MetaL1 and MetaL2. MetaL1 defines a minimal data modeling kernel where all elements are treated as data objects with properties and relationships. MetaL2 provides a formal metamodeling foundation where meta-objects can be extended and refined through multiple inheritance. The language allows for fine-grained sharing and overlapping of meta-models and their elements.