Nächste Seite: wo_ist
Aufwärts: Regeln
Vorherige Seite: Regeln
  Inhalt
Mit dieser Wissensbasis muss man ja auch etwas anfangen können, zum Beispiel wäre es gut zu wissen, ueber welcher Kiste das Mehl liegt. Dazu schreibt man zuerst eine Regel ueber/2, die ergibt, ob ein bestimmter Block (z.B. mehl) über einer anderen Kiste liegt.
ueber(a,bier) |
|
yes |
ueber(wein, bier) |
|
no |
Gelesen wird diese Produktionsregel als ,,über a ist bier`` bzw. ,,über wein ist bier``. Letztere Aussage ist falsch, also soll Prolog no zurückgeben.
Die Produktionsregel ueber/2 soll nach folgendem Muster arbeiten:
Ein Block liegt garantiert über einem anderen Block, wenn er direkt auf dem Anderen liegt.
Wenn der gesuchte Block nicht auf dem gegebenen Block liegt, soll der Block über dem gegebenen Block ermittelt werden, für den dann wieder getestet wird, ob der gesuchte Block daraufliegt.
/* Abbruchbedingung */
ueber(Block1, Block2) :-
auf(Block1, Block2).
/* Rekursionsblock */
ueber(Block1, Block2) :-
auf(Block1, BlockX),
ueber(BlockX, Block2).
Tilman_Brock
2002-04-08