Skip to main content
main-content

Inhaltsverzeichnis

Frontmatter

1. Arbeitsweise eines wissensbasierten Systems

Zusammenfassung
Unter einem wissensbasierten System (englisch: knowledge based system) wird ein auf EDV-Anlagen ausführbares Progammsystem verstanden, das einem Anwender — auf Anfragen hin — Informationen aus einem bestimmten Erfahrungsbereich, der sich an einem vorgegebenen Bezugsrahmen orientiert, bereitstellen kann. Um eine Vorstellung davon zu bekommen, aus welchen Komponenten ein wissensbasiertes System aufgebaut ist und wie diese Komponenten zusammenwirken, betrachten wir die folgende Aufgabenstellung:
• Nach Bekanntgabe von Abfahrts- und Zielort soll sich ein Bahnreisender — als Anwender des Systems — anzeigen lassen können, ob es zwischen diesen beiden Orten eine Zugverbindung im Intercity (IC)-Netz der Bundesbahn gibt.
Peter Bothner, Wolf-Michael Kähler

2. Arbeiten mit dem PROLOG-System

Zusammenfassung
Nachdem wir dargestellt haben, wie ein wissensbasiertes System strukturiert ist und in welcher Form von diesem System Anfragen bearbeitet werden, wollen wir im folgenden beschreiben, wie sich wissensbasierte Anwendersysteme durch den Einsatz eines PROLOG-Systems entwickeln lassen. Ein PROLOG-System kann als wissensbasiertes System aufgefaßt werden, dem eine konkrete Wiba vorzugeben ist, damit es sich — gegenüber einem Anwender — wie dasjenige wissensbasierte System verhält, das Anfragen auf der Basis einer vorgegebenen Aufgabenstellung bearbeiten kann. Somit können wir das Schema eines wissensbasierten Anwendersystems wie folgt angeben: Um die zu einer vorgegebenen Aufgabenstellung entwickelte Wiba in der erforderlichen Form zu beschreiben, setzen wir die zum PROLOG-System gehörende Programmiersprache PROLOG ein Mit den Elementen dieser Sprache ist die für das wissensbasierte Anwendersystem benötigte Wiba als PROLOG-Programm anzugeben.
Peter Bothner, Wolf-Michael Kähler

3. Rekursive Regeln

Zusammenfassung
Bisher haben wir es uns zur Aufgabe gemacht, PROLOG-Programme zu entwickeln, mit denen — durch Vorgabe der Direktverbindungen in Abb. 1.1 — lediglich Anfragen nach Verbindungen mit höchstens einer Zwischenstation beantwortet werden konnten. Dies war darin begründet, daß wir an einfachen Beispielen die Grundfertigkeiten zum Verständnis der Arbeitsweise der PROLOG-Inferenzkomponente erwerben wollten. Wir haben kennengelernt, daß diese Arbeitsweise auf der Unfizierung von Prädikaten, der Instanzierung von Variablen und dem Backtracking zum Wiederaufsetzen hinter Backtracking-Klauseln beruht. Jetzt stellen wir uns die Aufgabe,
• ein PROLOG-Programm zu entwickeln, auf dessen Basis das PROLOG-System Anfragen nach IC-Verbindungen beantwortet kann, die unabhängig von der Anzahl der Zwischenstationen sind (AUF4).
Peter Bothner, Wolf-Michael Kähler

4. Standard-Prädikate

Zusammenfassung
Bislang haben wir unsere Anfragen an das PROLOG-System mit den Prädikatsnamen von Fakten bzw. Regelköpfen — wie etwa “dic(ha,kö)” oder “ic(ha,fr)” — eingeleitet und die jeweiligen Argumente in Klammern angegeben. Dies war möglich, weil wir eine genaue Kenntnis derjenigen Prädikate besitzen, die in den Klauselköpfen des jeweiligen PROLOG-Programms eingetragen sind. Diese Kenntnis ist für den Entwickler eines wissensbasierten Systems wichtig, jedoch dem Anwender des Systems nicht zumutbar. Vielmehr sollte der Anwender mit Hilfe der Dialogkomponente des PROLOG-Systems in die Lage versetzt werden, seine Anfragen dialog-orientiert einzugeben. Dazu müssen diesbezügliche Anfragen und mögliche Antworten des Systems fester Bestandteil eines PROLOG-Programms sein.
Peter Bothner, Wolf-Michael Kähler

5. Einflußnahme auf das Backtracking

Zusammenfassung
In Kapitel 4 haben wir Anfragen an die Wiba gestellt, die mit der Meldung “IC-Verbindung existiert” (im Fall der Ableitbarkeit des Goals) bzw. “IC-Verbindung existiert nicht” (im Fall der Nicht-Ableitbarkeit des Goals) beantwortet wurden. Bei der Ableitbarkeits-Prüfung setzte Backtracking einzig und allein dann ein, wenn es um den Nachweis ging, ob überhaupt eine Ableitung möglich ist. Bei einer erfolgreichen Ableitung wurde die Programmausführung beendet, ohne daß ein weiteres Backtracking erfolgte.
Peter Bothner, Wolf-Michael Kähler

6. Sicherung und Verarbeitung von Werten

Zusammenfassung
In Kapitel 4 haben wir beschrieben, wie sich bereits abgeleitete IC-Verbindungen in den dynamischen Teil der Wiba eintragen und somit für eine nachfolgende Anfrage unmittelbar bereitstellen lassen. Zur Lösung unserer Aufgabenstellungen haben wir die Standard-Prädikate “asserta ”,tell, “listing” und “told” verwendet, die wir im folgenden zusammenfassend darstellen:
Peter Bothner, Wolf-Michael Kähler

7. Verarbeitung von Listen

Zusammenfassung
Im Rahmen der Aufgabenstellung AUF7 (siehe Abschnitt 4.2) haben wir uns für die Zwischenstationen im Hinblick auf Abfahrts-und Ankunftsorte interessiert, zwischen denen keine Direktverbindung besteht. Wir haben festgestellt, daß das von uns entwickelte Programm AUF7 die jeweils möglichen Variablen-Instanzierungen anzeigt, die jedoch nicht unbedingt mit den tatsächlichen Zwischenstationen übereinstimmen müssen.
Peter Bothner, Wolf-Michael Kähler

8. Verarbeitung von Strukturen

Zusammenfassung
In Kapitel 7 haben wir das Programm AUF24 entwickelt, mit dem wir Anfragen nach der entfernungsmäßig kürzesten IC-Verbindung zweier Orte bearbeiten lassen konnten. Jetzt stellen wir uns die Aufgabe,
• die zeitlich kürzeste IC-Verbindung von einem Abfahrts-zu einem Ankunftsort bei einer vorzugebenden frühest möglichen Abfahrtszeit eines Bahnreisenden zu ermitteln. Dabei soll die Gesamtreisezeit betrachtet werden. Diese soll sich aus den Fahrzeiten und den Wartezeiten ergeben. Der Einfachheit halber sollen sich Anfragen nur auf IC-Verbindungen desselben Tages beziehen (AUF27).
Peter Bothner, Wolf-Michael Kähler

Backmatter

Weitere Informationen