Hallo zusammen, ich habe ein großes Problem in Prolog, ich arbeite an einem Prologprogramm, dass bei der Eingabe eines schwachen Verbs, die Vergangenheitsform ausgibt, zur Erinnerung schwache Verben; das sind Verben die ihre Stammform in der Vergangenheitsform behalten, z.B.
liebte -> lieb(te) im Gegensatz zu starken Verben, die ihren Stamm verändern, z.B.
schlafen -> schlief.
Mein Ansatz war dabei folgender
präterialform([spielen], Echo). ergibt die präterialform!
map(abbauen, abbaute).
map(bauen, baute).
map(besiegen, besiegte).
map(führen, führte).
map(glauben, glaubte).
map(holen, holte).
map(intervenieren, intervenierte).
map(jauchzen, jauchzte).
map(kaufen, kaufte).
map(klettern, kletterte).
map(loben, lobte).
map(musizieren, musizierte).
map(nominieren, nominierte).
map(operieren, operierte).
map(planen, plante).
map(richten, richtete).
map(saugen, saugte).
map(siegen, siegte).
map(spielen, spielte).
map(trauen, traute).
map(unifizieren, unifizierte.)
map(verschachern, verschacherte).
map(wünschen, wünschte).
map(X, X).
präterialform([], []).
präterialform([E|Rest], [AbbE|AbbRest]) :-
map(E, AbbE),
präterialform(Rest, AbbRest).
Hierbei müsste man jetzt z.B. folgende Eingabe machen: "präterialform([spielen], Echo)." um die entsprechende Vergangenheitsform zu erhalten. Jetzt will ich das Programm aber mit Hilfe des Prädikats "read" ein paar built-in-Prädikaten und auch atom_chars (Listenverarbeitung) soweit verändern, dass es die Vergangenheitsform selbstständig bildet, ohne wie in meinem Programm auf ein festen Bestand an Wörtern zurück zu greifen. Wüsste jemand ungefähr, wie man das am besten Anfängt? Leider drehe ich mich dabei ganz schön im Kreis.
Alles Liebe ;)
Sabrina