### Constraint Grammar for Kyrgyz ### DELIMITERS = "<.>" "" "" ; SOFT-DELIMITERS = "<,>" ; LIST BOS = (>>>) ; # Beginning of sentence LIST EOS = (<<<) ; # End of sentence LIST Nom = nom ; LIST Acc = acc ; LIST Gen = gen ; LIST Adj = adj ; LIST Noun = n ; LIST Past = past ; LIST Vadj = vadj vadj_past ; LIST Vaux = vaux ; LIST Verb = v ; LIST Vb-or-Aux = v vaux ; LIST Part = prc_plan prt_cond prt_perf prt_impf prt_vol prt_irre prt_ala ; LIST PartIrre = prt_irre ; LIST Prc = prc_plan prc_past prc_hab prc_fut prc_cond prc_perf prc_impf prc_vol prc_irre prc_real prc_pcond ; LIST PrcCop = prc_past prc_hab prc_fut prc_irre pre_pcond ; # Prc forms that occur with copula LIST Ger = ger ger_fut ger_past ; LIST Gpr = gpr_fut gpr_pot2 gpr_perf gpr_past gpr gpr_pot gpr_impf gpr_hab gpr_notyet gpr_ppot ; LIST Finite = past ifi fut aor ; LIST Det = det ; LIST Cop = cop ; LIST Sent = sent ; LIST Pl = pl ; LIST Tv = tv ; LIST Iv = iv ; LIST Aor = aor ; LIST Px3pl = px3pl ; LIST Px3sg = px3sg ; LIST Post = post ; LIST Vb-Pl = (v pl) ; LIST Vb-Sg = (v sg) ; LIST Nom-Pl = (nom pl) ; SET Nom-Sg = (nom) - (pl) ; LIST Nouns = n np pron ; SET Sing = (*) - (pl) ; SET Acc-Or-Nom = Acc | Nom ; SET Not-Part = (*) - Part ; SET Not-Prc = (*) - Prc ; SET Not-Sent = (*) - Sent ; SET Tv-Or-Iv = Tv | Iv ; SET PartIrre-Or-Aor = PartIrre | Aor ; SET Vb-Sg-Or-Pl = Vb-Pl | Vb-Sg ; SET Nom-Or-Gen = Nom OR Gen ; SET Np-Nom-Or-Gen = Nouns + Nom-Or-Gen ; SET Np-Nom-Or-Gen-Sg = Np-Nom-Or-Gen + Sing ; SET Px3-Sg-Or-Pl = Px3sg | Px3pl ; LIST Vb-Imp = (v imp) ; LIST N-Acc = (n acc) ; LIST Vb-Ifi-3 = (v ifi p3 sg) (v ifi p3 pl) ; SECTION # No vaux if participle doesn't precede REMOVE Vaux IF (0C Vb-or-Aux) # the current word can be verb also (-1C Not-Prc); # previous word is not a participle ## V if participle doesn't precede #SELECT Verb IF # (0C Vb-or-Aux) # the current word can be verb also # (-1C Not-Part); # previous word is not a participle # adj if next word is noun SELECT Adj IF (1C Noun); # no past forms if next word is noun REMOVE Past IF (0C Vb-or-Aux) (1C Noun); # get rid of copula reading if not end of sentence REMOVE Cop IF (1C Not-Sent); # select plural verb reading if subject is plural SELECT Pl IF (0C Vb-Sg-Or-Pl) (*-1C Nom-Pl BARRIER Sent); # get rid of plural verb reading if subject not plural REMOVE Pl IF (0C Vb-Sg-Or-Pl) (*-1C Nom-Sg BARRIER Sent); # select iv if acc precedes REMOVE Iv IF (0C Tv-Or-Iv) (-1C Acc); # get rid of prt_irre if also can be aor if following word sent REMOVE PartIrre IF (0C PartIrre-Or-Aor) (1C Sent); # get rid of plural possessive reading if antecedant is sg REMOVE Px3pl IF (0C Px3-Sg-Or-Pl) (*-1C Np-Nom-Or-Gen-Sg BARRIER Sent); # жер REMOVE Verb IF (-1 Det); # Some rules for participle forms that are followed by copulas # E.g., түшкөн эле REMOVE Ger IF (0 PrcCop) (1 Cop) ; REMOVE Gpr IF (0 PrcCop) (1 Cop) ; REMOVE Finite IF (0 PrcCop) (1 Cop) ; SELECT Cop IF (-1 PrcCop) ; # бат REMOVE Vb-Imp IF (1 Verb) # ambiguous n.acc/v.*.ifi forms, e.g. түштү, etc. SELECT Vb-Ifi-3 IF (0 N-Acc) (1C Sent) ;