|
MetaDOM and MetaXQuery - A Framework for Capturing and Querying Metadata in XML Metadata is descriptive, and sometimes proscriptive, "data about data". It plays an important role in describing and proscribing data in both traditional and XML applications. The current XML data model doesn't capture the relationship between data and metadata as we wanted, so we extended the XML data model and XQuery query language to support that. The data model extension is called MetaDOM. MetaDOM supports multiple levels of metadata (i.e. meta-metadata) and separates data and metadata into different scopes. MetaDOM is also extensible in the sense that metadata with special semantics, especially proscriptive metadata such as security, can be modeled. The query language extension is called MetaXQuery. MetaXQuery can be used to query MetaDOM. The queries are sensitive to the special semantics of certain kinds of metadata. We did some research how to retrieve, certify, sanitize, group, and restructure data with metadata. MetaDOM MetaDOM extends the XQuery 1.0 and XPath 2.0 data model by adding an optional meta property to a node's Information Set. But in all other respects, the data model is the same as the existing model. The value of the meta property is a reference to the root node of a nested MetaDOM, which describes the metadata for this node. The metadata can be recursively nested, that is, a node in MetaDOM may itself have a meta property. Each level of nesting adds another level of metadata. The following figure is an example of the MetaDOM.
MetaXQuery MetaXQuery extends to XQuery to support querying both data and metadata. The extensions include adding a meta axis in XPath expressions, and a set of functions for explicit operations. These functions can be implemented by extending the XQuery evaluation engine, or in a programming language like Java and loaded into XQuery as external functions. Parts can also be written directly in XQuery as user functions. |