Haupt >> Computerprogrammierung >> Auszeichnungssprache

Auszeichnungssprache

  Eine spezialisierte Auszeichnungssprache, die SGML verwendet, wird verwendet, um die elektronische Version des Oxford English Dictionary zu schreiben. Dies ermöglicht anspruchsvolle Abfragen sowie eine einfache Übersetzung in HTML. Eine spezialisierte Auszeichnungssprache, die SGML verwendet, wird verwendet, um die elektronische Version der zu schreiben Oxford Englisch Wörterbuch . Dies ermöglicht anspruchsvolle Abfragen sowie eine einfache Übersetzung in HTML.

EIN Auszeichnungssprache kombiniert Text und Zusatzinformationen zum Text. Die zusätzlichen Informationen, zum Beispiel über den Aufbau oder die Präsentation des Textes, werden mit ausgedrückt Auszeichnung , die mit dem Primärtext vermischt ist. Die bekannteste Auszeichnungssprache im modernen Gebrauch ist HTML (HyperText Markup Language), eine der Grundlagen des World Wide Web. Historisch gesehen wurde (und wird) Markup in der Verlagsbranche bei der Kommunikation gedruckter Werke zwischen Autoren, Herausgebern und Druckern verwendet.

Klassen von Auszeichnungssprachen

Auszeichnungssprachen werden oft in drei Klassen eingeteilt: Präsentations-, Verfahrens- und Beschreibungssprachen.



Präsentationsmarkup

Präsentationsmarkup ist ein Versuch, die Dokumentstruktur aus Hinweisen in der Kodierung abzuleiten. Beispielsweise können in einer Textdatei dem Titel eines Dokuments mehrere Zeilenumbrüche und/oder Leerzeichen vorangestellt werden, was auf führende Abstände und Zentrierung hindeutet. Textverarbeitungs- und Desktop-Publishing-Produkte versuchen manchmal, Strukturen aus solchen Konventionen abzuleiten, aber wie die enorme Vielfalt von Wiki-Klartext-Konventionen beweist, ist dies bis jetzt ein ungelöstes Problem.

Prozedurales Markup

Prozedurales Markup konzentriert sich normalerweise auch auf die Darstellung von Text, ist jedoch normalerweise für den Benutzer sichtbar, der die Textdatei bearbeitet, und wird voraussichtlich von der Software in der Reihenfolge interpretiert, in der sie erscheint. Um einen Titel zu formatieren, würde unmittelbar vor dem Text des Titels eine Reihe von Formatierungsanweisungen in die Datei eingefügt, die die Software anweisen, in den zentrierten Anzeigemodus zu wechseln und dann die Schriftart zu vergrößern und zu verstärken. Dem Titeltext würden Anweisungen folgen, um diese Effekte umzukehren; in fortgeschritteneren Systemen machen Makros oder ein Stack-Modell dies weniger mühsam. In den meisten Fällen umfassen die prozeduralen Markup-Fähigkeiten eine Turing-vollständige Programmiersprache. Beispiele für prozedurale Markup-Systeme sind nroff, troff, TeX , Lout und PostScript. Prozedurales Markup wird häufig in professionellen Verlagsanwendungen verwendet, bei denen von professionellen Typografen erwartet werden kann, dass sie die erforderlichen Sprachen lernen.

Beschreibendes Markup

Beschreibendes Markup oder semantische Auszeichnung wendet Beschriftungen auf Textfragmente an, ohne unbedingt eine bestimmte Anzeige oder andere Verarbeitungssemantik vorzuschreiben. Beispielsweise stellt die Atom-Syndikationssprache Markup bereit, um den Zeitstempel „aktualisiert“ zu kennzeichnen, der eine Aussage des Herausgebers darüber ist, wann einige Informationen zuletzt geändert wurden. Während die Atom-Spezifikation die Bedeutung des „aktualisierten“ Zeitstempels erörtert und das Markup spezifiziert, das verwendet wird, um ihn zu identifizieren, macht sie keine Aussagen darüber, ob oder wie er einem Benutzer präsentiert werden könnte. Software könnte dieses Markup für eine Vielzahl von Verwendungen nutzen, darunter viele, die von den Designern der Atom-Sprache nicht vorgesehen waren. SGML und XML sind Systeme, die explizit darauf ausgelegt sind, das Design von beschreibenden Auszeichnungssprachen zu unterstützen.

In der Praxis treten die Markup-Klassen normalerweise gemeinsam in jedem gegebenen System auf. Beispielsweise enthält HTML rein prozedurale Markup-Elemente (z b für fett) und andere, die rein beschreibend sind ('blockquote' oder das 'href='-Attribut). HTML enthält auch das PRE-Element, das Bereiche mit Präsentations-Markup einschließt, die genau so angeordnet werden müssen, wie sie eingegeben wurden.

Sätze von Markup-Elementen und Regeln für ihre Verwendung werden üblicherweise von Standardisierungsgremien entwickelt, um die Arten von Dokumenten zu unterstützen, die in bestimmten Branchen oder Gemeinschaften verwendet werden. Eines der frühesten davon war CALS, das vom US-Militär für technische Handbücher verwendet wurde. Branchen mit umfangreichen Dokumentationsanforderungen folgten bald diesem Beispiel und entwickelten Tag-Sets für Flugzeug-, Telekommunikations-, Automobil- und Computerhardware-Handbücher. Dies führte dazu, dass viele solcher Handbücher ausschließlich in elektronischer Form geliefert wurden; Einige Unternehmen waren in der Lage, gedruckte, Online- und CD-basierte Handbücher aus einer einzigen Quelle (beschreibendes Markup) zu erstellen. Ein bemerkenswertes Beispiel war Sun Microsystems, wo sich Jon Bosak (der später das XML-Komitee gründete) für SGML für die Bereitstellung von Dokumentationen für mehrere Ziele entschied und erhebliche Kosteneinsparungen erzielte.

Auszeichnungssprachen sind jetzt im Überfluss vorhanden; Zu den bekannteren gehören DocBook, MathML, SVG, Open eBook, TEI und XBRL. Viele sind für verschiedene Arten von Textdokumenten, aber spezialisierte Sprachen werden in vielen anderen Bereichen verwendet.

Generisches Markup ist ein anderer Begriff für beschreibendes Markup. Die meisten modernen beschreibenden Markup-Systeme strukturieren Dokumente in Bäumen und bieten gleichzeitig einige Mittel zum Einbetten von Querverweisen. Aus diesem Grund können Dokumente leicht als Datenbanken behandelt werden, bei denen das Datenbanksystem die Struktur kennt (nicht 'Blobs' wie in der Vergangenheit). Da sie jedoch nicht über so strenge Schemata verfügen wie relationale Datenbanken, werden sie gemeinhin als „semistrukturierte Datenbanken“ bezeichnet.

Im dritten Jahrtausend ist ein großes Interesse an Dokumentenstrukturen entstanden, die keine Bäume sind. Zum Beispiel hat antike und sakrale Literatur im Allgemeinen eine rhetorische oder prosaische Struktur (Erzählungen, Perikopen, Absätze usw.) sowie eine Referenzstruktur (Bücher, Kapitel, Verse, Zeilen). Da sich die Grenzen dieser Einheiten oft überschreiten, können sie nicht einfach unter Verwendung von Markup-Systemen mit Baumstruktur codiert werden. Zu den Dokumentmodellierungssystemen, die solche Strukturen unterstützen, gehören MECS (entwickelt zur Kodierung der Werke von Wittgenstein), Aspekte der TEI-Richtlinien, LMNL und CLIX.

Ein Hauptvorteil des deskriptiven Markups ist seine Flexibilität: Wenn die Textfragmente mit 'was sie sind' und nicht mit 'wie sie angezeigt werden sollten' gekennzeichnet sind, kann Software geschrieben werden, um diese Fragmente auf nützliche Weise nicht zu verarbeiten von den Designern der Sprachen erwartet. Zum Beispiel werden Hyperlinks von HTML, die ursprünglich für die Aktivierung durch einen Menschen entworfen wurden, der einem Link folgt, auch von Web-Suchmaschinen weithin verwendet, sowohl um neues Material zum Indexieren zu entdecken als auch um die Popularität von Web-Ressourcen abzuschätzen.

Beschreibendes Markup erleichtert auch die einfachere Aufgabe, ein Dokument nach Bedarf neu zu formatieren, da die Formatspezifikation nicht mit dem Inhalt verflochten ist. Beispielsweise kann Kursivschrift sowohl zur Hervorhebung als auch zur Kennzeichnung von Fremdwörtern verwendet werden. Wenn jedoch beide lediglich (repräsentativ oder prozedural) als kursiv gekennzeichnet sind, kann diese Mehrdeutigkeit nicht ohne weiteres aussortiert werden. Wird später entschieden, Fremdwörter nicht kursiv zu setzen, bleibt nichts anderes übrig, als alle kursiven Anteile zu überprüfen und nach und nach auszusortieren. Wenn die beiden Fälle jedoch (deskriptiv oder generisch) von Anfang an unterschiedlich gekennzeichnet wurden, kann einer der Fälle neu formatiert werden, ohne den anderen zu beeinträchtigen.

Geschichte

Der Begriff 'Markup' leitet sich von der traditionellen Veröffentlichungspraxis des 'Markierens' eines Manuskripts ab, dh des Hinzufügens symbolischer Druckanweisungen an den Rändern eines Papiermanuskripts. Jahrhundertelang wurde diese Aufgabe von Spezialisten erledigt, die als „Markup Men“ und Korrektoren bekannt sind, die den Text markierten, um anzugeben, welche Schriftart, welcher Stil und welche Größe auf jeden Teil angewendet werden sollten, und das Manuskript dann an jemand anderen für diese mühsame Aufgabe weitergaben des Satzes von Hand. Ein bekanntes Beispiel für manuelle Auszeichnungssymbole, die noch verwendet werden, sind die Korrekturzeichen, die eine Teilmenge größerer Vokabulare handschriftlicher Auszeichnungssymbole sind.

GenCode

Die Idee der „Auszeichnungssprachen“ wurde anscheinend erstmals 1967 von dem Verlagsleiter William W. Tunnicliffe auf einer Konferenz vorgestellt, obwohl er es vorzog, sie „generische Codierung“ zu nennen. Tunnicliffe leitete später die Entwicklung eines Standards namens GenCode für die Verlagsbranche. Auch der Buchdesigner Stanley Fish veröffentlichte Ende der 1960er Jahre ähnliche Spekulationen. Brian Reid entwickelte in seiner Dissertation von 1980 an der Carnegie Mellon University die Theorie und eine funktionierende Implementierung des beschreibenden Markups in der tatsächlichen Verwendung. Der IBM-Forscher Charles Goldfarb wird heute jedoch eher als 'Vater' der Auszeichnungssprachen angesehen, aufgrund seiner Arbeit an IBM GML und dann als Vorsitzender des Komitees der International Organization for Standardization, das SGML entwickelte, das erste weit verbreitete beschreibende Auszeichnungssystem . Goldfarb kam auf die Grundidee, als er an einem frühen Projekt arbeitete, um einer Zeitung zu helfen, ihren Arbeitsablauf zu computerisieren, obwohl die veröffentlichten Aufzeichnungen nicht klarstellen, wann. Später wurde er mit der Arbeit von Tunnicliffe und Fish vertraut und hörte einen frühen Vortrag von Reid, der sein Interesse weiter weckte.

Es muss angemerkt werden, dass die Details der frühen Geschichte der beschreibenden Auszeichnungssprachen heiß diskutiert werden. Es ist jedoch klar, dass der Begriff in den 70er Jahren (und möglicherweise in den späten 60er Jahren) mehrmals unabhängig voneinander entdeckt wurde und in den späten 80er Jahren zu einer wichtigen Praxis wurde.

Einige frühe Beispiele für Auszeichnungssprachen, die außerhalb der Verlagsbranche verfügbar sind, finden Sie unter Schriftsatz-Tools auf Unix Systeme wie troff und nroff. In diesen Systemen wurden Formatierungsbefehle in den Dokumenttext eingefügt, damit die Satzsoftware den Text gemäß den Vorgaben des Herausgebers formatieren konnte. Es war ein iterativer Trial-and-Error-Prozess, um ein Dokument korrekt zu drucken. Die Verfügbarkeit von WYSIWYG-Veröffentlichungssoftware ('what you see is what you get') verdrängte einen Großteil der Verwendung dieser Sprachen bei gelegentlichen Benutzern, obwohl ernsthafte Veröffentlichungsarbeiten immer noch Markup verwenden, um die nicht-visuelle Struktur von Texten anzugeben.

TeX

Ein weiterer wichtiger Veröffentlichungsstandard ist TeX , erstellt und kontinuierlich verfeinert von Donald Knut in den 1970er und 80er Jahren. TeX konzentrierte sich auf die detaillierte Gestaltung von Texten und Schriftbeschreibungen, um mathematische Bücher in professioneller Qualität zu setzen. Dies erforderte, dass Knuth viel Zeit damit verbrachte, die Kunst des Schriftsatzes zu untersuchen. Allerdings erfordert TeX vom Anwender erhebliches Geschick, so dass es vor allem im akademischen Bereich eingesetzt wird, wo es in vielen wissenschaftlichen Disziplinen de-facto Standard ist. Ein als LaTeX bekanntes TeX-Makropaket bietet zusätzlich zu TeX ein beschreibendes Markup-System und ist weit verbreitet.

SGML

Die erste Sprache, die eine klare und saubere Unterscheidung zwischen Struktur und Präsentation machte, war sicherlich Scribe, das von Brian Reid entwickelt und 1980 in seiner Doktorarbeit beschrieben wurde. Scribe war in vielerlei Hinsicht revolutionär, nicht zuletzt, weil es die Idee der Stiltrennung einführte aus dem markierten Dokument und einer Grammatik, die die Verwendung beschreibender Elemente steuert. Scribe beeinflusste die Entwicklung der Generalized Markup Language (später SGML) und ist ein direkter Vorfahre von HTML und LaTeX.

In den frühen 1980er Jahren führte die Idee, dass Markup sich auf die strukturellen Aspekte eines Dokuments konzentrieren und die visuelle Darstellung dieser Struktur dem Interpreter überlassen sollte, zur Entwicklung von SGML. Die Sprache wurde von einem Komitee unter dem Vorsitz von Goldfarb entwickelt. Es beinhaltete Ideen aus vielen verschiedenen Quellen, einschließlich Tunnicliffes Projekt GenCode. Sharon Adler, Anders Berglund und James D. Mason waren ebenfalls wichtige Mitglieder des SGML-Komitees.

SGML spezifizierte eine Syntax zum Einfügen des Markups in Dokumente sowie eine zum separaten Beschreiben, welche Tags erlaubt waren und wo (die Document Type Definition (DTD) oder das Schema). Dies ermöglichte es den Autoren, jedes gewünschte Markup zu erstellen und zu verwenden, indem sie Tags auswählten, die für sie am sinnvollsten waren und in ihrer eigenen natürlichen Sprache benannt wurden. Somit ist SGML eigentlich eine Metasprache, und viele besondere Auszeichnungssprachen sind davon abgeleitet. Seit Ende der 80er Jahre basierten die meisten wesentlichen neuen Auszeichnungssprachen auf dem SGML-System, darunter zum Beispiel TEI und DocBook. SGML wurde 1986 von der International Organization for Standardization, ISO 8879, als internationaler Standard verkündet.

SGML fand breite Akzeptanz und Verwendung in Bereichen mit sehr umfangreichen Dokumentationsanforderungen. Es wurde jedoch im Allgemeinen als umständlich und schwer zu erlernen empfunden, ein Nebeneffekt des Versuchs, zu viel zu tun und zu flexibel zu sein. Zum Beispiel machte SGML End-Tags (oder Start-Tags oder sogar beides) in bestimmten Kontexten optional, weil man dachte, dass das Markup manuell von überarbeiteten Support-Mitarbeitern durchgeführt würde, die es begrüßen würden, Tastatureingaben zu sparen.

HTML

Bis 1991 schien vielen, dass SGML auf kommerzielle und datenbasierte Anwendungen beschränkt sein würde, während WYSIWYG-Tools (die Dokumente in proprietären Binärformaten speicherten) für andere Dokumentenverarbeitungsanwendungen ausreichen würden.

Die Situation änderte sich, als Sir Tim Berners-Lee , lernte SGML von seinem Kollegen Anders Berglund und anderen am CERN und verwendete die SGML-Syntax, um HTML zu erstellen. HTML ähnelt anderen SGML-basierten Tag-Sprachen, obwohl es anfangs einfacher war als die meisten anderen und eine formelle DTD erst später entwickelt wurde. DeRose argumentiert, dass die Verwendung von deskriptivem Markup (und insbesondere von SGML) in HTML aufgrund der Flexibilität und Erweiterbarkeit, die es ermöglichte, ein wesentlicher Faktor für den Erfolg des Webs war (andere Faktoren umfassen das Konzept von URLs und die kostenlose Verteilung von Browsern). HTML ist heute wahrscheinlich die am häufigsten verwendete Auszeichnungssprache der Welt.

Der Status von HTML als Auszeichnungssprache wird jedoch von einigen Informatikern bestritten. Das Argument dafür ist, dass HTML die Platzierung von Tags einschränkt und verlangt, dass sie entweder vollständig in anderen Tags oder im Stamm-Tag des Dokuments verschachtelt sind. Aus diesem Grund würden diese Wissenschaftler stattdessen vorschlagen, dass HTML eine Containersprache ist, die einem hierarchischen Modell folgt.

XML

Eine andere, neuere Auszeichnungssprache, die inzwischen weit verbreitet ist, ist XML (Extensible Markup Language). XML wurde vom World Wide Web Consortium in einem von Jon Bosak gegründeten und geleiteten Komitee entwickelt. Der Hauptzweck von XML bestand darin, SGML zu vereinfachen, indem man sich auf ein bestimmtes Problem konzentrierte – Dokumente im Internet. XML bleibt eine Metasprache wie SGML, die es Benutzern ermöglicht, alle erforderlichen Tags (daher „erweiterbar“) zu erstellen und diese Tags und ihre zulässigen Verwendungen dann zu beschreiben.

Die Einführung von XML wurde unterstützt, da jedes XML-Dokument auch ein SGML-Dokument ist und bestehende SGML-Benutzer und -Software ziemlich einfach zu XML wechseln konnten. XML hat jedoch viele der komplexeren Merkmale von SGML eliminiert, was das Lernen und die Implementierung erleichtert (während die Markup-Größe erhöht und die Lesbarkeit verringert wurde). Andere Verbesserungen haben einige SGML-Probleme in internationalen Einstellungen behoben und es ermöglicht, die Dokumenthierarchie zu analysieren und zu interpretieren, selbst wenn kein Schema verfügbar ist.

XML wurde hauptsächlich für halbstrukturierte Umgebungen wie Dokumente und Veröffentlichungen entwickelt. Es schien jedoch einen idealen Punkt zwischen Einfachheit und Flexibilität zu erreichen und wurde schnell für viele andere Anwendungen übernommen. XML wird heute häufig für die Kommunikation von Daten zwischen Anwendungen verwendet.

XHTML

Seit Januar 2000 basieren alle W3C-Empfehlungen für HTML auf XML und nicht auf SGML, wobei die Abkürzung XHTML (the und X spannbar H Yper t ext M Arkup L Sprache ). Die Sprachspezifikation erfordert, dass XHTML-Webdokumente „wohlgeformte“ XML-Dokumente sein müssen – dies ermöglicht strengere und robustere Dokumente, während Tags verwendet werden, die aus HTML bekannt sind.

Einer der auffälligsten Unterschiede zwischen HTML und XHTML ist die Regel that Alle Tags müssen geschlossen sein : „Leere“ HTML-Tags wie <br> müssen entweder mit einem regulären End-Tag „geschlossen“ oder durch eine Sonderform ersetzt werden: <br /> (beachten Sie, dass vor dem „/“ am Ende-Tag ein Leerzeichen stehen muss, da sonst die -Tag ist kein gültiges SGML). Ein weiterer Grund ist, dass alle Attributwerte in Tags in Anführungszeichen gesetzt werden müssen.

Andere XML-basierte Anwendungen

Mittlerweile gibt es viele XML-basierte Anwendungen, darunter RDF, XForms, DocBook, SOAP und die Web Ontology Language (OWL). Eine unvollständige Liste davon finden Sie unter Liste der XML-Auszeichnungssprachen.

Merkmale

Ein gemeinsames Merkmal vieler Auszeichnungssprachen ist, dass sie den Text eines Dokuments mit Auszeichnungsanweisungen in demselben Datenstrom oder derselben Datei vermischen. Hier ist zum Beispiel ein kleiner Textabschnitt, der in HTML markiert ist:

<h1> Anatidae </h1>
<p>
The family <i>Anatidae</i> includes ducks, geese, and swans,
but <em>not</em> the closely-related screamers.
</p>

Die in spitzen Klammern eingeschlossenen Codes sind Markup-Anweisungen (bekannt als Tags), während der Text zwischen diesen Anweisungen der eigentliche Text des Dokuments ist. Die Codes „h1“, „p“ und „em“ sind Beispiele dafür strukturell Markup, indem sie den beabsichtigten Zweck oder die Bedeutung des Textes beschreiben, den sie enthalten. Insbesondere bedeutet „h1“ „dies ist eine Überschrift der ersten Ebene“, „p“ bedeutet „dies ist ein Absatz“ und „em“ bedeutet „dies ist ein hervorgehobenes Wort“. Ein Gerät, das ein solches strukturelles Markup liest, kann seine eigenen Regeln oder Stile anwenden, um es darzustellen, indem es größere Schrift, Fettschrift, Einrückung oder einen anderen Stil verwendet, den es bevorzugt. Die Anweisung 'i' ist ein Beispiel dafür Präsentation Auszeichnung. Es gibt das genaue Erscheinungsbild des Textes an (in diesem Fall die Verwendung einer Kursivschrift), ohne den Grund für dieses Erscheinungsbild anzugeben.

Die Text Encoding Initiative (TEI) hat umfangreiche Richtlinien zur Kodierung geistes- und sozialwissenschaftlicher Texte veröffentlicht, die in jahrelanger internationaler Zusammenarbeit entwickelt wurden. Diese Richtlinien werden von unzähligen Projekten verwendet, die historische Dokumente, die Werke bestimmter Gelehrter, Perioden oder Genres usw. kodieren.

Alternative Verwendung

Während die Idee der Auszeichnungssprache ihren Ursprung in Textdokumenten hat, werden Auszeichnungssprachen zunehmend in Bereichen wie Vektorgrafiken, Webdiensten, Content-Syndication und Benutzeroberflächen verwendet. Die meisten davon sind XML-Anwendungen, da es sich um eine saubere, gut formatierte und erweiterbare Sprache handelt. Die Verwendung von XML hat auch zu der Möglichkeit geführt, mehrere Auszeichnungssprachen in einem einzigen Profil zu kombinieren, wie XHTML+SMIL und XHTML+MathML+SVG .