;; DPF 2020-05-08 - Exclude informal comma so we get robust error for ;; |The cat, chases the mouse.| sb-hd_mc_c := subjh_mc_rule & [ ARGS.FIRST.SYNSEM.PUNCT.RPUNCT comma_or_pair_or_no_punct, RNAME sbhd ]. ;; DPF 2020-09-30 - Need separate rule to admit "The cat, however, slept." sb-hd_mc_cma_mod_c := subjh_mc_rule & [ ARGS < [ SYNSEM.PUNCT.RPUNCT rbcomma_punct ], [ SYNSEM.MODIFD hasmod ] >, RNAME sbhd ]. ;; Added new specialized rule for coord lex adj ;; mrk-nh_ajlex_c := hmark_a_lex_rule & [ RNAME hmkl ]. ;; 2020-09-17 - Added --COORD + to block robust "the man and nature" mrk-nh_n_c := hmark_nbar_rule & [ RNAME hmkb, ARGS.REST.FIRST.SYNSEM.LOCAL.CAT.HEAD [ --BARE -, --COORD + ] ]. ;; 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 ], [ ] >, RNAME mhn ]. ;; Block |feeding farm animals food| aj-hdn_adjn_c := adj_adjn_rule & [ ARGS.REST.FIRST.SYNSEM.LOCAL.CAT.HEAD.--MALPLCPD -, RNAME mhna ]. 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 ] ]. ; 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 ]. hd-aj_vmod_c := 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, MODIFD hasmod, --SIND nonconj_ref-ind ] ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM nonlex_synsem & [ LOCAL.CAT [ HEAD prep, VAL.SPR *synlist* ] ] ]. ;; Add separate rule for |knew then that S| ;; Generalize to |tried vigorously to escape| ;; DPF 2020-05-11 - But COMPS..HEAD comp is too strong, since it blocks WH-S, ;; so generalize to verbal, with VFORM fin_or_inf. ;; vmod_i_scomp_c := v_mod_int_rule & [ RNAME vlmi, SYNSEM.LOCAL.CAT [ HEAD verb, VAL.COMPS.FIRST [ LEX -, LOCAL.CAT.HEAD verbal & [ VFORM fin_or_inf ] ] ], HD-DTR.SYNSEM [ LEX +, LOCAL.CAT.HEAD.--MALPASCP na ] ]. ;; 2020-11-24 - --BARESG - blocks robust "each [student will be provided...]" cl_rc-fin-nwh_c := fin_non_wh_rel_rule & [ RNAME rclf, ARGS.FIRST.SYNSEM.LOCAL.CONT.HOOK.XARG.--BARESG - ]. 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, ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--VSBRD +, RNAME scpr ]. ;; DPF 2020-08-01 - LEX - blocks "stood there frozen" so remove and constrain ;; for individual passives. vp_sbrd-prd-pas_c := subconj_prdp_pas_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.--PASSNOBY - ] ] >, RNAME scps ]. ;; DPF 2020-08-01 - LEX - blocks "stood there motionless" so remove and ;; constrain for individual adjectives ;; vp_sbrd-prd-aj_c := subconj_prdp_adj_rule & [ RNAME scpa, ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.--SBRD na_or_+ ] ] > ]. ;; DPF 2018-02-15 - For adjectives such as |sick| or |drunk| which are readily ;; usable as depictives. ;; 2020-05-27 - Block hyphen on head, to avoid for |warm-blooded| ;; 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, PUNCT.RPUNCT comma_or_no_punct ] ] > ]. ;; Limit to -ing form, and restrict main clause to INV - to avoid ;; |reading is her favorite.| ;; Also require comma ;; DPF 2020-11-25 - Now that we require comma, generalize VFORM ;; vp_sbrd-pre-lx_c := subconj_prdp_v_init_lex_rule & [ 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| ;; DPF 2020-07-02 - Exclude robust passive "his eyes met Lucy" np-prdp_vpmod_c := np_pred_post_rule & [ RNAME nppd, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD.--MALCASE -, AGR.PNG.PN -1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--PASSNOBY - ] > ]. np-prdp_vpmod-pre_c := np_pred_pre_rule & [ RNAME nppdb, 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. ;; DPF 2019-04-26 - Added CASE non_nom to block robust |Kim and me skating| np-hdn_cpd_c := np_n_cmpnd_rule & [ RNAME npn, ARGS < [ SYNSEM.LOCAL.CAT.HEAD [ CASE non_nom, --BARE - ] ], [ ] > ]. ;; DPF 2019-01-21 - Block robust |in a classroom learning math| vis --MALCM -. ;; 2020-04-09 - Generalized --MALAGR - to na_or_- for |phone number| n-hdn_cpd_c := noun_n_cmpnd_rule & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD.--BARE -, SYNSEM.LOCAL.CAT.HEAD [ --MALCM -, --MALAGR na_or_- ], RNAME nnc ]. n-hdn_cpd-pl-nlx_c := never_unify_rule. ;; Block robust NP |the rain ruined my plans| vp_rc-redrel_c := red_rel_cl_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--PASSNOBY -, RNAME rclv ]. ;; DPF 2018-04-02 - Restrict to unexpressed spr on head, to avoid title analysis ;; for |the professor Jones| ;; 2020-08-01 - Prevent robust cap in left dtr: "Dragon Boat Festival" np-hdn_ttl-cpd_c := np_title_cmpnd_rule & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR.FIRST unexpressed, NH-DTR.ORTH.TOKCASE.TOKCASEROB -, RNAME npnt ]. hdn-np_app-pr_c := appos_prpnct_rule & [ RNAME app, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN nonpro_rel, --BARE - ], AGR [ DIV #div, PNG.PN #pn ] ], NH-DTR.SYNSEM [ --MIN non_proper_rel, LOCAL.AGR [ DIV #div, PNG.PN #pn ] ] ]. ;; Added specialized rule hdn-np_app-pn-pr_c := appos_prpnct_rule & [ RNAME appr, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD noun & [ MINORS.MIN nom_nbar_rel, --BARE - ], CONT.HOOK.INDEX.DIV - ], NH-DTR.SYNSEM.--MIN abstr_named_np_rel ]. ;; DPF 2019-09-10 - Block for |Lucy's English| via HD-DTR..RPERIPH na_or_- ;; DPF 2019-11-11 - But this also blocks |Her pet Henry|, so undo, and instead ;; exclude HEAD partn hdn-np_app-r-pr_c := appos_prpnct_pnr_rule & [ RNAME appr, HD-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX.PNG [ PN #pn, GEN #gen ], CAT.HEAD non_partn & [ MINORS.MIN nonpro_rel, --BARE - ] ], NH-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ PN #pn, GEN #gen ] ]. 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, --BARE - ] ], 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, --BARE - ], CONT.HOOK.INDEX [ DIV #div, PNG.PN #pn ] ], NH-DTR.SYNSEM [ --MIN nom_nbar_rel, LOCAL.CONT.HOOK.INDEX [ DIV #div, PNG.PN #pn ] ] ]. ;; Added specialized rule hdn-np_app-pn_c := appos_nopair_rule & [ RNAME appx, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN nom_nbar_rel, --BARE - ], CONT.HOOK.INDEX.DIV - ], NH-DTR.SYNSEM.--MIN named_rel ]. ;; Avoid |[the king, John] Hancock|, so comment out hdn-np_app-pnr-rbc_c := never_unify_rule. ;; DPF 2019-04-29 - Restrict to non-conj right dtr, to avoid normally unwanted ;; analysis for |A, B, C and D|- hdn-np_app-idf_c := appos_indef_rule & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.--BARE -, ARGS.REST.FIRST.SYNSEM.--SIND nonconj_ref-ind, RNAME appi ]. ;; 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 -, VAL.SPR.FIRST.LOCAL.CAT.HEAD.--POSSRBST - ] ]. ;; 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 - ]. ;; DPF 2018-09-10 - Deprecate topicalization with pronominal subject in head cl, ;; as in |as for the book, it is written well.| ;; DPF 2019-06-06 - Exclude VP extraction for now, to avoid spurious ;; |admiring Kim, we had them| ;; flr-hd_nwh-notprep_c := filler_head_rule_non_wh_edgen & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD n_or_a ]. ;; For |We arrived, said Kim| flr-hd_nwh-cp_c := filler_head_rule_non_wh_edgen & [ NH-DTR.SYNSEM.LOCAL.CAT [ HEAD verb, VAL.SUBJ *anti_list* ] ]. 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 non_refl, 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 ]. ;; DPF 2019-06-05 - Make non-robust, to allow |In winter, it is a good time ;; to watch movies| flr-hd_nwh_c_neut := 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 ]. ;; Block robust verb agreement in "what bothers Kim" flr-hd_wh-nmc-fin_c := filler_head_rule_wh_nr_fin & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.--MALN3SG -, RNAME fhf ]. ;; 2020-07-24 - Propagate --MALAGR from hd-dtr's SLASH to mother's MOD, to ;; block robust |the number of cats who admire Kim arose| flr-hd_rel-fin_c := filler_head_fin_np_rel_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.HEAD.--MALAGR #malagr, ARGS < [], [ SYNSEM.NONLOC.SLASH.LIST.FIRST.CAT.HEAD.--MALAGR #malagr ] >, RNAME fhr ]. ;; Topicalization again, as for flr-hd_nwh_c ;; DPF 2021-01-12 - Block ranking: "[owning animal] companions bothers him" ;; vp_sbrd-pre_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL [ CAT.HEAD [ --MALN3SG -, --MAL3SG - ], CONT.HOOK.XARG.PT notpro ] ]. ;; Block premod head, to avoid "Helping others [when they arise, it rains]" vp_sbrd-pre-expl_c := subconj_prdp_v_init_rule & [ RNAME scv, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST [ LOCAL.CONT.HOOK.XARG expl-ind, MODIFD notmod_or_rmod ] ]. 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_not-it_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-it_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 neut ] ] ]. 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 ] ]. ;; Block robust nonconj coord in dtrs ;; DPF 2020-04-10 - Added --MALN3SG - and --MAL3SG - to also block robust ;; |are important [and by this] means you arrive| ;; DPF 2020-09-30 - Added --MALINTR - to block robust |buys and sells books| ;; vp-vp_crd-fin-t_c := vp_coord_fin_top_phr & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD [ --NOCJCRD -, --MALN3SG -, --MAL3SG -, --MALINTR - ] ], [ SYNSEM.LOCAL.CAT.HEAD [ --NOCJCRD -, --MALN3SG -, --MAL3SG - ] ]>, RNAME ctvpf ]. vp-vp_crd-nfin-t_c := vp_coord_nonfin_top_phr & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD - ], [ SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD - ] >, RNAME ctvpn ]. vp-vp_crd-nfin-m_c := vp_coord_nonfin_mid_eg_phr & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD -, RNAME cmvpn ]. vp-vp_crd-nfin-im_c := vp_coord_nonfin_mid_ig_phr & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD -, RNAME cmvpi ]. ;; DPF 2019-10-12 - Block mal-3sg on right dtr to overcome ranking deficiency ;; for e.g. |With interest we watched the girl and the boy arrive.| ;; DPF 2019-11-11 - Generalize right dtr's SF from basic-prop to prop-or-ques, ;; to get |We arrived, and why not join us?| ;; DPF 2020-02-07 - Re 2019-10-12, this sadly prevents robust ;; |She arrived, but she weren't noticed.| If ranking improves, undo this. ;; 2021-01-15 - Also allow imperative as right dtr, as in ;; "You should come, and if you arrive early, see me." ;; cl-cl_crd-t_c := s_coord_top_phr & [ RNAME cts, ARGS < [ SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-comm ], [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] > ] . ;; DPF 2019-05-06 - Disabled robust trigger for missing `Oxford' comma, per ;; request from Up366. ;; cl-cl_crd-im_c_ignore := 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 ] ]. ;; DPF 2018-11-09 - Propagate DEF from left dtr, so we can catch robust ;; |all of money and books arrived| ;; DPF 2019-01-21 - Propagate --POSSRBST from left dtr to block robust ;; |bring me chicken soup and some crackers| ;; DPF 2019-04-29 - The [--BARED -] on second dtr prevents robust ;; |the dog and cat|, but prevents robust |we admire firework and firecracker|. ;; So split into two, where in the second rule the first dtr does not have an ;; explicit quantifier, and the second dtr allows robust bare singular. ;; np-np_crd-t_c := np_coord_top_eg_rule & [ SYNSEM.LOCAL [ CAT.HEAD [ --POSSRBST #pr, CASE #case ], CONT.HOOK.INDEX.DEF #def ], ARGS < [ SYNSEM.LOCAL [ AGR.PNG.PN -1s, CAT.HEAD [ --POSSRBST #pr, --BARED - ], CONT.HOOK.INDEX.DEF #def ] ], [ SYNSEM.LOCAL.CAT.HEAD [ --BARED -, CASE #case ] ] >, RNAME ctnp ]. ;; DPF 2019-09-27 - Let's try excluding robust singular as left conj, to avoid ;; |... long-time [river and we] ...| np-np_crd-t-overt_c := np_coord_top_eg_rule & [ SYNSEM.LOCAL [ CAT.HEAD [ --POSSRBST #pr, CASE #case ], CONT.HOOK.INDEX.DEF #def ], ARGS < [ SYNSEM.LOCAL [ AGR.PNG.PN -1s, CAT.HEAD [ --POSSRBST #pr, --BARE -, MINORS.ALTMIN implicit_q_rel ], CONT.HOOK.INDEX.DEF #def ] ], [ SYNSEM.LOCAL.CAT.HEAD.CASE #case ] >, RNAME ctnp ]. ;; |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 := np_coord_top_eg_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE acc, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS [ MIN pron_rel, NORM norm_rel ], CASE acc, --MALCASE - ], AGR.PNG.PN 1s ] ], [ SYNSEM.LOCAL.CAT.HEAD.--BARE - ] >, RNAME ctnp ]. 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| ;; DPF 2019-05-06 - Disabled robust trigger for missing `Oxford' comma, per ;; request from Up366. ;; np-np_crd-im_c_ignore := 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 - ] > ]. n-n_crd-im_c_ignore := nbar_coord_mid_ig_rule & [ RNAME cmin, SYNSEM.LOCAL.CONJ.CREL.ARG1.SORT entity ]. 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 ]. mnp_deg-bre_c := meas_np_degadv_bare_attr_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--MALPL -, RNAME mndb ]. cl_np-wh_c := np_cp_wh_rule & [ RNAME npsq, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] > ]. 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, CONJ cnil ], LEX -, PHON.ONSET.--TL.FIRST.+CLASS.+CASE capitalized & [ TOKCASEROB - ] ] ] >, RNAME sns ]. cl-cl_runon_semi_c := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX -, PUNCT.RPUNCT semicol_or_hyphen ] ], [ SYNSEM [ LOCAL [ CAT.HEAD verb, CONJ cnil ], LEX - ] ] >, RNAME sns ]. ;; DPF 2019-07-12 - Enable only for free-relatives, as in ;; |We won. What fun it was!| cl-np_runon_c := basic_run_on_np_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, NONLOC #nonloc ] ], [ SYNSEM [ PUNCT.LPUNCT lparen_or_dq_or_no_punct, LOCAL.CAT [ HEAD partn & [ MINORS.ALTMIN no_rel, --POSSRBST - ], VAL.SPR < unexpressed > ], NONLOC #nonloc, PHON.ONSET.--TL.FIRST.+CLASS.+CASE capitalized & [ TOKCASEROB - ] ] ] >, RNAME frsn ]. ;;cl-np_runon_c := never_unify_rule. ;; DPF 2019-06-24 - This one is too enthusiastic, e.g. ;; |All kids love to celebrate the Spring Festival because of new clothes, fireworkers and lots of gift money.| ;; DPF 2019-07-12 - Let's try reactivating this, but exclude coord NP, to get ;; |I can go swimming tomorrow, what a good news!| ;; DPF 2019-09-30 - Break this into two, not complaining if use clause punct. ;; DPF 2020-04-10 - Back to making this non-robust, since we want ;; |We arrived early, a common custom.| ;; DPF 2020-09-29 - Block robust subj-hd-comma first dtr, to avoid for ;; "These houses, crowded closely together, [NP share walls]." cl-np_runon-comma_c := basic_run_on_np_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb & [ --SBJCMA - ], PUNCT.RPUNCT hyphen_or_comma ] ], [ SYNSEM [ PUNCT.LPUNCT lparen_or_dq_or_no_punct, LOCAL.CAT [ HEAD noun & [ MINORS.ALTMIN quant_rel ], VAL.SPR *olist* ], NONLOC [ SLASH 0-dlist, REL 0-dlist ], --SIND nonconj_ref-ind ] ] >, RNAME frsn ]. ;; DPF 2019-11-19 - ALTMIN quant_rel on NP dtr blocks free relatives, to avoid ;; spurious robust for |We arise. What great news it is.| cl-np_runon_c_norm := basic_run_on_np_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, PUNCT.RPUNCT clause_punct ] ], [ SYNSEM [ PUNCT.LPUNCT lparen_or_dq_or_no_punct, LOCAL.CAT [ HEAD noun & [ MINORS.ALTMIN quant_rel, --POSSRBST - ], VAL.SPR *olist* ], NONLOC [ SLASH 0-dlist, REL 0-dlist ], --SIND nonconj_ref-ind, PHON.ONSET.--TL.FIRST.+CLASS.+CASE capitalized & [ TOKCASEROB - ] ] ] >, RNAME frsn ]. 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.| ;; |snow-covered house| with oblig hyphen ;; DPF 2019-10-30 - But we want to allow |tree covered mountain| even without ;; a hyphen, so relax this constraint. ;; DPF 2020-04-10 - Removed recently added NH LPERIPH bool: |peace-loving| ;; DPF 2020-08-02 - Changed --SBRD - to na, to block robust ;; n-v_j-cpd_c := n_v_cmpnd_rule & [ RNAME nvc, SYNSEM.LOCAL.CAT.HEAD.--SBRD na, ARGS < [ SYNSEM [ --MIN non_proper_rel, LOCAL.CAT.HEAD.--CPDNHD +, PUNCT.RPUNCT hyphen_sgl_or_no_punct ] ], [ SYNSEM.LOCAL.CAT.HEAD.--PASSNOBY - ] > ]. ;; 2020-04-09 - Block |[total number of patients] [infected and patient]| n-j_crd-t_c := noun_adj_coord_rule & [ RNAME ctnj, ARGS.FIRST.SYNSEM.LEX + ]. ;; 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 ]. ;; 2020-11-25 - Block "...completely, her" hdn_bnp-qnt_c := bare_npq_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR.FIRST.PUNCT.RPUNCT no_punct, RNAME npbq ]. ;; 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 ]. ;; Block [[[acquire and get] much] advice] hd-hd_rnr_c := right_node_raise_vp_rule & [ ARGS.FIRST.SYNSEM.MODIFD notmod, RNAME rnrv ]. ;; Need to adjust the REPP rules to block the normal compound rule in case ; Block robust |are| ;; DPF 2019-09-10 - Avoid modif by rel clause |Lucy's English has improved| np_prt-poss_c := partitive_np_rule & [ SYNSEM [ LOCAL.CAT.HEAD.--BARE -, MODIFD.RPERIPH + ], 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. ;; 2019-08-16 - Block for |Winters are good times| ;; Exclude prefixed comma on dtr, to avoid for |...caged ,their feathers ...| ;; DPF 2019-11-11 - MOD..ALTMIN non_ellipt_rel sadly blocks |We will tomorrow|. ;; So undo, and see what this was doing. np_adv_c := npadv_mod_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.--SIND.E #tam, ARGS.FIRST.SYNSEM [ LOCAL.CONT.HOOK.XARG.E #tam, PUNCT.LPUNCT lparen_or_dq_or_no_punct ], 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 ]. ;; 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| ;; DPF 2020-05-28 - Block spurious capitalization, so we can foreground named ;; entities such as "Caring for Our Forests" ;; 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 -, CONT.HOOK.INDEX conj_ref-ind ], 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. ;; DPF 2019-01-20 - Also try blocking attachment to extracted VP, to avoid this ;; analysis for e.g. |that the world is __ a book| np_indef-adv_c := npindef_adv_rule & [ RNAME niv, ARGS < [ SYNSEM.LOCAL [ AGR.PNG.PN 3p, CAT.HEAD.--BARED - ] ] >, SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.NONLOC.SLASH 0-dlist ]. num_prt-of_c := partitive_num_ppof_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL.AGR [ DIV +, DEF + ], RNAME pno ]. ;; Catch |one of the most cats but avoid robust |one of several cats|, ;; |one of many cats| ;; Restrict to proper names, to avoid spurious |Dogs, cats and mice ran| ;; 2020-07-12 - But we want "Students, open your books", so let's try ;; splitting rule into one for imperatives and another with propers only to ;; include non-imperatives. #| np_voc-pre_c := vocative_np_lmod_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ MINORS.ALTMIN proper_q_rel, --BARED - ], RNAME npvl ]. |# np_voc-pre_c := vocative_np_lmod_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ MINORS.ALTMIN proper_q_rel, --BARED - ], RNAME npvl ]. np_voc-imp-pre_c := vocative_np_lmod_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ MINORS.ALTMIN implicit_q_rel, --BARED - ], SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CAT.HEAD.VFORM imp_vform, RNAME npvl ]. ;; 2020-05-07 - Block mal-intrans VPs as in |poster to bring|, via hack --MAL3SG ;; cl_rc-inf-nwh-sb_c := inf_non_wh_subj_rel_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--MAL3SG -, RNAME rcls ]. cl_rc-inf-nwh_c := inf_non_wh_rel_rule & [ RNAME rcli, ARGS.FIRST.SYNSEM.LOCAL.CONT.HOOK.XARG non_expl-ind ]. ;; 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 ]. 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 ]. ;; Avoid robust second conjunct in |cleaner and cleaner| ;; j-j_crd-prd-t_c := adj_pred_coord_top_phr & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR *olist* ], [ SYNSEM.LOCAL.CAT.VAL.SPR *olist* ] >, RNAME ctap ]. ;; Block |tall and twenty| with decade |twenties| j-n_crd-t_c := adj_noun_coord_rule & [ ARGS < [], [ SYNSEM.LOCAL.CONJ.CPNG.PN 3s ] >, RNAME ctjn ]. ;; Block for |as he said, we arise| r_cl-frg_c := frag_sent_adv_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--SBRDFRG +, RNAME frrc ]. ;; Block for |as he said, we arise| with nmod variant of "as" ;; Also block for "in" |in the first place he ...|, until ranking improves. FIX ;; DPF 2020-09-21 - We want PP-frag for "We arrived at 7:00pm.in the morning." #| pp_frg_c := frag_pp_ind_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--SBRDFRG +, RNAME frpi ]. |# pp_frg_c := frag_pp_ind_rule & [ RNAME frpi ]. ;; Propagate --SBRDFRG in coord structures ppr-ppr_crd-t_c := pp_predp_coord_top_phr & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--SBRDFRG #bool, SYNSEM.LOCAL.CAT.HEAD.--SBRDFRG #bool, RNAME ctpx ]. ;; DPF 2019-10-15 - Added --BARE + to block these as subjects of robust non3sg, ;; as in |what caused the accident remains unknown| ;; DPF 2019-11-11 - But this wrongly blocks np-adv |We arise whenever we arrive| ;; so instead constrain lexical entry free-rel "what" ;; hd-cl_fr-rel_c := free_rel_rule & [ ARGS < [ ], [ SYNSEM.LOCAL.CAT.HEAD [ --MAL3SG -, --MALN3SG - ] ] >, RNAME frf ]. ;; 2019-06-20 - Exclude for |are what bother Kim|, |are who we admire| ;; 2020-08-11 - Exclude with verbs that have v_np-cp_... subcat, to catch ;; robust "told him that do not be late" cl-rc_c := vp-final-relcl_phrase & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ MINORS.ALTMIN non_ellipt_rel, --CLRC + ], RNAME src ]. ;; 2019-09-14 - Block for robust |stream poured down the valley| ;; DPF 2020-04-06 - Block free relatives |when an earthquake happens, try...| np_frg_c := frag_np_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ --BARED -, MINORS.NORM quantity_or_no_rel ], RNAME frnp ]. ;; DPF 2019-09-14 - Add --BARE na to prevent these with robust copula "are" as ;; in |what attract tourists are ...| cl_np-wh_c := np_cp_wh_rule & [ RNAME npsq ]. np-cl_indef_c := npindef_s_rule & [ ARGS.FIRST.SYNSEM.--SIND.--BARESG -, RNAME nis ]. hd_imp_c := imperative_mc_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD -, RNAME imp ]. ;;hd-cmp_2_c := never_unify_rule. ;;aj-hd_int-inv_c := never_unify_rule. ;; DPF 2019-04-17 - Need this rule for |Guangzhou (also known as Canto) is ...| ;;hdn-aj_rc-propr_c := never_unify_rule. ;;hd-aj_vmod_c := never_unify_rule. hd-aj_vmod-s_c := never_unify_rule. hd-aj_vmod-s-n_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. ;; 2020-09-30 - Need for "She is his friend and partner." ;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. np-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. ;; DPF 2019-06-05 - Need this for |we will swim tomorrow, which is good news| ;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. v-v_crd-fin-ncj_c := never_unify_rule. v-v_crd-nfin-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. j-aj_frg_c := never_unify_rule. aj-pp_i-frg_c := never_unify_rule. hdn-aj_redrel-asym_c := never_unify_rule. hdn-aj_rc-asym_c := never_unify_rule.