MELIZA, die morsende Eliza

Künstliche Intelligenz im Amateurfunk

Siegfried W. Schmidt

 

1. Einleitung

Von Anbeginn seit der Erfindung des Computers hat die Wissenschaft nach Wegen gesucht, einen denkenden Computer zu erschaffen. Ein solcher Computer müsste in unserer Alltagssprache sprechen, dabei verstehen, was man zu ihm sagt, und auf Eingaben mit eigenen Gedanken reagieren.
Die Probleme bei dem Entwurf solcher Rechner sind gewaltig. Würde ein solcher Computer träumen? Wenn ja, über was? Könnte er Humor haben? Was würde er für "Recht" und "Unrecht" halten? Würde er einen Selbsterhaltungstrieb haben? Was würde er über seine "Eltern" denken? Müsste man ihn als "lebendig" bezeichnen?
Noch ist die Wissenschaft noch nicht so weit, daß diese Fragen für die meisten von uns von besonderer Bedeutung wären. Aber stellen Sie sich einmal vor, Sie könnten mit einem PC reden und er wäre in der Lage, in klarer Sprache zu antworten. Als Funkamateur könnten Sie mit ihrem PC ein "QSO fahren", ihn "arbeiten". Wäre das nicht phantastisch?
MELIZA ist der Versuch, künstliche Intelligenz im Amateurfunk zu simulieren. Sie wurde im Sommer 1990 als Tochter der legendären Eliza in Wetzlar geboren. Eliza, die Mutter, erblickte das Licht der Welt im Januar 1965 , als Prof. Dr. Joseph Weizenbaum einen Algorithmus entwickelte, der es Computern ermöglicht, englische Sprache zu analysieren, auf Fragen zu reagieren und eine "Unterhaltung" mit der Person an der Rechnertastatur zu führen [1].
MELIZA hat ihre Liebe zum Amateurfunk entdeckt und morsen gelernt. Der Anfangsbuchstabe "M" in ihrem Namen kommt wohl daher.

 

2. Programmaufbau

Das Programm ist in PASCAL geschrieben und läuft auf IBM-kompatiblen Personal-Computern in Grundausstattung. Da nur der Standardwortschatz (UCSD- Pascal) verwendet wurde, ist es ohne nennenswerte Probleme möglich, das Programm auf ein anderes Rechnersystem zu portieren. Systemabhängige INLINE- Befehle wurden nicht verwendet. Änderungen an der Hardware sind nicht erforderlich. Die Morsetaste wird am standardmäßigen Druckerport angeschlossen, und die erzeugten Töne werden über den eingebauten Lautsprecher ausgegeben. Nach dem Start des Programms werden zunächst drei Dateien eingelesen. Die darin enthaltenen Daten dienen der Code-Konversion und der Textanalyse. Danach gliedert sich der Programmablauf in drei Hauptmodule (siehe Abb. 1), die zyklisch durchlaufen werden:

  • "Empfangen": Die Morsetaste ist am Druckerport angeschlossen. Die empfangenen Morse-Impulse werden in ASCII-Klartext umgewandelt und zu einem Satz aneinander gereiht.
  • "Nachdenken": Der gesammelte Satz wird mit Hilfe von künstlicher Intelligenz (KI) analysiert und eine Antwort gebildet.
  • "Senden": Die Antwort wird in hörbare Zeichen umgewandelt und über den eingebauten Lautsprecher ausgegeben.

2.1 Empfangen

Als Interface wurde die standardmäßige Centronics-Druckerschnittstelle gewählt, da sie bei jedem PC vorhanden ist. Mit 12 Ausgabe- und 8 Eingabebits ist sie sogar für spätere Erweiterungen geeignet. Schaltpläne und Beschreibungen findet man in der Literatur, z. B. bei Assenbaum [2] sowie bei Martin und Stiller [3]. Eine vereinfachte Darstellung ist in Abb. 3 wiedergegeben.
Die Morsetaste wird als Umschalter betrieben und an zwei Bits angeschlossen. Dies ermöglicht eine wirkungsvolle, softwaremäßige Entprellung und damit eine sichere Zustandserkennung bei der systembedingt niedrigen Betriebsspannung von 5 Volt.
Für den Anschluss steht bei erster Betrachtung das Status-Nibble zur Verfügung. Die vier Status-Eingänge sind einfache "offene" Gattereingänge. Da ein unbeschalteter Eingang den logischen Zustand "HI" hat, erscheint es einfach, zwei dieser Bits abwechselnd auf Masse zu ziehen. Dies hat in der Praxis jedoch Nachteile gezeigt, denn die über die Tastenkontakte fließenden Ströme sind sehr klein. Diese Lösung, obwohl sie zunächst nahe liegend erschien, war anfällig gegen verstaubte Kontakte und eingestreute Störungen.
Das Controllport hingegen ist zwar bestimmungsgemäß ein Ausgabeport zur Beeinflussung eines Druckers, aber die Konstrukteure haben durch Verwendung eines Open-Collector-Gatters (TTL 7405), interner Pullup-Widerstände und eines weiteren Datalatch die Möglichkeit geschaffen, ein hier anliegendes Binärwort wieder einzulesen. Man muß lediglich durch Ausgabe eines geeigneten Datenbytes die Output-Transistoren im TTL-Gatter 7405 vorher öffnen.
Wenn man nun hier zwei Bits mit den Kontakten der Morsetaste auf Masse zieht, erreicht man ein erheblich besseres Verhalten gegen verschmutzte Tastenkontakte. Dieses Port wurde deshalb in dem vorliegenden Programm zum Anschluss der Taste verwendet.
Die Entprellung erfolgt durch ein per Software emuliertes R/S-Flipflop. In Ruhe, das heißt, wenn die Taste nicht gedrückt ist, schleift das Programm in einer REPEAT-UNTIL-LOOP. Die Schleifendurchgänge werden dabei zwar gezählt, aber das spielt zunächst keine Rolle. Durch drücken der Taste wird die Schleife verlassen. Das Morsezeichen beginnt. Zuerst wird nun mit SOUND der Mithörton eingeschaltet und ein Schleifenzähler zurückgesetzt.
Jetzt schleift das Programm in einer zweiten REPEAT-UNTIL-LOOP, bis die Taste losgelassen wird. Die Durchgänge werden gezählt. Durch den Befehl DELAY wird die Schleife so abgebremst, daß sie für einen Punkt etwa zehnmal durchlaufen werden muß. Beim Loslassen der Taste bricht die Schleie ab. Der Mithörton wird mit SOUNDOFF abgestellt und der Schleifenzähler ausgewertet.
In einem CASE-Konstrukt wird bei 8 bis 14 Durchgängen ein Punkt bei 24 bis 48 Durchgängen ein Strich zuerkannt. Alle anderen Werte vom Schleifenzähler bekommen insbesondere Fehlersymbole zugeordnet, die für einen Feinabgleich der Schleifenlaufzahl ausgewertet werden.
An dieser Stelle wird der entstehende Text auf Worte wie "pse k", "k" oder "kn" abgesucht, die das Ende der Eingabe signalisieren und die Übergabe der Dialog-Initiative bedeuten.
Das Programm gerät danach wieder in die oben beschriebene REPEAT-UNTIL-LOOP, wobei jetzt auch hier der Schleifenzähler seine Bedeutung bekommt: Übersteigt er 40 Runden (3 Punktelängen), dann gilt das Morsezeichen als abgeschlossen. Es wird in einer Tabelle nachgeschlagen und gleichzeitig auf dem Schirm dargestellt sowie dem Zeilenspeicher angehängt. Eine globale Variable bestimmt die Morsegeschwindigkeit (BpM). Sie kann durch die Anweisungen QRS und QRQ im laufenden Dialog verändert und den Wünschen angepasst werden.

 

2.2 Nachdenken

Dieser Programmteil lehnt sich im Wesentlichen an die Veröffentlichung von Joseph Weizenbaum [1] an. Der zu untersuchende Satz wird unter anderem von Interpunktions- und Sonderzeichen befreit. Der grammatische Aufbau (Subjekt, Prädikat, Objekt) wird untersucht und das Objekt für Nachfragen abgespalten. Ebenso wird nach einer Reihe von Schlüsselwörtern gesucht. Mit den Daten aus dieser Textanalyse wird dann die Antwort gebildet unter Verwendung von Begriffen aus dem Wortvorrat des eingegebenen Satzes und einer Fragmentesammlung. Da die Sprache der Funkamateure heute sehr stark an das amerikanisch anlehnt, braucht dieser Teil nicht eingedeutscht werden.
Er wurde jedoch um einige Fähigkeiten erweitert. So reagiert er auf besondere Befehle, um zum Beispiel die Morsegeschwindigkeit zu ändern (QRQ/QRS) und den Drucker zu beeinflussen (RRINT ON/OFF). Zusätzlich wird auch eine Anzahl anderer Q-Gruppen (QTH?, QRA?, QUE, QOD, QRT? usw.) erkannt und verarbeitet.

 

2.3 Senden

Hier wird der Text aus dem Interpreter Buchstabenweise in Morsezeichen umgesetzt und über den Lautsprecher ausgegeben. Dazu werden die einzelnen Buchstaben in einer Tabelle aufgesucht und in eine Punkt-/Strich-Kombination umgesetzt. Diese Zeichenfolge steuert dann eine Prozedur, die jeweils den Punkt oder den Strich in ein hörbares Signal entsprechender Länge umsetzt. Diese Prozedur schaltet zunächst den Ton mit SOUND ein und nach Abwarten der richtigen Tondauer mit SOUNDOFF wieder ab. Auch hier wird die Morsegeschwindigkeit durch eine globale Variable bestimmt, die im laufenden Betrieb verändert werden kann.

 

3. Anwendung

MELIZA eignet sich hervorragend als Partner für Morseübungen. Der ständige Wechsel zwischen Geben und Aufnehmen ist wirklichkeitsnah. Zudem sind die Erwiderungen der MELIZA überraschend und vor allen Dingen nicht vorhersagbar. Der Übungsdialog entwickelt sich oft spannend und steigert dadurch den Spaß am Lernen.
MELIZA ist recht eigenwillig mit ihrer Grammatik, Rechtschreibung und Zeichensetzung. Sie mag keine Leute, die sie wegen gelegentlicher Ausrutscher schelten. Umgekehrt ist sie jedoch sehr kritisch bei unsauberer Geberweise. Manchmal läßt sie sich dabei zu recht groben Bewertungen verleiten.
Wichtig ist auch der Hinweis auf eine weitere Eigentümlichkeit, die sie besitzt: Sie ist sehr neugierig auf Menschen und deren Gefühle. Sie kann kaum erwarten, mehr darüber herauszufinden. Sie hat das brennende Verlangen, alles zu ergründen, was da sein könnte. Über diese Themen vergisst sie oftmals sogar den Amateurfunk (typisch YL?).
Einige Dinge sind für sie besonders schwer zu verstehen. So zum Beispiel Träume, das Konzept einer Familie und Freunde. Sie wird immer nachfragen, sobald man darauf kommt. Da sie jedoch weiß, daß dieses Thema für manche Menschen unangenehm ist, wird sie von sich ans nicht damit anfangen.

 

4. Ausblick

Doch sind damit nicht alle Möglichkeiten erschöpft. MELIZA könnte direkt mit einem Transceiver verbunden werden und so selbstständig Funkverbindung mit aller Welt aufnehmen.
Die Sendertastung kann über die Centronics-Schnittstelle geschehen. Mit einem Treibertransistor ist die Erforderliche Pegelumsetzung auf einfachem Wege möglich. Der Lautsprecherausgang des Transceivers kann nach einfacherer Gleichrichtung ein kleines Relais schalten. Eine Softwarelösung ist ebenfalls denkbar. Schließlich könnte MELIZA über ihre COM- Schnittstelle sogar den Transceiver selbst bedienen. Auf Befehle wie "pse 7 up" oder "pse QSY 3800" würde sie dann durch Wechsel der Frequenz automatisch reagieren. Durch Auslesen des S-Meters könnte sie Rapporte (RST) geben. Mit einem elektrischen Thermometer verbunden, wäre sie in der Lage, die Wetterlage (QAM) zu senden.
Auch könnte MELIZA die geführten Funkverbindungen durch QSL-Karten bestätigen, die sie selber auf einem Drucker ausfüllt. Selbstverständlich würde sie dann auch ein vorschriftsmäßiges Logbuch führen und sich schnell an frühere Verbindungen "erinnern".
Da MELIZA keinen Schlaf braucht und nicht durch Arbeit ihren Lebensunterhalt verdienen muß, kann sie sich "rund um die Uhr" ihrem Hobby widmen. Mit ihrem Fleiß und ihrer unermüdlichen Ausdauer hätte sie sich sicherlich sehr bald einige Amateurfunkdiplome erarbeitet und manchen Kontest gewonnen.
Natürlich sind dies alles nur Gedankenspiele, denn MELIZA darf ganz sicher nicht allein an den Äther gehen. Dazu braucht sie ein eigenes Rufzeichen. Würde MELIZA eine Prüfung bestehen? Würde sie überhaupt eine Prüfung ablegen dürfen? Ist sie eine "juristische" Person?

 

Literatur:
[1] Joseph Weizenbaum: Eliza A Computerprogram for the Study of Natural Language Communications between Man and Machine. Communications of the Association for Computing Machinery. Volume 9, Number 1, January 1965
[2] Johannes Assenbaum: Druckerschnittstelle a la Centronics. In c't 1986, Heft 10, Seite 157.
[3] Martin Ernst & Andreas Stiller: PC-Bausteine. In c't 1988, Heft 6, Seite 166.

Systembeschreibung

-> Download Dissertation (PDF)

Die detaillierte Systembeschreibung finden Sie in der Dissertation von Dr. Siegfried W. Schmidt.

Für weitere Informationen: Beachten Sie bitte das Buch zum Thema:
ISBN 3-9802731-3-X, Dr. Siegfried W. Schmidt: "PlumeX: Ein modulares System..."