Meta-something is something about somethink (replace somethink by any name pertaining to philosophy or computer science). For instance, a meta-language is a language that allows us to define languages (their syntax and sometimes their semantics). Metadata are data that describe the structure and other properties of data (generally user data). An interesting aspect of meta-something is that it should describe itself: since meta-something describes any kind of something, and meta-something being something, we should be able to use meta-something to describe meta-something. It seems to be pure brain teasing but this observation has practical consequences. For instance, the table of tables (generically named SYS_TABLE) in the catalog of any relational database is a metatable that contains metadata. It includes a row that describes this table itself.
The domain of database engineering makes much use of meta-level concepts. For instance any CASE tool includes some sort of database in which it stores its data. This database contains descriptions of schemas, among others. These descriptions are metadata. This database bears several names according to the community that uses it, namely metadatabase, metabase, (metadata) repository, model base or encyclopedia (this one a bit outdated).
The term meta-model designates a model that is used to describe other models. Since the database community prefers the term schema instead of model (the latter having another interpretation, as in relational model), this proposition translate as follows: the term meta-schema designates a schema that is used to describe other schema. If all this seems a bit complicated, just remember that, considering a definite database with schema S and contents (the data) D: (1) D is an instance of S, (2) S is an instance of MS, and (3) MS is an instance of . . . MS! Unless you want to introduce the concept of metametaschema! Not a bad idea but you should stop at some times: the sooner the better!
We describe in the following four contributions to the theme of metamodeling.
The Generic Entity-relationship (GER) model is a wide spectrum model that encompasses several levels of abstraction (e.g., conceptual, logical, physical) and, at each level, several paradigms (e.g., ER, UML, SQL2, SQL3, XML, standard files, CODASYL, IMS, etc.) It is described in references [P89-01] and [P06-10]. The GER model is not exactly a metamodel, since all the data models mentioned above are not instances of the GER but rather specializations.
The DB-MAIN CASE tool includes a repository (metabase) inspired by the GER model. It stores projects, data schemas, processing schemas and methods. Working on the repository, notably through the Voyager 2 or Java languages, makes it possible to add new object types to the DB-MAIN metaschema and to develop new functions. Some aspects of the repository and its extensibility are described in references [P99-03] and [P99-06]. The documentation of DB-MAIN includes a programming manual for Voyager 2 and Java, as well as the specification of the repository schema [DB-MAIN].
[P10-05] Anthony Cleve, Anne-France Brogneaux, Jean-Luc Hainaut. A Conceptual Approach to Database Applications Evolution, in Proceedings of the 29th International Conference on Conceptual Modeling (ER'2010), Lecture Notes in Computer Science No 6412, pages 132 - 145, Springer-Verlag, 2010. [description]
[TR10-02] Jean-Luc Hainaut, Anne-France Brogneaux, Anthony Cleve, Base de modèles pour les itinéraires de soins, draft technical report, GISELE project, February 2009 [Description]
[P06-10] Jean-Luc Hainaut. The Transformational Approach to Database Engineering, in Generative and Transformational Techniques in Software Engineering, Lecture Notes in Computer Science, Volume 4143, pages 95-143, Springer, 2006. [description]
[PHD00] Vincent Englebert. A smart meta-CASE: towards an integrated solution, PhD Thesis, University of Namur, 2000 [Description and full text]
[P99-06] Vincent Englebert and Jean-Luc Hainaut. DB-MAIN: A Next Generation Meta-CASE, Information Systems Journal, Special issue on meta-modelling and methodology engineering, 24(2): Pergamon, 1999. [description] [full text]
[P99-03] Vincent Englebert and Jean-Luc Hainaut. GRASYLA: Modelling CASE tool GUIs in Meta-CASEs, in Proceedings of the 3rd International Conference on Computer-Aided Design of User Interface (CADUI’99), pages 217-230, Kluwer, 1999. [description] [full text]
[P89-01] Jean-Luc Hainaut. A Generic Entity-Relationship Model, in Proceedings of the IFIP WG 8.1 Conference on Information System Concepts: an in-depth analysis, pages 109-138, North-Holland, 1989. [description] [full text]