Generisches Markup

Menschen sind sehr gut darin, Muster und Zusammenhänge zu erkennen. Wenn jemand am Anfang eines Vortrags ein Folie and die Wand projiziert, die etwa so aussieht:

1. Generisches Markup

Generisches Markup ist wichtig, um Texte automatisch zu verarbeiten.

fällt es den wenigsten schwer (sofern sie Deutsch lesen können), das Muster aus hellen und dunklen Flecken an der Wand zu deuten. Die erste, hervorgehobene Zeile ist offensichtlich die Überschrift des ersten Abschnitts des Vortrags, und der Rest ist der erste Absatz des den Vortrag begleitenden Texts auf der Folie. In diesem Text können weitere Strukturen erkannt werden, einige der Wörter sind durch eine andere Schrift hervorgehoben. Ein aufmerksamer Betrachter kann sogar zwischen den beiden gleich ausshenden Hervorhebungen einen Unterschied erkennen: die erste bezeichnet einen an dieser Stelle eingeführten technischen Terminus, die zweite ist eine rhetorische Betonung.

So lange Menschen die einzigen nennenswerten Konsumenten von Texten waren, war eine derartige, über das Aussehen des Textes vermittelte Gliederung völlig ausreichend. Inzwischen will man aber immer öfter Texte (oder textähnliche Daten) mit automatischen Datenverarbeitungsanlagen (was eine [Ext. Link]treffendere Bezeichnung als Computer ist) verarbeiten. Diese haben aber immer noch notorische Schwierigkeiten, eine Verbindung zwischen einem Text und möglicherweise nur implizit vorhandenen Kontextinformationen herzustellen. Deshalb muss man ihnen die zu verarbeitenden Texte passend zurechtgemacht präsentieren.

Zum Beispiel: LaTeX

Ein mögliches Beispiel dafür ist der Ansatz von LaTeX. Ein Fragment eines LaTeX-Dokuments, das für die Erstellung der Folie benutzt sein könnte, könnte so aussehen:

\section{Generisches Markup}
\emph{Generisches Markup} ist wichtig, um
Texte \emph{automatisch} zu verarbeiten.

Hier ist der eigentliche Text um Befehle erweitert, die angeben, welche Funktion einzelne Teile des Texts haben. Ein LaTeX-Befehl wie \emph gibt an, dass das in geschweifte Klammern stehende Argument dieses Befehls betont ist, nicht aber, wie genau diese Betonung graphisch umgesetzt wird. Normalerweise setzt LaTeX betonten Text kursiv, in einem kursiven Textbereich aber aufrecht. Diese kontextabhängige Darstellung wäre unmöglich, wenn nicht die Funktion, sondern direkt die Formatierung angegeben wäre.

Der \section-Befehl hat deutlich mehr Wirkungen als der \emph-Befehl: Er beginnt einen neuen Abschnitt und setzt sein Argument mit einer laufenden Nummer davor als Überschrift darüber. Ein Programm, dass ein solches LaTeX-Dokument verarbeiten will, muss einiges über den Aufbau eines LaTeX-Dokuments wissen. Es muss wissen, dass \section einen neuen Abschnitt beginnt, dass auf \section direkt folgender Text einen Absatz innerhalb dieses Abschnitts bildet, dass \paragraph den Beginn einer Untereinheit in diesem Abschnitt bezeichnet, \appendix und \chapter aber den Abschnitt beenden. Ein wesentlicher Teil der Struktur ist also nur implizit in dem Dokument enthalten.

Explizite Auszeichnung der Struktur

In vielen Fällen wäre es aber wünschenswert, ein Dokument auch dann verarbeiten zu können, wenn man die formalen Anforderungen an den Aufbau nicht in allen Details vorher kennt. Dazu muss man es auf eine Weise auszeichnen, in der explizit angegeben ist, wo ein bestimmter Teil eines Textes anfängt und aufhört und welche Teile als Bestandteile von anderen sind. Dies könnte so aussehen:

<sect>
  <title>Generisches Markup</title>
  <para>
    <term>Generisches Markup</term> ist wichtig, um
    Texte <em>automatisch</em> zu verarbeiten.
  </para>
</sect>
Hier ist klar, dass der mit <sect> ausgezeichnete Abschnitt eine mit <title> ausgezeichnete Überschrift und einen mit <para> ausgezeichneten Absatz enthält, der wiederum verschiedene andere Dinge enthält. Diese Form der Auszeichnung kann auch die beiden unterschiedlichen Hervorhebungen unterscheiden. Das wichtigste ist aber, dass dieses Dokument von einem Programm, das nichts über Abschnitte, Überschriften oder Absätze weiß, korrekt gelesen und zum Beispiel in eine Baumdarstellung übersetzt werden kann:

[Strukturierter Text als Baum]

Dies ist einer der zentralen Punkte, an denen sich XML von einigen ihm vorausgehenden älteren Auszeichnungsprachen unterscheidet.

Florian Hars <florian@hars.de>, 2007-10-15 (orig: 2000-06-14)