Dr. O. Hoffmann
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
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.
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/21wie jeder weiß, gibt es keine Zauberei
doch dem Magier ist das einerlei
macht unbekümmert seinen Trick
und find' das auch noch schickläßt eine Kugel verschwinden
genau hier vor unseren Augen
die Zuschauer können den Trick nicht finden
und wagen das Wunder kaum zu glaubenund dann ist die Kugel wieder da
und der Trick ist immer noch nicht klar
der Magier geheimnisvoll lachtdoch 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 HoffmannHannover1998-08-28Zwar ist der Tag erwachtDoch keine Sonne lachtDer Himmel ist grauDoch du bist schlauTrägst die Sonne im HerzenBist fast immer am ScherzenDein Lachen tut mir gutDeine Worte machen mir MutIch geb dir einen KußWeil ich einfach mußDer ist zwar nur virtuellAber für dich ganz speziellMeine Liebe, ich denk an dichSag, 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 HoffmannHannover1993-08-01Aus 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 HoffmannEspelkamp1985-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.
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.
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.
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).
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: dr.o.hoffmann@gmx.de </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:
property
-Werte von LML)property
-Werte von LML)