RPG kann mit „Watson“ sprechen, ohne dass dazu spezielle Software erforderlich wäre. Es muss nichts installiert oder konfiguriert werden. Interessenten benötigen als Software-Ausstattung lediglich V7R1, Embedded SQL, und sie müssen einige RPG- und SQL-Anweisungen kodieren.
Bei Watson handelt es sich um den IBM-Computer, der im Jahre 2011 innerhalb der Quiz-Show Jeopardy! gegen die früheren Sieger Brad Rutter und Ken Jennings kämpfte – und deutlich gewann. Watson ist also ein Computerprogramm aus dem Bereich der Künstlichen Intelligenz (KI). Das Programm wurde und wird weiterhin von IBM entwickelt, um Antworten auf Fragen zu geben, die in digitaler Form oder auch in natürlicher Sprache eingegeben werden. Laut Wikipedia verfolgt man mit Watson das folgende Ziel:
„Ziel des Projekts ist es letztlich, eine hochwertige Semantische Suchmaschine zu schaffen. Diese soll den Sinn einer in natürlicher Sprache gestellten Frage erfassen und in einer großen Datenbank, die ebenfalls Texte in natürlicher Sprache umfasst, innerhalb kurzer Zeit die relevanten Passagen und Fakten auffinden. Eine derartige Software könnte in vielen Bereichen, etwa der medizinischen Diagnostik, komplexe Entscheidungen unterstützen, insbesondere wenn diese unter Zeitdruck getroffen werden müssen.
Watson implementiert Algorithmen der Natürlichen Sprachverarbeitung und des Information Retrieval, aufbauend auf Methoden des Maschinellen Lernens, der Wissensrepräsentation und der automatischen Inferenz. Das System enthält Softwaremodule zur Erstellung von Hypothesen, ihrer Analyse und Bewertung. Es greift dabei auf eine Aussagensammlung und umfangreiche Textbestände zurück, ist jedoch nicht mit dem Internet verbunden. Anfragen an Watson werden bislang in Textform gestellt. Anders als aktuelle Systeme wie z. B. Wolfram Alpha benötigt es jedoch keine formale Abfragesprache. Seit Februar 2011 arbeitet IBM mit der Firma Nuance zusammen, einem führenden Hersteller von Software zur Spracherkennung. Die geplante Fähigkeit, auch gesprochene Fragen zu bearbeiten, soll den Einsatz einer spezialisierten Version Watsons im Gesundheitswesen erleichtern.“
Um zu zeigen, wieWatson genau arbeitet, hat die IBM THINK ACADEMY in einem Video einige Details publiziert. Seit 2011 wurde Watson in vielen Bereichen, wie beispielsweise Krebsforschung, weiterentwickelt.
Das Beispielprogramm
Für das folgende Beispiel kommt eines der einfacheren Features, von Watson zum Einsatz – die Sprachübersetzung. Zunächst verwende ich dafür einen 5250-Bildschirm, der mir die Eingabe eines Textes und die zugehörige Sprache des Textes und die Sprache, in die dieser Text übersetzt werden soll, erlaubt. Diese Informationen werden dann an Watson gesendet. Als Ergebnis erhalte ich den übersetzten Text.
Der 5250-Bildschirm
Die DDS für den in Abbildung 1 dargestellten Bildschirm ist sehr einfach (siehe Bild 2).
Die Bildschirmdatei (TOWATSOND) besteht aus einem Format mit drei Eingabefeldern und zwei Ausgabefeldern. Mit den beiden Eingabefeldern FROMLANG und TOLANG können die Ausgangs- und die Zielsprache gewählt werden. FROMTEXT ist der zu übersetzende Text.
Das Ausgabefeld TOTEXT ist der übersetzte Text, SQLCODEO ist der Wert von SQLLCOD (falls ein Fehler auftritt). Mit F3 wird das Programm beendet.
In diesem Beispiel können die Sprachen Englisch, Spanisch, Französisch, Italienisch und Portugiesisch verwendet werden. Watson erlaubt auch Arabisch. Allerdings wollte ich das Handling mit der CCSID vermeiden und habe Arabisch nicht ausgewählt.
In einem späteren Artikel zeige ich Ihnen, wie das ohne großen Aufwand unter Verwendung von Profound realisierbar ist.
Das Programm
Die Logik des Programmes (TOWATSON) ist auch sehr einfach. Es gibt einige Dinge, auf die ich dennoch hinweisen möchte. Die Kennzeichen (A), (B) und (C) finden Sie auch im Programmcode wieder.
(A) Die Datenstruktur definiert eine Feldgruppe mit den Sprachcodes. Die Codes entsprechen der Ziffer, die bei FROMLANG und TOLANG eingegeben wurde (1 = English(en), 2 = Spanish (es) und so weiter).
(B) Das Programm zeigt in einer Schleife den Bildschirm an bis F3 gedrückt wird.
(C) Bei jedem Durchlaf durch die Schleife wird die Subprozedur transLate_Text() aufgerufen. Dabei werden die drei Parameter FROMLANG, TOLANG und FROMTEXT als Eingabeparameter übergeben. Der vierte Parameter TOTEXT ist der Rückgabewert mit dem übersetzten Text.
Die Sub-Prozedur transLate-Text()
Der Vollständigkeit halber liefere ich Ihnen auch noch den Code der erforderlichen Sub-Prozedur. Eine Erläuterung derselben und weitere Erklärungen folgen dann im nächsten Artikel
Bis dahin wünsche ich Ihnen weiterhin viel Spaß beim Vermehren Ihrer Fertigkeiten.
Den Autor Theo Bär erreichen Sie unter EDV-Beratung Theo Bär (info@edv-baer.com).