:- module(kategorien,[kategorie/1]).

% importiere person/1,numerus/1,tempus/1,modus/1:
:- use_module(wortformen). 

kategorie(np([Def,Pers,Gen],[Num,Kas])) :-
    definitheit(np,Def),
    genus(Gen),
    numerus(Num),
    kasus(Kas),
    Pers = 3. % wir behandeln nur dritte Person

definitheit(np,Def) :-
    (Def = indef ; Def = def ; Def = rel(Gen,Num)
    ; Def = qu ; Def = quant).
kasus(X) :-
    (X = nom ; X = gen ; X = dat ; X = akk).
genus(Gen) :-
    (Gen = fem ; Gen = mask ; Gen = neut).

kategorie(s([Def],[Temp,Mod,Vst])) :-
    definitheit(s,Def),
    tempus(Temp), % ggf. ; Temp = perf
    modus(Mod),
    verbstellung(Vst).

definitheit(s,Def) :-
    (Def = def ; Def = rel(Gen,Num) ; Def = qu).
verbstellung(Vst) :-
    (Vst = ve ; Vst = vz ; Vst = vl).
n([Gen],[Num,Kas]) :-
    genus(Gen),
    numerus(Num),
    kasus(Kas).

en([Gen],[sg,Kas]) :-
    genus(Gen), 
    kasus(Kas).

v([nom,akk],[Pers,Num,Temp,Mod]) :-
    Pers = 3,
    numerus(Num),
    tempus(Temp),
    modus(Mod).

v([H],[Pers,Num,Temp,Mod]) :-
    hilfsverb(H),
    Pers = 3,
    numerus(Num),
    tempus(Temp),
    modus(Mod).
hilfsverb(H) :-
    (H = sein ; H = werden).

