Die grafische Expertensystemschale
EMA-XPS


Programmierhandbuch

Inhaltsverzeichnis

1. Einleitung
2. Expertensysteme
3. Komponenten eines Expertensystems
4. Arten von Wissen 5. Wissensrepräsentation in hybriden Expertensystemschalen
5.1 Programmiersprachen in der künstlichen Intelligenz
5.2 Semantische Netze
5.3 Objektorientierung
5.4 Produktionsregeln
5.5 Prädikatenlogik
5.6 Constraints


1. Einleitung

In den modernen Industriegesellschaften unserer Tage sehen wir uns einer immer größer werdenden Informationsflut gegenüber, die wir täglich zu bewältigen haben. Wir sind gezwungen, diese Flut individuell zu kategorisieren und diese in relevante oder in für den einzelnen unwichtige Anteile zu trennen. Der Bedarf an Ansprechpartnern, die weniger häufig benötigtes Wissen verarbeitet haben und abrufbereit zur Verfügung stellen, steigt damit zwangsläufig ständig an. Da diese Resource - der Fachmann oder Experte - ein immer teureres und nicht beliebig verfügbares Gut wird, entsteht Bedarf an einer automatisierten Bereitstellung des Fachwissens. In diesem Zusammenhang sind in erster Linie zwei Grundbedürfnisse zu berücksichtigen:
  • die reine Bereitstellung von Fakten beispielsweise in Form von Lexika oder Datenbank-Systemen, oder
  • gerade in Fällen, in denen uns die Materie nicht genügend nahe ist, sodaß eine reine Suche nach Schlüsselbegriffen nicht mehr ausreicht, eine interaktive Unterstützung des Wissenssuchenden durch die Wissensquelle.
    Für das erstgenannte Problem existieren seit langer Zeit geeignete Lösungen, die mit dem Aufkommen der automatisierten Datentechnik noch deutlich leistungsstärker geworden sind.
    Im zweiten Fall steht eine Sitzung - ein Gespräch - im Vordergrund, in deren Verlauf der Experte, also die Wissensquelle, ausgehend von dem Vorwissen seines Gegenübers mit diesem gemeinsam herausfindet, wie im einzelnen die Problemstellung zu formulieren ist, um im Anschluß daran eine Lösung zu erarbeiten.

    2. Expertensysteme

    Ein Mensch wird in der Regel dann als Experte auf einem Fachgebiet bezeichnet, wenn er sich durch eine geeignete Ausbildung oder langjährige Tätigkeit spezielles Wissen und Problemlösungsfähigkeiten angeeignet hat, die ihm das Bewältigen von Aufgabenstellungen ermöglichen, die von einem Nicht-Experten nicht oder nicht so effizient zu bewältigen wären. In diesem Zusammenhang wird auch von Sachverständigen gesprochen. Läßt sich solches Wissen nicht in klare Aussagen fassen, sondern liegen ausschließlich Erfahrungswerte vor, die sich mit den Jahren zu einer immer wieder gleichbleibenden Methodik entwickelt haben, spricht man von heuristischem Wissen oder von Heuristiken.
    Die Künstliche Intelligenz (KI) ist ein sehr junges Forschungsgebiet. In diesem Bereich sind die Expertensysteme angesiedelt. Dabei handelt es sich um Computerprogramme, die Wissensrepräsentations- und Wissensverarbeitungsmechanismen kennen, die sie in die Lage versetzen können, auf einem speziellen Wissensgebiet die Kompetenz eines menschlichen Experten nachzubilden. Sie können als Beratungs- und Lernsysteme oder als Diagnosesysteme eingesetzt werden. Sie können Auslegungsprobleme bewältigen und sogar komplexe Prozesse steuern. Außer bei der letztgenannten Funktion muß das Programm immer in der Lage sein, Anfragen eines Benutzers entgegenzunehmen, zu präzisieren und in vollständige Problemstellungen umzuformulieren. Es muß verständliche Antworten generieren und Hilfestellung während der gesamten Sitzung anbieten können. Diese Anforderungen lassen sich mit herkömmlichen Datenverarbeitungsprogrammen nicht oder nur mit einem sehr hohen Aufwand realisieren [X1].
    Allein der Begriff Expertensystem verleitet leicht zu der Annahme, das Wissen eines Fachmanns nach geglückter Eingabe ständig in einer Weise verfügbar zu haben, daß auf diesen Menschen nötigenfalls ganz verzichtet werden kann. Praktisch stößt man im Umgang mit derartigen Systemen bald an Grenzen, die dann die überhöhten Erwartungen schnell enttäuschen. Die Verwendung derartiger Systeme führt nicht zwangsläufig zum gewünschten Erfolg.
    Mit den heute zur Verfügung stehenden Expertensystemschalen - also Programmen zur Erstellung und Betrieb von Expertensystemen - ergeben sich Zwänge im Bereich der Inferenzmaschine, also der Problemlösungskomponente, des Speicherbedarfs und der vom Benutzer noch akzeptierbaren Antwortzeiten. Das hat zur Folge, daß eine scharfe Eingrenzung des verfügbaren Wissens vorgenommen werden muß, um die notwendige Wissenstiefe zu erreichen. Nur wenn sich das Endprodukt als eine kompetente Wissensquelle herausstellt - und sei es auch nur auf einem schmal umrissenen Fachgebiet - hat das Expertensystem eine Chance, akzeptiert zu werden. Und nur dann rentiert sich der hohe Aufwand, der im Vorfeld in die Einarbeitung in die verwendete Schale, die Wissensakquisition, Wissensstrukturierung und abschließende Umsetzung in die verfügbaren Wissensrepräsentationsmechanismen erbracht werden muß.

    3. Komponenten eines Expertensystems

    Die ersten Expertensysteme sind als Einzelprogramme realisiert worden. Ein sehr bekanntes Beispiel hierfür ist das an der Stanford University entwickelte Expertensystem MYCIN zur Diagnose und Therapie von bakteriellen Infektionskrankheiten des Blutes und der Meningitis [X2- X4]. Um nicht für jedes andere Problem, das wissensbasiert gelöst werden soll, vollständig neu entwickeln zu müssen, entstand daraus die Expertensystemschale EMYCIN (oder Empty MYCIN). Zu diesem Zweck war das medizinische Fachwissen aus MYCIN entfernt worden, sodaß nur die Problemlösungsfähigkeiten verblieben. Die Trennung von Schale (Programm) und Wissensbasis (Datei) leistete der Verbreitung von Expertensystemen Vorschub.
    Den Kern eines jeden Expertensystems bildet die Inferenzmaschine (Problemlösungs- oder Schlußfolgerungskomponente), die - unter anderem - in der Lage ist, unterschiedliche Wissensaussagen zu einer Kette von Schlußfolgerungen nach folgendem Schema zu verbinden:

    WENN A gilt, DANN muß auch B gelten;
    WENN aber B gilt, DANN muß auch C wahr sein;
    usw.

    Da die Fachexperten selbst ihr Wissen häufig in Form solcher WENN-DANN-Aussagen verbalisieren, wird der Vorteil dieses Funktionsprinzips leicht sichtbar.

    Die Inferenzmaschine ist in der Lage, Schlüsse aus den Wissensaussagen zu ziehen, die in Form von bereits bekannten Fakten und Regeln für das weitere Vorgehen vorliegen. Vorhandenes Wissen kann verknüpft werden, um hieraus neues Wissen abzuleiten. Der Inferenzmaschine kann ein Datenbankanschluß zur Verfügung stehen, um den Zugriff auf große Datenmengen zu ermöglichen. Die Wissensaussagen stehen in der Wissensbasis zur Verfügung. Bei den meisten Schalen stehen der Inferenzmaschine zusätzlich die Fähigkeit zur Abarbeitung und Auswertung der Ergebnisse von Algorithmen, das Aktivieren externer Programme inklusive Datenaustausch, sowie grafische Möglichkeiten zur Kommunikation mit dem Endbenutzer zur Verfügung.
    Die Schale stellt mit ihren Möglichkeiten der Wissensrepräsentation die Rahmenbedingungen für die Wissenseingabe, da die Wissensbasis nur mit solchen Wissenskonstrukten gefüllt werden kann, die die Inferenzmaschine und deren periphäre Komponenten bearbeiten können.
    Um das Fachwissen in die Wissensbasis zu integrieren, bieten viele Schalen eine Wissenserwerbskomponente an. Die Eingabe der verschiedenen Datenobjekte, Regeln und Relationen erfolgt zumeist in dafür ausgelegten Editoren. Diese unterstützen den Fachmann, der sein Wissen in das Expertensystem eingeben will. Falls von der Schale keine ausreichende Unterstützung für den Fachexperten bereitgestellt wird oder falls er nicht mit KI-Technologien vertraut ist, muß dieser den sogenannten Wissensingenieur bemühen. Der ist mit der Art und Weise der Wissenseingabe vertraut und kann - im Gespräch mit dem Fachexperten - die Wissensbasis erzeugen. Die Editoren verarbeiten die in formaler Sprache eingegebenen Wissensstrukturen, die über einen Interpreter an die Inferenzmaschine weitergeleitet werden.
    Eine Endbenutzerschnittstelle erleichtert bei dialogorientierten Expertensystemen die Kommunikation zwischen Endbenutzer und Inferenzmaschine in hohem Maße. Ihrem Aufbau kommt eine besondere Bedeutung zu, da sie das System repräsentiert und seine Akzeptanz bestimmt.
    Ein weiterer wichtiger Teilbereich eines Expertensystems ist die Erklärungs- und Hilfekomponente. Sie kann dem Benutzer bereits gezogene Schlußfolgerungen des Expertensystems verdeutlichen oder ihn beim weiteren Vorgehen im Verlauf einer Sitzung beraten. Mit ihrer Hilfe kann der vom System gewählte Lösungsweg nachvollzogen werden. Dies macht die Vorgehensweise des Expertensystems für den Entwickler und den Benutzer transparent.
    Ein Expertensystem muß nicht zwingend alle genannten Komponenten enthalten. Beispielsweise können eingebettete Systeme, die unmittelbar in einen technischen Prozeß eingebunden sind, direkt mit diesem kommunizieren. Ihre Meß- und Zustandsdaten bekommen solche Systeme über einen direkten Zugriff auf den Prozeß. Ein solches System kann ohne weiteres auf eine Erklärungskomponente verzichten. Eine endbenutzerfreundliche Kommunikationsschnittstelle kann ebenso entfallen [S4, X1].
    Expertensysteme sind demnach grundsätzlich unterteilbar in
  • dialogorientierte Beratungssysteme, hier kommen der grafischen Endbenutzerschnittstelle sowie der Erklärungskomponente besondere Bedeutung zu, und
  • prozeßorientierte Systeme zur Steuerung, Regelung und Überwachung in Echtzeit.
    Nicht alle Inferenzmaschinen basieren (ausschließlich) auf der Abarbeitung von WENN-DANN-Aussagen. Es gibt beispielsweise auch Werkzeuge, die ausschließlich mit formulierten Zwängen (Constraints) operieren [X9,S2,S3]. Systeme, die mehrere unterschiedliche Wissensrepräsentationsformalismen anbieten, welche voneinander wechselseitig Gebrauch machen können, werden als hybride Expertensystemschalen bezeichnet [X7,X8]. Damit kann Wissen immer in der geeignetsten Weise eingegeben werden, was die Größe der Wissensbasis verringert und die Wissensverarbeitung begünstigt.

    Bild P1: Komponenten eines Expertensystems

    In Bild P1 wird das Zusammenspiel aller Komponenten eines Expertensystems aufgezeigt. Bekannte große hybride dialogorientierte Expertensystemschalen sind in der Tabelle P1 aufgeführt [S1,S4].

    Werkzeug Anbieter Preis Einzellizenz für UNIX
    KEE Intellicorp 70 000,- DM
    Nexpert Object Neuron Data 30 000,- DM
    babylon-3 VW-Gedas 18 000,- DM

    Tabelle P1: Bekannte große hybride dialogorientierte Expertensystemschalen

    4. Arten von Wissen

    Bevor die Wissenseingabe in eine hybride Schale Erfolg haben kann, muß eine gründliche Recherche des umzusetzenden Fachwissens erfolgen. Danach muß dieses Wissen strukturiert und - entsprechend seiner Inhalte - den verschiedenen Arten von Wissen zugeordnet werden [X1]. Dabei handelt es sich um:
  • Wissen über Objekte: Wissen über die Beschaffenheit oder über die Eigenschaften eines Objekts. Dies kann zum Beispiel das Wissen über die technischen Daten eines Motors sein (Motor XYZ, UR = 380V, IR = 10A, ...).
  • Wissen über Beziehungen: Hierbei handelt es sich um vergleichendes Wissen zwischen Objekten. Zum Beispiel die Aussage, daß Synchronmaschinen immer mit der elektrischen Frequenz der speisenden Spannung synchron drehen, im Gegensatz zu Asynchronmaschinen, die eine um den Schlupf verringerte Drehzahl besitzen.
  • Wissen über Vorgehensweisen: Der Experte weiß, in welcher Reihenfolge er das Problem angehen muß, um zu einer schnellen Lösung zu kommen. Dies kann bedeuten, daß zuerst die Bemessungsspannung eines Motors mit der Netzspannung verglichen werden muß, bevor andere Daten betrachtet werden dürfen.
  • Wissen über Vorschriften: Bei einer Problemlösung müssen verschiedene Gesetze und Grenzwerte eingehalten werden. Das Wissen über diese Zwänge bildet das Vorschriftenwissen. Beispielsweise ist der Betrieb einer permanenterregten Synchronmaschine ohne Verwendung eines exakten Lagegebers nur eingeschränkt oder gar nicht möglich.

    5. Wissensrepräsentation in hybriden Expertensystemschalen

    Zur strukturierten Darstellung von Expertenwissen stehen in hybriden Schalen unterschiedliche Wissensrepräsentationsmechanismen zur Verfügung. Hierbei finden sowohl deklarative, als auch prozedurale Formalismen Verwendung. Deklarative Formalismen enthalten die Beschreibung von Sachverhalten oder die Zusammenhänge zwischen ihnen, ohne auf die Verarbeitungstechniken einzugehen. Bei den prozeduralen Formalismen hingegen geht es um die Anwendung von Wissen und die daraus resultierenden Schlußfolgerungen.
    Die am häufigsten verwendeten deklarativen Formen sind semantische Netze oder die Mittel der objektorientierten Programmierung. Produktionsregeln, Constraints und die Prädikatenlogik sind dagegen den prozeduralen Formalismen zuzuordnen.
    Es sei darauf hingewiesen, daß bereits in den folgenden Unterpunkten gelegentlich auf die Besonderheiten der im später folgenden Kapitel 1.5 vorgestellten Schalen Babylon- 2 und babylon-3 eingegangen wird.

    5.1 Programmiersprachen in der künstlichen Intelligenz

    Mit dem Beginn der KI-Forschung kam der Bedarf nach mächtigen Programmiersprachen auf, die es dem Entwickler abnahmen, Standardkonstrukte wiederholt einzubringen. Dies ist beispielsweise bei der Verwaltung von dynamischem Speicher notwendig. In diesen Jahren war auch die Begrenztheit der Rechenleistung ein nicht zu unterschätzendes Problem. Dies öffnete den Weg hin zu der Programmiersprache LISP. Sie konnte auf speziellen Prozessoren abgearbeitet werden, die auf diese Sprache hin optimiert worden waren, sogenannte LISP-Maschinen [P9, P10]. Erst in den siebziger Jahren kam die Programmiersprache PROLOG dazu.
    Der Name LISP stammt von LISt Processing Language. LISP ist etwa so alt wie die Programmiersprache FORTRAN (FORmula TRANslation), die speziell für mathematische Problemstellungen entwickelt worden war [P2]. LISP dagegen ist zur Verarbeitung hochstrukturierter Datenmengen ausgelegt worden. Selbst Programme werden in diesen Datenstrukturen in Form von verschachtelten Listen dargestellt, womit die Trennung von Daten und Programm aufgehoben ist. Das Abarbeiten von Programmen geschieht auf der Basis des Lambda-Kalküls [P11, P12]. Selbst Operatoren werden über das Lambda-Kalkül realisiert. Die LISP-Notation für "A ist kleiner als B" lautet dementsprechend (< A B). Im Gegensatz zu FORTRAN, dessen Programmdateien zuerst kompiliert werden müssen, bevor die Programme abgearbeitet werden können, arbeitet LISP interpretativ - wie beispielsweise auch der Beginners All-Purpose Symbolic Instruction Code (BASIC) Interpreter [P1]. Zur Unterstützung des Programmierers stehen ein Editor, ein Syntaxprüfer und ein Testsystem zur Verfügung. Die Speicherverwaltung wird - wie bei allen Interpretern - von LISP selbst durchgeführt. Zur Beschleunigung ausgetesteter Programmteile steht darüber hinaus ein Compiler zur Verfügung.
    Erst 1984 gelang es, die bis dahin entstandene große Zahl von LISP-Dialekten zu vereinen und eine einheitliche Sprachdefinition unter der Bezeichnung CommonLISP festzuschreiben [P13]. Die Notwendigkeit dazu entstand nicht zuletzt durch die gestiegene Nachfrage an dieser Sprache im Rahmen der KI-Forschung. Heute stellen alle LISP- Anbieter wenigstens diesen Sprachumfang zur Verfügung. Damit ist die Möglichkeit der portablen LISP-Programmierung geschaffen worden. Mittlerweile gibt es eine neuere Festlegung des Sprachumfangs von CommonLISP, die auch das CommonLISP Object System (CLOS) berücksichtigt. CLOS ist der Nachfolger des Flavorsystems, das die erste Form einer objektorientierten Erweiterung von LISP war [P16]. Im Jahr 1989 hat das Standardisierungskommittee X3J13 des American National Standards Institute (ANSI) diesen erweiterten Standard erneut festgeschrieben [P14]. In Anlehnung an die Titel der Bücher von Guy L. Steele Jr., dem stellvertretenden Vorsitzenden von X3J13, "CommonLISP The Language" und "CommonLISP The Language, Second Edition", haben sich auch die Bezeichnungen CLtL1 und CLtL2 für diese beiden Standards eingebürgert. Da diese Bücher die Sprachfestlegungen wohl referenziert dokumentieren, sind sie zu Standardliteratur erhoben worden. Seit September 1995 ist die ANSI-Festlegung von CommonLISP/CLOS verfügbar und bereits von ersten Anbietern umgesetzt [P19]. Damit ist auch für die Programmiersprache LISP eine Unsicherheit beendet worden. Bei den Sprachen FORTRAN und C ist diese Unsicherheit aufgrund stärkeren Interesses deutlich schneller durch Normierung behoben worden [P2 - P4].
    Die Programmiersprache PROLOG (PROgramming in LOGic) gewinnt in den letzten Jahren im Bereich der KI-Entwicklung an Bedeutung [P17, P18, S2, S3]. Sie ist eine logikorientierte Programmiersprache (Prädikatenlogik) und arbeitet als ein Problemlöser. Dabei werden Horn-Klauseln (näheres in Kapitel 1.4.5) nach bestimmten Theorembeweisverfahren der symbolischen Logik abgeleitet, mit dem Ziel, einen Widerspruchsbeweis zu führen. Es stehen aber auch ein funktionales Verarbeitungsmodell und ein relationales Verarbeitungsmodell zur Verfügung.

    5.2 Semantische Netze

    Ein semantisches Netz, wie es in Bild P2 dargestellt wird, ist ein grafisches Netzwerk von Knoten, die durch gerichtete, benannte Kanten miteinander verbunden sind [X1, X2, X8]. Die Knoten enthalten die Fakten, während die Kanten beliebige Relationen beschreiben. Durch die Verwendung von Beziehungen wie "ist ein" oder "hat die Eigenschaft" lassen sich semantische Netze hierarchisch strukturieren. Dies bedeutet, daß Oberklassen ihre Eigenschaften an Unterklassen - beziehungsweise an Objekte - vererben.
    In dem konkreten Beispiel aus Bild P2 existiert eine Oberklasse Umrichter, dem die Eigenschaft zugeordnet wird, Halbleiterventile zu besitzen. Diese Eigenschaft vererbt er an die Unterklassen Zwischenkreisumrichter und Umrichter- ohne-Zwischenkreis. Ein Zwischenkreisumrichter wiederum benötigt einen Energiespeicher und moduliert seine Ausgangsgröße. Die Unterklasse Spannungszwischenkreisumrichter bekommt diese Eigenschaft nun übertragen (vererbt) und es werden weitere zugeordnet.

    Bild P2: Aufbau eines semantischen Netzes

    Mit Hilfe des Semantischen Netzes kann folgende Aussage über einen Spannungszwischenkreisumrichter getroffen werden: ein Spannungszwischenkreisumrichter enthält als Energiespeicher einen Kondensator. Die veränderlichen Spannungszeitflächen werden über die Schaltzustände von Halbleiterventilen moduliert.
    Ein Hauptvorteil dieser Präsentationsform ist ihre Flexibilität. Neue Knoten und Relationen können nach Bedarf problemlos definiert werden.
    Semantische Netze werden jedoch weniger in Expertensystemen eingesetzt, sondern bilden vielmehr die konzeptionelle Grundlage für die Wissensdarstellung mit Hilfe eines objektorientierten Programmierstils.

    5.3 Objektorientierung

    Bei objektorientierten Programmiersprachen stehen nicht Prozeduren im Vordergrund, die ungehindert auf beliebige Daten zugreifen können, sondern Objekte. Dabei handelt es sich um Datenstrukturen, deren einzelne Einträge (Slots oder Merkmale genannt) die Eigenschaften dieses Objekts beschreiben. Der Programmfluß kommt dadurch zustande, daß die Objekte einander Nachrichten verschicken. Diese Nachrichten heißen Behaviors (Verhaltensweisen) und entsprechen Funktionen. Sie sind aber den Objekten zugeordnet und können nur Merkmale desjenigen Objekts beeinflussen, dem sie zugeordnet sind. Ein Objekt ist dabei eine individuelle Ausprägung einer Vielzahl gleichartiger Objekte, die einer gemeinsamen Klasse angehören. Dieser Programmierstil ist als eine Erweiterung des modularen Programmierstils entstanden. Er gestattet, selbst sehr große Programme noch handhaben zu können. Interessant wird er vor allem dadurch, daß durch Vererbungsmechanismen aus allgemeinen Objekten komplexere aufgebaut werden können. Beispielsweise könnte eine Schleifring-Asynchronmaschine aus der Rotor- und der Statorwicklung zusammengesetzt sein, die wiederum beide aus der Klasse Drehfeldwicklung stammen könnten. Neue Klassen werden also dadurch gebildet, daß Merkmale aus anderen Klassen ererbt werden und gegebenenfalls neue Merkmale hinzukommen. Auch die Nachrichten (Behaviors) werden vererbt, soweit sie nicht durch spezialisiertere Versionen überdeckt werden. Im Zusammenhang mit Expertensystemen werden Klassen häufig als Frames (Rahmen) und Objekte als Instanzen (Ausprägungen) bezeichnet.
    Ein Frame entspricht in etwa einem Knoten innerhalb eines Semantischen Netzes. Im Gegensatz zu einem Semantischen Netz sind jedoch keine frei definierbaren Objektrelationen möglich.
    Durch Vererbung besteht bei Frames somit die Möglichkeit des hierarchischen Aufbaus hochspezialisierter Frames, beginnend bei einer allgemeinen Klasse (Super- Frame) bis hin zu immer spezielleren Klassen, den Sub- Frames.
    In Bild P3 wird der Zusammenhang zwischen einem Frame und seinen Instanzen verdeutlicht. Der Frame Motor enthält die einzelnen Merkmale Name, Spannung, Strom, und so weiter. In den Instanzen des Frames Motor werden nun die speziellen Werte bestimmter Motoren eingetragen [X1, X2, X8, P5, P6, P15, P16].

    Bild P3: Frames und Instanzen

    5.4 Produktionsregeln

    Produktionsregeln (kurz Regeln) sind die von den meisten Expertensystemen verwendete Form der Wissenspräsentation, da das in ihnen implementierte Wissen leicht zu lesen und zu pflegen ist. Sie bilden eine weitgehend kontextunabhängige Wissenseinheit, die daher auch isoliert betrachtet und verstanden werden kann. Hieraus ergibt sich eine einfache Modifizierbarkeit der Wissensbasis. Bild P4 verdeutlicht den Aufbau einer Regel, die im wesentlichen aus einem Bedingungsteil (der Prämisse) und einem Aktionsteil (der Konklusion) besteht.

    WENN der Bedingungsteil (Prämisse) erfüllt ist,
    DANN wird der Aktionsteil (Konklusion) abgearbeitet.

    Bild P4: Aufbau einer Regel

    Durch das Anwenden von Regeln auf bereits bekannte Fakten können neue Fakten gewonnen werden.

    Bei leistungsfähigen Expertensystemen wird die Gesamtzahl der eingebrachten Regeln schnell groß. Um die Suche nach geeigneten Regeln zu beschleunigen, können kontextbezogen Regeln zu Regelmengen zusammengefaßt werden. Dieses Vorgehen empfiehlt sich, sobald ein Expertensystem insgesamt 100 oder mehr Regeln umfaßt, von denen für ein Teilproblem nur wenige Regeln benötigt werden, da auch die nicht zu diesem Kontext gehörenden Regeln immer wieder geprüft werden [X1, X2, X8].

    Bild P5: Aufteilung der Regeln einer Wissensbasis in Regelmengen

    Es existieren drei grundsätzlich unterschiedliche Abarbeitungsstrate-gien für Regeln. Dies sind die Vorwärts- und Rückwärtsverkettung, sowie die sequentielle Abarbeitung:
  • Bei der sequentiellen Abarbeitung werden den Regeln einer Regelmenge Prioritäten (Vorränge) zugeordnet. Die Regeln werden gemäß ihrer Prioritäten abgearbeitet. Bei mehreren Regeln gleicher Priorität arbeitet beispielsweise die Expertensystemschale babylon-3 diese Regeln gemäß der Reihenfolge ihres Auftretens ab. Babylon-2 verzichtet auf den Mechanismus der Regelpriorisierung. Hier entscheidet die Plazierung der Regel in der Regelmengen-Liste über ihre Priorität. Die erste Regel hat automatisch die höchste Priorität.
  • Bei der Vorwärtsverkettung werden zunächst alle anwendbaren Regeln der Regelmenge durch Mustervergleich (pattern-matching) ermittelt. Anschließend wird eine Regel ausgewählt und zur Ausführung gebracht. Bei der Auswahl der Regeln wird zwischen Tiefensuche (Depth-first) und Breitensuche (Breadth-first) unterschieden. Vorwärtsverkettete Systeme werden auch als datengesteuerte Systeme bezeichnet [X1, X6]. Vorwärtsverkettete Regelmengen werden eingesetzt, wenn Teilergebnisse zu ermitteln sind und der Lösungsraum sehr groß ist. Heuristisches Vorgehen ist notwendig, um den Grad an nicht benötigtem Wissenserwerb in Grenzen zu halten.
  • Im Gegensatz zu den vorwärtsverketteten Regelmengen geht die Rückwärtsverkettung von der Zielsetzung der Regeln, also der Konklusion, aus. Zunächst werden die Konklusionen aller Regeln geprüft. Führt eine Konklusion zum gewünschten Teilziel (wenn diese Regel zur Anwendung käme), werden die Voraussetzungen ermittelt, die die Prämisse dieser Regel erfüllen würden. Es werden wieder die Aktionsteile aller Regeln durchsucht, um die Regeln zu finden, die die Erfüllbarkeit der Prämisse der aktuellen Ausgangsregel erreichen würden. Der Vorgang wird, beginnend bei dem tatsächlichen Zustand des Faktenwissens bis hin zur Lösung des anfänglich gesteckten Teilziels, solange wiederholt, bis die Reihenfolge der Regelabarbeitung komplett festliegt. Falls dies nicht gelingen kann, wird abgebrochen. Rückwärtsverkettete Regelwerke werden auch als zielgesteuert bezeichnet.

    Bild P6: Strategien für die Verkettung von Regeln

    5.5 Prädikatenlogik

    Die Prädikatenlogik stellt eine Methode zur Verfügung, aus einer Menge von Einzelerfahrungen aussagenlogische Formeln abzuleiten, und damit Prädikate so zu bilden, daß sich die Wissensbasis aufbauen läßt. Damit lassen sich beispielsweise aus heuristischem Wissen allgemein gültige Regeln erzeugen (Wissenserwerb) [P17, P18, S2, S3].
    Unter der im folgenden Kapitel 1.5 vorgestellten Expertensystemschale Babylon-2 steht eine sehr mächtige PROLOG-Implementierung zur Verfügung. Diese ist wie die Schale selbst in CommonLISP realisiert worden, was aufgrund der Vorgaben des Lambda-Kalküls (vgl. Kapitel 1.4.1) mitunter geringfügige Abweichungen in der Syntax zur Folge hat. Im Vorfeld der Erstellung des ebenfalls CommonLISP- basierten Nachfolgers babylon-3 wurden bereits vorhandene Babylon-2-Wissensbasen untersucht. Dabei stellte sich heraus, daß die PROLOG-Mechanismen dort nur Anwendung fanden, um in Regeln Variablen einbringen zu können. Das heißt, diese Wissensbasen nutzen nicht die Möglichkeiten der Horn-Klausel-Resolution. Daher wurde bei babylon-3 auf diese verzichtet und statt dessen die Babylon-Query- Language (BQL) eingeführt. Diese ermöglicht einen von Datenbankanwendungen bekannten Zugriff auf das objektorientiert abgelegte Faktenwissen. Daher ist auch die Namensgebung an die Structured-Query-Language (SQL) der Datenbankmanagementsysteme (DBMS) angelehnt worden [P7].

    5.6 Constraints

    Constraints (Zwänge) bieten die Möglichkeit, Abhängigkeiten zwischen verschiedenen Merkmalen einzelner Instanzen darzustellen. Es besteht die Möglichkeit, Ausprägungen eines oder Kombinationen mehrerer Objektattribute einzuschränken. Constraints bilden eine Art übergeordnetes Wissen, auch Metawissen oder Wissen zweiter Art genannt.
    Mit Hilfe der Regeln eines Constraints können aus bekannten Werten eines bestimmten Constraints die unbekannten Werte ermittelt werden. Diese Vorgehensweise heißt Propagierung [X1, X2, X8, X9].
    Werte, die durch Constraints bestimmt werden, ändern sich, sobald sich der bei der Berechnung zugrundeliegende Wert ändert. Weicht ein so berechneter Wert von dem Wert ab, der explizit eingetragen wurde, wird ein Constraint- Fehler erkannt und eine entsprechende Aktion gestartet. Auf diese Weise können Inkonsistenzen der Wissensbasis erkannt und behandelt werden.
    Mittels Bild P7 kann die Funktionsweise eines Constraints anhand des Ohmschen Gesetzes betrachtet werden. Es wird aus den Eingangswerten R und I die Ausgangsgröße U berechnet. Wird der Wert für die Spannung U in einer Weise geändert, daß die Beziehung U = R * I nicht mehr erfüllt ist, erfolgt eine Reaktion auf diesen Constraint-Fehler.

    Bild P7: Ein einfacher Zwang (Constraint)

    Bild P8: Ein Constraint-Netz

    In Bild P8 wird die Möglichkeit dargestellt, mehrere Constraints zu einem Netz zu verknüpfen. Ändert sich bei konstanter Ausgangsgröße eine der vier Eingangsgrößen, wird zunächst eine Constraint-Verletzung (Inkonsi-stenz) festgestellt. Eine geeignete Reaktion darauf ist in der Wissensbasis vorzusehen. Beispielsweise könnte die den Constraint verletztende letzte Aktion zurückgenommen werden. Waren bis dahin aber noch nicht alle Werte bekannt, wird das Constraint propagiert und die fehlende Ausgangsgröße ermittelt.
    Unter babylon-3 existiert nur ein einziges Constraint- Netz, das nur während der Abarbeitung der Start-Task propagiert wird, falls es nicht explizit abgeschaltet worden ist. Im weiteren Sitzungsverlauf bleibt das Netz ausgeschaltet.
    Unter Babylon-2 können diese primitiven Constraints zu mehreren Constraintnetzen verknüpft werden, wobei im einfachsten Fall ein einzelner primitiver Constraint auch als ein Netz angesehen werden kann. Die Anbindung der Constraintnetze an die Slots der Instanzen (gemäß Kapitel 1.4.3) erfolgt über Restriktionen.
    Beim Laden von babylon-3 Wissensbasen in die hier vorgestellte Expertensystemschale EMA-XPS werden bei Bedarf durch einen Postprozessor aus den primitiven babylon-3 Constraints ein Constraintnetz und eine Restriktion erzeugt.



    Zurück zum Inhaltsverzeichnis