next up previous contents
Nächste Seite: wo_ist Aufwärts: Regeln Vorherige Seite: Regeln   Inhalt

ueber

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) $\Rightarrow$ yes
ueber(wein, bier) $\Rightarrow$ 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