XHTML SVG CSS PHP

Dr. O. Hoffmann

Ausgedichtet

Bei vielen Menschen ist das Versemachen eine Entwicklungskrankheit des Geistes.
Georg Christoph Lichtenberg

Erstellt oder aktualisiert: 2007-07-09/12-13; 2008-05-15; 2008-06-22; 2008-10-05; 2008-10-20; 2008-12-03; 2008-12-08; 2009-09-20; 2010-04-25; 2013-03-12; 2014-12-15

Gedichte fachgerecht auszeichnen

HTML 4 oder XHTML bieten keine besonderen Elemente, um Gedichte auszuzeichnen. Das seit Oktober 2014 als Empfehlung verfügbare 'HTML 5' schließt eine sinnvolle Auszeichnung von Gedichten sogar nahezu aus. Nach Auskunft einiger Mitglieder der zuständigen Arbeitsgruppe handelt es sich bei 'HTML 5' auch nicht mehr um eine Sprache zur Textauszeichnung, sondern eher um eine Ansammlung von Netz-Anwendungen mit offenbar falschem Namen, insofern ist diese Version für die Verwendung von literarischen, hochwertigen Werken auf jeden Fall nicht besser geeignet als frühere Version, im Falle von Gedichten sogar deutlich schlechter.

Somit stellt sich die Frage, wie Gedichte fachgerecht ausgezeichnet werden sollten. Als Autor muß man sich solchen Fragen stellen, um qualitativ hochwertig ausgezeichnete Inhalte anbieten zu können. Als Alternative zu (X)HTML kommt auch SVG in Frage oder auch Formate wie DAISY, FictionBook oder LML.

SVG ist zwar für die semantische Auszeichnung von Text allgemein schlecht geeignet, bietet semantisch aber auch nicht weniger als (X)HTML bezogen auf Gedichte an, ist aber in der Positionierung und der visuellen Präsentation deutlich überlegen, was besonders bei moderneren Gedichten von Vorteil sein kann und gar neue Formen von Gedichten oder allgemeiner semantischen Kunstwerken erst ermöglichen mag. Obwohl in SVG ausgezeichneter Text auch direkt (vor)lesbar ist, handelt es sich doch um ein Format mit stark visueller Präferenz, während (X)HTML ein Format ist, welches auch gut nicht visuell darstellbar ist, etwa für Blinde oder Menschen ohne Monitor als visueller Ausgabe.

DAISY bietet immerhin eine spezielle Methode zur Auszeichnung von Strophen, ansonsten aber auch nicht viel mehr als (X)HTML bezogen auf Gedichte. Als XML-Format ist es allerdings verwendbar, mit Stilvorlage sogar bei Darstellungsprogrammen, die das Format nicht selbst interpretieren können, aber immerhin XML allgemein. Der Hauptanwendungsbereich von DAISY liegt im Bereich Hörbücher.

FictionBook eignet sich allgemein recht gut zur Auszeichnung von Literatur einschließlich der von Gedichten, ist ebenfalls ein XML-Format, dessen Schwerpunkt im Bereich von ganzen Büchern liegt.

LML ist ein XML-Format, welches vom mir selbst formuliert wurde und allgemein einer semantisch reichhaltigen Auszeichnung jeglicher Art von Literatur dienen soll, was insbesondere auch für internet-Seiten geeignet sein soll, aber auch für größere Werke in Archiven. Zudem weist es zahlreiche besondere Strategien zur Angabe von Metainformationen auf. Ferner greift es neuere Methoden auf, mit denen LML innerhalb von anderen Formaten wie SVG oder XHTML verwendet werden kann, um ansonsten semantisch bedeutungslosen Elementen eine solche semantische Bedeutung zuzuweisen.

Gedichte haben sich über die Jahrhunderte oder gar Jahrtausende zu recht verschiedenen Strukturen entwickelt, so daß sich daraus auch eine recht differenzierte Auszeichnung ergeben kann. Gemeinsam ist den allermeisten Gedichten eine Einteilung in Verse oder Zeilen und Strophen, die sich gut zur Auszeichnung eignen. Versmaß oder Metrum ist hingegen schon etwas kniffliger und eine Auszeichnung ist oftmals eventuell auch gar nicht notwendig. Andere Strukturen wie zum Beispiel Metaphern, Alliterationen oder Oxymorone mögen sich über mehrere Verszeilen erstrecken, was es auch wieder spannend macht, dies mit der Auszeichnung der Verszeilen selbst vereinbar zu machen.
Eine Reihe von klassischen Gedichten haben Strukturen mit besonderen Namen hervorgebracht, etwa können Strophen anhand ihrer Anzahl an Zeilen benannt werden. Das funktioniert ähnlich wie bei der Feinstruktur von Atom- oder Molekülzuständen, also werden sie in aufsteigender Zeilenzahl wie folgt bezeichnet: Singlett, Doublett, Triplett, Quartett, Quintett, Sextett etc.

Eine geeignete Auszeichnungssprache sollte zum einen die Grobstruktur der Strophen und Verszeilen wiedergeben können, zudem sollte poetischer Inhalt als solcher von Prosa unterscheidbar sein, etwa auch, um bei einem Vortrag die richtige Betonung zu wählen, die bei Prosa und Poesie deutlich unterschiedlich ist. Zudem sollte die Sprache für Spezialanwendungen erweiterbar sein, für den Fall, daß etwa für Lehrzwecke weitere Auszeichnungen für Versmaß, Metrum und besondere Fragmente benötigt werden, die die Sprache selbst nicht mehr bietet. LML ist von vorne herein nach diesen Kriterien formuliert, ohne die Notwendigkeit von schlechten Kompromissen mit Schwächen von Vorgängerversionen wie bei (X)HTML. Dafür hat (X)HTML den Vorteil, von verschiedenen Darstellungsprogrammen seit Jahren interpretiert zu werden. SVG bietet besonders hinsichtlich der graphischen Darstellung und Dekoration wichtige Vorteile. Seit Ende 2008 sind diese Vorteile aufgrund neuer Versionen für XHTML und SVG miteinander kombinierbar.

Gedichte mit (X)HTML auszeichnen

Ein wichtiges Strukturmerkmal, für welches (X)HTML ein passendes Element zur Verfügung stellt, ist die Überschrift, dazu kann wie bei anderen Texten auch ein Element aus der Kaskade h1 bis h6 je nach Position im Dokument verwendet werden. Zudem gibt es oft zu integrierende Angaben zum Autor und zur Entstehungszeit. Für die Angabe des Autors eignet sich zum Beispiel das Element cite oder bei ausführlicheren Angaben auch address. Da address nur inzeiligen Inhalt haben kann, kommt da typisch das Element br zum Einsatz oder eben auch andere inzeilige Elemente, um den Inhalt näher zu beschreiben.

address hat zudem die in (X)HTML definierte Bedeutung, daß der Inhalt im Sinne eines Impressums der ganzen Seite Informationen zum Verantwortlichen des gesamten Dokumentes liefert, ist also nur zutreffend, wenn der Autor des Gedichtes derselbe wie derjenige ist, welcher für das gesamte Dokument verantwortlich ist.

cite eignet sich eher, wenn Gedichte von anderen Autoren zitiert werden, dann wäre das gesamte Gedicht sinnvoller Weise mit blockquote zu umschließen und dessen Attribut cite würde dann auf das Element cite mit dem Autor verweisen, welches als Verweisziel einen Fragmentidentifizierer aufweist, also ein Attribut id.

Anmerkung zu folgenden Beispielen: aufgrund von Fehlern in einzelnen Darstellungsprogrammen kann es dazu kommen, daß der angegebene Quelltext der Beispiele trotz anderer Auszeichnung interpretiert wird, also nicht wie beabsichtigt der Quelltext dargestellt wird, sondern dessen Interpretation durch das Programm, zu erkennen meist an der dargestellten Zeichenfolge ']]>' am Ende des nicht zu interpretierenden Bereiches. In dem Falle wird empfohlen, ein weniger fehlerhaftes Darstellungsprogramm zu verwenden.

Betrachten wir zunächst eine klassische Gedichtform, als Beispiel ein Sonett. Die Originalform besteht aus zwei Quartetts und zwei Tripletts. Die englische Variante besteht aus drei Quartetts und einem Doublett. Eine naive, von (X)HTML nahegelegte und auch öfter anzutreffende mangelhafte Möglichkeit der Auszeichnung sieht sinngemäß so aus:



keine Zauberei

Dr. Olaf Hoffmann
Hannover
1999-06-20/21

wie jeder weiß, gibt es keine Zauberei
doch dem Magier ist das einerlei
macht unbekümmert seinen Trick
und find' das auch noch schick

läßt eine Kugel verschwinden
genau hier vor unseren Augen
die Zuschauer können den Trick nicht finden
und wagen das Wunder kaum zu glauben

und dann ist die Kugel wieder da
und der Trick ist immer noch nicht klar
der Magier geheimnisvoll lacht

doch dieser Trick der ist nur virtuell
und geht nicht generell
so schöpft der Zuschauer Verdacht

]]>

Bei dem Beispiel wird davon ausgegangen, daß Verse lediglich durch Zeilenumbrüche br zu kennzeichnen sind, also keine eigenständigen Strukturen sind. Das deutet allerdings darauf hin, daß die Struktur eines Gedichtes nicht verstanden worden ist. Ein Vers hat einen Anfang und ein Ende, nicht nur ein Ende, ist also inhaltlich keine befriedigende Wahl.

Strophen werden als Absätze p gekennzeichnet, weil das als jenes Element aufgefaßt wird, welches der Bedeutung einer Strophe am nächsten kommt. Auch das deutet an, daß die Struktur eines Gedichtes nicht verstanden worden ist, denn ein Absatz beinhaltet einen durch Sätze strukturierten und in sich abgeschlossenen Gedankengang. Strophen sind nicht notwendig Sätze, die Struktur wird also mit p nur sehr unbefriedigend beschrieben. Andersherum und historisch kann ein Absatz als degenerierte Strophe ohne weitere Unterstruktur in Zeilenform interpretiert werden.

An sich folgerichtig sind in einem Entwurf für 'HTML 5' p und br ohnehin für Prosa reserviert gewesen, daher entfiel dies dort komplett, diese Idee wurde in einem anderen Entwurf allerdings wieder zurückgenommen und als Verständnisproblem des Editors erklärt. Gleichwohl hat 'HTML 5' immer noch keine brauchbaren Elemente zur Auszeichnung von Gedichtstrukturen.

Um den Zusammenhang immerhin besser zu verdeutlichen, ist um das Gedicht herum ein Element div gezogen mit einem Attribut class mit dem Wert Gedicht. Dann ist relativ naheliegend, daß die Überschrift darin die des Gedichtes ist, address darin Angaben zum Autor anbietet, die Absätze Strophen sind und jeder Zeilenumbruch das Ende einer Verszeile kennzeichnet. Mehr ist mit dem Modell nicht drin. Besser als nichts, doch eigentlich deutlich zu wenig.

Die andere Möglichkeit oder das andere Extrem besteht nun in der Auffassung, daß XHTML gar keine passenden Elemente für Gedichte hat und daß deshalb die Elemente div oder span zu verwenden sind. Diese erhalten dann jeweils ein Attribut class, welches einen oder mehrere Werte bekommt, die den Inhalt beschreiben, was also gewissermaßen auch eine semantische Auszeichnung ist. Wenn mehrere Werte angegeben werden, werden diese mit Leerzeichen getrennt.

Es gibt auch Versuche, solche Attributwerte zu vereinheitlichen und bei vielen Projekten gleich zu verwenden. Die Strategie wird unter dem Begriff Mikroformate geführt (englisch: microformats), allerdings habe ich keines für Gedichte gefunden. Da in XHTML Attributwerte in weiten Grenzen frei wählbar sind, sind solche vereinheitlichten Werte natürlich nie verbindlich und nicht international standardisierbar oder spezifizierbar. Immerhin handelt es sich um einen brauchbaren Ansatz, eine Vorarbeit zu möglichen zukünftigen XHTML-Elementen. In XHTML2 (die Arbeit daran hat das W3C 2009 praktisch eingestellt) hätte es wohl ein neues Attribut role gegeben, welches die Rolle oder Aufgabe eines Elementes beschreibt. Gibt es dazu nun eine Spezifikation für Gedichte, könnte das als bessere Krücke herhalten, um den semantischen Mangel von XHTML auszugleichen.
Leider wurde auch die Arbeit am Entwurf zu role eingestellt, beziehungsweise dessen Benutzung auf eine Erweiterung von 'HTML 5' eingeschränkt, die sich damit beschäftigt, mangelhafte und unzugänglich gemachte Projekte mit zusätzlichen Attributen zu verzieren, die verraten, wozu die unzugänglichen Strukturen gut wären, wenn sie zugänglich wären und funktionieren würden. Es leuchtet natürlich jedem ein, daß es viel sinnvoller wäre sich damit zu beschäftigen, ein Projekt einfach zugänglich zu machen, statt es nur so zu dekorieren.

XHTML+RDFa 1.1 stellt ja eine Parallelentwicklung zu 'HTML 5' dar, stellt aber ebenfalls kein Attribut role bereit, aber kompliziertere Strukturen mit ähnlicher Funktionalität für allgemeinere semantische Zwecke.
Es gibt auch zu 'HTML 5' eine Erweiterung vom Typ RDFa. Diese krankt aber wie 'HTML 5' daran, daß man gar nicht kennzeichnen kann, welche Version oder Erweiterung man gerade verwendet. Auch von daher ist 'HTML 5' etwas esoterisch einzustufen, irgendwie existiert ist, man kann aber bei Dokumenten nicht angeben, daß man es verwendet.

Die Auszeichnung sieht nur mit class dann wie folgt aus:



  
Morgenkuß
Olaf Hoffmann
Hannover
1998-08-28
Zwar ist der Tag erwacht
Doch keine Sonne lacht
Der Himmel ist grau
Doch du bist schlau
Trägst die Sonne im Herzen
Bist fast immer am Scherzen
Dein Lachen tut mir gut
Deine Worte machen mir Mut
Ich geb dir einen Kuß
Weil ich einfach muß
Der ist zwar nur virtuell
Aber für dich ganz speziell
Meine Liebe, ich denk an dich
Sag, denkst du auch an mich?
]]>

Sicherheitshalber wird auch gleich das Element für die Überschrift ausgetauscht, weil das sowieso nicht richtig in die Kaskade der sonstigen Überschriften des Dokumentes paßt.

Ferner wirkt die Auszeichnung einerseits etwas überdimensioniert, vor allem, wenn man sich auch noch inzeilige Auszeichnungen mit span hinzudenkt. Andererseits wirkt ein nur noch aus div-Elementen bestehendes Dokument semantisch sehr armselig, gesucht wird also das gesunde Mittel, wobei halbwegs brauchbare Elemente mit vorhandenen Bedeutungen verwendet werden und zusätzlich geeignete class-Attribute, um den Inhalt genauer und für ein Gedicht spezifisch zu kennzeichnen. Da andererseits das Element p nur inzeilige Elemente enthalten darf, kommt dieses auch nicht mehr in Frage, wenn Verse oder Zeilen sinnvoll gekennzeichnet werden sollen.

Der nächste Ansatz wäre etwa eine Liste, das ist immerhin eine Struktur mit ineinander verschachtelten Blockelementen, eine Strophe als Liste, ein Vers als Listenpunkt. Leider werden bei allen Listenelementen die Listenpunkte mit Symbolen gekennzeichnet, was auch nicht sinnvoll ist. Als Notbehelf ginge immerhin eine Definitionsliste, wobei die Verse dann gewissermaßen die Strophe definieren, das ist natürlich eine sehr gewagte Interpretation einer Strophe, bildet aber die korrekte Struktur einer Strophe ab, fehlt noch der Zusammenhalt aller Strophen, das ist dann zwangsläufig wieder ein div-Element.


  

Liebesgedicht

Duuuuuuuuuuu meine Liebe!
Vor Glück zerspringt mein Schlüsselbund!
So spür' ich meine Triebe;
Das tu' ich dir hiermit kund.
Ein Regenbogen der Gefühle
Wie die Spektren der Moleküle,
Deine Augen-Blicke auffangen,
Dein Kuß das Ziel für mein Verlangen.
An die Grübchen deiner Wangen denk' ich
Ich bitte dich darum, beschenk' mich
Mit diesem Zauber deines Lachens.
Und wäre dies ein Traum,
Ich werde dir ganz vertraun,
Erspare mir die Enttäuschung des Erwachens!
Olaf Hoffmann
Hannover
1993-08-01
Aus dem Roman 'Entscheidung'
]]>

In 'HTML 5' sind dl, dt und dd einer strengeren Struktur unterworfen, weswegen dieser Ansatz in 'HTML 5' komplett entfällt. Immerhin gibt es dort ein Element section, was von so allgemeiner Bedeutung ist, daß es etwa für Strophen geeignet erscheint. Strophenzeilen haben dann allerdings immer noch kein passendes Element, es bleibt hier beim div. Anzumerken ist dabei, daß das in Arbeit befindliche 'HTML 5.1' vorsieht, daß section immer mit einer Überschrift beginnen sollte, was eine Verwendung für Strophen auch ausschließen würde. Problematisch schon für die übliche visuelle Darstellung ist, daß section genau wie div präsentiert wird. Ohne zusätzliche Stilvorlagen hat hier 'HTML 5' also eine Mogelpackung produziert, die bereits für die visuelle Darstellung zur Strukturbildung praktisch unbrauchbar ist. Der Leser der Präsentation bekommt von der Struktur section außer einem neuen Zeilenanfang nichts mit, es gibt also gegenüber div keinen dramatischen Vorteil für die Mehrheit der Leser.

Bewegen wir uns von den klassischen Gedichten weg, so wird es zunehmend interessanter, wie Leerraum links und rechts vom Zeileninhalt angeordnet ist. Das ist mit den bisherigen Elementen kaum zu erreichen, ein festes Leerzeichen kann aber mit dem Zeichen   (oder, wenn vordefinierte Entitäten interpretiert werden, was bei gängigen Darstellungsprogrammen bei aktuellen Versionen von XHTML nicht mehr der Fall ist:  ) angegeben werden, was auch bei obigen Konstruktionen zwischen Worten statt des normalen Leerzeichens sinnvoll sein kann, wenn verhindert werden muß, daß eine Verszeile umgebrochen wird. Eine alternative Möglichkeit, die auch in der Spezifikation kurz angesprochen wird, ist die Verwendung des Elementes pre. pre kann mit einigen Ausnahmen inzeilige Elemente enthalten, darin im Quelltext vorhandene Leerzeichen und Zeilenumbrüche sollen von visuellen Darstellungsprogrammen beibehalten werden. Was aber tun die anderen? Macht ein Vorleseprogramm entsprechende Pausen? Wäre das bei anderen vorformatierten Textarten sinnvoll? Vermutlich eher nicht, also ist auch pre nicht die ideale semantische Lösung. Zudem fehlt dann immer noch ein inhaltlich sinnvolles Element, um möglicherweise vorhandene Zeilen als solche auszuzeichnen, da könnte dann span verwendet werden.

Alternativ kann auch so vorgegangen werden, daß Strophen und Verzeilen wie in obigen Beispielen verwendet werden und nur innerhalb einer Verszeile ein Element pre verwendet wird, um die Struktur innerhalb einer Zeile zu erhalten, bei zahlreichen einfacheren Beispielen mag das bereits reichen.


  

Sie - Sonne

   heiß
 zu heiß
nur nicht zu nah:
     schmerz oder lust des verbrennens
  kreisen nur kreisen
          können
  planet und sonne
anziehend heiß
unentrinnbar kreisen
                    müssen
gewollt aber
  wortlos heiß
(gefühl)
unerreichbar nur sehen
  einsames kreisen
heiß
Olaf Hoffmann
Espelkamp
1985-09-26
]]>

Bisweilen gibt es in Gedichten weitere notwendige Auszeichnungen, für die (X)HTML teils auch eigene und geeignete Elemente hat, die passen können. Ein Teil des Reizes von Gedichten besteht ja auch in der Variationsbreite von Interpretationen nicht eindeutiger Inhalte. Da wäre ein Zuviel an Auszeichnung sogar kontraproduktiv. Immerhin, sich als Autor darüber Gedanken zu machen, was wirklich gemeint ist und wie das auszuzeichnen ist, kann auch die Qualität von Texten drastisch verbessern, daher ist auch hier klar im Vorteil, wer in der Lage ist, seine Texte selbst auszuzeichnen und in einer Beschreibungssprache wie (X)HTML zum Ausdruck zu bringen.



  

Sprachecken legen kurze Brände

Dr. Olaf Hoffmann
Hannover
2001-02-09
Ich mag keine Grütze singen
kein Gnom kann meine Scheine gilben
doch die Wachtel mag's mit Speck
viele Lieder kannst du mir verschweigen.
Ich gehe nicht!
Zieh nur mit den Wolken fort!
kein Hahn kann den Kummer kühlen
doch schöner wär es schon gewesen
Mir ist wie Girren im Juli
hör' ich dein Kehlchen schwelgen
Froh war ich nur mit Gnomenspeck
doch du magst auch ihre gelbe Grütze
Weh, Weh! mir!
Eins kann's nicht sein
ich zweifle an der lichten Stimmung
keine Wut mag sich zur andern fügen
]]>

Obiges Beispiel als komplettes XHTML-Dokument inklusive CSS.
Hier wird davon ausgegangen, daß die dt die Verszeilen enthalten, was ja auch plausibel ist, wenn das dl eine Strophe ist. Dies Vorgehen ist praktisch schon ganz effektiv, wobei die Bedeutung einer dl-Liste zwangsläufig wieder etwas verbogen wird, was aber letztlich bei (X)HTML derzeit unvermeidbar ist.

Ein generelles Problem der graphischen Darstellung von Gedichten ist es, Zeilen eindeutig als solche zu kennzeichnen, wenn der horizontale Platz nicht ausreicht, um eine Zeile wirklich in einer Zeile unterzubringen, wenn also innerhalb einer Verszeile aus Platzgründen umgebrochen werden muß. Da zudem der horizontale Platz dem Autor nicht bekannt ist, ist es wünschenswert, Verszeilen eindeutig als solche zu kennzeichnen. (X)HTML bietet dafür leider keine eindeutigen Möglichkeiten. Daher kann etwa folgendes CSS sinngemäß verwendet werden (passend zu obigem Beispiel):


Wird eine Verszeile einer Strophe also umgebrochen, wird die zweite Textzeile etwas eingerückt. Alternativ könnte auch der erste Buchstabe einer Verszeile eine andere Größe oder Farbe bekommen. Da es bei einem vorgetragenen Gedicht solch Platzprobleme nicht gibt, tritt das Problem dort nicht auf, sofern eben eine Verszeile von einem eindeutig kennzeichnenden Element umgeben ist.

Die XHTML-Arbeitsgruppe des W3C hat einen »Arbeitsentwurf für das role-Attribut, mit welchem die Rolle oder Bedeutung von Elementen definiert werden kann, deren Bedeutung nicht anhand des Elementnamens erkennbar ist, wie das hier der Fall ist. Leider sind die vordefinierten Werte derzeit noch sehr begrenzt. Es gibt keine spezifische Liste von Werten etwa für Gedichte, diese müßte noch international einheitlich mit eigenem Namensraum definiert werden und wäre dann auch anderweitig mit vergleichbaren Attributen verwendbar.
Nun wird vermutlich der Wert des Attributes role eine Liste von sogenannten CURIEs sein. Wenn es nun, wie derzeit für die Struktur von Gedichten, keine vordefinierten Werte gibt, so kann man nunmehr auf LML oder ein anderes Format oder notfalls auf eine Quelle wie Wikipedia verweisen, um ein Element über das Attribut role in seiner semantischen Bedeutung zu definieren.

Ferner gibt es seit Oktober 2008 ein neues Profil »XHTML+RDFa, welches ebenfalls verwendet werden kann, um insbesondere über das Attribut property einem XHTML-Element eine exakte semantische Bedeutung zu verleihen. Der Ansatz verwendet ebenfalls CURIEs und kann somit ebenfalls mit LML und anderen Formaten semantisch angereichert werden.

In Version »SVG tiny 1.2 sind neben einigen anderen semantisch relevanten Attributen role und property bereits vorhanden. Somit ergibt sich auch dort bereits die Möglichkeit, das Problem mit diesen Attributen zu lösen. Wenn es in XHTML einmal spezielle Elemente für gedichtartige Strukturen geben sollte, wäre dieser Ansatz dann wieder redundant. Mittels des Attributes role kann man somit also wiederum in SVG auf die entsprechende Elementdefinition von LML mittels einer CURIE verweisen, um die Funktion eines graphischen Elementes festzulegen, welches Text repräsentiert. Für Elemente, die bereits in (X)HTML vorhanden sind, geht das natürlich ohnehin auch mit dem Format. Etwa hat (X)HTML ja einige Elemente mit semantischer Bedeutung für Prosa wie etwa den Absatz.

Gedichte mit SVG auszeichnen

Innerhalb von SVG tiny 1.1 steht für Text nur das Element text zur Verfügung, Ansonsten gibt es vor allem für Einzelzeilen das Element tspan. Mittels tref kann bereits vorhandener Text referenziert werden, textPath kann verwendet werden, um Text entlang eines Pfades auszugeben.

Die Strategie kann also darin liegen, für Strophen das Element text zu verwenden und für die Verszeilen darin tspan. Die anderen beiden Elemente kommen nur für besondere Effekte in Frage. Das Attribut class ist auch nicht in der Version SVG tiny 1.1 verfügbar, weswegen nur die Vollversion verwendet werden kann, um semantische Bedeutung in das Dokument zu bringen.

Da SVG ein Graphikformat ist, ist es sinnvoll, Breite und Höhe des Dokumentes in geeigneten Einheiten anzugeben, zudem das Attribut viewBox anzugeben, alles für das Element svg. Geeignete Maßeinheiten sind Prozent, em oder ex für Dokumente, die vor allem Text enthalten. Wird dann die im Dokument verwendete Schriftgröße sinnvoll auf die viewBox und die verwendete Einheit em oder ex abgestimmt, kann der Text in der vom Nutzer bevorzugten Schriftgröße angezeigt werden. Bei einer Angabe für Breite und Höhe von 100% wird das Dokument auf den Anzeigebereich ausgedehnt. Ist die Schrift dem Leser zu klein, kann dieser die Vergrößerungsfunktion des Darstellungsprogrammes verwenden, die für SVG explizit vorgesehen ist, um die Anzeige zu optimieren.

Gedicht 'Philosophie',
(Quelltext zum Gedicht 'Philosophie')

Ein Element title im Element svg wird genauso interpretiert wie das entsprechende Element in XHTML.
Innerhalb anderer Elemente notiert gibt es dem jeweiligen Fragment einen Titel, nicht zu verwechseln mit dem Attribut title in XHTML, welches eher einen Nutzungshinweis darstellt. Auch wenn die Darstellung bei einigen Programmen ähnlich ist, hat das Element eine andere Funktion. Ein Titel oder eine Überschrift ist kein Nutzungshinweis.

Zusätzlich steht das Element desc zur Verfügung, um eine zusätzliche Beschreibung anzugeben, was bei Textelementen natürlich weniger wichtig ist als bei rein graphischen Elementen.

Dekoratives ist in SVG natürlich einfacher und mit spektakuläreren Effekten möglich als in XHTML. Auch bei der Schriftart kann bei Bedarf präziser vorgegangen werden und es kann eine eigene SVG-Schriftart verwendet werden.
Mittels der Eigenschaft text-anchor mit den Werten begin, end, middle kann Text relativ zur angegebenen Position angeordnet werden.

Bestimmte Effekte aus dem Bereich konkreter Poesie oder von Visuelltexten sind mit XHTML auch mit CSS nicht erreichbar, mit SVG aber meist kein Problem. Als Beispiel habe ich einen eigenen Visuelltext von mir erneut mit SVG umgesetzt, welchen ich erstmals 1985 mit einer mechanischen Schreibmaschine und Kopierpapier entworfen und realisiert habe. Jahre später kam eine erneute Umsetzung mit dem Computer, damals mit einem Atari und dem Programm Signum, mit dem man leicht eigene Schriftarten erzeugen kann, in diesem Falle für gespiegelte Buchstaben und teilweise unsichtbar werdende Buchstaben. Mit SVG ist die Umsetzung jedenfalls wesentlich einfacher und die Lesbarkeit des Textes bleibt komplett erhalten. Visuelltext 'Spiegel',
(Quelltext zum Visuelltext 'Spiegel')

Durch die Animierbarkeit von SVG bietet sich gegenüber XHTML auch ein Vorteil bei der Auszeichnung von Gedichten, es ist gezielt möglich, durch ein- und ausblenden von Verszeilen einen Rhythmus vorzugeben, dem Erzählbogen einen definierten Zeitablauf zu geben, auf den aktuellen Zeitpunkt der Erzählung zu konzentrieren. Allerdings ist dabei zu bedenken, daß Menschen unterschiedlich schnell lesen, weswegen die Animation angemessen langsam ablaufen sollte, um den Leser nicht zu überfordern.

Die typische Lesegeschwindigkeit bei Alphabetschriften (die also zum Beispiel lateinische Buchstaben verwenden) liegt bei 120 bis 300 Wörtern pro Minute oder zwei bis fünf pro Sekunde, wobei für Wörter mit mehr als sagen wir mal acht Buchstaben etwas länger gebraucht wird, weswegen es da vorteilhaft ist, diese als entsprechend mehr Wörter zu kalkulieren. Dafür brauchen Wörter mit maximal drei Buchstaben etwas weniger Zeit, bei einer guten Mischung kann sich das ausgleichen, der Leser ist andererseits aber vermutlich für kleine Verschnaufpausen dankbar, weswegen kurze Wörter ruhig mit der vollen Zeit für ein normales Wort gerechnet werden können. Diese Abschätzungen implizieren natürlich, daß der Text hinsichtlich Schriftgröße und -art optimal lesbar ist, sonst muß die Leserate entsprechend korrigiert werden, je nach Aufwand für den Leser auf die Hälfte oder ein Drittel, besser ist es natürlich, optimale Lesbarkeit von vorne herein zu gewährleisten. Wenn der Text selbst sich bewegt, ist er natürlich auch schwieriger zu lesen, weswegen die Bewegung erneut etwas langsamer ausfallen sollte als bei statischem, optimal lesbarem Text zum Lesen notwendig wäre.

Eine alternative statische Variante kann hinsichtlich der Zugänglichkeit in der Praxis auch immer hilfreich für den Leser sein. Gucken wir uns das anhand einer Variation zu einem bekannten Haiku von Matsuo Basho an:
Haiku 'Frosch und Weiher'

Wie zu sehen, können text und tspan einzeln positioniert werden, was bei Gedichten sehr nützlich sein kann, wo die Anordnung einzelner Worte oder gar einzelner Glyphen wichtig wird, denn es können nicht nur die x- und y-Koordinaten des ersten Glyphen eines Elementes positioniert werden, sondern mittels jeweils einer Liste alle Glyphen.
Da einige Darstellungsprogramme Animationen noch nicht umsetzen können, ist das Dokument so formuliert, daß das Gedicht ohne Animation immer sichtbar ist. Für einen Haiku ist die Animation des Hintergrundes eventuell etwas heftig, immerhin weist das ebenfalls einen relativ hohen Abstraktionsgrad auf und eine gewisse Assoziation zum Thema, daher eine nette Ergänzung, die in SVG leicht zu erstellen ist. Bewegung lenkt aber ab, daher kann da auch viel falsch gemacht werden, wenn das schmückende Beiwerk die Aufmerksamkeit vom Thema ablenkt. Daher ist es unbedingt notwendig, daß animiertes Beiwerk direkt zum Thema Bezug hat und nicht vom eigentlichen Gedicht ablenkt.

Auch verwandte Textformen wie konkrete Poesie oder Visuelltexte können damit gut umgesetzt werden:
Visuelltext 'Warum nicht?',
(Quelltext zum Visuelltext 'Warum nicht?')

Nun, SVG hat viele Möglichkeiten der Animation, mit denen man vergnüglich experimentieren kann, hier werden die Zeilen etwa mit animateMotion über den Anzeigebereich bewegt:
Gedicht 'Warum der Feldalp keine Radfahrer mehr verfolgt',
(Quelltext zum Visuelltext 'Warum der Feldalp keine Radfahrer mehr verfolgt')
Gedicht 'Warum der Feldalp keine Radfahrer mehr verfolgt' Variante 2,
(Quelltext zum Visuelltext 'Warum der Feldalp keine Radfahrer mehr verfolgt' Variante 2)

Es gibt natürlich zahlreiche Möglichkeiten, animateMotion anzuwenden, auch animateTransform kann eine gewisse Kurzweil mit sich bringen:
Gedicht 'Kaktus und Maus',
(Quelltext zum Visuelltext 'Kaktus und Maus')
Gedicht 'Kaktus und Maus' Variante 2,
(Quelltext zum Visuelltext 'Kaktus und Maus' Variante 2)

Mittels textPath kann Text auch entlang einer Kurve angeordnet werden - die Position kann optional auch animiert werden:
Gedicht 'Was der Knabe zuhause verschwieg',
(Quelltext zum Visuelltext 'Was der Knabe zuhause verschwieg')
Gedicht 'Was der Knabe zuhause verschwieg' Variante 2,
(Quelltext zum Visuelltext 'Was der Knabe zuhause verschwieg' Variante 2)

Bei längeren Gedichten kann es sinnvoll sein, nicht den gesamten Text auf einmal einzublenden, da bietet es sich an, das Attribut viewBox zu animieren. Alternativ hat der Nutzer bei einem komplett eingeblendeten Text immer die Möglichkeit der Vergrößerung, dabei ist vom Autor dann nur darauf zu achten, daß die Textbreite nicht zu groß wird, damit ähnlich wie bei XHTML nur in senkrechter Richtung gerollt werden muß:
Gedicht 'Streit um Worte',
(Quelltext zum Visuelltext 'Streit um Worte')
Gedicht 'Streit um Worte' Variante 2,
(Quelltext zum Visuelltext 'Streit um Worte' Variante 2)

Wie es bei einigen Worten Lautmalerei gibt, etwa bei Gong, bellen, Knall, so kann natürlich auch die Animation eines Wortes oder eines ganzen Gedichtes seiner Bedeutung entsprechen oder gewissen Aspekte davon widerspiegeln:
konkrete Poesie oder Visuelltext 'Entropie',
(Quelltext zu 'Entropie').
Der Reiz des Spielchens liegt darin, daß die Bewegung der Buchstaben 'Entropie' einerseits eindeutig zufällig aussieht, andererseits aber auch Ordnungsmerkmale aufweist, die nicht zu einer komplette Unordnung passen.
Man beachte, daß es auch im Universum zwei gegenläufige entropische Effekte gibt. Die kinetische Energie zwischen Atomen und Molekülen in Gasen sorgt für eine zunehmende Unordnung, während die permanent attraktive Gravitation und andere elementare Kräfte die Ordnung wieder erhöht, so gibt es innerhalb des scheinbaren Chaos zunehmende Ordnung und umgedreht. Ordnungsstrukturen der Gravitation sind natürlich Sonnensysteme, Galaxien und noch größere Strukturen, während elektromagnetische Kräfte eher die Chemie bestimmen, Kernkräfte den Aufbau der Kerne und alle zusammen etwa die Dynamik einer Sonne. Die Unordnung wird dort größer, wo diese Kräfte gegenüber der kinetischen Energie der beteiligten Teilchen keine große Rolle spielen.
Ein ideales Gas ist ein Prototyp für ein System, in dem es praktisch nur die kinetische Energie der Teilchen gibt und keine Kräfte zwischen ihnen.
Um Ähnliches zu erreichen, müßte hier für jeden Buchstaben ein tspan verwendet werden, welches getrennt von den anderen animiert wird.

Formate mischen

Nun können Formate auch gemischt werden, dafür gibt es je nach Absicht recht verschiedene Möglichkeiten, etwa SVG als Hintergrundbild, SVG in einem object-Element, entweder als externe Datei oder mit dem Pseudoprotokoll data eingebunden oder direkt durch Das Mischen von XHTML und SVG.

Ein SVG-Bild kann als CSS-Hintergrundbild für ein XHTML-Dokument verwendet werden. Mit modernen Darstellungsprogrammen wie etwa Opera 9.5x kann das nachvollzogen werden. Da ältere Programme SVG nicht oder zumindest nicht als Hintergrundbild interpretieren, ist es notwendig, eine passende alternative Hintergrundfarbe anzugeben: Vegetarisches Adventsgedicht mit einfachen Farbverläufen als Hintergrund.

Das Einbetten von SVG in XHTML mittels object ist die traditionelle Methode und eignet sich besonders, wenn das eingebettete Dokument einen klar definierten eigenständigen Status hat, etwa wenn innerhalb eines anderweitigen Textes ein solches Dokument zusätzlich angeboten werden soll. Bei älteren Darstellungsprogrammen wird der Inhalt von object als alternative Darstellung verwendet, wenn das referenzierte Dokument nicht dargestellt werden kann. Haiku - ein Beispiel.
Gezielt wird hier das object in ein div der Klasse Gedicht eingebunden, um den Inhalt als Text beziehungsweise Gedicht zu kennzeichnen, weil object allein nichts über die inhaltliche Funktion aussagt, sondern lediglich eine technische Möglichkeit zur Einbindung anderer Formate bereitstellt, was semantisch allein für ein Dokument noch keinen Sinn ergibt. (X)HTML bietet keine bessere Möglichkeit, auch der Arbeitsentwurf für 'HTML5' bietet nur besondere Elemente für Audio, Video und dynamisch erstellbare Skript-Graphik, was hier alles auch nicht weiterhilft.

SVG kann auch in XHTML direkt eingebettet werden, in dem Falle entfällt allerdings die XHTML-Alternative, da von Anfang an davon ausgegangen wird, daß der Inhalt darstellbar ist. Diese Methode kann allerdings bei interaktiv und dynamisch verarbeiteten Formularen nützlicher sein als bei Gedichten. Zu der Methode gibt es auch einen speziellen Dokumenttyp, mit dem zudem auch noch MathML integriert werden kann, was besonders bei technischen und wissenschaftlichen Artikeln sehr nützlich sein dürfte, wenn diese drei Formate gleichzeitig verfügbar sind. Bei den neuesten Versionen von Opera (ab 9.50), bei den Geckos und bei Amaya ist dies inzwischen tatsächlich auch nachvollziehbar. Hier nur ein zum Thema passendes Beispiel mit einem animierten Gedicht samt Begleittext in XHTML: 'Warum der Feldalp keine Radfahrer mehr verfolgt', Variante 3.
Die 'svg:'-Prefixe sind hier nur hinzugefügt, um den Validator zu befriedigen, tatsächlich ist es auch in Ordnung, nur beim svg-Element selbst den Namensraum ohne Prefix anzugeben, was sich dann auf alle Kindelemente bezieht, das erspart eine Menge Schreibarbeit, die das Einbinden von solchen Fragmenten sonst etwas unhandlich macht.

Gedichte mit DAISY auszeichnen

Nun gibt es weitere Auszeichnungssprachen wie »DAISY, »FictionBook oder »DocBook, die allerdings auch nicht alle Lücken schließen und eher für ganze Bücher ausgelegt sind.
Ein Beispiel für ein Gedicht im Format DAISY: 'keine Zauberei'.
Wenn davon ausgegangen wird, daß viele Darstellungsprogramme DAISY gar nicht kennen, ist es wichtig, eine komplette Stilvorlage mitzuliefern, die alle im Dokument vorkommenden Elemente sinnvoll dekoriert.
Man beachte auch, daß die Verwendung von Dublin Core Metainformationen in dem Beispiel kompatibel ist mit der Methode von (X)HTML.

Insbesondere DAISY kann auch aufgefaßt werden als eine mit XHTML weitgehend kompatible Erweiterung, weswegen man auch ein zusammengesetztes Dokument verwenden kann, wo im Wesentlichen XHTML verwendet wird und nur dort, wo Elemente fehlen, Fragmente in DAISY formuliert verwendet werden. Eine solche Erweiterung ist bei HTML übrigens nicht möglich.
Hier ist es wieder wichtig, die Erweiterungen mit einer Stilvorlage sinnvoll zu dekorieren, weil man von dem meisten Darstellungsprogrammen für XHTML derzeit noch nicht erwarten kann, daß die DAISY sinnvoll interpretieren können. Beispiel für ein Gedicht, zusammengesetzt aus den Formaten DAISY und XHTML: 'Sprachecken legen kurze Brände'.
Man beachte, daß zum einen der Validator die XHTML-Version nicht richtig erkennt, aber ohnehin nicht in der Lage ist, zusammengesetzte Dokumente korrekt zu validieren. Im Bedarfsfalle müßte man dies für jedes Fragment in einer anderen Sprache einzeln tun.
Mit der Version XHTML+RDFa kann nun auch DAISY genutzt werden, um insbesondere die semantische Bedeutung von Elementen näher zu spezifizieren, dazu wird dann nicht mehr DAISY direkt verwendet, sondern es wird nur noch mit dem Attribut property die Definition des entsprechenden Elementes referenziert. Für die Präsentation sorgt dann wieder die passende Stilvorlage. Bedingt durch den etwas umständlichen Attributansatz von XHTML+RDFa bläht sich der Quelltext zwangsläufig merklich auf, der Vorteil liegt darin, daß auch technisch einfacher gestrickte Darstellungsprogramme mit XHTML allein besser zurechtkommen als mit einem Dokument, welches aus mehreren Formaten zusammengesetzt ist. 'Sprachecken legen kurze Brände' (XHTML+RDFa-Variante).

Gedichte mit LML auszeichnen

Aufgrund der Lücken bei anderen Formaten ist bei mir, wie weiter oben schon erwähnt, die Idee aufgekommen, eine neue Auszeichnungssprache zu entwerfen, die sich des Problems annimmt, wie man Texte semantisch qualitativ hochwertig auszeichnet. Das sieht dann wie folgt aus: LML. Das paßt gut zu dem Ansinnen, das Attribut role in XHTML, SVG und vielleicht auch noch anderen Sprachen einzuführen. es paßt ebenso zu der neuen Version XHTML+RDFa. Dann ist in diesen Sprachen nicht mehr unbedingt ein erschöpfender Satz von semantisch relevanten Elementen notwendig. Dies Problem kann dann von einer spezialisierteren Sprache behandelt werden, die diese Aufgabe übernimmt. Entweder durch die ausschließliche Verwendung, direktes Mischen der Formate oder eben nur durch die Attribute role und insbesondere property kann damit die semantische Aussagefähigkeit von Dokumenten dramatisch verbessert werden. Im Folgenden gibt es eine Liste mit Beispielen. Viel zu diskutieren ist da eigentlich nicht, weil die Probleme eigentlich schon innerhalb der Sprachebene gelöst sind, LML muß dann eben nur einfach verwendet werden.
Beispiel:

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet href="lmlmetahover.css" type="text/css" title="LML default" ?>
<?xml-stylesheet href="lmlBase.css" type="text/css" title="LML meta off" alternate="yes" ?>
<?xml-stylesheet href="lmlmetastatic.css" type="text/css" title="LML meta on" alternate="yes" ?>
<literature version="1.0" xmlns="http://purl.oclc.org/net/hoffmann/lml/" xml:lang="de">
<meta>
<title>keine Zauberei</title>
<desc>
<p>Ein Sonett von <creator>Dr. Olaf Hoffmann</creator>,
<created>1999-06-20/21</created>
zum Thema Magie und Zauberei.</p>
</desc>
<genre>sonnet</genre>
<tune>fun irony</tune>
<impressum>
<address>
<l>Dr. Olaf Hoffmann</l>
<l>30167 Hannover</l>
<l>Deutschland/Germany</l>
<l />
<l>email:
&#100;&#114;&#46;&#111;&#46;&#104;&#111;&#102;&#102;&#109;&#97;&#110;&#110;&#64;&#103;&#109;&#120;&#46;&#100;&#101;
</l>
</address>
</impressum>
<license>
</license>
</meta>

<poetry>
<poem>


<h>keine Zauberei</h>
<hs>
von <name>Olaf Hoffmann</name>
</hs>


<st>
<sl>doch dem Magier ist das einerlei</sl>
<sl>und find' das auch noch schick</sl>
</st>
<st>
<sl>genau hier vor unseren Augen</sl>
<sl>und wagen das Wunder kaum zu glauben</sl>
</st>
<st>
<sl>und dann ist die Kugel wieder da</sl>
<sl>und der Trick ist immer noch nicht klar</sl>
<sl>der Magier geheimnisvoll lacht</sl>
</st>
<st>
<sl>doch dieser Trick der ist nur virtuell</sl>
<sl>und geht nicht generell</sl>
</st>

</poem>
</poetry>

</literature>

Weitere Beispiele: