; RuleSet:(MX)AESOPA1_rus_tgrammar ; User:Sergiy Prots (prots) ; Date:25.11.2014 at 05:11:32 ; "AESOPA1_rus_tgrammar" ; MX (TEMP,%x)(BLK,%y)(TEMP,%z):=(%x&%y&%z,-BLK); merges temporary words (PPN,%x)(BLK,%y)(PPN,%z):=(%x&%y&%z,+TEMP,-BLK); merges sequences of proper names (BLK):=; deletes the blank space (this rule applies only if the blank space is in the dictionary) (%x,MERGE>)(%y):=(%x&%y,-MERGE>); (%x)(%y,)(%x)(%y); normalize orphan digits: 1 > 01 (HOUR,%h)(":",%a)(MINUTE,%m)({STAIL|CTAIL|^":"},%rc):=(%h)(%a)(%m)(":")([[00]],+DIGIT,+SECOND)(%rc); [HH]:[MM] > [HH]:[MM]:[00] (MINUTE,%m)({STAIL|CTAIL|^SECOND,^DIGIT,^BLK,^":"},%rc):=(%m)(":")([[00]],+DIGIT,+SECOND)(%rc); [MM] > [MM]:[00] ({SHEAD|CHEAD|^MINUTE,^DIGIT,^BLK,^":"},%lc)(SECOND,%s):=(%lc)([[00]],+DIGIT,+MINUTE)(":")(%s); [SS] > [00]:[SS] (HOUR,%h)({STAIL|CTAIL|^MINUTE,^DIGIT,^BLK,^":"},%rc):=(%h)(":")([[00]],+DIGIT,+MINUTE)(%rc); [HH] > [HH]:[00] ({SHEAD|CHEAD|^HOUR,^DIGIT,^BLK,^":"},%lc)(MINUTE,%y):=(%lc)([[00]],+DIGIT,+HOUR)(":")(%y); [MM] > [00]:[MM] (HOUR,%h)(":",%a)(MINUTE,%m)(":",%b)(SECOND,%s):=(%h&%a&%m&%b&%s,+TIME,-HOUR,-MINUTE,-SECOND); [HH][:][MM][:][SS] > [HH:MM:SS] #(VB,%vb)({NP|PP|JP},%xp):=(VB(%vb,+proj;%xp,+comp,+proj),+XB=VB,+LEX=V,%new); #(PB,%pb)({NP|VP|JP},%xp):=(PB(%pb,+proj;%xp,+comp,+proj),+XB=PB,+LEX=P,%new); #(JB,%jb)(PP,%pp):=(JB(%jb,+proj;%pp,+comp,+proj),+XB=JB,+LEX=J,%new); #(AB,%ab)(PP,%pp):=(AB(%ab,+proj;%pp,+comp,+proj),+XB=AB,+LEX=A,%new); #(IB,%ib)(VP,%vp):=(IB(%ib,+proj;%vp,+comp,+proj),+XB=IB,+LEX=I,%new); #({XP,^IP|SHEAD|CHEAD|PUT},%left)(VP,^proj,%v):=(%left)(IB(e,+proj;%v,+comp,+proj),+XB=IB,+LEX=I); #(CB,%cb)(IP,%ip):=(CB(%cb,+proj;%ip,+proj),+XB=CB,+LEX=C,%new); #(PPR,NP,^NOM,%np)(VB,%vb):=(VB(%vb,+proj;%np,+comp,+proj),+XB=VB,+LEX=V,%new); #(VB,%vb)({PP|JP|AP},%xp):=(VB(%vb,+proj;%xp,+adjt,+proj),+XB=VB,+LEX=V,%new); #(NB,%nb)(JP,%jp):=(NB(%nb,+proj;%jp,+adjt,+proj),+XB=NB,+LEX=N,%new); #({SHEAD|CHEAD|PUT|^P,^V},%left)(NB,%nb)(PP,%xp):=(%left)(NB(%nb,+proj;%xp,+adjt,+proj),+XB=NB,+LEX=N,%new); #(JB,%jb)(AP,%xp):=(JB(%jb,+proj;%xp,+adjt,+proj),+XB=JB,+LEX=J,%new); #(JP,%jp)(NB,%nb)({XP|PUT|STAIL|CTAIL},%right):=(NB(%nb,+proj;%jp,+adjt,+proj),+XB=NB,+LEX=N,%new)(%right); #(AP,%ap)(VB,%vb)({XP|PUT|STAIL|CTAIL},%right):=(VB(%vb,+proj;%ap,+adjt,+proj),+XB=VB,+LEX=V,+POS=%x,%new)(%right); #(AP,%ap)(AB,%ab)({^P|PUT|STAIL|CTAIL},%right):=(AP(%ab,+proj;%ap,+spec,+proj),+XP=AP,+LEX=A,%new)(%right); #(AP,%ap)(JB,%jb)({^P|PUT|STAIL|CTAIL},%right):=(JP(%jb,+proj;%ap,+spec,+proj),+XP=JP,+LEX=J,%new)(%right); #(DP,%dp)(NB,%nb)({^D,^J,^N,^P|PUT|STAIL|CTAIL},%right):=(NP(%nb,+proj;%dp,+spec,+proj),+XP=NP,+LEX=N,%new)(%right); #(NP,%np)(VB,%vb)({^A,^J,^N,^P|PUT|STAIL|CTAIL},%right):=(VP(%vb,+proj;%np,+spec,+proj),+XP=VP,+LEX=V,%new)(%right); #(AP,%ap)(PB,%pb)({^A,^J,^N,^V|PUT|STAIL|CTAIL},%right):=(PP(%pb,+proj;%ap,+spec,+proj),+XP=PP,+LEX=P,%new)(%right); #(NP,%np)(IB,%ib)(XP,^VP,%right):=(IP(%ib,+proj;%np,+spec,+proj),+XP=IP,+LEX=I,%new)(%right); #(XP,%xp)(CB,%cb)(XP,^IP,%right):=(CP(%cb,+proj;%xp,+spec,+proj),+XP=CP,+LEX=C,%new)(%right); #({^A|SHEAD|CHEAD|PUT})(AB,^proj,^XP):=()(-XB,-AB,+XP=AP,+proj); #({^A|SHEAD|CHEAD|PUT})(DB,^proj,^XP):=()(-XB,-DB,+XP=DP,+proj); #({^A|SHEAD|CHEAD|PUT})(JB,^proj,^XP)({^P|PUT|STAIL|CTAIL}):=()(-XB,-JB,+XP=JP,+proj)(); #({^D,^J,^N|SHEAD|CHEAD|PUT})(NB,^proj,^XP)({^D,^J,^P|PUT|STAIL|CTAIL}):=()(-XB,-NB,+XP=NP,+proj)(); #({^A,^N|SHEAD|CHEAD|PUT})(VB,^proj,^XP)({^A,^J,^N,^P|PUT|STAIL|CTAIL}):=()(-XB,-VB,+XP=VP,+proj)(); #({^A|SHEAD|CHEAD|PUT})(PB,^proj,^XP,%pb)({PUT|STAIL|CTAIL}):=()(-XB,-PB,+XP=PP,+proj)(); #({XP,^NP|SHEAD|CHEAD|PUT},%left)(IB,^proj,^XP,%ib)(XP,^VP,%right):=(%left)(IP(%ib,+proj;+e),+XP=IP,+LEX=I,%new)(%right); #({XP|SHEAD|CHEAD|PUT},%left)(CB,^CCJ,^proj,^XP,%cb)(XP,^IP,%right):=(%left)(CP(%cb,+proj;+e),+XP=CP,+LEX=C,%new)(%right); (R,^XP,^proj):=(+XP=NP,+proj); #(C,CCJ,^XP,^proj):=(+XP=CP,+proj); (A,^proj,^XB,^XP):=(+XB=AB); (D,^proj,^XB,^XP):=(+XB=DB); (J,^proj,^XB,^XP):=(+XB=JB); (N,^proj,^XB,^XP):=(+XB=NB); #(P,^proj,^XB,^XP):=(+XB=PB); #(V,^proj,^XB,^XP):=(+XB=VB); (I,^proj,^XB,^XP):=(+XB=IB); (C,^proj,^XB,^XP):=(+XB=CB); #IP(IB(;VP(;e));%s,^e):=IP(IB(;VP(;%s));%e,+e); #CP(CB(;IP(IB(;VP(VB(;e);));));%a,^e):=CP(CB(;IP(IB(;VP(VB(;%a);));));%e,+e); (moving spec of CP to adjt of VP - position available) #CP(CB(;IP(IB(;VP(VB(;^e),%vb;));));%a,^e):=CP(CB(;IP(IB(;VP(VB(VB(%vb;%a))));));%e,+e); (moving spec of CP to adjt of VP - position non-available) /[ACDIJNPV]B/(%x;%y):=XB(%x;%y); /[ACDIJNPV]P/(%x;%y):=XP(%x;%y); (XB(%x;%y),%w,att):=(XB(%x,+att=%w;%y),%w,-att); (XP(%x;%y),%w,att):=(XP(%x,+att=%w;%y),%w,-att); (XB(%x;%y),%w,rel):=(XB(%x,+rel=%w;%y),%w,-rel); (XP(%x;%y),%w,rel):=(XP(%x,+rel=%w;%y),%w,-rel); XP(XB(%x;%y);%z):=XB(%x;%y)XS(%x;%z); XB(XB(%x;%y);%z):=XB(%x;%y)XB(%x;%z); XS(XB(%x;%y);%z):=XB(%x;%y)XS(%x;%z); XS(%x;XB(%y;%z)):=XS(%x;%y)XB(%y;%z); XB(%z;XB(%x;%y)):=XB(%x;%y)XB(%z;%x); XP(%x;%y):=XS(%x;%y); XB(%x;e):=(%x); XS(%x;e):=(%x); (e):=; XB(%x,A;%y,adjt):=AA(%x;%y); XB(%x,C;%y,adjt):=CA(%x;%y); XB(%x,D;%y,adjt):=DA(%x;%y); XB(%x,I;%y,adjt):=IA(%x;%y); XB(%x,J;%y,adjt):=JA(%x;%y); XB(%x,N;%y,adjt):=NA(%x;%y); XB(%x,P;%y,adjt):=PA(%x;%y); XB(%x,V;%y,adjt):=VA(%x;%y); XB(%x,A;%y,comp):=NC(%x;%y); XB(%x,C;%y,comp):=CC(%x;%y); XB(%x,D;%y,comp):=DC(%x;%y); XB(%x,I;%y,comp):=IC(%x;%y); XB(%x,J;%y,comp):=JC(%x;%y); XB(%x,N;%y,comp):=NC(%x;%y); XB(%x,P;%y,comp):=PC(%x;%y); XB(%x,V;%y,comp):=VC(%x;%y); XB(%x,A;%y):=AA(%x;%y); XB(%x,C;%y):=CA(%x;%y); XB(%x,D;%y):=DA(%x;%y); XB(%x,I;%y):=IA(%x;%y); XB(%x,J;%y):=JA(%x;%y); XB(%x,N;%y):=NA(%x;%y); XB(%x,P;%y):=PA(%x;%y); XB(%x,V;%y):=VA(%x;%y); XS(%x,A;%y):=AS(%x;%y); XS(%x,C;%y):=CS(%x;%y); XS(%x,D;%y):=DS(%x;%y); XS(%x,I;%y):=IS(%x;%y); XS(%x,J;%y):=JS(%x;%y); XS(%x,N;%y):=NS(%x;%y); XS(%x,P;%y):=PS(%x;%y); XS(%x,V;%y):=VS(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,adr):=adr(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,agt):=agt(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,ant):=ant(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,aoj):=aoj(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,ben):=ben(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,bas):=bas(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,cag):=cag(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,cnt):=cnt(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,con):=con(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,cob):=cob(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,coo):=coo(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,dur):=dur(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,equ):=equ(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,exp):=exp(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,fld):=fld(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,frm):=frm(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,gol):=gol(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,icl):=icl(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,ins):=ins(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,iof):=iof(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,lpl):=lpl(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,man):=man(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,mat):=mat(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,met):=met(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,mod):=mod(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,nam):=nam(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,obj):=obj(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,per):=per(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,plc):=plc(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,plf):=plf(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,plt):=plt(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,pof):=pof(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,pos):=pos(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,ptn):=ptn(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,pur):=pur(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,qua):=qua(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,rsn):=rsn(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,scn):=scn(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,seq):=seq(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,src):=src(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,tim):=tim(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,tmf):=tmf(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,tmt):=tmt(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,to):=to(%x;%y); /[ACDIJNPV][ACS]/(%x;%y,via):=via(%x;%y); NA(%x;%y,DIGIT,^ORD):=qua(%x;%y); NA(%x;%y):=mod(%x;%y); /[ACDIJPV]A/(%x;%y):=man(%x;%y); /[ACDIJNPV]C/(%x;%y):=obj(%x;%y); VS(%x;%y):=agt(%x;%y); /[ACDIJNP]S/(%x;%y):=mod(%x;%y); agt(%x,COP;%y)obj(%x;%z):=aoj(%z,+att=%x;%y); eliminates the copula agt(%x;%y,N)obj(%x;%z,J):=agt(%x;%y)aoj(%z;%y); transforms the predicate of the object into the predicate of the subject (@pl,{@multal|@paucal|@all|@both}):=(-@pl); eliminates the redundancy of @pl or(%a;and(%b1;%b2),%b):=or(%a;or(%b1;%b2),%b); propagates or to its internal conjunctions aoj(%x,SPR;%y):=pos(%y;%x); replaces aoj by pos when the first argument of the aoj is a possesive pronoun obj(%x,V,{SEM=CMV|SEM=CGV|SEM=CPT|SEM=CTC} ;%y):=cnt(%x;%y); agt(%x,{SEM=CGV|SEM=BOV};%y):=exp(%x;%y); obj(%x,V,SEM=MOT;%y,N,SEM=TIM):=met(%x;%y); (P,"под",%x)(N,^plc,CAS=INS,%y):=(%x)(%y,-SEM,+SEM=LCT,+plc); (P,"у",%x)(N,^plc,CAS=GNT,%y):=(%x)(%y,-SEM,+SEM=LCT,+plc); (LEX=N,CAS=LOC,^SEM=LCT,^SEM=PHE,^lpl):=(+lpl); (P,"к",%x)(N,^plt,%y):=(%x)(%y,+plt); obj(%x,V;%y,N,CAS=INS):=met(%x;%y); #(XB(%x,SEM;),^SEM):=(+SEM=%x); #(XP(%x,SEM;),^SEM):=(+SEM=%x); agt(cnt(%x;%y);mod(%z;%t)):=met(%x;%z)cnt(%x;%y)mod(%z;%t); agt(man(%x;bas(%y;%z));%t):=agt(%x;%t)man(%x;%y)bas(%y;agt(%x;%t),+att=%z); man(%x;%y,SEM=TIM):=tim(%x;%y); mod(%x,N,SEM=CMN;%y,N,SEM=ANL):=agt(%x;%y); agt(cnt(%x;%y);%z):=agt(%x;%z)cnt(%x;%y); (D,%x)(N,%y):=(%y,+att=%x); (N,PLR,^@pl):=(+att=@pl); (V,PAS,^@past):=(+att=@past); (V,FUT,^@future):=(+att=@future); ("не")(V,%x):=(%x,+att=@not); (" " , %01 ) := ; (R,^N):=(+LEX=N); (COMMA,%x)(C,%y):=(%y); ("слишком")(A,%x):=(%x,+att=@extra); (^N,%x)(COP,%y):=(%x)([00],+LEX=R)(%y); agt (obj(%x,COP;%z);%y):= aoj(%z,+att=%x;%y); (MOV,%x)(V,%y):=(%y,+att=%x); (CJT,%x)(COMMA,%y):=(%x); (J,PTL,^@past,%x):=(%x,+att=@past); (P,^PP,^proj,%x)(NP,%y)({XP|PUT|STAIL|CTAIL|C|N},%z):=(%y,-LEX,-XP,-XB,+LEX=P,+XB=PB,+proj,+rel=%x,+att=%x)(%z); #(P,^PP,%x)(NP,CAS=ACC,%y)({XP|PUT|STAIL|CTAIL|C|N},%z):=(%y,-LEX,-XP,-XB,+LEX=P,+XB=PB,+comp,+proj,+rel=%x,+att=%x)(%z); ("так")(AP,%x)("как")(VP,%y):=(bas(%x;%y,+att=@equal),+XP=AP,+LEX=A); ("хотя")(JP,%x)(COMMA)(VP,%y):=(and(%y;%x,+att=@although),+XP=VP,+LEX=V); (JP,%x)("но")(JP,%y):=(and(%x;%y,+att=@but),+XP=JP,+LEX=J); (VP,%x)("но")(VP,%y):=(and(%x;%y,+att=@but),+XP=VP,+LEX=V); (JP,%x)("но")(JP,%y):=(and(%x;%y,+att=@but),+XP=JP,+LEX=J); (JP,%x)("как")(NP,%y):=(bas(%x;%y,+at=@equal),+XP=JP,+LEX=J); (VB,%x)("чтобы")(VB,%y):=(obj(%x;%y),+XB=VB,+LEX=V); (NP,%x)(VB,%y)(CCJ,%z)(VB,%t):=(%x)(%y)(%z)(%x)(%t); (NP,%x)("и")(NP,%y):=(and(%x;%y),+XP=NP,+LEX=N); (NB,%x)("и")(NB,%y):=(and(%x;%y),+XB=NB,+LEX=N); (VP,%x)("и")(VP,%y):=(and(%x;%y),+XP=VP,+LEX=V); (VB,%x)("и")(VB,%y):=(and(%x;%y),+XP=VP,+LEX=V); (VB,^COP,%x)(AP,%y):=(VB(%x;%y,+adjt),+XB=VB,+LEX=V); (PP,%x)(VB,%y):=(VB(%y;%x,+adjt),+XB=VB,+LEX=V); (VB,%x)(PP,%y):=(VB(%x;%y,+adjt),+XB=VB,+LEX=V); (VB,%x)(JP,%y):=(VB(%x;%y,+comp),+XB=VB,+LEX=V); (NP,%x)(VB,%y):=(VP(%y;%x,+spec),+XP=VP,+LEX=V); (AP,%x)(JB,%y):=(JB(%y;%x,+adjt),+XB=JB,+LEX=J); (PP,%x)(VP,%y):=(VB(%y;%x,+adjt),+XB=VB,+LEX=V); (AP,%x)(AB,%y):=(AP(%y;%x,+spec),+XP=AP,+LEX=A); (JP,%x)(NB,%y):=(NP(%y;%x,+adjt),+XP=NP,+LEX=N,+SEM=%y,+CAS=%y); (JP,%x)(N,%y):=(NB(%y;%x,+adjt),+XB=NB,+LEX=N); (AP,%x)(VB,%y):=(VB(%y;%x,+adjt),+XB=VB,+LEX=V); (VB,%x)(NP,CAS=NOM,%y):=(VP(%x;%y,+spec),+XP=VP,+LEX=V); (VB,%x)(NP,^CAS=NOM,%y):=(VB(%x;%y,+comp),+XB=VB,+LEX=V); (VB,%x)(PP,%y):=(VB(%x;%y,+adjt),+XB=VB,+LEX=V); (AP,%x)(VP,%y):=(VB(%y;%x,+adjt),+XB=VB,+LEX=V); (NP,%x)(JP,%y):=(JP(%y;%x,+aoj),+XP=JP,+LEX=J); (N,%x)(JP,%y):=(JB(%y;%x,+aoj),+XB=JB,+LEX=J); ({N|NB},%x)(NP,%y,CAS=GNT):=(NB(%x;%y,+adjt),+XB=NB,+LEX=N); #({N|NB},%x)(NP, CAS, ^CAS=GNT,%y):=(NB(%x;%y,+comp),+XB=NB,+LEX=N); (VP,%x)(NP,%y):=(VB(%x;%y,+comp),+XB=VB,+LEX=V); (V,%x)(PP,%y):=(VB(%x;%y,+comp),+XB=VB,+LEX=V); (V,%x)(NP,%y)({XP|STAIL|CTAIL|PUT},%z):=(VB(%x;%y,+comp),+XB=VB,+LEX=V,+SEM=%x)(%z); (J,%x)(PP,%y):=(JB(%x;%y,+adjt),+XB=JB,+LEX=J); (V,COP,%x)(AP,%y):=(VB(%x;%y,+comp),+XB=VB,+LEX=V); (V,^COP,%x)(AP,%y):=(VB(%x;%y,+adjt),+XB=VB,+LEX=V); (SAV,att,%x)({AB|JB|DB},%y):=(%y,+att=%x); (PB,^PP,%x):=(+XP=PP,+proj,%x); (JB,^JP,%x):=(+XP=JP,+proj,%x); (AB,^AP,%x):=(+XP=AP,+proj,%x); (NB,%x,^NP):=(+XP=NP,+proj,%x); (VB,^VP):=(+XP=VP); (J,^JB,%x):=(+XB=JB,%x); (A,^AB,%x):=(+XB=AB,%x); (N,^NB,%x):=(+XB=NB,%x); (V,^VB):=(+XB=VB);