% Morphologie mit DCG % Simon Clematide "Programmiertechniken in der Computerlinguistik II" Sommer 2006 % Unterlagen dazu im Skript n_stamm(1, s) --> "kind". n_stamm(1, s) --> "lied". n_stamm(1, s) --> "bild". n_stamm(2, s) --> "brot". n_endung(1, nom, sg) --> "". n_endung(1, gen, sg) --> "es". n_endung(1, dat, sg) --> "". n_endung(1, dat, sg) --> "e". n_endung(1, akk, sg) --> "". n_endung(1, nom, pl) --> "er". n_endung(1, gen, pl) --> "er". n_endung(1, dat, pl) --> "ern". n_endung(1, akk, pl) --> "er". n_endung(2, nom, sg) --> "". n_endung(2, gen, sg) --> "es". n_endung(2, dat, sg) --> "". n_endung(2, dat, sg) --> "e". n_endung(2, akk, sg) --> "". n_endung(2, nom, pl) --> "e". n_endung(2, gen, pl) --> "e". n_endung(2, dat, pl) --> "en". n_endung(2, akk, pl) --> "e". n_morph(Kas, Gen, Num) --> n_stamm(Klasse, Gen), n_endung(Klasse, Kas, Num). np(Kas, Gen, Num) --> det(Kas, Gen, Num), n(Kas, Gen, Num). det(nom, s, sg) --> [das]. det(nom, s, pl) --> [die]. n(Kas, Gen, Num) --> [Wort], { atom_codes(Wort, Buchstaben), phrase(n_morph(Kas, Gen, Num), Buchstaben) }. % phrase(np(Kasus, Gen, Numerus), [die, brote]). % phrase(np(Kasus, Gen, Numerus), [die, broter]).