![]() |
Informatikmaterialien |
Startseite
| Informatik | Physik
| Mathematik | Sonstiges
| |
![]() |
Richard-Wossidlo-Gymnasium Ribnitz-Damgarten |
---|
- Regeln gehören zu den Grundelemente eines PROLOG-Systems. Neben einfachen UND-Regeln sollen die ODER-Regeln besprochen werden. Außerdem wird der Begriff Klausel eingeführt.
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.
Aufbau in PROLOG:
Eine Regel besteht aus dem Regelkopf p und dem Regelrumpf (Bedingungen) q1 und q2 und ... und qn.
Schreibweise: p :- q1, q2, ..., qn. Die Symbolik ":-" wird als "falls" gelesen.Beispiel:
tochter_des_vaters(X,Y):- weiblich(X),vater_von(Y,X).
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.
Natürlich ist es möglich eine Anfrage zu stellen, indem man den Regelkopf benutzt, etwa:
Anfragen Ergebnis ?- tochter_des_vaters(maria, paul). yes ?- tochter_des_vaters(maria,X). X = paul
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 Elterteil 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. |