% Structure of the family:
%
%                    Christine --- Heinz  Maria --- Fritz
%                      /    \               |
%                     /      \              |
%      Monika --- Herbert  Angelika --- 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).

% Definition der Kind-Vater-Relation:
%vater(norbert,herbert) :- mutter(norbert,monika), ehemann(monika,herbert).
%vater(norbert,herbert) :- mutter(norbert,maria), ehemann(maria,herbert).
vater(Kind,Vater) :- mutter(Kind,Mutter), ehemann(Mutter,Vater).

grossvater(E,G) :- vater(E,V), vater(V,G).
grossvater(E,G) :- mutter(E,M), vater(M,G).

istEhemann(P) :- ehemann(_,P).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%geschwister(S,P) :- mutter(S,M), mutter(P,M), \+ S=P.
%geschwister(S,P) :- mutter(S,M), mutter(P,M), S\=P.
geschwister(S,P) :-
        when(ground([S,P]), \+ S=P), mutter(S,M), mutter(P,M).


p(a,a).
p(a,b).
