;;; -*- Mode: TDL; Package: LKB -*- ;;; ;;; Language-specific types and constraints for Italian ;;; Type addenda adding constraints to head types ;;; This grammar includes head-modifier rules. To keep ;;; out extraneous parses, constrain the value of MOD on ;;; various subtypes of head. This may need to be loosened later. ;;; This constraint says that only adverbs, adjectives, ;;; and adpositions can be modifiers. ;;; ;;;MZ added are-decl-embedded-verb-lex := are-verb-lex & decl-embedded-verb-lex. 2sg-irreg-embedded-verb-lex := 2sg-irreg-verb-lex & embedded-verb-lex. ;;; ;;this eliminates an extra parse for negated transitive verbs ;; ERB 2007-05-19 The trick is to use MODIFIED, instead. ;adj-head-scop-phrase :+ [ HEAD-DTR adj-head-follows ]. ;adj-head-follows := avm. ;basic-head-opt-comp-phrase :+ adj-head-follows. ;lex-rule :+ adj-head-follows. ; ERB 2007-05-17 Just use regular head-adj rules. ;italian-head-adj-int-phrase := head-adj-int-phrase & ;[ NON-HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD adj ]. +nvcdmo :+ [ MOD < > ]. ; ERB 2006-05-30 NTYPE to control bare np phrases ; ERB 2007-05-17 Still need that, if we want the bare-np phrase ; for common nouns to require plural and provide COG-ST type-id. noun :+ [NTYPE ntype]. ntype := avm. uncommon := ntype. pronoun := uncommon. proper := uncommon. common := ntype. ;;; Types for values of additional features. ;;; Phrase structure rule types ;I got rid of this rule in rules.tdl ;my-declarative-clause := non-rel-clause & ; [ SYNSEM.LOCAL [ CAT [ VAL [ SPR < >, ; COMPS < >, ; SUBJ < > ]], ; CONT.MSG [ PRED prop-or-ques_m_rel, ; MARG #marg ]], ; C-CONT [ RELS , ; HCONS ], ; HEAD-DTR.SYNSEM.LOCAL [ CAT [ HEAD verb & [FORM base], ; VAL [ SPR < >, ; COMPS < >, ; SUBJ < > ]], ; CONT [ MSG no-msg, ; HOOK.LTOP #ltop ]]]. my-imperative-clause := imperative-clause & basic-head-opt-subj-phrase & [ SYNSEM.LOCAL.CAT [ VAL [ SPR < >, COMPS < >, SUBJ < > ]], HEAD-DTR.SYNSEM.LOCAL [ CAT[ HEAD verb & [FORM imp], VAL [ SPR < >, COMPS < >, SUBJ <[ LOCAL.CONT.HOOK.INDEX.PNG.PER second ] > ] ], CONT.HOOK.INDEX.SF comm ] ]. ;;; Types for SVO word order. head-opt-subj-phrase := basic-head-opt-subj-phrase & declarative-clause & [ C-CONT [ RELS , HCONS ], SYNSEM.LOCAL.CAT.HEAD verb & [ FORM base ]]. ;;; ERB 2007-05-17 This had: SYNSEM.OPT-CS #type-id & type-id , ;;; but it's the OPT-CS on the head daughter that counts. (It was ;;; also putting that into the COMPS's COG-ST, though, so it should ;;; have sort of worked.) head-opt-comp-phrase := basic-head-opt-comp-phrase & [ HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD.INV - ]. head-comp-phrase := basic-head-1st-comp-phrase & head-initial. subj-head-phrase := decl-head-subj-phrase & head-final & [ HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < > , SYNSEM.LOCAL.CAT.HEAD verb & [ FORM base ] ]. ;subj-head-phrase := basic-head-subj-phrase & head-final & ; [ HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < > ]. ;;; Rules for building NPs. Note that the Matrix uses SPR for ;;; the specifier of nouns and SUBJ for the subject (specifier) of verbs. spec-head-phrase := basic-head-spec-phrase & head-final. ;;; Bare NP phrase. Consider modifying the PRED value of the quantifier relation ;;; introduced to match the semantic effect of bare NPs in your language. ;;; ERB 2007-05-17 I'm pretty sure we only see bare NPs in Italian ;;; with indefinite plurals, so adding the relevant constraints. ;;; Want 'male' to be a bare-np, so putting OPT + instead, and ;;; changing noun entries. indef-bare-np-phrase := basic-bare-np-phrase & [ C-CONT.RELS , SYNSEM.LOCAL [ CAT.HEAD.NTYPE common, CONT.HOOK.INDEX [ COG-ST type-id ]]]. proper-bare-np-phrase := basic-bare-np-phrase & [ C-CONT.RELS , SYNSEM.LOCAL [ CAT.HEAD.NTYPE uncommon ] ]. ;pronoun-bare-np-phrase := basic-bare-np-phrase & ; [ HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD.NTYPE pronoun, ; C-CONT.RELS < ! [ PRED "pronoun_q_rel" ] ! > ]. ;proper-bare-np-phrase := basic-bare-np-phrase & ; [ HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD.NTYPE proper, ; C-CONT.RELS < ! [ PRED "proper_q_rel" ] ! > ]. ;;; PNG stuff png :+ [ PER person, NUM number, GEND gender ]. gender := *top*. male := gender. female := gender. person := *top*. first := person. second := person. third := person. number := *top*. sg := number. non-sg := number. ;;;ALTS stuff alts :+ [ VERB-CLASS verb-class ]. verb-class := avm. regular := verb-class. irregular := verb-class. are := regular. non-are := regular. ere := non-are. ire := non-are. ;;;CASE stuff noun :+ [ CASE case ]. case := *top*. acc := case. nom := case. prep := case. ;;; misc verb :+ [INV bool]. verb :+ [AGM bool]. verb :+ [FORM form]. form := *top*. non-base := form. base := form. imp := non-base. inf := non-base. ulist := list. ucons := ulist & cons & [ FIRST unexpressed, REST ulist ]. unull := ulist & null. ;;; Lexical types ;;;SYNSEM.LOCAL.CONT.HOOK.INDEX.COG-ST in-foc & [SPECI + ], ;;; ERB 2007-05-17 This type used to say SPECI + inside OPT-CS ;;; as well, and I've gotten rid of that. Might need to consider ;;; creating more structure under OPT-CS so that it's got ;;; room for SPECI in the new regime. ;;; ERB 2007-05-17 This type was putting the information in-foc ;;; into the OPT-CS of the discharged complement, rather than ;;; its COG-ST. acc-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT[VAL [ COMPS #comps, SPR #spr, SUBJ #subj ]], DTR.SYNSEM.LOCAL.CAT [ VAL [ COMPS [ FIRST.LOCAL [ CONT.HOOK.INDEX.COG-ST in-foc, CAT.HEAD.CASE acc], REST #comps ], SPR #spr, SUBJ #subj ], HEAD [ AGM - , FORM base]]]. dat-acc-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT.VAL [ COMPS < >, SPR #spr, SUBJ #subj ], DTR acc-opt-lex-rule & [ SYNSEM.LOCAL.CAT[VAL [ COMPS < [OPT-CS in-foc] >, SPR #spr, SUBJ #subj ], HEAD.FORM base]]]. dat-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT[VAL [ COMPS < #comps >, SPR #spr, SUBJ #subj ], HEAD.AGM +], DTR [ SYNSEM.LOCAL.CAT[ VAL [ COMPS < #comps, [OPT-CS in-foc] >, SPR #spr, SUBJ #subj ], HEAD.FORM base ]]]. inf-acc-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT[VAL [ COMPS #comps, SPR #spr, SUBJ #subj ]], DTR.SYNSEM.LOCAL.CAT [ VAL [ COMPS [ FIRST [OPT-CS in-foc, LOCAL.CAT.HEAD.CASE acc], REST #comps ], SPR #spr, SUBJ #subj ], HEAD [FORM non-base ]]]. inf-dat-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT.VAL [ COMPS < #comps >, SPR #spr, SUBJ #subj ], DTR [ SYNSEM.LOCAL.CAT[ VAL [ COMPS < #comps, [OPT-CS in-foc] >, SPR #spr, SUBJ #subj ], HEAD.FORM non-base ]]]. 1arg-1sg-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM sg ]], ... > ] . 2arg-1sg-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM sg ]] > ] . 1arg-2sg-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM sg ]], ... > ] . 2arg-2sg-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM sg ]] > ] . 1arg-3sg-m-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg, GEND male]], ... > ] . 2arg-3sg-m-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg, GEND male]] > ] . 1arg-3sg-f-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg, GEND female]], ... > ] . 2arg-3sg-f-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg, GEND female]] > ] . 1arg-1pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM non-sg ]], ... > ] . 2arg-1pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM non-sg ]] > ] . 1arg-2pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM non-sg ]], ... > ] . 2arg-2pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM non-sg ]] > ] . 1arg-3pl-m-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg, GEND male]], ... > ] . 2arg-3pl-m-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg, GEND male]] > ] . 1arg-3pl-f-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg, GEND female]], ... > ] . 2arg-3pl-f-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg, GEND female]] > ] . 1arg-3pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg]], ... > ] . 2arg-3pl-lex-rule := infl-val-change-only-ltol-rule & [ DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < [] , [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg]] > ] . 1sg-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-1sg-lex-rule. 2sg-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-2sg-lex-rule. 3sg-m-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-3sg-m-lex-rule. 3sg-f-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-3sg-f-lex-rule. 1pl-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-1pl-lex-rule. 2pl-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-2pl-lex-rule. 3pl-m-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-3pl-m-lex-rule. 3pl-f-2verb-acc-lex-rule := 2verb-acc-opt-lex-rule & 1arg-3pl-f-lex-rule. 1sg-acc-lex-rule := acc-opt-lex-rule & 1arg-1sg-lex-rule. 2sg-acc-lex-rule := acc-opt-lex-rule & 1arg-2sg-lex-rule. 3sg-m-acc-lex-rule := acc-opt-lex-rule & 1arg-3sg-m-lex-rule. 3sg-f-acc-lex-rule := acc-opt-lex-rule & 1arg-3sg-f-lex-rule. 1pl-acc-lex-rule := acc-opt-lex-rule & 1arg-1pl-lex-rule. 2pl-acc-lex-rule := acc-opt-lex-rule & 1arg-2pl-lex-rule. 3pl-m-acc-lex-rule := acc-opt-lex-rule & 1arg-3pl-m-lex-rule. 3pl-f-acc-lex-rule := acc-opt-lex-rule & 1arg-3pl-f-lex-rule. 1sg-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-1sg-lex-rule. 2sg-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-2sg-lex-rule. 3sg-m-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-3sg-m-lex-rule. 3sg-f-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-3sg-f-lex-rule. 1pl-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-1pl-lex-rule. 2pl-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-2pl-lex-rule. 3pl-m-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-3pl-m-lex-rule. 3pl-f-inf-acc-lex-rule := inf-acc-opt-lex-rule & 1arg-3pl-f-lex-rule. 1sg-dat-lex-rule := dat-opt-lex-rule & 2arg-1sg-lex-rule. 2sg-dat-lex-rule := dat-opt-lex-rule & 2arg-2sg-lex-rule. 3sg-m-dat-lex-rule := dat-opt-lex-rule & 2arg-3sg-m-lex-rule. 3sg-f-dat-lex-rule := dat-opt-lex-rule & 2arg-3sg-f-lex-rule. 1pl-dat-lex-rule := dat-opt-lex-rule & 2arg-1pl-lex-rule. 2pl-dat-lex-rule := dat-opt-lex-rule & 2arg-2pl-lex-rule. 3pl-dat-lex-rule := dat-opt-lex-rule & 2arg-3pl-m-lex-rule. 1sg-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-1sg-lex-rule. 2sg-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-2sg-lex-rule. 3sg-m-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-3sg-m-lex-rule. 3sg-f-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-3sg-f-lex-rule. 1pl-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-1pl-lex-rule. 2pl-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-2pl-lex-rule. 3pl-inf-dat-lex-rule := inf-dat-opt-lex-rule & 2arg-3pl-m-lex-rule. 1sg-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-1sg-lex-rule. 2sg-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-2sg-lex-rule. 3sg-m-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-3sg-m-lex-rule. 3sg-f-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-3sg-f-lex-rule. 1pl-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-1pl-lex-rule. 2pl-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-2pl-lex-rule. 3pl-dat-acc-lex-rule := dat-acc-opt-lex-rule & 1arg-3pl-m-lex-rule. inv-lex-rule := const-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CONT.HOOK.INDEX [ COG-ST in-foc, SPECI + ], SYNSEM.LOCAL.CAT [ HEAD verb & [ INV + ], VAL [ COMPS < #subj >, SPR #spr, SUBJ < > ], MC #mc, HC-LIGHT #hcl, POSTHEAD #posthead ], DTR.SYNSEM.LOCAL.CAT [ HEAD verb, VAL [ COMPS < >, SPR #spr, SUBJ < #subj > ], MC #mc, HC-LIGHT #hcl, POSTHEAD #posthead ]]. adj-lex-rule := infl-ltow-rule & [ DTR.SYNSEM.LOCAL.CAT.HEAD adj ]. m-sg-adj-lex-rule := adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND male ]] > ]. f-sg-adj-lex-rule := adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND female ]] > ]. m-pl-adj-lex-rule := adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND male ]] > ]. f-pl-adj-lex-rule := adj-lex-rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND female ]] > ]. ;this is not in either irules or lrules so ? reg-verb-lex-rule := infl-ltow-rule & [ DTR [ SYNSEM.LOCAL.CAT.HEAD verb, ALTS.VERB-CLASS regular ] ] . ;imp-verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.FORM imp ]. imp-verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SF comm ]. ;this is not in either irules or lrules so ? ;base-verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT.HEAD.FORM base ]. base-verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL [ CAT.HEAD.FORM base, CONT.HOOK.INDEX.SF prop-or-ques ] ]. inf-verb-lex-rule := infl-ltow-rule & [ SYNSEM.LOCAL.CAT [ HEAD.FORM inf]]. 1sg-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM sg ]] > ] . 2sg-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM sg ]] > ] . 3sg-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg ]] > ] . 1pl-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM non-sg ]] > ] . 2pl-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM non-sg ]] > ] . 3pl-verb-lex-rule := reg-verb-lex-rule & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg ]] > ] . are-verb-lex-rule := reg-verb-lex-rule & [ DTR.ALTS.VERB-CLASS are ]. non-are-verb-lex-rule := reg-verb-lex-rule & [ DTR.ALTS.VERB-CLASS non-are ]. ere-verb-lex-rule := reg-verb-lex-rule & [ DTR.ALTS.VERB-CLASS ere ]. ire-verb-lex-rule := reg-verb-lex-rule & [ DTR.ALTS.VERB-CLASS ire ]. 2sg-are-imp-verb-lex-rule := are-verb-lex-rule & imp-verb-lex-rule & 2sg-verb-lex-rule. 2sg-non-are-imp-verb-lex-rule := non-are-verb-lex-rule & imp-verb-lex-rule & 2sg-verb-lex-rule. ;3sg-are-imp-verb-lex-rule := are-verb-lex-rule & imp-verb-lex-rule & 3sg-verb-lex-rule. ;3sg-non-are-imp-verb-lex-rule := non-are-verb-lex-rule & imp-verb-lex-rule & 3sg-verb-lex-rule. 1pl-imp-verb-lex-rule := imp-verb-lex-rule & 1pl-verb-lex-rule. 2pl-are-imp-verb-lex-rule := are-verb-lex-rule & imp-verb-lex-rule & 2pl-verb-lex-rule. 2pl-ere-imp-verb-lex-rule := ere-verb-lex-rule & imp-verb-lex-rule & 2pl-verb-lex-rule. 2pl-ire-imp-verb-lex-rule := ire-verb-lex-rule & imp-verb-lex-rule & 2pl-verb-lex-rule. ;3pl-are-imp-verb-lex-rule := are-verb-lex-rule & imp-verb-lex-rule & 3pl-verb-lex-rule. ;3pl-non-are-imp-verb-lex-rule := non-are-verb-lex-rule & imp-verb-lex-rule & 3pl-verb-lex-rule. 1sg-base-verb-lex-rule := base-verb-lex-rule & 1sg-verb-lex-rule. 2sg-base-verb-lex-rule := base-verb-lex-rule & 2sg-verb-lex-rule. 3sg-are-base-verb-lex-rule := base-verb-lex-rule & 3sg-verb-lex-rule & are-verb-lex-rule. 3sg-non-are-base-verb-lex-rule := base-verb-lex-rule & 3sg-verb-lex-rule & non-are-verb-lex-rule. 1pl-base-verb-lex-rule := base-verb-lex-rule & 1pl-verb-lex-rule. 2pl-are-base-verb-lex-rule := base-verb-lex-rule & 2pl-verb-lex-rule & are-verb-lex-rule . 2pl-ere-base-verb-lex-rule := base-verb-lex-rule & 2pl-verb-lex-rule & ere-verb-lex-rule . 2pl-ire-base-verb-lex-rule := base-verb-lex-rule & 2pl-verb-lex-rule & ire-verb-lex-rule . 3pl-are-base-verb-lex-rule := base-verb-lex-rule & 3pl-verb-lex-rule & are-verb-lex-rule . 3pl-non-are-base-verb-lex-rule := base-verb-lex-rule & 3pl-verb-lex-rule & non-are-verb-lex-rule. are-inf-verb-lex-rule := inf-verb-lex-rule & are-verb-lex-rule . ere-inf-verb-lex-rule := inf-verb-lex-rule & ere-verb-lex-rule . ire-inf-verb-lex-rule := inf-verb-lex-rule & ire-verb-lex-rule . ;;; Pronouns 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 ;quantifier_rel := predsort. ;pronoun_q_rel := quantifier_rel. ;reg_or_proper_q_rel := quantifier_rel. ;proper_q_rel := reg_or_proper_q_rel. ;reg_quant_rel := reg_or_proper_q_rel. ; ;demonstrative_q_rel := reg_quant_rel. ;non+demonstrative_q_rel := reg_quant_rel. ;proximal+dem_q_rel := demonstrative_q_rel. ; close to speaker ;distal+dem_q_rel := demonstrative_q_rel. ; away from speaker ;;remote+dem_q_rel := distal+dem_q_rel. ; away from speaker and hearer ;;I'm taking out remote because the remote demonstrative is also being used as ;;a hearer demonstrative and is replacing the traditional hearer demonstrative ;hearer+dem_q_rel := distal+dem_q_rel. ; near hearer ;def_q_rel := non+demonstrative_q_rel. ; definite ;indef_q_rel := non+demonstrative_q_rel. ; indefinite pronoun-lex := noun-lex & [ SYNSEM [ LOCAL.CAT.VAL.SPR < [ OPT + ] >, LKEYS.KEYREL.PRED "_pronoun_n_rel" ] , SYNSEM.LOCAL.CAT.HEAD.NTYPE pronoun, SYNSEM.LOCAL.CONT.HOOK.INDEX [ COG-ST activ-or-more, SPECI + ]]. nom-pronoun-lex := pronoun-lex & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom ]. prep-pronoun-lex := pronoun-lex & [ SYNSEM.LOCAL.CAT.HEAD.CASE prep ]. ;;; Nouns noun :+ [ CASE case ]. noun-lex := basic-noun-lex & basic-one-arg & no-hcons-lex-item & [ SYNSEM.LOCAL [ CAT.VAL [ SPR < #spr & [ LOCAL [ CAT.HEAD det, CONT.HOOK.INDEX #xarg]] >, COMPS < >, SUBJ < >, SPEC < > ], CONT.HOOK.INDEX #xarg ], ARG-ST < #spr > ]. common-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT.HEAD.NTYPE common, CONT.HOOK.INDEX.PNG [ PER third ] ] ]. sg-male-lex := noun-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ GEND male, NUM sg ] ]. sg-female-lex := noun-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ GEND female, NUM sg ] ]. pl-male-lex := noun-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ GEND male, NUM non-sg ] ]. pl-female-lex := noun-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ GEND female, NUM non-sg ] ]. sg-male-common-noun-lex := common-noun-lex & sg-male-lex & [ SYNSEM.LOCAL.CAT.VAL.SPR < [ OPT - ] > ]. sg-male-opt-spr-common-noun-lex := common-noun-lex & sg-male-lex. pl-male-common-noun-lex := common-noun-lex & pl-male-lex. sg-female-common-noun-lex := common-noun-lex & sg-female-lex & [ SYNSEM.LOCAL.CAT.VAL.SPR < [ OPT - ] > ]. pl-female-common-noun-lex := common-noun-lex & pl-female-lex. sg-male-proper-noun-lex := proper-noun-lex & sg-male-lex. pl-male-proper-noun-lex := proper-noun-lex & pl-male-lex. sg-female-proper-noun-lex := proper-noun-lex & sg-female-lex. pl-female-proper-noun-lex := proper-noun-lex & pl-female-lex. sg-male-city-noun-lex := city-noun-lex & sg-male-lex. pl-male-city-noun-lex := city-noun-lex & pl-male-lex. sg-female-city-noun-lex := city-noun-lex & sg-female-lex. pl-female-city-noun-lex := city-noun-lex & pl-female-lex. proper-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT.HEAD.NTYPE proper, CONT.HOOK.INDEX.PNG [ PER third ] ] ]. city-noun-lex := noun-lex & [ SYNSEM.LOCAL [ CAT.HEAD.NTYPE proper ]]. ;;; Verbs verb-lex := basic-verb-lex & [ SYNSEM.LOCAL [ CAT [ VAL [ SPR < >, SPEC < >, SUBJ < #subj > ]], CONT.HOOK.XARG #xarg ], ARG-ST < #subj & [ LOCAL [ CAT [ HEAD noun & [ CASE nom], VAL [ SPR < >, COMPS < > ]], CONT.HOOK.INDEX #xarg ]], ... > ]. ;modal-verb-lex := verb-lex & trans-first-arg-raising-lex-item & modal-verb-lex := verb-lex & trans-first-arg-raising-lex-item-1 & [ SYNSEM [ LOCAL.CAT.VAL.COMPS < #comps > ], ARG-ST < [ ], #comps & [ LOCAL [ CAT [ HEAD verb & [FORM inf], VAL [ SUBJ < [] >, COMPS < > ]]]] > ]. ;modal2-verb-lex := verb-lex & trans-first-arg-raising-lex-item & modal2-verb-lex := verb-lex & trans-first-arg-raising-lex-item-1 & [ SYNSEM [ LOCAL.CAT.VAL.COMPS < #comps , #vcomps >, LKEYS.KEYREL.ARG1 #arg], ARG-ST < [ ], #comps & [ LOCAL [ CAT [ HEAD verb & [FORM inf], VAL [ SUBJ <[]>, COMPS #vcomps & ulist ]], CONT.HOOK.LTOP #arg ]] > ]. 2verb-acc-opt-lex-rule := infl-val-change-only-ltol-rule & [ INFLECTED +, SYNSEM.LOCAL.CAT.VAL [ COMPS < #inf >, SPR #spr, SUBJ #subj ], DTR.SYNSEM.LOCAL.CAT.VAL [ COMPS < #inf & [LOCAL.CAT.HEAD.FORM inf], [] >, SPR #spr, SUBJ #subj ]]. embedded-verb-lex := verb-lex & clausal-second-arg-trans-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ ], #comps & [ LOCAL [ CAT [ VAL.COMPS < >, HEAD comp ], CONT.HOOK.INDEX.SF prop-or-ques]] > ]. decl-embedded-verb-lex := embedded-verb-lex & [ ARG-ST < [ ], [ LOCAL.CONT.HOOK.INDEX.SF prop] > ]. int-embedded-verb-lex := embedded-verb-lex & [ ARG-ST < [ ], [ LOCAL.CONT.HOOK.INDEX.SF ques] > ]. copula-verb-lex := verb-lex & clausal-second-arg-trans-lex-item & [ SYNSEM.LOCAL.CAT.VAL [ SUBJ < #subj >, COMPS < #comps >], ARG-ST < #subj & [ LOCAL.CONT.HOOK.INDEX #arg], #comps & [ LOCAL.CAT [ VAL.COMPS < >, HEAD adj & [ MOD < [ LOCAL.CONT.HOOK.INDEX #arg ] > ]]]>]. regular-verb-lex := verb-lex & [INFLECTED -]. are-verb-lex := regular-verb-lex & [ ALTS.VERB-CLASS are ]. non-are-verb-lex := regular-verb-lex & [ ALTS.VERB-CLASS non-are ]. ere-verb-lex := regular-verb-lex & [ ALTS.VERB-CLASS ere ]. ire-verb-lex := regular-verb-lex & [ ALTS.VERB-CLASS ire ]. irreg-verb-lex := verb-lex & [ ALTS.VERB-CLASS irregular ]. base-irreg-verb-lex := irreg-verb-lex & [ SYNSEM.LOCAL.CAT.HEAD.FORM base ]. 1sg-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM sg ] ] > ] . 2sg-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM sg ] ] > ] . 3sg-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM sg ] ] > ] . 1pl-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER first, NUM non-sg ] ] > ] . 2pl-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER second, NUM non-sg ] ] > ] . 3pl-irreg-verb-lex := base-irreg-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.CONT.HOOK.INDEX.PNG [ PER third, NUM non-sg ] ] > ] . intrans-verb-lex := verb-lex & intransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < > ]. ;;; ERB 2007-05-19 Adding two subtypes, one for opt-comp and one ;;; for obl-comp. For simplicity, taking mangiare as the only ;;; example of opt-comp for now, and keeping trans-verb-lex as ;;; the name for obl-comp. trans-verb-lex-super := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [ CASE acc ]]] > ]. trans-verb-lex := trans-verb-lex-super & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ OPT - ] > ]. ini-comp-trans-verb-lex := trans-verb-lex-super & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ OPT-CS type-id ] > ]. def-trans-verb-lex := trans-verb-lex & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [OPT-CS activ-or-more] > ]. prep-verb-lex := verb-lex & transitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < [ ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD adp]] > ]. ditrans-verb-lex := verb-lex & ditransitive-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps, #comp2 >, ARG-ST < [ ], #comps & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD noun & [ CASE acc ]]], #comp2 & [ LOCAL.CAT [ VAL [ SPR < >, COMPS < > ], HEAD adp ]] > ]. are-intrans-verb-lex := are-verb-lex & intrans-verb-lex. ere-intrans-verb-lex := ere-verb-lex & intrans-verb-lex. ire-intrans-verb-lex := ire-verb-lex & intrans-verb-lex. 1sg-irreg-intrans-verb-lex := 1sg-irreg-verb-lex & intrans-verb-lex. 1pl-irreg-intrans-verb-lex := 1pl-irreg-verb-lex & intrans-verb-lex. 2sg-irreg-intrans-verb-lex := 2sg-irreg-verb-lex & intrans-verb-lex. 2pl-irreg-intrans-verb-lex := 2pl-irreg-verb-lex & intrans-verb-lex. 3sg-irreg-intrans-verb-lex := 3sg-irreg-verb-lex & intrans-verb-lex. 3pl-irreg-intrans-verb-lex := 3pl-irreg-verb-lex & intrans-verb-lex. are-trans-verb-lex := are-verb-lex & trans-verb-lex. ;;; ERB 2007-05-17 For mangiare are-ini-comp-trans-verb-lex := are-verb-lex & ini-comp-trans-verb-lex. ere-trans-verb-lex := ere-verb-lex & trans-verb-lex. ;;; ERB 2007-05-17 For bevere ere-ini-comp-trans-verb-lex := ere-verb-lex & ini-comp-trans-verb-lex. ire-trans-verb-lex := ire-verb-lex & trans-verb-lex. are-def-trans-verb-lex := are-verb-lex & def-trans-verb-lex. ere-def-trans-verb-lex := ere-verb-lex & def-trans-verb-lex. ire-def-trans-verb-lex := ire-verb-lex & def-trans-verb-lex. 1sg-irreg-trans-verb-lex := 1sg-irreg-verb-lex & trans-verb-lex. 2sg-irreg-trans-verb-lex := 2sg-irreg-verb-lex & trans-verb-lex. 3sg-irreg-trans-verb-lex := 3sg-irreg-verb-lex & trans-verb-lex. 1pl-irreg-trans-verb-lex := 1pl-irreg-verb-lex & trans-verb-lex. 2pl-irreg-trans-verb-lex := 2pl-irreg-verb-lex & trans-verb-lex. 3pl-irreg-trans-verb-lex := 3pl-irreg-verb-lex & trans-verb-lex. 1sg-irreg-def-trans-verb-lex := 1sg-irreg-verb-lex & def-trans-verb-lex. 2sg-irreg-def-trans-verb-lex := 2sg-irreg-verb-lex & def-trans-verb-lex. 3sg-irreg-def-trans-verb-lex := 3sg-irreg-verb-lex & def-trans-verb-lex. 1pl-irreg-def-trans-verb-lex := 1pl-irreg-verb-lex & def-trans-verb-lex. 2pl-irreg-def-trans-verb-lex := 2pl-irreg-verb-lex & def-trans-verb-lex. 3pl-irreg-def-trans-verb-lex := 3pl-irreg-verb-lex & def-trans-verb-lex. are-prep-verb-lex := are-verb-lex & prep-verb-lex. ere-prep-verb-lex := ere-verb-lex & prep-verb-lex. ire-prep-verb-lex := ire-verb-lex & prep-verb-lex. 1sg-irreg-prep-verb-lex := 1sg-irreg-verb-lex & prep-verb-lex. 2sg-irreg-prep-verb-lex := 2sg-irreg-verb-lex & prep-verb-lex. 3sg-irreg-prep-verb-lex := 3sg-irreg-verb-lex & prep-verb-lex. 1pl-irreg-prep-verb-lex := 1pl-irreg-verb-lex & prep-verb-lex. 2pl-irreg-prep-verb-lex := 2pl-irreg-verb-lex & prep-verb-lex. 3pl-irreg-prep-verb-lex := 3pl-irreg-verb-lex & prep-verb-lex. are-ditrans-verb-lex := are-verb-lex & ditrans-verb-lex. ere-ditrans-verb-lex := ere-verb-lex & ditrans-verb-lex. ire-ditrans-verb-lex := ire-verb-lex & ditrans-verb-lex. 1sg-irreg-ditrans-verb-lex := 1sg-irreg-verb-lex & ditrans-verb-lex. 2sg-irreg-ditrans-verb-lex := 2sg-irreg-verb-lex & ditrans-verb-lex. 3sg-irreg-ditrans-verb-lex := 3sg-irreg-verb-lex & ditrans-verb-lex. 1pl-irreg-ditrans-verb-lex := 1pl-irreg-verb-lex & ditrans-verb-lex. 2pl-irreg-ditrans-verb-lex := 2pl-irreg-verb-lex & ditrans-verb-lex. 3pl-irreg-ditrans-verb-lex := 3pl-irreg-verb-lex & ditrans-verb-lex. 1sg-irreg-copula-verb-lex := 1sg-irreg-verb-lex & copula-verb-lex. 2sg-irreg-copula-verb-lex := 2sg-irreg-verb-lex & copula-verb-lex. 3sg-irreg-copula-verb-lex := 3sg-irreg-verb-lex & copula-verb-lex. 1pl-irreg-copula-verb-lex := 1pl-irreg-verb-lex & copula-verb-lex. 2pl-irreg-copula-verb-lex := 2pl-irreg-verb-lex & copula-verb-lex. 3pl-irreg-copula-verb-lex := 3pl-irreg-verb-lex & copula-verb-lex. ere-modal-verb-lex := ere-verb-lex & modal-verb-lex. 1sg-irreg-modal-verb-lex := 1sg-irreg-verb-lex & modal-verb-lex. 2sg-irreg-modal-verb-lex := 2sg-irreg-verb-lex & modal-verb-lex. 3sg-irreg-modal-verb-lex := 3sg-irreg-verb-lex & modal-verb-lex. 1pl-irreg-modal-verb-lex := 1pl-irreg-verb-lex & modal-verb-lex. 2pl-irreg-modal-verb-lex := 2pl-irreg-verb-lex & modal-verb-lex. 3pl-irreg-modal-verb-lex := 3pl-irreg-verb-lex & modal-verb-lex. ere-modal2-verb-lex := ere-verb-lex & modal2-verb-lex. 1sg-irreg-modal2-verb-lex := 1sg-irreg-verb-lex & modal2-verb-lex. 2sg-irreg-modal2-verb-lex := 2sg-irreg-verb-lex & modal2-verb-lex. 3sg-irreg-modal2-verb-lex := 3sg-irreg-verb-lex & modal2-verb-lex. 1pl-irreg-modal2-verb-lex := 1pl-irreg-verb-lex & modal2-verb-lex. 2pl-irreg-modal2-verb-lex := 2pl-irreg-verb-lex & modal2-verb-lex. 3pl-irreg-modal2-verb-lex := 3pl-irreg-verb-lex & modal2-verb-lex. are-int-embedded-verb-lex := are-verb-lex & int-embedded-verb-lex. ere-decl-embedded-verb-lex := ere-verb-lex & decl-embedded-verb-lex. 1sg-irreg-embedded-verb-lex := 1sg-irreg-verb-lex & embedded-verb-lex. ;;; Determiners ;;; SPEC is non-empty, and already specified by basic-determiner-lex. determiner-lex-supertype := norm-hook-lex-item & basic-zero-arg & [ SYNSEM [ LOCAL [ CAT [ HEAD det, VAL[ SPEC.FIRST.LOCAL.CONT.HOOK [ INDEX #ind, LTOP #larg ], SPR < >, SUBJ < >, COMPS < >]], CONT.HCONS < ! qeq & [ HARG #harg, LARG #larg ] ! > ], LKEYS.KEYREL quant-relation & [ ARG0 #ind, RSTR #harg ] ] ]. ;non-dem dets have exactly one thing on their RELS list and that thing is a quant-relation non-dem-det-lex := determiner-lex-supertype & [ SYNSEM.LOCAL.CONT.RELS ]. dem-det-lex := determiner-lex-supertype & [ SYNSEM [ LOCAL [ CAT.VAL.SPEC < [ LOCAL.CONT.HOOK [ INDEX #index & [ COG-ST activ+fam ], LTOP #lbl ]] >, CONT.RELS ], LKEYS [ ALTKEYREL arg1-ev-relation & #adj-relation & [ LBL #lbl ]]]]. non-dem-m-sg-det-lex := non-dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND male ]]. non-dem-f-sg-det-lex := non-dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND female ]]. non-dem-m-pl-det-lex := non-dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND male ]]. non-dem-f-pl-det-lex := non-dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND female ]]. dem-m-sg-det-lex := dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND male ]]. dem-f-sg-det-lex := dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM sg, GEND female ]]. dem-m-pl-det-lex := dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND male ]]. dem-f-pl-det-lex := dem-det-lex & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ NUM non-sg, GEND female ]]. ;;; Adjectives ;;; ERB 2007-05-17 Changed supertype here. The old ones ;;; ("basic-adjective-lex & intersective-mod-lex &") were lacking the ;;; connection between KEYREL and the RELS list, leading to ;;; massively slow generation. ;;; ERB 2007-05-17 Guessing for now a that most if not all Italian ;;; adjectives are post-head. adjective-lex := basic-int-mod-adj-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD noun, VAL.SPR < [], ... > ]]>, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ], POSTHEAD + ]]. stem-adj-lex := adjective-lex & [INFLECTED -]. infl-adj-lex := adjective-lex & [INFLECTED +]. ;;; Adverbs adverb-lex := basic-adverb-lex & intersective-mod-lex & [ SYNSEM.LOCAL.CAT [ HEAD.MOD < [ LOCAL.CAT [ HEAD verb, VAL.COMPS < > ]]>, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ]]]. ; ERB 2007-05-17 This looks like an attempt to force VP ; attachment, it's better to use the MOD value on the adv. ; themselves. ;head-adv-int-phrase := head-adj-int-phrase & ;[ NON-HEAD-DTR.SYNSEM.LOCAL.CAT.HEAD adv , ; HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ 1-list, ; HEAD-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS <> ]. ;;; Negative adverb neg-adv-lex := basic-scopal-adverb-lex & [ SYNSEM.LOCAL.CAT [ POSTHEAD -, VAL [ SPR < >, COMPS < >, SUBJ < > ], HEAD.MOD < [ LOCAL.CAT [ HEAD verb, VAL [ SUBJ cons, COMPS null ]]] > ]]. ;;; Misc prep-lex-item := basic-one-arg & no-mod-lex & raise-sem-lex-item & [ SYNSEM.LOCAL [ CAT [ HEAD adp, VAL[ COMPS < #comps >, SPR < >, SUBJ < > ]]], ARG-ST < #comps & [ LOCAL [ CAT [ HEAD noun & [CASE prep], VAL [ COMPS < >, SPR < >, SUBJ < > ]]] ] > ]. complementizer-lex-item := raise-sem-lex-item & basic-one-arg & [ SYNSEM.LOCAL.CAT [ HEAD comp & [ MOD < > ], VAL [ SPR < >, SUBJ < >, COMPS < #comp > ] ], ARG-ST < #comp & [ LOCAL.CAT [ HEAD verb, VAL [ SUBJ < >, COMPS < > ] ] ] > ] . decl-comp-lex-item := complementizer-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < #comps & [ LOCAL.CONT.HOOK.INDEX.SF prop] > ]. int-comp-lex-item := complementizer-lex-item & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comps >, ARG-ST < #comps & [ LOCAL.CONT.HOOK.INDEX.SF ques] > ]. ;;; Coordination n1-top-coord-rule := basic-n-top-coord-rule & monopoly-top-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. n1-mid-coord-rule := basic-n-mid-coord-rule & monopoly-mid-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. n1-bottom-coord-rule := conj-first-bottom-coord-rule & n-bottom-coord-phrase & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. np1-top-coord-rule := basic-np-top-coord-rule & monopoly-top-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. np1-mid-coord-rule := basic-np-mid-coord-rule & monopoly-mid-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. np1-bottom-coord-rule := conj-first-bottom-coord-rule & np-bottom-coord-phrase & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. ;vp1-top-coord-rule := basic-vp-top-coord-rule & monopoly-top-coord-rule & ; [ SYNSEM.LOCAL.COORD-STRAT "1" ]. ;vp1-mid-coord-rule := basic-vp-mid-coord-rule & monopoly-mid-coord-rule & ; [ SYNSEM.LOCAL.COORD-STRAT "1" ]. ;vp1-bottom-coord-rule := conj-first-bottom-coord-rule & vp-bottom-coord-phrase & ; [ SYNSEM.LOCAL.COORD-STRAT "1" ]. ;msg-cord-rule := coord-phrase & ; [ LCOORD-DTR.SYNSEM.LOCAL.CONT.MSG #msg & message, ; RCOORD-DTR.SYNSEM.LOCAL.CONT.MSG #msg]. ;s1-top-coord-rule := basic-s-top-coord-rule & monopoly-top-coord-rule & msg-cord-rule & ; [ SYNSEM.LOCAL [ COORD-STRAT "1", ; CONT.MSG no-msg]]. ;s1-mid-coord-rule := basic-s-mid-coord-rule & monopoly-mid-coord-rule & msg-cord-rule & ; [ SYNSEM.LOCAL.COORD-STRAT "1" ]. ;s1-bottom-coord-rule := conj-first-bottom-coord-rule & s-bottom-coord-phrase & msg-cord-rule & ; [ SYNSEM.LOCAL.COORD-STRAT "1" ]. s1-top-coord-rule := basic-s-top-coord-rule & monopoly-top-coord-rule [ SYNSEM.LOCAL.COORD-STRAT "1" ]. s1-mid-coord-rule := basic-s-mid-coord-rule & monopoly-mid-coord-rule & [ SYNSEM.LOCAL.COORD-STRAT "1" ]. s1-bottom-coord-rule := conj-first-bottom-coord-rule & s-bottom-coord-phrase & [ SYNSEM.LOCAL.COORD-STRAT "1" ].