SGMLtools Editor Whitepaper
PrevSGMLtools Editor WhitepaperNext


SGMLtools, ever since its inception as Linuxdoc-SGML, has only be concerned with rendering SGML documents to several output formats. However, with the transition of SGMLtools to DocBook, a much more complicated DTD than Linuxdoc, asking "how do we create SGML in the first place?" has become a very relevant question.

Currently, there is only a single usable free solution to editing SGML text (apart from plain text editors), the psgml mode in Emacs. However, this is only a very simple and basic step away from plain text editors and miles away from commercial products like ArborText Adept.

This whitepaper outlines a possible architecture for an Open Source editor capable of handling most SGML tasks. The goal here is not only software that can do a lot that commercial products can do (including tables, formulas, etcetera), but even more: the goal is software that supports the open development model by providing for distributed, concurrent document editing.

Note that my background is not in SGML and associated areas; therefore, it is very well possible that my use of terminology isn't very pure or even correct. If you find places in the text where you think this might be the case, please drop me a mail.

Design philosophy

My viewpoints wrt. to the design of this software are especially based on the knowledge that a) clean design pays off, often even with unexpected performance (because of straightforward, predictable and therefore optimizable patterns), and b) that even where clean design has a performance impact today, this performance impact will be straightened out by faster processors before you finish optimizing your code.

Especially in a complex project like this, it is important to make the implementation easy to understand and highly encapsulated: cleanly separated parts can be taken out, replaced with something with better performance (qualitative or quantitive), and be maintained easily by a distributed and loosely connected group of developers. Therefore a lot of the design aims at first implementations that obviously will work but obviously will need to be enhanced later on.

SGMLtools Editor Whitepaper Key Technologies