% Einfache Relationen in einem kleinen Stammbaum simulieren
kindvon(vater, alex).
kindvon(vater, markus).
kindvon(mutter, alex).
kindvon(mutter, markus).

maennlich(alex).
maennlich(markus).
maennlich(vater).
maennlich(wolfgang).
maennlich(stefan).

weiblich(mutter).
weiblich(claudia).

bruder(mutter, stefan).
bruder(claudia, vater).
bruder(mutter, wolfgang).

bruder(X, B) :-

    maennlich(B),
    kindvon(Y, B),
    kindvon(Y, X).


schwester(stefan, mutter).
schwester(vater, claudia).
schwester(wolfgang, mutter).

schwester(X, S) :-

    weiblich(S),
    kindvon(Y, S),
    kindvon(Y, X).


is_sohn(K, E) :-
    kindvon(E, K),
    maennlich(K).


is_tochter(T, E) :-
    kindvon(E, T),
    weiblich(T).


is_mutter(P, K) :-
    kindvon(P, K),
    weiblich(P).


is_vater(P, K) :-
    kindvon(P, K),
    maennlich(P).


is_onkel(P, K) :-
    maennlich(P),
    bruder(P, X),
    kindvon(X, K).


is_onkel(P, K) :-
    maennlich(P),
    schwester(P, X),
    kindvon(X, K).