Technische RealisierungDie 20 Texte des HyTex-Demonstrationsprototyps wurden auf drei verschiedenen Ebenen (logische Textstruktur, Definitionen und Termverwendungsinstanzen, Kohäsionsstrukturen, siehe Das Fachtextkorpus und seine Aufbereitung) mittels XML annotiert. Dies geschah größtenteils manuell. Die so erfassten Textstrukturen können jederzeit geändert und anschließend vollautomatisch in ihre webbasierte Form (HTML mit Javascript-Code) transformiert werden. Dies geschieht im Wesentlichen in zwei Schritten:
Wir haben uns dazu entschieden, jedes Unifikat in ein einziges HTML-Dokument zu übersetzen (anstatt es aufzuteilen und pro Modul ein HTML-Dokument zu generieren). Mittels Javascript werden Sichten auf das Dokument generiert, die es erlauben, in der Regel eines, bei der Sichtfelderweiterung aber auch mehrere Module gleichzeitig anzuzeigen. Diese clientseitige Lösung hat gegenüber einer serverbasierten (z.B. mit Perl oder PHP) Vorteile:
Allerdings erlaubt die eingeschränkte Funktionalität von Javascript keine interaktiven Funktionalitäten wie z.B. Textsuche. Zudem funktioniert der "Back"-Button des Browsers nicht wie erwartet, da Browser zwar die Dokumenthistorie, nicht aber die Modul-Historie speichern (weil diese eben nur Sichten sind). Das TermNet (Glossar) zu den Domänen Texttechnologie und Hypertext wurde intellektuell mit Unterstützung eines Tools zur Wissensmodellierung (K-Infinity) aufgebaut und kann jederzeit in eine XML Topic Map exportiert werden, auf der anschließend Inferenzen durchgeführt werden. Die um Inferenzen angereicherte Topic Map wird dann - wie das Textkorpus - durch XSLT-Skripte in das HTML-Zielformat übersetzt. Auch diese Schritte können jederzeit automatisch neu durchgeführt werden, wenn das Wissensnetz geändert wird. Mehr zum TermNet und seiner Verarbeitung Um nicht bei jeder Änderung an den Ausgangsdateien (die drei Annotationsebenen jedes Textes und das Wissensnetz als XML Topic Map) alle HTML-Dateien neu berechnen zu müssen, wurde das GNU-Tool make umfassend eingesetzt. Beim Start überprüft es, welche der Ausgangsdateien geändert wurden und führt nur diejenigen Transformationen durch, die nötig sind, um den Demonstrationsprototyp zu aktualisieren. Zurück zu den allgemeinen Erläuterungen |