;;; -*- Mode: tdl; Coding: utf-8; -*-
;;;
;;; Copyright (c) 1994-2013
;;; Dan Flickinger, Rob Malouf, Emily M. Bender
;;; see LICENSE for conditions
;;;
;;; auxverbs.tdl
;;;
;;; The auxiliary verb system for English
;;;
;;; Created: Rob Malouf, 17-Nov-1994
;;;
;;; $Id: auxverbs.tdl 18357 2014-06-20 06:59:53Z danf $
will_aux_synsem := bse_aux_verb_ssr &
[ LOCAL [ CAT [ HEAD [ VFORM fin,
PRD -,
TAM indic_tam ],
VAL [ SUBJ < synsem &
[ LOCAL [ CAT nomp_cat_nom_min,
CONJ cnil ],
OPT - ] >,
COMPS.FIRST.--SIND #event ] ],
CONT psoa & [ HOOK.INDEX #event ] ] ].
will_aux_word := bse_aux_verb_word &
[ SYNSEM will_aux_synsem ].
will_aux_pos_synsem := will_aux_synsem &
[ LOCAL [ CAT.VAL.COMPS < canonical_synsem &
[ LOCAL.CONT.HOOK.LTOP #hand ] >,
CONT [ HOOK.LTOP #hand,
RELS ,
HCONS ] ],
LKEYS.KEYREL.LBL #hand ].
will_aux_pos_lex_e := will_aux_word &
[ SYNSEM will_aux_pos_synsem ].
will_aux_inv_synsem := basic_two_arg & basic_verb_synsem &
[ LOCAL [ CAT [ HEAD [ AUX -,
VFORM fin,
TAM #tam,
MINORS.MIN v_event_rel ],
VAL [ SUBJ < canonical_synsem &
[ --MIN independent_rel,
LOCAL [ CAT basic_prd_cat &
[ HEAD v_or_a_or_p &
[ MOD < anti_synsem &
[ --SIND #sind ] > ],
VAL.SUBJ *olist* ],
CONT.HOOK
[ INDEX event & #event,
XARG #sind & individual_min ] ],
OPT - ] >,
COMPS < canonical_synsem &
[ LOCAL [ CAT vp_bse_unspec_cat &
[ VAL.SUBJ
< [ LOCAL.CAT basic_prd_cat ]>],
CONJ cnil,
CONT.HOOK.LTOP #hand ],
OPT -,
--SIND #xarg ] > ] ],
CONT [ HOOK [ LTOP #hand,
INDEX #event & [ E #tam ],
XARG #xarg ],
RELS ,
HCONS ] ] ].
; inverted `will': "also included will be cats"
v_vp_will-inv_le := aux_verb_word_super &
[ SYNSEM will_aux_inv_synsem ].
will_aux_pos_norm_synsem := will_aux_pos_synsem &
[ LOCAL.CAT [ HEAD.TAM [ TENSE future,
MOOD indicative ],
VAL.COMPS < [ LOCAL.CAT vp_bse_unspec_cat &
[ HEAD.TAM.MOOD indicative ] ] > ] ].
;
; Cmps VP(bse), aux, pos
; B will sing.
;
;
;
v_vp_will-p_le := will_aux_pos_lex_e &
[ SYNSEM will_aux_pos_norm_synsem ].
;
; Cmps VP(bse), aux, pos contract
; B'll sing.
;
;
;
v_vp_will-p-cx_le := will_aux_pos_lex_e & contracted_aux_word &
[ SYNSEM will_aux_pos_norm_synsem ].
will_aux_neg_synsem := will_aux_synsem &
[ LOCAL [ CAT [ HEAD.TAM [ TENSE future,
MOOD indicative ],
VAL.COMPS.FIRST.LOCAL [ CAT vp_bse_unspec_cat &
[ HEAD.TAM.MOOD indicative ],
CONT.HOOK.LTOP #chand ] ],
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.ALT2KEYREL #alt2keyrel ].
va_will_neg_lexent := will_aux_word &
[ SYNSEM will_aux_neg_synsem ].
;
; Cmps VP(bse), aux, neg contract
; B won't sing.
;
;
;
v_vp_will-n_le := va_will_neg_lexent &
[ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST canonical_synsem ].
;
; Cmps VP(bse), aux, neg c, no inv, no overt complement
; B'll not.
;
;
;
v_vp_will-n-niv_le := va_will_neg_lexent & aux_not_contr.
;;; Modal verbs
;
; Cmps VP(bse), modal, pos
; B can sing.
;
;
;
v_vp_mdl-p_le := modal_pos_indic_lexent &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present ].
;
; Cmps VP(bse), must, pos
; B must sing.
;
;
;
v_vp_must-p_le := modal_pos_indic_lexent &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present,
ALTS.ADVADD - ].
;
; Cmps VP(bse), aux, pos contract
; B'd sing.
;
;
;
v_vp_mdl-p-cx_le := modal_pos_indic_lexent & contracted_aux_word &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present ].
; could
;
; Cmps VP(bse), modal, pos, past
; B could sing yesterday.
;
;
;
v_vp_mdl-p-pst_le := modal_pos_lex_ent &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE past,
ALTS.CSAI - ].
; would - unsp for MOOD
;
; Cmps VP(bse), modal, pos,unsp md
; B could sing tomorrow.
;
;
;
v_vp_mdl-p-unsp_le := modal_pos_lex_ent &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present,
ALTS.CSAI - ].
;
; Cmps VP(bse), modal, pos, no inv
; B better go.
;
;
;
v_vp_mdl-p-niv_le := modal_pos_indic_lexent &
[ SYNSEM.LOCAL.CAT.HEAD [ TAM.TENSE present,
INV - ] ].
;
; Cmps VP(bse), modal, pos, sbjctv
; B might sing.
;
;
;
v_vp_mdl-p-sv_le := modal_pos_lex_ent &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present ].
;
; Cmps VP(inf), modal, pos
; B ought to sing.
;
;
;
v_vp_oght-p_le := pos_ought_verb_word & add_cont &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present ].
;
; Cmps VP(inf), modal, pos, past
; B used to sing.
;
;
;
v_vp_oght-p-pst_le := past_ought_verb_word & add_cont &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE past ].
;
; Cmps VP(inf), quasi-modal
; B is going to sing.
;
;
;
v_vp_qsmd_le := quasimodal_word &
[ SYNSEM.LOCAL.CAT.HEAD [ VFORM prp,
PRD + ] ].
;
; Cmps VP(inf), quasi-modal, psp
; B has got to sing.
;
;
;
v_vp_qsmd-psp_le := quasimodal_psp_word.
;
; Cmps VP(bse), quasi-modal, psp
; B has gotta sing.
;
;
;
v_vp_qsmd-psp-bse_le := quasimodal_psp_bse_word.
;
; Cmps VP(bse), quasi-modal
; B is gonna sing.
;
;
;
v_vp_qsmd-bse_le := quasimodal_bse_word &
[ SYNSEM.LOCAL.CAT.HEAD [ VFORM prp,
PRD + ] ].
; 'didn't he used to sing?'
;
; Cmps VP(inf), s-s-rais, nonfin
; Didn't C used to sing?
;
;
;
v_vp_nfin-mod_le := nonfin_modal_word.
generic_modal_neg_basic_synsem := aux_verb_ssr &
[ LOCAL [ CONT [ RELS ,
HCONS ] ],
LKEYS [ KEYREL #keyrel &
[ PRED modal_rel,
ARG0 non_conj_event,
ARG1 #arghand ],
ALT2KEYREL #alt2keyrel ] ].
generic_modal_neg_basic := aux_verb_word_super &
[ SYNSEM generic_modal_neg_basic_synsem,
ALTS.CSAI - ].
generic_modal_neg_super_synsem := generic_modal_neg_basic_synsem &
[ LOCAL [ CAT.VAL.KCMP.LOCAL.CONT.HOOK.LTOP #chand,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL.LBL #khand ].
generic_modal_neg_super := generic_modal_neg_basic &
[ SYNSEM generic_modal_neg_super_synsem ].
must_modal_neg_synsem := generic_modal_neg_basic_synsem &
[ LOCAL [ CAT.VAL.KCMP.LOCAL.CONT.HOOK.LTOP #chand,
CONT [ HOOK.LTOP #khand,
RELS ,
HCONS ] ],
LKEYS.KEYREL.LBL #khand ].
must_modal_neg := generic_modal_neg_basic &
[ SYNSEM must_modal_neg_synsem ].
generic_modal_neg := generic_modal_neg_super & aux_verb_word &
[ SYNSEM.LOCAL.CAT.POSTHD + ].
modal_neg_synsem := modal_verb_synsem & generic_modal_neg_super_synsem.
va_modal_neg_lexent := modal_verb_word & generic_modal_neg &
[ SYNSEM modal_neg_synsem &
[ LKEYS.KEYREL.PRED modal_rel ] ].
must_neg_synsem := generic_modal_verb_super_synsem & must_modal_neg_synsem &
bse_aux_verb_ssr &
[ LOCAL [ CAT [ HEAD [ PRD -,
VFORM fin ],
POSTHD +,
VAL [ SUBJ < synsem & [ LOCAL [ CAT nomp_cat_nom_min,
CONJ cnil ],
--SIND basic_non_event,
OPT - ] >,
COMPS.FIRST [ LOCAL.CAT vp_bse_cat,
--SIND.SF basic-prop ] ] ],
CONT psoa ],
LKEYS.KEYREL.PRED modal_rel ].
va_must_neg_lexent := generic_modal_verb_word_super & must_modal_neg &
bse_aux_verb_word &
[ SYNSEM must_neg_synsem ].
;
; Cmps VP(bse), modal, neg-cntrct
; B can't sing.
;
;
;
v_vp_mdl-n_le := va_modal_neg_lexent &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM.TENSE present,
VAL.COMPS.FIRST canonical_synsem ] ].
;
; Cmps VP(bse), modal must, neg-cntrct (idiosyncratic scope)
; B mustn't sing.
;
;
;
v_vp_must-n_le := va_must_neg_lexent &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM.TENSE present,
VAL.COMPS.FIRST canonical_synsem ] ].
; couldn't
;
; Cmps VP(bse), modal, neg-c, past
; B couldn't sing.
;
;
;
v_vp_mdl-n-pst_le := va_modal_neg_lexent &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM.TENSE past,
VAL.COMPS.FIRST canonical_synsem ] ].
; "'d better not"
;
; Cmps VP(bse), modal,neg-c,no inv, no overt comp
; B'd better not.
;
;
;
v_vp_mdl-n-niv_le := va_modal_neg_lexent & aux_not_contr &
[ SYNSEM.LOCAL.CAT.HEAD.TAM.TENSE present ].
modal_neg_verb_synsem := modal_verb_synsem & generic_modal_neg_super_synsem.
;
; Cmps VP(bse), modal, neg-c
; B shouldn't sing.
;
;
;
v_vp_mdl-n-sv_le := modal_verb_word & generic_modal_neg &
[ SYNSEM.LOCAL.CAT [ HEAD [ TAM.TENSE present ],
VAL.COMPS.FIRST canonical_synsem ] ].
ought_verb_neg_synsem := ought_verb_synsem & generic_modal_neg_super_synsem.
;
; Cmps VP(inf), modal, neg-c
; B oughtn't to sing.
;
;
;
v_vp_oght-n_le := ought_verb_word & generic_modal_neg_super &
[ SYNSEM.LOCAL.CAT.HEAD [ TAM.TENSE present ] ].
; *** Auxiliary DO ***
; For tag questions we need the MIN of auxiliary _do_ to match all main verbs.
; The supertype for this is v_event_rel. Originally, it had been no_rel, to
; block _do_'s being a complement of other auxiliaries. On the hypothesis
; that auxiliary _do_ in fact lacks a non-finite form all together, the
; do_aux_word type is constrained to VFORM fin.
do_aux_synsem := ssr_two_arg_verb &
[ LOCAL [ CAT [ HEAD [ AUX +,
TAM [ TENSE #tense,
ASPECT #aspect,
MOOD indicative ],
MINORS.MIN nonaux_event_rel ],
VAL [ SUBJ < synsem &
[ OPT -,
LOCAL [ CAT nomp_cat_nom_min &
[ HEAD.MINORS #minors ],
CONJ cnil ] ] >,
COMPS < canonical_synsem &
[ --MIN nonaux_event_rel,
LOCAL [ CAT vp_bse_unspec_cat &
[ HEAD.AUX -,
VAL.SUBJ.FIRST.LOCAL.CAT.HEAD
[ MINORS #minors ] ],
CONT.HOOK [ LTOP #cltop,
INDEX #index ],
CONJ cnil ],
--SIND #index,
OPT - ] > ],
POSTHD + ],
CONT psoa & [ HOOK.INDEX #index &
[ E [ TENSE #tense,
ASPECT #aspect,
MOOD indicative ] ] ] ],
LKEYS.KEYREL [ LBL #cltop,
PRED mod_role_rel,
ARG0 #index ] ].
do_aux_word := nonc-hm &
[ INFLECTD +,
SYNSEM do_aux_synsem,
ALTS.CSAI - ].
; Removed raise-cont from parents, to allow ARG0 to not be identified with the
; comp-dtr's ARG0 - is in conflict with collapsing of base and fin-non3rdsg
; forms, given that we encode VIT attributes in the event feature structure.
; Sample problem: "Kim does sleep"
; DPF 6-Feb-02 - Changed MOOD indicative to indicative* in order to support
; coordination of e.g. yes-no questions and modal_subj declaratives. Same in
; type do_aux_neg_pres.
; DPF 13-Mar-02 - But this allowed "want" version of "like" to be complement.
; So instead make do_aux_word stamp indicative* for its own MOOD, and not
; copy it up from complement dtr. Then require complement dtr to be simply
; MOOD indicative. And by the way broke link from "do" to bse_aux_verb_word
; which insists on making the aux verb's TAM identical to its INDEX, which we
; can't have for "do".
do_fin_synsem := do_aux_synsem &
[ LOCAL local &
[ CAT [ HEAD [ VFORM fin,
PRD - ],
VAL [ SUBJ < [ OPT -,
LOCAL.CONT.HOOK.LTOP #hand ] >,
COMPS.FIRST.LOCAL.CONT.HOOK.LTOP #hand ] ],
CONT [ HOOK.LTOP #hand,
RELS ,
HCONS ] ] ].
do_fin := do_aux_word & raise_cont &
[ SYNSEM do_fin_synsem ].
do_aux_neg_synsem := do_aux_synsem &
[ LOCAL [ CAT [ HEAD [ PRD -,
VFORM fin ],
VAL [ SUBJ.FIRST.LOCAL.CONT.HOOK.LTOP #chand,
COMPS.FIRST.LOCAL.CONT.HOOK.LTOP #chand ] ],
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.ALT2KEYREL #alt2keyrel ].
do_aux_neg_word := do_aux_word &
[ SYNSEM do_aux_neg_synsem ].
do_pres_synsem := do_fin_synsem &
[ LOCAL [ CAT [ HEAD.TAM indic_tam &
[ TENSE present,
ASPECT no_aspect ],
VAL.SUBJ < [ --SIND.PNG #png ] > ],
AGR.PNG #png ] ].
do_pres := do_fin &
[ SYNSEM do_pres_synsem ].
;
; Cmps VP(bse), do, pres 3sg
; B does not sing.
;
;
;
v_vp_does_le := do_pres &
[ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ --SIND.PNG png & [ PN 3s ] ] > ].
;
; Cmps VP(bse), do, pres non3sg
; We do not sing.
;
;
;
v_vp_do-f_le := do_pres &
[ SYNSEM.LOCAL.CAT.VAL.SUBJ
< [ --SIND.PNG png & [ PN -3s ] ] > ].
;
; Cmps VP(bse), do, past
; B did not sing.
;
;
;
v_vp_did_le := do_fin &
[ SYNSEM.LOCAL.CAT.HEAD [ TAM past_or_subj_tam ] ].
do_aux_neg_pres := do_aux_neg_word &
[ SYNSEM.LOCAL.CAT.HEAD.TAM indic_tam &
[ TENSE present,
ASPECT no_aspect ] ].
;
; Cmps VP(bse), do, neg-c, past
; B didn't sing.
;
;
;
v_vp_did-n_le := do_aux_neg_word &
[ SYNSEM.LOCAL.CAT.HEAD.TAM past_or_subj_tam ].
; ERB (31-03-97) The agreement on do, but not have and be, was previously
; taken care of in lexicon.tdl. I am making these types to move that
; information here for symmetry. The rest of the do paradigm seems
; to be generated by lexical rules, so these two are the only types.
;
; Cmps VP(bse), do, neg-c, pres3sg
; B didn't sing.
;
;
;
v_vp_does-n_le := do_aux_neg_pres &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
;
; Cmps VP(bse), do, neg-c,pr n3sg
; We don't sing.
;
;
;
v_vp_do-f-n_le := do_aux_neg_pres &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -3s ] ].
; *** Perfect HAVE ***
basic_have_aux_verb_synsem := aux_verb_ssr &
[ LOCAL [ CAT.VAL.COMPS.FIRST.LOCAL.CONT.HOOK.INDEX #index,
CONT.HOOK [ LTOP #lbl,
INDEX #index ] ],
LKEYS.KEYREL [ PRED have_aux_rel,
LBL #lbl ] ].
have_aux_verb_synsem := basic_have_aux_verb_synsem & psp_aux_verb_ssr &
[ LOCAL.CAT.HEAD.TAM.ASPECT.PRF + ].
have_aux_word := psp_aux_verb_word &
[ SYNSEM have_aux_verb_synsem ].
have_aux_pos_synsem := have_aux_verb_synsem &
[ LOCAL [ CAT.VAL.COMPS < canonical_synsem &
[ LOCAL.CONT.HOOK.LTOP #hand ] >,
CONT [ HOOK.LTOP #hand,
RELS ,
HCONS ] ] ].
have_aux_pos_lex_entry := have_aux_word &
[ SYNSEM have_aux_pos_synsem ].
aux_not_contr := sign &
[ SYNSEM.LOCAL.CAT [ HEAD.INV -,
VAL.COMPS.FIRST unexpressed & [ OPT - ] ] ].
have_aux_neg_synsem := have_aux_verb_synsem &
[ LOCAL [ CAT [ HEAD [ VFORM fin,
PRD - ],
POSTHD +,
VAL [ SUBJ < [ OPT - ] >,
COMPS.FIRST.LOCAL.CONT.HOOK.LTOP #chand ] ],
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.ALT2KEYREL #alt2keyrel ].
have_aux_neg_lex_entry := have_aux_word &
[ SYNSEM have_aux_neg_synsem,
ALTS.CSAI - ].
have_fin_synsem := have_aux_verb_synsem &
[ LOCAL local &
[ CAT [ HEAD [ VFORM fin,
PRD - ],
POSTHD +,
VAL.SUBJ < synsem &
[ LOCAL [ CAT nomp_cat_nom_min,
CONJ cnil ],
OPT - ] > ],
CONT psoa ]].
have_fin := have_aux_word &
[ SYNSEM have_fin_synsem ].
have_pres := have_fin &
[ SYNSEM.LOCAL.CAT.HEAD.TAM indic_tam &
[ TENSE present,
ASPECT.PRF + ],
ALTS.CSAI - ].
have_past := have_fin &
[ SYNSEM.LOCAL.CAT.HEAD.TAM [ TENSE past,
ASPECT.PRF +,
MOOD indicative ],
ALTS.CSAI - ].
have_subj := have_fin &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM subjnct_tam &
[ ASPECT.PRF +,
MOOD subjunctive ],
VAL.COMPS.FIRST canonical_synsem ] ].
;; We make "having" be [PRD -] to block "Kim is having fallen" and (the
;; restrictive reading of) "The book having fallen is red". We will also
;; exclude possibly grammatical examples like "anyone having seen that movie"
;; but there are no attested instances of these in the full BNC.
;; DPF 29-oct-06 - Remove this PRD - constraint, since it also blocks
;; depictives as in "We left, having finished." Instead, block "is having"
;; by adding NORM no_rel. Maybe FIX?
;
; Cmps VP(psp), have, prp
; Having sung, B left.
;
;
;
v_vp_have-prp_le := have_aux_pos_lex_entry &
[ SYNSEM.LOCAL.CAT.HEAD [ VFORM prp,
TAM.ASPECT.PROGR +,
MINORS.NORM no_rel ] ].
va_have_bse_lexent := have_aux_pos_lex_entry &
[ SYNSEM.LOCAL [ CAT [ HEAD [ PRD -,
VFORM bse_only,
TAM.ASPECT.PRF + ],
VAL.SUBJ < unexpressed >,
POSTHD + ],
CONT psoa ] ].
;
; Cmps VP(psp), have, bse
; B will have sung.
;
;
;
v_vp_have-bse_le := va_have_bse_lexent.
;
; Cmps VP(psp), have, bse, contr
; We would've sung.
;
;
;
v_vp_have-bse-cx_le := va_have_bse_lexent & contracted_aux_word.
has_aux_lex_ent := have_aux_pos_lex_entry & have_pres &
[ SYNSEM.LOCAL.CAT.VAL.SUBJ < synsem &
[ LOCAL.AGR.PNG png & [ PN 3s ] ] > ].
;
; Cmps VP(psp), have, 3sg
; B has sung.
;
;
;
v_vp_has_le := has_aux_lex_ent.
;
; Cmps VP(psp), have, 3sg, contr
; B's sung.
;
;
;
v_vp_has-cx_le := has_aux_lex_ent & contracted_aux_word.
have_fin_aux_lex_ent := have_aux_pos_lex_entry & have_pres &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -3s ] ].
;
; Cmps VP(psp), have, n3sg
; We have sung.
;
;
;
v_vp_have-f_le := have_fin_aux_lex_ent.
;
; Cmps VP(psp), have, n3sg, contr
; We've sung.
;
;
;
v_vp_have-f-cx_le := have_fin_aux_lex_ent & contracted_aux_word.
have_pos_fin_synsem := have_aux_pos_synsem & have_fin_synsem.
had_aux_lex_ent := have_aux_pos_lex_entry & have_past &
[ SYNSEM have_pos_fin_synsem ].
;
; Cmps VP(psp), have, subjtv
; If we had sung, B would've
;
;
;
v_vp_had-sv_le := have_aux_pos_lex_entry & have_subj &
[ SYNSEM have_pos_fin_synsem ].
;
; Cmps VP(psp), have, past
; B had sung.
;
;
;
v_vp_had_le := had_aux_lex_ent.
;
; Cmps VP(psp), have, past, contr
; B'd sung already.
;
;
;
v_vp_had-cx_le := had_aux_lex_ent & contracted_aux_word.
;
; Cmps VP(psp), have, 3sg, neg-c
; B hasn't sung.
;
;
;
v_vp_has-n_le := have_aux_neg_lex_entry & have_pres &
[ SYNSEM.LOCAL [ AGR.PNG png & [ PN 3s ],
CAT.VAL.COMPS.FIRST canonical_synsem ] ].
;
; Cmps VP(psp), have,3sg,ng-c,ninv, no overt comp
; B's not.
;
;
;
v_vp_has-n-niv_le := have_aux_neg_lex_entry & have_pres & aux_not_contr &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
have_aux_neg_fin_synsem := have_aux_neg_synsem & have_fin_synsem.
;
; Cmps VP(psp), have, n3sg, neg-c
; We haven't sung.
;
;
;
v_vp_have-f-n_le := have_aux_neg_lex_entry & have_pres &
[ SYNSEM have_aux_neg_fin_synsem &
[ LOCAL [ AGR.PNG png & [ PN -3s ],
CAT.VAL.COMPS.FIRST canonical_synsem ] ] ].
;
; Cmps VP(psp), have,n3sg,ngc,ninv, no overt comp
; We've not.
;
;
;
v_vp_have-n-niv_le := have_aux_neg_lex_entry & have_pres &
aux_not_contr &
[ SYNSEM have_aux_neg_fin_synsem &
[ LOCAL.AGR.PNG png & [ PN -3s ] ] ].
;
; Cmps VP(psp), have, past, neg-c
; B hadn't sung.
;
;
;
v_vp_had-n_le := have_aux_neg_lex_entry & have_past &
[ SYNSEM have_aux_neg_fin_synsem &
[ LOCAL.CAT.VAL.COMPS.FIRST canonical_synsem ] ].
;
; Cmps VP(psp), have,past,ngc,ninv, no overt complement
; B'd not.
;
;
;
v_vp_had-n-niv_le := have_aux_neg_lex_entry & have_past & aux_not_contr &
[ SYNSEM have_aux_neg_fin_synsem ].
;
; Cmps VP(psp), have, subjtv,neg-c
; If we hadn't sung, B'd've
;
;
;
v_vp_had-n-sv_le := have_aux_neg_lex_entry & have_subj &
[ SYNSEM have_aux_neg_fin_synsem ].
;; British possessive `have'
;;
have_poss_aux_verb_lex := nonc-hm &
[ INFLECTD +,
SYNSEM aux_np_verb &
[ LOCAL [ CAT [ HEAD.PRD -,
VAL [ SUBJ < [ LOCAL [ CAT nomp_cat_min,
CONT.HOOK.LTOP #ltop,
CONJ cnil ] ] >,
COMPS < synsem &
[ OPT -,
LOCAL [ CAT.HEAD.--BARE -,
CONT.HOOK.LTOP #ltop ] ] >,
SPCMPS < > ] ],
CONT [ HOOK.INDEX #event,
RELS.LIST.FIRST.ARG0 #event ] ],
LKEYS.KEYREL [ LBL #ltop,
PRED "_have_v_1_rel" ] ],
DIALECT br ].
have_poss_aux_pos := have_poss_aux_verb_lex &
[ SYNSEM [ LOCAL [ CAT.HEAD.INV +,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
have_poss_aux_neg := have_poss_aux_verb_lex &
[ SYNSEM [ LOCAL.CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ],
LKEYS [ KEYREL #keyrel & [ LBL #khand ],
ALT2KEYREL #alt2keyrel & adv_relation &
[ LBL #ltop,
PRED neg_rel,
ARG1 #arghand ] ] ] ].
v_np_has-aux_le := have_poss_aux_pos &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM indic_tam & [ TENSE present,
ASPECT [ PROGR -, PRF - ] ],
VAL.SUBJ < synsem &
[ LOCAL.AGR.PNG png & [ PN 3s ] ] > ] ].
v_np_have-aux_le := have_poss_aux_pos &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM indic_tam & [ TENSE present,
ASPECT [ PROGR -, PRF - ] ],
VAL.SUBJ < synsem &
[ LOCAL.AGR.PNG png & [ PN -3s ] ] > ] ].
v_np_had-aux_le := have_poss_aux_pos &
[ SYNSEM.LOCAL.CAT.HEAD.TAM [ TENSE past,
ASPECT [ PROGR -, PRF - ],
MOOD indicative ] ].
v_np_has-aux-n_le := have_poss_aux_neg &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM indic_tam & [ TENSE present,
ASPECT [ PROGR -, PRF - ] ],
VAL.SUBJ < synsem &
[ LOCAL.AGR.PNG png & [ PN 3s ] ] > ] ].
v_np_have-aux-n_le := have_poss_aux_neg &
[ SYNSEM.LOCAL.CAT [ HEAD.TAM indic_tam & [ TENSE present,
ASPECT [ PROGR -, PRF - ] ],
VAL.SUBJ < synsem &
[ LOCAL.AGR.PNG png & [ PN -3s ] ] > ] ].
v_np_had-aux-n_le := have_poss_aux_neg &
[ SYNSEM.LOCAL.CAT.HEAD.TAM [ TENSE past,
ASPECT [ PROGR -, PRF - ],
MOOD indicative ] ].
; *** should of ***
modal_of_synsem := psp_aux_verb_ssr &
[ LOCAL [ CAT [ HEAD [ VFORM fin,
PRD -,
TAM indic_tam &
[ TENSE present,
ASPECT.PRF + ] ],
VAL [ SUBJ < synsem &
[ LOCAL [ CAT nomp_cat_nom_min,
CONJ cnil ],
OPT - ] >,
COMPS < canonical_synsem &
[ LOCAL.CONT.HOOK.LTOP #chand ] > ] ],
CONT [ HOOK [ LTOP #hand,
INDEX #index ],
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel ].
;
; Cmps VP(psp), modal+of
; B should of sung.
; B coulda sung.
;
;
;
v_vp_mdl-of_le := psp_aux_verb_word &
[ SYNSEM modal_of_synsem,
ALTS.CSAI - ].
; *** Generic BE ***
be_verb := nonc-hm &
[ INFLECTD +,
SYNSEM.LOCAL.CAT.VAL [ SUBJ < synsem_min &
[ LOCAL [ CAT nomp_cat_min,
CONJ cnil ] ] >,
COMPS < synsem & [ OPT - ], ... >,
SPCMPS < > ] ].
; DPF 20-Oct-01 - Changed [TAM.ASPECT strict_nonprf] to nonprf, since it was
; blocking coordination of "Kim has arrived and Sandy is happy". This change
; now allows "Kim is being hiring Browne" but we can live with it for now.
be_fin := be_verb &
[ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM fin,
PRD -,
TAM.ASPECT.PRF - ],
POSTHD +,
VAL.SUBJ < synsem &
[ LOCAL [ CAT nomp_cat_nom_min,
CONJ cnil ],
OPT - ] > ],
CONT psoa ] ].
be_pres := be_fin &
[ SYNSEM.LOCAL.CAT.HEAD.TAM indic_tam &
[ TENSE present,
MOOD indicative ],
ALTS.CSAI - ].
be_past := be_fin &
[ SYNSEM.LOCAL.CAT.HEAD.TAM indic_tam &
[ TENSE past ],
ALTS.CSAI - ].
be_subj := be_fin &
[ SYNSEM.LOCAL.CAT.HEAD.TAM subjnct_tam ].
; Make be_prespart unmarked for PRD so we can block the identity-copula reading
; for "Kim is being good" while allowing the predicative-copula reading.
; 20-Oct-01 - Added POSTHD + to block pre-noun modification as in "*the being
; Kim person arrived"
; Added SLASH 0-dlist to avoid endless recursion when generating, since we no
; longer block "Kim is being silly", and don't want to use VFORM to block
; "Kim is being arriving" since that would put VFORM on type subst (too high),
; even though we'd like to exclude this example. So we add COMPS..AUX - to
; prevent "*Kim is being being silly", which avoids the worst case.
; DPF 18-oct-03 - Also add COMPS..ASPECT.PROGR - to block *Kim is being singing
; DPF 24-feb-09 - Add NORM norm_rel to prevent N-V compound for "human being"
;; DPF 13-05-09 - Re 20-Oct-01 - Imposing SLASH 0-dlist prevents analysis of
;; e.g. |happily, kim is being admired|, and it seems that we avoid recursion
;; in generation. so removing this constraint.
;;
be_prespart := be_verb &
[ SYNSEM [ LOCAL.CAT [ HEAD [ VFORM prp,
INV -,
MINORS.NORM norm_rel ],
VAL.COMPS < [ LOCAL.CAT.HEAD.AUX - ], ... >,
POSTHD + ] ] ].
be_pastpart := be_verb &
[ ORTH < "been" >,
SYNSEM.LOCAL [ CAT [ HEAD [ TAM.ASPECT.PRF +,
PRD -,
INV - ],
POSTHD + ],
CONT psoa ] ].
be_neg := sign &
[ INFLECTD +,
SYNSEM lex_synsem &
[ LOCAL.CONT [ HOOK.LTOP #ltop,
HCONS.LIST < qeq &
[ HARG #arghand,
LARG #khand ], ... > ],
LKEYS [ KEYREL.LBL #khand,
ALT2KEYREL adv_relation &
[ LBL #ltop,
PRED neg_rel,
ARG1 #arghand ] ] ] ].
be_be_lex_entry := be_verb &
[ SYNSEM.LOCAL.CAT [ HEAD [ PRD -,
TAM.ASPECT.PRF -,
INV - ],
VAL.SUBJ < synsem & [ OPT - ] > ] ].
be_being_lex_entry := be_prespart &
[ ORTH < "being" > ].
be_been_lex_entry := be_pastpart &
[ ORTH < "been" >,
SYNSEM.LOCAL.CAT.HEAD.VFORM psp ].
be_pres_lex_entry := be_pres.
be_past_lex_entry := be_past.
be_subj_lex_entry := be_subj.
be_pres_neg_lex_entry := be_pres & be_neg.
be_past_neg_lex_entry := be_past & be_neg.
be_subj_neg_lex_entry := be_subj & be_neg &
[ ALTS.CSAI - ].
be_am_lex_entry := be_pres_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 1s ] ].
be_is_lex_entry := be_pres_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
be_are_lex_entry := be_pres_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -13s ] ].
be_was_lex_entry := be_past_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 13s ] ].
be_were_lex_entry := be_past_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -13s ] ].
be_was_subjnct_lex_entry := be_subj_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 13s ],
ALTS.CSAI - ].
be_were_subjnct_lex_entry := be_subj_lex_entry.
; aren't
be_am_neg_contr_lex_entry := be_pres_neg_lex_entry &
[ SYNSEM.LOCAL [ CAT [ HEAD.INV +,
VAL.SUBJ < [ --SIND.PNG #png ] > ],
AGR.PNG png & #png & [ PN 1s ] ] ].
; 'm not
be_am_neg_contr_noinv_lex_entry := be_pres_neg_lex_entry & aux_not_contr &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 1s ] ].
; isn't
be_is_neg_contr_lex_entry := be_pres_neg_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
; 's not
be_is_neg_contr_noinv_lex_entry := be_pres_neg_lex_entry & aux_not_contr &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
; aren't
be_are_neg_contr_lex_entry := be_pres_neg_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -13s ] ].
; 're not
be_are_neg_contr_noinv_lex_entry := be_pres_neg_lex_entry & aux_not_contr &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -13s ] ].
be_was_neg_contr_lex_entry := be_past_neg_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 13s ] ].
be_was_subjnct_neg_contr_lex_entry := be_subj_neg_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 13s ] ].
be_were_neg_contr_lex_entry := be_past_neg_lex_entry &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN -13s ] ].
be_were_subjnct_neg_contr_lex_entry := be_subj_neg_lex_entry &
[ SYNSEM.LOCAL.CAT.HEAD.TAM subjnct_tam ].
; *** Copula BE ***
; DPF 27-Nov-99 - Made KEYREL.LBL identified with COMPS..KEYREL.LBL,
; to avoid assymetry of LBL for VM, which was causing errors
; for e.g. "it is really going to be". This used to lose a possible ambiguity
; for e.g. "kim is not sleeping", since the support_rel will always be in
; the scope of the negation, regardless of whether the "not" attaches to
; "be" or to the complement phrase.
; DPF 01-Mar-00 - But now that we've eliminated support_rels, it may work ok.
be_copula := prd_aux_verb_word &
[ SYNSEM [ LOCAL.CAT [ HEAD.TAM #tam,
VAL.COMPS.FIRST.LOCAL.CAT.HEAD.TAM #tam ],
LKEYS.KEYREL.PRED be_v_prd_rel ] ].
be_cop_pos_generic := be_copula &
[ SYNSEM.LOCAL [ CAT.VAL.COMPS.FIRST.LOCAL.CONT.HOOK.LTOP #ltop,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ] ].
be_cop_pos := be_cop_pos_generic.
be_cop_neg := be_copula &
[ SYNSEM [ LOCAL [ CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.ALT2KEYREL #alt2keyrel & [ LBL #ltop ] ] ].
vc_prd_be_lexent := be_be_lex_entry & be_cop_pos_generic.
;
; Cmps Pred-phr, be, bse
; B will be ready.
;
;
;
v_prd_be_le := vc_prd_be_lexent &
[ SYNSEM.LOCAL.CAT.HEAD.VFORM bse ].
; DPF 18-oct-03 - Added COMPS..ALTMIN no_rel to block "being arriving" while
; still allowing "being hired", "being happy", "being in Berlin"
; DPF 03-oct-06 - But now using ALTMIN to control application of partitive
; rule to superlative adjectives, so need to make this COMPS..ALTMIN more
; specific, to include prd adjs and PPs, but exclude pres-participle verbs,
; so use event_dim_rel.
;
; Cmps Pred-phr, be, prp
; B is being silly.
;
;
;
v_prd_being_le := be_being_lex_entry & be_cop_pos &
[ SYNSEM.LOCAL.CAT [ HEAD [ PRD +,
TAM.ASPECT.PROGR + ],
VAL.COMPS.FIRST.LOCAL.CAT.HEAD.MINORS.ALTMIN
event_dim_rel ] ].
; For robust variants
vc_prd_been_lexent := be_pastpart & be_cop_pos_generic.
vc_np_been_lexent := be_pastpart & be_id_pos.
;
; Cmps Pred-phr, be, psp
; B has been ready.
;
;
;
v_prd_been_le := be_been_lex_entry & be_cop_pos_generic.
;
; Cmps Pred-phr, be, pr1sg
; I am ready.
;
;
;
v_prd_am_le := be_am_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, pr1sg, contr
; I'm ready.
;
;
;
v_prd_am-cx_le := be_am_lex_entry & be_cop_pos & contracted_aux_word.
vc_prd_is_lexent := be_is_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, pr3sg
; B is ready.
;
;
;
v_prd_is_le := vc_prd_is_lexent.
;
; Cmps Pred-phr, be, pr3sg, contr
; B's ready.
;
;
;
v_prd_is-cx_le := vc_prd_is_lexent & contracted_aux_word.
vc_prd_are_lexent := be_are_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, pr n3sg
; We are ready.
;
;
;
v_prd_are_le := vc_prd_are_lexent.
;
; Cmps Pred-phr, be, pr n3sg,contr
; We're ready.
;
;
;
v_prd_are-cx_le := vc_prd_are_lexent & contracted_aux_word.
vc_prd_was_lexent := be_was_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, past, sg
; B was ready.
;
;
;
v_prd_was_le := vc_prd_was_lexent.
;
; Cmps Pred-phr, be, subjcv, sg
; If B was ready, C would be
;
;
;
v_prd_was-sv_le := be_was_subjnct_lex_entry & be_cop_pos.
vc_prd_were_lexent := be_were_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, past, plural
; We were ready.
;
;
;
v_prd_wre_le := vc_prd_were_lexent.
;
; Cmps Pred-phr, be, subjcv, plur
; If we were ready, C'd be.
;
;
;
v_prd_wre-sv_le := be_were_subjnct_lex_entry & be_cop_pos.
;
; Cmps Pred-phr, be, pr1sg,ngc,inv
; Aren't I ready?
;
;
;
v_prd_am-n_le := be_am_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be,pr1sg,ngc,ninv
; I'm not ready.
;
;
;
v_prd_am-n-niv_le := be_am_neg_contr_noinv_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, pr3sg, contr
; B's not ready.
;
;
;
v_prd_is-n_le := be_is_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be,pr3s,cntr,ninv
; B isn't ready.
;
;
;
v_prd_is-n-niv_le := be_is_neg_contr_noinv_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, prn3sg, contr
; We're not ready.
;
;
;
v_prd_are-n_le := be_are_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be,prn3s,ctr,ninv
; We aren't ready.
;
;
;
v_prd_are-n-niv_le := be_are_neg_contr_noinv_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, pastsg, ngc
; B wasn't ready.
;
;
;
v_prd_was-n_le := be_was_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, subjcv,sg,ngc
; If B wasn't ready, C'd be.
;
;
;
v_prd_was-n-sv_le := be_was_subjnct_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, pastpl, ngc
; We weren't ready.
;
;
;
v_prd_wre-n_le := be_were_neg_contr_lex_entry & be_cop_neg.
;
; Cmps Pred-phr, be, subjcv,pl,ngc
; If we weren't, C'd be.
;
;
;
v_prd_wre-n-sv_le := be_were_subjnct_neg_contr_lex_entry & be_cop_neg.
; *** Identity BE ***
; For now, exclude gerundive complements, to avoid semantically anomalous
; reading for "Kim is sleeping"
; DPF 08-Jan-00 Made COMP be nom_rel instead of reg_nom_rel, to allow "Tuesday
; is my last day" and "that's him".
; DPF 22-Feb-01 - Added ALTMIN restriction on SUBJ to prevent free relatives
; from appearing in subject position, to get the contrast of "I admire what
; you are" vs. "*I admire what are you" (and cf. "I admire what is best").
; DPF 26-Aug-01 - Added MIN nom_rel to SUBJ, like for COMP, to avoid having
; measure_nps in subject position.
; DPF 19-Oct-02 - Removed identification of PT on SUBJ and COMP, since
; this blocks "it is I/me" "that's me" etc.
; DPF 27-Apr-03 - Removed [COMPS..PRD -] since this prevents 'today is December
; third', and it's not clear what it was blocking. (Nor is it clear why
; 'third' has to be [PRD +].)
; DPF 10-Jun-03 - Try identifying SORT values of subj and comp.
; DPF 5-Sep-03 - Don't understand comment of 22-Feb-02 above, but clearly
; free relatives can be subjects of identity copula: "What he does is your
; problem". So removed this constraint.
; DPF 18-dec-03 - Keeping identity of SORT values is too hard - e.g. "The
; cabin is a good place to stay".
; DPF 30-aug-04 - Removed PT real_pron from SUBJ, since it
; prevented "consultant hiring is a disadvantage" with N-N-cmpnd subject NP.
; Leave on COMPS for now, to continue to block spurious analysis for
; "the boy is fishing."
; DPF 19-nov-04 - Removed identification of SUBJ..AGR with SUBJ..--SIND since
; want "three kilometers" measure-NP to be syntactically singular, even though
; semantic index comes from "kilometers" which is plural.
; DPF 05-nov-05 - Added CASE non_obliq to COMPS to block idiomatic detless NPs
; as in 'on top' from giving "*Kim is top."
; DPF 13-nov-05 - But sadly this also blocks "This is why we suffer". So
; instead try requiring non-empty SPEC, where detless NPs have SPEC < >.
; DPF 28-oct-06 - Removed PT real_pron from COMPS, since we want to
; allow "The reason is the fishing." No longer getting as much spurious
; ambiguity, for example with "The boy is fishing." See if too much remains.
; DPF 25-may-10 - Re 13-nov-05: No longer necessary, and SPEC *cons* was
; blocking "the cost is $100."
; DPF 04-jun-10 - Added COMPS..CASE non_obliq to prevent bare-sg nouns in PET,
; as in "*Kim is being in Paris"
; DPF 2010-sept-08 - Re 04-jun-10: But we also want to use CASE to exclude
; spurious analysis for "Where is Kim". So change CASE to nom_or_obliq, and
; instead use HEAD mobile to exclude bare-sg nouns in PET (which does not
; currently attend to constraints in idioms.tdl).
aux_np_verb := aux_verb & basic_two_arg & two_arg_subst &
[ LOCAL [ CAT [ HEAD.MINORS [ MIN be_v_id_rel,
ALTMIN nonpass_rel ],
VAL [ SUBJ < [ --MIN nom_or_mnp_rel,
--SIND #id1ind & basic_non_expl &
[ SORT #sort ],
NONLOC non-local_norel ] >,
COMPS < [ --MIN nom_or_mnp_rel,
LOCAL [ CAT [ HEAD supnoun & mobile &
[ POSS -,
MOD *anti_list*,
CASE nom_or_obliq ],
VAL [ SUBJ *olist*,
SPR *olist*,
COMPS < > ],
MC na_or_- ],
CONJ cnil ],
--SIND #id2ind & non_expl-ind &
[ SORT #sort ],
NONLOC.REL 0-dlist ] > ] ],
CONT.HOOK.XARG #id1ind ],
LKEYS.KEYREL arg12_relation &
[ ARG0 non_conj_event,
ARG1 #id1ind,
ARG2 #id2ind ] ].
; Note: redefined in lextypes-epgy.tdl
be_id := be_verb &
[ SYNSEM aux_np_verb &
[ LOCAL [ CONT [ HOOK.INDEX #event,
RELS.LIST.FIRST.ARG0 #event ],
CAT [ VAL [ SUBJ.FIRST.LOCAL.CONT.HOOK.LTOP #ltop,
COMPS < [ LOCAL [ CAT.HEAD.--BARE -,
CONT.HOOK.LTOP #ltop ]] >]]],
LKEYS.KEYREL [ LBL #ltop,
PRED _be_v_id_rel ] ] ].
be_id_pos := be_id &
[ SYNSEM [ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR -,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
be_id_neg_synsem := aux_np_verb &
[ LKEYS.KEYREL.PRED _be_v_id_rel,
LOCAL.CAT.VAL.COMPS < [ LOCAL.CAT.HEAD.--BARE - ] > ].
be_id_neg := be_id &
[ SYNSEM be_id_neg_synsem &
[ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR -,
CONT [ RELS ,
HCONS ] ],
LKEYS [ KEYREL #keyrel,
ALT2KEYREL #alt2keyrel ] ] ].
vc_np_be_lexent := be_be_lex_entry & be_id &
[ SYNSEM [ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR -,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
;
; Cmps NP, be, bse
; B will be C.
;
;
;
v_np_be_le := vc_np_be_lexent &
[ SYNSEM.LOCAL.CAT.HEAD.VFORM bse ].
;
; Cmps NP, be, prp
; B is being C.
;
;
;
v_np_being_le := be_being_lex_entry & be_id &
[ SYNSEM [ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR +,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
;
; Cmps NP, be, psp
; B has been C.
;
;
;
v_np_been_le := be_been_lex_entry & be_id_pos.
;
; Cmps NP, be, pr1sg
; I am C.
;
;
;
v_np_am_le := be_am_lex_entry & be_id_pos.
;
; Cmps NP, be, pr1sg, contr
; I'm C.
;
;
;
v_np_am-cx_le := be_am_lex_entry & be_id_pos & contracted_aux_word.
;
; Cmps NP, be, pr3sg
; B is C.
;
;
;
v_np_is_le := be_is_lex_entry & be_id_pos.
;
; Cmps NP, be, pr3sg, contr
; B's C.
;
;
;
v_np_is-cx_le := be_is_lex_entry & be_id_pos & contracted_aux_word.
;
; Cmps NP, be, pr n3sg
; We are C
;
;
;
v_np_are_le := be_are_lex_entry & be_id_pos.
;
; Cmps NP, be, pr n3sg,contr
; We're C.
;
;
;
v_np_are-cx_le := be_are_lex_entry & be_id_pos & contracted_aux_word.
;
; Cmps NP, be, past, sg
; B was C.
;
;
;
v_np_was_le := be_was_lex_entry & be_id_pos.
;
; Cmps NP, be, subjct, sg
; If B was C, D would be.
;
;
;
v_np_was-sv_le := be_was_subjnct_lex_entry & be_id_pos.
;
; Cmps NP, be, past, plural
; We were C.
;
;
;
v_np_wre_le := be_were_lex_entry & be_id_pos.
;
; Cmps NP, be, subjct, plur
; If we were C, D'd be.
;
;
;
v_np_wre-sv_le := be_were_subjnct_lex_entry & be_id_pos.
;
; Cmps NP, be, pr1sg,ngc,inv
; Aren't I C?
;
;
;
v_np_am-n_le := be_am_neg_contr_lex_entry & be_id_neg.
;
; Cmps NP, be,pr1sg,ngc,ninv
; I'm not C.
;
;
;
v_np_am-n-niv_le := be_am_neg_contr_noinv_lex_entry & be_id_neg.
v_np_is-n_lexent := be_is_neg_contr_lex_entry & be_id_neg.
;
; Cmps NP, be, pr3sg, contr
; B isn't C.
;
;
;
v_np_is-n_le := v_np_is-n_lexent.
;
; Cmps NP, be,pr3s,cntr,ninv
; B's not C.
;
;
;
v_np_is-n-niv_le := be_is_neg_contr_noinv_lex_entry & be_id_neg.
v_np_are-n_lexent := be_are_neg_contr_lex_entry & be_id_neg.
;
; Cmps NP, be, prn3sg, contr
; We aren't C.
;
;
;
v_np_are-n_le := v_np_are-n_lexent.
;
; Cmps NP, be,prn3s,ctr,ninv
; We're not C.
;
;
;
v_np_are-n-niv_le := be_are_neg_contr_noinv_lex_entry & be_id_neg.
v_np_was-n_lexent := be_was_neg_contr_lex_entry & be_id_neg.
;
; Cmps NP, be, pastsg, ngc
; B wasn't C.
;
;
;
v_np_was-n_le := v_np_was-n_lexent.
;
; Cmps NP, be, subjct,sg,ngc
; If B wasn't C, D'd be.
;
;
;
v_np_was-n-sv_le := be_was_subjnct_neg_contr_lex_entry & be_id_neg.
v_np_wre-n_lexent := be_were_neg_contr_lex_entry & be_id_neg.
;
; Cmps NP, be, pastpl, ngc
; We weren't C.
;
;
;
v_np_wre-n_le := v_np_wre-n_lexent.
;
; Cmps NP, be, subjct,pl,ngc
; If we weren't, C'd be.xo
;
;
;
v_np_wre-n-sv_le := be_were_subjnct_neg_contr_lex_entry & be_id_neg.
; Note that for "it's because Kim arrived." the ARG1 of the subord_rel is
; incorrectly not bound to any lbl. Awkward to get right, since no handle
; for "the reason is because Kim arrived". FIX...
; DPF 13-may-08 - Removed --COMPHD comp_or_p because we also want to
; get "The short answer is nobody wins." So far this was the only use of
; the feature, so maybe discard.
; DPF 27-may-08 - Added POSTHD + to block spurious analysis for
; "Kim is of programmers."
; DPF 23-apr-09 - Added ALTMIN aux_event_rel to prevent 'being' from
; undergoing adj_attr_verb_tr_part lexical rule as in *|the being six|
;; DPF 2012-11-09 - Added COMPS..LEX - to prevent spurious reading of
;; |that was so.|
nv_cop_verb := aux_verb & two_arg_subst & basic_two_arg & cp_addin_tam_pn &
[ LOCAL [ CAT [ HEAD.MINORS [ MIN be_v_nv_rel,
ALTMIN aux_event_rel ],
VAL [ SUBJ < synsem_min &
[ --MIN nom_or_mnp_rel,
--SIND #id1ind & non_expl-ind &
[ SORT nom-event ],
NONLOC #nonloc ] >,
COMPS < canonical_synsem &
[ --MIN verb_or_subord_rel,
LOCAL [ CAT [ HEAD verbal_or_p &
[ MINORS.NORM norm_rel,
PRD -,
TAM indic_tam & #tam,
--ADDIN [ ADDPN #pn,
ADDTAM #tam ]],
VAL [ SUBJ *anti_list*,
COMPS < > ],
POSTHD +,
MC - ],
AGR.PNG.PN #pn,
CONT.HOOK [ LTOP #cltop,
INDEX [ SF prop-or-ques,
--TPC - ],
XARG.SORT
basic-entity-or-event ],
CONJ cnil ],
LEX -,
MODIFD notmod_or_rmod,
NONLOC non-local_none ] > ] ],
CONT.HOOK.XARG #id1ind ],
NONLOC #nonloc,
LKEYS.KEYREL arg12_relation &
[ PRED _be_v_nv_rel,
ARG0 non_conj_event,
ARG1 #id1ind,
ARG2 #cltop ] ].
be_nv := be_verb &
[ SYNSEM nv_cop_verb &
[ LOCAL [ CONT [ HOOK.INDEX #event,
RELS.LIST.FIRST.ARG0 #event ] ] ],
ALTS.VPELLIP - ].
be_nv_pos := be_nv &
[ SYNSEM [ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR -,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
be_nv_neg_synsem := nv_cop_verb.
be_nv_neg := be_nv &
[ SYNSEM be_nv_neg_synsem &
[ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR -,
CONT [ RELS ,
HCONS ] ],
LKEYS [ KEYREL #keyrel,
ALT2KEYREL #alt2keyrel ] ] ].
;
; Cmps S, be, bse
; The plan'll be that C wins
;
;
;
v_cp_be_le := be_be_lex_entry & be_nv &
[ SYNSEM [ LOCAL [ CAT.HEAD [ TAM.ASPECT.PROGR -,
VFORM bse ],
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
;
; Cmps S, be, prp
; The plan being C won, I do
;
;
;
v_cp_being_le := be_being_lex_entry & be_nv &
[ SYNSEM [ LOCAL [ CAT.HEAD.TAM.ASPECT.PROGR +,
CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ] ],
LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ].
;
; Cmps S, be, psp
; The plan'd been that C won
;
;
;
v_cp_been_le := be_been_lex_entry & be_nv_pos.
;
; Cmps S, be, pr3sg
; The plan is that C won.
;
;
;
v_cp_is_le := be_is_lex_entry & be_nv_pos.
;
; Cmps S, be, pr3sg, contr
; The plan's that C won.
;
;
;
v_cp_is-cx_le := be_is_lex_entry & be_nv_pos & contracted_aux_word.
;
; Cmps S, be, pr n3sg
; The plans are that C wins.
;
;
;
v_cp_are_le := be_are_lex_entry & be_nv_pos.
;
; Cmps S, be, past, sg
; The plan was that C won.
;
;
;
v_cp_was_le := be_was_lex_entry & be_nv_pos.
;
; Cmps S, be, subjct, sg
; If the plan was S, D would
;
;
;
v_cp_was-sv_le := be_was_subjnct_lex_entry & be_nv_pos.
;
; Cmps S, be, past, subjunctive
; We prefer that the plan were that C won.
;
;
;
v_cp_wre_le := be_were_lex_entry & be_nv_pos.
;
; Cmps S, be, subjct, plur
; If plans were S, D'd be.
;
;
;
v_cp_wre-sv_le := be_were_subjnct_lex_entry & be_nv_pos.
;
; Cmps S, be, pr3sg, contr
; The plan isn't that S.
;
;
;
v_cp_is-n_le := be_is_neg_contr_lex_entry & be_nv_neg.
;
; Cmps S, be, prn3sg, contr
; The plans aren't that S.
;
;
;
v_cp_are-n_le := be_are_neg_contr_lex_entry & be_nv_neg.
;
; Cmps S, be, pastsg, ngc
; The plan wasn't that S.
;
;
;
v_cp_was-n_le := be_was_neg_contr_lex_entry & be_nv_neg.
;
; Cmps S, be, subjct,sg,ngc
; If the plan wasn't S, C is
;
;
;
v_cp_was-n-sv_le := be_was_subjnct_neg_contr_lex_entry & be_nv_neg.
;
; Cmps S, be, pastpl, ngc
; The plans weren't that S.
;
;
;
v_cp_wre-n_le := be_were_neg_contr_lex_entry & be_nv_neg.
;
; Cmps S, be, subjct,pl,ngc
; If plans weren't, C'd go.
;
;
;
v_cp_wre-n-sv_le := be_were_subjnct_neg_contr_lex_entry & be_nv_neg.
; *** There Copula BE ***
;; The relationship between the first COMP and the second cannot be one of
;; raising (since if the first is extracted its SLASH will be non-empty, and
;; that non-empty SLASH would also erroneously appear on the VP. So the
;; control relation must be equi rather than raising.
;; DPF 2-May-01 - HACK: To avoid spurious ambiguity temporarily, block second
;; arg by changing its MIN from independent_rel to no_rel.
;; DPF 29-may-07 - Removed AUX + to allow extraction of modifiers, as for
;; "occasionally there are unicorns in the garden". FIX?
there_cop_verb := there_verb_synsem & aux_verb &
[ LOCAL.CAT.HEAD.MINORS.MIN be_v_there_rel,
LKEYS [ KEYREL.PRED _be_v_there_rel,
--+ARGIND there-ind ] ].
be_th_cop := be_verb &
[ SYNSEM there_cop_verb &
[ LOCAL.CAT [ VAL.COMPS.FIRST.LOCAL.CONT.HOOK.LTOP #ltop ],
LKEYS.KEYREL.LBL #ltop ] ].
be_th_cop_pos := be_th_cop &
[ SYNSEM [ LOCAL.CONT [ HOOK [ LTOP #ltop,
INDEX #event ],
RELS ,
HCONS ],
LKEYS.KEYREL #keyrel & [ LBL #ltop,
ARG0 #event ] ] ].
be_th_cop_neg := be_th_cop &
[ SYNSEM [ LOCAL.CONT [ HOOK.LTOP #ltop,
RELS ,
HCONS ],
LKEYS [ KEYREL #keyrel,
ALT2KEYREL #alt2keyrel & [ LBL #ltop ] ] ] ].
;
; Cmps NP,Prd-p, be,ex-s,bse
; There will be music.
;
;
;
v_np-xp_be_le := be_be_lex_entry & be_th_cop_pos &
[ SYNSEM.LOCAL.CAT.HEAD.VFORM bse_only ].
;
; Cmps NP,Prd-p, be,ex-s,prp
; There being music, C went.
;
;
;
v_np-xp_being_le := be_being_lex_entry & be_th_cop_pos &
[ SYNSEM.LOCAL.CAT.HEAD [ PRD -,
TAM.ASPECT.PROGR - ] ].
;
; Cmps NP,Prd-p, be,ex-s,psp
; There has been music.
;
;
;
v_np-xp_been_le := be_been_lex_entry & be_th_cop_pos.
vc_there_is_lexent := be_is_lex_entry & be_th_cop_pos.
;
; Cmps NP,Prd-p, be,ex-s,prsg
; There is music.
;
;
;
v_np-xp_is_le := vc_there_is_lexent.
vc_there_are_lexent := be_are_lex_entry & be_th_cop_pos.
;
; Cmps NP,Prd-p, be,ex-s,prpl
; There are songs.
;
;
;
v_np-xp_are_le := vc_there_are_lexent.
;
; Cmps NP,Prd-p, be,ex-s ispl
; There is music and food.
;
;
;
v_np-xp_is-pl_le := vc_there_are_lexent &
[ GENRE nonformal ].
; DPF 04mar10 - Returned to using parent be_was_lex_entry rather than
; be_past_lex_entry, to block "there was cats in the garden".
vc_there_was_lexent := be_was_lex_entry & be_th_cop_pos.
;
; Cmps NP,Prd-p, be,ex-s,ptsg
; There was music.
;
;
;
v_np-xp_was_le := vc_there_was_lexent.
;
; Cmps NP,Prd-p, be,ex-s,svsg
; If there was food, we'd go
;
;
;
v_np-xp_was-sv_le := be_was_subjnct_lex_entry & be_th_cop_pos.
vc_there_were_lexent := be_were_lex_entry & be_th_cop_pos.
;
; Cmps NP,Prd-p, be,ex-s,ptpl
; There were songs.
;
;
;
v_np-xp_wre_le := vc_there_were_lexent.
;
; Cmps NP,Prd-p, be,ex-s,svpl
; If there were ice, we'd go
;
;
;
v_np-xp_wre-sv_le := be_were_subjnct_lex_entry & be_th_cop_pos &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
;
; Cmps NP,Prd-p, be,ex-s,prsg,cntr
; There's music.
;
;
;
v_np-xp_is-cx_le := be_pres_lex_entry & be_th_cop_pos & contracted_aux_word.
;
; Cmps NP,Prd-p, be,ex-s,prsg,n-cr
; There isn't music.
;
;
;
v_np-xp_is-n_le := be_is_neg_contr_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,prsg,n,nv
; There's not any music.
;
;
;
v_np-xp_is-n-niv_le := be_is_neg_contr_noinv_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,prpl,n-cr
; There aren't songs.
;
;
;
v_np-xp_are-n_le := be_are_neg_contr_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,ptsg,n-cr
; There wasn't music.
;
;
;
v_np-xp_was-n_le := be_was_neg_contr_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,sbsg,n-cr
; If there wasn't C, we'd go
;
;
;
v_np-xp_was-n-sv_le := be_was_subjnct_neg_contr_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,ptpl,n-cr
; There weren't any songs.
;
;
;
v_np-xp_wre-n_le := be_were_neg_contr_lex_entry & be_th_cop_neg.
;
; Cmps NP,Prd-p, be,ex-s,sbpl,n-cr
; If there weren't C, B'd go
;
;
;
v_np-xp_wre-n-sv_le := be_were_subjnct_neg_contr_lex_entry &
be_th_cop_neg &
[ SYNSEM.LOCAL.AGR.PNG png & [ PN 3s ] ].
; *** It-cleft Copula BE ***
be_it_cop := be_verb &
[ SYNSEM itcleft_verb_synsem &
[ LKEYS.--+ARGIND it-ind ] ].
be_it_cop_pos := be_it_cop &
[ SYNSEM [ LOCAL.CONT [ HOOK [ LTOP #ltop,
INDEX #event ],
RELS ,
HCONS ],
LKEYS.KEYREL #keyrel & [ LBL #ltop,
ARG0 #event ] ] ].
be_it_cop_neg := be_it_cop &
[ SYNSEM [ LOCAL.CONT [ HOOK.LTOP #nltop,
RELS ,
HCONS ],
LKEYS [ KEYREL #keyrel & [ LBL #kltop ],
ALT2KEYREL #alt2keyrel & [ LBL #nltop ] ] ] ].
;
; Cmps NP,Relcl, be,ex-s,bse
; It will be C who wins.
;
;
;
v_np-rc_be_le := be_be_lex_entry & be_it_cop_pos &
[ SYNSEM.LOCAL.CAT.HEAD.VFORM bse_only ].
;
; Cmps NP,Relcl, be,ex-s,prp
; It being C who won, D lost
;
;
;
v_np-rc_being_le := be_being_lex_entry & be_it_cop_pos &
[ SYNSEM.LOCAL.CAT.HEAD [ PRD -,
TAM.ASPECT.PROGR - ] ].
;
; Cmps NP,Relcl, be,ex-s,psp
; It has been C who wins.
;
;
;
v_np-rc_been_le := be_been_lex_entry & be_it_cop_pos.
;
; Cmps NP,Relcl, be,ex-s,prsg
; It is C who wins.
;
;
;
v_np-rc_is_le := be_is_lex_entry & be_it_cop_pos.
;
; Cmps NP,Relcl, be,ex-s,ptsg
; It was C who won.
;
;
;
v_np-rc_was_le := be_was_lex_entry & be_it_cop_pos.
;
; Cmps NP,Relcl, be,ex-s,sbsg
; If it was C who is, B'd go
;
;
;
v_np-rc_was-sv_le := be_was_subjnct_lex_entry & be_it_cop_pos.
;
; Cmps NP,Relcl, be,ex-s,pr,cntr
; It's C who wins.
;
;
;
v_np-rc_is-cx_le := be_pres_lex_entry & be_it_cop_pos & contracted_aux_word.
;
; Cmps NP,Relcl, be,ex-s,pr,n-cr
; It isn't C who wins.
;
;
;
v_np-rc_is-n_le := be_is_neg_contr_lex_entry & be_it_cop_neg.
;
; Cmps NP,Relcl, be,ex-s,pt,n-cr
; It wasn't C who won.
;
;
;
v_np-rc_was-n_le := be_was_neg_contr_lex_entry & be_it_cop_neg.
;
; Cmps NP,Relcl, be,ex-s,sbsg,n-cr
; If it wasn't C who is, B'd
;
;
;
v_np-rc_was-n-sv_le := be_was_subjnct_neg_contr_lex_entry & be_it_cop_neg.
;; do-be copula
;;
be_do_verb_synsem := aux_verb & basic_two_arg &
[ LOCAL [ CAT [ HEAD [ MINORS [ MIN _be_v_do_rel,
ALTMIN nonpass_rel ],
INV - ],
VAL [ SUBJ < [ LOCAL [ CAT np_cat_nom,
CONT.HOOK [ INDEX #id1ind &
[ SORT do-event,
IFORM #iform ],
XARG #xarg ] ],
NONLOC non-local_none,
LEX - ] >,
COMPS < expressed_synsem &
[ LOCAL [ CAT vp_cat &
[ HEAD [ MINORS.MIN v_event_rel,
VFORM fin_or_bse_or_part &
#iform ],
VAL.SUBJ < synsem > ],
AGR.PNG.PN #pn,
CONT.HOOK [ LTOP #vltop,
INDEX #id2ind,
XARG #xarg &
[ PNG.PN #pn ] ] ],
--SIND #id2ind,
NONLOC non-local_none,
OPT - ] > ] ],
CONT [ HOOK [ LTOP #ltop,
INDEX #event,
XARG #id1ind ],
RELS ,
HCONS ] ],
LEX +,
LKEYS [ KEYREL arg12_relation & #keyrel &
[ LBL #ltop,
PRED _be_v_do_rel,
ARG0 #event & non_conj_event,
ARG1 #id1ind,
ARG2 #arg2 ],
--+COMPKEY _do_v_be_rel ] ].
be_do_verb_lexent := be_verb &
[ SYNSEM be_do_verb_synsem ].
;
; Cmps: base VP, do-be only
; What we'll do will be hire a manager.
;
;
;
v_vp_do-be_le := be_be_lex_entry & be_do_verb_lexent &
[ SYNSEM.LOCAL.CAT.HEAD.VFORM bse_only ].
;
; Cmps: base VP, do-be only
; What he's done has been hire a manager.
;
;
;
v_vp_do-been_le := be_been_lex_entry & be_do_verb_lexent.
;
; Cmps: base VP, do-be only
; What he's done is hire a manager.
;
;
;
v_vp_do-is_le := be_is_lex_entry & be_do_verb_lexent.
;
; Cmps: base VP, do-be only
; The things we do are arrive and leave.
;
;
;
v_vp_do-are_le := be_are_lex_entry & be_do_verb_lexent.
;
; Cmps: base VP, do-be only
; What we did was hire a manager.
;
;
;
v_vp_do-was_le := be_was_lex_entry & be_do_verb_lexent.
;
; Cmps: base VP, do-be only
; The things we did were arrive and leave.
;
;
;
v_vp_do-wre_le := be_were_lex_entry & be_do_verb_lexent.