projects :: metaweb

MetaWeb

MetaWeb is a concept developped to allow a clean separation of the semantic content and its presentation. Of course, the idea is not new, but the approach taken by MetaWeb is intended to be both powerful and easy to handle. The idea is simple and revolves around two type of entities:

  • A meta-site or content repository, which stores documents in XML in a standard filesystem tree, as well as a document index (called main.xml) at the root of the tree.
  • Presentation websites responsible for formatting and displaying content fetched from a meta-site.

The document index is a central point of the concept. It stores a semantic tree of article elements associated with physical article files. Then, the process of displaying content on a presentation websites is the following: use an XPath expression to select a set of article nodes; the files associated to the selected nodes are parsed by an XSLT stylesheet that transforms the semantically-described articles into the format served by the presentation websites.

This architecture enforces a very powerful modularity. For instance, a public meta-site can have its content displayed by many different remote presentation websites. The choice of the XML format is also very important because it allows a fine-grained semantic description of the articles and many standard technologies can be used to transform the content and work with the document index.

The document tree being stored as standard files, a versioning system such as Subversion can be used to manage the repository. Moreover, the DTD of the document files is left as a choice to the repository owner. DocBook offers a good solution for this.

At the moment, one implementation of MetaWeb exists as a module to WOS Engine. This module is used on the present website to present all the news, documents and articles, including that very page.

A more complete description of the project will be added on this page when it's available, with links to a detailed documentation of the concept and possible implementation.


Valid XHTML 1.0!
Valid CSS2!
Document under Attribution-ShareAlike 2.0 License