Allgemeines zur Technik der Edition
Die Edition entstand vollständig unter Nutzung Web-basierter Werkzeuge, was einerseits der räumlichen Verteilung des Projektteams entgegenkam, andererseits aber der Natur des angestrebten Ziels – nämlich einer Online-Edition – entsprach.
Die Programmierung des Backends sowie des Frontends (also der Editions-Website, auf der Sie sich im Moment befinden) erfolgten bzw. erfolgen komplett in PHP. Neben dem Aspekt der prinzipiellen Web-Orientierung dieser Sprache fiel die Entscheidung für PHP auch aus dem Grund, dass dank der starken Verbreitung von LAMP-Servern eine Nachnutzung der entstandenen Software-Komponenten im Fall der Nutzung von PHP einfacher möglich ist als bei manch anderer Sprache.
Daneben kommt eine SQL-Datenbank zum Einsatz, bei der es sich auf diesem Server konkret um MySQL handelt; allerdings wird auch SQLite unterstützt (einige andere DBMS – etwa PostgreSQL – ließen sich problemlos ergänzen, da die Datenbank-Kommunikation auf Basis von PHPs PDO-Extension implementiert ist).
Auch wenn Sandrarts Text in XML erfasst wurde (TEI P5 Lite), verwendet die Edition keine native XML-Datenbank – vielmehr werden alle relevanten Informationen aus dem Quelldokument extrahiert und in die relationale Datenbank überführt. Auch diese Entscheidung fiel nicht zuletzt im Hinblick auf eine einfache Nachnutzung der Technik; darüber hinaus stehen auf diesem Weg aber auch die erforderlichen Funktionalitäten bzw. Abfragemöglichkeiten in effizienter Form zur Verfügung, so dass eine XML-Datenbank für die Zwecke unserer Edition nicht einmal Vorteile mit sich bringen würde.
Open Source
Seit Frühjahr 2012 stehen zwei Software-Komponenten, die wesentlich für diese Edition sind, als Open Source Software zur Verfügung:
- XMLTransformer ist eine PHP-Klasse für Transformationen von XML-Dokumenten, die für das gesamte XML-Rendering in dieser Edition verwendet wird. (Diese Edition ist vollständig frei von XSL-T!)
- TEIShredder – Eine Sammlung von PHP-Klassen für »Shredding« und Indizierung von TEI-Dokumenten sowie der Abfrage der extrahierten Information. Alle Darstellungs- und Suchfunktionalitäten in dieser Edition sowie in der Edition der lateinischen Ausgabe nutzen dieses Paket.
Code, Dokumentation, Beispiele und Unit-Tests für beide Komponenten finden Sie unter den entsprechenden Links auf GitHub.