Hallo,
ich habe ein Programm in Prolog geschrieben und will eine bestimmte Art der Ausgabe.
****************************
Die Regeln sind folgende
satz(S) :- append(NP, VP, S), nominalphrase(NP,n), verbalphrase(VP).
nominalphrase([P],X) :- pronomen(P, X).
nominalphrase([A,N],X) :- write(artikel(A, G, X), nomen(N, G).
nominalphrase([A,AD1,N],X):- artikel(A, G, X), adjektivliste_eins(AD1,X), nomen(N, G).
nominalphrase([A,AD1,AD2,N],X):- artikel(A, G, X), adjektivliste_eins(AD1,X), adjektivliste_zwei(AD2,X), nomen(N, G), AD1=AD2.
verbalphrase([V]):- verb(V,X).
verbalphrase([V,NP]):- verb(V,X), nominalphrase(NP, d),X=trans.
verbalphrase([V,NP]):- verb(V,X), nominalphrase(NP, a),X=intrans.
verbalphrase([V,ADV,NP]):- verb(V,X), adverb(ADV), nominalphrase(NP, d), X=trans.
verbalphrase([V,ADV,NP]):- verb(V,X), adverb(ADV), nominalphrase(NP, a), X=intrans.
adjektivliste_eins([]).
adjektivliste_eins([AD1],X) :- adjektiv(AD1, X).
adjektivliste_zwei([]).
adjektivliste_zwei([AD2],X) :- adjektiv(AD2, X).
*************************
Ausgabe ist:
4 ?- satz(S).
S = [er, sieht] ;
S = [er, schlägt] ;
S = [er, liebt]
So ich möchte einfach die Ausgabe so haben:
S = [Nomen(er), Verb(sieht), Adjektiv(),…]
Kann mir jemand helfen?