Hey, ich bin gerade dabei in Prolog einen Übersetzer zu bauen. Der soll von Deutsch nach italienisch übersetzen. Zumindest für ganz bestimmte Sätze als Beispiel
satz(In) :- satz(In,[]).
satz(In,Rest) :- nominalphrase(_,nom,In,R), verbalphrase(R,Rest).
nominalphrase(Genus,Kasus,In,Rest) :- artikel(Genus, Kasus, In, R), nomen(Genus, R, Rest).
verbalphrase(In,Rest) :- verbintransitiv(In,Rest); verbtransitiv(In,R), nominalphrase(_,akk,R,Rest).
artikel(m,nom,In,Rest) :- match(A,In,Rest), member(A,[der,il]).
artikel(f,nom,In,Rest) :- match(A,In,Rest), member(A,[die,la]).
artikel(m,akk,In,Rest) :- match(A,In,Rest), member(A,[den,il]).
artikel(f,akk,In,Rest) :- match(A,In,Rest), member(A,[die,le]).
verbintransitiv(In,Rest) :- match(V, In, Rest), member(V,[schläft,dorme]).
verbtransitiv(In,Rest) :- match(V, In, Rest), member(V,[sieht,vede]).
verbtransitiv(In,Rest) :- match(V, In, Rest), member(V,[sehen,vedono]).
nomen(m,In,Rest) :- match(V,In,Rest),member(V,[mann,uomo]).
nomen(m,In,Rest) :- match(V,In,Rest),member(V,[männer,uomini]).
nomen(m,In,Rest) :- match(V,In,Rest),member(V,[kater,gatto]).
nomen(f,In,Rest) :- match(V,In,Rest),member(V,[frau,donna]).
nomen(f,In,Rest) :- match(V,In,Rest),member(V,[frauen,donne]).
match(X, [X|Rest], Rest).
Mein Problem ist, dass ich bei "satz([die, frauen, sehen, die, männer])." ein false bekomme. Warum kommt hier nicht true raus ? Ich hoffe ich könnt mir helfen.