; Block proper names from taking determiners _the_q_prop_rel := proper_q_rel. mal_bare_div_q_rel := implicit_q_rel. norm_n_proper_lexent := basic_n_proper_lexent & [ SYNSEM [ LKEYS.KEYREL.PRED named_rel, LOCAL.CAT.VAL.SPR < [ --MIN _the_q_prop_rel ] > ], INFLECTD - ]. ; Also hour names n_-_pn-hour_le := basic_abstr_hour_word & [ SYNSEM [ LOCAL [ CAT.VAL.SPR < unexpressed >, CONT.RELS ], LKEYS.KEYREL.PRED numbered_hour_rel, LEX - ] ]. n_-_m-def_le_mal := n_-_m-def_lexent & [ GENRE robust ]. ; Considered blocking days of week from appearing as NP-adv ; but conflict between Strand3.C and sentencelist.C: ; "*Jenny plays chess Tuesday." but "She goes Saturdays." ; ;n_-_c-day_lexent := basic_n_intr_temp_lexent & ; [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS [ MIN dofw_rel, ; ALTMIN quant_or_wh_rel ], ; VAL.SPR < synsem > ], ; MODIFD notmod, ; LKEYS.ALTKEYREL.PRED quant_or_wh_rel ] ]. ; Special class for "Mr." etc, since we exclude normal nouns as titles n_-_c-pre-ttl_le := basic_intr_lex_entry & [ SYNSEM [ MODIFD notmod, LOCAL [ CAT.HEAD [ MINORS [ MIN pre_title_rel, NORM norm_rel ], --BARE - ], CONT.RELS ] ] ]. ;; For wrong prep, as in |the reason of the mistake| ;; n_pp_c_le_rbst := n_ppcomp_lexent & [ SYNSEM.LOCAL [ CAT.VAL.COMPS < [ OPT - ] >, CONT [ RELS , HCONS ] ], GENRE robust ]. n_pp_m_le_rbst := noun_noninfl_word & [ SYNSEM mass_noun_ppcomp_synsem & [ LOCAL [ CAT [ HEAD.--MALCM -, VAL.COMPS < [ OPT - ] > ], CONT [ RELS , HCONS ] ], MODIFD notmod ], GENRE robust ]. ;; Allow nouns to decline the robust a/an + mass-noun rule noun :+ [ --MALCM bool ]. d_-_sg-nmd-mal_le := basic_det_sg_nomod_lexent & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ PHON.ONSET con_or_unk ] > ]. ; "an information", "a homework" d_-_m-c_mal_lexent := det_word & [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN dofw_or_poss_q_rel, VAL.SPEC < [ LOCAL.CAT.HEAD [ --BARE +, --MALCM + ] ] > ], AGR [ PNG.PN 3s, DIV + ] ], NONLOC.QUE 0-dlist ], GENRE robust ]. d_-_m-c-mal-a_le := d_-_m-c_mal_lexent & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ PHON.ONSET con ] > ]. d_-_m-c-mal-an_le := d_-_m-c_mal_lexent & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ PHON.ONSET voc ] > ]. adj_equi_bse_rbst_synsem := basic_adj_equi_synsem & [ LOCAL [ CAT [ HEAD adj, VAL [ SPR.FIRST synsem & [ --MIN more_or_very_deg_rel, LOCAL.CAT.HS-LEX #hslex ], COMPS < [ LOCAL [ CAT.HEAD.VFORM bse, CONT [ HOOK.LTOP #vhand ] ] ] > ], HS-LEX #hslex ], CONT [ RELS , HCONS ] ], MODIFD notmod, LKEYS.KEYREL.ARG2 handle & #hand ]. adj_vp_bse_mal_lr := lex_rule & [ ORTH #orth, DTR [ ORTH #orth, SYNSEM reg_adj_equi_synsem & [ LOCAL [ CAT [ HEAD #head, VAL [ SUBJ #subj, SPR #spr, SPCMPS #spcmps ] ], CTXT #ctxt ], NONLOC #non-local, MODIFD #modif ] ], SYNSEM adj_equi_bse_rbst_synsem & [ LOCAL [ CAT [ HEAD #head, VAL [ SUBJ #subj, SPR #spr, SPCMPS #spcmps ] ], CTXT #ctxt ], NONLOC #non-local, MODIFD #modif ], C-CONT [ RELS , HCONS ], GENRE robust ]. ; Remove COMPS..--BARE - since we want to flag "She is good student" be_id := be_verb & [ SYNSEM id_cop_verb & [ LOCAL [ CONT [ HOOK.INDEX #event, RELS.LIST.FIRST.ARG0 #event ], CAT [ HEAD.LSYNSEM id_cop_verb_min ] ], LKEYS.KEYREL.PRED _be_v_id_rel ] ]. ; From auxverbs - Restrict number on COMPS for singular identity copula. ; Also prevent bare-sg NP subjects ;; DPF 13-03-14 - But blocking bare subjs prevents robust analysis of e.g. ;; |cat is a furry animal| So remove, and let's see what happens. #| be_id_pos := be_id & [ SYNSEM [ LOCAL [ CAT [ HEAD.TAM.ASPECT.PROGR -, VAL.SUBJ.FIRST.LOCAL.CAT.HEAD.--BARE - ], CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ], LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ]. |# be_id_pos := be_id & [ SYNSEM [ LOCAL [ CAT [ HEAD.TAM.ASPECT.PROGR - ], CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ], LKEYS.KEYREL #keyrel & [ LBL #ltop ] ] ]. ;; Undo this 3s constraint since we want e.g. |the population is 4 million| #| v_np_is_le := be_is_lex_entry & be_id_pos & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.AGR.PNG.PN 3s ] > ]. |# v_np_is_le := be_is_lex_entry & be_id_pos. ; Add COMPS..--BARE - here to avoid spurious analysis for e.g. ; |the team's goalie kept running| v_np_is-cx_le := be_is_lex_entry & be_id_pos & contracted_aux_word & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL [ CAT.HEAD.--BARE -, AGR.PNG.PN 3s ] ] > ]. v_np_are_le := be_are_lex_entry & be_id_pos. v_np_are-cx_le := be_are_lex_entry & be_id_pos & contracted_aux_word. v_np_was_le := be_was_lex_entry & be_id_pos & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.AGR.PNG.PN 3s ] > ]. v_np_wre_le := be_were_lex_entry & be_id_pos. ;; Avoid misanalysis in possessive NPs such as |in the cat 's mouth| ;; basic_loc_inv_be_word := loc_inv_verb_word & [ INFLECTD +, SYNSEM loc_inv_be_synsem & [ LOCAL.CAT [ HEAD.LSYNSEM loc_inv_be_synsem_min, VAL.COMPS.FIRST.LOCAL.CAT.HEAD.--BARE - ] ] ]. ;; Block APs as subjects ;; loc_inv_be_word := basic_loc_inv_be_word & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM fin, PRD -, TAM.MOOD indicative, LSYNSEM loc_inv_be_synsem_min ], VAL [ SUBJ < [ LOCAL [ CAT.HEAD v_or_p, CONT.HOOK [ LTOP #ltop, INDEX #ind & [ E.TENSE tense ], XARG #xarg ] ] ] >, COMPS < [ --SIND #xarg ] > ], POSTHD - ], CONT [ HOOK [ LTOP #ltop, INDEX #ind & [ SF prop-or-ques ], XARG #xarg ], RELS ] ], LKEYS.KEYREL.PRED no_rel ] ]. ; From syntax.tdl ; Restrict nonhead to MIN pre_title_rel. np_title_cmpnd_phr := norm_np_name_cmpnd_phr & [ HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN named_rel, VAL.SPR *olist* ], AGR.PNG.PN #pn ], MODIFD.LPERIPH + ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS [ MIN pre_title_rel, NORM norm_rel ], VAL.SPR < unexpressed > ], AGR.PNG.PN #pn ], PUNCT [ LPUNCT dq_or_sq_or_no_punct, RPUNCT dq_or_sq_or_no_punct ] ], C-CONT.RELS ]. ; Exclude reflesives as non-heads: |*They themselves| basic_appos_np_phr := basic_appos_phr & [ HD-DTR.SYNSEM.MODIFD.RPERIPH bool, NH-DTR.SYNSEM.LOCAL.CAT [ HEAD.MINORS.MIN nonpro_rel, VAL.SPR *olist* ], C-CONT [ RELS , HCONS ] ]. ;; Block "a Sunday" but allow "next Tuesday" ;; Note that this blocks items in StrandG_2-4 such as ;; "The fair is on a Saturday." ;; So maybe reconsider? ;; Yes, undo, since we also want "on the last Tuesday in May" ;; ;;n_-_c-dow_le := n_-_c-day_lexent & ;; [ SYNSEM [ LKEYS.KEYREL.PRED dofw_rel, ;; LOCAL.CAT.VAL.SPR < [ --MIN impl_or_proper_q_rel ] > ] ]. ; Block clefts: ; But this also blocks |It is after the sun goes down| #| be_nv := be_verb & [ SYNSEM nv_cop_verb & [ LOCAL.CONT [ HOOK.INDEX #event, RELS.LIST.FIRST.ARG0 #event ] ], ALTS.VPELLIP -, GENRE robust ]. |# ; Add feature for blocking mal-3sg vc_add :+ [ --MAL3SG bool ]. ; Change CASE from obliq to non_obliq to block "to home" n_-_ad-pl-nomod_le := norm_np_adv_lexent & [ SYNSEM [ LOCAL [ CAT.HEAD [ MINORS.MIN place_n_rel, CASE non_obliq, --BARE - ], CONT.HOOK.INDEX.SORT place ], MODIFD.RPERIPH + ] ]. ; Block as direct objects, to avoid spurious reading for e.g. ; "What was he doing yesterday?" n_-_ad-time_le := norm_np_adv_lexent & [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN time_n_rel, CASE nom_or_obliq ], CONT.HOOK.INDEX.SORT time ] ]. ; Related: relax constraint on complement of `from' to still get `from now on' p_np-ptcl_i_le := p_ditrans_lexent & [ SYNSEM.LOCAL [ CAT.VAL.COMPS < [ LOCAL [ CAT nomp_cat_nonnom_min, CONT.HOOK.INDEX index ] ], [ LOCAL [ CAT.VAL.COMPS < synsem >, CONT.HOOK.LTOP #ltop ], NONLOC non-local_none, LEX + ] >, CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ] ]. ; Add lex-entry for "in bed" to sidestep PET's failure to do idiom check _in+bed_p_rel := miscprep_rel. _out+of+bed_p_rel := miscprep_rel. _to+bed_p_rel := dir_rel. _above+ground_p_rel := miscprep_rel. _at+home_p_rel := miscprep_rel. _during+break_p_rel := miscprep_rel. _day+by+day_p_rel := miscprep_rel. _day+to+day_p_rel := miscprep_rel. _face+to+face_p_rel := miscprep_rel. ; Restrict normal transitives missing object to --MAL3SG + to prevent ; these from appearing in conjoined verb phrases, avoiding spurious ambiguity ; for e.g. "Kim buys and sells books" ; DPF 19-feb-10 - Also constrain to SLASH 0-dlist, to avoid mis-analysis for ; e.g. `Mark brought the [cookies he made for] his class.' ; DPF 19-apr-10 - --COMPKEY is hack to prevent attrib-adj LR, as in ; "Mariah is making pasta" v_-_le_rbst := main_verb & [ SYNSEM unerg_verb & [ LOCAL.CAT.HEAD [ --MAL3SG +, LSYNSEM unerg_verb_min ], NONLOC.SLASH 0-dlist, LKEYS.--COMPKEY selected_rel ], GENRE robust ]. ; e.g. 'tell' ; Exclude robust 3sg in CP complement, to avoid competing treatment for e.g. ; `she told her brother borrow her book'. v_cp_le_rbst := main_verb & [ SYNSEM cp_intrans_verb & [ LOCAL.CAT [ HEAD.LSYNSEM cp_intrans_verb_min, VAL.COMPS < [ LOCAL.CAT.HEAD.--MAL3SG -, NONLOC.SLASH 0-dlist ] > ] ], GENRE robust ]. ; e.g. 'tell him borrow her book' v_np-vp_bse_le_rbst := main_verb_mliszt & [ SYNSEM obj_equi_bse_verb & [ LOCAL.CAT.HEAD.LSYNSEM obj_equi_bse_verb_min ], GENRE robust ]. ; e.g. `This lets the cat to enter' v_np-vp_oeq_le_rbst := main_verb & [ SYNSEM obj_equi_verb & [ LOCAL.CAT.HEAD.LSYNSEM obj_equi_verb_min ], GENRE robust ]. ; 'She enables to win.' ; Missing direct object ; v_vp_seq_le_rbst := main_verb & [ SYNSEM subj_equi_verb & [ LOCAL.CAT.HEAD.LSYNSEM subj_equi_verb_min ], GENRE robust ]. ; (ERB 2003-10-23) For subject equi verbs, with the infinitival ; marker "to" dropped ; 'She wants win.' v_vp_seq-bse_le_rbst := main_verb_mliszt & [ SYNSEM subj_equi_bse_verb & [ LOCAL.CAT.HEAD.LSYNSEM subj_equi_bse_verb_min ], GENRE robust ]. ; 'ask' - block dative shift v_np-np*_nodat_le := main_verb & [ SYNSEM ditrans_only_verb & [ LOCAL.CAT [ HEAD.LSYNSEM ditrans_only_verb_min, VAL.COMPS < [ OPT - ], [ OPT + ] > ] ] ]. ; `like' - block bare-sg objects: ; |I didn't like tadpole hunting| v_np-prd_oeq-ntr-x_le := main_verb_mliszt & [ SYNSEM obj_equi_non_trans_prd_verb & [ LOCAL.CAT [ HEAD.LSYNSEM obj_equi_non_trans_prd_verb_min, VAL.COMPS.FIRST.LOCAL.CAT.HEAD.--BARE - ], LKEYS [ --OCOMPKEY #ocmin, --+OCOMPKEY #ocmin ] ] ]. ; Restrict dtrs to --MAL3SG - to avoid robust intranstives as conjuncts. ;; DPF 13-03-14 - But this blocks flagging of subj-verb agrmt errors as in ;; |he arise and arrives|. So remove, and evaluate. #| basic_v_coord_phr := basic_verbal_coord_phr & [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, MINORS #mins, --ADDIN #addin ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK.XARG #xarg ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, TAM.MOOD #mood, --ADDIN #addin & [ ADDPN #pn ], --MAL3SG - ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, TAM.MOOD #mood, MINORS #mins, --ADDIN.ADDPN #pn, --MAL3SG - ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], C-CONT.HCONS ]. |# ;; Allow robust pre-modifiers like 'today' av_-_i-vp-pr_le_rbst := int_vp_adverb_word & [ SYNSEM.LOCAL.CAT [ HEAD adv & [ MINORS.MIN adv_rel, MOD < [ LOCAL.CAT.HEAD verb & [ VFORM fin ], MODIFD.LPERIPH na_or_- ] > ], POSTHD - ], GENRE robust ]. ; Allow robust post-VP adverbs: "He sang bad" ; av_-_i-vp-po_le_rbst := int_vp_adverb_word & [ SYNSEM [ LOCAL.CAT [ HEAD adv & [ MINORS.MIN adv_rel, MOD < [ LOCAL.CAT.HEAD v_or_g_or_a, MODIFD.RPERIPH na_or_- ] > ], POSTHD + ], MODIFD hasmod ], GENRE robust ]. ; restrict to only VP mods av_-_i-vp-po-nmb_le := int_vp_adverb_word & [ SYNSEM.LOCAL.CAT [ HEAD adv_nonmob & [ MINORS.MIN adv_rel, MOD < [ LOCAL.CAT.HEAD verb, MODIFD.RPERIPH na_or_- ] > ], POSTHD + ] ]. ;; Make COMPS..HEAD be reg_adv to allow |he did well| ;; adv_subst := unsat_two_arg_subst & [ LOCAL [ CAT.VAL.COMPS < synsem & [ LOCAL [ CAT [ HEAD reg_adv & [ MOD < [ LOCAL intersective_mod ] > ], VAL [ SPR *olist*, COMPS < > ], POSTHD + ], CONT.HOOK [ LTOP #hand, INDEX #event ] ], NONLOC.REL 0-dlist, LEX + ] > ], LKEYS.KEYREL [ LBL #hand, ARG0 #event ] ]. ;; Allow no punct on left dtr np_city_state_phr := norm_np_name_cmpnd_phr & [ HD-DTR.SYNSEM [ MODIFD notmod & [ LPERIPH + ], LOCAL.CAT [ HEAD.MINORS.MIN named_np_or_num_rel, VAL.SPR < [ OPT - ] > ] ], NH-DTR.SYNSEM [ LOCAL [ CAT.HEAD.MINORS [ MIN named_city_rel, NORM norm_rel ], AGR.PNG.PN 3s ], PUNCT [ LPUNCT no_punct, RPUNCT comma_or_no_punct ] ], C-CONT.RELS ]. d_-_the-mal_le := d_-_the_lexent & [ GENRE robust ]. ;; Add hack empty rel for "mop clean the floor" _clean_a_sel_rel := selected_adj_rel. ;; Constrain to non-nominative, to avoid spurious analysis of e.g. ;; "what do Kim and Abrams ..." n_-_pr-fr_le := n_freerel_pro_lexent & [ SYNSEM.LOCAL [ CAT.HEAD.CASE non_nom, CONT.RELS.LIST.FIRST.PRED free_relative_q_rel, AGR.PNG.PN 3s ] ]. ;; Constrain "what" to singular, to avoid spurious analysis of ;; "what do Kim and Abrams ..." n_-_pr-wh_le := n_wh_pro_lexent & [ SYNSEM.LOCAL.AGR.PNG.PN 3s ]. p_np_ptcl-of_le := p_prtcl_lexent & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL.CAT.HEAD.--BARE - ] > ]. ; Prevent analysis for "with her cousins" p_np-np_s-ncop_le := noncqrs-nab & [ SYNSEM subconj_with_np_np_synsem & [ LOCAL.CAT.VAL.COMPS < [ LOCAL.AGR.PNG.PN #pn ], [ LOCAL.AGR.PNG.PN #pn ] > ] ]. mal_v_inf_cp_comp_le := main_verb_mliszt & [ SYNSEM mal_v_inf_cp_comp_verb & [ LOCAL.CAT [ HEAD.LSYNSEM mal_v_inf_cp_comp_verb, VAL.COMPS < [ OPT - ] > ] ], GENRE robust ]. mal_va_does_le := do_pres & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ --SIND.PNG png & [ PN 3s ] ] >, ALTS [ VPELLIP -, ADVADD - ], GENRE robust ]. va_doesnt_neg_pres_le_rbst := do_aux_neg_pres & [ SYNSEM.LOCAL [ CAT.VAL.SUBJ.FIRST.LOCAL.CAT.HEAD.--BARE +, AGR.PNG png & [ PN 3s ] ], ALTS [ VPELLIP -, ADVADD - ], GENRE robust ]. va_dont_neg_pres_le_rbst := do_aux_neg_pres & [ SYNSEM.LOCAL.AGR.PNG png & [ PN -3s ], ALTS [ VPELLIP -, ADVADD - ], GENRE robust ]. mal_va_do_fin_le := do_pres & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < [ --SIND.PNG png & [ PN -3s ] ] >, ALTS [ VPELLIP -, ADVADD - ], GENRE robust ]. mal_va_has_le := has_aux_lex_ent & [ ALTS.VPELLIP -, GENRE robust ]. mal_va_have_fin_le := have_fin_aux_lex_ent & [ ALTS.VPELLIP -, GENRE robust ]. v_vp_has-n_le_rbst := have_aux_neg_lex_entry & have_pres & [ SYNSEM.LOCAL.AGR.PNG.PN -3s, ALTS.VPELLIP -, GENRE robust ]. v_vp_have-f-n_le_rbst := have_aux_neg_lex_entry & have_pres & [ SYNSEM.LOCAL.AGR.PNG.PN 3s, ALTS.VPELLIP -, GENRE robust ]. mal_vc_there_synsem := there_cop_verb & [ LOCAL.CAT.VAL.COMPS.FIRST.LOCAL.CAT.HEAD.MINORS [ ALTMIN def_udef_some_a_no_q_rel, NORM no_rel ] ]. mal_vc_there_is_le := vc_there_are_lexent & [ GENRE robust, ALTS.VPELLIP -, SYNSEM mal_vc_there_synsem ]. mal_vc_there_are_le := vc_there_is_lexent & [ GENRE robust, ALTS.VPELLIP -, SYNSEM mal_vc_there_synsem ]. mal_vc_there_was_le := vc_there_were_lexent & [ GENRE robust, ALTS.VPELLIP -, SYNSEM mal_vc_there_synsem ]. mal_vc_there_were_le := vc_there_was_lexent & [ GENRE robust, ALTS.VPELLIP -, SYNSEM mal_vc_there_synsem ]. v_np-xp_is-n_le_rbst := be_are_neg_contr_lex_entry & be_th_cop_neg & [ GENRE robust ]. v_np-xp_are-n_le_rbst := be_is_neg_contr_lex_entry & be_th_cop_neg & [ GENRE robust ]. v_np-xp_was-n_le_rbst := be_were_neg_contr_lex_entry & be_th_cop_neg & [ GENRE robust ]. v_np-xp_were-n_le_rbst := be_was_neg_contr_lex_entry & be_th_cop_neg & [ GENRE robust ]. ;; DPF 2012-08-17 - Removed SLASH 0-dlist from SUBJ for these, since we ;; want |the bear who are admired|. Maybe we'll recall why this was added. mal_vc_prd_is_le := vc_prd_are_lexent & [ ALTS.VPELLIP -, SYNSEM.LOCAL.CAT.VAL.SUBJ.FIRST expressed_synsem & [ LOCAL.CAT.HEAD.--BARE + ], GENRE robust ]. mal_vc_prd_are_le := vc_prd_is_lexent & [ ALTS.VPELLIP -, SYNSEM.LOCAL.CAT.VAL.SUBJ.FIRST.LOCAL.CAT.HEAD.--BARE +, GENRE robust ]. mal_vc_prd_was_le := vc_prd_were_lexent & [ ALTS.VPELLIP -, SYNSEM.LOCAL.CAT.VAL.SUBJ.FIRST.LOCAL.CAT.HEAD.--BARE +, GENRE robust ]. mal_vc_prd_were_le := vc_prd_was_lexent & [ ALTS.VPELLIP -, SYNSEM.LOCAL.CAT [ HEAD.--MAL3SG +, VAL.SUBJ.FIRST.LOCAL.CAT.HEAD.--BARE + ], GENRE robust ]. ; Treat robust "be" and "been" as VFORM prp, so they trigger the robust ; subj-head rule which needs to avoid allowing ordinary base form verbs ; (identical to non-3sg) and ordinary past participles (identical to ; past tense). mal_vc_prd_be_le := vc_prd_be_lexent & [ SYNSEM.LOCAL.CAT.HEAD.VFORM prp, ALTS.VPELLIP -, GENRE robust ]. mal_vc_np_be_le := vc_np_be_lexent & [ SYNSEM.LOCAL.CAT.HEAD.VFORM prp, ALTS.VPELLIP -, GENRE robust ]. mal_vc_prd_been_le := vc_prd_been_lexent & [ SYNSEM.LOCAL.CAT.HEAD.VFORM prp, ALTS.VPELLIP -, GENRE robust ]. mal_vc_np_been_le := vc_np_been_lexent & [ SYNSEM.LOCAL.CAT.HEAD.VFORM prp, ALTS.VPELLIP -, GENRE robust ]. #| ;; Not used mal_det_div_le := det_word_nonque & [ SYNSEM [ LOCAL [ CAT.VAL.SPR < [ LOCAL.CAT.HEAD.MINORS.MIN just_only_deg_rel ] >, AGR.PNG.PN 3s ], LKEYS.KEYREL.ARG0 [ PNG png & [ PN 3s ], DIV + ], MODIFD hasmod ], GENRE robust ]. |# ; 'they/that' mal_n_deictic_pro_le := n_deictic_pro_lexent & [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.NORM norm_rel, LKEYS.KEYREL.ARG0.PNG png & [ PN 3p, GEN neut ] ] ]. mal_det_pl_le := det_pl_lexent & [ SYNSEM.LOCAL.CAT.VAL.SPEC.FIRST.LOCAL.CAt.HEAD.--BARE -, GENRE robust ]. mal_n_plur_ppcomp_le := n_plur_ppcomp_lexent & [ GENRE robust ]. d_-_sg-a-a-mal_le := det_sg_nomod_lexent & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ PHON.ONSET con_or_voc ] >, GENRE robust ]. d_-_the-mal_le := d_-_the_lexent & [ GENRE robust ]. n_-_pr-they-mal_le := n_pers_pro_nom_lexent & [ SYNSEM.LKEYS.KEYREL.ARG0 [ PNG png & [ PN 3p ], PRONTYPE std_pron ], GENRE robust ]. n_-_pr-you-mal_le := n_pers_pro_lexent & [ SYNSEM.LKEYS.KEYREL.ARG0 [ PNG png & [ PN 2 ], PRONTYPE std_pron, SORT entity ], GENRE robust ]. ; (ERB 2003-10-17) For verbs like "allow" taking a CP[to] ; complement with the PRO bound to arbitrary reference. Regenerate ; with gerunds instead. (Might need another class where we ; regenerate with an inserted pronoun "one", if there are verbs ; that show up in this pattern but can't take gerund complements.) ; (ERB 2003-10-17) This is going to be a fairly strange verb type. I ; can't think of any true English verbs off hand that take an ; infinitival CP complement and allow arbitrary control of the subject ; of that complement. Furthermore, this type is also putting in some ; extra semantics, in order to allow the right string to come back ; from the generator. So, we're not inheriting from the usual places ; in the hierarchy. For example, main_verb is constrained to have a ; single element RELSs list. main_verb_mliszt will do, though, ; although this isn't what it was intended for. Likewise, I don't ; think any of the linking types lower in the hierarchy will do what ; we want. Took some constraints from subj_equi_inf_lt to try to ; restrict what can show up as the complement. ; (ERB 2003-10-23) Can't currently generate with these entries, ; and I don't know why. Can generate from the produced MRS at all, ; in fact. The MRS produced isn't the same as the MRS for the target, ; because of gerunds are built from progressives and therefore have ; a different value for PROGR. (There are some other mismatches, ; but they are compatible, so maybe it would work otherwise.) ; While we might consider changing the analysis of gerunds, I ; think the main conclusion to draw is that we will need some kind ; of a transfer component. Maybe put everything there rather than ; trying to map from mal-formed syntax to well-formed semantics in ; the grammar itself? If not everything, how to decide when to do ; which? mal_v_inf_cp_comp_verb := inf_intrans_subst & arg1_subj_lt & basic_two_arg & basic_verb_synsem & [ LOCAL [ CAT.VAL.COMPS < [ LOCAL [ CAT.VAL.SUBJ < unexpressed >, CONT [ HOOK [ INDEX #ind, LTOP #larg ] ] ] ] >, CONT [ RELS , HCONS ] ], LKEYS.KEYREL arg12_relation & [ ARG2 #ger ] ]. mal_v_inf_from_cp_comp_verb := inf_intrans_subst & arg1_subj_lt & basic_two_arg & basic_verb_synsem & [ LOCAL [ CAT.VAL.COMPS < [ LOCAL [ CAT.VAL.SUBJ < unexpressed >, CONT [ HOOK [ INDEX #ind, LTOP #larg ] ] ] ] >, CONT [ RELS , HCONS ] ], LKEYS.KEYREL arg12_relation & [ ARG2 #ger ] ]. _they+that_q_mal_rel :< demonstrative_q_rel. ;; Mal NI (but not CE) rules, for lack of do support: mal_adv_addition := basic_adv_addition & [ DTR.SYNSEM.LOCAL.CAT.HEAD.AUX - ]. mal_sai_synsem := basic_sai_synsem & [ LOCAL.CAT.HEAD.AUX - ]. ; (ERB 2003-08-15) sai seems to be constraining its input ; to be INV +, rather than AUX +. So, moving that constraint down ; to sai, and putting the opposite thing on mal_sai. ; (ERB 2003-08-15) Adding AUX - to DTR to keep auxiliaries out ; of this mal-rule. mal_sai := basic_sai & [ SYNSEM mal_sai_synsem, DTR.SYNSEM.LOCAL.CAT.HEAD [ AUX -, INV - ] ]. mal_finvp_rule := basic_unary_phrase & rule & [ INFLECTD +, GENRE robust, SYNSEM [ LOCAL [ CAT [ HEAD frag, VAL [ SUBJ < >, SPR < >, COMPS < > ], MC + ], CONJ cnil ], NONLOC non-local_none ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM fin, INV - ], VAL [ SUBJ < unexpressed_reg >, COMPS *olist* ] ], CONT.HOOK [ LTOP #ltop, INDEX #event, XARG #arg0 ], AGR.PNG #png ], NONLOC [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist, QUE 0-dlist ] ], GENRE robust ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #event ], RELS , HCONS ] ]. frag_vp_fin_3sg_rule := frag_vp_fin_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ AUX -, TAM #tam & [ TENSE present ], --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], AGR.PNG.PN #pn & 3s ] ] > ]. frag_vp_fin_past_rule := frag_vp_fin_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD [ AUX -, TAM #tam & [ TENSE past ], --ADDIN.ADDTAM #tam ] ] > ]. frag_vp_fin_aux_rule := frag_vp_fin_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.AUX + ] > ]. ;; Block the application of this rule, to avoid spurious analyses for e.g. ;; |the pie-eating contest| ;; DPF 2012-11-20 - But we need it in general for e.g. |the covered-up plate| ;; #| punctuation_hyphen_rule := basic_punctuation_rule & [ INFLECTD #infl, SYNSEM.PUNCT [ LPUNCT #lpunct, RPUNCT hyphen_sgl & [ PSF #pred ], RCLSTR #rclstr ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL.CAT.HEAD no_head, PUNCT [ LPUNCT #lpunct & no_punct, RPUNCT no_punct & [ PSF #pred ], RCLSTR #rclstr ] ], GENRE #genre ] >, GENRE #genre, RNAME "LPHR" ]. |# ;; Block this rule, to avoid ambiguity: |The neighbors' is by the tree.| punctuation_sqright_rule := basic_punctuation_rule & [ INFLECTD #infl, SYNSEM.PUNCT [ LPUNCT #lpunct, RPUNCT sq_punct & [ PSF #pred ], RCLSTR #rclstr ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL.CAT.HEAD no_head, PUNCT [ LPUNCT #lpunct & no_punct, RPUNCT comma_or_clause_or_no_punct & [ PSF #pred ], RCLSTR #rclstr ] ], GENRE #genre ] >, GENRE #genre ]. ;; Prevent comma marking on spr, as in "most of all, pizza tastes great" head_spec_phrase :+ [ NH-DTR.SYNSEM.PUNCT.RPUNCT no_punct ]. ;; Constrain to exclude gerunds with subjects, as in spurious analysis of ;; "what was kim doing yesterday?" subjh_nonmc_rule := subjh_rule_decl & head_subj_phrase & clause & [ SYNSEM.LOCAL.CAT [ HEAD.VFORM fin_or_bse, MC - ], HD-DTR.SYNSEM.LOCAL.CAT.HEAD verbal, NH-DTR.SYNSEM.LOCAL.CAT.HEAD n_or_v ]. ;; Constrain to SF prop-or-comm: if want question, have to supply question mark ;; subjh_mc_rule := subjh_rule_decl & head_subj_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM fin, TAM indic_tam ], MC + ], CONT.HOOK.INDEX.SF #pred & prop-or-comm ], PUNCT.RPUNCT.PSF #pred ] ]. mal_bare_np_sg_phrase := generic_bare_np_phrase & [ SYNSEM [ LOCAL [ AGR [ DIV -, PNG.PN 3s ], CAT.HEAD.MINORS.ALTMIN implicit_q_rel ], MODIFD #modif ], ARGS < [ SYNSEM [ LOCAL [ AGR [ DIV -, PNG.PN 3s ], CAT [ VAL.SPR < [ LOCAL.CAT.HEAD.MINORS.MIN udef_q_rel]>, HEAD [ MINORS.MIN non_temp_or_nonday_nbar_rel, --BARE + ] ] ], MODIFD #modif & [ LPERIPH na_or_- ] ], INFLECTD + ] >, C-CONT.RELS , GENRE robust ]. mal_bare_np_sg_rule := rule & mal_bare_np_sg_phrase. ;; Enrich this rule to propagate dtr's MOD..--BARE value to SPEC, in order to ;; constrain robust "all" as in "all pizza" ;; num_det_rule :+ [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.--BARE #b ] >, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD.--BARE #b ] > ] > ]. double_det_rule := head_valence_phrase & head_final & rule & [ INFLECTD +, SYNSEM [ LOCAL [ CAT #cat, CONJ cnil ], NONLOC #nonloc, MODIFD #modif, LEX #lex ], HD-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT #cat & [ HEAD det ], CONT.HOOK #hdhook, CONJ cnil ], NONLOC #nonloc, MODIFD #modif, LEX #lex ] ], NH-DTR [ SYNSEM lex_synsem & [ LOCAL [ CAT.HEAD det, CONT.HOOK.INDEX #nhindex, CONJ cnil ], NONLOC non-local_none, LKEYS.KEYREL.RSTR #rstr ] ], C-CONT [ HOOK #hdhook, RELS , HCONS ], GENRE robust ]. ; "One books" mal_num_det_rule_1 := num_det_phrase & rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL [ AGR.PNG.PN 3p, CAT.HEAD.MINORS.NORM norm_or_no_rel ] ] >, ARGS < [ SYNSEM.LOCAL.CAT.HEAD [ MOD < [ LOCAL.AGR.PNG.PN 3s ] >, MINORS.NORM norm_rel ] ] >, GENRE robust ]. ; "Twenty book" mal_num_det_rule_2 := num_det_phrase & rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL [ AGR.PNG.PN 3s, CAT.HEAD [ --BARE +, MINORS.NORM norm_or_no_rel ] ] ] >, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.AGR.PNG.PN 3p ] > ] >, GENRE robust ]. ;; Plural det with singular count noun (all, several, many, more, most) ;; as in |all cat arose| ;; aj_-_i-one_le_rbst := aj_-_i-one_lexent & [ SYNSEM [ LOCAL [ CAT [ HEAD [ MINORS [ ALTMIN no_rel, NORM no_rel ], MOD < [ LOCAL.CAT [ VAL.SPR < unexpressed >, HEAD.--BARE + ], LEX - ] > ], VAL.COMPS *synnull* ], CONT.HOOK.XARG.SORT non-time-sort ], MODIFD.LPERIPH + ], GENRE robust ]. ;; DPF 13-03-14 - Drop the requirement for MOD's SPR to be explicit, so we can ;; robustly parse |we admire best performer|. This means we won't catch ;; erroneous |we admire best performers|. FIX someday? ;; #| aj_-_i-sup_le := compar_superl_adj_word & [ SYNSEM adj_unsp_ind_onearg_synsem & [ LOCAL [ CAT [ HEAD superl_adj & [ MINORS.ALTMIN superl_rel, MOD < [ LOCAL.CAT.HEAD.MINORS.ALTMIN explicit_q_rel ] > ], VAL.SPR.FIRST.--MIN ord_or_very_rel ], CONT.RELS ], LKEYS.ALTKEYREL.PRED superl_rel ] ]. |# aj_-_i-sup_le := compar_superl_adj_word & [ SYNSEM adj_unsp_ind_onearg_synsem & [ LOCAL [ CAT [ HEAD superl_adj & [ MINORS.ALTMIN superl_rel ], VAL.SPR.FIRST.--MIN ord_or_very_rel ], CONT.RELS ], LKEYS.ALTKEYREL.PRED superl_rel ] ]. ;; Block inversion with `be' taking CP complement be_nv := be_verb & [ SYNSEM nv_cop_verb & [ LOCAL [ CAT.HEAD [ LSYNSEM nv_cop_verb_min, INV - ], CONT [ HOOK.INDEX #event, RELS.LIST.FIRST.ARG0 #event ] ] ], ALTS.VPELLIP - ]. ;; In lextypes.tdl ;; Remove SORT non-time-sort constraint to allow ;; |the morning is the best part of the day| n_-_c-ns_le := basic_intr_lex_entry & [ SYNSEM.LOCAL [ CAT.HEAD.MINORS.MIN norm_nom_rel ] ]. ;; Add extra subtype of non_obliq case to impose constraint on abstract noun ;; |man| as in |man's best friend| genitive := non_obliq. ;; Prevent mal-det and mal-adj (e.g. "all") from spurious robust analyses n_-_mc_le :+ [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ]. ;; Block robust plural rule from applying to e.g. "north" #| ;; CoNLL n_-_c-dir_le := n_-_mc-ntoj_lexent & [ SYNSEM unsp_count_noun_nocomp_synsem & [ LOCAL.CAT.HEAD.--BARE -, MODIFD.LPERIPH + ] ]. |# n_-_c-dir_le := n_-_mc-ntoj_lexent & [ SYNSEM unsp_count_noun_nocomp_synsem & [ LOCAL.CAT.HEAD.--BARE - ] ]. ;; Add idiomatic noun type to ensure idiomatic cooccurrences such as ;; |give a speech| while PET still does not enforce idioms idiom_nom_rel := reg_nom_rel. idiom_modable_nom_rel := idiom_nom_rel & modable_nom_rel. n_-_c-idm_le := basic_intr_lex_entry & [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN idiom_nom_rel, LKEYS.KEYREL reg_nom_relation ] ]. n_-_m-idm_le := noun_noninfl_word & [ SYNSEM mass_noun_onearg_synsem & [ MODIFD notmod, LOCAL.CAT.HEAD.MINORS.MIN idiom_nom_rel, LKEYS.KEYREL reg_nom_relation ] ]. ;; For doubled nouns like "beach beach" ;; (Chart mapping for `educ' should add LPERIPH bool to the second of two ;; repeated words, to prevent a normal noun-noun compound analysis, leaving ;; this robust compound rule analysis. noun_n_cmpnd_phr_doubled := basic_noun_n_cmpnd_phr & [ HD-DTR.SYNSEM basic_lex_synsem & [ MODIFD notmod & [ LPERIPH bool ], PUNCT.LPUNCT dq_or_no_punct, LKEYS.KEYREL.PRED #pred ], NH-DTR.SYNSEM lex_synsem & [ LKEYS.KEYREL.PRED #pred ], GENRE robust ]. noun_n_cmpnd_rule_rbst := binary_rule_right_to_left & noun_n_cmpnd_phr_doubled. ;; Don't want |can arise| as NP-VP #| bare_np_prd_phrase := reg_bare_np_phrase & [ SYNSEM.LOCAL.AGR.DIV -, ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD noun & [ CASE nom ], VAL.SPR.FIRST unexpressed_reg ] ] ] > ]. |# ;; For robust plural of mass nouns ;; lex_rule_plural_mass := lex_rule_basic & word_or_infl_rule & [ INFLECTD +, KEY-ARG #keyarg, SYNSEM mass_or_count_synsem & [ LOCAL [ CAT #cat & [ HEAD noun_or_ttl & [ --BARE - ], VAL.SPR < synsem & [ LOCAL.AGR [ PNG.PN 3p, DIV + ] ] > ], CONT #cont, CONJ #conj, CTXT #ctxt, ARG-S #arg-s ], NONLOC #nonloc, OPT #opt, --MIN #min, --SIND #sind, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct, LKEYS #lkeys ], ARGS < #dtr >, DTR #dtr & [ INFLECTD -, KEY-ARG #keyarg, SYNSEM basic_mass_noun_synsem & [ LOCAL [ CAT #cat, CONT #cont, CONJ #conj, CTXT #ctxt, AGR [ PNG.PN 3s, DIV + ], ARG-S #arg-s ], NONLOC #nonloc, OPT #opt, --MIN #min, --SIND #sind, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct, LKEYS #lkeys ] ], C-CONT.RELS , GENRE robust ]. ;; Since bare-sg-NP keeps AGR as 3s, change the following type to allow either ;; sg or plur NP comps, as in |we human| for |we humans| pro_wcomps_plur_synsem := pers_pro_synsem & [ LOCAL [ CAT.VAL [ COMPS < [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS [ MIN nonpro_rel, ALTMIN both_all_udef_q_rel ] ], VAL [ SPR *olist*, SUBJ < >, COMPS < >, SPEC < anti_synsem_min > ] ], CONT.HOOK.INDEX #cind & nonconj_ref-ind, AGR.PNG.PN 3 ], OPT - ] > ], CONT [ HOOK.INDEX #ind, RELS ] ], LKEYS [ ALTKEYREL #altkeyrel, ALT2KEYREL #alt2keyrel ] ]. ;; Temporary, from lexrules.tdl ;; DPF 2012-08-21 - Identified --ADDIN on mother and dtr, to avoid spurious ;; analysis with mismatched subj-verb agreement, as in |she turn in homework|. ;; Sigh. NP_particle_lr := lex_rule & [ ORTH #orth, ALTS.NPPART +, DTR [ ORTH #orth, SYNSEM generic_NP_particle_verb & [ LOCAL [ CAT [ HEAD [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, MOD #mod, --ADDIN #addin ], POSTHD #ph, VAL [ SUBJ #subj, COMPS < [ OPT #opt2, NONLOC #nloc2 ] . < [ OPT #opt1, --MIN #cmin, NONLOC #nloc1 ] . #comps > > ], MC #mc, HC-LEX #hclex ], CONT.HOOK #hook, CTXT #ctxt ], NONLOC #nonlocal, LKEYS #lkeys ] ], SYNSEM generic_particle_NP_verb & [ LOCAL [ CAT [ HEAD [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, MOD #mod, --ADDIN #addin, LSYNSEM generic_particle_NP_verb & [ LKEYS.--COMPKEY #ckey ], LPRED #pred ], POSTHD #ph, VAL [ SUBJ #subj, COMPS < [ OPT #opt1, --MIN #cmin, NONLOC #nloc1 ] . < canonical_synsem & [ OPT #opt2, NONLOC #nloc2 ] . #comps > > ], MC #mc, HC-LEX #hclex ], CONT.HOOK #hook, CTXT #ctxt ], NONLOC #nonlocal, LKEYS #lkeys & [ KEYREL.PRED #pred, --COMPKEY #ckey ] ], C-CONT [ RELS , HCONS ] ]. ;; Missing apostrophe for contraction of "it is" be_is_mal_lex_entry := nonc-h & [ INFLECTD +, ALTS.VPELLIP -, SYNSEM.LOCAL [ CAT [ VAL [ SUBJ < anti_synsem_min >, COMPS < synsem & [ OPT - ], ... >, SPCMPS < > ], HEAD [ VFORM fin, PRD -, INV -, TAM indic_tam & [ TENSE present, ASPECT.PRF -, MOOD indicative ] ], POSTHD + ], AGR.PNG png & [ PN 3s ], CONT psoa & [ HOOK.XARG #xarg & ref-ind & [ PNG.PN 3s ], RELS.LIST < [ PRED pron_rel, LBL #nhand, ARG0 #xarg ], [ PRED pronoun_q_rel, ARG0 #xarg, RSTR #rhand ], ... >, HCONS ] ], ALTS.CSAI -, GENRE robust ]. v_prd_its-mal_le := be_is_mal_lex_entry & [ SYNSEM prd_aux_verb_ssr & [ LOCAL [ CAT [ HEAD [ TAM #tam, LSYNSEM prd_aux_verb_ssr_min ], VAL.COMPS.FIRST.LOCAL [ CAT.HEAD.TAM #tam, CONT.HOOK.LTOP #ltop ] ], CONT [ HOOK.LTOP #ltop, RELS ] ], LKEYS.KEYREL.PRED be_v_prd_rel ] ]. v_np_its-mal_le := be_is_mal_lex_entry & [ SYNSEM id_cop_verb & [ LOCAL [ CAT [ HEAD [ TAM.ASPECT.PROGR -, LSYNSEM id_cop_verb_min ], VAL.COMPS < [ LOCAL.CAT.HEAD.--BARE - ] > ], CONT [ HOOK [ LTOP #ltop, INDEX #event ], RELS ] ], LKEYS.KEYREL #keyrel & [ LBL #ltop, ARG0 #event, PRED _be_v_id_rel ] ] ]. ;; For |have went ...| psp_aux_verb_mal_ssr := basic_have_aux_verb_synsem & [ LOCAL.CAT.VAL.COMPS < synsem & [ LOCAL [ CAT vp_cat & [ HEAD verb & [ VFORM fin, TAM.TENSE past ], VAL.SUBJ < [ LOCAL.CAT.HEAD noun ] >], CONJ cnil ], OPT - ] > ]. psp_aux_verb_mal_word := aux_verb_word & [ SYNSEM psp_aux_verb_mal_ssr & [ LOCAL [ CAT [ HEAD [ LSYNSEM have_aux_pos_synsem_min, VFORM fin, PRD -, TAM indic_tam ], POSTHD +, VAL [ SUBJ < synsem & [ LOCAL [ CAT nomp_cat_nom_min, CONJ cnil ], OPT - ] >, COMPS < canonical_synsem & [ LOCAL.CONT.HOOK.LTOP #hand ] > ] ], CONT psoa & [ HOOK.LTOP #hand, RELS , HCONS ] ] ], GENRE robust, ALTS.CSAI - ]. v_vp_has-mal_le := psp_aux_verb_mal_word & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < synsem & [ LOCAL.AGR.PNG png & [ PN 3s ] ] > ]. v_vp_have-mal_le := psp_aux_verb_mal_word & [ SYNSEM.LOCAL.CAT.VAL.SUBJ < synsem & [ LOCAL.AGR.PNG png & [ PN -3s ] ] > ]. v_np_are-n_le_rbst := v_np_are-n_lexent & [ GENRE robust ]. v_np_is-n_le_rbst := v_np_is-n_lexent & [ GENRE robust ]. v_np_was-n_le_rbst := v_np_was-n_lexent & [ GENRE robust ]. v_np_wre-n_le_rbst := v_np_wre-n_lexent & [ GENRE robust ]. ; For e.g. "went the store" ; Add COMPS..CASE acc to block v_mod rule for e.g. "went to visit her house" v_np_pp_le_rbst := main_verb & [ SYNSEM np_trans_verb & [ LOCAL.CAT [ HEAD.LSYNSEM np_trans_verb_min & [ LOCAL.CAT.VAL.COMPS.FIRST.OPT - ], VAL.COMPS < canonical_synsem & [ OPT -, LOCAL.CAT.HEAD noun & [ --BARE -, CASE acc ], PUNCT.RPUNCT comma_or_clause_or_no_punct ] >]], GENRE robust ]. ;; Constrain to singular unknown names, to avoid spurious for e.g. |Pistorius| n_-_pn-gen_le := basic_n_proper_lexent & generic_ne_lex_entry & [ INFLECTD -, SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN named_np_rel, AGR.PNG.PN 3s ], MODIFD.LPERIPH +, LKEYS.KEYREL [ PRED named_rel ] ] ]. ;; Hack to accommodate |would rather VP than X| ;; ssr_vp_pp_subst := basic_three_arg_subst & [ LOCAL [ CAT.VAL [ SUBJ < [ LOCAL.CONT.HOOK [ LTOP #ltop, INDEX #subj ] ] >, COMPS < [ LOCAL [ CAT [ HEAD verbal & [ VFORM bse ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK.XARG #subj ], OPT - ], synsem & [ --MIN _than_p_compar_rel, LOCAL [ CAT basic_pp_cat & [ HEAD.MOD < > ], CONJ cnil ], OPT - ] > ], CONT.HOOK.LTOP #ltop ] ]. ssr_vp_pp_verb_min := synsem_min. ssr_vp_pp_verb := verb_synsem & ssr_vp_pp_subst & ssr_expr_lt & ssr_vp_pp_verb_min. v_vp-pp_ssr_le := main_verb_mliszt & [ SYNSEM ssr_vp_pp_verb & [ LOCAL.CAT.HEAD.LSYNSEM ssr_vp_pp_verb_min ] ]. v_p_le_infl_rbst := norm_basic_main_verb & [ INFLECTD +, SYNSEM particle_verb & [ LOCAL past_or_subj_verb & [ CAT.HEAD.LSYNSEM particle_verb_min ], LKEYS [ --COMPKEY #cmin, --+COMPKEY #cmin ] ], GENRE robust ]. ; For e.g. |It affected to Kim| with spurious prep v_pp_np_le_rbst := main_verb & [ SYNSEM empty_prep_intrans_verb & [ LOCAL.CAT.HEAD.LSYNSEM empty_prep_intrans_verb_min & [ LKEYS.--COMPKEY #cmin ], LKEYS [ --COMPKEY #cmin, --+COMPKEY #cmin ] ], GENRE robust ]. ;; For wrong prep marker, as in |abide to| v_pp_e_le_rbst := main_verb & [ SYNSEM empty_prep_intrans_verb & [ LOCAL.CAT.HEAD.LSYNSEM empty_prep_intrans_verb_min & [ LKEYS.--COMPKEY #cmin ], LKEYS [ --COMPKEY #cmin, --+COMPKEY #cmin ] ], GENRE robust ]. ;; For wrong prep marker as in |allocated it of Kim| v_np-pp_e_le_rbst := main_verb & [ SYNSEM empty_prep_trans_verb & [ LOCAL.CAT [ HEAD.LSYNSEM empty_prep_trans_verb_min & [ LKEYS.--OCOMPKEY #ocmin ], VAL.COMPS < [ OPT - ], [ OPT - ] > ], LKEYS [ --OCOMPKEY #ocmin, --+OCOMPKEY #ocmin ] ], GENRE robust ]. ; DPF 04-aug-10 - Block free relatives via NH-DTR..HEAD value subjh_nonfin_robust_rule := subjh_rule_basic & head_subj_phrase & non_rel_clause & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM non_pas, TAM indic_tam & [ ASPECT.PRF - ] ], MC bool ], CONT.HOOK.INDEX.SF #pred & prop-or-pol-ques ], NONLOC.SLASH 0-dlist, PUNCT.RPUNCT.PSF #pred ], HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #hdtop, INDEX #hdind ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD noun, C-CONT [ HOOK [ LTOP #hdtop, INDEX #hdind ], RELS , HCONS ], GENRE robust ]. ; DPF 22-nov-07 - For now, don't allow bare-sg NPs as subjects here, to ; avoid too much ambiguity - maybe FIX later, if this is too restrictive ; subjh_robust_rule := subjh_rule_decl & basic_head_subj_phrase & clause & [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM fin, TAM indic_tam & [ TENSE present ] ], MC + ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN non_ellipt_rel, VAL.SUBJ < canonical_synsem & [ LOCAL [ CAT #cat, CONT #cont, CONJ #conj, CTXT #ctxt ], NONLOC #nonloc, --SIND ref-ind & #sind, OPT #opt, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct ] > ], CONT.HOOK.INDEX non_conj_event ], NONLOC.SLASH 0-dlist ], NH-DTR.SYNSEM [ LOCAL [ CAT #cat & [ HEAD noun & [ --BARE -, MINORS.ALTMIN non_freerel_q_rel ] ], CONT #cont, CONJ #conj, CTXT #ctxt ], NONLOC #nonloc, --SIND #sind, OPT #opt, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct & [ RPUNCT pair_or_no_punct ] ], GENRE robust ]. subjh_robust_3s_v_rule := subjh_robust_rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3s, HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.AGR.PNG.PN 3s ] >, NH-DTR.SYNSEM.LOCAL.AGR.PNG.PN -3s ]. subjh_robust_n3s_v_rule := subjh_robust_rule & [ SYNSEM.LOCAL.AGR.PNG.PN -3s, HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.AGR.PNG.PN -3s ] >, NH-DTR.SYNSEM.LOCAL.AGR.PNG.PN 3s ]. ;; For CoNLL, keep comma as separate token pt_-_comma_le := punct_right_word & [ SYNSEM.PUNCT.RPUNCT comma_or_rbc_punct ]. pt_-_semicolon_le := punct_right_word & [ SYNSEM.PUNCT.RPUNCT basic_semicol_punct ]. ;; For erroneous VP passives of intransitives as in |the fish were died| ;; (Repair is to drop preceding copula) v_-_psv-post_le_rbst := norm_basic_main_verb & [ SYNSEM passive_unerg_synsem & [ LOCAL.CAT [ HEAD.LSYNSEM passive_unerg_synsem_min, POSTHD + ] ], INFLECTD +, GENRE robust ]. ;; For erroneous VP passives of intransitives used prenominally: |the died fish| ;; (Repair is to rephrase as relative clause: |the fish that died|) v_-_psv-pre_le_rbst := norm_basic_main_verb & [ SYNSEM passive_unerg_synsem & [ LOCAL.CAT [ HEAD.LSYNSEM passive_unerg_synsem_min, POSTHD - ] ], INFLECTD +, GENRE robust ]. ;; Block depictives headed by |being that ...|, to favor |human being| as item v_cp_being_le :+ [ SYNSEM.LOCAL.CAT.HEAD.PRD - ]. ;; Block reduced relative |being that|, for same reason v_np_being_le :+ [ SYNSEM.LOCAL.CAT.VAL.SUBJ.FIRST expressed_synsem ]. ;; Flag wrong double plurals: e.g. |polices| n_-_c-pl_le_rbst := n_intr_infl_lex_entry & [ SYNSEM.LOCAL [ CAT.VAL.SPR < [ LOCAL.AGR [ PNG.PN 3p, DIV + ] ] >, CONT.HOOK.INDEX [ PNG.PN 3p, DIV + ] ], GENRE robust ]. ; Intransitive used as causative: |this deteriorates the problem| v_np_caus_le_rbst := main_verb & [ SYNSEM np_trans_verb & [ LOCAL.CAT [ HEAD.LSYNSEM np_trans_verb_min & [ LOCAL.CAT.VAL.COMPS.FIRST.OPT - ], VAL.COMPS < canonical_synsem & [ OPT -, LOCAL.CAT.HEAD noun & [ --BARE -, CASE acc ], PUNCT.RPUNCT clause_or_no_punct ] > ] ], GENRE robust ].