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