Hypertext Transformation Language (HTTL)

HTTL ist eine spezialisierte Programmiersprache zur Erzeugung von Hypertextsichten auf lineare, XML-annotierte Dokumente. Im Gegensatz zu anderen Transformationssprachen wie z.B.  XSLT abstrahiert HTTL sowohl von der Quellsprache (d.h., von der verwendeten DTD) als auch von der Zielsprache (z.B. HTML). HTTL ist eine deklarative, regelbasierte Sprache.

Die Hypertext Transformation Language erlaubt die Generierung sehr unterschiedlicher Hypertextsichten, z.B. die Erzeugung von Modulen verschiedener Granularität, 1:n-Links, prozedural und semantisch typisierte Links. Im Falle von 1:n-Links können die Linkziele nach verschiedenen Kriterien flexibel geordnet werden (Ranking), dies verwenden wir beim terminologiesensitiven Linking .

HTTL stellt Sprachkonstrukte für verschiedene Hypertextualisierungsoperationen bereit:

  • Segmentierung: die Zerlegung eines linear vorliegenden XML-Dokuments in Hypertextknoten in Module.
  • Linking: Verlinkung der so entstandenen Module und von anderen, XML-annotierten Textstellen.
  • Erzeugung von Indexknoten (z.B. Glossare und Inhaltsverzeichnisse).
  • Filteroperationen über Links und Inhalten.

Zur Zeit sind nur die ersten beiden Hypertextualisierungsoperationen – Segmentierung und Linking – implementiert.

Die Kriterien zum Segmentieren und Linken werden oft (informell) in Form von Konversionsregeln ausgedrückt, z.B.:

  • Mache aus jedem Paragraphen einen Hypertext-Knoten.
  • Mache aus jedem Paragraphen, der nicht in eine Listenumgebung eingebettet ist, einen Hypertextknoten.
  • Setze einen Link von jedem Vorkommen eines Fachterminus zu seiner Definition. Wenn es mehrere Definitionen gibt, erzeuge einen 1:n-Link und führe ein Ranking durch.
  • Setze einen Link von jeder Anapher am Modulanfang zu ihrem Antezedens.

Solche Konversionsregeln – die oft Teil einer umfassenderen Konversionsstrategie sind (siehe Projektbeschreibung ) – können mit HTTL formalisiert werden.

Wozu braucht man dafür eine spezielle Programmiersprache? Konversion von Text in Hypertext kann natürlich auch erreicht werden, indem die Regeln einer Konversionsstrategie in einer gängigen Programmiersprache (z.B. in XSLT) direkt implementiert werden. In der ersten Phase des HyTex-Projekts wurde dies auch gemacht. Dieser Ansatz ist insbesondere dann sinnvoll, wenn die Zielsprache fest ist (z.B. HTML), wenn die Zielsprache die gewünschten Hypertext-Funktionalitäten unterstützt und die Konversionsregeln nicht mehr verändert werden sollen. Im HyTex-Projekt trifft dies jedoch nur zum Teil zu: HTML unterstützt z.B. keine 1:n-Links oder aufklappbare Inhaltsverzeichnisse, diese müssen – z.B. mit JavaScript – auf relativ aufwändige Weise nachgebildet werden. Mit  XLink lassen sich viele der von uns benötigten Linking-Funktionalitäten zwar ausdrücken, doch heutige Web-Browser unterstützen XLink nur in rudimentärer Form. So war klar, dass wir – auf der technischen Seite – mit einer Kombination verschiedener Web-Technologien arbeiten müssen. Auf der konzeptionellen Seite wollten wir zudem noch mit verschiedenen Hypertextualisierungsstrategien experimentieren, was jedesmal relativ aufwändige Anpassungen von Programmiercode erfordert.

Auf der Suche nach einer flexibleren Lösung entstand HTTL. Mit HTTL können automatisch verschiedene Ausgabeformate erzeugt werden, bisher HTML kombiniert mit JavaScript und CSS sowie XLink. Prinzipiell kann HTTL so weiterentwickelt werden, dass weitere Ausgabeformate, wie z.B. HTML in Kombination mit eingebettetem PHP-Code, erzeugt werden können. Ein HTTL-Benutzer kann zwischen diesen Techniken wählen, muss sie aber nicht beherrschen, da ihm abstrakte Konstrukte wie z.B. 1:n-Links zur Verfügung gestellt werden. Das Ziel ist, eine spezialisierte Transformationssprache zu entwickeln, die für Hypertext-Experten intuitiver und schneller zu erlernen ist als eine universelle Programmiersprache.

Der Ansatz hat weitere Vorteile: Um Konversionsstrategien zu testen oder ändern zu können, müssen nur in HTTL formulierte Regeln geändert werden – kein Quellcode, der schwieriger zu warten ist. Eingabe- und Ausgabeformate können gewechselt werden, ohne die Regeln selbst zu ändern.

HTTL ist somit ein Werkzeug, das die schnelle Entwicklung und das Testen verschiedener Hypertextsichten unterstützt, sowie die Entwicklung speziell auf ein Szenario angepasster Hypertextsichten. Damit ist das Hauptanwendungsgebiet die Hypertextforschung. Andere mögliche Anwendungsgebiete sind das Cross-Media-Publishing, da die Generierung verschiedener Ausgabeformate unterstützt wird, sowie die "Visualisierung" von XML-Daten durch Techniken wie Segmentierung und Linking.

Bei der Implementierung kommen verschiedene XML-basierte Technologien zum Einsatz: XSLT, XPath, Schematron, und XLink.

Die Entwicklung von HTTL ist Ziel des Dissertationsprojekts von  Eva Anna Lenz . Genaueres wird in Kürze in einer Projektpublikation nachzulesen sein.