"Programmierung in natürlicher Sprache" nicht sinnvoll:

Mensch-Maschine-Dialog mit Hindernissen

27.05.1977

MÜNCHEN (uk) - Eine "Programmierung in natürlicher Sprache" sei mit ihrem System möglich, wirbt die Bross Computer GmbH und wähnt sich im Besitz des einzigen Sprachübersetzers, der die natürliche Sprache (Muttersprache) in die "Computersprache" übersetzen kann. Durch diese (Werbe-) Aussagen werden natürlich diejenigen Wissenschaftler und Forschungsinstitute auf den Plan gerufen, die sich seit langem mit der Übersetzung von natürlichen in formale Sprachen beschäftigen und (bisher) höchstens Teilerfolge erzielen konnten. So kommt denn auch Dr. Thies Wittig, der im Rahmen seiner Dissertation über dieses Thema ein umfangreiches Analysesystem am Institut für Informatik in Hamburg implementiert hat, in seinem nachfolgenden Beitrag zu dem Schluß, daß der Bross'sche Sprachübersetzer eher ein schlagwortorientiertes Überführungssystem sei, das den Namen Übersetzer im Kontext der natürlichen Sprachen nicht verdienen würde.

Die pauschale Behauptung, daß ein Sprachübersetzer existiere, der natürliche Sprache in formale Sprache übersetzt, kann niemand, der sich mit dieser Problematik beschäftigt hat, unwidersprochen hinnehmen. Seit Jahren sind große Forschungsinstitute mit beachtlichem Aufwand auf diesem Sektor tätig (MIT, Stanford University, BBN, XEROX-Research Center - um nur einige zu nennen), ohne daß sich einer der beteiligten Forscher zu einer solchen Behauptung hinreißen ließe. Was man erreicht hat, sind Übersetzer, die einen mehr oder minder kleinen Teilausschnitt der natürlichen Sprache ,verstehen' und übersetzen können. Diese Systeme, verstehen' eine sprachliche Äußerung, indem sie ihre Bedeutung in eine sprachunabhängige, formale Repräsentation überführen, aus der sie dann wiederum die sprachliche Formulierung der Zielsprache generieren. Allerdings sind sie mit einem erheblichen Softwareaufwand verbunden, so daß sie zur Zeit für die Praxis nur wenig Verwendung finden würden (größenordnungsmäßig etwa 400 K-Byte).

Es gibt zwar auch Systeme, die Wörter einer natürlichen Sprache mit Hilfe von Tabellen in Befehle einer formalen Sprache überführen (keywordbased systems), nur kann man solche Systeme nicht als Übersetzungssysteme einer natürlichen Sprache bezeichnen.

Es wird wohl auch niemand behaupten, daß die Programmierung in PASCAL-E (PASCAL mit deutschen Befehlen) eine Programmierung in natürlicher Sprache sei. Da diese Systeme mit einem weit geringeren Aufwand zu realisieren sind, liegt die Vermutung nahe, daß das von der Firma BROSS als Sprachübersetzer deklarierte System ein solches schlagwortorientiertes Überführungssystem ist, das den Namen Übersetzer im Kontext der natürlichen Sprache nicht verdienen würde.

Interaktion in natürlicher Sprache

Es ist eine weitverbreitete Meinung, daß die natürliche Sprache als Dialogsprache zwischen Mensch und Maschine ein Allheilmittel sei, mit dem jeder Laie beliebig mit dem Rechner kommunizieren und vor allen Dingen ihn programmieren kann. Allein die Tatsache, daß der Programmierung und dem Information-Retrieval bei der natürlichen Sprache der gleiche Stellenwert eingeräumt wird, stimmt bedenklich, da dies nicht nur aus EDV-orientierter, sondern auch aus kommunikationsspezifischer Sicht zwei recht verschiedene Gebiete sind. Beim Information-Retrieval verfügen der Rechner und der Benutzer über eine gemeinsame Kommunikationsbasis nämlich das Stoffgebiet, das in der DB abgebildet ist. Der Kontext des Dialogs liegt fest und ist dem Rechner bekannt. An Hand dieses Kontextes kann (zumindest theoretisch) der Rechner natürlichsprachliche Äußerungen des Benutzers interpretieren, ihm Hilfestellung bei der Wahl von Anfragen geben und letztlich ihm Fragen beantworten. Bei der Programmierung besteht diese Gemeinsamkeit nicht mehr. An Hand welcher Kriterien soll ein "natürlichsprachlich" fundiertes Programmierungsunterstützungssystem Benutzeraussagen interpretieren, wenn es nicht weiß, welche Probleme der Benutzer mit seinem Programm lösen will? Dies weiß es bestenfalls dann, wenn der Benutzer sein Programm fertiggestellt hat, dann ist es aber für Hilfestellungen zu spät. Gewiß, es kann ihn bei (syntaktischen) Standardproblemen beraten (Laufschleifenorganisation, etc.), doch ist damit der (semantische) Erfolg des Programmes in keiner Weise gewährleistet. Ferner ist zweifelhaft, ob ein Laie, der noch nie einen Computer gesehen hat, bei Programmierversuchen f überhaupt irgendeinen Erfolg haben wird. Es sei denn, die Programmierung beschränkt sich auf die Auswahl existierender, kommentierter Programmpakete, bei deren Zusammenstellung der Rechner durchaus sinnvolle Hilfestellung geben könnte. Man sollte aber für diesen Vorgang nicht den Terminus "Programmierung" verwenden. Selbst wenn die Hilfestellungen des Systems in Form von natürlichsprachlichen Kommentaren oder Fragen (die mit JA oder NEIN zu beantworten sind) durchgeführt werden, ist dies keine natürlichsprachliche Interaktion. Sie wäre erst dann gegeben, wenn beide Dialogpartner ihre Fragen und Antworten wirklich frei formulieren können, wie es der Flexibilität der natürlichen Sprache entspricht. Dies setzt aber auf beiden Seiten einen Verstehensprozeß voraus, der zwar beim Menschen, aber noch nicht beim Rechner gegeben ist.

"Natursprachliche" Programmierung nicht sinnvoll

Abschließend noch eine allgemeine Bemerkung zu der Frage, ob eine Programmierung in natürlicher Sprache, vorausgesetzt sie wäre technisch realisierbar, überhaupt sinnvoll ist. Ich möchte diese Frage aus folgenden Gründen verneinen:

Die Programmierung eines Problems stellt im wesentlichen eine Überführung einer im allgemeinen natürlichsprachlichen, nicht formalen Problembeschreibung in eine präzise, eindeutige und formale Beschreibung (den Algorithmus) dar. Das verlangt vom Programmierer eine Formulierung des Problems in einer eindeutigen, wohldefinierten Terminologie. Verwendet er hierbei Elemente der natürlichen Sprache, ergeben sich folgende Probleme:

1. Ein Wort einer natürlichen Sprache ist in seiner Sachbezogenheit selten eindeutig bzw. präzise. Es muß daher meist näher erläutert werden, um die gewünschte Präzision im jeweiligen Kontext zu gewährleisten.

2. Entsprechendes gilt auch in umgekehrter Richtung, d. h. für ein und dieselbe Sache gibt es verschiedene Bezeichnungen.

3. Ein Wort der natürlichen Sprache (Muttersprache) hat selten ausschließlich denotativen (sachbezogenen) Charakter, sondern beinhaltet (oft unbewußt) Stellungnahmen, Meinungen, etc. und ist z. B. stark vom soziokulturellen Kontext geprägt.

Gefahr der Fehlinterpretation

Da es gerade bei der Programmierung auf Eindeutigkeit und Sachbezogenheit ankommt, müßten bei natürlichsprachlicher Programmierung sämtliche verwendeten Begriffe durch zusätzliche Erläuterungen so weit in ihrer Bedeutung eingeschränkt werden, bis sie diese Forderung erfüllen. Werden diese jedoch nicht erfüllt, so besteht die Gefahr, daß nicht das vom Programm ausgeführt wird, was der Programmierer gemeint hat, was aber aufgrund seiner Formulierung dennoch richtig sein kann. Gerads um solche Fehlinterpretationen zu vermeiden, enthalten die Programmiersprachen "künstliche Wörter", die der Benutzer normalerweise nicht verwendet und die daher für ihn auch weitgehend frei von Nebenbedeutungen sind.

Fazit: Eine Programmierung in natürlicher Sprache erfordert einerseits erheblich größeren Schreibaufwand, reduziert aber andererseits nicht die "geistige Arbeit", die der Benutzer aufbringen muß, um ein Problem präzise und eindeutig zu beschreiben. Sie vergrößert aber die Gefahr der Fehlinterpretation.

Dr. Thies Wittig ist beschäftigt beim Sprachlernzentrum in Bonn