;;; Hey, emacs (1), this is -*- mode:tdl; Coding: utf-8; -*- ;;; ;;; Montserrat Marimon ;;; IULA - UPF ;;; ;;; irtypes.tdl: inflectional rule types for the SRG basic-lex-rule := word-or-lexrule & [ NEEDS-AFFIX bool, SYNSEM [ PUNCT #punct, LOCAL [ STR.HEADED solely, COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat ] ], DTR #dtr & word-or-lexrule & [ SYNSEM [ PUNCT #punct, LOCAL [ COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat ] ] ], ARGS < #dtr > ]. non_cann-lex-rule := basic-lex-rule & [ SYNSEM.LOCAL.CONT [ RELS #rels, HCONS #hcons ], DTR.SYNSEM.LOCAL.CONT [ RELS #rels, HCONS #hcons ] ]. lex-rule := basic-lex-rule & phrase-or-lexrule & [ SYNSEM.LOCAL.CONT [ RELS [ LIST #first, LAST #last ], HCONS [ LIST #hfirst, LAST #hlast ] ], DTR.SYNSEM.LOCAL.CONT [ RELS [ LIST #first, LAST #middle ], HCONS [ LIST #hfirst, LAST #hmiddle ] ], C-CONT [ RELS [ LIST #middle, LAST #last ], HCONS [ LIST #hmiddle, LAST #hlast ] ] ]. ; Lexical rules vary on two dimensions: whether they are lexeme-to-lexeme ; or lexeme-to-word and whether or not they involve spelling changes. ; Accordingly, we define four subtypes of lex-rule, which have ; four cross-classified glb subtypes. Note that the lexeme/word distinction ; is represented via a feature [INFLECTED bool] rather than as a type. ; We find this more convenient, as it allows certain words to be [INFLECTED +] ; from the start without having to twist the hierarchy too much (especially ; if one makes use of defaults). ; Lexeme-to-word rules are hypothesized to monotonically add synsem information. lexeme-to-word-rule := lex-rule & [ INFLECTED +, KEY-ARG #keyarg, SYNSEM #synsem, DTR [ INFLECTED -, KEY-ARG #keyarg, SYNSEM #synsem ], C-CONT.RELS ]. non_cann-lexeme-to-word-rule := non_cann-lex-rule & [ INFLECTED +, KEY-ARG #keyarg, SYNSEM #synsem, DTR [ INFLECTED -, KEY-ARG #keyarg, SYNSEM #synsem ] ]. ; Lexeme-to-lexeme rules can make more radical changes to the SYNSEM value. lexeme-to-lexeme-rule := lex-rule & [ INFLECTED #infl, SYNSEM.LOCAL.CAT.MC #mc, DTR [ INFLECTED #infl, SYNSEM.LOCAL.CAT.MC #mc ] ]. ; Spelling changing rules. The LKB identifies these rules based on the NEEDS-AFFIX value. inflecting-lex-rule := lex-rule & [ NEEDS-AFFIX +, SYNSEM.SLSHD #slshd, ARG-ST #arg-st, DTR [ SYNSEM.SLSHD #slshd, ALTS #alts, ARG-ST #arg-st ], ALTS #alts ]. ; Spelling-preserving rules copy up the STEM (orthography) of the daughter. constant-lex-rule := lex-rule & [ STEM #stem, DTR.STEM #stem ]. ; Cross-classified glb types infl-ltol-rule := lexeme-to-lexeme-rule & inflecting-lex-rule. infl-ltow-rule := lexeme-to-word-rule & inflecting-lex-rule. non_cann-infl-ltow-rule := non_cann-lexeme-to-word-rule & inflecting-lex-rule. const-ltol-rule := lexeme-to-lexeme-rule & constant-lex-rule. const-ltow-rule := lexeme-to-word-rule & constant-lex-rule. const-ltol-rule-noncont := basic-lex-rule & phrase-or-lexrule & [ STEM #stem, INFLECTED #infl, SYNSEM.LOCAL.CAT.MC #mc, DTR [ STEM #stem, INFLECTED #infl, SYNSEM.LOCAL.CAT.MC #mc ] ]. ; --- inflectional lexical rule types ; -- FL tags which have no lexical entry no_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD no-head ]. ; -- non-inflecting categories rg_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD +nr ]. nc00000_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD noun ]. i_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD interj ]. sps00_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD adp ]. cs_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD +pc ]. cc_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD conj ]. ; -- named entities np00000_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [ KEYS.KEY named_rel ] ]. ne_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD head ]. ;pnct_ilr := infl-ltow-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.PUNCT-MK basic_punct_mark ]. ; --- Inflecting categories 1sg_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 1sg ]. 1pl_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 1pl ]. 2sg_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 2sg ]. 2pl_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 2pl ]. 3per_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3per ]. 3sg_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3sg ]. 3pl_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3pl ]. sg_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN sing ]. pl_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN plur ]. masc_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. fem_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. neut_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN neut ]. masc_3sg_ilr := masc_ilr & 3sg_ilr. masc_3pl_ilr := masc_ilr & 3pl_ilr. fem_3sg_ilr := fem_ilr & 3sg_ilr. fem_3pl_ilr := fem_ilr & 3pl_ilr. neut_3sg_ilr := neut_ilr & 3sg_ilr. ; -- determiners d_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD det ]. da_ilr := d_ilr & [ SYNSEM.LKEYS.KEYREL.PRED art_def_q_rel ]. dd_ilr := d_ilr & [ SYNSEM.LKEYS.KEYREL.PRED dem_q_rel ]. dp_ilr := d_ilr & [ SYNSEM.LKEYS.KEYREL.PRED poss_q_rel ]. dt_ilr := d_ilr & [ SYNSEM.NON-LOCAL.QUE 1-dlist ]. de_ilr := d_ilr & [ SYNSEM.NON-LOCAL.QUE 0-dlist ]. dr_ilr := d_ilr & [ SYNSEM.NON-LOCAL.REL 1-dlist ]. ; -- definite articles da0ms0_ilr := da_ilr & masc_3sg_ilr. da0mp0_ilr := da_ilr & masc_3pl_ilr. da0fs0_ilr := da_ilr & fem_3sg_ilr. da0fp0_ilr := da_ilr & fem_3pl_ilr. da0ns0_ilr := da_ilr & 3sg_ilr. ; -- demonstrative det. dd0ms0_ilr := dd_ilr & masc_3sg_ilr. dd0mp0_ilr := dd_ilr & masc_3pl_ilr. dd0fs0_ilr := dd_ilr & fem_3sg_ilr. dd0fp0_ilr := dd_ilr & fem_3pl_ilr. dd0cs0_ilr := d_ilr & 3sg_ilr. dd0cp0_ilr := d_ilr & 3pl_ilr. ; -- possessive det. dp1css_ilr := dp_ilr & 3sg_ilr. dp1cps_ilr := dp_ilr & 3pl_ilr. dp1msp_ilr := dp_ilr & masc_3sg_ilr. dp1mpp_ilr := dp_ilr & masc_3pl_ilr. dp1fsp_ilr := dp_ilr & fem_3sg_ilr. dp1fpp_ilr := dp_ilr & fem_3pl_ilr. dp2css_ilr := dp_ilr & 3sg_ilr. dp2cps_ilr := dp_ilr & 3pl_ilr. dp2msp_ilr := dp_ilr & masc_3sg_ilr. dp2mpp_ilr := dp_ilr & masc_3pl_ilr. dp2fsp_ilr := dp_ilr & fem_3sg_ilr. dp2fpp_ilr := dp_ilr & fem_3pl_ilr. dp3cs0_ilr := dp_ilr & 3sg_ilr. dp3cp0_ilr := dp_ilr & 3pl_ilr. ; -- indefinite det. di0ms0_ilr := d_ilr & masc_3sg_ilr. di0mp0_ilr := d_ilr & masc_3pl_ilr. di0fs0_ilr := d_ilr & fem_3sg_ilr. di0fp0_ilr := d_ilr & fem_3pl_ilr. di0cs0_ilr := d_ilr & 3sg_ilr. di0cp0_ilr := d_ilr & 3pl_ilr. ; -- interrogative det. dt0ms0_ilr := dt_ilr & masc_3sg_ilr. dt0mp0_ilr := dt_ilr & masc_3pl_ilr. dt0fs0_ilr := dt_ilr & fem_3sg_ilr. dt0fp0_ilr := dt_ilr & fem_3pl_ilr. dt0cs0_ilr := dt_ilr & 3sg_ilr. dt0cp0_ilr := dt_ilr & 3pl_ilr. dt0cn0_ilr := dt_ilr. ; -- exclamative det. de0ms0_ilr := de_ilr & masc_3sg_ilr. de0mp0_ilr := de_ilr & masc_3pl_ilr. de0fs0_ilr := de_ilr & fem_3sg_ilr. de0fp0_ilr := de_ilr & fem_3pl_ilr. de0cs0_ilr := de_ilr & 3sg_ilr. de0cp0_ilr := de_ilr & 3pl_ilr. de0cn0_ilr := de_ilr. ; -- relative det. dr0ms0_ilr := dr_ilr & masc_3sg_ilr. dr0mp0_ilr := dr_ilr & masc_3pl_ilr. dr0fs0_ilr := dr_ilr & fem_3sg_ilr. dr0fp0_ilr := dr_ilr & fem_3pl_ilr. ; --- pronouns pr_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD noun ]. pr_sg_ilr := pr_ilr & [ SYNSEM.LOCAL.AGR [ DIVISIBLE -, PNG.PN sing ] ]. pr_pl_ilr := pr_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN plur ]. pi_ilr := pr_ilr & [ SYNSEM.NON-LOCAL.REL 0-dlist ]. pt_ilr := pr_ilr & [ SYNSEM.NON-LOCAL.QUE 1-dlist ]. pe_ilr := pr_ilr & [ SYNSEM.NON-LOCAL.QUE 0-dlist ]. pd_ilr := pr_ilr & [ SYNSEM.LOCAL [ CAT.HEAD.KEYS.ALT2KEY dem_q_rel, CONT.RELS ] ]. pp_ilr := infl-ltow-rule. ; -- indefinite pron. pi0ms000_ilr := pi_ilr & sg_ilr & masc_ilr. pi0mp000_ilr := pi_ilr & pl_ilr & masc_ilr. pi0fs000_ilr := pi_ilr & sg_ilr & fem_ilr. pi0fp000_ilr := pi_ilr & pl_ilr & fem_ilr. pi0cs000_ilr := pi_ilr & sg_ilr. pi0cp000_ilr := pi_ilr & pl_ilr. pi0cc000_ilr := pi_ilr. ; -- interrogative pron. pt0ms000_ilr := pt_ilr & sg_ilr & masc_ilr. pt0mp000_ilr := pt_ilr & pl_ilr & masc_ilr. pt0fs000_ilr := pt_ilr & sg_ilr & fem_ilr. pt0fp000_ilr := pt_ilr & pl_ilr & fem_ilr. pt0cs000_ilr := pt_ilr & sg_ilr. pt0cp000_ilr := pt_ilr & pl_ilr. pt0cn000_ilr := pt_ilr. pt000000_ilr := pt_ilr. ; -- exclamative pron. pe0ms000_ilr := pe_ilr & sg_ilr & masc_ilr. pe0mp000_ilr := pe_ilr & pl_ilr & masc_ilr. pe0fs000_ilr := pe_ilr & sg_ilr & fem_ilr. pe0fp000_ilr := pe_ilr & pl_ilr & fem_ilr. pe0cs000_ilr := pe_ilr & sg_ilr. pe0cp000_ilr := pe_ilr & pl_ilr. pe000000_ilr := pe_ilr. ; -- demonstrative pron. pd0ms000_ilr := pd_ilr & sg_ilr & masc_ilr. pd0mp000_ilr := pd_ilr & pl_ilr & masc_ilr. pd0fs000_ilr := pd_ilr & sg_ilr & fem_ilr. pd0fp000_ilr := pd_ilr & pl_ilr & fem_ilr. pd0ns000_ilr := pd_ilr & sg_ilr & neut_ilr. pd0cs000_ilr := pd_ilr & sg_ilr. pd0cp000_ilr := pd_ilr & pl_ilr. ; -- relative pron. pr0cs000_ilr := pr_sg_ilr. pr0cp000_ilr := pr_pl_ilr. pr0cn000_ilr := pr_ilr. pr000000_ilr := pr_ilr. ; -- personal pron. pp1csn00_ilr := pp_ilr & 1sg_ilr. pp2csn00_ilr := pp_ilr & 2sg_ilr. pp3fs000_ilr := pp_ilr & 3sg_ilr & fem_ilr. pp3ms000_ilr := pp_ilr & 3sg_ilr & masc_ilr. pp3ns000_ilr := pp_ilr & 3sg_ilr & neut_ilr. pp1fp000_ilr := pp_ilr & 1pl_ilr & fem_ilr. pp1mp000_ilr := pp_ilr & 1pl_ilr & masc_ilr. pp2fp000_ilr := pp_ilr & 2pl_ilr & fem_ilr. pp2mp000_ilr := pp_ilr & 2pl_ilr & masc_ilr. pp3fp000_ilr := pp_ilr & 3pl_ilr & fem_ilr. pp3mp000_ilr := pp_ilr & 3pl_ilr & masc_ilr. pp2cs00p_ilr := pp_ilr & 3sg_ilr. pp2cp00p_ilr := pp_ilr & 3pl_ilr. pp1cso00_ilr := pp_ilr & 1sg_ilr. pp2cso00_ilr := pp_ilr & 2sg_ilr. pp3cno00_ilr := pp_ilr & 3per_ilr & [ SYNSEM.LOCAL.CAT.HEAD.MOD < > ]. ; -- adjectives a_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD adj ]. a_sg_ilr := a_ilr & 3sg_ilr. a_pl_ilr := a_ilr & 3pl_ilr. a_fem-sg_ilr := a_ilr & fem_3sg_ilr. a_fem-pl_ilr := a_ilr & fem_3pl_ilr. a_masc-sg_ilr := a_ilr & masc_3sg_ilr. a_masc-pl_ilr := a_ilr & masc_3pl_ilr. a_neut-sg_ilr := a_ilr & neut_3sg_ilr. ; -- clitics ;affx_ilr := non_cann-infl-ltow-rule. affx_ilr := non_cann-lex-rule & [ NEEDS-AFFIX +, INFLECTED +, KEY-ARG #keyarg, SYNSEM #synsem, DTR [ INFLECTED -, KEY-ARG #keyarg, SYNSEM #synsem, ARG-ST #arg-st, ALTS #alts ], ARG-ST #arg-st, ALTS #alts ]. affx_1sg_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 1sg ]. affx_1pl_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 1pl ]. affx_2sg_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 2sg ]. affx_2pl_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 2pl ]. affx_3per_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 3per ]. affx_3sg_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 3sg ]. affx_3sg-fem_ilr := affx_3sg_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. affx_3sg-masc_ilr := affx_3sg_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. affx_3neut_ilr := affx_3per_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN neut ]. affx_3pl_ilr := affx_ilr & [ SYNSEM.LOCAL.AGR.PNG.PN 3pl ]. affx_3pl-fem_ilr := affx_3pl_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. affx_3pl-masc_ilr := affx_3pl_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. pp1cs000_ilr := affx_1sg_ilr. p01cs000_ilr := affx_1sg_ilr. ; --- Common Nouns n_ilr := basic-lex-rule & phrase-or-lexrule & [ NEEDS-AFFIX +, INFLECTED +, KEY-ARG #keyarg, SYNSEM [ LIGHT #light, MODIFIED #modified, PUNCT #punct, LOCAL [ AGR [ PNG.PN 3per, PRONTYPE not_pron ], COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat, CAT [ MC #mc, HC-LIGHT #mc-light, POSTHEAD #posthead, HEAD #head, VAL [ SUBJ #subj, COMPS #comps, SPEC #spec, --KEYCOMP #keycomp ] ], CONT [ HCONS #hcons, HOOK [ LTOP #ltop, XARG #xarg, INDEX [ SORT #sort, PRONTYPE not_pron ] ], RELS & [ LIST.REST #rest, LAST #last ] ], CTXT #ctxt ], NON-LOCAL #nlocal, LKEYS [ ALTKEYREL #akey, ALT2KEYREL #a2key, --COMPKEY #ckey, --OCOMPKEY #ockey, --OCOMP2KEY #oc2key ] ], DTR #dtr & word-or-lexrule & [ INFLECTED -, KEY-ARG #keyarg, SYNSEM [ LIGHT #light, MODIFIED #modified, PUNCT #punct, LOCAL [ AGR.PNG.PN 3per, COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat, CAT [ MC #mc, HC-LIGHT #mc-light, POSTHEAD #posthead, HEAD #head & noun, VAL [ SUBJ #subj, COMPS #comps, SPEC #spec, --KEYCOMP #keycomp ] ], CONT [ HCONS #hcons, HOOK [ LTOP #ltop, XARG #xarg, INDEX [ SORT #sort, PRONTYPE not_pron ] ], RELS [ LIST.REST #rest, LAST #last ] ], CTXT #ctxt ], NON-LOCAL #nlocal, LKEYS [ ALTKEYREL #akey, ALT2KEYREL #a2key, --COMPKEY #ckey, --OCOMPKEY #ockey, --OCOMP2KEY #oc2key ] ], ALTS #alts ], C-CONT.RELS , ARGS < #dtr >, ALTS #alts ]. n_sg_ilr := n_ilr & inflecting-lex-rule & [ SYNSEM #synsem & [ LOCAL [ AGR #ind & [ PNG.PN 3sg ], CAT.VAL.SPR #spr, CONT.HOOK [ LTOP #ltop, INDEX #index ] ], LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ], DTR.SYNSEM #synsem & [ LOCAL [ CAT.VAL.SPR #spr & < [ LOCAL.AGR #ind ] >, CONT.HOOK [ LTOP #ltop, INDEX #index ] ], LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ] ]. n_pl_ilr := n_ilr & [ SYNSEM [ LOCAL [ AGR #agr & [ PNG.PN 3pl, DIVISIBLE +, PRONTYPE not_pron, SORT #sort ], CAT [ VAL.SPR < [ OPT #opt, LOCAL [ AGR #agr, CAT #cat, CONT [ HCONS #hcons, HOOK [ LTOP #ltop, XARG #xarg, INDEX #agr ], RELS #rels ], CTXT #ctxt ], NON-LOCAL #nlocal ] > ], CONT [ HOOK.INDEX #agr, RELS.LIST.FIRST #keyrel & noun-relation & [ ARG0 #agr ] ] ], LKEYS.KEYREL #keyrel ], DTR.SYNSEM.LOCAL [ AGR.SORT #sort, CAT.VAL.SPR < [ OPT #opt, LOCAL [ CAT #cat, CONT [ HCONS #hcons, HOOK [ LTOP #ltop, XARG #xarg ], RELS #rels ], CTXT #ctxt ], NON-LOCAL #nlocal ] >, CONT [ HOOK.INDEX.SORT #sort, RELS.LIST.FIRST #keyrel ] ] ]. n_masc_ilr := n_ilr & [ SYNSEM #synsem & [ LOCAL [ AGR #agr & [ PNG.GEN masc ], CAT.VAL.SPR < [ LOCAL [ AGR #agr, CONT.HOOK.INDEX #agr ] ] >, CONT [ HOOK.INDEX #agr, RELS.LIST.FIRST.ARG0 #agr ] ] ], DTR.SYNSEM #synsem ]. n_fem_ilr := n_ilr & [ SYNSEM #synsem & [ LOCAL [ AGR #agr & [ PNG.GEN fem ], CAT.VAL.SPR < [ LOCAL [ AGR #agr, CONT.HOOK.INDEX #agr ] ] >, CONT [ HOOK.INDEX #agr, RELS.LIST.FIRST.ARG0 #agr ] ] ], DTR.SYNSEM #synsem ]. n_com_ilr := n_ilr & [ SYNSEM #synsem & [ LOCAL [ AGR #agr, CAT.VAL.SPR < [ LOCAL [ AGR #agr, CONT.HOOK.INDEX #agr ] ] >, CONT [ HOOK.INDEX #agr, RELS.LIST.FIRST.ARG0 #agr ] ] ], DTR.SYNSEM #synsem ]. n_masc-sg_ilr := n_sg_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. n_masc-pl_ilr := n_pl_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. n_fem-sg_ilr := n_sg_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. n_fem-pl_ilr := n_pl_ilr & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. ; --- Verbs verb_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD verb ]. vaux_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.AUX + ]. vmain_ilr := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.AUX - ]. vfin_ilr := verb_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ PRD non-prd, VFORM fin ] ]. ind-vfin_ilr := vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD ind ] ]. pres-ind_ilr := ind-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE pres ]. ppast-ind_ilr := ind-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ppast ]. ipast-ind_ilr := ind-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ipast ]. fut-ind_ilr := ind-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE fut ]. cond-ind_ilr := ind-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE cond ]. sub-vfin_ilr := vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD sub ] ]. pres-sub_ilr := sub-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE pres ]. ipast-sub_ilr := sub-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ipast ]. fut-sub_ilr := sub-vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE fut ]. imperative_ilr := vfin_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ TAM [ MOOD imp, TENSE pres ] ] ]. ;vinf_ilr := infl-ltow-rule & vinf_ilr := verb_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM inf, VOICE active, TAM [ TENSE nontense, ASPECT no-aspect ] ] ]. ;vger_ilr := infl-ltow-rule & vger_ilr := verb_ilr & [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM ger, PRD prd & [ COPV estar ] ] ] ]. ; VAL.SUBJ < unexpressed & [ OPT - ] > ] ]. ;vpart_ilr := infl-ltow-rule & vpart_ilr := verb_ilr & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD ind_or_sub_mood, VFORM part, VOICE active, PRD non-prd ] ]. vppart_ilr := inflecting-lex-rule & [ INFLECTED +, SYNSEM [ LOCAL [ AGR #agr, CAT [ HEAD verb & [ AUX -, PRD prd, VFORM part, VOICE passive, TAM [ TENSE #tense, MOOD #mood ], KEYS.KEY #key, MOD < > ], VAL [ SPR #spr, SUBJ < synsem & [ LOCAL np_nom_local & [ AGR #agr, CONT #objcont & [ HOOK.INDEX #agr ] ], NON-LOCAL #ononloc & [ SLASH 0-dlist ] ] >, COMPS < [ OPT +, LOCAL mrkd_np_local & [ CAT.HEAD.KEYS.KEY _por_p_sel_rel, CONT.HOOK [ LTOP #hand, INDEX #subjind ] ], NON-LOCAL #snonloc ]. #comps >, CLTS < > ] ], CONT [ HOOK [ INDEX.E.MOOD #mood, LTOP #hand ], RELS #rels, HCONS #hcons ], CTXT #ctxt ], LKEYS #lkeys, NON-LOCAL #nonloc ], DTR [ INFLECTED -, SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM part, VOICE passive, TAM [ TENSE #tense, MOOD #mood ], KEYS.KEY #key ], VAL [ SPR #spr, SUBJ < [ LOCAL np_nom_local & [ CONT.HOOK.INDEX #subjind ], NON-LOCAL #snonloc ] >, COMPS [ FIRST [ LOCAL [ CONT #objcont ], NON-LOCAL #ononloc ], REST #comps ], CLTS < > ] ], CONT [ HOOK.LTOP #hand, RELS #rels, HCONS #hcons ], CTXT #ctxt ], LKEYS #lkeys, NON-LOCAL #nonloc ] ] ]. ; --- enclitics (with infinitives, imperatives and gerunds) enclt_ilr := lex-rule & [ NEEDS-AFFIX +, INFLECTED +, ALTS #alts, KEY-ARG #keyarg, SYNSEM [ MODIFIED #modified, LOCAL [ AGR #agr, CAT [ MC #mc, HEAD [ INV #inv, AUX #aux, VFORM #vform, VOICE #voice, TAM #tam, PRD #prd, KEYS #keys, MOD #mod, CLIT #case ], VAL [ SPEC #spec, SPR #spr, SUBJ #subj, COMPS #comps, CLTS #clts ] ], CONT #cont, CTXT #ctxt ], NON-LOCAL #nonloc, LKEYS #lkey ], ARG-ST #argst, DTR [ ALTS #alts, INFLECTED +, KEY-ARG #keyarg, SYNSEM [ MODIFIED #modified, LOCAL [ AGR #agr, CAT [ MC #mc, HEAD [ INV #inv, AUX #aux, VFORM #vform, VOICE #voice, TAM #tam, PRD #prd, KEYS #keys, MOD #mod ], VAL [ SPEC #spec, SPR #spr, SUBJ #subj, COMPS #comps, CLTS < clitic-synsem & [ LOCAL [ CAT.HEAD.CASE #case ] ]. #clts > ] ], CONT #cont, CTXT #ctxt ], NON-LOCAL #nonloc, LKEYS #lkey ], ARG-ST #argst ], C-CONT.RELS ]. acc_enclt_ilr := enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE acc ], ... > ]. pp3msa_ilr := acc_enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PN 3sg, GEN masc ] ],... > ]. pp3cna_ilr := acc_enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PN 3sg, GEN masc ] ],... > ]. dat_enclt_ilr := enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE dat ], ... > ]. acc_or_dat_or_rflx_enclt_ilr := enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE acc_or_rflx_or_dat ],... > ]. acc_or_dat_or_rflx_or_recip_enclt_ilr := enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE acc_or_rflx_or_rcp_or_dat ], ... > ]. se_enclt_ilr := enclt_ilr. ;se_enclt_ilr := enclt_ilr & ; [ SYNSEM.LOCAL.CAT [ HEAD.CLIT #case, ; VAL.CLTS #clts ], ; DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < clitic-synsem & ; [ LOCAL [ AGR.PRONTYPE std_or_recip_or_refl_pron, ; CAT.HEAD.CASE #case & rflx_or_rcp_or_dat ] ]. #clts > ]. se_impers_enclt_ilr := enclt_ilr & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL [ AGR.PRONTYPE impers, CAT.HEAD.CASE none ] ], ... > ].