;;; -*- Mode: TDL; Package: LKB -*- ; Version of my_language.tdl for Esperanto, by Jonathan Pool, May 2005. ; Contains language-specific types. ; Prepare for complementizer clauses. cat :+ [ QUESTION bool, SENTENCE bool, ROOTMOM bool ]. ; Prepare for imperative subject-drop and raising verbs. vform := *top*. imperative := vform. infinitive := vform. finite := vform. conditional := finite. indicative := finite. ; Prepare for verb coordination. vcform := *top*. vcimp := vcform. vcinf := vcform. vcfin := vcform. head-min :+ [ VFORM vform, VCFORM vcform ]. ; Prepare for inflection. sign :+ [ NEEDINF needinf ]. needinf := *top*. needcat := needinf. neednum := needinf. needcase := needinf. needtm := needinf. noneed := needinf. ; Prepare for sentence licensing. lex-item :+ [ SYNSEM.LOCAL.CAT.SENTENCE - ]. ; ERB 2007-05-21 NTYPE is for tracking common nouns ; to keep them out of the prop+prop-bare-np phrase. noun :+ [ NTYPE ntype ]. ntype := *top*. common := ntype. prop+pro := ntype. proper := prop+pro. pronoun := prop+pro. ; ERB 2007-05-21 Actual tense information: present := tense. past := tense. future := tense. ; ################################################### ; WORDS ; ################################################### ; Verbs. ; EB advises to amend this type to identify subject's INDEX with verb's ; own XARG, which should eliminate the need to identify the #sj values ; in raising-verb-lex. ; Verb supertype. verb-lex := basic-verb-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD null, VAL [ SUBJ.FIRST #sbj & [ LOCAL.CAT [ HEAD noun & [ CASE nom ], VAL.SPR null ] ], SPR null, SPEC null ] ], ARG-ST.FIRST #sbj, INFLECTED -, NEEDINF needtm ]. ; Intransitive verb. itr-verb-lex := verb-lex & intransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS null ]. ; Transitive verb. trans-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #obj & [ LOCAL.CAT [ HEAD noun & [ CASE acc ], VAL.SPR null ] ], REST null ], ARG-ST.REST.FIRST #obj ]. ; Transitive verb with mandatory direct object. comp-trans-verb-lex := trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.OPT - ]. ; Transitive verb with optional direct object and definite null instantiation. dni-trans-verb-lex := trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.OPT-CS activ-or-more ]. ; Transitive verb with optional direct object and indefinite null instantiation. ini-trans-verb-lex := trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.OPT-CS type-id ]. ; Transitive verb with mandatory complementizer-clausal complement. ; No optional-complement type exists, because it is assumed equivalent to ; dni-trans-verb-lex. cp-second-arg-trans-verb-lex := verb-lex & clausal-second-arg-trans-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #obj & [ LOCAL [ CAT [ HEAD comp, VAL.COMPS null ] ], OPT - ], REST null ], ARG-ST.REST.FIRST #obj ]. ; Transitive verb with mandatory non-interrogative complementizer-clausal complement. non-interrogative-second-arg-trans-verb-lex := cp-second-arg-trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL.CAT [ SENTENCE -, QUESTION - ] ]. ; Transitive verb with mandatory imperative clausal complement. imperative-second-arg-trans-verb-lex := non-interrogative-second-arg-trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL [ CAT.HEAD [ VFORM imperative, VCFORM vcimp ], CONT.HOOK.INDEX.SF comm ] ]. ; Transitive verb with mandatory interrogative clausal complement. interrogative-second-arg-trans-verb-lex := cp-second-arg-trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL [ CAT [ SENTENCE +, QUESTION + ], CONT.HOOK.INDEX.SF ques ] ]. ; Ditransitive verb. ditrans-verb-lex := verb-lex & ditransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS [ FIRST #obj & [ LOCAL.CAT [ HEAD noun & [ CASE acc ], VAL.SPR null ], OPT - ], REST [ FIRST #pred & [ LOCAL.CAT [ HEAD noun & [ CASE nom ], VAL.SPR null ], OPT - ], REST null ] ], ARG-ST.REST [ FIRST #obj, REST [ FIRST #pred, REST null ] ] ]. ; Raising verb. raising-verb-lex := verb-lex & trans-first-arg-raising-lex-item-1 & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ.FIRST #sj, COMPS [ FIRST #comp & [ LOCAL.CAT [ HEAD verb & [ VFORM infinitive, VCFORM vcinf ], VAL [ SUBJ.FIRST #sj, COMPS null ] ] ], REST null ] ], ARG-ST.REST.FIRST #comp ]. ; Nouns. ; Noun supertype. noun-lex := basic-noun-lex & basic-one-arg & no-hcons-lex-item & [ SYNSEM.LOCAL.CAT [ HEAD.MOD null, VAL [ SUBJ null, SPR [ FIRST #dt & [ LOCAL.CAT.HEAD det ], REST null ], COMPS null, SPEC null, PREMODIFIABLE - ] ], INFLECTED -, ARG-ST.FIRST #dt ]. ; Common noun. common-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT [ HEAD.NTYPE common ], CONT.HOOK.INDEX.PNG.PER third ], NEEDINF needcat ]. ; Pronoun. pronoun-lex := noun-lex & [ SYNSEM [ LOCAL [ CAT [ HEAD.NTYPE pronoun, VAL.SPR < [ OPT + ] > ] , CONT.HOOK.INDEX.COG-ST in-foc ], LKEYS.KEYREL.PRED "_pronoun_n_rel" ], NEEDINF needcase ]. ; Third-person singular pronoun. 3sg-pronoun-lex := pronoun-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg ] ]. ; Determiners. ; Determiner supertype. det-lex := basic-determiner-lex & basic-zero-arg & [ SYNSEM.LOCAL.CAT [ HEAD.MOD null, VAL [ SUBJ null, SPR null, COMPS null, SPEC < [ LOCAL.CONT.HOOK.INDEX.COG-ST uniq+fam+act ] >, PREMODIFIABLE - ] ] ]. ; Uninflected determiner. bare-det-lex := det-lex & [ NEEDINF noneed ]. ; Inflected determiner. infl-det-lex := det-lex & [ INFLECTED -, NEEDINF neednum ]. ; Adjectives. all-adjective-lex := basic-int-mod-adj-lex & [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD < [ LOCAL [ CAT [ HEAD noun, VAL.SPR cons ], CONT.HOOK [ INDEX #ind, LTOP #ltop ] ] ] >, VAL [ SPR null, SUBJ null, COMPS null, SPEC null ] ], CONT [ HOOK.LTOP #ltop, HCONS ] ], LKEYS.KEYREL.ARG1 #ind ], INFLECTED - ]. adjective-lex := all-adjective-lex & [ NEEDINF needcat ]. bare-adjective-lex := all-adjective-lex & [ NEEDINF neednum ]. ; Adverbs. all-adverb-lex := basic-adverb-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD verb, VAL [ SUBJ < [ ] >, COMPS < >, SPR null ] ] ] >, VAL [ SPR null, SUBJ null, COMPS null, SPEC null ] ] ]. intersective-adverb-lex := all-adverb-lex & intersective-mod-lex & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.VAL.PREMODIFIABLE + ]. infl-is-adverb-lex := intersective-adverb-lex & [ NEEDINF needcat, INFLECTED - ]. bare-is-adverb-lex := intersective-adverb-lex & [ NEEDINF noneed ]. scopal-adverb-lex := all-adverb-lex & basic-scopal-adverb-lex & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.VAL.PREQUALIFIABLE + ]. infl-sc-adverb-lex := scopal-adverb-lex & [ NEEDINF needcat, INFLECTED -, ARG-ST < > ]. bare-sc-adverb-lex := scopal-adverb-lex & [ NEEDINF noneed, ARG-ST < > ]. ; Complementizers. ; Complementizer supertype. ; MSG is, contrary to recommendation of EB, not identified with complement's. ; Doing so seems to prevent correct parses of interrogative complementizer phrases. complementizer-lex-item := no-hcons-lex-item & basic-one-arg & [ SYNSEM.LOCAL [ CAT [ HEAD comp & [ MOD null ], VAL [ SPR null, SUBJ null, COMPS [ FIRST #clause & [ LOCAL [ CAT [ HEAD verb, VAL [ SPR null, SUBJ null, COMPS null, SPEC null ], SENTENCE +, ROOTMOM - ], CONT.HOOK #hook ] ], REST null ], SPEC null, PREMODIFIABLE - ], SENTENCE - ], CONT [ RELS , HOOK #hook ] ], ARG-ST.FIRST #clause ]. ; Declarative complementizer. declarative-complementizer-lex-item := complementizer-lex-item & [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vf & finite, VCFORM #vcf & vcfin ], VAL.COMPS.FIRST.LOCAL.CAT.HEAD [ VFORM #vf, VCFORM #vcf ], QUESTION - ], CONT.HOOK.INDEX.SF prop ] ]. ; Imperative complementizer. imperative-complementizer-lex-item := complementizer-lex-item & [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vf & imperative, VCFORM #vcf & vcimp ], VAL.COMPS.FIRST.LOCAL.CAT.HEAD [ VFORM #vf, VCFORM #vcf ], QUESTION - ], CONT.HOOK.INDEX.SF comm ] ]. ; Interrogative complementizer. interrogative-complementizer-lex-item := complementizer-lex-item & [ SYNSEM.LOCAL [ CAT.QUESTION +, CONT.HOOK.INDEX.SF ques ] ]. ; ################################################### ; PHRASES ; ################################################### ; Prepare for coordination coordl := *top*. coordb := coordl. coordm := coordl. coordt := coordl. coordn := coordl. local-min :+ [ COORDL coordl ]. headed-phrase :+ [ SYNSEM.LOCAL.COORDL coordn ]. nocoord :+ [ SYNSEM.LOCAL.COORDL coordn ]. ; Require inflectional saturation before phrasal combination. unary-phrase :+ [ ARGS.FIRST.NEEDINF noneed ]. binary-phrase :+ [ ARGS [ FIRST.NEEDINF noneed, REST.FIRST.NEEDINF noneed ] ]. ; Prepare for imperative sensitivity. headed-phrase :+ [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], QUESTION #qu ], HEAD-DTR.SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], QUESTION #qu ] ]. ; Prepare for complementizer complementation. head-nexus-phrase :+ [ SYNSEM.LOCAL.CAT.SENTENCE - ]. ; Prepare for sentence complementizability. basic-head-subj-phrase :+ [ SYNSEM.LOCAL.CAT.ROOTMOM - ]. basic-head-comp-phrase :+ [ SYNSEM.LOCAL.CAT.ROOTMOM - ]. adj-head-int-phrase :+ [ SYNSEM.LOCAL.CAT.ROOTMOM - ]. ; Head-specifier phrase. We also need a head-initial version unless all potentially ; postmodifying determiners are analyzed as adjectives. Even then, we aren't ; accounting for cases such as "sia lango la venena" ('its tongue the poisonous'; ; PAG, p. 239). head-spec-phrase := basic-head-spec-phrase & head-final & [ SYNSEM.LOCAL.CAT.VAL.PREMODIFIABLE - ]. ; No-spec noun-phrase supertype nsnp-phrase := basic-bare-np-phrase & [ SYNSEM.LOCAL.CAT.VAL.PREMODIFIABLE -, C-CONT.RELS.LIST.FIRST.PRED "exist_q_rel" ]. ; Head-covert-specifier phrase. head-nospec-phrase := nsnp-phrase & [ HEAD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.COG-ST type-id ]. pronoun-nsnp-phrase := nsnp-phrase & [ HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD.NTYPE pronoun ]. head-opt-comp-phrase := basic-head-opt-comp-phrase & [ HEAD-DTR.SYNSEM [ LOCAL.CAT.VAL.SUBJ cons, MODIFIED notmod ] ]. head-adj-int-phrase :+ [ HEAD-DTR.SYNSEM.LOCAL.CAT.SENTENCE - ]. bare-imperative-phrase := basic-head-opt-subj-phrase & head-compositional & [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf & imperative, VCFORM #vcf & vcimp ], ROOTMOM + ], C-CONT [ HCONS , RELS ], HEAD-DTR.SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], VAL.SUBJ.FIRST.LOCAL.CONT.HOOK.INDEX.PNG.PER second ] ]. sentence := basic-non-rel-clause & [ SYNSEM.LOCAL.CAT [ VAL #vals & [ SPR null, SUBJ null, COMPS null, SPEC null ], SENTENCE +, ROOTMOM #rm ], NEEDINF noneed, HEAD-DTR.SYNSEM.LOCAL.CAT [ VAL #vals, SENTENCE -, ROOTMOM #rm ] ]. noncoord-sentence := sentence & [ SYNSEM.LOCAL.COORD - ]. embeddable-sentence := sentence & [ SYNSEM.LOCAL.CAT.ROOTMOM - ]. bare-embeddable-sentence := embeddable-sentence & [ SYNSEM.LOCAL.CAT.HEAD verb ]. declarative-sentence := declarative-clause & bare-embeddable-sentence & head-only & [ SYNSEM.LOCAL.CAT.HEAD.VFORM finite ]. imperative-sentence := imperative-clause & bare-embeddable-sentence & head-only & [ SYNSEM.LOCAL.CAT.HEAD.VFORM imperative ]. command-sentence := imperative-clause & sentence & head-only & [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ VFORM imperative ], ROOTMOM + ]]]. interrogative-sentence := interrogative-clause & embeddable-sentence & head-only & [ SYNSEM.LOCAL.CAT.HEAD comp ]. root-declarative-sentence := declarative-sentence & noncoord-sentence. root-imperative-sentence := imperative-sentence & noncoord-sentence. root-command-sentence := command-sentence & noncoord-sentence. root-interrogative-sentence := interrogative-sentence & noncoord-sentence. ; ################################################### ; CONSTITUENT-ORDER-SPECIFIC (partly from free-order.tdl) ; ################################################### ; This modification is intended to prevent redundant parses arising from semantically ; vacuous differences in adverbial attachment. PREMODIFIABLE applies only to ; intersective adverbs. It is invoked so that an intersective adverb can modify only ; a verb, adjective, or adverb, and when modifying a verb phrase with a post-verbal ; subject it is attachable only to the verb below the subject's attachment. ; PREQUALIFIABLE applies only to scopal adverbs. It is invoked so that a scopal ; adverb, though able to modify any kind of constituent, must, if it precedes a ; a preverbal argument, be attached only to the argument, not to the constituent ; to which the argument is attached. valence :+ [ PREMODIFIABLE bool, PREQUALIFIABLE bool ]. synsem :+ [ ATTACH xmod ]. head-initial-head-nexus := head-initial & [ SYNSEM.ATTACH lmod, HEAD-DTR.SYNSEM.ATTACH notmod-or-lmod ]. head-final-head-nexus := head-final & [ SYNSEM.ATTACH rmod ]. head-subj-phrase := basic-head-subj-phrase & head-initial-head-nexus & [ SYNSEM.LOCAL.CAT.VAL.PREMODIFIABLE - ]. subj-head-phrase := basic-head-subj-phrase & head-final-head-nexus & [ SYNSEM.LOCAL.CAT.VAL.PREQUALIFIABLE - ]. head-comp-phrase := basic-head-1st-comp-phrase & head-initial-head-nexus & [ SYNSEM.LOCAL.CAT.VAL.PREMODIFIABLE #pm, HEAD-DTR.SYNSEM [ MODIFIED notmod, LOCAL.CAT.VAL.PREMODIFIABLE #pm ] ]. comp-head-phrase := basic-head-1st-comp-phrase & head-final-head-nexus & [ SYNSEM.LOCAL.CAT.VAL.PREQUALIFIABLE - ]. head-comp-phrase-2 := basic-head-2nd-comp-phrase & head-initial-head-nexus. comp-head-phrase-2 := basic-head-2nd-comp-phrase & head-final-head-nexus. ; This type is instantiated in rules.tdl, but its supertype isn't, so ; VPs may follow their complements but CPs may not. comp-verb-head-phrase := comp-head-phrase & [ SYNSEM.LOCAL.CAT.HEAD verb ]. ; ################################################### ; COORDINATION ; ################################################### ;;; General ;branching-phrase := phrase & ; [ NBR-DTR sign, ; BR-DTR sign ]. ;right-branching := binary-phrase & branching-phrase & ; [ NBR-DTR #nbr, ; BR-DTR #br, ; ARGS < #nbr, #br > ]. ;coord-phrase :+ branching-phrase & ; [ SYNSEM.LOCAL ; [ CAT ; [ HEAD.MOD #mod, ; VAL #val ]], ; NBR-DTR.SYNSEM.LOCAL ; [ CAT ; [ HEAD.MOD #mod, ; VAL #val ]], ; BR-DTR.SYNSEM.LOCAL.CAT ; [ HEAD.MOD #mod, ; VAL #val ] ]. ;bottom-coord-phrase := phrase & [ SYNSEM.LOCAL.COORDL coordb ]. bottom-coord-phrase :+ [ SYNSEM.LOCAL.COORDL coordb ]. ;top-coord-rule := coord-phrase & ; [ SYNSEM.LOCAL ; [ COORD -, ; COORDL coordt ], ; C-CONT.HOOK ; [ LTOP #rltop, ; INDEX #rind ], ; NBR-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX #lind, ; BR-DTR.SYNSEM.LOCAL ; [ COORD-REL.L-INDEX #lind, ; CONT.HOOK ; [ LTOP #rltop, ; INDEX #rind ] ] ]. top-coord-rule :+ [ SYNSEM.LOCAL.COORDL coordt ]. ;mid-coord-rule := coord-phrase & ; [ SYNSEM.LOCAL ; [ COORD +, ; COORDL coordm, ; COORD-REL implicit-coord-rel & ; [ LBL #ltop, ; C-ARG #cind, ; R-INDEX #rind ] ], ; C-CONT.HOOK ; [ LTOP #ltop, ; INDEX #cind ], ; NBR-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX #lind, ; BR-DTR.SYNSEM.LOCAL ; [ COORD-REL.L-INDEX #lind, ; CONT.HOOK.INDEX #rind ] ]. mid-coord-rule :+ [ SYNSEM.LOCAL.COORDL coordm ]. ;binary-bottom-coord-rule := bottom-coord-phrase & binary-phrase & ; [ SYNSEM.LOCAL ; [ CAT ; [ HEAD.MOD #mod, ; VAL #val ], ; COORD +, ; COORD-REL #crel ], ; C-CONT ; [ HOOK ; [ LTOP #lbl, ; INDEX #carg ], ; RELS , ; HCONS ], ; ARGS < ; [ SYNSEM ; [ LOCAL.CAT.HEAD conj, ; LKEYS.KEYREL #crel & ; [ LBL #lbl, ; C-ARG #carg, ; R-INDEX #rind ] ] ], ; [ SYNSEM.LOCAL ; [ CAT ; [ HEAD.MOD #mod, ; VAL #val ], ; COORD -, ; CONT.HOOK [ INDEX #rind ] ] ] ; > ]. ; monopoly: Mandatory monosyndeton with optional polysyndeton. This ; is the familiar Indo-European pattern, in which at least one ; coordinator is mandator ("A B and C") and more than one is possible ; ("A and B and C"). ;monopoly-top-coord-rule := top-coord-rule & ; [ NBR-DTR.SYNSEM.LOCAL.COORD -, ; BR-DTR.SYNSEM.LOCAL.COORD + ]. ;monopoly-mid-coord-rule := mid-coord-rule & ; [ NBR-DTR.SYNSEM.LOCAL.COORD -, ; BR-DTR.SYNSEM.LOCAL.COORD + ]. ;;; Noun np-coord-phrase :+ [ SYNSEM.LOCAL.CAT.HEAD.CASE #case, LCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD.CASE #case, RCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD.CASE #case ]. ;basic-np-top-coord-rule :+ nom-coord-phrase & ; [ C-CONT ; [ HOOK ; [ LTOP #ltop, ; INDEX #ind ], ; RELS , ; HCONS ], ; NBR-DTR.SYNSEM.LOCAL.CAT.VAL.SPR < >, ; BR-DTR.SYNSEM.LOCAL.CAT.VAL.SPR < > ]. ;basic-np-mid-coord-rule := nom-coord-phrase & ; [ SYNSEM.LOCAL.COORD-REL #crel, ; C-CONT ; [ RELS , ; HCONS ], ; BR-DTR.SYNSEM.LOCAL.CONT.HOOK ; [ LTOP #rltop, ; INDEX #rind ] ]. np-top-coord-rule := basic-np-top-coord-rule & monopoly-top-coord-rule. np-mid-coord-rule := basic-np-mid-coord-rule & monopoly-mid-coord-rule. np-bottom-coord-rule := conj-first-bottom-coord-rule & np-bottom-coord-phrase & [ SYNSEM.LOCAL.CAT.HEAD.CASE #case, NONCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.CASE #case ]. ;;; Adjective/verb (event) ;event-coord-phrase := coord-phrase & ; [ SYNSEM.LOCAL.CONT.HOOK.INDEX.E #tam, ; NBR-DTR.SYNSEM.LOCAL.CONT.HOOK ; [ LTOP #lhndl, ; INDEX #lind ], ; BR-DTR.SYNSEM.LOCAL.COORD-REL ; [ L-HNDL #lhndl, ; L-INDEX #lind, ; R-INDEX.E #tam ] ]. ;;; Adjective ;adj-coord-phrase := event-coord-phrase & right-branching & ; [ SYNSEM.LOCAL.CAT ; [ POSTHEAD #ph, ; HEAD adj ], ; NBR-DTR.SYNSEM.LOCAL.CAT ; [ POSTHEAD #ph, ; HEAD adj ], ; BR-DTR.SYNSEM.LOCAL.CAT ; [ POSTHEAD #ph, ; HEAD adj ] ]. ;basic-adj-top-coord-rule := adj-coord-phrase & ; [ C-CONT ; [ RELS , ; HCONS ] ]. ;basic-adj-mid-coord-rule := adj-coord-phrase & ; [ SYNSEM.LOCAL.COORD-REL #crel & ; [ R-HNDL #rhndl ], ; C-CONT ; [ RELS , ; HCONS ], ; NBR-DTR.SYNSEM.LOCAL.CAT.VAL.SPR #spr, ; BR-DTR.SYNSEM.LOCAL ; [ CAT.VAL.SPR #spr, ; CONT.HOOK.LTOP #rhndl ] ]. adj-top-coord-rule := basic-adj-top-coord-rule & monopoly-top-coord-rule. adj-mid-coord-rule := basic-adj-mid-coord-rule & monopoly-mid-coord-rule. adj-bottom-coord-rule := conj-first-bottom-coord-rule & adj-bottom-coord-phrase. ;;; Verb v-coord-phrase := event-coord-phrase & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM #vf, VCFORM #vcf ], SENTENCE #sen, ROOTMOM #rm ], LCOORD-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM #vf, VCFORM #vcf ], VAL.SUBJ cons, SENTENCE #sen, ROOTMOM #rm ], RCOORD-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM #vf, VCFORM #vcf ], VAL.SUBJ cons, SENTENCE #sen, ROOTMOM #rm ] ]. basic-v-top-coord-rule := v-coord-phrase & [ C-CONT [ RELS , HCONS ], LCOORD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR #spr, RCOORD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR #spr ]. basic-v-mid-coord-rule := v-coord-phrase & [ SYNSEM.LOCAL.COORD-REL #crel & [ R-HNDL #rhndl ], C-CONT [ RELS , HCONS ], LCOORD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR #spr, RCOORD-DTR.SYNSEM.LOCAL [ CAT.VAL.SPR #spr, CONT.HOOK.LTOP #rhndl ] ]. v-top-coord-rule := basic-v-top-coord-rule & monopoly-top-coord-rule. v-mid-coord-rule := basic-v-mid-coord-rule & monopoly-mid-coord-rule. v-bottom-coord-rule := conj-first-bottom-coord-rule & [ SYNSEM.LOCAL.CAT.HEAD verb & [ VCFORM #vcf ], NONCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ VCFORM #vcf ], VAL.SUBJ cons ] ]. s-coord-phrase :+ [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], SENTENCE #sen & -, ROOTMOM #rm ], LCOORD-DTR.SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], SENTENCE #sen, ROOTMOM #rm ], RCOORD-DTR.SYNSEM.LOCAL.CAT [ HEAD [ VFORM #vf, VCFORM #vcf ], SENTENCE #sen, ROOTMOM #rm ] ]. s-top-coord-rule := basic-s-top-coord-rule & monopoly-top-coord-rule. s-mid-coord-rule := basic-s-mid-coord-rule & monopoly-mid-coord-rule. s-bottom-coord-rule := conj-first-bottom-coord-rule & [ SYNSEM.LOCAL.CAT.HEAD verb & [ VCFORM #vcf ], NONCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ VCFORM #vcf ], SENTENCE -, VAL [ SUBJ < >, COMPS < > ] ] ]. ; ################################################### ; PERSON/NUMBER ; ################################################### png :+ [ PER person, NUM number ]. person := *top*. first := person. second := person. third := person. number := *top*. sg := number. non-sg := number. pl := non-sg. ; ################################################### ; PRONOUNS ; ################################################### quantifier_rel := predsort. pronoun_q_rel := quantifier_rel. reg_quant_rel := quantifier_rel. ; ################################################### ; QUANTIFIER RELATIONS ; ################################################### demonstrative_q_rel := reg_quant_rel. non+demonstrative_q_rel := reg_quant_rel. def_q_rel := reg_quant_rel. indef_q_rel := reg_quant_rel. ; ################################################### ; CASE ; ################################################### noun :+ [ CASE case ]. case := *top*. nom := case. acc := case. ; ################################################### ; LEXICAL RULES ; ################################################### ; Lexical rules applicable to nouns, including pronouns. noun-lex-rule := lex-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD noun ]. ; Lexical rules applicable to inflectable determiners. det-lex-rule := lex-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD det ]. ; Lexical rules applicable to adjectives. adj-lex-rule := lex-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD adj ]. ; Lexical rules applicable to adverbs. adv-lex-rule := lex-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD adv ]. ; Lexical rules applicable to verbs. verb-lex-rule := lex-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD verb ]. ; ##### Inflection Incrementation ; Inflect for part of speech, making lexeme eligible for number inflection cat-num-lex-rule := lex-rule & [ NEEDINF neednum, DTR.NEEDINF needcat ]. ; Inflect for part of speech, making lexeme eligible for case inflection ; This is for non-bare adverbs cat-case-lex-rule := lex-rule & [ NEEDINF needcase, DTR.NEEDINF needcat ]. ; Inflect for number, making lexeme eligible for case inflection num-case-lex-rule := lex-rule & [ NEEDINF needcase, DTR.NEEDINF neednum ]. ; Inflect for case, making lexeme a word case-no-lex-rule := lex-rule & [ NEEDINF noneed, DTR.NEEDINF needcase ]. ; Inflect for tense and mood, making lexeme a word tm-no-lex-rule := lex-rule & [ NEEDINF noneed, DTR.NEEDINF needtm ]. ; ##### Nouns ; Add overt noun part of speech to noun lexeme. overt-noun-lex-rule := infl-add-only-no-ccont-ltol-rule & noun-lex-rule & cat-num-lex-rule. ; Add singular number to number-inflectable noun lexeme. sg-noun-lex-rule := const-add-only-no-ccont-ltol-rule & noun-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.NUM sg ]. ; Add plural number to number-inflectable noun lexeme. non-sg-noun-lex-rule := infl-add-only-no-ccont-ltol-rule & noun-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.NUM pl ]. ; Add nominative case to case-inflectable noun lexeme. nom-noun-lex-rule := const-ltow-rule & noun-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom ]. ; Add accusative case to case-inflectable noun lexeme. acc-noun-lex-rule := infl-ltow-rule & noun-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE acc ]. ; ##### Determiners ; Add singular number to number-inflectable determiner lexeme. sg-det-lex-rule := const-add-only-no-ccont-ltol-rule & det-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CONT.HOOK.INDEX.PNG.NUM sg ] > ]. ; Add plural number to number-inflectable determiner lexeme. non-sg-det-lex-rule := infl-add-only-no-ccont-ltol-rule & det-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CONT.HOOK.INDEX.PNG.NUM pl ] > ]. ; Add nominative case to case-inflectable determiner lexeme. nom-det-lex-rule := const-ltow-rule & det-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE nom ] > ]. ; Add accusative case to case-inflectable determiner lexeme. acc-det-lex-rule := infl-ltow-rule & det-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE acc ] > ]. ; ##### Adjectives ; Add overt adjective part of speech to inflection-requiring adjective lexeme. overt-adj-lex-rule := infl-add-only-no-ccont-ltol-rule & adj-lex-rule & cat-num-lex-rule. ; Add singular number to number-inflectable adjective lexeme. sg-adj-lex-rule := const-add-only-no-ccont-ltol-rule & adj-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG.NUM sg ] > ]. ; Add plural number to number-inflectable adjective lexeme. non-sg-adj-lex-rule := infl-add-only-no-ccont-ltol-rule & adj-lex-rule & num-case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG.NUM pl ] > ]. ; Add nominative case to case-inflectable adjective lexeme. nom-adj-lex-rule := const-ltow-rule & adj-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE nom ] > ]. ; Add accusative case to case-inflectable adjective lexeme. acc-adj-lex-rule := infl-ltow-rule & adj-lex-rule & case-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE acc ] > ]. ; ##### Adverbs ; Add overt adverb part of speech to inflection-requiring adverb lexeme. overt-adv-lex-rule := infl-add-only-no-ccont-ltol-rule & adv-lex-rule & cat-case-lex-rule. ; Add nominative case to case-inflectable adverb lexeme. nom-adv-lex-rule := const-ltow-rule & adv-lex-rule & case-no-lex-rule. ; Add accusative case to case-inflectable adverb lexeme. acc-adv-lex-rule := infl-ltow-rule & adv-lex-rule & case-no-lex-rule. ; ##### Verbs ; Make verb lexeme finite imperative word. imp-verb-lex-rule := infl-ltow-rule & verb-lex-rule & tm-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM imperative, VCFORM vcimp ] ]. ; Make verb lexeme infinitive word. inf-verb-lex-rule := infl-ltow-rule & verb-lex-rule & tm-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM infinitive, VCFORM vcinf ] ]. ; Make verb lexeme conditional word. cond-verb-lex-rule := infl-ltow-rule & verb-lex-rule & tm-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM conditional, VCFORM vcfin ] ]. ; Make verb lexeme indicative word. indic-verb-lex-rule := infl-ltow-rule & verb-lex-rule & tm-no-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM indicative, VCFORM vcfin ] ]. ; Make verb lexeme finite past word. past-verb-lex-rule := indic-verb-lex-rule & [ SYNSEM.LOCAL [ CONT.HOOK.INDEX.E.TENSE past, CAT.HEAD.VFORM indicative ]]. ; Make verb lexeme finite present word. pres-verb-lex-rule := indic-verb-lex-rule & [ SYNSEM.LOCAL [ CONT.HOOK.INDEX.E.TENSE present, CAT.HEAD.VFORM indicative ]]. ; Make verb lexeme finite future word. fut-verb-lex-rule := indic-verb-lex-rule & [ SYNSEM.LOCAL [ CONT.HOOK.INDEX.E.TENSE future, CAT.HEAD.VFORM indicative ]]. ;;; Relations for demonstratives demonstrative_a_rel := predsort. proximal+dem_a_rel := demonstrative_a_rel. ;; close to speaker. distal+dem_a_rel := demonstrative_a_rel. ;; away from speaker. remote+dem_a_rel := distal+dem_a_rel. ;;away from speaker and hearer hearer+dem_a_rel := distal+dem_a_rel. ;;near hearer demonstrative-det-lex := norm-hook-lex-item & basic-zero-arg & [ INFLECTED -, NEEDINF neednum, SYNSEM [ LOCAL [ CAT [ HEAD det & [ MOD < > ], VAL [ SPEC.FIRST.LOCAL.CONT.HOOK [ INDEX #ind & [ COG-ST activ+fam ], LTOP #larg & #lbl ], SPR < >, SUBJ < >, COMPS < >, PREMODIFIABLE - ] ], CONT [ HCONS < ! qeq & [ HARG #harg, LARG #larg ] ! >, RELS < ! [ PRED "exist_q_rel"], #lkey & arg1-relation & [ LBL #lbl, ARG1 #ind] ! > ] ] , LKEYS [ KEYREL quant-relation & [ ARG0 #ind, RSTR #harg ], ALTKEYREL #lkey ] ] ].