SGML bezeichnet ein standardisiertes Verfahren zur inhaltlichen Markierung elektronisch erstellter Texte. Ein mit solchen Markierungen versehener Text wird von einem SGML-Parser gelesen und über automatisierte Zwischenstufen in einer auf das gewünschte Ausgabemedium angepaßten Form wiedergegeben. Im Idealfall hat der Autor eines SGML-Textes nur geringe Einflußmöglichkeiten auf die Art, wie die Markierungen auf der Zielplattform umgesetzt werden; geringfügig mehr Definitionsmöglichkeiten verbleiben dem Autor meistens jedoch (auch das ist medienabhängig) bei der Wahl bestimmer Schriftattribute. Im Gegensatz zu diesen eingeschränkten Möglichkeiten der Gestaltung des Erscheinungsbildes hat der Benutzer eines SGML-Systems jedoch umfassende Möglichkeiten, seinen Text zu gliedern und zu strukturieren; in jedem Falle wird die Gegebenheiten des Ausgabemediums optimal zur Wiedergabe dieser Strukturierung genutzt, wie man am Vergleich von gedruckter Ausgabe und HTML-Ausgabe des semantisch gleichen Dokuments sehen kann.
Jedes SGML-System besteht aus mindestens zwei Teilen, der Dokumentendefinition (abgkürzt DTD, Document Type Definition), und einem Parser.
Es muß hervorgehoben werden, daß SGML, bei aller oberflächlichen Analogie
zu bekannten auszeichnungsbasierenden Formatiersystemen wie roff
,
LaTeX oder HTML, kein weiteres Formatiersystem ist.
Kein SGML-Parser erzeugt aus der Quelldatei jemals ein fertiges
Dokument; SGML ist eine Sprache zur Beschreibung von
Auszeichnungssystemen. SGML-Systeme erzeugen daher lediglich den
LaTeX-, HTML- etc. Quelltext, aus dem dann das fertige Dokument des
jeweiligen Zielformats entsteht.
Mit SGML-Systemen lassen sich daher aus einem Quelltext Texte für die
unterschiedlichsten Zwecke erstellen. Das System sgml-tools
,
dessen Bedienung hier beispielhaft vorgestellt wird, kennt folgende
Ausgabeformate:
Das Kommando sgml2html
wandelt eine
SGML-Quelle in ein HTML-Dokument um, das
nötigenfalls über mehrere Dateien aufgeteilt ist,
die von einem gemeinsamen Inhaltsverzeichnis
zusammengehalten werden.
Das Kommando sgml2info
erzeugt Texte im
GNU-spezifischen Hypertextformat info
, im dem
ein Großteil der GNU-Software dokumentiert ist. Ein
info
-Modus ist Bestandteil des Editors
emacs
, ohne emacs
können die Texte
entweder mit info
oder tkinfo
gelesen
werden.
Das Kommando sgml2latex
erzeugt Texte, deren
Erscheinungsbild für Printmedien (Bücher, Zeitschriften)
optimiert ist. Wahlweise läßt sich der Ausgabetext als
PostScript-, als DVI- oder als TeX-Datei abspeichern.
Das Kommando smgl2lyx
erzeugt Texte, die mit
der auf LaTeX basierenden WYSIWYG-Oberfläche LyX
weiterverarbeitet werden können. Im Gegensatz zur
LaTeX-Variante verfügt diese Ausgabeart über keinen
Befehl zur Erstellung der Druckvorlagen, da diese
mit der Ausgabe des LaTeX-Systems identisch wären.
Das Kommando sgml2rtf
erzeugt Dateien im
Microsoft-spezifischen Rich Text Format, einer
ASCII-Beschreibung der Textdatei, die in vielen
Punkten (Kommandosyntax, Befehlsorthographie) stark
an ein korrumpiertes TeX erinnert. Die mit
sgml2rtf
erstellten Dateien sind so aufgebaut,
daß sie sich problemlos vom Textcompiler
hc31.exe
lesen lassen können, so daß sich
Texte für das Hilfesystem von Microsoft Windows
damit erstellen lassen.
Das Kommando sgml2txt
erzeugt aus einer
SGML-Vorlage einen einfachen ASCII-Text oder
wahlweise auch einen Text im Zeichensatz ISO-8859-1,
so daß auch Umlaute und Sonderzeichen korrekt
dargestellt werden können. Neben der Ausgabe
einfacher Textdateien ist sgml2txt
auch zur
Erzeugung von Quelldateien auf groff
-Basis
fähig, so daß sich leicht die bekannten
manpages
(Bedienungsanleitungen der
Unix-Systeme) erzeugen lassen.
Eines der umfassendsten frei zugänglichen Beispiele für die gelungene Verwendung von SGML ist die Serie der Linux-HOWTO-Anleitungen. Diese Texte geben Informationen zu den verschiedensten Fragestellungen des Betriebssystems Linux; geschrieben werden diese Texte von zahlreichen Autoren, aber gesammelt und gepflegt werden sie an zentraler Stelle. Die Koordinatoren des Linuxdoc-Projektes entwickelten eigens zu diesem Zweck eine zunächst relativ spezialisierte Variante eines SGML-Systems, das auf die spezifischen Bedürfnisse der Software-Dokumentation zugeschnitten war. So wurde es möglich, die Texte nicht nur im Internet und als Onlinedokumentation im HTML-Format anzubieten, sondern auch die Erstellung gedruckter Handbücher (etwa der Linux-Bibel etc.) erwies sich als sehr einfach, wobei von Anfang an ein einheitliches Erscheinungsbild und damit eine einfache Orientierung des Lesers sichergestellt ist.
Ähnlich wie die Dokumentation komplexer Computersysteme umfaßt auch die technische Dokumentation größerer Industrieanlagen oft Tausende von Seiten. Obwohl die einzelnen Komponenten einer Industrieanlage standardisiert sind, ist die einzelne Anlage fast immer ein auf den Kundenwunsch hin zugeschnittenes Einzelobjekt. Als Beispiel möge ein Umspannwerk dienen, das die Hochspannung eines städtischen Verteilungsnetzes in die für die Einspeisung ins Haushaltsnetz nötige Niederspannung umwandelt. Ein Umspannwerk enthält wenigstens einen Transformator, darüberhinaus aber umfangreiche Schaltanlagen, mit denen einerseits der Transformator vom Netz getrennt werden kann und andererseits der Kurzschlußschutz bei Unfällen realisiert wird. Darüberhinaus gibt es umfangreiche Regel- und Kontrollsysteme, die zur Aufrechterhaltung auch des normalen Betriebs notwendig sind.
Die Dokumentation ein und desselben Objekts wendet sich oft gleichzeitig an ganz unterschiedliche Interessenten: Der Auftraggeber und Käufer einer solchen Anlage möchte etwas anderes lesen als der Sicherheitsfachmann, der die Anlage genehmigt; der Wartungsingenieur wiederum hat andere Wünsche an die Dokumentation als der Chef der Verkaufsabteilung. Allen aber ist gemeinsam, daß sie sich darauf verlassen können müssen, daß die Dokumentation exakt das Produkt beschreibt, mit dem sie es zu tun haben, auch wenn vielleicht nur der Aspekt ausführlicher dargestellt wird, an dem die jeweilige Zielgruppe interessiert ist.
Der Name ``Handbuch'' für die Dokumentation der innerbetrieblichen Regeln und Abläufe einer Firma, einer Behörde oder nahezu jeder größeren Organisation ist irreführend, da es sich meist um Aktenordner voll des unterschiedlichsten Materials handelt. Typische Bestandteile einer innerbetrieblichen Dokumentation umfassen neben einer Beschreibung der Arbeits- und Produktionsabläufe ausführlich die Pflichten und Rechte aller Mitglieder und Organisationseinheiten der Einrichtung; für Aktiengesellschaften sind Regeln wichtig, die Form, Art und Umfang der Öffentlichkeitspflicht festlegen (Aktionärsversammlung, Geschäftsbericht, etc.; letzten Endes ist auch der Geschäftsbericht ein Teil der innerbetrieblichen Dokumentation); das Verhalten im Ausnahmefall muß festgelegt werden; Musterverträge für sämtliche zu erwartenden Transaktionen werden hinterlegt.
Verträge werden zwischen mehreren Parteien zwecks Festlegung von Handlungen, Rechten und Pflichten innerhalb eines gemeinsam definierten Kontextes geschlossen. Ein relativ einfacher Vertrag ist ein Vertrag über eine Wohnungsvermietung mit Klauseln für Warmwasserabrechnung und Kleintierhaltung; ein umfangreicher Vertrag kann viele Hundert Seiten umfassen und regelt beispielsweise sämtliche Handlungsschritte und Kapitalfragen zweier Unternehmen, die gemeinsam ein Joint Venture bilden. Solche Verträge enthalten neben dem eigentlichen Vertragstext oft noch umfangreiche Anlagen und Zusatzabkommen mit Konstruktionsplänen oder Vertriebsvereinbarungen.
Satzungen von Vereinen und Körperschaften stellen eine Sonderform des Vertrages dar, der alle Mitglieder einer Körperschaft bindet; auch hier kann es erforderlich sein, das Erscheinungsbild des fertigen Textes den übrigen Dokumenten der Körperschaft anzugleichen.
Wenn es sich nicht um die private Homepage einer Privatperson mit Informationen über Hobbies, Haustiere und Lebensgefährten handelt, wachsen Angebote, die oft aktualisiert werden und über komplexe Sachverhalte informieren, oft mit großer Geschwindigkeit. Aufgrund der Eigenheiten der Übertragungswege und Wiedergabemedien ist hier eine rasche und einheitliche Benutzerführung gestützt auf ein übersichtliches Inhaltsverzeichnis von besonderer Wichtigkeit.
Alle genannten Beispiele zeichnen sich durch mehrere große Gemeinsamkeiten aus:
HTML, die Hypertext Markup Language, ist das Textauszeichnungssystem, mit dem die Texte des WWW erstellt werden. Gemeinsam mit SGML hat HTML, daß das Erscheinungsbild bestimmter Auszeichnungen erst vom Textbetrachter festgelegt wird und der Autor eigentlich keinen Einfluß auf z.B. die Wahl der Schriftgröße bei Überschriften haben sollte. Dennoch sind SGML und HTML grundlegend verschieden. Mit SGML werden Auszeichnungssysteme beschrieben, während HTML ein Auszeichnungssystem ist. Anders gesagt: SGML ist ein abstraktes, HTML ist ein konkretes System. Im grammatikalischen Vergleich beider Systeme wird deutlich, daß HTML nur eine Untermenge der Möglichkeiten von SGML bietet.
So gibt es als Beispiel einer Übereinstimmung in HTML wie in SGML Befehle zur Erzeugung Listen, aber während SGML unterschiedlich formatierte Überschriften als Resultat einer Auswertung von Gliederungsebenen erzeugt, ``versteht'' HTML nichts von hierarchischer Dokumentengliederung und muß konkret mitgeteilt bekommen, aus welcher Ebene eine Überschrift ausgewählt werden soll.
Aufgrund dieser fundamentalen Einschränkungen ist es daher nur unvollständig möglich, einen HTML-Text auf einem anderem Medium als dem Textbetrachter ideal auszugeben; das Resultat läßt ästhetisch zu wünschen übrig und wirkt immer wie eine Nachbildung der bildschirmtypischen HTML-Darstellung mit Textprozessormitteln.