;; -*- Mode: TDL; Package: LKB -*- ;; Finnish.tdl ;; Created 04-06-2005 ;; by Ryan Mattson (ryangm@u.washington.edu) ;; RGM 4-6-04 Types incorporated from matrix/modules/SVO.tdl ;; RGM 4-9-05 Constrained NON-HEAD-DTR.SYNSEM of head-comp-phrase to be of type ;; 'phr-synsem' to stop nouns that haven't undergone the detless-np rule from ;; being joined with verbs. This eliminated a particular overgenerated parse on ;; 'Opiskelija tykkaa tomaatista' that was creating a phrase out of 'tykaa ;; tomaatista' before 'tomaatista' underwent the detless-np rule. ;; RGM-4-9-05 Constrained NON-HEAD-DTR.SYNSEM of subj-head-phrase to be of type ;; 'phr-synsem' to stop nouns that haven't undergone the detless-np rule from ;; being licensed as subjects to VPs. This eliminated a particular ovegeneration ;; when 'opiskelija' was being licensed as the subject of 'kavelee' before ;; undergoing the detless-np rule. ;; RGM 4-28-05 Fixed a head-comp-phrase overgeneration bug by restricting ;; the NON-HEAD-DTR to be a headed-phrase. This killed complements that were ;; only words. That is to say, complements can be single words, but they ;; better be phrasally licensed by a bare-np-phrase first. ;; ********** ;; RGM 5-8-05 Removed constraint on head-comp-phrase that NON-HEAD-DTR needs ;; to have the value [HEAD noun]. Complementizers weren't being licensed to ;; have complements. This causes overgeneration, though. Think on how ;; to fix this. ;; ********** ; RGM 5-18-05 Limited everything except adpositions, adverbs, adjectives to ; be MOD <> +nvcdmo :+ [ MOD < > ]. ; RGM 5-25-05 Removed [NON-HEAD-DTR headed-phrase] constraint to allow for ; conjoined BARE-NP objects -- does this break other stuff? We shall see! head-comp-phrase := basic-head-1st-comp-phrase & head-initial & [ SYNSEM.LOCAL.CAT.IMPERATIVE #imp, HEAD-DTR.SYNSEM.LOCAL.CAT.IMPERATIVE #imp ]. ; ERB 2007-08-01 Cleaning up redundancies wrt to new version of matrix.tdl ; head-subj-phrase := basic-head-subj-phrase & ; [ HEAD-DTR.SYNSEM.LOCAL.CAT.VAL [ COMPS < >, ; SPR < > ]]. ; decl-head-subj-phrase := head-subj-phrase & head-final & declarative-clause & ; [ SYNSEM.LOCAL.CAT.IMPERATIVE -, ; HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; HEAD verb & [ QUES -, ; FORM fin ]]]. decl-head-subj-phrase :+ head-final & [ SYNSEM.LOCAL.CAT.IMPERATIVE -, HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, HEAD verb & [ QUES -, FORM fin ], VAL [ COMPS <>, SPR <>]]]. int-head-subj-phrase := basic-head-subj-phrase & head-initial & interrogative-clause & [ SYNSEM.LOCAL.CAT.IMPERATIVE -, HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, HEAD verb & [ INV +, QUES + ], VAL [ COMPS <>, SPR <> ]]]. ;; RGM 4-6-04 Added head-spr-phrase to allow for SPRs to join with Ns and create NPs head-spec-phrase := basic-head-spec-phrase & head-final [ HEAD-DTR.SYNSEM.LOCAL.CAT [ HEAD noun, VAL [ COMPS < >, SUBJ < > ]], NON-HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD det ]. ; ERB 2007-08-01 Fixing redundancies to new version of matrix.tdl. ; head-opt-subj-phrase := basic-head-opt-subj-phrase & ; [ SYNSEM.LOCAL.CAT [ IMPERATIVE - ], ; C-CONT [ RELS , ; HCONS ], ; HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; VAL [ SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG.PER non-third ] >, ; COMPS < > ], ; HEAD.FORM fin ]]. basic-head-opt-subj-phrase :+ [ HEAD-DTR.SYNSEM.LOCAL.CAT [ VAL.SUBJ.FIRST.LOCAL.CONT.HOOK.INDEX.PNG.PER non-third, HEAD.FORM fin ]]. ; decl-head-opt-subj-phrase := head-opt-subj-phrase & declarative-clause & ; [ SYNSEM.LOCAL.CAT.IMPERATIVE -, ; HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; HEAD verb & [ QUES -, ; FORM fin ]]]. decl-head-opt-subj-phrase :+ [ SYNSEM.LOCAL.CAT.IMPERATIVE -, HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, HEAD verb & [ QUES -, FORM fin ]]]. int-head-opt-subj-phrase := basic-head-opt-subj-phrase & interrogative-clause & [ SYNSEM.LOCAL.CAT.IMPERATIVE -, HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, HEAD verb & [ INV +, QUES + ]]]. head-opt-comp-phrase := basic-head-opt-comp-phrase & [ SYNSEM.LOCAL.CAT.IMPERATIVE -, HEAD-DTR word-or-lexrule & [ SYNSEM.LOCAL.CAT.IMPERATIVE - ]]. ; RGM 5-18-05 Constraints on the head-adj and adj-head rules to finnish-head-adj-int-phrase := head-adj-int-phrase & [ C-CONT [ RELS , HCONS ]]. finnish-adj-head-int-phrase := adj-head-int-phrase & [ C-CONT [ RELS , HCONS ]]. ;; RGM 4-6-05 Created basic types for common nouns, verbs, and determiners ;; (when overt, like tuo or tAmA). ;; RGM 4-30-05 Created verb-lex to clean up verb type hierarchy. verb-lex := basic-verb-lex & [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ QUES -, INV -, NEG -, MOD < > ], VAL [ SPR < >, SUBJ < #subj & [ LOCAL [ CAT [ HEAD noun, VAL.SPR < > ], CONT.HOOK.INDEX #ind ]]>], IMPERATIVE - ], CONT.HOOK.XARG #ind ], ARG-ST < #subj, ... >, INFLECTED - ]. ; RGM 5-18-05 Added subj-raising-verb-lex to allow for 'voida' ('can') verb in ; 'minA voin syOdA lasia' ('i can eat glass') subj-raising-verb-lex := verb-lex & trans-first-arg-raising-lex-item-1 & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj & [ LOCAL.CAT.HEAD.CASE nom ] >, COMPS < #comps & [ LOCAL.CAT.HEAD verb & [ FORM inf ]]>], ARG-ST < #subj, #comps > ]. ;; RGM 5-6-05 Added clausal-verb-lex for verbs that take clausal complements clausal-verb-lex := verb-lex & clausal-second-arg-trans-lex-item & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj >, COMPS < #comps & [ LOCAL.CAT [ HEAD comp, VAL.COMPS < > ]] > ], ARG-ST < #subj, #comps > ]. itr-verb-lex := verb-lex & intransitive-lex-item & [ SYNSEM.LOCAL.CAT [ VAL [ SUBJ < #subj & synsem & [ LOCAL.CAT [ HEAD noun & [ CASE nom ], VAL.SPR <> ] ] >, COMPS < > ] ], ARG-ST < #subj > ]. tr-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT [ VAL [ SUBJ < #subj & synsem & [ LOCAL.CAT [ HEAD noun, VAL.SPR <> ]] >, COMPS < #comps & synsem & [ OPT +, LOCAL.CAT [ HEAD noun, VAL.SPR <> ]] >, SPEC < > ] ], ARG-ST < #subj, #comps > ]. ;; RGM 4-30-05 Added dtr-verb-lex dtr-verb-lex := verb-lex & ditransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj >, COMPS < #arg1, #arg2 > ], ARG-ST < #subj, #arg1, #arg2 > ]. opt-comp-dtr-verb-lex := dtr-verb-lex & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj >, COMPS < #arg1 & [ OPT-CS activ-or-more ], #arg2 & [ OPT - ] > ], ARG-ST < #subj, #arg1, #arg2 > ]. ;; RGM 4-15-05 Creating subtypes of tr-verb-lex for general valence patterns ;; of transitive verbs and their subj/obj cases, irregulars will just ;; specify their cases in their lexical entries, unless another general ;; pattern is found nom-acc-tr-verb-lex := tr-verb-lex & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj & [ LOCAL.CAT.HEAD.CASE nom ] >, COMPS < #comps & [ LOCAL.CAT.HEAD.CASE acc ] > ], ARG-ST < #subj, #comps > ]. nom-part-tr-verb-lex := tr-verb-lex & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj & [ LOCAL.CAT.HEAD.CASE nom ] >, COMPS < #comps & [ LOCAL.CAT.HEAD.CASE part ] > ], ARG-ST < #subj, #comps > ]. ;; end tr-verb-lex subtypes ; RGM 5-29-05 Created nominal-lex type for use in nominal inflecting rules nominal-lex := *top*. noun-lex := basic-noun-lex & basic-one-arg & nominal-lex & no-hcons-lex-item & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < >, VAL [ SPR < #spr >, SUBJ < >, COMPS < > ] ], ARG-ST < #spr >, INFLECTED - ]. basic-det-lex := nominal-lex. det-lex := basic-determiner-lex & basic-zero-arg & basic-det-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < >, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < [ LOCAL.CAT.HEAD.CASE nom ] > ] ], ARG-ST < >, INFLECTED - ]. demonstrative-det-lex := norm-hook-lex-item & basic-zero-arg & basic-det-lex & [ INFLECTED -, SYNSEM [ LOCAL [ CAT [ HEAD det & [ MOD < > ], VAL [ SPEC.FIRST.LOCAL.CONT.HOOK [ INDEX #ind & [ COG-ST activ+fam ], LTOP #larg & #lbl ], SPR < >, SUBJ < >, COMPS < > ] ], 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 ] ] ]. ;; RGM 4-30-05 Added adj-lex for lab4 adj-lex := basic-int-mod-adj-lex & nominal-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD noun, VAL.SPR cons ]]>, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ], POSTHEAD - ], INFLECTED - ]. adv-lex := basic-int-adverb-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD verb, VAL.SUBJ < [ ] > ] ] >, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ], POSTHEAD + ] ]. ; RGM 5-20-05 Created subtype of basic-scopal-adverb-lex scopal-adv-lex := basic-scopal-adverb-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD verb, VAL.COMPS < > ] ] >, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ]], ARG-ST < > ]. ;; RGM 4-9-05 Created detless-np-phrase to allow for NPs that don't have determiners bare-np-phrase := basic-bare-np-phrase & [ HEAD-DTR.SYNSEM.LOCAL [ CAT [ HEAD noun & [ PRO - ] ], CONT.HOOK.INDEX.COG-ST type-id ], C-CONT.RELS ]. ;; RGM 4-9-05 Finnish nominals that occur in the subject and object positions have ;; different semantic meanings when it comes to their definiteness. The following ;; types constrain those meanings based on the type of HEAD-DTR which corresponds to ;; the separation in types illustrated below (subtypes of noun-lex). ;; RGM 4-14-05 Commented out 4-9-05 entries and created entries for lab3 ;pronoun-bare-np-phrase := basic-bare-np-phrase & ;[ HEAD-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRO +, ; VAL.SPR < [ LOCAL.CONT.RELS < ! [ PRED #pred & "exist_q_rel" ] ! > ] > ], ; C-CONT.RELS < ! [ PRED #pred ] ! > ]. pronoun-bare-np-phrase := basic-bare-np-phrase & [ HEAD-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRO + ], C-CONT.RELS < ! [ PRED "exist_q_rel" ] ! > ]. ;; RGM 5-4-05 Created subtype of declarative-clause (from matrix.tdl) ;decl-clause := declarative-clause & head-only & ;[ SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; VAL [ SPR < >, ; COMPS < >, ; SUBJ < > ]], ; HEAD-DTR.SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; HEAD verb & [ QUES -, ; FORM fin ], ; VAL [ SPR < >, ; COMPS < >, ; SUBJ < > ]]]. ;; RGM 5-13-05 Created subtype of interrogative-clause (from matrix.tdl) (for lab6) ;int-clause := interrogative-clause & head-only & ;[ SYNSEM.LOCAL [ CAT [ IMPERATIVE -, ; VAL [ SPR < >, ; COMPS < >, ; SUBJ < > ]]], ; HEAD-DTR.SYNSEM.LOCAL [ CAT [ IMPERATIVE -, ; HEAD verb & [ INV +, ; QUES + ], ; VAL [ SPR < >, ; COMPS < >, ; SUBJ < anti-synsem > ]]]]. int-clause := interrogative-clause & head-only & [ SYNSEM.LOCAL.CAT [ HEAD.INV +, VAL #val, MC + ], HEAD-DTR.SYNSEM.LOCAL.CAT [ MC na, VAL #val & [ SUBJ < >, COMPS < > ] ], C-CONT.HOOK.INDEX.SF ques ] . cp-interrogative-clause := interrogative-clause & head-only & [ SYNSEM.LOCAL [ CAT [ IMPERATIVE -, VAL [ SPR < >, COMPS < >, SUBJ < > ]]], HEAD-DTR.SYNSEM.LOCAL [ CAT [ IMPERATIVE -, HEAD comp, VAL [ SPR < >, COMPS < >, SUBJ < > ]]]]. ;; RGM 5-6-05 Creating complementizer-lex-item for lab5 complementizer-lex-item := no-hcons-lex-item & basic-one-arg & [ SYNSEM.LOCAL [ CAT [ HEAD comp & [ MOD < > ], VAL [ SPR < >, SUBJ < >, COMPS < #comps & synsem & [ LOCAL.CAT [ HEAD verb, VAL [ SPR < >, SUBJ < >, COMPS < > ]]] > ]]], ARG-ST < #comps > ]. decl-comp-lex := complementizer-lex-item & [ ARG-ST < [ LOCAL.CONT.HOOK.INDEX.SF prop ] > ]. int-comp-lex := complementizer-lex-item & [ ARG-ST < [ LOCAL.CONT.HOOK.INDEX.SF ques ] > ]. ;; RGM 4-9-05 Created nom-noun-lex and elat-noun-lex to account for difference in meanings ;; of nominative and elative forms of detless-nps. These types will interact with a rule ;; that selects for nom or elat NPs depending on their status as subjects or objects ;; RGM 4-14-05 Created common-noun-lex subtype of noun-lex, nom- and elat-noun-lex are ;; now inheriting from common-noun-lex. pronoun-lex := noun-lex & [ SYNSEM [ LOCAL.CAT [ VAL [ SPR < [ LOCAL.CONT.RELS < ! [ PRED "exist_q_rel" ] ! >] >, COMPS < >, SUBJ < > ], HEAD [ CASE case, PRO + ] ], LKEYS.KEYREL.PRED '_pronoun_n_rel ] ]. old-common-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT [ VAL.SPR < [ LOCAL.CONT.RELS < ! [ PRED "exist_q_rel" ] ! > ] >, HEAD [ PRO - ] ], CONT.HOOK.INDEX.PNG.PER third ] ]. common-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT [ VAL.SPR < [ LOCAL.CAT.HEAD det ] >, HEAD [ PRO - ] ], CONT.HOOK.INDEX.PNG.PER third ] ]. ; RGM 5-13-05 Added following inv-lex-rule for lab6 to invert the subject and verb ; in a question. ; RGM 5-13-05 Also added ques-lex-rule for lab6 to give a question inflection to verbs inv-lex-rule := cat-change-only-lex-rule & same-hc-light-lex-rule & same-posthead-lex-rule & const-ltol-rule & [ SYNSEM [ LOCAL.CAT [ HEAD verb & [ INV +, QUES +, FORM fin ], VAL [ COMPS < #subj . #comps >, SUBJ < >, SPR #spr, SPEC #spec ], MC na, IMPERATIVE - ], LKEYS #lkeys ], DTR.SYNSEM [ LOCAL.CAT [ HEAD verb & [ INV -, QUES +, FORM fin ], VAL [ SUBJ < #subj >, COMPS #comps, SPR #spr, SPEC #spec ], IMPERATIVE - ], LKEYS #lkeys ] ] . ; ERB 2007-08-01 This was in there twice. ;int-clause := interrogative-clause & head-only & ; [ SYNSEM.LOCAL.CAT [ HEAD.INV +, ; VAL #val, ; MC + ], ; HEAD-DTR.SYNSEM.LOCAL.CAT [ MC na, ; VAL #val & ; [ SUBJ < >, ; COMPS < > ] ], ; C-CONT.HOOK.INDEX.SF ques ] . ques-lex-rule := infl-head-change-only-ltol-rule & [ SYNSEM.LOCAL.CAT [ HEAD.QUES +, VAL #val ], C-CONT [ RELS , HCONS ], DTR [ C-CONT [ RELS , HCONS ], SYNSEM.LOCAL.CAT [ HEAD verb & [ QUES -, NEG -, FORM fin ], VAL #val ] ] ]. ; RGM 5-15-05 Added IMPERATIVE feature to CAT cat :+ [ IMPERATIVE bool ]. ; RGM 5-15-05 Added non-branching rule for imperative clauses, lab6 imperative-head-opt-subj-phrase := imp-head-opt-subj-phrase & [ SYNSEM.LOCAL.CAT.IMPERATIVE +, HEAD-DTR.SYNSEM.LOCAL.CAT.IMPERATIVE + ]. ; RGM 5-15-05 Added imperative clause ;imp-clause := imperative-clause & head-only & ;[ SYNSEM.LOCAL.CAT.IMPERATIVE +, ; HEAD-DTR imperative-head-opt-subj-phrase ]. ;; RGM 4-14-05 PNG from Lab 3 png :+ [ PER person, NUM number ]. person := *top*. non-third := person. non-first := person. first := non-third. second := non-third & non-first. third := non-first. number := *top*. sg := number. non-sg := number. pl := non-sg. ;tense := *top*. present := tense. past := tense. future := tense. ; RGM 5-29-05 Adding MSG copying to same-cont-lex-rule ;same-cont-lex-rule :+ [ SYNSEM.LOCAL.CONT.MSG #msg, ; DTR.SYNSEM.LOCAL.CONT.MSG #msg ]. ;; RGM 4-14-05 Pronoun types; they undergo a covert-det rule in Finnish quantifier_rel := predsort. pronoun_q_rel := quantifier_rel. reg_quant_rel := quantifier_rel. demonstrative_q_rel := reg_quant_rel. non+demonstrative_q_rel := reg_quant_rel. proximal+dem_q_rel := demonstrative_q_rel. distal+dem_q_rel := demonstrative_q_rel. ;;; 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 ; ERB (2005-06-01) To make transfer work... def_q_rel := reg_quant_rel. indef_q_rel := reg_quant_rel. ;; RGM 4-15-05 Adding CASE feature to noun type, creating case type, and ;; creating case subtypes as should exist in the lexicon right now, more ;; to follow (possibly). ;; nom = nominative ;; acc = accusative ;; part = partitive ;; elat = elative (one of the six local cases, needed for the object of tykAtA) ;; RGM 4-16-05 Added [PRO bool] to noun to separate pronouns in bare-np rule, PRO feature ;; added to lexical entries for pronouns ; RGM 5-13-05 Added INV and QUES features to verb ; RGM 5-18-05 Added FORM to verb and created form types ; RGM 5-20-05 Added NEG to verb to mark whether NEG rule has applied on it yet verb :+ [ QUES bool, INV bool, FORM form, NEG bool ]. form := avm. fin := form. inf := form. noun :+ [ CASE case, PRO bool ]. case := *top*. nom := case. acc := case. part := case. gen := case. elat := case. allat := case. ablat := case. iness := case. adess := case. illat := case. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Lexical rules for XFST interface ; ; ; ; first added 5-23-05 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;; ; Verb rules ;;;;; verb-lex-rule := infl-ltow-rule & [ DTR verb-lex & [ SYNSEM.LOCAL [ CAT.HEAD verb ]], SYNSEM.LOCAL.CAT [ VAL [ SUBJ < [ LOCAL.CAT.HEAD.CASE nom ] >, SPR < > ], HEAD.FORM fin ]]. 1sg_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM sg ]]>]. 2sg_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM sg ]]>]. 3sg_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg ]]>]. 1pl_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM pl ]]>]. 2pl_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM pl ]]>]. 3pl_verb-lex-rule := verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM pl ]]>]. neg_verb-lex-rule := infl-head-change-only-ltol-rule & [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ NEG +, MOD #mod, KEYS #keys, QUES #ques, INV #inv, FORM #form ]]], DTR verb-lex & [ SYNSEM.LOCAL [ CAT [ HEAD [ NEG -, MOD #mod, KEYS #keys, QUES #ques, INV #inv, FORM #form ]]]]]. ; neg_verb-lex-rule := infl-ltol-rule & ; [ SYNSEM.LOCAL [ CAT [ HEAD.NEG + ]], ; C-CONT [ RELS , ; HCONS ], ; DTR verb-lex & [ SYNSEM.LOCAL [ CAT [ HEAD.NEG - ]]]]. ; imp_verb-lex-rule := infl-ltol-rule & ; [ SYNSEM.LOCAL.CAT [ IMPERATIVE +, ; HEAD #head ], ; C-CONT [ RELS , ; HCONS ], ; DTR verb-lex-rule & [ C-CONT [ RELS , ; HCONS ], ; SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; HEAD #head ]]]. imp_verb-lex-rule := const-ltol-rule & same-head-lex-rule & same-val-lex-rule & same-hc-light-lex-rule & same-posthead-lex-rule & [ SYNSEM.LOCAL.CAT.IMPERATIVE +, DTR verb-lex ]. imperative_verb_rule := const-ltow-rule & [ SYNSEM.LOCAL.CAT [ HEAD verb, IMPERATIVE + ] ]. inf_verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.FORM inf, DTR verb-lex ]. ;;;;; ; Noun inflection ;;;;; noun-lex-rule := lex-rule & [ SYNSEM.LOCAL.CAT.HEAD noun & [ PRO #pro ], DTR.SYNSEM.LOCAL.CAT.HEAD.PRO #pro ]. num_noun-lex-rule := noun-lex-rule & infl-add-only-no-ccont-ltol-rule. sg_noun-lex-rule := num_noun-lex-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg ], DTR noun-lex ]. pl_noun-lex-rule := num_noun-lex-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM pl ], DTR noun-lex ]. ; Adds +CASE after +NUM noun_case-lex-rule := noun-lex-rule & infl-head-change-only-ltol-rule & [ C-CONT [ RELS , HCONS ], DTR num_noun-lex-rule ]. noun_case_nom-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom ]. noun_case_acc-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE acc ]. noun_case_part-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE part ]. noun_case_elat-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE elat ]. noun_case_illat-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE illat ]. noun_case_iness-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE iness ]. noun_case_adess-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE adess ]. noun_case_ablat-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE ablat ]. noun_case_allat-lex-rule := noun_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE allat ]. noun_word-lex-rule := const-ltow-rule & [ DTR noun_case-lex-rule ]. ;;;;; ; Det inflection ;;;;; det-lex-rule := lex-rule & [ SYNSEM.LOCAL.CAT.HEAD det ]. num_det-lex-rule := det-lex-rule & infl-add-only-no-ccont-ltol-rule. sg_det-lex-rule := num_det-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg ] ] >, DTR basic-det-lex ]. pl_det-lex-rule := num_det-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM pl ] ] >, DTR basic-det-lex ]. ; Adds +CASE after +NUM det_case-lex-rule := det-lex-rule & infl-add-only-no-ccont-ltol-rule & [ DTR num_det-lex-rule ]. det_case_nom-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE nom ] > ]. det_case_acc-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE acc ] > ]. det_case_part-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE part ] > ]. det_case_elat-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE elat ] > ]. det_case_illat-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE illat ] > ]. det_case_iness-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE iness ] > ]. det_case_adess-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE adess ] > ]. det_case_ablat-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE ablat ] > ]. det_case_allat-lex-rule := det_case-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE allat ] > ]. det_word-lex-rule := const-ltow-rule & [ DTR det_case-lex-rule ]. ;;;;; ; Adj inflection ;;;;; adj-lex-rule := lex-rule & [ SYNSEM.LOCAL.CAT.HEAD adj ]. num_adj-lex-rule := adj-lex-rule & infl-add-only-no-ccont-ltol-rule. sg_adj-lex-rule := num_adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg ] ] >, DTR adj-lex ]. pl_adj-lex-rule := num_adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM pl ] ] >, DTR adj-lex ]. ; Adds +CASE after +NUM adj_case-lex-rule := adj-lex-rule & infl-add-only-no-ccont-ltol-rule & [ DTR num_adj-lex-rule ]. adj_case_nom-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE nom ] > ]. adj_case_acc-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE acc ] > ]. adj_case_part-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE part ] > ]. adj_case_elat-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE elat ] > ]. adj_case_illat-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE illat ] > ]. adj_case_iness-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE iness ] > ]. adj_case_adess-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE adess ] > ]. adj_case_ablat-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE ablat ] > ]. adj_case_allat-lex-rule := adj_case-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD <[ LOCAL.CAT.HEAD.CASE allat ] > ]. adj_word-lex-rule := const-ltow-rule & [ DTR adj_case-lex-rule ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Commented rules below were pre-XFST interface ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; RGM 4-16-05 Adding lexical rules for lab3 below ; verb-lex-rule := infl-ltow-rule & ; [ DTR verb-lex & [ SYNSEM.LOCAL.CAT.HEAD verb ], ; SYNSEM.LOCAL.CAT [ VAL.SUBJ < [ LOCAL.CAT.HEAD.CASE nom ] >, ; HEAD.FORM fin ]]. ; 1sg_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, ; NUM sg ] ] > ]. ; 2sg_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, ; NUM sg ] ] > ]. ; 3sg_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, ; NUM sg ] ] > ]. ; 1pl_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, ; NUM pl ] ] > ]. ; 2pl_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, ; NUM pl ] ] > ]. ; 3pl_verb-lex-rule := verb-lex-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, ; NUM pl ] ] > ]. ; ;; RGM 5-22-05 Restricted RELS and HCONS to provide appropriate relations ; neg_verb-lex-rule := infl-ltol-rule & ; [ SYNSEM.LOCAL [ CAT [ HEAD.NEG + ]], ; C-CONT [ RELS , ; HCONS ], ; DTR 1sg_verb-lex-rule & [ SYNSEM.LOCAL [ CAT [ HEAD.NEG - ]], ; C-CONT [ RELS , ; HCONS ]]]. ; the entry i really want: ; neg_verb-lex-rule := infl-ltol-rule & ; [ SYNSEM.LOCAL [ CAT [ HEAD.NEG +, ; VAL #val ]], ; C-CONT [ RELS , ; HCONS ], ; DTR verb-lex-rule & [ SYNSEM.LOCAL [ CAT [ HEAD.NEG -, ; VAL #val ]], ; C-CONT [ RELS , ; HCONS ]]]. ; imp_verb-lex-rule := infl-ltol-rule & ; [ SYNSEM.LOCAL.CAT [ IMPERATIVE +, ; HEAD #head ], ; DTR 2sg_verb-lex-rule & [ SYNSEM.LOCAL.CAT [ IMPERATIVE -, ; HEAD #head ]]]. ; inf_verb-lex-rule := infl-ltow-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.FORM inf, ; DTR verb-lex ]. ; ;; RGM 4-30-05 Added adjective inflection rules to agree in png ; adj-lex-rule := infl-ltow-rule & ; [ DTR.SYNSEM.LOCAL.CAT.HEAD adj, ; SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD noun ] >, ; DTR adj-lex ]. ; sg_adj-lex-rule := adj-lex-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg ] ] >, ; DTR adj-lex ]. ; pl_adj-lex-rule := adj-lex-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM pl ] ] >, ; DTR adj-lex ]. ; for some reason this rule was unifying with PRO +, and that was ; really annoying because it was causing overgeneration in some places. ; so i just specified PRO - to ensure that the overgeneration stopped. ; i want to track down why this was happening, but i haven't been able ; to yet. i'll start tomorrow. ; pl_noun-lex-rule := infl-local-change-only-ltol-rule & ; [ SYNSEM.LOCAL [ CONT.HOOK.INDEX.PNG.NUM pl, ; CAT.HEAD.PRO -, ; CAT.HEAD.CASE nom ], ; DTR common-noun-lex ]. ; acc_noun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.CASE acc, ; DTR common-noun-lex ]. ; acc_adj-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE acc ] >, ; DTR adj-lex ]. ; elat_adj-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.CASE elat ] >, ; DTR adj-lex ]. ; elat_noun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.CASE elat, ; DTR noun-lex ]. ; elat_det-lex-rule := infl-val-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE elat ] >, ; DTR det-lex ]. ; allat_noun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.CASE allat, ; DTR noun-lex ]. ; ablat_noun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.CASE ablat, ; DTR noun-lex ]. ; part_noun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD.CASE part, ; DTR noun-lex & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom ]]. ; acc_det-lex-rule := infl-val-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.CASE acc ] >, ; DTR det-lex ]. ; part_pronoun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD [ CASE part, ; PRO + ], ; DTR pronoun-lex & [ SYNSEM.LOCAL.CAT.HEAD [ CASE nom, ; PRO + ]]]. ; gen_pronoun-lex-rule := infl-head-change-only-ltol-rule & ; [ SYNSEM.LOCAL.CAT.HEAD [ CASE gen, ; PRO + ], ; DTR pronoun-lex & [ SYNSEM.LOCAL.CAT.HEAD [ CASE nom, ; PRO + ]]]. ;; end lexicul rules ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Coordination ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 ]. np-bottom-coord-phrase :+ [ SYNSEM.LOCAL.CAT.HEAD.CASE #case, NONCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.CASE #case ]. 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. 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. vp-coord-phrase :+ [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ], LCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD[ QUES #ques, INV #inv, FORM #form, NEG #neg ], RCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ] ]. vp-bottom-coord-phrase :+ [ SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ], NONCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ] ]. vp-top-coord-rule := basic-vp-top-coord-rule & monopoly-top-coord-rule. vp-mid-coord-rule := basic-vp-mid-coord-rule & monopoly-mid-coord-rule. vp-bottom-coord-rule := conj-first-bottom-coord-rule & vp-bottom-coord-phrase. s-coord-phrase :+ [ SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ], LCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD[ QUES #ques, INV #inv, FORM #form, NEG #neg ], RCOORD-DTR.SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ] ]. s-bottom-coord-phrase :+ [ SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ], NONCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD [ QUES #ques, INV #inv, FORM #form, NEG #neg ] ]. 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 & s-bottom-coord-phrase. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; END OF FILE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;