Hilfe in Prolog

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • 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:

    Source Code

    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:

    Source Code

    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).
    Display All