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 ]. ; Unwanted comma on adjective, but not for intadj, to avoid spurious use for ; |Second, cats sleep.| ;; JROB prevents double robustness for |... taste, smell ...| ;; DPF 2020-05-09 - Constrain adj dtr to be basic_lex_synsem, to exclude ;; |after some [time passed, Uncle] Paul went...| ;; 2020-05-16 - Also block gerunds, to avoid |in [brief, preserving] the ...| ;; 2020-08-11 - And block robust "...[unmoving, one] or two" ;; 2020-12-03 - Block hyphen-marked noun: avoid "[raging, mountain-] like waves" ;; aj-hdn_c_rbst := adj_n_rule & [ ARGS < [ SYNSEM basic_adj_synsem & [ LOCAL.CAT.HEAD basic_adj & [ --JROB - ], PUNCT.RPUNCT comma_punct ] ], [ INFLECTD +, SYNSEM [ LOCAL.CAT.HEAD basic_noun & [ --NUM - ], PUNCT.RPUNCT comma_or_clause_or_no_punct ] ] >, RNAME mhn, GENRE robust ]. ;; DPF 2019-04-17 - Allow adverbs in place of prenominal adjectives ;; Avoid |deeply impressed tourists| ;; 2020-12-03 - Exclude for proper names: "Mid-Autumn Festival" ;; adv-hdn_c_rbst := adv_noun_phrase & [ ARGS < [ SYNSEM.PUNCT.RPUNCT pair_or_no_punct ], [ SYNSEM [ LOCAL [ CAT.HEAD [ --POSSRBST -, MINORS.ALTMIN impl_or_expl_or_pron_q_rel ], CONT.HOOK.INDEX nonconj_ref-ind ], MODIFD notmod_or_rmod ] ] >, RNAME mhn ]. ;; 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 -. ;; DPF 2019-07-31 - Block conjoined object NP: |leap from branch to branch ;; going up and going down| ;; DPF 2020-02-19 - To avoid robust |He marked on a map the places where he ;; had visited.|, restrict COMPS.FIRST to non-modified. ;; DPF 2020-08-11 - Add non-robust variant for lexical adverbs: ;; "We admire a lot the enthusiasm she displayed." ;; 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, MODIFD notmod, --SIND nonconj_ref-ind ] ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM nonlex_synsem & [ LOCAL.CAT [ HEAD prep, VAL.SPR *synlist* ]], GENRE robust ]. vmod_i_adv_c := v_mod_int_rule & [ RNAME vlmv, SYNSEM.LOCAL.CAT [ HEAD verb & [ AUX -, MINORS [ MIN nonaux_event_rel, NORM norm_rel ] ], VAL.COMPS.FIRST [ LEX -, LOCAL.CAT.HEAD n_or_p, --SIND nonconj_ref-ind ] ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM [ LOCAL.CAT [ HEAD adv, VAL.SPR *synlist* ] ] ]. ;; 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| ;; DPF 2020-06-18 - Enable lexical blocking by modifiee such as `find' which ;; takes a predicative complement, as in |find it practical|. ;; FIX once we get a better ranking model. ;; 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 ], --SBRDMOD +, AUX - ] ] >, ARGS < [ SYNSEM [ LEX +, LOCAL.CAT.HEAD [ --SBRD bool, --MALSBRD + ] ] ] >, GENRE robust ]. n-hdn_cpd-cap_c_rbst := noun_n_cmpnd_cap_rule & [ RNAME nnc, GENRE robust ]. n-hdn_cpd-pl_rbst := noun_n_cmpnd_pl_mal & [ RNAME nncpr ]. n-hdn_cpd-mnp_c_rbst := noun_n_cmpnd_mnp_rule_mal & [ RNAME nnmp ]. ;; 2020-04-09 - ARGS..LPERIPH to block |[people infected and patient] deaths| n-hdn_j-n-cpd_c_rbst := noun_adjn_cmpnd_rule & [ RNAME nanc, ARGS.FIRST.SYNSEM [ LOCAL.CONT.HOOK.INDEX.SORT nonloc, MODIFD.LPERIPH bool, PUNCT.RPUNCT no_punct ], GENRE robust ]. ;; DPF 2019-02-20 - But we want to give robust analysis to |the cat, Kim arose| ;; DPF 2019-06-20 - Let's try excluding coord NP from right dtr, to avoid ;; spurious use for n-ary NP coord hdn-np_app-pnr-rbc_c_rbst := appos_prop_rbc_rule & [ ARGS.REST.FIRST.SYNSEM.LOCAL.CONT.HOOK.INDEX nonconj_ref-ind, RNAME appp, GENRE robust ]. ;; 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| ;; 2020-12-03 - Also exclude robust left dtr, to avoid "by her, her hair" ;; hdn-np_app-rbc_c_rbst := appos_rbc_rule & [ RNAME appb, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--MALCASE - ], [ SYNSEM.LOCAL.CONT.HOOK.INDEX nonconj_ref-ind ] >, GENRE robust ]. ;; Prevent these as left conjuncts of NP-NP coord: |[the dog, a cat] and Kim| ;; 2021-01-18 - Block "...attendance, some..." hdn-np_app-idf-rbc_c_rbst := appos_indef_rbc_rule & [ RNAME apir, ARGS.REST.FIRST.SYNSEM.LOCAL [ CAT.HEAD non_partn, CONT.HOOK.INDEX nonconj_ref-ind ], SYNSEM.MODIFD.RPERIPH na, GENRE robust ]. ;; DPF 2018-02-20 - Treat unspecified 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, VAL.SPR.FIRST synsem ], GENRE robust ]. ;; DPF 2020-09-19 - But allow "how tall he is!" with specified AP. ;; flr-hd_nwh-nc-ap_c := 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, VAL.SPR *anti_list* ] ]. ;; DPF 2020-01-08 - Allow for incorrect comma after filler phrase ;; flr-hd_nwh-inv_c_rbst := filler_head_rule_non_wh_inv & [ NH-DTR.SYNSEM.PUNCT.RPUNCT comma_punct, HD-DTR.SYNSEM [ MODIFD notmod_or_rmod, LOCAL.CONT.HOOK.INDEX non_conj_event ], RNAME fhnv, GENRE robust ]. flr-hd_rel-prd_c_rbst := filler_head_prd_np_rel_rule_mal & [ RNAME fhr ]. ;; Maybe not needed ;flr-hd_rel-prd-pp_c_rbst := filler_head_prd_pp_rel_rule_mal & ; [ RNAME fhrp ]. hd_xsb-prd_c_mal := extrasubj_prd_rule_mal & [ RNAME shxf ]. vp-vp_crd-asym-t_c_rbst := vp_coord_asym_top_phr_mal & [ RNAME ctvpr ]. ;; DPF 2018-02-14 - |me and Kim| => |Kim and I| ;; DPF 2019-02-20 - Also want to catch |me and her arrived|, so remove ;; --BARE - from second dtr. ;; DPF 2020-01-04 - Removed ARGS.FIRST..NORM no_rel so we get |me and Kim arose| ;; using normal accusative "me". Also changed case from nom to non_nom. ;; np-np_crd-me-i-and_c_rbst := np_coord_top_eg_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN pron_rel, CASE acc ], AGR.PNG.PN 1s ] ], [ ] >, RNAME ctnp, GENRE robust ]. np-np_crd-and-acc_c_rbst := np_coord_top_eg_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom, ARGS < [ ], [ SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN pron_rel, CASE acc ] ] ] >, RNAME ctnp, GENRE robust ]. ;; |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 + ] >, ARGS.FIRST.SYNSEM.LOCAL [ CONT.HOOK.INDEX.PNG.PN 3p, AGR.PNG.PN 3s ], RNAME mnda, GENRE robust ]. ;; 2020-05-27 - For |two feet tall fence| ;; mnp_deg-attr_c_rbst := meas_np_degadv_phrase & [ INFLECTD +, SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD basic_adj & [ PRD - ] ] >, ARGS.FIRST.SYNSEM nonlex_synsem & [ LOCAL.CAT.HEAD.--MALPL -, PUNCT.RPUNCT no_punct ], RNAME mnda, GENRE robust ]. ; |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 ]. ;; "We thought about if he would win." cl_np-wh-if_c_rbst := np_cp_wh_if_rule_mal & [ RNAME npsqi, GENRE robust ]. #| cl-cl_runon-nocap_c_rbst := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX -, PUNCT.RPUNCT clause_punct ] ], [ SYNSEM [ LOCAL [ CAT.HEAD verb, CONJ cnil ], LEX - ], ORTH.TOKCASE non_capitalized & [ TOKCASEROB - ] ] >, RNAME sns, GENRE robust ]. |# cl-cl_runon-nocap_c_rbst := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX -, PUNCT.RPUNCT clause_punct ] ], [ SYNSEM [ LOCAL [ CAT.HEAD verb, CONJ cnil ], LEX -, PHON.ONSET.--TL.FIRST.+CLASS.+CASE non_capitalized & [ TOKCASEROB - ] ] ] >, RNAME sns, GENRE robust ]. ;; 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. ;; DPF 2019-02-14 - Re 2017-09-28: But this prevents recursive use for e.g. ;; |we arrived, we slept, we arose.| So remove, and count on ranking to avoid ;; robust for normal S coord. ;; Also, removed ARGS.REST..MODIFD notmod_or_rmod since filler-head is lmod, ;; and we want to get robust run-ons with these, as in ;; |We arrived, yesterday we arose.| So remove, and count on ranking. ;; DPF 2019-03-26 - Added ARGS.REST.FIRST..LPERIPH na_or_- to avoid robust ;; |Kim arrived, so we arose.| ;; DPF 2019-03-28 - Added hack [CASE nom} to right dtr to avoid a spurious ;; run-on analysis for three-sentence coord as in |We ran, we fell and we slept| ;; DPF 2019-06-16 - Re 2019-03-26: But blocks |Kim arrived, however we arose|, ;; so undo, and instead block |so| as pre_s adv. ;; 2020-04-17 - Exclude robust comma - redundant ;; cl-cl_runon-cma_c_rbst := run_on_coord_comma_rule & [ RNAME snsc ]. cl-cl_runon-dash_c_rbst := run_on_coord_dash_rule & [ RNAME snsc ]. cl-cl_runon-malcma_c_rbst := run_on_coord_punct_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT no_punct, RCONJ-DTR.SYNSEM.PUNCT.LPUNCT comma_punct, RNAME snsc ]. ;; DPF 2019-07-12 - Add variant to allow mal prefix comma on second dtr ;; |I can go swimming tomorrow ,what good news!| cl-np_runon-malcma_c_rbst := basic_run_on_np_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, PUNCT.RPUNCT no_punct ] ], [ SYNSEM [ PUNCT.LPUNCT comma_punct, LOCAL.CAT [ HEAD noun, VAL.SPR *olist* ], NONLOC [ SLASH 0-dlist, REL 0-dlist ] ] ] >, RNAME frsn, GENRE robust ]. ;; Fragment followed by clause: "If we win. We celebrate." ;; 2020-09-30 - Block robust "[The cat, in a hurry,] we ate" where paired ;; red-rel loses right punct constraint. ;; cl-cl_frg-runon_c_rbst := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD frag, LEX -, MODIFD notmod_or_lmod, PUNCT.RPUNCT basic_clause_punct ] ], [ SYNSEM [ LOCAL [ CAT.HEAD verb, CONJ cnil ], LEX - ], ORTH.TOKCASE.TOKCASEROB - ] >, GENRE robust, RNAME sns ]. ;; Clause followed by fragment: "We will win. in the morning." cl-frg_runon_c_rbst := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX -, PUNCT.RPUNCT basic_clause_punct ] ], [ SYNSEM [ LOCAL [ CAT.HEAD frag, CONJ cnil ], LEX - ], ORTH.TOKCASE.TOKCASEROB - ] >, GENRE robust, RNAME sns ]. ;; 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 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 ]. |# ;;; From erg/arboretum/mal-constructions.tdl ;; Commented out in constructions.tdl. hdn_bnp_c_rbst := bare_np_sg_phrase_robust & [ RNAME bnpr ]. ; 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 ]. num_det_1_rbst := mal_num_det_rule_1 & [ RNAME ndr1 ]. num_det_2_rbst := mal_num_det_rule_2 & [ RNAME ndr2 ]. ;; 2020-05-09 - Add POSTHD - as hack to prevent these from undergoing ;; adjunct-extraction rule. ;; 2020-09-10 - Block extraction ;; 2020-12-03 - Block robust infl ;; v-v_crd-fin-ncj_c_rbst := v_coord_fin_top_noconj_phr & [ RNAME ctvr, SYNSEM [ LOCAL.CAT [ HEAD.--NOCJCRD +, POSTHD - ], NONLOC.SLASH 0-dlist ], ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD [ --MAL3SG -, --MALN3SG - ], GENRE robust ]. v-v_crd-nfin-ncj_c_rbst := v_coord_nonfin_top_noconj_phr & [ RNAME ctvrn, SYNSEM.LOCAL.CAT.HEAD.--NOCJCRD +, GENRE robust ]. ;; To avoid false use with underspec NPs as in |one of the best kind|, ;; require SORT animate, which excludes `kind' which is GEN neut. ;; DPF 2019-10-13 - Changed COMPS..AGR to COMPS..--SIND to avoid robust ;; |one of a group of cats| 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 ]. ;; Added NORM no_rel to avoid robust |one of several cats| but catch |one of ;; cats|. Also now get |*one of the most cats| ;; num_prt-of-def_c_rbst := partitive_num_ppof_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST.LOCAL [ CAT.HEAD.MINORS [ ALTMIN basic_nonpro_rel, NORM no_rel ], AGR [ DIV +, DEF - ] ], RNAME pno, GENRE robust ]. pp-pp_mod_c_rbst := prep_mod_prep_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD basic_prep ], [ SYNSEM abstr_lex_synsem ] >, RNAME ppmppr, GENRE robust ]. ;; DPF 2018-02-14 - |I and Kim arrived| => |Kim and I arrived| ;; np-np_crd-i-and_c_rbst := np_coord_top_eg_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom, 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 ]. cl_cnj-frg_rbst := frag_sent_conj_rule & [ RNAME frsc, ARGS < [ SYNSEM.LOCAL.CONJ.CREL.PRED _and_c_rel ] >, GENRE robust ]. ;; 2021-01-19 - Restrict to finite relatives, to avoid robust ;; "...to [branch, jumping up] and down" hdn-aj_rc-asym_c_rbst := hadj_i_relcl_asympr_rule & [ RNAME hmra, SYNSEM [ MODIFD.RPERIPH +, LOCAL.CONT.HOOK.INDEX.--BARESG - ], ARGS < [ SYNSEM.PUNCT.RPUNCT comma_punct ], [ SYNSEM.LOCAL.CAT.HEAD.VFORM fin ] >, GENRE robust ].