12/16: Everyone is an Expert

AliceNLP Software to Enable Programming in Colloquial Language

Article within the current edition of the KIT magazine lookKIT on information at the Karlsruhe Institute of Technology, Edition 3/2016. The text was written in German, an excerpt is available in English at the end of the text.

 

Fast jeder hat ihn – einen leistungsfähigen Rechner in Form eines PCs, Notebooks, Tablets oder Smartphones. Aber kaum jemand schöpft das Potenzial aus, um eigene Programme zu entwerfen, zu programmieren und schließlich auszuführen. Das war bislang den Spezialisten vorbehalten, die eine Programmiersprache beherrschten.

 

Zwar sprach sich die US-amerikanische Informatikerin Jean E. Sammet schon 1966 dafür aus, Programme in Englisch zu schreiben, doch erst Jahrzehnte später ist die Entwicklung der Computertechnik so weit fortgeschritten, dass aus dieser Vision allmählich Realität wird − am KIT trägt dazu die Forschung von Informatik-Professor Walter F. Tichy, Lehrstuhl Programmiersysteme am Institut für Programmstrukturen und Datenorganisation, bei: „Mich fasziniert der Gedanke, in alltäglicher Sprache zu programmieren. Das ist ein ganz anderer Ansatz als beispielsweise in den USA, wo die Kinder möglichst schon in der Grundschule eine Programmiersprache lernen sollen. Mein Ziel ist es dagegen, dass jeder Nutzer ohne weiteres ein Computerprogramm schreiben kann. Einfach indem er oder sie dem Gerät sagt beziehungsweise in das Gerät eintippt, was es tun soll.“

 

Auf dem Weg zu diesem Ziel hat Tichy zusammen mit seiner Arbeitsgruppe die Erweiterungs-Software AliceNLP (Alice Natural Language Processing, Verarbeitung natürlicher Sprache) entworfen. Diese baut auf der Programmierumgebung Alice auf, einer an der US-amerikanischen Carnegie Mellon University entwickelte Software. Damit können Kinder und Jugendliche kurze Animationen dreidimensionaler Figuren erstellen und gleichzeitig erste Erfahrungen mitobjektorientierter Programmierung sammeln. Während Alice allerdings noch durch „Drag and Drop“, also durch Ziehen und Ablegen mit der Maus oder durch explizite Eingabe von Programm-Codes bedient wird, können sich die Nutzerinnen und Nutzer von AliceNLP darauf beschränken, dem Programm mitzuteilen, was es tun soll – und zwar in ihrer alltäglichen Sprache. Wenn ein normaler Computer auf solche umgangssprachlichen Anweisungen trifft, bereiten sie ihm einige Schwierigkeiten. Denn die Menschen drücken sich nun mal nicht immer so aus, dass Computer sofort verstehen, was sie tun sollen. „Das ist ein bisschen wie beim Radwechsel an Ihrem Auto“, erläutert Tichy, „stellen Sie sich vor, dass sie diese Anweisung erhalten: ‚Den Wagenheber ansetzen, das Auto aufbocken, die Radmuttern lösen ... ach ja, und zuerst natürlich die Muttern vorlockern.‘ Hier haben wir einen Fall, wo eine Aktion, die erst am Ende erwähnt wird, vorher ausgeführt werden muss: das Lockern der Muttern. Typisch für alltägliche Sprache ist nämlich, dass Menschen sich in ihren Schilderungen und Handlungsanweisungen nicht an die chronologische Reihenfolge der Ereignisse halten.“

 

Das haben Tichy und seine Mitarbeiter anhand einer kleinen empirischen Erhebung bestätigt: Menschen – egal, ob sie Programmiererfahrung besitzen oder Computerlaien sind – berichten nicht etwa Schritt für Schritt, sondern sie neigen dazu, zuerst von denjenigen Ereignissen zu sprechen, die ihnen am wichtigsten erscheinen. Erst dann erwähnen sie weitere Einzelheiten und fügen diese mithilfe zeitlicher Ausdrücke wie etwa ‚davor‘ und ‚nachdem‘ in den Handlungsablauf ein. Das bedeutet aber, dass die tatsächliche Abfolge eine andere ist als diejenige, in der die Ereignisse im Bericht des betreffenden Menschen erwähnt werden: Wenn zum Beispiel jemand eine Szene beschreibt und in seiner Erzählung zuerst Ereignis B erwähnt und erst danach hinzufügt, dass Ereignis A zuvor passiert ist, dann lautet die tatsächliche Reihenfolge A, B – in der Erzählung ist hingegen zuerst von B, dann von A die Rede.

 

Für AliceNLP haben Tichy und seine Mitarbeiter diese Schwierigkeit beseitigt: Die Software berücksichtigt das geschilderte Verhalten und ordnet, falls nötig, die Ereignisse um. Indem sie auf diese Weise nach und nach die zeitlichen Ausdrücke in einer Erzählung abarbeitet, stehen die Ereignisse zum Schluss in genau der Reihenfolge hintereinander, in der sie tatsächlich passiert sind. „Und das funktioniert natürlich nicht nur mit der Schilderung von Ereignissen, die schon passiert sind“, fügt Tichy hinzu, „sondern genauso mit einer Abfolge von Befehlen, wie sie in einem Programm vorkommen.“

 

Nachdem die NLP-Software jetzt also in der Lage ist, aus den teilweise komplizierten und verwickelten Beschreibungen von Nutzern die korrekte Abfolge der Ereignisse beziehungsweise Befehle zu ermitteln, wendet sich Tichy anderen Problemen zu, die das Programmieren in natürlicher Sprache bereithält, so etwa der Analyse von Korreferenzen. Diese ist nötig, wenn durch den Gebrauch von Pronomina nicht mehr klar ist, was in der beschriebenen Szene tatsächlich passiert: „Betrachten sie diese zwei simplen englischen Sätze“, sagt Tichy: „’John is angry at Tom, because he stole his watch.‘ bedeutet etwas ganz anderes als ’John is angry at Tom, so he stole his watch.‘“ Damit die NLP-Software korrekt zuordnet, wer von den beiden der Dieb und wer der Geschädigte ist, muss sie nicht nur die Namen ’John‘ und ’Tom‘ sowie die Pronomen ’he‘ und ’his‘ auswerten, sondern muss außerdem die zusätzliche Information verwenden, ob Haupt- und Nebensatz durch ’because‘ oder durch ’so‘ verknüpft sind.

 

Die NLP-Software, die Tichy und seine Mitarbeiter geschrieben haben, ist dabei nicht auf die Programmierumgebung Alice beschränkt. Alice stellt ein überschaubares Anwendungsbeispiel dar – Tichys Forschungsergebnisse lassen sich jedoch prinzipiell auf jede andere Programmiersprache übertragen, und auch Tabellenkalkulation in Excel lässt sich mit natürlicher Sprache programmieren und so erheblich vereinfachen.

Obwohl noch viel zu tun bleibt: Jean E. Sammets Vision, dass jeder mit einem Computer kommunizieren können sollte, „wie ihm der Schnabel gewachsen ist“, rückt durch Tichys Forschung der Realität ein gutes Stück näher.

Kontakt: tichy does-not-exist.kit edu

 

Excerpt in English


Everyone is an Expert

Translation: Heidi Knierim

Although  almost  everyone  owns  an  efficient  computer  i.e.,  a  PC,  notebook,  tablet  or  smartphone, hardly anyone makes full use of the potential of creating, programming, and executing their own programs. Indeed, these skills so far have only been mastered by specialists in programming.

Together with his working group, Professor of Computer Science Walter F. Tichy, Chair of Programming Systems at the Institute for Program Structures and Data Organization, now has developed the AliceNLP  (Alice  Natural  Language  Processing)  expansion  software  which  is  based  on  the  Alice  programming environment developed at Carnegie Mellon University, USA. Using this software, children and young people can create short animations of three-dimensional figures while at the same time gaining their first experience in object-oriented programming. However, whereas Alice is still operated by drag and drop or explicit entering of a program code, AliceNLP users can tell the program what to do in their everyday colloquial language.

Such colloquial commands are rather difficult to understand by normal computers. This is not surprising considering that people do not always express themselves such that computers know immediately what they are supposed to do. When describing things and giving instructions for action, users in most cases do not stick to the chronological order of events.

For AliceNLP, Walter F. Tichy and his coworkers eliminated this difficulty: The software considers the described behavior and, if necessary, rearranges the events. Now that the NLP software is able to determine  the  correct  sequence  of  events  or  commands  from  the  users’  sometimes  complicated  and  complex descriptions, Professor Tichy addresses other problems presented by programming in natural language e.g., coreference analysis.

Contact: tichy does-not-exist.kit edu