Auszeichnungssprache

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Eine Auszeichnungssprache (englisch markup language) ist eine maschinenlesbare Sprache für die Gliederung und Formatierung von Texten und anderen Daten. Mit Auszeichnungssprachen werden Eigenschaften, Zugehörigkeiten und Bearbeitungsverfahren von Zeichen, Wörtern, Sätzen und Abschnitten eines Textes oder einer Datenmenge beschrieben und zugeteilt. Dies geschieht in der Regel, indem sie mit Auszeichnungselementen (so genannten Tags) markiert werden.

Wortherkunft und Geschichte[Bearbeiten]

Der typographische Begriff Auszeichnung kommt aus der Druckersprache. Ursprünglich war damit lediglich die Methode gemeint, Teile eines Textes durch von der Grundschrift abweichende Schriften zu gestalten, z. B. durch andere Schriftgrößen und -arten, aber auch durch Unterstreichen, Sperren oder andere Druckfarben. Für den Schriftsetzer wurden die entsprechenden Stellen früher handschriftlich auf dem zugehörigen Manuskript kenntlich gemacht; auch dies wurde Auszeichnen genannt.[1] Mit der Weiterentwicklung der Typografie für digitale Texte wurden daraus maschinenlesbare Sprachen, und das Konzept wurde auf Fußnoten, Literaturhinweise, Absätze, Überschriften etc. erweitert.

Funktionsweise[Bearbeiten]

Typische Auszeichnungssprachen beschreiben Abschnitte von Texten oder anderen Daten mit Auszeichnungselementen (Tags). Die Quelltexte dafür werden mit einem computerlesbaren Zeichensatz verfasst, in der Regel ASCII oder Unicode, meist UTF-8. Oft bietet die Sprache auch die Möglichkeit, Sonderzeichen zu beschreiben, meist mit Hilfe einer numerischen Zuweisung (Unicode) oder durch Benennung, zum Beispiel \mu für µ in LaTeX und in HTML µ.

Vergleichstabelle
Beispiel für … Darstellungsbeispiel HTML LaTeX Wikitext
Überschrift Überschrift <h1>Überschrift</h1> \section{Überschrift} = Überschrift =
Aufzählung
  • Punkt 1
  • Punkt 2
  • Punkt 3

<ul>
<li>Punkt 1</li>
<li>Punkt 2</li>
<li>Punkt 3</li>
</ul>

\begin{itemize}
\item Punkt 1
\item Punkt 2
\item Punkt 3
\end{itemize}

* Punkt 1
* Punkt 2
* Punkt 3

fetten Text fett <b>fett</b> \textbf{fett} '''fett'''
kursiven Text kursiv <i>kursiv</i> \textit{kursiv} ''kursiv''

Unterscheidung und Abgrenzung[Bearbeiten]

Man kann die Auszeichnungssprachen grob unterschieden in Sprachen zur Beschreibung (englisch descriptive markup language) und in prozedurale Auszeichnungssprachen (englisch procedural markup language).

Mit den Beschreibungssprachen werden die Informationen beschrieben, also die physische und logische Struktur eines Dokumentes („Layout“) und die Semantik der Elemente. Zu ihnen gehören unter anderem die in SGML oder XML definierten Sprachen HTML, DocBook, TEI, MathML, WML, XAML und SVG. Prozedurale Auszeichnungssprachen beschreiben dagegen die Darstellung der Dokumente auf dem Bildschirm, im Webbrowser, für Drucker und andere Ausgabegeräte. Dazu gehören die darstellenden Seitenbeschreibungssprachen wie das Textsatzsystem TeX und dessen Makropakete LaTeX oder ConTeXt. Oft werden jedoch sowohl Eigenschaften der Beschreibungssprachen und der prozeduralen Auszeichnungssprachen gemischt verwendet, z. B. bei den Seitenbeschreibungssprachen für PDF und PostScript.

Lightweight Markup Language[Bearbeiten]

Um Dokumente (z. B. in Wiki, Blogs, Foren) manuell erstellen und lesen zu können, werden vereinfachte Auszeichnungssprachen verwendet. Die Syntax konzentriert sich auf einfacher zu merkende und kürzere Elemente.

Meist werden Dokumente für die endgültige Darstellung in eine gewöhnliche Auszeichnungssprache wie HTML oder XHTML serverseitig umgewandelt (z.B. Pandoc).

Klassische Auszeichnungssprachen, die möglichst viele und genaue Details darstellen können, werden meist maschinell durch Skriptsprachen erzeugt und müssen nicht unbedingt von Menschen direkt verwendet werden können. Müssen aber Inhalte von Menschen manuell geschrieben oder sogar gelesen werden, so können diese entweder mit WYSIWYG grafisch aufbereitet oder direkt durch einfache Auszeichnungssprachen dargestellt werden. Im Gegensatz zu WYSIWYG muss der Text zum Schreiben und Lesen nicht bearbeitet werden.

Vereinfachte Auszeichnungssprachen nutzen im Unterschied zu klassischen

  • keine ausführlichen Tags wie z. B. HTML <a href="Seite">Seite</a>, sondern wenige nicht benutzte Zeichenfolgen (zum Beispiel [[Seite]]), um die Lesbarkeit zu erhöhen
  • wenn möglich keinen zwingenden Abschluss wie bei SGML-Elementen durch schliessende Tags
  • dafür Nutzung von Zeilenumbruch oder Leerzeichen als Trennzeichen

So ist ein Sternchen (*) am Anfang einer Zeile ein Listenpunkt und wird erst beim Kompilieren als typografisches Aufzählungszeichen dargestellt. Diese Schreibweise ist gegenüber nativem HTML (<ul><li>text</li></ul>) kürzer. Allerdings ist diese Methode nicht ganz eindeutig, denn eine andere Funktion des Sternchens zur Kennzeichnung einer Fußnote kollidiert hier. Andere Funktionen innerhalb einer vereinfachten Auszeichnungssprache verursachen so Fehler. In manchen vereinfachten Auszeichnungssprachen beginnt ein fett geschriebener Text mit dem Sternchen (ich rufe *laut* um Hilfe), was am Zeilenanfang (*Laut* rufe ich um Hilfe) mit der Darstellung für einen Listeneintrag kollidieren wird.

Neben reinen logischen Auszeichnung wie Überschriften und reinen Schriftauszeichnung wie fett können auch weitere Funktionen erfüllt werden

  • Hyperlinks
  • Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zur Kategorisierung.
  • mit Transklusionen Teile anderer Dokumente durch einen Verweis einzuschließen.

Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen (z. B. Readme oder E-Mails) zur Darstellung von Hervorherbungen wie Kursiv oder Fett verwendet, ohne dass diese weiter umgewandelt werden. Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicher Software gebildet, es gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind.

Programmiersprache[Bearbeiten]

Die Abgrenzung von Auszeichnungssprachen zu Programmiersprachen ist zum Teil schwierig. So weist die Sprache PostScript z. B. auch Eigenschaften von Programmiersprachen auf: Zur Darstellung einer Lissajous-Figur in Postscript müssen z. B. nicht alle Kanten der Grafik in einer Segmentliste enthalten sein, sondern können mit einem programmierten Algorithmus erzeugt werden. Das Ziel ist war eine beschreibende Datenauszeichnung, allerdings wird diese unter Umständen erst zur Laufzeit aus einer prozeduralen Vorstufe erzeugt. Die Abgrenzung zu einer Programmiersprachen wird hier fließend, denn wie diese besitzen auch alle Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik, was aber noch keine hinreichenden Bedingungen zur Definition einer Programmiersprache sind. Eine Programmiersprache unterscheidet sich von einer reinen Auszeichnungssprache durch die Elemente von Sequenz, Iteration und Auswahl.

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Meyers enzyklopädisches Lexikon, Mannheim 1971. Band 3, S. 188.