Prolog Rekursion

Hallo!

Ich habe mir einige Tutorials zum Thema Prolog angesehen und bin im Verständnis schon ein Stückchen weiter :smile:
In einem davon habe ich eine (eigentlich einfache) Übung gefunden, die ich allerdings nicht lösen konnte.

Folgende DB sei gegeben:

bigger(cat,mouse).
bigger(dog,cat).
bigger(sheep,dog).
bigger(horse,sheep).
bigger(elephant,horse).

Es soll aus der gegebenen „Datenbank“ ermittelt werden, ob ein Elefant größer ist als eine Maus:

biggerThan(A,B) :- bigger(A,B).

Da es keinen Fakt gibt, der besagt, dass ein Elefant größer ist, als eine Maus (biggerThan(elephant,mouse). ergibt false), muss ich eine (rekursive) Regel definieren, die aus den gegebenen Daten die Antwort sucht:

biggerThan(A,B) :- bigger(A,C), biggerThan(C,B).

Jedoch gibt mir meine Anfrage (biggerThan(elephant,mouse).) immernoch false zurück.

Eigentlich sollte Prolog doch jetzt ein C finden, dass kleiner ist als A (das wäre ja in diesem Fall das Pferd).
Nun prüft er, ob das Pferd auch größer ist, als die Maus.
Auch dafür ist kein Fakt definiert - es geht also immer so weiter…
Prolog müsste doch durch diese Rekursion jetzt bis zum Anfang der DB durchlaufen und heraus finden, dass der Elefant größer ist, als die Maus…

Wo liegt das Problem?

Danke schon mal
Christoph

Sorry, Problem gelöst…
Ich hab gerade gesehen, dass ich eine falsche Anfrage gestellt habe (bigger(elephant,mouse).).

Die gewünschte Anfrage biggerThan(elephant,mouse). brachte das gewünschte true.

Gruß Christoph

Wieso Sorry? Ist doch wunderbar *gg*
hallo Christoph,

ist doch Klasse wenn Anfrager hier eine Frage einstellen, dann selbst lösen und die Lösung hier zeigen.

Das erspart doch den Antwortern viel Mühe :smile:)

Und lehrreich ist das auch, naja für mich nicht weil ich Prolog oder was das war nicht kenne, aber irgendein prolog-Benutzer freut sich über das was du geschrieben hast.

Gruß
Reinhard

und die Lösung hier zeigen.

Das kommt immer zu kurz. Wenn man im I-Net nach etwas sucht und dann in einem Forum landet, wo man einen Thread findet der GENAU dieses Problem behandelt,dann fehlt ganz am Schluß immer der post, wie derjenige es nun schlussendlich gelöst hat.

Beispiele sind vorhanden, aber nicht wie es dann umgesetzt wurde :frowning:

Deswegen betone ich das hier noch einmal an dieser Stelle :wink:

:smiley:
Jap, das kenne ich selbst nur zu gut. Nach ewigem Suchen findet man endlich ein Forum mit GENAU der gesuchten Frage. Und der letzte Post ist:
Danke, ich hab es schon selber hin bekommen. Tschüss ^^

Ahhh! :smile: