WortWirbler

WortWirbler (WoWi) ist ein Grammatik-Übungsprogramm, das von Tobias Bender und Annelen Brunner als Projekt im Rahmen des Computerlinguistikstudiums entwickelt wurde.
Begonnen wurde das Projekt Anfang 2004, Abschlussvortrag war im Februar 2005, offizielle Abgabe im Juli 2005.
Was es momentan über WoWi zu wissen gibt, folgt hier:

Für Benutzer:

Für (Weiter-)Entwickler:

Was ist WoWi?

WoWi ist ein Übungsprogramm für den Grammatikunterricht mit Schwerpunkt auf dem Einüben der Eigenschaften von Wörtern und Satzteilen. Es verfügt über eine graphische Benutzeroberfläche und eine Grammatikkomponente, mit deren Hilfe Übungssätze dynamisch generiert und Benutzereingaben analysiert werden.
Momentan stellt das Programm drei Grundübungstypen zur Verfügung: Zurück zum Anfang

Installation

Vollständiges Archiv des Projekts

WoWi hat folgende Abhängigkeiten: Da TPG und pyswipl nicht sonderlich weit verbreitet sein dürften, haben wir uns entschlossen, sie mitzuliefern. Zu finden sind beide Module im Verzeichnis opt/. Zur Installation muss man in das jeweilige Verzeichnis wechseln und dort den Befehl
python setup.py install
ausführen. (Nähere Informationen zu TPG und pyswipl finden sich auch im Kapitel Backend)
Sind Python, SWI-Prolog und die beiden Module installiert, kann das Programm im Verzeichnis src/ mit dem Befehl
python wowi.py bzw. pythonw wowi.py
gestartet werden.
Zurück zum Anfang

Benutzung

Die aktuelle Benutzeroberfläche für WoWi ist daraufhin konzipiert, dem Benutzer möglichst viel Freiheit bei der Anpassung der Übungen zu geben und die Einstellungsmöglichkeiten des Programms zu demonstrieren.

Hauptfenster

Das Hauptfenster verfügt über drei Tabs, die den drei Übungstypen Bestimmen, Ersetzen und Umstellen zugeordnet sind.
Alle Übungsoberflächen gliedern sich in den dynamisch generierten Übungssatz, eine Übungsanweisung, deren Wortlaut durch die aktuellen Übungseinstellungen beeinflusst ist, und einen Abschnitt, in dem der Benutzer Manipulationen durchführen kann.
Der Knopf Neuer Satz erzeugt für den gerade aktiven Übungstyp einen neuen Übungssatz mit den aktuellen Einstellungen.
Der Knopf Fertig ruft ein Dialogfenster auf, das die Eingabe des Benutzers bewertet. Ist seine Eingabe für die Übung falsch, kann die Lösung angezeigt werden. Ist die Eingabe richtig oder wurde die Lösung bereits angezeigt, kann aus dem Dialog heraus ein neuer Satz generiert werden.
Mit dem Knopf Zurück ist es in jedem Schritt des Dialogs möglich, abzubrechen und denselben Übungssatz weiter zu bearbeiten.
Das Beenden des Programms erfolgt durch Schließen des Hauptfensters.
Zurück zum Anfang

Einstellungen

Durch Klicken auf den Knopf Einstellungen wird das Einstellungsfenster geöffnet.
Wie das Hauptfenster zeigt es Tabs für die drei Übungsarten, wobei immer die Einstellungen für die Übung im Vordergrund sind, von deren Fenster aus die Einstellungen ausgerufen wurden. Prinzipiell ist es jedoch möglich, die Einstellungen auch für die anderen Übungstypen im gleichen Einstellungen-Aufruf zu ändern.
Veränderte Einstellungen werden durch das Klicken auf OK übernommen. Sie werden allerdings erst auf den nächsten erzeugten Übungssatz angewendet.
Durch Klicken auf den Knopf Standardeinstellungen wiederherstellen können Veränderungen des Benutzers rückgängig gemacht werden.
Verlässt man das Einstellungsfenster mit Abbrechen werden Veränderungen nicht übernommen.
Beim Beenden des Programms werden die aktuellen Übungseinstellungen gespeichert.

Einstellungen für Bestimmen

Zurück zum Anfang

Einstellungen für Ersetzen

Zurück zum Anfang

Einstellungen für Umstellen

Zurück zum Anfang

Programmaufbau

WoWi besteht aus drei Hauptkomponenten:
Ueberblick
Die Benutzeroberfläche ist problemlos austauschbar.
Backend und Grammatik sind enger miteinander verzahnt, ein Austauschen der Grammatik ist jedoch bei Anpassung bestimmter Elemente ebenfalls möglich. Weitere Informationen über Erweiterung und Umbau gibt es hier.

Grammatik

Die Grammatik ist in SWI-Prolog (Version 5.4.3) programmiert und besteht aus folgenden Dateien:
Grammatik
Die Grammatik verwendet kontextfreie Phrasenstrukturregeln und generiert Sätze mit bis zu drei Objekten (Genitiv, Dativ oder Akkusativ). Nominalphrasen bestehen aus Personalpronomen oder bestimmtem Artikel ( + Adjektiv) + Substantiv. Es gibt nur einfache Verben in Präsens oder Imperfekt.
Hier ein Bespiel für die Satzstruktur, wie sie auch in den ConstNode-Bäumen des Backends abgebildet wird:
Satz
Außerdem verfügt die Grammatik über eine einfache Semantik, die sicherstellt, dass keine unsinnigen Übungssätze erzeugt werden.
Die Satzumstellung wird von den Regeln in permute.pl gesteuert.
Für technische Details siehe die Kommentare in den Source-Code-Dateien.
Zurück zum Anfang

Backend

Das Backend ist in Python (Version 2.3.3) programmiert und stellt die eigentlichen Übungsfunktionen bereit. Es besteht aus folgenden Dateien:
Backend
Das Backend bindet zwei externe (nicht von uns entwickelte) Module ein: Die wichtigsten Backend-Klassen sind: Detailierte Informationen über die Klassen und Methoden der Backend-Dateien (nur der Backend-Dateien, ohne die Prolog-Grammatik!) kann man in der WoWi Documentation nachlesen, die mit Hilfe des Programms Doxygen automatisch erstellt wurde.
In der Datei pretty_test.py sind einige Backend-Tests implementiert, die man ohne die graphische Benutzeroberfläche ausführen kann.
Zurück zum Anfang

Graphische Benutzeroberfläche

Die graphische Benutzeroberfläche ist in wxPython programmiert und wurde von Tobias Bender entwickelt. Technische Einzelheiten kann man in der WoWi Documentation nachlesen, die mit Hilfe des Programms Doxygen automatisch erstellt wurde.
Zurück zum Anfang

Erweiterungsmöglichkeiten

Neue Übungstypen

Auf Grundlage der öffentlichen Funktionen von WoWiBackend und ConstNode ist die Implementierung anderer Übungstypen möglich, die nur eine Anpassung der GUI-Funtionalität erfordern. Denkbar wären z. B. Zurück zum Anfang

Austauschen der Benutzeroberfläche

Ein Austauschen der graphischen Benutzeroberfläche ist problemlos möglich.
Die Kommunikation mit dem Backend erfolgt ausschließlich über die öffentlichen Funktionen in WoWiBackend.py. Es gibt hiervon drei für jeden Übungstyp, die jeweils das Erzeugen des Übungssatzes, das Verarbeiten der Benutzereingabe und das Generieren der Lösung steuern. Ihr Verhalten kann je nach Bedarf durch verschiedene Parameter beeinflusst werden. Für technische Details siehe die Kommentare in den Source-Code-Dateien und die WoWi Documentation.
Zu beachten ist auch die Datei conf_converter.py, die interne Namen und Messagestrings übersetzt. Sie kann für eine neue Benutzeroberfläche übernommen oder nach Bedarf angepasst werden.
Zurück zum Anfang

Austauschen der Grammatik

Ein vollständiges Austauschen der Grammatik erfordert Anpassung aller Backend-Komponenten mit Ausnahme der Klasse WoWiBackend.
Insbesondere ist zu beachten: Ein partielles Austauschen von Komponenten der Prologgrammatik ist problemlos möglich, solange die Form der Aufrufe gleich bleibt.
Falls die Aufrufssyntax sich ändert, müssen entsprechende Anpassungen in GrammarCalls vorgenommen werden.
Zurück zum Anfang