<div class="notebook"> <div class="nb-cell markdown" name="md1"> ## Vorfahr </div> <div class="nb-cell markdown" name="md2"> Gegeben ist eine kleine Wissensbasis, sowie die bisherigen Definitionen von vorfahr/2, die du schon aus der Vorlesung kennst </div> <div class="nb-cell program" data-background="true" name="p1"> et(anastasia,bilal). et(cem,anastasia). et(daria,cem). vorfahr1(X,Y):- et(X,Y). vorfahr1(X,Z):- et(X,Y), vorfahr1(Y,Z). vorfahr2(X,Z):- et(X,Y), vorfahr2(Y,Z). vorfahr2(X,Y):- et(X,Y). vorfahr3(X,Y):- et(X,Y). vorfahr3(X,Z):- vorfahr3(Y,Z), et(X,Y). vorfahr4(X,Z):- vorfahr4(Y,Z), et(X,Y). vorfahr4(X,Y):- et(X,Y). </div> <div class="nb-cell markdown" name="md3"> Zusätzlich ist nun die folgende Definitionsvariante für das Prädikat vorfahr5/2 gegeben. Welche Probleme kommen bei dieser und den früheren Definitionen auf? Teste einige Anfragen im Konsolenfenster (unten rechts) oder nutze die Beispielanfragen weiter unten. </div> <div class="nb-cell program" data-background="true" name="p2"> vorfahr5(X,Y):- et(X,Y). vorfahr5(X,Y):- vorfahr5(X,Z), vorfahr5(Z,Y). </div> <div class="nb-cell query" name="q1"> trace, vorfahr5(cem,bilal). </div> <div class="nb-cell query" name="q2"> trace, vorfahr5(anastasia, cem). </div> <div class="nb-cell markdown" name="md4"> Probiere auch die anderen vorfahr-Definitionen. </div> <div class="nb-cell query" name="q3"> </div> <div class="nb-cell query" name="q4"> </div> </div>