%Musterlösung Aufg. 5a %Regeln s(s(NPBAUM,VPBAUM,RSBAUM)) --> np(NPBAUM,[nom,Num],MoeglicheRs1), vp(VPBAUM,Num,MoeglicheRs2), {append(MoeglicheRs1,MoeglicheRs2,MoeglicheRs)}, optionaler_rs(RSBAUM,MoeglicheRs,_). optionaler_rs(leer(rs),Mm,Mm) --> []. optionaler_rs(RSBAUM,MoeglicheMerkmale,[]) --> {member(Mm,MoeglicheMerkmale)}, rs(RSBAUM,Mm). rs(rs(RPBAUM,VIBAUM),[Num,Gen]) --> rp(RPBAUM,[nom,Num,Gen|_]), vi(VIBAUM,Num). rs(rs(RP,NP,VT),[Num,Gen]) --> rp(RP,[nom,Num,Gen|_]), np(NP,[akk|_],_), vt(VT,Num). rs(rs(RPBAUM,NPBAUM,VTBAUM),[Num,Gen]) --> rp(RPBAUM,[nom,Num,Gen|_]), np(NPBAUM,[akk,NumV|_],_), vt(VTBAUM,NumV). np(np(ARTBAUM,NBAUM,RSBAUM),[Kas,Num],MmRels) --> art(ARTBAUM,[Kas,Num,Gen]), n(NBAUM,[Kas,Num,Gen]), optionaler_rs(RSBAUM,[[Num,Gen]],MmRels). vp(vp(VIBAUM),Num,[]) --> vi(VIBAUM,Num). vp(vp(VTBAUM,NPBAUM),Num,MoeglicheRs) --> vt(VTBAUM,Num), np(NPBAUM,[akk,_],MoeglicheRs). %lexikonregeln vi(vi(weint),sing) --> [weint]. vi(vi(lacht),sing) --> [lacht]. vt(vt(entdeckt),sing) --> [entdeckt]. art(art(der),[nom,sing,mask]) --> [der]. art(art(den),[akk,sing,mask]) --> [den]. n(n(astronom),[nom,sing,mask]) --> [astronom]. n(n(planeten),[akk,sing,mask]) --> [planeten]. rp(rp(der),[nom,sing,mask]) --> [der]. rp(rp(den),[akk,sing,mask]) --> [den].