„Hey Gizmo, wake up!“

„Hey Gizmo, wake up!“

Studierende lernen im Praktikum „Sprachverarbeitung in der Softwaretechnik“ einen Roboter mit natürlicher Sprache zu programmieren.

„Gizmo, turn right until you see the red can.“ Gizmo dreht sich langsam und stoppt als die rote Dose in seinem Blickfeld auftaucht. Der LEGO-Mindstorms-Roboter benötigt keine Befehle in einer Programmiersprache, es reichen Anweisungen auf Englisch in natürlicher Sprache. Klingt einfach, dahinter verbirgt sich jedoch eine große Menge Arbeit. 

Dr. Mathias Landhäußer hat am Karlsruher Institut für Technologie (KIT) Informationswirtschaft studiert und ist wissenschaftlicher Mitarbeiter am Lehrstuhl von Professor Walter F. Tichy. 
Immer mehr Menschen besitzen Smartphones, Laptops oder andere programmierbare Geräte und in Zukunft werden noch viele weitere Anwendungen hinzukommen. Doch nur die wenigsten Nutzer können Programmieren. Die benötigten Fähigkeiten, wie beispielsweise das Beherrschen verschiedener Programmiersprachen, sind so umfangreich, dass nicht jeder Laie sie sich aneignen kann. Programmieren für jedermann, zumindest bis zu einem gewissen Grad – darauf zielt die Arbeit von Dr. Landhäußer ab. Es soll möglich sein, ein Programmsystem in natürlicher englischer Sprache anzusteuern, ohne dass der Nutzer dafür Programmiersprachen beherrschen muss. Im Rahmen seiner Dissertation entwickelte er dazu den „Natural Language Command Interpreter (NLCI)“. Der Benutzer gibt seinen Befehl in natürlicher englischer Sprache ein und NLCI übersetzt ihn anschließend in Quelltext. Neu an dem entwickelten Verfahren ist, dass die Textanalyse von den System-Informationen getrennt ist: Die Informationen über die Programmierschnittstelle der jeweiligen Anwendung werden als Software-Modell dargestellt. Das Software-Modell wird dann in NLCI geladen und es erfolgt die Textanalyse. Dabei wird der Text maschinenlesbar gemacht und es werden z.B. Personalpronomen aufgelöst. Zuletzt wird ermittelt, welche Software-Funktionalität angesprochen werden muss. Die Ergebnisse der Analysen werden ausgewertet und der benötigte Quelltext, mit dem man anschließend auf die Anwendung zugreift, wird ausgegeben. Durch den modularen Aufbau von NCLI, kann ein Entwickler leicht eine andere Software anbinden. Das Erschließen neuer Anwendungen ist somit stark vereinfacht möglich.

Auf Grundlage dieser Forschungsarbeit haben Martin Blersch und Sebastian Weigelt ein ganz besonderes Praktikum für Studierende entworfen. Im Rahmen des Praktikums „Sprachverarbeitung in der Softwaretechnik“ programmieren die Studierenden einen LEGO-Mindstorms-Roboter mittels natürlicher Sprache, so dass er bestimmte Gegenstände finden oder einer Linie folgen kann. Dafür müssen sie die Übersetzung der Kommandos automatisieren und eine vereinfachte Variante von NLCI implementieren. „Die Teilnehmerinnen und Teilnehmer sollen die Kernkomponenten der NLCI bauen und die computerlinguistischen und softwaretechnischen Grundlagen verstehen. Die Studierenden erleben aktuelle Forschung hautnah und sind in den Forschungsprozess miteinbezogen. Auf diese Weise werden ihnen neuste Erkenntnisse anhand praktischer Aufgaben vermittelt und das Interesse an der Forschung geweckt.“, so Dr. Landhäußer. 

Im folgenden Video ist zu sehen, wie der LEGO-Mindstorms-Roboter den Abschluss-Parcours des Praktikums im WS 2015/2016 erfolgreich bewältigt. Das Praktikum „Sprachverarbeitung in der Softwaretechnik“ läuft mittlerweile im zweiten Jahrgang und soll auch weiterhin regelmäßig am Lehrstuhl von Prof. Walter F. Tichy angeboten werden.