[Prolog] Operatoren

MiMi

Erfahrenes Mitglied
Hi,

und zwar habe ich eine Datei mit angaben wie

pam is_parent_of bob.
tom is_parent_of bob.

pam is_a_woman.

tom is_a_man.
bob is_a_man.

dazu hab ich ich nun folgende beschreibungen (operatoren) gemacht.

:- op(500,xfx,'is_parent_of').
:- op(501,xf,'is_a_woman').
:- op(502,xf,'is_a_man').

Das funktioniert soweit auch, weiterhin habe ich noch definiert:

% X is_child_of Y
:- op(504, xfx, 'is_child_of').

X is_child_of Y:-
Y is_parent_of X.

% ?X is_zus_van ?Y
:- op(505, xfx, 'is_sister_of').

X is_sister_of Y :-
X is_child_of Z,
Y is_child_of Z,
X is_a_woman,
X \== Y.

Das funktioniert auch prima.

Jetzt muss ich noch folgendes definieren
% X has brother Y

ich hab schon was von pre und postfix gelesen, habe aber keine ahnung wie ich das nun definieren muss.
Hab jetzt so angefangen

% X has brother Y
:-op(506, xf, 'has').
:-op(507, fx, 'brother').

Und dan auch noch
% ?Child is_born_from relation_from ?Man en ?Woman

Wobei ich denke wenn ich das mit dem "has brother" verstehe auch das letzte machen kann.

Wäre für jede Hilfe dankbar :D

gr MiMi
 
Zurück