;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; HAG (Hausa Grammar) ;;; Author: Berthold Crysmann ;;; 2009 ;;; Lexical types lex-item :+ [SUPRA [LEN #len & [LIST #_len], TONE.LIST #tone, TONES , LENGTHS ], SYNSEM.LKEYS [SYLS [LEN #len]]]. agr-lex := lex-item & [SYNSEM.LOCAL [AGR #agr, CONT.HOOK.INDEX #agr]]. ;;; Types for TAM auxiliaries and pronouns 1-lex := lex-item & [SYNSEM.LOCAL.AGR [PNG.PN 1]]. 2-lex := lex-item & [SYNSEM.LOCAL.AGR [PNG.PN 2]]. 3-lex := lex-item & [SYNSEM.LOCAL.AGR [PNG.PN 3]]. sg-lex := lex-item & [SYNSEM.LOCAL.AGR [PNG.PN sg]]. pl-lex := lex-item & [SYNSEM.LOCAL.AGR [PNG.PN pl]]. 1-sg-lex := 1-lex & sg-lex. 2-sg-lex := 2-lex & sg-lex. 3-sg-lex := 3-lex & sg-lex. 1-pl-lex := 1-lex & pl-lex. 2-pl-lex := 2-lex & pl-lex. 3-pl-lex := 3-lex & pl-lex. 2-sg-m-lex := 2-sg-lex & [SYNSEM.LOCAL.AGR.PNG.GEND m]. 2-sg-f-lex := 2-sg-lex & [SYNSEM.LOCAL.AGR.PNG.GEND f]. 3-sg-m-lex := 3-sg-lex & [SYNSEM.LOCAL.AGR.PNG.GEND m]. 3-sg-f-lex := 3-sg-lex & [SYNSEM.LOCAL.AGR.PNG.GEND f]. 4-lex := 3-sg-lex & [SYNSEM.LOCAL.AGR.PNG.GEND anon]. ;;; The TAM auxiliaries wsp-lex := trans-first-arg-raising-lex-item & [ SYNSEM [LOCAL [ CAT [HEAD verb & [MOD <>, VFORM fin], VAL [ SPR < >, SPEC < >, SUBJ < #subj & [ LOCAL [ AGR #agr, CAT.VAL [ SPR < >, COMPS < > ], CONT.HOOK.INDEX #agr ] ]>, COMPS < #vp & [OPT -, LOCAL.CAT [VAL.SUBJ <#subj >, HEAD +nv]], ...>]], AGR #agr, CONT.HOOK.XARG #agr ]], ARG-ST <#subj, #vp >]. subj-aux-lex := trans-first-arg-raising-lex-item & [ SYNSEM.LOCAL [ CAT [HEAD verb & [MOD <>, VFORM fin], VAL [ SPR < >, SPEC < >, SUBJ < #subj & [ LOCAL [ AGR #agr, CAT.VAL [ SPR < >, COMPS < > ], CONT.HOOK.INDEX #agr ] ]>, COMPS < #vp & [LOCAL.CAT [VAL.SUBJ < #subj >, HEAD +nv]], ...>]], AGR #agr, CONT.HOOK.XARG #agr ], ARG-ST < #subj, #vp & [OPT -]>]. bare-aux-lex := basic-one-arg & [ SYNSEM.LOCAL [ CAT [HEAD verb & [MOD <>, VFORM fin], VAL [ SPR < >, SPEC < >, SUBJ < #subj & [ LOCAL [ AGR #agr, CAT.VAL [ SPR < >, COMPS < > ], CONT.HOOK.INDEX #agr ] ]>, COMPS < #vp & [LOCAL.CAT [VAL.SUBJ < #subj >, HEAD +nv]], ...>]], AGR #agr, CONT.HOOK.XARG #agr ], ARG-ST < #vp & [OPT -]>]. particle-head := head & [MOD <>]. neg-particle-head := particle-head. neg-particle-lex := norm-zero-arg & no-hcons-lex-item & [SYNSEM.LOCAL [CAT [HEAD neg-particle-head , VAL [SUBJ <>, COMPS <>, SPR <>, SPEC <>]], CONT [RELS ]]]. cont-neg-aux-lex := norm-ltop-lex-item & single-rel-lex-item & basic-one-arg & [ SYNSEM [LOCAL [ CONT [HOOK.INDEX #e & [E continuative], RELS , HCONS ], CAT [HEAD verb & [MOD <>, VFORM indep], VAL [SUBJ <#subj>, COMPS <#vp & [OPT -, LOCAL [CAT [HEAD verb, VAL.COMPS <#c & [LOCAL [CAT [HEAD nominal, VAL [SUBJ <#subj>, COMPS <>]], CONT.HOOK [INDEX #e, LTOP #larg]]]>] ]], #c >] ] ]], ARG-ST <#vp>]. neg-aux-lex := norm-ltop-lex-item & single-rel-lex-item & basic-one-arg & [ SYNSEM [LOCAL [ CONT [HOOK.INDEX #e & [E non-cont-tam], RELS , HCONS ], CAT [HEAD verb & [MOD <>, VFORM indep], VAL [SUBJ <#subj>, COMPS <#vp & [OPT -, LOCAL [CAT [HEAD verb, VAL.COMPS <#c & [LOCAL [CAT [HEAD.VFORM non-fin, VAL [SUBJ <#subj>, COMPS <>]], CONT.HOOK [INDEX #e, LTOP #larg]]]>], CONT.HOOK.INDEX #e ]], #c, [OPT -, LOCAL.CAT.HEAD neg-particle-head, NON-LOCAL.SLASH ] >] ] ]], ARG-ST <#vp>]. fused-neg-aux-lex := norm-ltop-lex-item & single-rel-lex-item & trans-first-arg-raising-lex-item & [ SYNSEM [LOCAL [ AGR #agr, CONT [HOOK [INDEX #e & [e perfective], XARG #agr], RELS , HCONS ], CAT [HEAD verb & [MOD <>, VFORM indep], VAL [SUBJ <#subj & [LOCAL #loc & [AGR #agr, CONT.HOOK.INDEX #agr]]>, COMPS <#vp & [OPT -, LOCAL [CAT [HEAD verb & [VFORM non-fin], VAL [SUBJ <[LOCAL #loc]>, COMPS <>]], CONT.HOOK [XARG #agr, INDEX #e, LTOP #larg]]], [OPT -, LOCAL.CAT.HEAD neg-particle-head, NON-LOCAL.SLASH ]>] ]]], ARG-ST <#subj, #vp>]. neg-sbj-aux-lex := norm-ltop-lex-item & single-rel-lex-item & basic-one-arg & [ SYNSEM [LOCAL [ CONT [HOOK.INDEX #e & [E sbj], RELS , HCONS ], CAT [HEAD verb & [MOD <>, VFORM indep], VAL [SUBJ <#subj>, COMPS < #vp & [OPT -, LOCAL [CAT [HEAD verb & [VFORM indep], VAL.COMPS <#c & [LOCAL [CAT [HEAD.VFORM non-fin, VAL [SUBJ <#subj>, COMPS <>]], CONT.HOOK [INDEX #e, LTOP #larg]]]>] ]], #c >] ]]], ARG-ST <#vp>]. fut-aux-lex := raise-sem-lex-item & [SYNSEM.LOCAL [CAT.HEAD.VFORM indep, CONT.HOOK.INDEX [E fut] ]]. fused-fut-aux-lex := simple-aux-lex & non-cont-aux-lex & fut-aux-lex & [SYNSEM.LOCAL.CAT.VAL.COMPS <[]>]. reg-fut-aux-lex := bare-aux-lex & fut-aux-lex & [ SYNSEM [LOCAL [CAT [HEAD verb & [MOD <>, VFORM fin], VAL [SUBJ <#subj>, COMPS <[LOCAL [CAT [HEAD verb & [VFORM dep], VAL.COMPS <#c & [LOCAL [CAT [HEAD.VFORM non-fin, VAL [SUBJ <#subj>, COMPS <>]]]]>] ]], #c >]]]]]. simple-aux-lex := raise-sem-lex-item & subj-aux-lex & [SYNSEM.LOCAL.CAT.VAL.COMPS <[LOCAL.CAT [VAL.COMPS <>]]>]. simple-wsp-lex := raise-sem-lex-item & wsp-lex & [SYNSEM.LOCAL.CAT.VAL.COMPS <[LOCAL.CAT [VAL.COMPS <>]]>]. cont-aux-lex := lex-item & [SYNSEM.LOCAL.CAT.VAL.COMPS <[LOCAL.CAT.HEAD nominal]>]. non-cont-aux-lex := lex-item & [SYNSEM.LOCAL.CAT.VAL.COMPS <[LOCAL.CAT.HEAD verb & [VFORM non-fin]]>]. abs-cont-aux-lex := simple-aux-lex & cont-aux-lex & [SYNSEM.LOCAL [CAT [HEAD.VFORM indep], CONT.HOOK.INDEX [E continuative, _REL -]]]. rel-cont-aux-lex := simple-aux-lex & cont-aux-lex & [SYNSEM [LOCAL [CAT [HEAD.VFORM indep], CONT.HOOK.INDEX [E continuative, _REL +] ], NON-LOCAL.SLASH 1-dlist]]. abs-cmpl-aux-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM.LOCAL [CAT.HEAD.VFORM indep, CONT.HOOK.INDEX [E completive, _REL -]]]. rel-cmpl-aux-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM.LOCAL [CAT [HEAD.VFORM indep], CONT.HOOK.INDEX [E perfective, _REL bool] ]]. abs-pot-aux-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM [LOCAL [CAT.HEAD.VFORM fin, CONT.HOOK.INDEX [E pot, _REL -]]]]. hab-aux-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM [LOCAL [CAT.HEAD.VFORM fin, CONT.HOOK.INDEX [E hab, _REL -]]]]. rel-pot-aux-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM [LOCAL [CAT [HEAD.VFORM indep], CONT.HOOK.INDEX [E pot, _REL +] ], NON-LOCAL.SLASH ]]. neg-cont-aux-lex := cont-neg-aux-lex & [SYNSEM.LOCAL [CAT.VAL.COMPS <[LOCAL.CAT.HEAD.VFORM dep],...>, CONT [HOOK.INDEX [E continuative]]]]. neg-cmpl-aux-lex := neg-aux-lex & [SYNSEM.LOCAL [CAT.VAL.COMPS <[LOCAL.CAT.HEAD.VFORM dep],...>, CONT [HOOK.INDEX [E perfective]]]]. neg-reg-aux-lex := neg-aux-lex & [SYNSEM.LOCAL [CAT.VAL.COMPS <[LOCAL.CAT.HEAD.VFORM indep],...>, CONT [HOOK.INDEX [E non-cont-tam & non-compl-tam & non-sbj-tam]]]]. sbj-lex := simple-aux-lex & non-cont-aux-lex & [SYNSEM.LOCAL [CAT.HEAD.VFORM indep, CONT.HOOK.INDEX [E sbj]]]. cont-wsp-lex := simple-wsp-lex & cont-aux-lex & [SYNSEM.LOCAL [CAT.HEAD.VFORM dep, CONT.HOOK.INDEX.E continuative ]]. non-cont-wsp-lex := simple-wsp-lex & non-cont-aux-lex & [SYNSEM.LOCAL [CAT.HEAD.VFORM dep, CONT.HOOK.INDEX.E non-cont-tam ]]. 1-sg-wsp-lex := 1-sg-lex & non-cont-wsp-lex. 2-sg-m-wsp-lex := 2-sg-m-lex & non-cont-wsp-lex. 2-sg-f-wsp-lex := 2-sg-f-lex & non-cont-wsp-lex. 3-sg-m-wsp-lex := 3-sg-m-lex & non-cont-wsp-lex. 3-sg-f-wsp-lex := 3-sg-f-lex & non-cont-wsp-lex. 4-wsp-lex := 4-lex & non-cont-wsp-lex. 1-pl-wsp-lex := 1-pl-lex & non-cont-wsp-lex. 2-pl-wsp-lex := 2-pl-lex & non-cont-wsp-lex. 3-pl-wsp-lex := 3-pl-lex & non-cont-wsp-lex. 1-sg-cont-wsp-lex := 1-sg-lex & cont-wsp-lex. 2-sg-m-cont-wsp-lex := 2-sg-m-lex & cont-wsp-lex. 2-sg-f-cont-wsp-lex := 2-sg-f-lex & cont-wsp-lex. 3-sg-m-cont-wsp-lex := 3-sg-m-lex & cont-wsp-lex. 3-sg-f-cont-wsp-lex := 3-sg-f-lex & cont-wsp-lex. 4-cont-wsp-lex := 4-lex & cont-wsp-lex. 1-pl-cont-wsp-lex := 1-pl-lex & cont-wsp-lex. 2-pl-cont-wsp-lex := 2-pl-lex & cont-wsp-lex. 3-pl-cont-wsp-lex := 3-pl-lex & cont-wsp-lex. ;;; Subjunctive 1-sg-sbj-lex := 1-sg-lex & sbj-lex. 2-sg-m-sbj-lex := 2-sg-m-lex & sbj-lex. 2-sg-f-sbj-lex := 2-sg-f-lex & sbj-lex. 3-sg-m-sbj-lex := 3-sg-m-lex & sbj-lex. 3-sg-f-sbj-lex := 3-sg-f-lex & sbj-lex. 4-sbj-lex := 4-lex & sbj-lex. 1-pl-sbj-lex := 1-pl-lex & sbj-lex. 2-pl-sbj-lex := 2-pl-lex & sbj-lex. 3-pl-sbj-lex := 3-pl-lex & sbj-lex. ;;; Completive 1-sg-abs-cmpl-aux-lex := 1-sg-lex & abs-cmpl-aux-lex. 2-sg-m-abs-cmpl-aux-lex := 2-sg-m-lex & abs-cmpl-aux-lex. 2-sg-f-abs-cmpl-aux-lex := 2-sg-f-lex & abs-cmpl-aux-lex. 3-sg-m-abs-cmpl-aux-lex := 3-sg-m-lex & abs-cmpl-aux-lex. 3-sg-f-abs-cmpl-aux-lex := 3-sg-f-lex & abs-cmpl-aux-lex. 4-abs-cmpl-aux-lex := 4-lex & abs-cmpl-aux-lex. 1-pl-abs-cmpl-aux-lex := 1-pl-lex & abs-cmpl-aux-lex. 2-pl-abs-cmpl-aux-lex := 2-pl-lex & abs-cmpl-aux-lex. 3-pl-abs-cmpl-aux-lex := 3-pl-lex & abs-cmpl-aux-lex. 1-sg-rel-cmpl-aux-lex := 1-sg-lex & rel-cmpl-aux-lex. 2-sg-m-rel-cmpl-aux-lex := 2-sg-m-lex & rel-cmpl-aux-lex. 2-sg-f-rel-cmpl-aux-lex := 2-sg-f-lex & rel-cmpl-aux-lex. 3-sg-m-rel-cmpl-aux-lex := 3-sg-m-lex & rel-cmpl-aux-lex. 3-sg-f-rel-cmpl-aux-lex := 3-sg-f-lex & rel-cmpl-aux-lex. 4-rel-cmpl-aux-lex := 4-lex & rel-cmpl-aux-lex. 1-pl-rel-cmpl-aux-lex := 1-pl-lex & rel-cmpl-aux-lex. 2-pl-rel-cmpl-aux-lex := 2-pl-lex & rel-cmpl-aux-lex. 3-pl-rel-cmpl-aux-lex := 3-pl-lex & rel-cmpl-aux-lex. 1-sg-neg-cmpl-aux-lex := 1-sg-lex & fused-neg-aux-lex. 3-sg-m-neg-cmpl-aux-lex := 3-sg-m-lex & fused-neg-aux-lex. 1-sg-fut-aux-lex := 1-sg-lex & fused-fut-aux-lex. 3-sg-m-fut-aux-lex := 3-sg-m-lex & fused-fut-aux-lex. ;;; Potential/Rhetorical ;;; Completive 1-sg-abs-pot-aux-lex := 1-sg-lex & abs-pot-aux-lex. 2-sg-m-abs-pot-aux-lex := 2-sg-m-lex & abs-pot-aux-lex. 2-sg-f-abs-pot-aux-lex := 2-sg-f-lex & abs-pot-aux-lex. 3-sg-m-abs-pot-aux-lex := 3-sg-m-lex & abs-pot-aux-lex. 3-sg-f-abs-pot-aux-lex := 3-sg-f-lex & abs-pot-aux-lex. 4-abs-pot-aux-lex := 4-lex & abs-pot-aux-lex. 1-pl-abs-pot-aux-lex := 1-pl-lex & abs-pot-aux-lex. 2-pl-abs-pot-aux-lex := 2-pl-lex & abs-pot-aux-lex. 3-pl-abs-pot-aux-lex := 3-pl-lex & abs-pot-aux-lex. 1-sg-rel-pot-aux-lex := 1-sg-lex & rel-pot-aux-lex. 2-sg-m-rel-pot-aux-lex := 2-sg-m-lex & rel-pot-aux-lex. 2-sg-f-rel-pot-aux-lex := 2-sg-f-lex & rel-pot-aux-lex. 3-sg-m-rel-pot-aux-lex := 3-sg-m-lex & rel-pot-aux-lex. 3-sg-f-rel-pot-aux-lex := 3-sg-f-lex & rel-pot-aux-lex. 4-rel-pot-aux-lex := 4-lex & rel-pot-aux-lex. 1-pl-rel-pot-aux-lex := 1-pl-lex & rel-pot-aux-lex. 2-pl-rel-pot-aux-lex := 2-pl-lex & rel-pot-aux-lex. 3-pl-rel-pot-aux-lex := 3-pl-lex & rel-pot-aux-lex. short-rel-pot-aux-lex := rel-pot-aux-lex & [SYNSEM.LOCAL.CAT.VAL.SUBJ <[OPT -]>]. ;;; Habitual 1-sg-hab-aux-lex := 1-sg-lex & hab-aux-lex. 2-sg-m-hab-aux-lex := 2-sg-m-lex & hab-aux-lex. 2-sg-f-hab-aux-lex := 2-sg-f-lex & hab-aux-lex. 3-sg-m-hab-aux-lex := 3-sg-m-lex & hab-aux-lex. 3-sg-f-hab-aux-lex := 3-sg-f-lex & hab-aux-lex. 4-hab-aux-lex := 4-lex & hab-aux-lex. 1-pl-hab-aux-lex := 1-pl-lex & hab-aux-lex. 2-pl-hab-aux-lex := 2-pl-lex & hab-aux-lex. 3-pl-hab-aux-lex := 3-pl-lex & hab-aux-lex. short-hab-aux-lex := hab-aux-lex & [SYNSEM.LOCAL.CAT.VAL.SUBJ <[OPT -]>]. ;;; Continuative short-abs-cont-aux-lex := abs-cont-aux-lex & [SYNSEM.LOCAL.CAT.VAL.SUBJ <[OPT -, LOCAL.CONT.HOOK.INDEX.PNG.PN 3]>]. short-rel-cont-aux-lex := rel-cont-aux-lex & [SYNSEM.LOCAL.CAT.VAL.SUBJ <[OPT -, LOCAL.CONT.HOOK.INDEX.PNG.PN 3]>]. 1-sg-abs-cont-aux-lex := 1-sg-lex & abs-cont-aux-lex. 2-sg-m-abs-cont-aux-lex := 2-sg-m-lex & abs-cont-aux-lex. 2-sg-f-abs-cont-aux-lex := 2-sg-f-lex & abs-cont-aux-lex. 3-sg-m-abs-cont-aux-lex := 3-sg-m-lex & abs-cont-aux-lex. 3-sg-f-abs-cont-aux-lex := 3-sg-f-lex & abs-cont-aux-lex. 4-abs-cont-aux-lex := 4-lex & abs-cont-aux-lex. 1-pl-abs-cont-aux-lex := 1-pl-lex & abs-cont-aux-lex. 2-pl-abs-cont-aux-lex := 2-pl-lex & abs-cont-aux-lex. 3-pl-abs-cont-aux-lex := 3-pl-lex & abs-cont-aux-lex. 1-sg-rel-cont-aux-lex := 1-sg-lex & rel-cont-aux-lex. 2-sg-m-rel-cont-aux-lex := 2-sg-m-lex & rel-cont-aux-lex. 2-sg-f-rel-cont-aux-lex := 2-sg-f-lex & rel-cont-aux-lex. 3-sg-m-rel-cont-aux-lex := 3-sg-m-lex & rel-cont-aux-lex. 3-sg-f-rel-cont-aux-lex := 3-sg-f-lex & rel-cont-aux-lex. 4-rel-cont-aux-lex := 4-lex & rel-cont-aux-lex. 1-pl-rel-cont-aux-lex := 1-pl-lex & rel-cont-aux-lex. 2-pl-rel-cont-aux-lex := 2-pl-lex & rel-cont-aux-lex. 3-pl-rel-cont-aux-lex := 3-pl-lex & rel-cont-aux-lex. ;;;;;;;;;;;;; ;;; Nouns ;;; ;;;;;;;;;;;;; basic-noun-lex :+ [SYNSEM.LOCAL.CAT.HEAD.CASE bare]. noun-lex := basic-noun-lex & basic-one-arg & no-hcons-lex-item & agr-lex & [ ARG-ST < #spr >, INFLECTED -, SYNSEM.LOCAL [AGR [COG-ST activ-or-less, PNG [PN 3, GEND non-anon] ], CAT [HEAD [CASE npro-case, MOD <>], VAL [ COMPS < >, SUBJ < >, SPEC < >, SPR < #spr & [ LOCAL.CAT.HEAD det] > ] ]]]. m-noun-lex := noun-lex & [SYNSEM [LKEYS.--MCLASS.INH-GEND +, LOCAL.AGR.PNG p-n-m ]]. f-noun-lex := noun-lex & [SYNSEM [LKEYS.--MCLASS.INH-GEND +, LOCAL.AGR.PNG p-n-f ]]. ;;;;;;;;;;;;;;;;;; ;;; Adjectives ;;; ;;;;;;;;;;;;;;;;;; raise-index-mod-lex-item := norm-ltop-lex-item & [ SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX #index ] >, CONT.HOOK.XARG #index ] ]. basic-adjective-lex := single-rel-lex-item & [ SYNSEM [ LOCAL.CAT.HEAD noun, LKEYS [--MCLASS.INH-GEND -, KEYREL event-relation ]]]. basic-int-mod-adj-lex :+ [SYNSEM [LKEYS [KEYREL [ARG0 #0 & event & [e no_tam], ARG1 #1]], LOCAL [AGR #1, CONT.HOOK [INDEX #0, XARG #1]]]]. adj-lex := basic-int-mod-adj-lex & [INFLECTED -, SYNSEM [LOCAL [AGR #agr, CAT [VAL.SPR <>, HEAD.MOD <[MODIFIABLE +, LOCAL [CAT [HEAD noun, VAL [COMPS <>] ], AGR #agr]] > ]]]]. adj-intr-lex := adj-lex & basic-zero-arg & [SYNSEM [LOCAL.CAT.VAL.COMPS <>, NON-LOCAL.SLASH ]]. ;;;;;;;;;;;;; ;;; Verbs ;;; ;;;;;;;;;;;;; basic-verb-lex := norm-sem-lex-item & [ SYNSEM [ LOCAL.CAT.HEAD #hd & verbal, LKEYS [KEYREL event-relation, --MCLASS._HEAD #hd]]]. ;;; Verbs do not amalgamate their SUBJ's SLASH verb-lex := basic-verb-lex & [ INFLECTED -, SYNSEM [LKEYS.KEYREL.ARG0 #ev, LOCAL [ CAT [HEAD [MOD <>, VFORM non-fin], VAL [ SPR < >, SPEC < >, SUBJ < [LOCAL #loc] > ]], CONT [HOOK [INDEX #ev, XARG #xarg]]], NON-LOCAL.REL 0-dlist & [LIST null] ], ARG-ST.FIRST [ LOCAL #loc & [ CAT.VAL [ SPR < >, COMPS < > ], CONT.HOOK.INDEX #xarg], NON-LOCAL.SLASH 0-dlist ] ]. intr-verb-lex := verb-lex & intransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, ARG-ST.FIRST.LOCAL.CAT.HEAD noun & [MOD <>]]. tr-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [MOD <>]], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [MOD <>, CASE str]] ] > ]. ditr-verb-lex := verb-lex & ditransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #ocomps, #comps >, ARG-ST < [ LOCAL.CAT.HEAD noun & [MOD <>]], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [MOD <>, CASE str]] ], #ocomps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD +np & [MOD <>, CASE io]] ]> ]. ;;; Determiner vacuous-determiner-lex := no-hcons-lex-item & norm-zero-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD det & [MOD <>, KEYS.KEY #pred], VAL [SPR <>, COMPS <>, SUBJ <>]], CONT [ RELS ] ], NON-LOCAL.QUE , LKEYS.KEYREL quant-relation & [ PRED #pred ] ], ARG-ST <>]. determiner-lex := basic-determiner-lex & fully-inflected-lexeme & [SYNSEM.LOCAL.CAT [HEAD [MOD <>], VAL [COMPS <>, SUBJ <>, SPR <>]]]. sg-determiner-lex := determiner-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX [PNG [PN sg]]]. pl-determiner-lex := determiner-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX [PNG [PN pl]]]. m-sg-determiner-lex := sg-determiner-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX [PNG [GEND m]]]. f-sg-determiner-lex := sg-determiner-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX [PNG [GEND f]]]. std-det-lex := determiner-lex & norm-zero-arg & [ARG-ST <>, SYNSEM.NON-LOCAL.QUE ]. bound-det-lex := determiner-lex & [SYNSEM.LOCAL [CONT.HOOK.INDEX [COG-ST activ+fam, SPECI +], CAT.HEAD bound-det & [CASE npro-do ]]]. free-det-lex := determiner-lex & [SYNSEM.LOCAL [CONT.HOOK.INDEX.SPECI -, CAT.HEAD free-det]]. wh-det-lex := zero-arg-que & free-det-lex & [ARG-ST <>, SYNSEM [LOCAL.CONT.HOOK.INDEX.SPECI -, NON-LOCAL.QUE ]]. sg-det-lex := std-det-lex & sg-determiner-lex & free-det-lex. m-sg-det-lex := m-sg-determiner-lex & sg-det-lex. f-sg-det-lex := f-sg-determiner-lex & sg-det-lex. pl-det-lex := std-det-lex & pl-determiner-lex & free-det-lex. wh-m-sg-det-lex := wh-det-lex & m-sg-determiner-lex. wh-f-sg-det-lex := wh-det-lex & f-sg-determiner-lex. wh-pl-det-lex := wh-det-lex & pl-determiner-lex. ;;; Selected prepositions wa-sel-lex := prep-sel-lex & [SYNSEM.LOCAL.CAT [HEAD.CASE npro-io, VAL.COMPS <[LOCAL.CAT.HEAD.CASE npro-do]>]]. ;;; Modifier prep-lex := basic-int-mod-adposition-lex & uninflected-lexeme & basic-one-arg & [ARG-ST <#c>, SYNSEM [LKEYS.KEYREL [ARG1 #1, ARG2 #2], LOCAL [CONT.HOOK.XARG #1, CAT [HEAD.MOD <[LOCAL.CAT.HEAD +nv]>, VAL.COMPS <#c & [OPT -, LOCAL [CAT.VAL [COMPS <>, SPR <>, SUBJ <>, SPEC <>], CONT.HOOK.INDEX #2]]>]]]]. garee-prep-lex := prep-lex & [SYNSEM.LOCAL.CAT [VAL.COMPS <[LOCAL.CAT.HEAD.CASE pro-do ]>], SUPRA.TONES.LAST ]. ga-prep-lex := prep-lex & [SYNSEM.LOCAL.CAT [VAL.COMPS <[LOCAL.CAT.HEAD.CASE npro-do]>]]. reg-prep-lex := prep-lex & [SYNSEM.LOCAL.CAT [VAL.COMPS <[LOCAL.CAT.HEAD noun & [CASE npro-case]]>]]. nmod-prep-lex := prep-lex & [SYNSEM.LOCAL [CAT [VAL.COMPS <[OPT -]>, HEAD.MOD <[LOCAL [CAT.HEAD noun, CONT.HOOK.INDEX ref-ind]]>]]]. nmod-prep-pro-lex := nmod-prep-lex & [INFLECTED -, SYNSEM.LOCAL [CAT [VAL.COMPS <[LOCAL.CAT.HEAD.CASE pro-gen]>]]]. nmod-prep-npro-lex := nmod-prep-lex & [SYNSEM.LOCAL [CAT [VAL.COMPS <[LOCAL.CAT.HEAD.CASE npro-str]>]]]. f-sg-agr-nmod-prep-lex := nmod-prep-lex & [SYNSEM.LOCAL.CONT.HOOK.XARG.PNG p-s-f]. pl-or-m-sg-agr-nmod-prep-lex := nmod-prep-lex & [SYNSEM.LOCAL [CONT.HOOK.XARG.PNG p-n-m+p-p-g]]. f-sg-agr-nmod-npro-prep-lex := f-sg-agr-nmod-prep-lex & nmod-prep-npro-lex. f-sg-agr-nmod-pro-prep-lex := f-sg-agr-nmod-prep-lex & nmod-prep-pro-lex. f-sg-agr-nmod-n1sg-prep-lex := f-sg-agr-nmod-pro-prep-lex & [SYNSEM.LKEYS.KEYREL.ARG2.PNG.PN -1s]. f-sg-agr-nmod-1sg-prep-lex := f-sg-agr-nmod-pro-prep-lex & [SYNSEM.LKEYS.KEYREL.ARG2.PNG.PN 1s]. pl-or-m-sg-agr-nmod-npro-prep-lex := pl-or-m-sg-agr-nmod-prep-lex & nmod-prep-npro-lex. pl-or-m-sg-agr-nmod-pro-prep-lex := pl-or-m-sg-agr-nmod-prep-lex & nmod-prep-pro-lex. pl-or-m-sg-agr-nmod-1sg-prep-lex := pl-or-m-sg-agr-nmod-pro-prep-lex & [SYNSEM.LKEYS.KEYREL.ARG2.PNG.PN 1s]. pl-or-m-sg-agr-nmod-n1sg-prep-lex := pl-or-m-sg-agr-nmod-pro-prep-lex & [SYNSEM.LKEYS.KEYREL.ARG2.PNG.PN -1s]. prep-sel-lex := raise-sem-lex-item & basic-one-arg & [ SYNSEM [ LOCAL.CAT [HEAD adp & [MOD <>], VAL [SUBJ <>, SPR <>, SPEC <>, COMPS <#c & [OPT -, LOCAL.CAT [HEAD noun & [CASE npro-str], VAL [SUBJ <>, SPR <>, COMPS <>, SPEC <>]]]>]]], ARG-ST <#c>]. ;;; Pronouns basic-pronoun-lex := fully-inflected-lexeme & [MORPH.COMPLETE +, SYNSEM [LOCAL [AGR index, CAT [HEAD noun & [MOD <>, CASE spro-or-pro-case], VAL [SUBJ <>, COMPS <>, SPR <>, SPEC <>]]]]]. rel-pron-lex := basic-pronoun-lex & zero-arg-nonslash & zero-arg-nonque & [SYNSEM [LOCAL.CONT [HOOK.INDEX #i, RELS , HCONS ], NON-LOCAL.REL ]]. m-sg-rel-pron-lex := rel-pron-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [PN sg, GEND m]]. f-sg-rel-pron-lex := rel-pron-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [PN sg, GEND f]]. pl-rel-pron-lex := rel-pron-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [PN pl]]. wh-pron-lex := norm-hook-lex-item & basic-pronoun-lex & zero-arg-nonslash & zero-arg-nonrel & [SYNSEM [LKEYS.KEYREL #key, LOCAL [AGR #0, CONT [HOOK [INDEX #0 & [PNG.PN 3]], RELS , HCONS ]], NON-LOCAL.QUE ]]. std-pronoun-lex := norm-hook-lex-item & norm-zero-arg & basic-pronoun-lex & [SYNSEM [LKEYS.KEYREL #key, LOCAL [AGR #0, CONT [HOOK [INDEX #0], RELS , HCONS ]]]]. weak-pronoun-lex := std-pronoun-lex & [SYNSEM.LOCAL.CONT.HOOK.INDEX.COG-ST in-foc]. io-pron-lex := weak-pronoun-lex & [SYNSEM.LOCAL.CAT.HEAD [MOD <>, CASE pro-io]]. do-pron-lex := weak-pronoun-lex & [SYNSEM.LOCAL.CAT.HEAD [MOD <>, CASE pro-do]]. strong-pron-lex := std-pronoun-lex & [SYNSEM.LOCAL [CAT.HEAD [MOD <>, CASE spro-str ], CONT.HOOK.INDEX.COG-ST activated]]. 1-s-io-pron-lex := io-pron-lex & 1-sg-lex. 2-s-m-io-pron-lex := io-pron-lex & 2-sg-m-lex. 2-s-f-io-pron-lex := io-pron-lex & 2-sg-f-lex. 3-s-m-io-pron-lex := io-pron-lex & 3-sg-m-lex. 3-s-f-io-pron-lex := io-pron-lex & 3-sg-f-lex. 1-p-io-pron-lex := io-pron-lex & 1-pl-lex. 2-p-io-pron-lex := io-pron-lex & 2-pl-lex. 3-p-io-pron-lex := io-pron-lex & 3-pl-lex. 1-s-do-pron-lex := do-pron-lex & 1-sg-lex. 2-s-m-do-pron-lex := do-pron-lex & 2-sg-m-lex. 2-s-f-do-pron-lex := do-pron-lex & 2-sg-f-lex. 3-s-m-do-pron-lex := do-pron-lex & 3-sg-m-lex. 3-s-f-do-pron-lex := do-pron-lex & 3-sg-f-lex. 1-p-do-pron-lex := do-pron-lex & 1-pl-lex. 2-p-do-pron-lex := do-pron-lex & 2-pl-lex. 3-p-do-pron-lex := do-pron-lex & 3-pl-lex. 1-s-strong-pron-lex := strong-pron-lex & 1-sg-lex. 2-s-m-strong-pron-lex := strong-pron-lex & 2-sg-m-lex. 2-s-f-strong-pron-lex := strong-pron-lex & 2-sg-f-lex. 3-s-m-strong-pron-lex := strong-pron-lex & 3-sg-m-lex. 3-s-f-strong-pron-lex := strong-pron-lex & 3-sg-f-lex. 1-p-strong-pron-lex := strong-pron-lex & 1-pl-lex. 2-p-strong-pron-lex := strong-pron-lex & 2-pl-lex. 3-p-strong-pron-lex := strong-pron-lex & 3-pl-lex. ;;;;;;;;;;;;;;;;;;;; ;;; Proper names ;;; ;;;;;;;;;;;;;;;;;;;; proper-noun-lex := noun-lex & [INFLECTED -, SYNSEM [LKEYS [KEYREL named-relation & [ARG0.COG-ST uniq-id] ]]].