Statt 10010110: Computer programmieren mit Alltagssprache
Dem Computer einfach sagen, was man will, statt eine komplizierte Programmiersprache zu benutzen – daran arbeiten derzeit Informatiker des Karlsruher Instituts für Technologie (KIT). Sie entwickeln eine Software, die Befehle aus der natürlichen Sprache in eine Programmiersprache übersetzt, die der Rechner versteht.
Sind die Karlsruher Informatiker erfolgreich, können Nutzer in Zukunft eigene Computeranwendungen programmieren – mit ein paar einfachen Sätzen. Bislang ist das denen vorbehalten, die eine Programmiersprache beherrschen. „Wir wollen weg von komplizierten Regelwerken für Nutzer – nichts anderes sind Programmiersprachen – hin zu intelligenten Rechnern, die mit uns in Dialog treten“, sagt Mathias Landhäußer vom KIT. Bislang ließen sich Programme nur dann mit Sprache steuern, wenn sie vom Hersteller genau darauf ausgelegt seien. Als Beispiel nennt Landhäußer das Versenden von Kurznachrichten.
Schnittstelle für beliebige Programme
Die Software, die die Informatiker am KIT derzeit entwickeln, richtet dagegen eine Schnittstelle für beliebige Programme ein. Damit könnten Nutzer ihre mobilen Apps nicht nur per Sprachbefehl öffnen, sondern auch bedienen. Bei einer Anwendung waren die Forscher damit bereits erfolgreich. In die Steuerung eines „intelligenten Hauses“, die Heizung, Beleuchtung und Fenster bedient, haben sie eine solche Schnittstelle eingebunden.
Befehle automatisch in der richtigen Reihenfolge
Eine Hürde auf dem Weg hin zur Programmierung über die Alltagssprache haben die Forscher inzwischen genommen. Menschen geben Befehle meist nicht in der Reihenfolge, in der sie ausgeführt werden müssen. Computer führen Befehle aber nur in der Reihenfolge aus, in der sie gegeben werden. Die Software der Karlsruher kann inzwischen selbstständig anhand einiger Schlüsselwörter die richtige Reihenfolge herstellen. Bislang funktioniert das aber nur in englischer Sprache.
Landhäußer nennt als Beispiel dafür den Befehl „Bevor das Auto losfährt, geht das Garagentor auf.“ Eins zu eins in Programmiersprache übertragen, würde das bedeuten, dass das Auto gegen das geschlossene Garagentor fährt, das sich anschließend öffne. Es sei auch keine Lösung, dem Nutzer Vorgaben für computergerechtes Sprechen zu machen.
Selbst Programmierer verwendeten in Tests immer wieder die gewohnte Sprache, so Landhäußer. „Unser Ziel ist es, dass sich der Rechner an die Sprechweise der Nutzer anpasst – nicht umgekehrt“, sagt der Forscher.
Analyse von Signalwörtern
Die neue Software analysiert nun zeitbezogene Signalwörter wie „davor“, „danach“, „zuerst“ oder „zuletzt“. Sie weisen darauf hin, dass zeitliche Abläufe nicht streng linear genannt werden. Die Informatiker ordnen diesen sprachlichen Begriffen nun logische Formeln zu, um im Quelltext eine chronologische Abfolge herzustellen.
Für das Beispiel mit dem Garagentor bedeutet das: Die Formel für das Signalwort „bevor“ schiebt den Hauptsatz automatisch um eine Position nach vorne. Das Ergebnis: Das Garagentor geht auf, bevor das Auto losfährt.
Weitere Schwierigkeiten müssen gelöst werden
Das ist aber nicht die einzige Schwierigkeit, vor der die Forscher bei der Entwicklung der Software stehen. So ersetzten die Probanden im Test Wörter mit sinnverwandten Begriffen oder Fürwörtern: Dass sich der Begriff „Auto“ auf dasselbe Objekt bezieht, wie „Wagen“ oder „dieses“ im Folgesatz, können Computer allerdings nicht ohne Weiteres ableiten. „Bis wir komplexe Software mit Sprache nicht nur bedienen, sondern tatsächlich programmieren können, wird es noch dauern“, schätzt Landhäußer.
Ein Beitrag von: