% Morphologie mit Buchstabenbaeumen % Simon Clematide "Programmiertechniken in der Computerlinguistik II" Sommer 2005 % Unterlagen dazu im Skript %% Iso-Latin-Kodierung n_stamm_ltree( [[b,[i,[l,[d, n_stamm(1,s,_,'BILD')]]]], [h,[a,[u,[s, n_stamm(1,s,sg,'HAUS')]]], [ä,[u,[s, n_stamm(1,s,pl,'HAUS')]]]]] ). n_endung_ltree(1, [n_endung(nom,sg), n_endung(dat,sg), n_endung(akk,sg), [e,n_endung(dat,sg), [r, n_endung(nom, pl), n_endung(gen,pl), n_endung(akk,pl), [n, n_endung(dat,pl)]], [s, n_endung(gen,sg)]]]). n_morph(Word, Kas, Gen, Num, Lem) :- n_stamm_ltree(T1), find_morph(Word, T1, n_stamm(Kla,Gen,Num,Lem), Suffix), n_endung_ltree(Kla, T2), find_morph(Suffix, T2, n_endung(Kas, Num), []). find_morph([Char|Chars], Tree, LexEntry, Rest) :- member([Char|Subtree], Tree), find_morph(Chars, Subtree, LexEntry, Rest). find_morph(Rest, Tree, LexEntry, Rest) :- member(LexEntry, Tree). member(X, [X|_]). member(X, [_|R]) :- member(X, R).