Despite its name, SGML is not a markup language.
It is a language for specifying markup languages.
It was developed by the Department of Defense to ease the portability of electronic documents.
It is also known as ISO 8879, and is the fastest selling standard in history!
It is part of the CALS initiative.
Its use has crossed academic, university, public, private, and military boundaries.
(Can anyone name anything else used by such a diverse group?)
Its use is simple: it allows the transfer of formatted text, and both electronic and print output can be obtained from the same text.
SGML:
Supports intelligent queries in database systems and information re-use, both buzz words of the 80's and 90's.
Sets up and enforces document standards.
Is a tool for structured writing.
Is causing a revolution in publishing systems.
Makes electronic presentation practical.
Is both brilliant and ugly.
SGML is more than a Markup Language. It is a metalanguage for specifying markup languages.
How does this work?
Well, first, the creator of a new markup language writes a Document Type Definition (or Description), abbreviated DTD using SGML. This DTD describes the form of a typical document as well as the tags to be used.
The example shows tags for an (oversimplified) EMail message type document.
Its DTD defines those tags which were used.
If you have ever written a computer program, remember how you have to declare the data structures that you will use in the program. Well, a DTD similarly specifies the data (tags) you will use in your documents.
The DTD AND the Marked up document are input to an SGML "parser" (misnomer, for those of you who know how parsers are used in compilers) and there is, strictly speaking, only 1 output if everything has been coded correctly:
"OK"
That's because all SGML does is enforce its own syntax and the conformance of the marked up document with the DTD. Anything else - like formatting, say, - is done by a postprocessor.
In fact, if any tags were omitted, the parser will insert them (if it can), and the correctly marked up document is now used as a front end to a formatter, database system, hypertext generator, etc.
The CALS Project has created a number of other standards - DSSSL, for specifying semantics (like formatting), SPDL, Standard Page Description Language, SDIF, SGML Document Interchange Format, and a number of standards for graphics.
HyTime is the Hypermedia/Time-based Structuring Language.
It specifies how Hypermedia documents - which can contain audio, moving and still pictures - can be represented using SGML.
The issue here is one of representing time and movement and synchronization in a document which may be perceived as static.
HyTime associates
TEI's Gentle Introduction to SGML
Benoit Marchal's A Gentle Introduction to SGML
Send questions and comments to: Karen Lemone