portray(X) :- write_term(X,[maxdepth=20]) s(Satz,Struktur) :- s(Struktur,Satz,[]). % linksrekursive Regeln zum Vergleich % np(np(Snp,Spp)) --> np(Snp), pp(Spp). % np(np(Sd,Sn)) --> d(Sd), n(Sn). s(s(Snp,Svp)) --> np(Snp),vp(Svp). vp(vp(Sv,Snp)) --> v(Sv),np(Snp). np(np(Spp)) --> persp(Spp). np(np(Sd,Sn)) --> d(Sd), n(Sn). np(Spps) --> d(Sd), n(Sn), pps(np(Sd,Sn),Spps). pps(Snp,np(Snp,Spp)) --> pp(Spp). pps(Snp,Spps) --> pp(Spp), pps(np(Snp,Spp),Spps). pp(pp(Sp,Snp)) --> p(Sp), np(Snp). v(v(sieht)) --> [sieht]. n(n(mann)) --> [mann]. n(n(frau)) --> [frau]. n(n(haus)) --> [haus]. n(n(turm)) --> [turm]. n(n(dach)) --> [dach]. n(n(strasse)) --> [strasse]. persp(persp(er)) --> [er]. persp(persp(sie)) --> [sie]. p(p(hinter)) --> [hinter]. p(p(mit)) --> [mit]. p(p(auf)) --> [auf]. d(d(der)) --> [der]. d(d(die)) --> [die]. d(d(das)) --> [das]. d(d(dem)) --> [dem]. d(d(den)) --> [den].