Auszeichnungssprache

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Vereinfachte Auszeichnungssprache)
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 die Text-Abschnitte oder Daten mit Auszeichnungselementen (Tags). Die Quelltexte werden in der Regel in ASCII oder Unicode, meist UTF-8, verfasst. 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]

Bei den Auszeichnungssprachen wird heute grob unterschieden in Sprachen zur reinen Beschreibung, Descriptive Markup Language (DML) und in prozedurale Auszeichnungssprachen, Procedural Markup Language (PML).

Mit den reinen Beschreibungssprachen werden die Informationen beschrieben, also die physische und logische Struktur eines Dokumentes (neudeutsch: Layout) und die Semantik der Elemente, im Gegensatz zu den prozeduralen Auszeichnungssprachen, welche die Darstellung der Dokumente – unter anderem auf dem Bildschirm, im Webbrowser oder für Drucker – beschreiben.[2]

Descriptive Markup Language[Bearbeiten]

Zu den reinen Beschreibungssprachen gehören unter anderem die in SGML oder XML definierten Sprachen HTML, DocBook, TEI, MathML, WML, XAML und SVG.

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.

Procedural Markup Language[Bearbeiten]

Die darstellenden Seitenbeschreibungssprachen wie das Textsatzsystem TeX und dessen Makropakete LaTeX oder ConTeXt, kann man weitläufigst zu den Auszeichnungssprachen zählen. Hier werden jedoch sowohl Eigenschaften der reinen Beschreibungssprachen sowie der prozeduralen Auszeichnungssprachen verwendet, wie das auch bei den Seitenbeschreibungssprachen für PDF und PostScript der Fall ist.

Programmiersprache[Bearbeiten]

Die Abgrenzung ist zum Teil jedoch auch sehr schwierig, da beispielsweise bei der Sprache PostScript auch Eigenschaften von Programmiersprachen verwendet werden. Zur Darstellung einer Lissajous-Figur in Postscript müssen so z. B. nicht alle Kanten der Grafik in einer Segmentliste enthalten sein, da diese auch anhand eines programmierten Algorithmus zur Laufzeit erzeugt werden können. Das Ziel ist jedoch eine beschreibende Datenauszeichnung, allerdings wird diese unter Umständen erst zur Laufzeit aus einer prozeduralen Vorstufe dynamisch erzeugt. Die Abgrenzung zu Programmiersprachen wird in diesem Fall fließend, denn wie diese besitzen auch alle Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik, was aber noch keine hinreichenden Bedingungen sind zur Definition einer Programmiersprache. 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.
  2. DML (descriptive markup language) – Eintrag bei ITWissen.info