% Structure of the family: % % Christine oo Heinz Maria oo Fritz % / \ | % / \ | % Monika oo Herbert Angelika oo Hubert % / \ | % / \ | % Susanne Norbert Andreas % Definition der Ehefrau-Ehemann-Relation: ehemann(christine, heinz). ehemann(maria, fritz). ehemann(monika, herbert). ehemann(angelika, hubert). % Definition der Kind-Mutter-Relation: mutter(herbert, christine). mutter(angelika,christine). mutter(hubert, maria). mutter(susanne, monika). mutter(norbert, monika). mutter(andreas, angelika). % zu speziell: % vater(susanne,herbert) :- mutter(susanne,monika), ehemann(monika,herbert). vater(Kind,Vater) :- mutter(Kind,Mutter), ehemann(Mutter,Vater). % Grossvater G eines Enkels E: grossvater(E,G) :- vater(E,V), vater(V,G). grossvater(E,G) :- mutter(E,M), vater(M,G). % Ist eine Person ein Ehemann? istEhemann(P) :- ehemann(_,P). % Interaktives I/O: vater :- write('Von welcher Person moechten Sie den Vater wissen? '), nl, read(P), vater(P,V), write('Der Vater von '), write(P), write(' ist '), write(V), nl.