Note: This is a description of Tesla in german. For an introduction in english have a look at the FAQs, or the Trac Wiki for user and development documentation. A bundled pre-release version can be downloaded from ftp://ftp.uni-koeln.de/tesla/release. Alternatively, if you already use Eclipse for development, visit Tesla's Update Site at http://ftp.uni-koeln.de/tesla/updatesite.
Überblick
Tesla (Text Engineering Software Laboratory) ist ein virtuelles Labor, das eine grundlegende Infrastruktur für die Verarbeitung beliebiger textueller Daten bereitstellt. Tesla unterstützt dabei einerseits die Entwicklung neuer Werkzeuge (Komponenten) für die Prozessierung von Texten, wie auch andererseits die Komposition vorhandener Komponenten für die Durchführung komplexer Analysen auf textuellen Daten. Tesla ist eine Umsetzung von weiterentwickelten Konzepten aus SEMALD (System zur Evaluierung multipler Algorithmen auf linguistischen Daten), welches im Rahmen des von der Fritz Thyssen Stiftung geförderten Projektes SemGen entstand.
Tesla ähnelt Systemen für die Einbettung linguistischer Softwarekomponenten (Software Architecture for Language Engineering, SALE), wovon als prominenteste Vertreter GATE und UIMA zu nennen sind; allerdings bestehen sowohl technologische wie auch konzeptuelle Unterschiede zu diesen Systemen: Technologisch zeichnet Tesla die konsequente Nutzung von Java-EE Technologien in Verbindung mit einer Integration der graphischen Benutzeroberfläche in das Eclipse Framework aus. Dies ermöglicht eine Verteilung der Prozessierungsarbeit auf mehrere Rechner innerhalb eines Netzwerks sowie die Integration hochwertiger Werkzeuge für die Entwicklung textprozessierender Komponenten. Der gewichtigste konzeptuelle Unterschied besteht in der Möglichkeit, jede beliebige in Java implementierbare Datenstruktur mit selbst spezifizierten Zugriffsmethoden als Austauschformat zwischen den Komponenten zu nutzen. Diese Freiheit wird gewährleistet durch ein leistungsfähiges Komponentenmodell, in welchem die Konzepte der modernen Softwaretechnologie (komponentenbasierte Entwicklung, Design Patterns) genauso Anwendung finden wie die der moderen Sprachtechnologie (engl. Language Engineering;Trennung von Signal und Annotation, Typisierung von Komponenten).
Experimente in einem computerlinguistischen Labor
In naturwissenschaftlichen und technischen Laboratorien werden Experimente durchgeführt. Ein Experiment ist eine spezielle Versuchsanordnung, der Untersuchungsobjekte ausgesetzt werden, entweder um die kausale Beziehungen aufzudecken (in naturwissenschaftlichen Experimenten) oder um bestimmte Ergebnisse zu erzielen (in technischen Experimenten). Tesla funktioniert analog: Die Untersuchungsobjekte sind sprachlicher Art, die Versuchsanordnung besteht aus in Reihe geschalteten oder parallelisierten Komponenten, die sprachliche Signale verarbeiten oder anreichern. Die Ergebnisse der Experimente werden in einer Datenbank mit definierten Ein- und Ausgabeschnittstellen protokolliert.
Das Schaubild zeigt einen möglichen Versuchsaufbau im Text Engineering Software Laboratory: Die Ausgangstexte aus einem Korpus werden durch die erste Komponente tokenisiert, dann wird durch die nächste Komponente ein Index über alle Tokens gebildet. Die Ergebnisse von Tokenisierer und Indexer werden für eine Kollokationsanalyse in der letzten Komponente genutzt. Jede Komponente hat eine spezifische Ausgabeschnittstelle ("Adapter"), die von anderen Komponenten als Eingabeschnittstelle genutzt werden kann. Sämtliche Ergebnisse der Komponenten werden in einer Datenbank protokolliert und können nach Abschluss des Experiments visualisiert dargestellt werden. Dadurch, dass in der Datenbank neben den Ergebnissen auch die am Versuchsaufbau beteiligten Komponenten mitsamt ihrer Version, Konfiguration und Abfolge protokolliert werden, sind Experimente jederzeit wiederhol- und nachvollziehbar.
Jürgen Hermes, Stephan Schwiebert - Sprachliche Informationsverarbeitung - Institut für Linguistik - Universität zu Köln