Informatikmaterialien |
Startseite
| Informatik | Physik
| Mathematik | Sonstiges
| |
Richard-Wossidlo-Gymnasium Ribnitz-Damgarten |
---|
- Bisher mussten die Abfragen stets als Anfrage formuliert werden. Dabei kam es insbesondere bei Joins auch zur Ausgabe nicht erwünschter Informationen. Sinnvoll wäre auch die Verkürzung der Abfragen durch Schlagwörter und geeigneten Parametern.
Beispiel: Geben sind die folgenden Datenbanktabellen in PROLOG-Notation:
% lehrer(LNummer, Anrede, Name, Vorname).
% lehrer_hat_faecher(LNummer, FNummer).
% faecher(FNummer, Bezeichnung).
Soll nun angezeigt werden, welche Fächer Herr Lehmann unterrichtet, muss die Abfrage
?- lehrer(LNummer, 'Herr', 'Lehmann', Vorname), lehrer_hat_faecher(LNummer, FNummer), faecher(FNummer, Bezeichnung).
gestellt werden.
Dabei
werden neben den relevanten Informationen Bezeichnung und Vorname auch
die Lehrernummer und die Fachnummer aufgelistet. Soll die Anfrage für
einen weiteren Lehrer wiederholt werden, so muss die Eingabe erneut
vorgenommen werden.
Eine Verbesserung bringt die Verwendung einer Regel, die in den Quelltext der Wissenbasis zu implementieren ist.
lehrerfaecher(Anrede, Name, Vorname, Bezeichnung) :-
lehrer(LNummer, Anrede, Name, Vorname),
lehrer_hat_faecher(LNummer, FNummer),
faecher(FNummer, Bezeichnung).
Die bisherige Anfrage bleibt erhalten. Neu ist der sog. Regelkopf, der aus einem Namen für die Abfrage und den ein- bzw. auszugebenden Parametern besteht.
Nachdem
die Regel definiert und konsultiert wurde, kann sie für Abfragen
benutzt werden. Dabei ist nur der Regelkopf zu benutzen, in unserem
Falle also
?- lehrerfaecher('Herr', 'Lehmann', Vorname, Bezeichnung).
Aufbau einer Regel in PROLOG:
Eine Regel besteht aus dem Regelkopf p und dem Regelrumpf (Bedingungen) q1 und q2 und ... und qn.
Schreibweise: p :- q1, q2, ..., qn. Das Symbol/Atom ":-" wird als "falls" gelesen.
Regeln drücken bedingte Beziehungen zwischen Fakten aus.
Beispiele:
Karin ist die Tochter des Vaters Fritz, falls Karin weiblich und Fritz der Vater von Karin ist.
Allgemein: X ist eine Tochter des Vaters Y, falls X weiblich und Y ein Vater von X ist.
Klauseln sind die Fakten und Regeln, die zu ein und demselben Prädikat gehören.
Es gibt eine Klausel tochter_des_vaters, je vier Klauseln weiblich maennlich und vater_von und zwei Klauseln mutter_von.
Die bisherige Definition der Regel lässt nur UND-Verknüpfungen zu. Der Klauselkopf p wird nur dann wahr, wenn alle Bedingungen erfüllt sind. Häufig benötigt man aber auch den ODER-Fall, d. h., der Kopf ist erfüllt, wenn eine der Bedingungen erfüllt ist. Dies drückt man in PROLOG so aus, dass man für die einzelnen ODER-Fälle separate Regeln schreibt.
Beispiele: Für die obige Wissensbasis soll die Klausel elternteil definiert werden. Man ist ein Elternteil entweder wenn man Mutter oder Vater ist. Also
elternteil_von(X,Y):- vater_von(X,Y).
elternteil_von(X,Y):- mutter_von(X,Y).Alternativ kann man die Regel auch mit Semikolon schreiben, also
elternteil_von(X,Y):- vater_von(X,Y); mutter_von(X,Y).
zur Startseite |
© Tino Hempel 1997 - 2006 | Im Web
vertreten seit 1994. Eine Internet-Seite aus dem Angebot von Tino Hempel. |