Definitionen - Was ist eine "Metasprache" / "Auszeichnungssprache" / "Dokumentenbeschreibungssprache"?

1 Antwort

Von Experte medmonk bestätigt

Eine Metasprache trifft Aussagen (Beschreibungen) über eine andere Sprache. Ein sehr einfaches Beispiel ist diese Aussage:

"Baum" hat vier Buchstaben

In diesem Fall entspricht das Wort Baum der Sprache, zu der eine These aufgestellt wird.

Allerdings kann eine Metasprache ebenso eine Aussage über Metasprache treffen:

Die Aussage, dass "Baum" vier Buchstaben hat, ist wahr.

Im explizit technischen Bereich sind Metasprachen solche, die beschreiben, wie eine andere Sprache aufgebaut ist. Ein bekanntes Beispiel hierfür wäre XML, denn man kann mit ihr den Aufbau einer Markupspracher festlegen. DTD oder XSD dienen dabei als Mittel, um konkrete Regeln festzulegen (z.B. welche Elemente/Tags es gibt, welche Attribute sie haben, usw.).

Eine Auszeichnungssprache dient der Beschreibung von Daten via Metainformationen. Das wird am einfachsten am konkreten Beispiel HTML deutlich:

<h1>Today is a great day</h1>

Die h1-Tags sind die Metainformationen, die die eingeklammerten Daten beschreiben. In diesem Fall wird ausgedrückt, dass der Text Today is a great day als eine sehr hoch priorisierte Überschrift zu werten ist.

Metasprachen können als Auszeichnungssprache genutzt werden (erneut ist XML ein Beispiel dafür). Andersherum gilt diese Regel nicht. Da man beispielsweise mit HTML keine Definition für eine andere Auszeichnungssprache vornehmen kann (HTML ist beschränkt auf seine Auswahl an vorgegebenen Elementen/Attributen), ist es auch keine Metasprache.

Eine Dokumentenbeschreibungssprache ist gemäß des Namens eine Sprache, mit der ein Dokument in Struktur und Inhalt beschrieben wird.

Eine weitschweifigere Definition zu der von mir aufgeführten kann man in der mittlerweile archivierten Version der SelfHTML-Dokumentation finden:

(...) HTML ist eine sogenannte Dokumentbeschreibungssprache. Eine Dokumentbeschreibungssprache hat die Aufgabe, die Struktur eines Dokuments in einer vereinheitlichten, abstrakten Form zu beschreiben. Die Beschreibungssprache sollte in der Lage sein, typische Elemente eines Dokuments, wie Kapitel, Unterkapitel, Textabsätze, Listen, Tabellen, Grafiken, Querverweise zu anderen Dokumenten usw. zu bezeichnen. Dabei handelt es sich um logische Elemente des Dokuments. (...)
Quelle

Wie schon in diesem Absatz herauslesbar, kann HTML als Vertreter aufgeführt werden. Ein anderer wäre RTF.

Bei HTML sieht man es gut an einem konkreten Beispiel:

<!doctype html>
<head>
  <title>Dromedary</title>
  <meta charset="utf-8">
  <meta name="description" content="Article about the dromedary">
  <meta name="keywords" content="animal, dromedary">
  <meta name="author" content="John Doe">
</head>
<body>
  <header>
    <h1>The dromedary</h1>
    <img alt src="dromedary.jpg">
  </header>
  <section>
    <h2>Description</h2>
    <p>...</p>
  </section>
  <!-- etc. ... -->
</body>  

Zum einen wird hier die logische Struktur eines Dokuments festgelegt (head, body, separate Unterteilung der Inhalte via header, section, etc.) und zum anderen hast du die Möglichkeit, das Dokument selbst mit Metainformationen auszustatten (siehe title und andere meta-Tags).

Allerdings sollte hierbei ausdrücklich betont werden, dass es nicht darum geht, direkte Vorgaben für eine visuelle Darstellung (physische Struktur/Layout) zu treffen. Bei einem HTML-Dokument ist es ausschließlich dem lesenden Programm vorbehalten, wie es die vorhandenen Metainformationen verwertet/wiedergibt.

Anders wäre es bei Seitenbeschreibungssprachen (PDLs), wie PostScript oder PDF, die gezielt Vorgaben treffen (z.B. Randabstände, exakte Seitengröße, etc.), wie eine Ausgabe später aussehen soll.