mutter_von(hilde, elsa). vater_von(egon, elsa). vater_von(paul, otto). mutter_von(erna, otto). mutter_von(elsa, gaby). mutter_von(elsa, dieter). vater_von(otto, gaby). vater_von(otto, dieter). geboren(otto, datum(1, april, 1960)). grossvater_von(Grossvater, Enkel) :- vater_von(Grossvater, Vater), vater_von(Vater, Enkel). grossvater_von(Grossvater, Enkel) :- vater_von(Grossvater, Mutter), mutter_von(Mutter, Enkel). zwillinge(X, Y) :- geboren(X, T), geboren(Y, T), mutter_von(M, X), mutter_von(M, Y). ?- vater_von(paul, dieter). ?- mutter_von(X, gaby). ?- grossvater_von(egon, Wer). ?- grossvater_von(Wer, dieter). ?- geboren(X, datum(1, april, _)). ?- geboren(X, datum(_, _, 1960)). ?- geboren(otto, Wann). ?- geboren(otto, datum(T, M, J)). ?- zwillinge(_, _). ?- geschwister(gaby, X). ---Ergebnis: --------------------------------------------------------- ?- vater_von(paul, dieter). Resolution 1: No. ?- mutter_von(X{0}, gaby). Resolution 1: Yes. X = elsa Resolution 2: No. ?- grossvater_von(egon, Wer{0}). Resolution 1: Yes. Wer = gaby Resolution 2: Yes. Wer = dieter Resolution 3: No. ?- grossvater_von(Wer{0}, dieter). Resolution 1: Yes. Wer = paul Resolution 2: Yes. Wer = egon Resolution 3: No. ?- geboren(X{0}, datum(1, april, _)). Resolution 1: Yes. X = otto Resolution 2: No. ?- geboren(X{0}, datum(_, _, 1960)). Resolution 1: Yes. X = otto Resolution 2: No. ?- geboren(otto, Wann{0}). Resolution 1: Yes. Wann = datum(1, april, 1960) Resolution 2: No. ?- geboren(otto, datum(T{0}, M{0}, J{0})). Resolution 1: Yes. J = 1960 M = april T = 1 Resolution 2: No. ?- zwillinge(_, _). Resolution 1: Yes. Resolution 2: No. ?- geschwister(gaby, X{0}). Resolution 1: No.