Metadata vs. metamodel
Whereas metadata relates to information captured about an element, a metamodel generally refers to a formal specification of what information is captured about that element and how it is captured. A metamodel provides a structured, consistent, and shareable mechanism for metadata definition and exchange.
Like metadata, metamodels abound in software systems. Metamodels vary in the type of information specification as well as the degree of abstraction in defining metadata related to an element.
Metamodels provide a frame of reference for capturing information about an element. They may focus on specific dimensions of an element, such as its access rules, device-specific visualization characteristics, and transformation rules across applications.
One metamodel may not serve all purposes of an application or system. Metamodels may be combined, integrated, or leveraged separately depending upon the application and use cases. For example, one metamodel may represent the characteristics of a relational systems (tables, rows, columns, indexes, and so on), and another represents users, groups, and roles. These may be combined to create a facet that not only represents a relational system but also expresses access privileges associated with its resources, specific to users, groups, and roles.
Furthermore, a system may be represented by several metamodels, depending upon the frame of reference of the application and stakeholder. Similar to metadata, metamodels may represent various "views," such as an analytical view, a design view, a structural view, and more.
Expressing and leveraging metadata
Applications use a variety of technologies for expressing and accessing metadata. Beyond embedding metadata internally within application code, the most common medium of expression is XML, which was invented to share information across applications.
XML's most significant limitation, however, is that it offers no schema or standardized approach to express information about resources or link them with other resources. To facilitate this, frameworks such as RDF (Resource Description Framework) have been introduced. Based upon XML, RDF offers a standardized approach to capturing of information about a resource. It also provides a way to create meaningful and interpretable links between resources (XML structures) across applications and across the Web.
One of the most significant advantages that frameworks such as RDF provide is the ability to extend schemas without directly impacting all the applications that are consumers of that schema.
RDF has further been extended to allow for much more formal representations of taxonomies, hierarchies, attributes, and relationships between various concepts. OWL (Web Ontology Language) provides a highly structured and meaningful approach for the representation of taxonomies, as well as interrelationships between concepts (such as hierarchies and aggregations). Depending upon the flavor of OWL used, there is also a way of characterizing the nature of such relationships to support inferencing. For example:
'Term A' is a synonym of 'Term B' then
'Term B' is a synonym of 'Term A' (inferred relation)
Domain 'X' is related to Domain 'Y'
Domain 'Y' is related to Domain 'Z' then
Domain 'X' is related to Domain 'Z' (inferred relation)
Such expressivity is explicit, machine-interpretable, and platform-independent.
OWL's expressive capabilities go further. Even its lightest form of implementation can provide an effective implementation of metamodels to include definitions for data (either from SQL or NoSQL sources), visualization (to support mobile devices), taxonomies (for categorization and hierarchical structuring of dimensions and views), report metadata (to support annotations and collaboration), and business vocabularies (such as synonyms, narrower/broader terms, glossaries).