mmx metadata framework
...the DNA of your data
MMX metadata framework is a lightweight implementation of OMG Metadata Object Facility built on relational database technology. MMX framework
is based on three general concepts:
Metamodel | MMX Metamodel provides a storage mechanism for various knowledge models. The data model underlying the metadata framework is more abstract in nature than metadata models in general. The model consists of only a few abstract entities... see more.
Access layer | Object oriented methods can be exploited using inheritance to derive the whole data access layer from a small set of primitives created in SQL. MMX Metadata Framework provides several diverse methods of data access to fulfill different requirements... see more.
Generic transformation | A large part of relationships between different objects in metadata model are too complex to be described through simple static relations. Instead, universal data transformation concept is put to use enabling definition of transformations, mappings and transitions of any complexity... see more.

Generic Transformations

September 29, 2008 17:12 by marx

Applications might require more complex relationships between abstract objects than would be possible with simple static relationships (eg. detailed information about conversion from one data element to another). These requirements are fulfilled by implementing a concept of 'generic transformation' enabling definition of transformations, mappings and transitions of any complexity, exploiting recursion to flatten complex transformations. A limited set of transformation types ('templates') is defined on user-interface level to simplify creation and management of these transformations.

Transformations are decomposed and stored as hierarchies of binary operations based on basic operators (arithmetic operators, predicates, functions), compound operators (templates built from basic operators) and extended relational algebra. Such decomposition enables storage of transformations of arbitrary complexity, making it possible to capture everything from arithmetic operations and simple mappings to complex statistical methods and lengthy ETL procedures in SQL.

Having semantic information (ontologies), business rules and technical metadata (data structures) together with transformation metadata and relationships linking them all together makes it possible to achieve functionality that would not be possible with separated metadata subsystems, like metadata driven processing environments, full impact analysis, data-storage-aware business dictionaries etc.

Access Layer

September 29, 2008 15:20 by marx
MMX Metadata Frameworks is built on relational database technology. However, as a large part of the structure of the meta-metadata is hidden from the relational model Structured Query Language (SQL) is not the best method for general data access as the queries in SQL would be too complicated and repetitive to write. Instead, object oriented methods can be exploited using inheritance to derive the whole data access layer from a small set of primitives created in SQL. Modern automatic object environments (Persistency Layers, Object-Relational Mappers etc.) can be taken advantage of here.

MMX Metadata Framework provides several diverse methods of data access to fulfill different requirements:
  • Object-Relational Mapper: provides .NET and Web Service (SOA) interfaces (nHibernate). This would cover application programs, web applications and external clients;
  • RDF API: provides XML/HTTP interface for applications. Typically this would include various Semantic Web applications or services;
  • Database CRUD API: provides standard SQL interface for applications requiring database level functionality. This would typically include data transformation jobs, maintenance tasks, query tools etc.

MMX Knowledge Model

September 29, 2008 12:35 by marx

MMX Metamodel provides a storage mechanism for various knowledge models. The data model underlying the metadata framework is more abstract in nature than metadata models in general. The model consists of only a few abstract entities, most remarkably, OBJECT, RELATION, EXPRESSION and PROPERTY. The rest of the entities and relationships are 'hidden' behind these root objects and can be derived (inherited) by typifying those. Most of the structure of the data model normally exposed in ER diagram is therefore actually stored as data (meta-metadata). 

MMX Metamodel can be seen as a general-purpose storage mechanism for different knowledge models, eg. Frame system, Description Logic (RDF). Data models for these knowledge models are instantiated inside MMX Metadata Model by defining a set of classes (MD_OBJECT TYPE records) and relations (MD_RELATION_TYPE records) between them. MMX Metamodel corresponds to M3 level (metametamodel) in MOF terms housing both M2 (metamodel) and M1 (model) levels. An arbitrary number of different data models can exist inside MMX Metadata Model simultaneously with relationships between them. Each of these data models constitutes a hierarchy of classes where the hierarchy might denote an instance relationship, a whole-part relationship or some other form of generic relationship between hierarchy members (see Construction of Controlled Vocabularies).  

Several metadata models are predefined in MMX Metamodel, eg:

However, any other type of data model can be described in MMX, eg.

  • Business process elements (business rules, mappings, transformations, computational methods);
  • Data processing events (schedule, batch, task);
  • Data acquisition and transformation processes (container, step, extract, transform, load);
  • Data demographics, statistics and quality measures, etc., 
until the following conditions are fulfilled:
  • Each and every class is part of a primary hierarchy, implemented through parent key;
  • Every hierarchy has a root class denoting the data model;
  • Hierarchies need not be balanced;
  • Members of a hierarchy need not belong to the same class;

There are 2 basic methods of implementing a hierarchy that can be mixed:

  • a hierarchy of objects with different type: object type would infer an implicit name for a group (level);
  • a hierarchy of objects of the same type: no implicit names for levels are provided;


External references to MD_OBJECT and MD_RELATION metaobjects are referenced with URI-s that have different meaning in context of different metamodels. For external well-defined Internet resources this reference takes the form of a URL. In RDF context these references might refer to RDF vocabularies defined elsewhere. In cases of technical metadata (eg. relational model, file system, etc.) where standard URI schemes are not available new unregistered URI-s have to be be used.

Model Architecture

MMX Data Model is based on principles and guidelines of EAV (Entity-Attribute-Value) or EAV/CR (Entity-Attribute-Value with Classes and Relationships) Modelling technique suitable for modelling highly heterogenous data with very dynamic nature. Unlike in traditional ER design, data element names in EAV are stored as data instead of column names and data can only be interpreted with the help of metadata. Therefore modifications to schema on 'data' level can easily be done without physical modifications by just modifiying corresponding metadata.