Document Structure

Discussions leading up to the Authoring Summit meeting in Dearborn (Sept. 2008) suggest that we are trying to build a tool that allows pages (web pages) to be created and linked together to form larger structures (currently undefined). At a minimum, we need to provide a way to author content marked up using HTML, likely using something like TinyMCE or FCKEdit.

I would like to propose that we consider a "page" to have structure over and above that provided by HTML that is made up of one or more "elements".

Structured Pages

One of the problems we face in creating a Page Authoring tool is that some of the things included in it will require special editing support or will require special treatment in delivery (structured layout, interactive elements, etc). Consider the following page example:

This page "could" be created using FCKEdit right now. At least in theory. If that equation is not an image, but rather MathML, then we might have a problem. There are plugins for FCKEdit that support equation editing. The graphic of Einstein is more a problem. It needs to be rotated. Rather than treating this page is a collection of HTML markup, I propose that we consider it a set of four "elements":

Each of the four regions in this illustration can be considered separate elements.

If we chose to use XML to describe this collection of objects (a logical choice, IMO), it might look like this:

<page>
    <element type="text">This equation for field theory</element>
    <element type="equation">(long string of equation markup goes here)</element>
    <element type="text">was written by Einstein.</element>
    <element type="image">http://nosuch.edu/content/einstein.jpg</element>
</page>

This approach gives us several advantages:

  1. Each element is separately addressable and controllable.
  2. Each element can have a type and therefore a custom editor for it.
  3. Layout can be defined at a higher level - we can move big chunks around.
  4. Support for rendering elements can be handed off - this is how widgets work.
  5. Elements can be re-used.
  6. Easier to define templates because we have more control over the structure.

Note that we are not really giving anything up vs. the unstructured approach, since a single element could be HTML markup as edited by FCKEdit(etc).

This is basically the approach used by Sousa. Elements each have their own media handlers for both editing and display. This modular approach makes it easy to add new elements adding to the richness of expression with relatively little additional work.

Rendering

Pages need to rendered for viewing by the user. This can either be done dynamically using a web application or rendered into a static HTML form. Both have advantages.