;;; 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.LOCAL [ STR.HEADED solely, COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat ], DTR #dtr & word-or-lexrule & [ SYNSEM.LOCAL [ COORD #coord, COORD-REL #coord-rel, COORD-STRAT #coord-strat ] ], ARGS < #dtr > ]. 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 ]. ; 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 +, ARG-ST #arg-st, DTR [ 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. 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_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD no-head ]. ; -- non-inflecting categories av_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD +nr ]. p_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD adp ]. cs_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD +pc ]. cc_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD conj ]. i_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD interjection_hd ]. pnct_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.PUNCTUATION basic_punct_mark ]. ; -- messy details pname_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [ KEYS.KEY named_rel ] ]. md_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD head ]. ; --- Inflecting categories 1sg_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 1sg ]. 1pl_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 1pl ]. 2sg_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 2sg ]. 2pl_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 2pl ]. 3per_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3per ]. 3sg_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3sg ]. 3pl_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3pl ]. masc_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. fem_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. neut_irule := infl-ltow-rule & [ SYNSEM.LOCAL.AGR.PNG.GEN neut ]. fem_3sg_irule := fem_irule & 3sg_irule. fem_3pl_irule := fem_irule & 3pl_irule. masc_3sg_irule := masc_irule & 3sg_irule. masc_3pl_irule := masc_irule & 3pl_irule. neut_3sg_irule := neut_irule & 3sg_irule. ; -- adjectives a_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD adj ]. a_sg_irule := a_irule & 3sg_irule. a_pl_irule := a_irule & 3pl_irule. a_fem-sg_irule := a_irule & fem_3sg_irule. a_fem-pl_irule := a_irule & fem_3pl_irule. a_masc-sg_irule := a_irule & masc_3sg_irule. a_masc-pl_irule := a_irule & masc_3pl_irule. a_neut-sg_irule := a_irule & neut_3sg_irule. ; -- determiners d_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD det ]. da_irule := d_irule & [ SYNSEM.LKEYS.KEYREL.PRED art_def_q_rel ]. dd_irule := d_irule & [ SYNSEM.LKEYS.KEYREL.PRED dem_q_rel ]. dp_irule := d_irule & [ SYNSEM.LKEYS.KEYREL.PRED poss_q_rel ]. dt_irule := d_irule & [ SYNSEM.NON-LOCAL.QUE 1-dlist ]. de_irule := d_irule & [ SYNSEM.NON-LOCAL.QUE 0-dlist ]. dr_irule := d_irule & [ SYNSEM.NON-LOCAL.REL 1-dlist ]. ; -- definite articles da_fem-sg_irule := da_irule & fem_3sg_irule. da_fem-pl_irule := da_irule & fem_3pl_irule. da_masc-sg_irule := da_irule & masc_3sg_irule. da_masc-pl_irule := da_irule & masc_3pl_irule. da_neut-sg_irule := da_irule & neut_3sg_irule. ; -- demonstrative det. dd_fem-sg_irule := dd_irule & fem_3sg_irule. dd_fem-pl_irule := dd_irule & fem_3pl_irule. dd_masc-sg_irule := dd_irule & masc_3sg_irule. dd_masc-pl_irule := dd_irule & masc_3pl_irule. ; -- possessive det. dp_sg_irule := dp_irule & 3sg_irule. dp_pl_irule := dp_irule & 3pl_irule. dp_fem-sg_irule := dp_irule & fem_3sg_irule. dp_fem-pl_irule := dp_irule & fem_3pl_irule. dp_masc-sg_irule := dp_irule & masc_3sg_irule. dp_masc-pl_irule := dp_irule & masc_3pl_irule. ; -- interrogative det. dt_sg_irule := dt_irule & 3sg_irule. dt_pl_irule := dt_irule & 3pl_irule. dt_fem-sg_irule := dt_irule & fem_3sg_irule. dt_fem-pl_irule := dt_irule & fem_3pl_irule. dt_masc-sg_irule := dt_irule & masc_3sg_irule. dt_masc-pl_irule := dt_irule & masc_3pl_irule. ; -- exclamative det. de_sg_irule := de_irule & 3sg_irule. de_pl_irule := de_irule & 3pl_irule. de_fem-sg_irule := de_irule & fem_3sg_irule. de_fem-pl_irule := de_irule & fem_3pl_irule. de_masc-sg_irule := de_irule & masc_3sg_irule. de_masc-pl_irule := de_irule & masc_3pl_irule. ; -- relative det. dr_fem-sg_irule := dr_irule & fem_3sg_irule. dr_fem-pl_irule := dr_irule & fem_3pl_irule. dr_masc-sg_irule := dr_irule & masc_3sg_irule. dr_masc-pl_irule := dr_irule & masc_3pl_irule. ; -- quantifiers d_sg_irule := d_irule & 3sg_irule. d_pl_irule := d_irule & 3pl_irule. d_fem-sg_irule := d_irule & fem_3sg_irule. d_fem-pl_irule := d_irule & fem_3pl_irule. d_masc-sg_irule := d_irule & masc_3sg_irule. d_masc-pl_irule := d_irule & masc_3pl_irule. d_neut-sg_irule := d_irule & neut_3sg_irule. ; --- pronouns pr_irule := infl-ltow-rule & [ SYNSEM.LOCAL [ AGR.PRONTYPE real_pron, CAT.HEAD noun ] ]. pr_sg_irule := pr_irule & 3sg_irule & [ SYNSEM.LOCAL.AGR.DIVISIBLE - ]. pr_pl_irule := pr_irule & 3pl_irule. pi_irule := pr_irule & [ SYNSEM.NON-LOCAL.REL 0-dlist ]. pt_irule := pr_irule & [ SYNSEM.NON-LOCAL.QUE 1-dlist ]. pe_irule := pr_irule & [ SYNSEM.NON-LOCAL.QUE 0-dlist ]. pd_irule := pr_irule & [ SYNSEM.LOCAL [ CAT.HEAD.KEYS.ALTKEY dem_q_rel, CONT.RELS ] ]. pp_irule := infl-ltow-rule. ; -- indefinite pron. pi_sg_irule := pi_irule & 3sg_irule. pi_pl_irule := pi_irule & 3pl_irule. pi_fem-sg_irule := pi_irule & 3sg_irule & fem_irule. pi_fem-pl_irule := pi_irule & 3pl_irule & fem_irule. pi_masc-sg_irule := pi_irule & 3sg_irule & masc_irule. pi_masc-pl_irule := pi_irule & 3pl_irule & masc_irule. ; -- interrogative pron. pt_sg_irule := pt_irule & 3sg_irule. pt_pl_irule := pt_irule & 3pl_irule. pt_fem-sg_irule := pt_irule & 3sg_irule & fem_irule. pt_fem-pl_irule := pt_irule & 3pl_irule & fem_irule. pt_masc-sg_irule := pt_irule & 3sg_irule & masc_irule. pt_masc-pl_irule := pt_irule & 3pl_irule & masc_irule. ; -- exclamative pron. pe_sg_irule := pe_irule & 3sg_irule. pe_pl_irule := pe_irule & 3pl_irule. pe_fem-sg_irule := pe_irule & 3sg_irule & fem_irule. pe_fem-pl_irule := pe_irule & 3pl_irule & fem_irule. pe_masc-sg_irule := pe_irule & 3sg_irule & masc_irule. pe_masc-pl_irule := pe_irule & 3pl_irule & masc_irule. ; -- demonstrative pron. pd_sg_irule := pd_irule & 3sg_irule. pd_pl_irule := pd_irule & 3pl_irule. pd_fem-sg_irule := pd_irule & 3sg_irule & fem_irule. pd_fem-pl_irule := pd_irule & 3pl_irule & fem_irule. pd_masc-sg_irule := pd_irule & 3sg_irule & masc_irule. pd_masc-pl_irule := pd_irule & 3pl_irule & masc_irule. pd_neut-sg_irule := pd_irule & 3sg_irule & neut_irule. ; -- personal pron. pp_3per_irule := pp_irule & 3per_irule. pp_1sg_irule := pp_irule & 1sg_irule. pp_2sg_irule := pp_irule & 2sg_irule. pp_3sg-fem_irule := pp_irule & 3sg_irule & fem_irule. pp_3sg-masc_irule := pp_irule & 3sg_irule & masc_irule. pp_3sg-neut_irule := pp_irule & 3sg_irule & neut_irule. pp_1pl-fem_irule := pp_irule & 1pl_irule & fem_irule. pp_1pl-masc_irule := pp_irule & 1pl_irule & masc_irule. pp_2pl_irule := pp_irule & 2pl_irule. pp_2pl-fem_irule := pp_irule & 2pl_irule & fem_irule. pp_2pl-masc_irule := pp_irule & 2pl_irule & masc_irule. pp_3pl-fem_irule := pp_irule & 3pl_irule & fem_irule. pp_3pl-masc_irule := pp_irule & 3pl_irule & masc_irule. ; -- clitics affx-lex-rule := basic-lex-rule & [ SYNSEM.LOCAL.CONT [ RELS #rels, HCONS #hcons ], DTR [ SYNSEM.LOCAL.CONT [ RELS #rels, HCONS #hcons ] ] ]. affx_irule := affx-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_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 1sg ]. affx_1pl_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 1pl ]. affx_2sg_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 2sg ]. affx_2pl_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 2pl ]. affx_3per_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 3per ]. affx_3sg_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 3sg ]. affx_3sg-fem_irule := affx_3sg_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. affx_3sg-masc_irule := affx_3sg_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. affx_3neut_irule := affx_3per_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN neut ]. affx_3pl_irule := affx_irule & [ SYNSEM.LOCAL.AGR.PNG.PN 3pl ]. affx_3pl-fem_irule := affx_3pl_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. affx_3pl-masc_irule := affx_3pl_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. ; --- Common Nouns n_irule := 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.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.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_irule := n_irule & inflecting-lex-rule & [ SYNSEM #synsem & [ LOCAL [ AGR.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, CONT.HOOK [ LTOP #ltop, INDEX #index ] ], LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ] ]. n_pl_irule := n_irule & [ 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_irule := n_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN masc ]. n_fem_irule := n_irule & [ SYNSEM.LOCAL.AGR.PNG.GEN fem ]. n_masc-sg_irule := n_masc_irule & n_sg_irule. n_masc-pl_irule := n_masc_irule & n_pl_irule. n_fem-sg_irule := n_fem_irule & n_sg_irule. n_fem-pl_irule := n_fem_irule & n_pl_irule. ; --- Verbs verb_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD verb ]. vaux_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.AUX + ]. vmain_irule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.AUX - ]. vfin_irule := verb_irule & [ SYNSEM.LOCAL.CAT.HEAD [ PRD non-prd, VFORM fin, VOICE active ] ]. ind-vfin_irule := vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD ind ] ]. pres-ind_irule := ind-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE pres ]. ppast-ind_irule := ind-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ppast ]. ipast-ind_irule := ind-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ipast ]. fut-ind_irule := ind-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE fut ]. cond-ind_irule := ind-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE cond ]. sub-vfin_irule := vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD sub ] ]. pres-sub_irule := sub-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE pres ]. ipast-sub_irule := sub-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE ipast ]. fut-sub_irule := sub-vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE fut ]. imperative_irule := vfin_irule & [ SYNSEM.LOCAL.CAT.HEAD [ TAM [ MOOD imp, TENSE pres ] ] ]. ;vinf_irule := infl-ltow-rule & vinf_irule := verb_irule & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM inf, VOICE active, TAM [ TENSE nontense, ASPECT no-aspect ], KEYS.ALT2KEY prop ] ]. ;vger_irule := infl-ltow-rule & vger_irule := verb_irule & [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM ger, VOICE active, PRD prd & [ COPV estar ] ], VAL.SUBJ < unexpressed & [ OPT - ] > ] ]. ;vpart_irule := infl-ltow-rule & vpart_irule := verb_irule & [ SYNSEM.LOCAL.CAT.HEAD [ TAM.MOOD ind_or_sub_mood, VFORM part, VOICE active, PRD non-prd ] ]. vppart_irule := 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) basic_encltc_irule := lex-rule & [ NEEDS-AFFIX +, INFLECTED +, ALTS #alts, KEY-ARG #keyarg, SYNSEM [ MODIFIED #modified, LOCAL [ AGR #agr, CAT [ 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 #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 [ 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 < synsem . #clts > ] ], CONT #cont, CTXT #ctxt ], NON-LOCAL #nonloc, LKEYS #lkey ], ARG-ST #argst ], C-CONT.RELS ]. enclt_irule := basic_encltc_irule & [ SYNSEM.LOCAL.CAT.HEAD.CLIT #case, DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < affix-synsem & [ LOCAL.CAT.HEAD.CASE #case ],... > ]. acc_enclt_irule := enclt_irule & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE acc ],... > ]. dat_enclt_irule := enclt_irule & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE dat ],... > ]. acc_or_dat_or_rflx_enclt_irule := enclt_irule & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE acc_or_rflx_or_dat ],... > ]. se_enclt_irule := enclt_irule & [ DTR.SYNSEM.LOCAL.CAT.VAL.CLTS < [ LOCAL.CAT.HEAD.CASE rflx_or_dat ],... > ].