s([Def1],[Temp,Mod,vz]) -->
    np([Def1,3,_Gen1],[Num,nom]),
    { member(Def1,[def,indef,quant,qu]) },
    v([sein],[3,Num,Temp,Mod]),
    np([Def2,3,_Gen2],[Num,nom]),
    { Def2 = indef ; Def2 = def }.

s([qu],[Temp,Mod,ve]) -->
    v([sein],[3,Num,Temp,Mod]),
    np([Def1,3,Gen],[Num,nom]),
    { Def1 = def ; Def1 = indef },
    np([Def2,3,Gen],[Num,nom]), % ,['?'],
    { Def2 = indef ; Def2 = def }. 

s([rel(Gen,Num)],[Temp,Mod,vl]) -->
    np([rel(Gen,Num),3,_Gen1],[_Num1,nom]),
    np([Def2,3,_Gen2],[Num,nom]),
    { member(Def2,[def,indef]) }, % quant?
    v([sein],[3,Num,Temp,Mod]).
    
s([Def1],[Temp,Mod,vz]) -->
    np([Def1,3,_Gen1],[Num,nom]),
    { member(Def1,[def,indef,quant,qu]) },
    v([sein],[3,Num,Temp,Mod]),
    ap([],[komp]).

s([Def1],[Temp,Mod,ve]) -->
    v([sein],[3,Num,Temp,Mod]),
    np([Def1,3,_Gen1],[Num,nom]),
    { member(Def1,[def,indef,quant,qu]) },
    ap([],[komp]).

s([Def1],[Temp,Mod,vl]) -->
    np([Def1,3,_Gen1],[Num,nom]),
    { member(Def1,[def,indef,quant,qu]) },
    ap([],[komp]),
    v([sein],[3,Num,Temp,Mod]).

ap([],[komp]) -->  % keine Artmerkmale
    a([als(nom)],[komp]), [als],
    np([Def2,3,_Gen2],[Num,nom]),
    { Def2 = indef ; Def2 = def }.

