< HOME OF SGML >

XML: SGML ohne die Basis

Brian E. Travis

[http://tag.sgml.com Quelle: < TAG > Volume 10, Number 9, September 1997]


Als MS-DOS, das hirnlose jedoch sehr erfolgreiche PC Betriebssystem, entwickelt wurde, besaß ein guter PC 64 KB RAM, ein180 KB Diskettenlaufwerk und eine 8-bit-Architektur. DOS konnte diese einfache Architektur so gut managen, daß sich hieraus die Basis für die heutige Computerindustrie bildete. Vor zwei Jahren noch konnte Microsoft jährliche Einkünfte von über einer Milliarde Dollar allein durch den Erlös aus dem MS-DOS-Geschäft erzielen. Für eine Investition von 10.000 Dollar in den siebziger Jahre ist das nicht schlecht.

DOS hat uns seit Beginn der PC Ära begleitet und begleitet uns noch immer in den unterschiedlichsten Ausprägungen.

Eines der größten Probleme, die Microsoft mit dem Verkauf ihres Betriebssystems der neuen Generation, windows 95, hatte, war zum großen Teil Ergebnis des eigenen Erfolges.

Um ein vermarktungsfähiges Produkt herstellen zu können, mußte Microsoft Millionen von Rechnern unterstützen, egal ob neu oder uralt.

Windows 95 hätte wohl keinen Erfolg, wenn es für diese alten Programme und Hardwaretreiber keinen Support leisten könnte.

Die Gesamtheit der derzeiten PC-Nutzer und Rechner wird - was nicht sehr freundlich von der Computerindustrie ist - die Basis genannt.

Windows 95 beinhaltet sehr viel 8- und 16-bit-Code. Es ist sogar so viel, daß ein Buch zur Kontroverse über dieses Thema erschienen ist, da Microsoft behauptet, windows 95 sei ein reines 32-bit Betriebssystem.

Viele Systemfehler und -abstürze können darauf zurückgeführt werden, daß die Basis unterstützt werden muß, was den zugrundeliegenden Systemcode so kompliziert macht.

Ich benutze windows NT. Es ist ein reines 32-bit Betriebssystem, das nur 32-bit Treiber und Programme unterstützt, die sich nicht um die Basis der DOS-Benutzer kümmert. Windows NT ist aufgrund seiner Intoleranz alten Betriebssystemen gegenüber zwar kein Betriebssystem für jedermann; da es aber nicht auf alles Rücksicht nehmen muß, ist es ein weitaus stabileres und robusteres Betriebssystem.

Als SGML in den späten 70er und frühen 80er Jahren entwickelt wurde, bestand die "Electronic Publishing" Szene aus Fotosatzmaschinen und proprietären Betriebssystemen.

Auf diesen Maschinen erstellte Dokumente waren vorwiegend Papierdokumente (auch wenn es ein paar Electronic Delivery Pioniere wie z. B. Lexis gab), die auf eine Drucksatz-Tradition von über 500 Jahren zurückgingen.

Aufgabe des Setzers war es, einer Seite ein gutes Layout zu verleihen und nicht unbedingt, eine Struktur für die auf der Seite enthaltenen Informationen zu schaffen, um sie später in verschiedenen Formaten wiederverwenden zu können.

Die Entwickler von SGML hatten die Vision, den Übergang von Papier zu den neuen Medien zu schaffen und dachten, daß eine anpassbare beschreibende Programmiersprache eine solche Umwandlung ermöglichen könnte.

Damit SGML zu einer anerkannten Norm mit breiter Unterstützung wurde, mußte es von möglichst vielen angenommen werden.

Es mußte Techniken bieten, die erlaubten, Elemente zu definieren, die überall im Text vorkommen können, (wie z. B. Fußnoten, Zitate oder hervorgehobener Text).

Es mußte Möglichkeiten für eine strukturierte und wiederverwendbare Beschreibung loser Strukturen bieten. Es mußte weltweit auf allen gegenwärtigen und in der Zukunft liegenden Systemen laufen. Um erfolgreich zu sein, mußte SGML so flexibel sein, daß Organisationen mit unterschiedlichsten Hardwareausstattungen es nutzen würden. Anders formuliert, es mußte kompatibel zur Basis sein.

Dies stellte sich als große Aufgabe heraus. Als SGML entwickelt wurde, wurde gerade bei Textverarbeitungsprogrammen die Ausdruckqualität verbessert. In einer von Papier dominierten Welt waren Textverarbeitungsprogramme das größte. Warum sollte man sich den Ärger mit der Verwendung einer deskriptiven Sprache einhandeln, wenn man sowieso nur ein Buch drucken will ? Glücklicherweise sahen genügend Unternehmen die Vorteile eines strukturbasierten Vorgehens, so daß SGML bis zur Geburt des WWW überlebte.

Es gab einige Versuche, SGML mit dem Web zu verbinden, doch sie waren nicht sehr erfolgreich. Der Hauptgrund ist, daß SGML die Basis unterstützen muß. Die Fähigkeit, die Benutzern erlaubt, neue Strukturen in bestehendes Chaos zu bringen, macht SGML komplex und nicht dafür geeignet, Informationen schnell und effizient zu verbreiten.

Einige sahen das und versuchten es zu korrigieren, indem sie XML entwickelten. Während für die Entwicklung von SGML ein internationales Kommittee 10 Jahre benötigte, brauchte für XML eine kleine Gruppe von Web Pionieren nur ein paar Monate.

Das SGML Kommittee traf sich überall auf der ganzen Welt, was die Unternehmen Millionen von Dollars kostete. Der XML Entwicklungsausschuß verkehrte vorwiegend per email. Das SGML Kommittee entwickelte von Grund auf eine für viele Nutzer brauchbare Lösung. Der XML Entwicklungsausschuß verwendete diejenigen SGML Features, die er für den Informationsaustausch übers Netz für nötig befand und befreite sich von allem anderen.

Daher ist XML eine sehr einfache Metasprache ohne die Komplexität von SGML, wobei es auch einige Dinge nicht kann, die mit SGML möglich sind. Kurz ausgedrückt, ist XML SGML ohne die Notwendigkeit, sich um die Basis kümmern zu müssen.

Zum Beispiel sind bei XML Ausnahmen in Form von Inklusionen und Exklusionen nicht erlaubt. In gedruckten Werken können Fußnoten an vielen Stellen vorkommen. Inklusionen wurden dafür entwickelt, solche Strukturen zu ermöglichen ohne das Inhaltsmodell unleserlich werden zu lassen. Dies machte auch die Entwicklung von SGML Parsern schwierig sowie das Laufzeitverhalten schlecht; beides sind keine guten Voraussetzungen für online-delivery in Echtzeit. Der XML Entwicklungsausschuß erlaubte keine Ausnahmen. Ein weiteres Beispiel ist der "And"-Konnektor, der die Anordnung von Elementen in beliebiger Reihenfolge ermöglicht. Auch dies kommt in gedruckten Werken oft vor, wirkt sich aber negativ auf Entwicklungszeit und Laufzeitverhalten aus. Also verbot der XML Entwicklungsausschuß auch den "And"-Konnektor. Ein drittes Beispiel ist die Lauffähgkeit von SGML auf praktisch jeder verfügbaren Plattform mit beliebigem Zeichensatz. Dies wird ermöglicht durch die veränderbare SGML Deklaration, deren Entwicklung Tausende von Mannstunden benötigte. Sie ermöglicht maximale Flexibilität bei einer langen Entwicklungszeit und einem schlechten Laufzeitverhalten, also schufen die XML Entwickler eine SGML Deklaration mit festem Zeichencode.

Diese Liste könnte man noch lange fortführen, doch ich hoffe, mein Standpunkt ist klar.

Ich sehe XML nicht als Konkurrenz zu SGML, was die Mächtigkeit beider Sprachen angeht. Ich denke, XML wird eine exzellente Sprache für das Web. In meinem neuesten Buch "OmniMark at Work" gibt es ein einfaches Programm von 36 Zeilen (inkl. Kommentaren), das SGML Dokumente in XML umwandelt. Da XML eine Anwendung von SGML ist, ist die Umwandlung von SGML in XML einfach. XML in SGML umzusetzen ist dagegen etwas schwieriger. Ich empfehle, SGML zu verwenden, wenn Altdaten vorhanden sind, die konvertiert und gespeichert werden müssen. Sie können immer noch in XML konvertiert werden, wenn Daten übers Netz verbreitet werden sollen.

Beim Beenden dieses Artikels auf meinem Windows NT Rechner, sehe ich es als Vorteil, die Basis hinter mir zu lassen. Ich sehe es aber genauso als Vorteil, daß Windows 95 alte Rechner mit neuen Möglichkeiten ausstatten kann. Ich mag die Einfachheit von XML, ich bin aber auch froh, daß die Entwickler von SGML die Möglichkeit schufen, Altdaten zu konvertieren. Ich bin froh, daß es eine Wahl gibt.

zurück zur Homepage


Generiert: D. Erhold, 21.10.97