subjh_bse_rbst := subjh_nonfin_robust_rule & [ RNAME sbhr ]. ;; DPF 2017-09-05 - question-mark punctuation sb-hd_mc-ques_c_rbst := subjh_mc_ques_rule & [ RNAME sbhdq, GENRE robust ]. ;; DPF 2017-09-06 - Comma-marked subject sb-hd_mc-cma_c_rbst := subjh_mc_cma_rule & [ RNAME sbhcm ]. ; Block punctuation marks on head: ; HD-DTR.SYNSEM.PUNCT.RPUNCT no_punct, ; DPF 2010-08-31 - But this prevents |He said, I won.|, so instead live with ; the ambiguity. ;; DPF 2013-12-05 - Require agreement on NEGPOL value, to let us detect ;; double negatives. ; hd-cmp_u_c := hcomp_rule & [ HD-DTR.SYNSEM.LOCAL.CAT.NEGPOL #negp, NH-DTR.SYNSEM.LOCAL.CAT.NEGPOL #negp, RNAME hcp ]. mrk-nh_ajlex_c := hmark_a_lex_rule & [ RNAME hmkl ]. mrk-nh_n_c := hmark_nbar_rule & [ RNAME hmkb, ARGS.REST.FIRST.SYNSEM.LOCAL.CAT.HEAD.--BARE - ]. ;; DPF 2017-09-12 - Removed hd-dtr's ALTMIN since n-ed nouns have ALTMIN no_rel ;; so we were blocking |warm-blooded|. Check what this constraint was doing, ;; and FIX? ;; #| aj-hdn_norm_c := adj_n_rule & [ ARGS < [ SYNSEM.PUNCT.RPUNCT pair_or_no_punct ], [ SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_or_prop_q_rel ] >, RNAME mhn ]. |# aj-hdn_norm_c := adj_n_rule & [ ARGS < [ SYNSEM.PUNCT.RPUNCT pair_or_no_punct ], [ ] >, RNAME mhn ]. ; Unwanted comma on adjective, but not for intadj, to avoid spurious use for ; |Second, cats sleep.| ;; JROB prevents double robustness for |... taste, smell ...| ;; aj-hdn_c_rbst := adj_n_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD basic_adj, PUNCT.RPUNCT comma_punct ], ALTS.JROB - ], [ ] >, RNAME mhn, GENRE robust ]. ;; DPF 2017-10-10 - Let's not mark this as robust, since we want e.g. ;; |By the way, will you arrive early and stay late?| #| adjh_i_inv_rbst := adjh_i_inv_rule & [ RNAME mhiv, SYNSEM.LEX -, GENRE robust ]. |# hdn-aj_rc_c := hadj_i_relcl_npr_rule & [ RNAME hmrn, HD-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN non_proper_rel, PUNCT.RPUNCT no_punct ] ]. ;; Block modification of relative pronouns, to avoid overgeneration of ;; |flowers which, which are blue, disappeared, arrived| ;; DPF 2018-03-31 - But this blocks |you, who know this, can sleep| ;; #| hdn-aj_rc-pr_c := hadj_i_relcl_pr_rule & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN basic_nonpro_rel, RNAME hmrc ]. |# ; Exclude pronoun heads (except for WH pronouns) ;; DPF 13-03-14 - Relax to MIN basic_nonpro_rel, to also allow e.g. deictics ;; hdn-aj_redrel_c := hadj_i_redrel_npr_rule & [ RNAME hmpn, HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN basic_nonpro_rel ]. ;; DPF 2017-10-04 - Added NH-DTR..SPR *synlist* to exclude colon-PPs ;; DPF 2017-10-08 - The NORM on head is to block robust verb as head, ;; for unwanted analysis of |went to visit her house| ;; DPF 2018-07-24 - HEAD.MIN nonaux_event_rel is to block identity copula, ;; which is not AUX -. ;; vmod_i_rbst := v_mod_int_rule & [ RNAME vlmr, SYNSEM.LOCAL.CAT [ HEAD verb & [ AUX -, MINORS [ MIN nonaux_event_rel, NORM norm_rel ] ], VAL.COMPS.FIRST [ LEX -, LOCAL.CAT.HEAD basic_noun ] ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM nonlex_synsem & [ LOCAL.CAT [ HEAD prep, VAL.SPR *synlist* ]], GENRE robust ]. ;; Add separate rule for |knew then that S| vmod_i_scomp_c := v_mod_int_rule & [ RNAME vlmi, SYNSEM.LOCAL.CAT [ HEAD verb, VAL.COMPS.FIRST [ LEX -, LOCAL.CAT [ HEAD comp, VAL.SUBJ *olist* ] ] ], HD-DTR.SYNSEM.LEX + ]. cl_rc-inf-nwh-sb_c := inf_non_wh_subj_rel_rule & [ RNAME rcls, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.VAL.SPR.FIRST.OPT - ]. vp_sbrd-prd-prp_c := subconj_prdp_prp_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.HEAD.MINORS.ALTMIN non_ellipt_rel, RNAME scpr ]. vp_sbrd-prd-pas_c := subconj_prdp_pas_rule & [ ARGS < [ SYNSEM.LEX - ] >, RNAME scps ]. vp_sbrd-prd-aj_c := subconj_prdp_adj_rule & [ RNAME scpa, ARGS < [ SYNSEM [ LEX -, LOCAL.CAT.HEAD.--SBRD na_or_+ ] ] > ]. ;; DPF 2017-04-05 - Removed ARGS..ALTMIN no_rel since this blocked adjectives ;; such as "slow" as in |We arrived slow|. Let's track what that constraint ;; was aimed at, and FIX? ;; DPF 2017-05-17 - Prevent these from modifying elided or slashed VP, to avoid ;; spurious analysis for |the cat was happy| or |we admired a cat it was happy| ;; DPF 2017-09-12 - Also block from modifying PPs and aux verbs, to avoid ;; spurious robust analysis for ;; |the students are between five feet and six feet tall| ;; DPF 2017-09-29 - Abuse the ALTS attribute here to allow blocking of certain ;; adjectives to avoid spurious use of this rule, as in ;; |There are five fifth graders between fifteen and twenty feet tall.| ;; DPF 2018-03-16 - Re 2017-05-17: But blocking SLASH on head means we can't ;; catch e.g. |yesterday, he nodded friendly|, and anyway, it would not serve ;; to block |we [admired [a cat it was]] happy|. ;; DPF 2018-09-12 - Instead, exclude identity copula as head of modified VP, ;; to block in extraction analysis for |Second, I was __ extremely happy| ;; vp_sbrd-prd-aj_rbst := subconj_prdp_adj_rule & [ RNAME scpa, SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD v_or_a & [ MINORS [ MIN mod_role_rel, ALTMIN non_ellipt_rel ], AUX - ] ] >, ARGS < [ SYNSEM [ LEX +, LOCAL.CAT.HEAD.--SBRD + ] ] >, GENRE robust ]. ;; DPF 2018-02-15 - For adjectives such as |sick| or |drunk| which are readily ;; usable as depictives. ;; vp_sbrd-prd-aj-lx_c := subconj_prdp_adj_rule & [ RNAME scpa, SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD v_or_a & [ MINORS.ALTMIN non_ellipt_rel, AUX - ], NONLOC.SLASH 0-dlist ] >, ARGS < [ SYNSEM [ LEX +, LOCAL.CAT.HEAD.--SBRD na ] ] > ]. ;; Limit to -ing form, and restrict main clause to INV - to avoid ;; |reading is her favorite.| ;; Also require comma vp_sbrd-pre-lx_c := subconj_prdp_v_init_lex_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.VFORM prp ] >, SYNSEM [ LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.HEAD.INV -, PUNCT.RPUNCT comma_punct ], RNAME scvl ]. ;; DPF 2017-10-02 - Exclude |I happy| and robust |he happy| np-prdp_vpmod_c := np_pred_post_rule & [ RNAME nppd, ARGS.FIRST.SYNSEM.LOCAL [ CAT.HEAD.--MALCASE -, AGR.PNG.PN -1s ] ]. ;; DPF 13-03-14 - Having --BARE - on mother blocks bare-sg NPs such as ;; |RFID chip|. So try without. np-hdn_cpd_c := np_n_cmpnd_rule & [ RNAME npn, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ], [ ] > ]. n-hdn_cpd_c := noun_n_cmpnd_rule & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD.--BARE -, RNAME nnc ]. n-hdn_cpd-pl_rbst := noun_n_cmpnd_pl_mal & [ RNAME nncpr ]. n-hdn_cpd-pl-nlx_c := never_unify_rule. ;; DPF 2018-03-07 - This one does not seem to get used as intended often at all, ;; and leads to false positives. Better would be a rule for missing apostrophe ;; on possessor in [NP's N]. #| n-hdn_cpd-pl-nlx_c_rbst := noun_n_cmpnd_pl_nonlex_rule & [ RNAME nncpn, ARGS.REST.FIRST.SYNSEM.--MIN non_temp_nom_rel, GENRE robust ]. |# n-hdn_cpd-mnp_c_rbst := noun_n_cmpnd_mnp_mal_rule & [ RNAME nnmp ]. n-hdn_j-n-cpd_c_rbst := noun_adjn_cmpnd_rule & [ RNAME nanc, ARGS.FIRST.SYNSEM.LOCAL.CONT.HOOK.INDEX.SORT nonloc, GENRE robust ]. ;; DPF 2018-04-02 - Restrict to unexpressed spr on head, to avoid title analysis ;; for |the professor Jones| np-hdn_ttl-cpd_c := np_title_cmpnd_rule & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR.FIRST unexpressed, RNAME npnt ]. hdn-np_app-pr_c := appos_prpnct_rule & [ RNAME app, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD.MINORS.MIN nonpro_rel, AGR [ DIV #div, PNG.PN #pn ] ], NH-DTR.SYNSEM [ --MIN non_proper_rel, LOCAL.AGR [ DIV #div, PNG.PN #pn ] ] ]. hdn-np_app-pn-pr_c := appos_prpnct_rule & [ RNAME appr, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD noun & [ MINORS.MIN nom_nbar_rel ], CONT.HOOK.INDEX.DIV - ], NH-DTR.SYNSEM.--MIN named_rel ]. hdn-np_app-r-pr_c := appos_prpnct_pnr_rule & [ RNAME appr, HD-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX.PNG.PN #pn, CAT.HEAD.MINORS.MIN nonpro_rel ], NH-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.PN #pn ]. hdn-np_app-r_c := appos_nopair_pnr_rule & [ RNAME apnr, HD-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX.PNG.PN #pn, CAT.HEAD.MINORS.MIN nonpro_rel ], NH-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG.PN #pn ]. hdn-np_app_c := appos_nopair_rule & [ RNAME appn, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD.MINORS.MIN nonpro_rel, CONT.HOOK.INDEX [ DIV #div, PNG.PN #pn ] ], NH-DTR.SYNSEM [ --MIN nom_nbar_rel, LOCAL.CONT.HOOK.INDEX [ DIV #div, PNG.PN #pn ] ] ]. hdn-np_app-pn_c := appos_nopair_rule & [ RNAME appx, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD.MINORS.MIN nom_nbar_rel, CONT.HOOK.INDEX.DIV - ], NH-DTR.SYNSEM.--MIN named_rel ]. ;; Make this one robust, since second comma is missing, but restrict ;; the second dtr to be noncoord, to avoid competing robust analyses for ;; |Kim, Abrams and Browne arose| hdn-np_app-rbc_c_rbst := appos_rbc_rule & [ RNAME appb, ARGS.REST.FIRST.SYNSEM.LOCAL.CONT.HOOK.INDEX nonconj_ref-ind, GENRE robust ]. hdn-np_app-idf-rbc_c_rbst := appos_indef_rbc_rule & [ RNAME apir, ARGS.REST.FIRST.SYNSEM.LOCAL.CONT.HOOK.INDEX nonconj_ref-ind, GENRE robust ]. ;; Only for paraphrase generation #| hdn-np_app-rev_c := appos_reverse_rule & [ RNAME aprr ]. |# ;; DPF 2018-03-30 - CASE non_nom prevents |game 6 ended|, so instead stamp ;; --BARE - on mother hdn_np-num_c := num_noun_rule & [ RNAME numn, SYNSEM.LOCAL.CAT.HEAD.--BARE - ]. ;; DPF 2017-10-04 - Constraint of unexpressed spr blocks |a cool blue|, so try ;; removing. ;; #| |# hdn_color_c := color_noun_rule & [ RNAME ncol, SYNSEM.LOCAL.CAT.HEAD.--BARE - ]. #| flr-hd_nwh_c := filler_head_rule_non_wh_edgen & [ RNAME fhne, HD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-pol-ques, NH-DTR.SYNSEM.LOCAL.CAT.HEAD p_or_v_or_adv & [ MINORS.MIN independent_rel ] ]. |# #| ;; Good flr-hd_nwh_c := filler_head_rule_non_wh_edgen & [ RNAME fhne, HD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-pol-ques, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN independent_rel ]. |# ;; DPF 2018-09-10 - Deprecate topicalization with pronominal subject in head cl, ;; as in |as for the book, it is written well.| ;; flr-hd_nwh-notprep_c := filler_head_rule_non_wh_edgen & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD n_or_v_or_a ]. flr-hd_nwh-adv_c := filler_head_rule_non_wh_edgen & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD adv ]. flr-hd_nwh_c := filler_head_rule_non_wh_edgen & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK.XARG.PT notpro, NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp ]. flr-hd_nwh-expl_c := filler_head_rule_non_wh_edgen & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK.XARG expl-ind, NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp ]. flr-hd_nwh-not3s_c := filler_head_rule_non_wh_edgen & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG.PN -3s ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp ]. flr-hd_nwh-notit_c := filler_head_rule_non_wh_edgen & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG [ PN 3s, GEN animate ] ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp ]. flr-hd_nwh_c_rbst := filler_head_rule_non_wh_edgen & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG [ PN 3s, GEN neut ] ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp, GENRE robust ]. ;; Topicalization again, as for flr-hd_nwh_c ;; vp_sbrd-pre_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG.PT notpro ]. vp_sbrd-pre-expl_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG expl-ind ]. vp_sbrd-pre-not3s_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG.PN -3s ] ]. vp_sbrd-pre_notit_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG [ PN 3s, GEN animate ] ] ]. vp_sbrd-pre_c_rbst := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.XARG ref-ind & [ PT std, PNG [ PN 3s, GEN neut ] ], GENRE robust ]. flr-hd_nwh-nc_c := filler_head_rule_non_wh_infgen & [ RNAME fhni, HD-DTR.SYNSEM.LOCAL [ CAT [ HEAD verb & [ MINORS.NORM norm_or_no_rel, INV - ], VAL [ SUBJ *olist*, SPR *olist* ] ], CONT.HOOK.INDEX.SF prop-or-pol-ques ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD p_or_adv_or_comp, MODIFD.RPERIPH na_or_- ] ]. flr-hd_nwh-nc-pp_c := filler_head_rule_non_wh_infgen & [ RNAME fhnip, HD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-pol-ques, NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep_or_modnp & [ MINORS.MIN misc_or_state_loc_rel ] ]. ;; DPF 2018-02-20 - Treat fronted adjP as stylistic Yoda-type error, and: ;; restrict to main clauses: ;; |Annoyed we felt| ;; flr-hd_nwh-nc-ap_c_rbst := filler_head_rule_non_wh_infgen & [ RNAME fhnip, SYNSEM.LOCAL.CAT.MC +, HD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-pol-ques, NH-DTR.SYNSEM.LOCAL.CAT.HEAD basic_adj, GENRE robust ]. ;; DPF 2018-02-15 - Block verb |cool| in |is relaxing and cool| vp-vp_crd-fin-t_c := vp_coord_fin_top_phr & [ ARGS < [ ], [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] >, RNAME ctvpf ]. vp-vp_crd-asym-t_c_rbst := vp_coord_asym_top_phr_mal & [ RNAME ctvpr ]. cl-cl_crd-t_c := s_coord_top_phr & [ RNAME cts, ARGS < [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-comm ], [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SF basic-prop ] > ]. cl-cl_crd-im_c_rbst := s_coord_mid_ig_phr & [ RNAME cmsi, ARGS.FIRST.SYNSEM [ MODIFD notmod_or_rmod, LOCAL.CAT.HEAD.MINORS.ALTMIN non_ellipt_rel, --SIND non_conj_event ], GENRE robust ]. ;; DPF 2018-11-09 - Propagate DEF from left dtr, so we can catch robust ;; |all of money and books arrived| ;; np-np_crd-t_c := np_coord_top_eg_rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.DEF #def, ARGS < [ SYNSEM.LOCAL [ AGR.PNG.PN -1s, CONT.HOOK.INDEX.DEF #def ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARED - ] >, RNAME ctnp ]. ;; DPF 2018-02-14 - |I and Kim arrived| => |Kim and I arrived| ;; np-np_crd-i-and_c_rbst := np_coord_top_eg_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM norm_rel ], CASE nom, --MALCASE - ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, RNAME ctnp, GENRE robust ]. ;; DPF 2018-02-14 - |They saw I and Kim| => |They saw Kim and me| ;; np-np_crd-i-me-and_c_rbst := basic_np_coord_top_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE non_nom & #case, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM no_rel ], CASE no_case ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD [ CASE #case, --BARE - ] ] >, RNAME ctnp, GENRE robust ]. ;; |admired Kim and I| - Make this non-robust since the accus-case "I" is ;; already marked as robust ;; DPF 2018-11-12 - Removed ARGS.FIRST..--BARE - since we want robust ;; |She spoke to mother and I| np-np_crd-and-i-me_c := basic_np_coord_top_rule & [ SYNSEM [ LOCAL.CAT.HEAD.CASE non_nom & #case, MODIFD.RPERIPH #rper ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD.CASE #case ], [ SYNSEM [ LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM no_rel ], CASE no_case ], CONJ.CREL.ARG2.PNG.PN 1s ], MODIFD.RPERIPH #rper ] ] >, RNAME ctnp ]. ;; DPF 2018-02-14 - |me and Kim| => |Kim and me| ;; Not sure we want to insist on this reversal for object NPs, so leave as ;; not robust for now. ;; #| np-np_crd-me-and_c_rbst := np_coord_top_eg_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM norm_rel ], CASE acc ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, RNAME ctnp, GENRE robust ]. |# np-np_crd-me-and_c := np_coord_top_eg_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS.NORM norm_rel, CASE acc, --MALCASE - ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, RNAME ctnp ]. ;; DPF 2018-02-14 - |me and Kim| => |Kim and I| ;; np-np_crd-me-i-and_c_rbst := np_coord_top_eg_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM no_rel ], CASE nom ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, RNAME ctnp, GENRE robust ]. np-np_crd-m_c := np_coord_mid_eg_rule & [ RNAME cmne, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--BARED - ], [ SYNSEM.LOCAL.CAT.HEAD.--BARED - ] > ]. ;; Insist on Oxford comma in three-part NP coord ;; DPF 2017-09-12 - But block for temporal nouns as first conjunct, to avoid ;; spurious analysis for |the years 1995 and 2004| ;; np-np_crd-im_c_rbst := np_coord_mid_ig_rule & [ RNAME cmni, SYNSEM.LOCAL.CONJ.CREL.ARG1.SORT entity, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, GENRE robust ]. n-n_crd-im_c_rbst := nbar_coord_mid_ig_rule & [ RNAME cmin, SYNSEM.LOCAL.CONJ.CREL.ARG1.SORT entity, GENRE robust ]. n-n_crd-t_c := nbar_coord_top_1_nondiv_rule & [ SYNSEM.LOCAL.CAT.HEAD.--MALPLCPD #malpl, ARGS.REST.FIRST.SYNSEM.LOCAL.CAT.HEAD.--MALPLCPD #malpl, RNAME ctn ]. hd_imp_c := imperative_mc_rule & [ RNAME imp, ARGS < [ SYNSEM.NONLOC.SLASH 0-dlist ] > ]. ; Block 'weekdays' as meas-np n_mnp_c := bare_measure_np_rule & [ DTR1.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN meas_nom_rel, RNAME mnpb ]. ;; |the cat is two year old| mnp_deg-prd_c_rbst := meas_np_degadv_phrase & [ INFLECTD -, SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD [ PRD + ] ] >, RNAME mnda, GENRE robust ]. mnp_deg-attr_c_rbst := meas_np_degadv_phrase & [ INFLECTD +, SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD [ PRD - ] ] >, RNAME mnda, GENRE robust ]. cl_np-wh_c := np_cp_wh_rule & [ RNAME npsq, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] > ]. ; |what will he say is not known| cl_np-wh_c_rbst := np_cp_wh_rule_mal & [ RNAME npsqr, SYNSEM.LOCAL.CAT.HEAD.CASE nom, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] >, GENRE robust ]. cl_cnj-frg_rbst := frag_sent_conj_rule & [ RNAME frsc, ARGS < [ SYNSEM.LOCAL.CONJ.CREL.PRED _and_c_rel ] >, GENRE robust ]. cl_cnj-frg_c := frag_sent_conj_rule & [ RNAME frsc, ARGS < [ SYNSEM.LOCAL.CONJ.CREL.PRED _but_c_rel ] > ]. vp_fin-3sg-frg_c := frag_vp_fin_3sg_rule & [ RNAME frvs ]. vp_fin-past-frg_c := frag_vp_fin_past_rule & [ RNAME frvd ]. vp_fin-aux-frg_c := frag_vp_fin_aux_rule & [ SYNSEM.PUNCT.RPUNCT.PSF prop, RNAME frvx ]. ;; Prevent robust-comma-marked fragments as dtrs, and only allow with period ;; on first S. ;; cl-cl_runon_c := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX -, PUNCT.RPUNCT basic_clause_punct ] ], [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX - ] ] >, RNAME sns ]. ;; To avoid misanalysis of |we arrived, so Kim left|, constrain right dtr to ;; be MODIFD notmod_or_rmod ;; DPF 2017-09-28 - Constrain second dtr to be non-conjoined, to avoid spurious ;; use of this rule for |we arrived, we ate, and we left.| ;; DPF 2017-12-23 - Also constrain second dtr to exclud mal-3sg and mal-past, ;; to minimize double robustness complexity. ;; cl-cl_runon-cma_c_rbst := run_on_coord_comma_rule & [ ARGS < [ SYNSEM.LEX - ], [ SYNSEM [ LEX -, MODIFD notmod_or_rmod, LOCAL [ CAT.HEAD [ --MAL3SG -, --MALPASt - ], CONT.HOOK.INDEX non_conj_event & [ SF prop ] ] ] ] >, RNAME snsc, GENRE robust ]. ;; Block |First, no school!| cl-np_runon_c := run_on_np_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD verbal, RNAME frsn ]. cl-np_runon_c_rbst := run_on_np_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD frag, RNAME frsn, GENRE robust ]. ;; DPF 2017-04-05 - These rules to manage correct hyphen use in N-V or N-J ;; compounds are too prone to over-use, as in ;; |"Why is the sky blue?" Malia asked.| ;; So let's leave this for later. #| ;; |snow-covered house| with oblig hyphen n-v_j-cpd_c := n_v_cmpnd_rule & [ RNAME nvc, ARGS.FIRST.SYNSEM.PUNCT.RPUNCT hyphen_sgl ]. ;; |snow covered house| with no hyphen ;; No proper name left dtr, to avoid wrong analysis for |Oscar brought fruit| ;; n-v_j-cpd_c_rbst := n_v_cmpnd_rule & [ RNAME nvc, ARGS.FIRST.SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN non_proper_rel, PUNCT.RPUNCT no_punct ], GENRE robust ]. ;; |dog-happy kid| with oblig hyphen n-j_j-t-cpd_c := n_adj_cmpnd_rule & [ RNAME natc, ARGS.FIRST.SYNSEM.PUNCT.RPUNCT hyphen_sgl ]. ;; |dog happy kid| with no hyphen ;; Block |mister Green| ;; n-j_j-t-cpd_c_rbst := n_adj_cmpnd_rule & [ RNAME natc, ARGS.FIRST.SYNSEM [ PUNCT.RPUNCT no_punct, LOCAL.CAT.HEAD.MINORS.NORM no_rel, MODIFD notmod ], GENRE robust ]. ;; |dog-friendly family| with oblig hyphen n-j_j-cpd_c := n_adj_intr_cmpnd_rule & [ RNAME naic, ARGS.FIRST.SYNSEM.PUNCT.RPUNCT hyphen_sgl ]. ;; |dog friendly family| with no hyphen ;; Block |mister Green| ;; n-j_j-cpd_c_rbst := n_adj_intr_cmpnd_rule & [ RNAME naic, ARGS.FIRST.SYNSEM [ PUNCT.RPUNCT no_punct, LOCAL.CAT.HEAD.MINORS.NORM no_rel, MODIFD notmod ], GENRE robust ]. |# n-j_j-cpd_c := n_adj_intr_cmpnd_rule & [ RNAME naic, ARGS.FIRST.SYNSEM.PUNCT.RPUNCT hyphen_sgl ]. ;; For now, block proper names, to avoid spurious use for ;; |"Why is the sky blue?" Malia asked.| ;; n-v_j-cpd_c := n_v_cmpnd_rule & [ RNAME nvc, SYNSEM.LOCAL.CAT.HEAD.--SBRD -, ARGS.FIRST.SYNSEM.--MIN non_proper_rel ]. ;; 2018-03-22 - Constrain dtr to be HS-LEX - so we can avoid bare-NP for ;; simple robust |something| while getting robust |important something|, ;; since the adj_n rule stamps HS-LEX - on the mother. ;; DPF 2018-11-09 - Added INDEX.DEF - to catch robust |all of money| ;; hdn_bnp_c := bare_np_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HS-LEX -, SYNSEM.LOCAL.CONT.HOOK.INDEX.DEF -, RNAME bnp ]. ;; DPF 2018-11-09 - Oversimplifying, stamp DEF + on all non-bare NPs, to let ;; us catch robust |all of money| without too many false positives for the ;; robust partitive det_prt-indef_dlr_rbst. sp-hd_n_c := hspec_rule & [ SYNSEM.LOCAL.CONT.HOOK.INDEX.DEF +, RNAME sph ]. ;;; From erg/arboretum/mal-constructions.tdl ;; Commented out in constructions.tdl. hdn_bnp_c_rbst := bare_np_sg_phrase_robust & [ RNAME bnpr ]. ;; DPF 2018-04-03 - Generalize SPR from canonical_synsem hdn_bnp-num_c := num_np_rule & [ ARGS < [ SYNSEM.LOCAL.CAT [ HEAD.--BARE -, VAL.SPR < canonical_or_unexpressed > ] ] >, RNAME npnb ]. ; Allow fronted NPs, but treat as stylistically deprecated, only in matrix cl. ; Also block deictics, to avoid spurious parse for |that tree is| ; Also restrict to comma-marked filler, to avoid spurious analysis for ; |my friend Jordan and I told scary stories| ;; DPF 2017-10-04 - Let's stop treating fronting as robust, but keep the comma ;; on the non-head to avoid spurious ambiguity. #| np_fillhead_non_wh_rbst := filler_head_rule_non_wh & [ RNAME fhnx, SYNSEM.LOCAL.CAT.MC +, HD-DTR.SYNSEM [ LEX -, LOCAL.CONT.HOOK.INDEX.SF prop ], NH-DTR.SYNSEM [ LOCAL.CAT [ HEAD basic_noun & [ MINORS [ MIN non_temp_nonpro_rel, NORM norm_or_no_rel ] ], VAL [ SUBJ *olist*, SPR *olist* ] ], PUNCT.RPUNCT comma_punct ], GENRE robust ]. |# ; Also allow fronted directional PPs, but also deprecated pp_fillhead_non_wh_rbst := filler_head_rule_non_wh_infgen & [ RNAME fhny, NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep & [ MINORS.MIN dir_rel ], GENRE robust ]. ; Allow "Kim arrived Tuesday" as stylistically deprecated, but still disallow ; "Mary from London" ;; DPF 2012-02-01 - It's hard to see how to prevent the non-robust analysis ;; of |Tuesday| as proper_np alongside this one, so we disable it. #| proper_np_rbst := proper_np_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN dofw_rel, MODIFD hasmod & [ LPERIPH + ], LEX + ] ] >, RNAME nppx, GENRE robust ]. |# num_det_1_rbst := mal_num_det_rule_1 & [ RNAME ndr1 ]. num_det_2_rbst := mal_num_det_rule_2 & [ RNAME ndr2 ]. ;; Need to adjust the REPP rules to block the normal compound rule in case ;; the ORTH values are the same, before enabling this rule. Also modify ;; n_optcomp rule to preserve KEYREL.PRED value. ;; ;;n-hdn_cpd-dbl_rbst := noun_n_cmpnd_rule_rbst & ;; [ RNAME nndr ]. ;; Constrain to SORT nom-event to block unwanted reading for ;; |Kim is more faster than Browne| ;; DPF 2017-09-12 - But this blocked |Two ate pie|, and anyway the parse ranking ;; currently gets the "more faster" example right, so undo. ;; ;num_prt-nc_c := partitive_num_nocomp_rule & ; [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SORT nom-event, ; RNAME pnn ]. ; Block robust |are| np_prt-poss_c := partitive_np_rule & [ SYNSEM.LOCAL.CAT.HEAD.--BARE -, RNAME npp ]. ;; DPF 2017-09-07 - Add identity of dtr's XARG and mother's MOD..INDEX so we ;; can impose temporal constraints to flag |?He is a student last year| ;; The extended lexicon includes three entries for e.g. |last|: one for ;; modifying nominals, one for well-formed modifying of non-nouns, and one ;; for mal-formed modifying of VPs with wrong tense. np_adv_c := npadv_mod_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.--SIND.E #tam, ARGS.FIRST.SYNSEM.LOCAL.CONT.HOOK.XARG.E #tam, RNAME nadv ]. ;; DPF 2018-07-25 - Prevent this from fronting, to avoid spurious analyses as ;; in |three dog barks| ;; DPF 2018-09-10 - Block simple numbers, to avoid use for |[in table] 4| np_adv-mnp_c := npadv_measnp_rule & [ SYNSEM.LOCAL.CTXT.ACTIVATED -, ARGS.FIRST.SYNSEM.--MIN meas_nom_rel, RNAME nadvm ]. ;; Block robust plural-compound analysis for |Turtles swim| ;; DPF 2018-02-15 - To block |turtles swim|, changed LPERIPH from bool to - ;; np_nb-frg_c := frag_nbar_rule & [ ARGS.FIRST.SYNSEM.MODIFD.LPERIPH -, RNAME frnb ]. v-v_crd-fin-ncj_c_rbst := v_coord_fin_top_noconj_phr & [ RNAME ctvr, GENRE robust ]. ;; DPF 2018-02-15 - Split vp_np-ger_c into two, one for coord VPs and one non-c, ;; so we can avoid spurious robust number disagreement for e.g. ;; |singing and laughing bother them| ;; vp_np-ger_c := vgerund_rule & [ ARGS < [ SYNSEM.LOCAL.CONT.HOOK.INDEX non_conj_event ] >, RNAME vger ]. vp_np-ger-crd_c := vgerund_rule & [ ARGS < [ SYNSEM.LOCAL.CONT.HOOK.INDEX conj_event ] >, SYNSEM.LOCAL.CAT.HEAD.--BARE -, RNAME vger ]. ;; DPF 2018-03-06 - Need this for |a lot of times, we arise|, but it can ;; be overly enthusiastic, especially in combination with other robust rules, ;; as in |they will [go out to] [a restaurant to eat]|. Try blocking ;; the instrumental relative, for one, and constrain to only AGR 3p, to block ;; ordinary singular indef NPs. np_indef-adv_c := npindef_adv_rule & [ RNAME niv, ARGS < [ SYNSEM.LOCAL.AGR.PNG.PN 3p ]> ]. num_prt-of_c := partitive_num_ppof_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL.AGR.DIV +, RNAME pno ]. ;; To avoid false use with underspec NPs as in |one of the best kind|, ;; require SORT animate, which excludes `kind' which is GEN neut. num_prt-of_c_rbst := partitive_num_ppof_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL.AGR [ PNG [ PN 3s, GEN animate ], DIV - ], ARGS.FIRST.SYNSEM.LOCAL.AGR.DIV -, RNAME pnor, GENRE robust ]. ;; Restrict to proper names, to avoid spurious |Dogs, cats and mice ran| np_voc-pre_c := vocative_np_lmod_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN proper_q_rel, RNAME npvl ]. ;; DPF 2018-03-28 - Make the active ones robust, to flag preference for full ;; rel, as in |people to read books thrive| => |people who read books thrive| ;; But it leads to too many false positives, so disable. ;; #| cl_rc-inf-nwh-sb_c_rbst := inf_non_wh_subj_rel_rule & [ RNAME rcls, ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN nonpass_rel, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.--MIN non_temp_nom_rel, GENRE robust ]. cl_rc-inf-nwh-sb_c := inf_non_wh_subj_rel_rule & [ RNAME rcls, ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN passive_rel ]. |# cl_rc-inf-nwh-sb_c := inf_non_wh_subj_rel_rule & [ RNAME rcls ]. ;; DPF 2018-03-30 - Disprefer lexical prep as second dtr - usually strange ;; analysis ;; DPF 2018-09-12 - Also exclude lexical prep as first dtr, to avoid for ;; |after a while| pp-pp_mod_c := prep_mod_prep_rule & [ ARGS < [ SYNSEM nonlex_synsem ], [ SYNSEM nonlex_synsem ] >, RNAME ppmpp ]. pp-pp_mod_c_rbst := prep_mod_prep_rule & [ ARGS.REST.FIRST.SYNSEM abstr_lex_synsem, RNAME ppmppr, GENRE robust ]. vp_nfin-frg_c := frag_vp_nonfin_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CONJ cnil, RNAME frvn ]. ;; Block |but then| with robust `then' hd-aj_cmod_c := conj_mod_int_rule & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.HEAD.AUX -, RNAME clmi ]. hd-cmp_2_c := never_unify_rule. ;;aj-hd_int-inv_c := never_unify_rule. hdn-aj_rc-propr_c := never_unify_rule. hd-aj_vmod_c := never_unify_rule. hd-aj_vmod-s_c := never_unify_rule. ;; Let's try reenabling this one, to get |we spend hours or sometimes all day| ;hd-aj_cmod_c := never_unify_rule. hd-aj_cmod-s_c := never_unify_rule. vp_sbrd-prd-ell_c := never_unify_rule. np-hdn_cpd-pr_c := never_unify_rule. np-hdn_ttl-cpd-pl_c := never_unify_rule. n-hdn_cpd-pl_c := never_unify_rule. n-hdn_j-n-cpd_c := never_unify_rule. flr-hd_nwh-nc-np_c := never_unify_rule. cl-cl_crd-im_c := never_unify_rule. np-np_crd-i-t_c := never_unify_rule. np-np_crd-i2-t_c := never_unify_rule. np-np_crd-i3-t_c := never_unify_rule. np-np_crd-im_c := never_unify_rule. n-n_crd-3-t_c := never_unify_rule. n-n_crd-im_c := never_unify_rule. vp_cp-sb_c := never_unify_rule. vp_cp-sb-inf_c := never_unify_rule. np_voc-post_c := never_unify_rule. ;np_voc-pre_c := never_unify_rule. ;cl_cnj-frg_c := never_unify_rule. vp_fin-frg_c := never_unify_rule. cl_cp-frg_c := never_unify_rule. cl_rel-frg_c := never_unify_rule. aj-np_frg_c := never_unify_rule. aj-np_int-frg_c := never_unify_rule. np-aj_rorp-frg_c := never_unify_rule. nb-aj_frg_c := never_unify_rule. ;; DPF 2017-09-05 - Re-enabled this rule, but only with period on first S, ;; to admit a sequence of two full sentences. ;cl-cl_runon_c := never_unify_rule. cl-cl_runon-cma_c := never_unify_rule. cl-rc_c := never_unify_rule. cl_adv_c := never_unify_rule. cl_rc-instr_c := never_unify_rule. w-w_fw-seq-m_c := never_unify_rule. w-w_fw-seq-t_c := never_unify_rule. ;; xp_brck-pr_c := never_unify_rule. xp_str-brck-pr_c := never_unify_rule. ;; DPF 2017-09-22 - Restored this rule, to get ;; |I was happy and proud and so was the team| ;;hd_inv-nwh_c := never_unify_rule. ;; Avoid |[the king, John] Hancock| hdn-np_app-pnr-rbc_c := never_unify_rule. v-v_crd-fin-ncj_c := never_unify_rule. ;; |the cats toy disappeared| np-aj_j-frg_c := never_unify_rule. hdn-cl_prnth_c := never_unify_rule. ;; Problematic for |For one thing, a hungry student is a bad student, so ...| vp_np-ger-gap_c := never_unify_rule. hdn-np_app-rbc_c := never_unify_rule. hdn-np_app-idf-rbc_c := never_unify_rule.