Presentation Architecture

return

The ActiveMath presentation architecture transforms OMDoc snippets into an output format suitable for display on a client. Currently supported output formats are HTML, MathML, Latex, PDF and SVG.

Activemath uses a 2-stage approach for presentation, where XSLT transformations are combined with a template engine (Velocity).

Stage 1: Transforming Content Items

The first stage deals with individual content items, written in XML and stored in a knowledge base. At this stage, items do not depend on the user who is to view them. They hold unique IDs and can be handled independently. It is only in the second stage that items are combined to user-specific pages and enriched with dynamic data for this specific page request.

In Stage 1, the first part of the presentation pipeline is comprised of the steps fetching, preprocessing, and transforming. The fetching step collects requested content from the knowledge base. The output of this step are xml fragments. During pre-processing, server-specific information is inserted into the XML content. Then the transformation performs the conversion into the output format by applying an XSLT stylesheet to the document. The output of the last step are text-based content fragments, e.g. in HTML or Latex.

In order to improve performance, these fragments are stored in a cache, so that when the same page is requested a second time (or another page that contains the same content item) the extensive XSLT processing is not needed again.

Stage 2: Assembling a Personalized Page

In Stage 2, these fragments are composed into a complete page and enriched with dynamic data for this specific page request.

Stage 2 performs the steps assembly, personalization and optionally compilation. The assembly joins the fragments together to form the requested pages. The fragments in the desired output format are integrated into a page template, which is fetched from an external source. During the personalization, request-dependent information is used to add personalized data to the document, such as user information or knowledge indicators.

Another important personalization is the translation of multi-language content into the requested language.

If necessary, the compilation applies further processing to convert the generated textual content presentation into the final layout format. For example, PDF is generated by first assembling a Latex document, which is then converted into PDF using shell-based tools in the background.

References




Last edited by Oliver at Apr 24, 2008 1:43 PM - Edit content - View history - View source