This page is for information and discussion about design principles and patterns for the XDI metaschema - the first technical deliverable from the OASIS XDI TC.

Design Goal of the XDI Metaschema

From the OASIS XDI TC charter:

The job of the XDI metaschema sounds almost impossible: design a single "schema-independent" schema that can be used to identify, describe, link, and synchronize an item of data from anywhere to anywhere. In essence, design a schema that can do for data what HTML has done for content.

As challenging as it sounds, this very framing of the problem underscores the proposed principles of the design.

Proposed Principles of XDI Metaschema Design

Design a Metaschema, Not a Schema

To achieve "schema neutrality", the first principle is to keep the design at a metaschema level. In other words, the metaschema itself should include as few semantics as possible, because its job is to allow semantics to be expressed by instances of the metaschema, not the metaschema itself.

Use XRIs to Express Semantics

The second principle (and the reason for the name "XRI Data Interchange") is to use XRIs to express all semantics beyond the fundamental structural relationships of the metaschema elements. This approach enables semantic assertions to leverage all the features of XRI syntax, including persistent identifiers, human-friendly identifiers, unlimited delegation, cross-references, and internationalization. If the design also allows synonyms (equivalent XRIs that identify the same resource), multiple of these features can be employed at the same time to describe the same resource.

Include Only Universal Data Relationships

If the XDI metaschema is to be able to describe any other data in any other schema, it must be able to build up from the most fundamental, univeral relationships between data elements. A potential source of such fundamental relationships is the three entity relationship types in UML: association, composition, and aggregation.

Proposed Guiding Metaphor: The Web for Data

Another design approach recommended in Extreme Programming is adopting an overall guiding metaphor. The proposed metaphor, originating with the XDI white paper, is "tne Web for data", or the Dataweb.

In this metaphor, the core concept is identical to an old principle of database design: whenever possible, do not duplicate any piece of data, but reference the original authoritative instance. Applied to the XDI metaschema design, this would mean that any element of data must be either: a) the original, authoritative instance, or b) a reference (link) to this instance (including potentially a cached copy of the instance).

Given that a primary purpose of XDI is to permit global data sharing, this design metaphor emphasizes the importance of reference/links in the overall design. In fact, like the Web itself, it suggests that there will be many more links (references) that pages (authoritative instances), because while there is always just one of the latter, there may any number of the former.

The XDI Graph

A final proposed design principle is a graph model for navigating relationships between data elements in XDI documents. [To be explored further in future posts.]

XdiMetaschemaDesign (last edited 2004-06-02 23:53:54 by DrummondReed)