[Mirrored from: http://www.ukc.ac.uk/library/ICCC/bruegg.htm]
SGML solves the problem of the syntactic representation of generically coded documents. The problem of providing generically coded documents with graphical semantics, that is, to define their graphical presentation, remains largely unsolved. This is the problem we address with our paradigm design by example and with our system Designer.
Currently, document-processing systems provide stylesheets so that authors can define the graphical presentation of their generically coded documents. Using stylesheets, authors map generically coded element types to formatting parameters. Today, word-processing and office systems such as Microsoft Word, high-end document-processing and typesetting systems such as Interleaf's products, and editors for World-Wide Web documents such as Softquad's Panorama Pro all offer stylesheet support.
Our layout-specification system, Designer, goes beyond this stylesheet approach. It incorporates three innovations:
Firstly, the layout style for an element is specified not by setting formatting parameters but by assigning layout objects to the element. When a layout specification is applied to a hierarchically structured SGML document, the result is a hierarchy of layout objects. Each layout object has a method presentYourself. In order to present itself, a layout object will in general call the presentYourself methods of its children and arrange their presentations into a presentation of itself.
However, layout objects may have additional methods that enable them to communicate among themselves, for example to resolve complex constraints. The details of this communication are completely hidden from the users; indeed, all that users have to know is which layout objects they may combine to build up more complex objects in the object hierarchy.
We are implementing a suite of layout objects that are suitable for online publishing of documents in hypertext form. The suite comprises objects for scrollable windows, hypertext linking, paragraph formatting, formatting of mathematical formulae etc. Obviously, by adding different types of objects, for example page-breaking objects, we can support linear, printable documents as well. Therefore, in contrast to the stylesheet approach, Designer facilitates true cross-media publishing.
Secondly, we have developed a new paradigm for layout specifications, which we call design by example. The graphic designer who specifies a layout works on a sample document, assigning layout objects to specific elements of the document. In the background, a system's component generalizes rules from these sample assignments that can then be applied to other documents of a similar type (of the same DTD in SGML lingo).
Generalizing rules from examples is a challenging task if the layout style of an element is to be context dependent; that is, if the layout style varies with the structural context of the element it is applied to.
We are working on a module that generates a suitable set of sample documents from an SGML DTD. Our next step is to define a language for context descriptions and to devise a method for generalizing context descriptions from examples.
By building the Designer system on the paradigm design by example, we hope to better support graphic designers in specifying the layout for whole classes of complex documents.
Thirdly, we have implemented a graphical user interface for Designer. We represent the sample document on which the graphic artist is working on the screen as a tree that can locally collapse and expand, depending on the user's focus of attention. Layout objects can be picked up from a palette in order to apply them to document elements. The system implements the drag & drop technique. When a layout object has been chosen and is being dragged across the document, those elements on which the object may be dropped are highlighted. Our goal is to provide graphic artists with an ergonomically sound user interface for their trade.
In a full version of our paper we discuss the relation of our work with DSSSL. Our main concern for not using DSSSL is the fact that its user-interface, a scheme dialect, is inaccessible to graphic designers. Furthermore an implementation of DSSSL is not yet available.