Expertensystem-Shells lassen sich nur schwer miteinander vergleichen, denn:

Objektive Kriterien sind noch Mangelware

18.03.1988

Expertensysteme werden künftig die Entwicklung des DV-Markts bestimmen - so heißt es. Wer sich jedoch unter diesem Eindruck eine Expertensystem-Shell anschaffen will, dem fällt die Entscheidung schwer. Dabei ist das Angebot nicht einmal besonders groß: was fehlt. sind klare Vergleichsmaßstäbe. Ralph Langner* nennt die wichtigsten Leistungsmerkmale.

Welches Entwicklungswerkzeug wird meinen Anforderungen am besten gerecht und zeigt darüber hinaus noch ein ausgewogenes Preis/ Leistungs-Verhältnis? - So lautet die entscheidende Frage.

Wenn man das Prospektmaterial durchsieht, das die Anbieter zur Verfügung stellen, läßt sich die Antwort nur selten finden.

Leider wenden sich im PC-Bereich viele Anbieter an den KI-Laien und ersparen sich aus diesem Grund wichtige Details, anhand derer man die wirkliche Leistungsfähigkeit eines Systems abschätzen könnte. Symptomatisch hierfür ist die schwer durchschaubare Preisgestaltung. So reicht die Spanne von 1000 bis über 20 000 Mark; wer Software für Workstations sucht, muß entsprechend tiefer in die Tasche greifen. Die Frage ist dabei, wo die wesentlichen Unterschiede liegen, wenn laut Herstellerinformation die meisten Shells sowohl für Knowledge-Engineering-Profis als auch für blutige Anfänger geeignet sind.

Hohe Preise garantieren noch keine Qualität

Um es gleich vorweg zu sagen: Auch in diesem Bereich ist ein hoher Preis nicht immer Garant für eine entsprechende Leistung. Wie in jedem neuen Markt sind die Herstellerinformationen wenig substantiell und das Angebot nicht transparent. Im folgenden sollen die wichtigsten Leistungsmerkmale von Expertensystem-Shells aufgeführt werden, um eine verhältnismäßig objektive Beurteilung der unterschiedlichen Angebote zu ermöglichen.

Die für eine generelle Beschreibung des Produkts erforderlichen Daten erklären sich fast von selbst. Für die Beurteilung ist neben dem Preis auch die erforderliche beziehungsweise empfohlene Hardware wichtig. Außer der grundsätzlichen Unterschiede zwischen Workstations und PCs ist hier zu beachten, daß einige PC-basierte Systeme heute bereits in Spezialversionen für Rechner mit 286er und 386er Prozessoren verfügbar sind. Der auf diese Weise ausnutzbare Arbeitsspeicher ist ein Gradmesser für die Ausführungsgeschwindigkeit.

In diesem Zusammenhang ist auch das erforderliche Betriebssystem zu sehen. Für den PC-Bereich werden inzwischen Shells angeboten, die spezielle Betriebssystem-Erweiterungen nutzen und damit interessante Möglichkeiten wie zum Beispiel Multitasking eröffnen.

Welches Entwicklungswerkzeug einem Produkt zugrunde liegt, kann bereits einen Hinweis auf seine Leistungsfähigkeit geben: Shells, die in einer speziellen KI-Programmiersprache wie Lisp oder Prolog geschrieben sind, könnte komplexere Informationen verarbeiten als solche, die in einer konventionellen Sprache entwickelt wurden - besonders dann, wenn es sich um echte Compiler-Entwicklungen handelt.

Zusätzlich zur Leistungsfähigkeit ist aber auch die Portabilität und die Integrationsfähigkeit zu beachten. In dieser Hinsicht haben sich Shells hervorgetan, die in der Programmiersprache C entwickelt wurden.

Die Art der verwendeten Wissensrepräsentation ist ausschlaggebend dafür, für welche Problemstellungen sich eine Expertensystem-Shell eignet. Regelbasierte Systeme bauen auf modularen "Wenn-dann-Verknüpfungen" auf und haben den Vorteil, daß sich diese häufig verwendete Art der Wissensrepräsentation für viele Anwendungsbereiche eignet und vom Benutzer leicht nachvollzogen werden kann.

Objektorientierte Shells dagegen beschreiben logische Objekte oder Klassen von Objekten durch Eigenschaftslisten, die auf Aktionen oder auf weitere Objekte verweisen Diese Wissensrepräsentation eignet sich fur komplexere, doch eher statische Problemstellungen und ist weniger leicht nachzuvollziehen als die regelbasierte. Einige wenige "hybride" Shells verfügen über beide Formen der Wissensrepräsentation.

Die Verwendung von Variablen vermag den Aufbau einer Wissensbasis und damit den Prozeß des Knowledge-Engineering radikal zu verkürzen. Mit Hilfe von Variablen ist es möglich, komplexe Sachverhalte in komprimierter Form auszudrükken und Parameter zu vergeben. Während im Bereich der logischen Programmierung alle Variablen lokal sind, können globale Variablen dazu dienen, auf einfache Weise für den gesamten Programmablauf feste Parameter einzurichten.

Viele Shells sind aber nur in der Lage, "balancierte" Variablen, die zum Beispiel sowohl im Wenn-Teil als auch im Dann-Teil einer Regel auftauchen, zu benutzen. Dagegen erlauben "unbalancierte" Variablen, die beispielsweise nur innerhalb des Dann-Teils einer Regel auftauchen, die Abbildung komplexerer Wissensstrukturen und interessante Möglichkeiten der prozeduralen Programmierung.

Arithmetische Operationen erfordern spezielle Shells

Als wissensbasierte Systeme eignen sich Expertensysteme von vornherein nicht zu arithmetischen Operationen. Dennoch wird es in vielen Anwendungen erforderlich sein, einige Berechnungen vom Expertensystem durchführen zu lassen. Aus diesem Grund ist es wichtig, zu wissen, welche arithmetischen Operatoren verfügbar sind.

Die meisten Shells verfügen über die vier Grundrechenarten. Werden komplexere Operatoren benötigt zum Beispiel für statistische Auswertungsprozeduren, so sind spezielle Shells erforderlich, die einen größeren Satz an arithmetischen Operatoren bereitstellen oder die Möglichkeit geben, benutzerdefinierte Prozeduren und Funktionen aufzurufen.

Die Kapazität der Wissensbasis entscheidet darüber, wieviel Wissen aufgenommen werden kann und welchen Grad der Komplexität die Anwendungen aufweisen dürfen. Wichtige Eckdaten sind die maximale Zahl von Einträgen sowie deren maximale Größe in KB.

Im Bereich der Workstations selbstverständlich, gehört eine vollautomatische virtuelle Speicherverwaltung bei den PCs zu den Ausnahmen, die gegenwärtig noch teuer zu bezahlen, ihren Preis aber oft wert sind. Häufiger ist die Möglichkeit vorhanden, einzelne Module der Wissensbasis als Dateien von der Platte zu laden und bei Erreichen der Speichergrenze wieder zu entladen.

Die in einer Expertensystem-Shell enthaltene Ablaufsteuerung- entscheidet je nach Anwendung darüber, wie schnell und wie strukturiert eine Problemlösung gefunden werden kann. So verfügen die meisten Systeme über eine Topdown-Ablaufsteuerung. Diese Systeme vollziehen den Suchprozeß, indem sie von einem Ziel ausgehend rückschließen, ob dessen Eintrittsvoraussetzungen erfüllt sind.

Wenngleich der Top-down-Ansatz in vielen Fällen eingesetzt wird, ist in Spezialanwendungen mit einer großen Zahl von bereits bekannten Fakten die Bottom-up-Kontrolle erfolgreicher: Diese Methode sucht von den Eingangsdaten (der Ausgangssituation) her den Zielzustand herbeizuführen. Da der Bottom-up-Ansatz bedeutend schwieriger zu implementieren und für den Benutzer nachzuvollziehen ist als sein Gegenpart, gibt es bisher erst wenige Shells, die über diese Fähigkeit verfügen. Unter diesen finden sich "hybride" Systeme, die sowohl Top-down- als auch Bottom-up-Kontrolle bieten

Als Suchstrategie in einem Problemraum kommt überwiegend der Depth-first-Ansatz zur Anwendung, bei dem ein Suchpfad zuerst "vertikal" in die Tiefe erweitert wird. Diese Strategie hat sich in der Praxis zur schnellen Auffindung von Lösungen bewährt. Demgegenüber wird der Problemraum bei der Breadth-first-Strategie "horizontal" - Ebene für Ebene - durchsucht. Diese sehr selten verwendete Strategie ist zwar meistens langsamer als der Depth-first-Ansatz, vermag aber im Falle alternativer Lösungen die beste herauszufinden.

Als Best-first-Strategie oder "heuristische Suche" werden Verfahren bezeichnet, bei denen zusätzliches Wissen über das Problem dazu genutzt wird, die Zahl der Alternativen einzugrenzen und so die Suche zu beschleunigen. Hierfür stellen einige Shells Gewichtungsfaktoren zur Verfügung, die bei alternativen Regeln darüber entscheiden, welche davon zuerst überprüft wird. Für große und komplexe Systeme sind solche heuristischen Lösungsverfahren oft unabdingbar, wenn es darum geht, die Ausführungszeit zu beschleunigen.

Die Fähigkeit zu "unscharfem Schlußfolgern" ist überall dort von Bedeutung, wo das verfügbare Expertenwissen und/oder die verarbeiteten Daten nicht in exakter und eindeutiger Form vorliegen, was für sehr viele Anwendungsbereiche zutrifft. Unscharfes Schlußfolgern erlaubt die Verarbeitung von "Sicherheitsfaktoren", auf deren Basis auch in wenig strukturierten Entscheidungssituationen ein gewichtetes Urteil abgegeben werden kann.

Die meisten Systeme mit unscharfem Schlußfolgern basieren auf einer Methode, die zuerst im Expertensystem "Mycin" Verwendung fand und sich in der Praxis gut bewährt hat. Demgegenüber sind Ansätze, die auf dem Bayes-Theorem zur Verarbeitung abhängiger Wahrscheinlichkeiten beruhen, zwar prinzipiell leistungsfähiger. Doch dieser Ansatz erfordert eine Vielzahl von quantitativen Daten über das Wissensgebiet; und die sind in dem seltensten Fällen bekannt. Systeme, die auf dem Modell der "Fuzzy Logic" beruhen, eignen sich besonders für die Verarbeitung von vagen Schätzungen ("ziemlich viel", "wenig" etc.), haben jedoch bisher leider außerordentlich selten Verwendung gefunden.

Einige KI-Workstations haben sich in der Praxis als Insellösungen herausgestellt, bei denen trotz aller Intelligenz Daten mühselig per Hand eingegeben werden müssen, die anderweitig bereits in maschinenlesbarer Form vorliegen. Die Fähigkeit zur Integration der Expertensystem-Shell in die organisationseigene Umwelt trägt entscheidend dazu bei, daß ein Expertensystem nicht zum trivialen Frage-Antwort-Spiel wird.

Unternehmensdaten aus dem DBMS müssen abrufbar sein

Durch die Anbindung an andere Programme ist es möglich, Prozeduren zu benutzen, die bereits fertige Problemlösungen repräsentieren. Diese Integration kann einerseits schlicht im Aufruf ausführbarer Programme erfolgen oder aber in der Einbindung von relativem Code, wobei es wichtig ist, welche Programmiersprachen von der Shell unterstützt werden. Gebräuchliche Möglichkeiten zur Anbindung bestehen bei C, Assembler, Lisp und Prolog.

Lese-/Schreibzugriffe in Form prozeduraler Elemente der Wissensbasis ermöglichen das Einlesen von Datenbeständen, die bereits als ASCII-Datei vorhanden sind, oder die formatierte Ausgabe von Listen, die später mit anderen Programmen weiterverarbeitet werden sollen. Wichtig sind im betrieblichen Bereich insbesondere Schnittstellen zu Spreadsheets und Datenbanksystemen, durch die bereits gespeicherte Unternehmensdaten effizient vom Expertensystem abgerufen werden können.

Die Parameterübergabe mit anderen Prozessen ist dort wichtig, wo - zum Beispiel im Rahmen von Multitasking-Systemen - die Ausgabe anderer Programme als Eingabe für das Expertensystem genutzt werden soll und umgekehrt. Wichtig hierbei ist die Spezifikation, welche Protokolle von der Shell unterstützt werden.

Keine ernsthafte Anwendung ohne Erklärungskomponente

Ein integrierter Treiber für die serielle Schnittstelle ermöglicht eine Vielzahl von ausgefeilten Anwendungen, denen in Zukunft sicher größere Bedeutung zukommen wird. Beispiele sind der Aufbau einer Schnittstelle zwischen PC und Workstation oder Mainframe, etwa zur Abfrage externer Datenbanken, oder die Anlagensteuerung im Bereich der Robotik.

Eine wesentliche Fähigkeit von Expertensystemen besteht darin, daß sie dem Benutzer ihre Problemlösungen erklären können. Auf diese Weise wird nicht nur die Akzeptanz gesichert (Glaubwürdigkeit und zusätzlicher Lerneffekt), sondern die Schlußfolgerungen eines Expertensystems können auch nochmals überprüft werden. Deshalb verfügen die meisten Shells über irgendeine Erklärungskomponente. Shells ohne Erklärungskomponente eignen sich aus demselben Grund kaum für ernsthafte Anwendungen.

Die Beantwortung von "Warum-Fragen" erklärt dem Benutzer, warum das Expertensystem im Laufe einer Konsultation eine bestimmte Frage stellt. Bei automatischen Erklärungstexten wird der relevante Eintrag in der Wissensbasis, zum Beispiel die gerade überprüfte Produktionsregel, angezeigt. Einige Shells erlauben es dem Entwickler, eigene Erklärungen vorzuformulieren. Gestaffelte Erklärungstexte geben dem Benutzer eine andere, weiterführende Erklärung, wenn dieser wiederholt "Warum" fragt.

Die Beantwortung von "Wie-Fragen" erklärt dem Benutzer hingegen, auf welche Weise das Expertensystem zu einer bestimmten Schlußfolgerung gelangte. Auch hier gibt es automatische, vorgebbare und gestaffelte Erklärungstexte.

Wenngleich die Programmiertechniken der "Künstlichen Intelligenz" speziell auch im Zusammenhang mit der Verbesserung von Benutzerschnittstellen Verwendung finden, sind bei vielen Expertensystem-Shells leider noch sehr wenig anwenderfreundliche Elemente integriert. Die Ausführung der Benutzeroberfläche hat jedoch Auswirkungen auf die Entwicklung und auf die Akzeptanz beim Endbenutzer.

Bezüglich der Bedienung dürfte der wichtigste Gesichtspunkt sein, ob das System über Kommandoeingaben und Meldungen in deutscher Sprache verfügt. Während es dem Entwickler zuzumuten sein mag, auch englische Befehle zu verwenden, stößt dies bei vielen Endbenutzern auf Probleme. Eine weitere Frage ist die, ob die Bedienung über Menüs oder über Kommandos erfolgt. Benutzerfreundliche Systeme werden heute über Pull-down- und Pop-up-Menüs gesteuert - im Idealfall mit einer Maus. Einige Shells dagegen ähneln in diesem Punkt den älteren Batch-Compilern.

Bei der Textausgabe weisen manche Systeme starke Beschränkungen auf. Hier ist auf die maximale Stringlänge zu achten; sie sollte größer als 255 sein, wenn für Beratungssysteme längere Frage- und Erklärungstexte angezeigt werden müssen. Sinnvoll ist in diesem Zusammenhang die Fähigkeit zum automatischen Zeilenumbruch, der verhindert, daß Wörter wahllos aufgetrennt werden, wenn sie nicht mehr ganz auf die Zeile passen. Die Forderung, daß deutsche Umlaute dargestellt werden können, dürfte eigentlich selbstverständlich sein, wird jedoch nicht von allen Shells erfüllt.

Die Ausführung der Bildschirmgestaltung vermag bei komplexen Systemen die Bedienung wesentlich zu erleichtern. Anwenderfreundlich sind in diesem Zusammenhang multiple, überlappende Windows. Ebenfalls sinnvoll zur Benutzerführung ist die Farbfähigkeit, die vom Entwickler frei konfigurierbar sein sollte.

Die Möglichkeit zur Grafikausgabe ist nicht generell erforderlich, sondern nur dort, wo wirklich damit gearbeitet werden soll und wo eine entsprechende Entwicklungsunterstützung in Form von Grafikeditoren vorhanden ist. Für einige Shells ist eine separate Grafikoberfläche erhältlich (Kosten berücksichtigen!).

Auf ein Online-Hilfssystem sollte in puncto einer guten Benutzerführung nicht verzichtet werden. Über ein spezielles Kommando erhält der Anwender einen Hilfstext, der sich auf die verschiedenen Eingabemöglichkeiten bezieht. Das Online-Hilfssystem sollte deshalb kontextsensitiv arbeiten und dem Entwickler ermöglichen, Hilfstexte selbst vorzugeben. Dabei haben gestaffelte Hilfstexte einen besonders hohen didaktischen Wert.

Die für eine Shell verfügbaren Knowledge-Engineering-Utilities entscheiden darüber, wie effizient der Entwicklungsprozeß vonstatten geht. Ernsthafte Anwendungen erfordern ausgereifte Utilities. Nahezu unverzichtbar ist die Fähigkeit zum Tracing, die es erlaubt, sämtliche Operationen der Inferenzkomponente im Detail nachzuvollziehen und auf diese Weise Fehler zu lokalisieren. Vorteilhaft ist in diesem Zusammenhang die Möglichkeit, sich einzelne Elemente der Wissensbasis und der Datenbasis während einer Konsultation ad hoc anzeigen zu lassen.

Ein integrierter Wissens-Compiler erspart dem Knowledge+Engineer, bei einer Entwicklung stets mit mehreren Programmen (zur Konsultation und zur Wissenskompilation) zu arbeiten. In gleicher Weise stellt ein integrierter Editor eine große Hilfe dar. Eine Cross-Reference-Utility listet die Beziehungen zwischen den Elementen der Wissensbasis auf. Die Erstellung eines Log-Files ermöglicht es, Konsultationen mitzuprotokollieren und im Detail auszuwerten.

Unterschiedliche Gebühren für Benutzersystem-Lizenz

Ein spezielles Endbenutzersystem erlaubt es dem Entwickler, sein System ohne die zugehörige Shell zu verkaufen. Aus diesem Grund ist für die Beurteilung wichtig, wie hoch die Lizenzgebühren für das Endbenutzersystem sind. Denn hier gibt es deutliche Unterschiede: Im PC-Bereich reicht die Spanne von kostenlos bis über 3000 Mark pro Lizenz.

Wer viel in die Entwicklung eines Expertensystems investiert hat, will unter Umständen vermeiden, daß der Endbenutzer die Wissensbasis auflisten und eventuell verändern kann. In diesem Fall empfehlen sich Systeme, die über entsprechende Vorkehrungen verfügen. Wichtig ist schließlich die Möglichkeit zur Beeinflussung der Benutzeroberfläche.