G. Engels et al. (Eds.): MoDELS 2007, LNCS 4735, pp. 91–105, 2007. © Springer-Verlag Berlin Heidelberg 2007 On Metamodeling in Megamodels Dragan Gašević 1 , Nima Kaviani 2 , and Marek Hatala 2 1 Athabasca University, Canada 2 Simon Fraser University Surrey, Canada dragang@athabascau.ca, {nkaviani, mhatala}@sfu.ca Abstract. Model-Driven Engineering (MDE) introduced the notion of metamodeling as the main means for defining modeling languages. As a well organized engineering discipline, MDE should also have its theory clearly defined in terms of the relationships between key MDE concepts. Following the spirit of MDE, where models are first class citizens, even the MDE theory can be defined by models, or so called megamodels. In this paper, we use Favre’s megamodel that was already used for defining linguistic metamodeling. Starting from the premise that this megamodel can also be used for defining other MDE concepts, we use it to specify the notion of ontological metamodeling. Here, we show that in order for this megamodel to be able to fully capture all the concepts of ontological metamodeling, some refinements should be applied to its definition. We also show how these new changes are in the same direction with the work of Kühne in defining linguistic and ontological metamodels. 1 Introduction The idea of Model Driven Engineering (MDE) stems from software engineering, and more specifically, from the recent research in software development. MDE evolved as the paradigm shifted from the object-oriented approach where the main principle is that everything is an object into the model engineering paradigm based on the principle that everything is a model [6]. The object-oriented technology is about classes and objects, and main relations are instantiation (an object is an instance of a class) and inheritance (a class inherits from another class). MDE is about models, but it is also about relations between a model and the system under study (which can be a software artifact or a real world domain), metamodels, and model transformations. Similar to the object-oriented technology, MDE can be characterized by two main relations, namely, representation (a model represents a software artifact or real world domain) and conformance (a model conforms to a metamodel). Generally speaking, MDE is a field of system engineering in which the process heavily relies on the use of models and model engineering. Here, model engineering is considered as a disciplined and rationalized production of models [11]. For MDE to be popularized and accepted by the software engineering community, the theory behind it should be precise and easy to grasp. Furthermore, this theory must be comprehensive enough to address all the phenomena related to the languages