Übungsaufgaben 1


Gegeben ist folgendes Prologprogramm:

/*gemeint soll hier sein: genoveva ist Mutter von clothilde*/

kind_von(genoveva,clothilde).

kind_von(genoveva,xenia).

kind_von(karl,clothilde).

kind_von(karl,xenia).

kind_von(karl,sofonisba).

kind_von(walpurga,sofonisba).

kind_von(chlodwig,ernestine).

kind_von(clothilde,ernestine).

kind_von(xenia,otto).

kind_von(hjalmar,otto).

kind_von(xenia,cythia).

kind_von(hjalmar,cythia).


/*Hier steht zuerst immer die Frau*/

ehepaar(xenia,hjalmar).

ehepaar(genoveva,karl).

ehepaar(ernestine,otto).


maennlich(karl).

maennlich(otto).

maennlich(chlodwig).

maennlich(hjalmar).


weiblich(genoveva).

weiblich(xenia).

weiblich(clothilde).

weiblich(ernestine).

weiblich(cythia).

weiblich(sofonisba).

weiblich(walpurga).


Aufgabe 1

  1. Definieren Sie eine Regel für das Prädikat verheiratet_mit(X,Y), bei dem die Reihenfolge KEINE Rolle spielen soll.
  2. Definieren Sie Regeln für mutter_von(Kind,Mutter) und grossmutter_von(Enkel,Grossmutter).
  3. Definieren Sie schwester_von(Geschwister,Schwester) - denken Sie davor darüber nach, was Sie als Schwester ansehen. (Ausprobieren: hier gibt es sicher Probleme! Nicht frustrieren lassen. Ergänzung: in Prolog ist es möglich durch den Ausdruck X \== Y explizit zu verlangen, dass zwei Variablen unterschiedlich besetzt sind).
  4. Definieren Sie schwaegerin_von(Verschwaegertes,Schwaegerin).

Aufgabe 2

Die vorgestellten Sippen sind matriarchalisch organisiert. Interessant ist die weibliche Linie, männliche Vorfahren spielen nur eine bescheidene Rolle. Definieren Sie ein Prädikat vorfahr_weibliche_linie_von(Nachfahr,Vorfahrin), das abprüft ob 'Vorfahrin' ein weiblicher Vorfahr von Nachfahr ist (bzw. die/die weiblichen Vorfahren ermittelt). Die Abfrage sollte etwa so möglich sein:

?- vorfahr_weibliche_linie_von(cythia,Vorfahrin)
  Vorfahrin = xenia
  YES;
  Vorfahrin = genoveva
  YES;
  NO




Übungsaufgaben - Startseite