Hilfe in Prolog

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hilfe in Prolog

    Hallo,

    ich habe ein Problem.
    Ich habe unten ein fertiges Programm, welches mir korrekte Sätze aus meinem Lexikon erstellt. D.h. es würden keine Sätze gebildet werden mit "Der Katze läuft".
    Das kann man auch analysieren:

    Quellcode

    1. 1 ?- satz([der, katze, sieht]).false.


    Wie zu sehen bekommt man ein false zurück.
    Hier ist mein Problem:
    Ich muss kein "false" ausgeben, sondern ausgeben können, was genau falsch ist.
    Quasi:
    false: "der katze" ist nicht korrekt.

    kann mir jemand helfen? es ist super dringend. Hier mein gesamter Code:

    Quellcode

    1. satz(S) :- append(NP, VP, S), nominalphrase(NP,n), verbalphrase(VP).nominalphrase([P],X) :- pronomen(P, X).nominalphrase([A,N],X) :- 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.
    2. 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.
    3. adjektivliste_eins([]).adjektivliste_eins([AD1],X) :- adjektiv(AD1, X).adjektivliste_zwei([]).adjektivliste_zwei([AD2],X) :- adjektiv(AD2, X).
    4. % artikel (Artikel, Geschlecht, Kasus)% nominativartikel(der, m, n).artikel(die, w, n).artikel(das, s, n).% dativartikel(dem, m, d).artikel(der, w, d).artikel(dem, s, d).% akkusativartikel(den, m, a).artikel(die, w, a).artikel(das, s, a).
    5. % adjektiv Adjektiv, Kasus)% nominativadjektiv(kleine, n).adjektiv(große, n).adjektiv(dicke, n).adjektiv(schöne, n).adjektiv(schmutzige, n).% dativadjektiv(kleinen, d).adjektiv(großen, d).adjektiv(dicken, d).adjektiv(schönen, d).adjektiv(schmutzigen, d).
    6. % nomen (Nomen, Geschlecht)nomen(katze, w).nomen(knochen, m).nomen(hund, m).nomen(haus, s).nomen(kind, s).
    7. % pronomen (Pronomen, Geschlecht)pronomen(er, n).pronomen(sie, n).pronomen(es, n).
    8. % Adverbenadverb(oft).adverb(bald).adverb(gern).adverb(viel).adverb(wenig).
    9. % verb (Verben, Transivität)verb(sieht, trans).verb(schlägt, trans).verb(liebt, trans).verb(hilft, intrans).verb(dankt, intrans).
    Alles anzeigen