;;; -*- Mode: tdl; Coding: utf-8; -*- ;;; ;;; Copyright (c) 1994-2004 ;;; Dan Flickinger, Rob Malouf, Emily M. Bender ;;; see LICENSE for conditions ;;; ;;; constructions.tdl ;;; ;;; The instances of phrases defined in syntax.tdl ;;; ;;; Created: Ann Copestake, 30-Sept-97 ;;; ;;; $Id: constructions.tdl 6568 2009-05-26 04:25:06Z danf $ ;; ;; Constructions sb-hd_mc_c := subjh_mc_rule & [ RNAME sbhd ]. ; Non-main-clause sb-hd_nmc_c := subjh_nonmc_rule & [ RNAME sbhn ]. sb-hd_q_c := subjh_rule_wh_insitu & [ RNAME sbhq ]. subjh_bse_rbst := subjh_nonfin_robust_rule & [ RNAME sbhr ]. ; 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. ; hd-cmp_u_c := hcomp_rule & [ RNAME hcp ]. ;; DPF 13-03-13 - Let's try adding this to see if there is any harm ;; ;hd-cmp_2_c := h2comp_rule & ; [ RNAME hcp2 ]. hd_optcmp_c := hoptcomp_rule & [ RNAME hcpo ]. hdn_optcmp_c := noptcomp_rule & [ RNAME ncpo ]. mrk-nh_evnt_c := hmark_e_phr_rule & [ RNAME hmke ]. mrk-nh_cl_c := hmark_s_phr_rule & [ RNAME hmkc ]. mrk-nh_ajlex_c := hmark_a_lex_rule & [ RNAME hmkl ]. mrk-nh_nom_c := hmark_nom_rule & [ RNAME hmkn ]. mrk-nh_n_c := hmark_nbar_rule & [ RNAME hmkb ]. mrk-nh_atom_c := hmark_atomic_rule & [ RNAME hmka ]. hd_xcmp_c := extracomp_rule & [ RNAME hcpx ]. hd_xsb-fin_c := extrasubj_fin_rule & [ RNAME shxf ]. sp-hd_n_c := hspec_rule & [ RNAME sph ]. sp-hd_hc_c := Hspec_hc_rule & [ RNAME sphh ]. aj-hd_scp_c := adjh_s_rule & [ RNAME mhs ]. aj-hd_scp-xp_c := adjh_s_nopair_rule & [ RNAME mhv ]. aj-hd_scp-pr_c := adjh_s_prpnct_rule & [ RNAME mhvp ]. hd-aj_scp-pr_c := hadj_s_prpnct_rule & [ RNAME hms ]. hd-aj_scp_c := hadj_s_nopair_rule & [ RNAME hmsn ]. aj-hdn_norm_c := adj_n_rule & [ RNAME mhn ]. aj-hdn_adjn_c := adj_adjn_rule & [ RNAME mhna ]. aj-hd_int_c := adjh_i_rule & [ RNAME mhi ]. adjh_i_inv_rbst := adjh_i_inv_rule & [ RNAME mhiv, SYNSEM.LEX -, GENRE robust ]. aj-hd_int-rel_c := adjh_i_rel_rule & [ RNAME mhr ]. ; Exclude lexical modifiers, to avoid |the goalie kept| as NP. ;; Also exclude puncuated head noun, especially hyphen, to avoid this analysis ;; of [[ice-] [skating in the park]] ;; DPF 13-03-14 - But blocking lexical modifiers prevents analysis of e.g. ;; |the sum collected|. Remove, and let's try lex-specific constraints. #| hdn-aj_rc_c := hadj_i_relcl_npr_rule & [ RNAME hmrn, HD-DTR.SYNSEM.PUNCT.RPUNCT no_punct, NH-DTR.SYNSEM.LEX na_or_- ]. |# hdn-aj_rc_c := hadj_i_relcl_npr_rule & [ RNAME hmrn, HD-DTR.SYNSEM.PUNCT.RPUNCT no_punct ]. hdn-aj_rc-pr_c := hadj_i_relcl_pr_rule & [ 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 ]. hdn-aj_redrel-pr_c := hadj_i_redrel_pr_rule & [ RNAME hmpc ]. hd-aj_int-unsl_c := hadj_i_unsl_rule & [ RNAME hmiu ]. hd-aj_int-sl_c := hadj_i_sl_rule & [ RNAME hmis ]. ; Let's remind ourselves why we want this rule in: want to block ; "He wrote to James a letter" ; No, we also want (apparently) "He was leaving at her home a black suitcase" ; For revisions, let's make it robust only ; DPF 19-feb-10 - Further constrain to block copula "be" as head, to avoid ; vmod analysis of e.g. "is at the shelter adopting a dog". Do this by ; breaking rule into two vmod_i_rbst := v_mod_int_rule & [ RNAME vlmr, SYNSEM.LOCAL.CAT [ HEAD.AUX -, VAL.COMPS.FIRST.LEX - ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep, GENRE robust ]. hd-aj_vmod_c := v_mod_int_rule & [ RNAME vlmi, SYNSEM.LOCAL.CAT [ HEAD.AUX -, VAL.COMPS.FIRST [ LEX -, LOCAL.CAT.HEAD.CASE obliq ] ], HD-DTR.SYNSEM.LEX +, NH-DTR.SYNSEM [ LOCAL.CAT.HEAD prep, LEX + ] ]. ; For auxiliary verbs, excluding predicative copula vmod_i-a_rbst := v_mod_int_rule & [ RNAME vlma, SYNSEM.LOCAL.CAT [ HEAD [ AUX +, VFORM fin, MINORS.MIN aux_arg1_rel ], VAL.COMPS.FIRST.LEX - ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD prep, GENRE robust ]. ;; DPF 18-apr-10 - Let's try doing without this one, since it gives spurious ;; analysis for e.g. "He went because we see the cat" ;;hd-aj_vmod-s_c := v_mod_scop_rule & ;; [ RNAME vlms ]. hd_xaj-int-vp_c := extradj_i_vp_rule & [ RNAME hmxv ]. cl_rc-fin-nwh_c := fin_non_wh_rel_rule & [ RNAME rclf ]. cl_rc-inf-nwh_c := inf_non_wh_rel_rule & [ RNAME rcli ]. 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 - ]. cl_rc-fin-modgap_c := fin_modgap_rel_rule & [ RNAME rcmf ]. cl_rc-inf-modgap_c := inf_modgap_rel_rule & [ RNAME rcmi ]. vp_rc-redrel_c := red_rel_cl_rule & [ RNAME rclv ]. ; Can't avoid LEX + vp_sbrd-prd-prp_c := subconj_prdp_prp_rule & [ 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 ]. #| vp_sbrd-prd-ell_c := subconj_prdp_ellip_rule & [ RNAME scpe ]. |# ;; DPF 13-03-14 - Let's try adding this one, to get e.g. |contradictory to ...| ;; j_sbrd-pre_c := subconj_prdp_a_init_rule & [ RNAME sca ]. vp_sbrd-pre_c := subconj_prdp_v_init_rule & [ RNAME scv ]. ;; Limit to -ing form, and restrict main clause to INV - to avoid ;; |reading is her favorite.| 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 -, RNAME scvl ]. hdn_bnp_c := bare_np_rule & [ RNAME bnp ]. hdn_bnp-prd_c := bare_np_prd_rule & [ RNAME bnpp ]. ; Prevent "sunny Pittsburgh" hdn_bnp-pn_c := proper_np_rule & [ ARGS < [ SYNSEM.MODIFD notmod_or_rmod ] >, RNAME nppr ]. ;; Need this for "she is eleven." hdn_bnp-num_c := num_np_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR < canonical_synsem > ] >, RNAME npnb ]. hdn_bnp-qnt_c := bare_npq_rule & [ RNAME npbq ]. hdn_bnp-sg-nmod_c := detlesspp_np_nmod_rule & [ RNAME dnpn ]. hdn_bnp-sg-jmod_c := detlesspp_np_jmod_rule & [ RNAME dnpj ]. hdn_bnp-sg-nomod_c := detlesspp_np_nomod_rule & [ RNAME dnpx ]. hdn_bnp-vger_c := bare_vger_rule & [ RNAME npvg ]. ;; 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 - ], [ ] > ]. ; Restrict to abbreviated titles np-hdn_ttl-cpd_c := np_title_cmpnd_rule & [ RNAME npnt, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN pre_title_rel ]. np-hdn_nme-cpd_c := np_name_cmpnd_rule & [ RNAME npnm ]. np-hdn_num-cpd_c := np_num_cmpnd_rule & [ RNAME npno ]. n-hdn_cpd_c := noun_n_cmpnd_rule & [ NH-DTR.SYNSEM.LOCAL.CAT.HEAD.--BARE -, RNAME nnc ]. #| n-hdn_j-n-cpd_c := noun_adjn_cmpnd_rule & [ RNAME nanc ]. n-hdn_ttl-cpd_c := noun_title_cmpnd_rule & [ RNAME ntc ]. n-nh_vorj-cpd_c := n_v-or-adj_cmpnd_eg_rule & [ RNAME nvc ]. n_vora_cmpnd_ig := n_v-or-adj_cmpnd_ig_rule & [ RNAME nvc ]. n-nh_vorj-cpd_c := n_v-or-adj_cmpnd_rule & [ RNAME nvac ]. |# ;; Added the following five for CoNLL n-hdn_j-n-cpd_c := noun_adjn_cmpnd_rule & [ RNAME nanc ]. n-hdn_ttl-cpd_c := noun_title_cmpnd_rule & [ RNAME ntc ]. n-v_j-cpd_c := n_v_cmpnd_rule & [ RNAME nvc ]. n-j_j-t-cpd_c := n_adj_cmpnd_rule & [ RNAME natc ]. n-j_j-cpd_c := n_adj_intr_cmpnd_rule & [ RNAME naic ]. j_n-ed_c := n-adj_rule & [ RNAME ntoj ]. ; Block pronouns and also [DIV +] on hd-dtr: "salad Lily" ; Also split this into two, to block "George George" with both propers ; And same for the non-paired variant ; hdn-np_app-pr_c := appos_prpnct_rule & [ RNAME app, HD-DTR.SYNSEM.LOCAL [ CAT.HEAD.MINORS.MIN nonpro_rel, CONT.HOOK.INDEX.DIV #div ], NH-DTR.SYNSEM [ --MIN nom_nbar_rel, LOCAL.CONT.HOOK.INDEX.DIV #div ] ]. ; Also exclude pronouns as heads: |one Cindy| 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, CAT.HEAD.MINORS.MIN nonpro_rel ], NH-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG #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 ], NH-DTR.SYNSEM [ --MIN nom_nbar_rel, LOCAL.CONT.HOOK.INDEX.DIV #div ] ]. 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 ]. hdn-np_app-idf_c := appos_indef_rule & [ RNAME appi ]. hdn-np_app-idf-p_c := appos_indef_paren_rule & [ RNAME apip ]. hdn-np_app-nbr_c := appos_nbar_rule & [ RNAME apnb ]. np_adv_c := npadv_mod_rule & [ RNAME nadv ]. np_adv-yr_c := npadv_yofc_rule & [ RNAME nadvy ]. ; 'She ran three miles' ; FIX ambiguity? np_adv-mnp_c := npadv_measnp_rule & [ RNAME nadvm ]. ;; Remove SPR < unexpressed > to allow e.g. |year 2009| #| hdn_np-num_c := num_noun_rule & [ RNAME numn, SYNSEM.LOCAL.CAT [ HEAD.CASE acc, VAL.SPR < unexpressed > ] ]. |# hdn_np-num_c := num_noun_rule & [ RNAME numn, SYNSEM.LOCAL.CAT [ HEAD.CASE non_nom ] ]. n-n_num-seq_c := num_noun_seq_rule & [ RNAME nseq ]. hdn_color_c := color_noun_rule & [ RNAME ncol, SYNSEM.LOCAL.CAT [ HEAD.--BARE -, VAL.SPR < unexpressed > ] ]. flr-hd_nwh_c := filler_head_rule_non_wh_edgen & [ RNAME fhne, HD-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-pol-ques ]. ; Exclude fronted directional PPs 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 adv_or_comp ]. 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 ] ]. flr-hd_wh-mc_c := filler_head_rule_wh_root & [ RNAME fhw ]. flr-hd_wh-mc-sb_c := filler_head_rule_wh_subj & [ RNAME fhs ]. flr-hd_wh-nmc-fin_c := filler_head_rule_wh_nr_fin & [ RNAME fhf ]. flr-hd_wh-nmc-inf_c := filler_head_rule_wh_nr_inf & [ RNAME fhi ]. flr-hd_rel-fin_c := filler_head_fin_rule_rel & [ RNAME fhr ]. flr-hd_rel-inf_c := filler_head_inf_rule_rel & [ RNAME fhri ]. hd-cl_fr-rel_c := free_rel_rule & [ RNAME frf ]. vp-vp_crd-fin-t_c := vp_coord_fin_top_phr & [ RNAME ctvpf ]. vp-vp_crd-fin-m_c := vp_coord_fin_mid_eg_phr & [ RNAME cmvpf ]. vp-vp_crd-fin-im_c := vp_coord_fin_mid_ig_phr & [ RNAME cmfpi ]. vp-vp_crd-nfin-t_c := vp_coord_nonfin_top_phr & [ RNAME ctvpn ]. vp-vp_crd-nfin-m_c := vp_coord_nonfin_mid_eg_phr & [ RNAME cmvpn ]. vp-vp_crd-nfin-im_c := vp_coord_nonfin_mid_ig_phr & [ RNAME cmvpi ]. v-v_crd-fin-ncj_c := v_coord_fin_top_noconj_phr & [ RNAME ctvr ]. cl-cl_crd-t_c := s_coord_top_phr & [ RNAME cts ]. cl-cl_crd-int-t_c := s_coord_int_top_phr & [ RNAME ctsq ]. cl-cl_crd-m_c := s_coord_mid_eg_phr & [ RNAME cmse ]. cl-cl_crd-im_c := s_coord_mid_ig_phr & [ RNAME cmsi ]. cl-cl_crd-rc-t_c := relcl_coord_top_phr & [ RNAME ctrt ]. pp-pp_crd-t_c := pp_coord_top_phr & [ RNAME ctpp ]. pp-pp_crd-m_c := pp_coord_mid_eg_phr & [ RNAME cmpp ]. pp-pp_crd-im_c := pp_coord_mid_ig_phr & [ RNAME cmppi ]. ;; Block robust-sg on right dtr to avoid spurious ambig for |the cat and dog| np-np_crd-t_c := np_coord_top_eg_rule & [ ARGS.REST.FIRST.SYNSEM.LOCAL.CAT.HEAD.--BARE -, RNAME ctnp ]. #| np-np_crd-i-t_c := np_coord_top_ig1_rule & [ RNAME ctn1 ]. np-np_crd-i2-t_c := np_coord_top_ig2_rule & [ RNAME ctn2 ]. np-np_crd-i3-t_c := np_coord_top_ig3_rule & [ RNAME ctn3 ]. |# np-np_crd-m_c := np_coord_mid_eg_rule & [ RNAME cmne ]. np-np_crd-im_c := np_coord_mid_ig_rule & [ RNAME cmni ]. ;; Don't want spurious analysis of e.g. |my friend Miguel and I| ;np-np_crd-im_rbst := np_coord_mid_ig_rule & ; [ RNAME cmni, ; GENRE robust ]. #| np-np_crd-nc-m_rbst := np_coord_mid_noconj_rule & [ RNAME cmnn, GENRE robust ]. |# n-n_crd-nc-m_c := nbar_coord_mid_noconj_rule & [ RNAME cmnb ]. np-np_crd-nc-t_c := np_coord_top_noconj_rule & [ RNAME ctnn ]. n-n_crd-t_c := nbar_coord_top_1_nondiv_rule & [ RNAME ctn ]. n-n_crd-div-t_c := nbar_coord_top_1_div_rule & [ RNAME ctnd ]. n-n_crd-2-t_c := nbar_coord_top_2_rule & [ RNAME ctn2 ]. ;; n-n_crd-3-t_c := nbar_coord_top_3_rule & ;; [ RNAME ctn3 ]. n-n_crd-m_c := nbar_coord_mid_eg_rule & [ RNAME cmen ]. n-n_crd-im_c := nbar_coord_mid_ig_rule & [ RNAME cmin ]. n-n_crd-asym-t_c := nbar_coord_asym_top_rule & [ RNAME ctna ]. n-n_crd-asym2-t_c := nbar_coord_asym_top_2_rule & [ RNAME ctnb ]. j-n_crd-t_c := adj_noun_coord_rule & [ RNAME ctjn ]. j-j_crd-att-t_c := adj_attr_coord_top_phr & [ RNAME ctaa ]. j-j_crd-prd-t_c := adj_pred_coord_top_phr & [ RNAME ctap ]. j-j_crd-prd-m_c := adj_pred_coord_mid_eg_phr & [ RNAME cmea ]. j-j_crd-prd-im_c := adj_pred_coord_mid_ig_phr & [ RNAME cmia ]. jpr-jpr_crd-t_c := ap_predp_coord_top_phr & [ RNAME ctax ]. jpr-jpr_crd-m_c := ap_predp_coord_mid_eg_phr & [ RNAME cmax ]. jpr-jpr_crd-im_c := ap_predp_coord_mid_ig_phr & [ RNAME cmay ]. jpr-vpr_crd-t_c := ap_vp_predp_coord_top_phr & [ RNAME ctav ]. jpr-vpr_crd-m_c := ap_vp_predp_coord_mid_eg_phr & [ RNAME cmav ]. jpr-vpr_crd-im_c := ap_vp_predp_coord_mid_ig_phr & [ RNAME cmaz ]. vppr-vppr_crd-t_c := vp_predp_coord_top_phr & [ RNAME ctvpx ]. vppr-vppr_crd-m_c := vp_predp_coord_mid_eg_phr & [ RNAME cmvpx ]. vppr-vppr_crd-im_c := vp_predp_coord_mid_ig_phr & [ RNAME cmvpy ]. ppr-ppr_crd-t_c := pp_predp_coord_top_phr & [ RNAME ctpx ]. ppr-ppr_crd-m_c := pp_predp_coord_mid_eg_phr & [ RNAME cmpx ]. ppr-ppr_crd-im_c := pp_predp_coord_mid_ig_phr & [ RNAME cmpy ]. hd_imp_c := imperative_mc_rule & [ RNAME imp, ARGS < [ SYNSEM.NONLOC.SLASH 0-dlist ] > ]. hd_yesno_c := yesno_rule & [ RNAME ync ]. hd_inv-nwh_c := inv_decl_rule & [ RNAME idc ]. num-n_mnp_c := measure_np_rule & [ RNAME mnp ]. n-num_mnp_c := measure_np_symbol_rule & [ RNAME mnps ]. ; Block 'weekdays' as meas-np n_mnp_c := bare_measure_np_rule & [ DTR1.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN meas_nom_rel, RNAME mnpb ]. mnp_deg_c := meas_np_degadv_attr_rule & [ RNAME mnda ]. mnp_deg_prd_c := meas_np_degadv_pred_rule & [ RNAME mndp ]. ; Let's see if we can do without this, to block "She likes more". ; No, because we want "there are three" num_prt-nc_c := partitive_num_nocomp_rule & [ RNAME pnn ]. num_prt-of_c := partitive_num_ppof_rule & [ RNAME pno ]. num_prt-det-nc_c := partitive_intadj_nocomp_rule & [ RNAME pnan ]. num_prt-det-of_c := partitive_intadj_ppof_rule & [ RNAME pnac ]. cl_np-wh_c := np_cp_wh_rule & [ RNAME npsq, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.--MAL3SG - ] > ]. ;; Try doing without this to avoid |[to play she] had ...| ;;vp_cp-sb_c := cp_subj_rule & ;; [ RNAME cpsb ]. ;; Need this for |to be patient is the most important thing| vp_cp-sb-inf_c := cp_subj_inf_rule & [ RNAME cpsi ]. vp_np-ger_c := vgerund_rule & [ RNAME vger ]. ;;; Want to reject bare possessives except in answer to a "whose?" question ;;; But this has to be semantics-based, so allow, and hope to filter later np_prt-poss_c := partitive_np_rule & [ RNAME npp ]. #| np_voc-post_c := vocative_np_rule & [ RNAME npv ]. np_voc-pre_c := vocative_np_lmod_rule & [ RNAME npvl ]. |# num_det_c := num_det_rule & [ RNAME numd ]. hd-hd_rnr_c := right_node_raise_vp_rule & [ RNAME rnrv ]. hd-hd_rnr-nv_c := right_node_raise_nonvp_rule & [ RNAME rnro ]. np_frg_c := frag_np_rule & [ RNAME frnp ]. np_nb-frg_c := frag_nbar_rule & [ RNAME frnb ]. pp_frg_c := frag_pp_ind_rule & [ RNAME frpi ]. j_frg_c := frag_adj_rule & [ RNAME frj ]. r_scp-frg_c := frag_adv_rule & [ RNAME frr ]. r_int-frg_c := frag_int_adv_rule & [ RNAME frri ]. r_dsc-frg_c := frag_dadv_rule & [ RNAME frrd ]. r_cl-frg_c := frag_sent_adv_rule & [ RNAME frrc ]. cl_cnj-frg_rbst := frag_sent_conj_rule & [ RNAME frsc, ARGS < [ SYNSEM.LOCAL.CONJ.CREL.PRED _and_c_rel ] >, GENRE robust ]. ;vp_fin-frg_c := frag_vp_fin_rule & ; [ RNAME frvp ]. 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 & [ RNAME frvx ]. vp_nfin-frg_c := frag_vp_nonfin_rule & [ RNAME frvn ]. #| cl_cp-frg_c := frag_sbar_rule & [ RNAME frsb ]. cl_rel-frg_c := frag_relcl_rule & [ RNAME frsr ]. |# ;; Avoid spurious analysis of "[after dinner the Bernsteins ate] dessert" ;;aj-np_frg_c := frag_l_mod_s_np_rule & ;; [ RNAME frln ]. ;; DPF 19-feb-10 - Let's try doing without this one, to avoid e.g. ;; `Twice a week Christian cleans ;;aj-np_int-frg_c := frag_l_mod_i_np_rule & ;; [ RNAME frli ]. aj-pp_frg_c := frag_l_mod_pp_rule & [ RNAME frlp ]. aj-r_frg_c := frag_l_mod_adv_rule & [ RNAME frlr ]. np-aj_frg_c := frag_r_mod_np_rule & [ RNAME frrn ]. ;np-aj_rorp-frg_c := frag_r_mod_np_i_rule & ; [ RNAME frri ]. np-aj_j-frg_c := frag_r_mod_np_adj_rule & [ RNAME frra ]. ;nb-aj_frg_c := frag_r_mod_nbar_rule & ; [ RNAME frrb ]. pp-aj_frg_c := frag_r_mod_scop_pp_rule & [ RNAME frrs ]. j-aj_frg_c := frag_r_mod_ap_rule & [ RNAME frrj ]. hdn-cl_prnth_c := paren_float_s_rule & [ RNAME pfls ]. hdn-n_prnth_c := paren_float_nbar_rule & [ RNAME pfln ]. hdn-cl_dsh_c := dash_float_s_rule & [ RNAME dfls ]. hd-pct_c := punct_marker_hinit_rule & [ RNAME pthi ]. ;; Prevent robust-comma-marked fragments as dtrs cl-cl_runon_c := run_on_coord_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX - ] ], [ SYNSEM [ LOCAL.CAT.HEAD verb, LEX - ] ] >, RNAME sns ]. cl-cl_runon-cma_c_rbst := run_on_coord_comma_rule & [ ARGS < [ SYNSEM.LEX - ], [ SYNSEM.LEX - ] >, RNAME snsc, GENRE robust ]. cl-rc_c := vp-final-relcl_phrase & [ RNAME src ]. ;;; From erg/arboretum/mal-constructions.tdl ;; Just reusing the old bare_np_sg rule. It's constrained ;; to rule out number nouns and temporal nouns as its daughter. ;; Commented out in constructions.tdl. bare_np_sg_rbst := mal_bare_np_sg_rule & [ RNAME bnpr ]. ; Allow fronted NPs, but treat as stylistically deprecated, only in matrix cl. ; Also block deictics, to avoid spurious parse for |that tree is| np_fillhead_non_wh_rbst := filler_head_rule_non_wh_np & [ RNAME fhnx, SYNSEM.LOCAL.CAT.MC +, NH-DTR.SYNSEM.LOCAL.CAT [ HEAD basic_noun & [ MINORS [ MIN non_temp_nonpro_rel, NORM norm_or_no_rel ] ], VAL [ SUBJ *olist*, SPR *olist* ] ], 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_rbst := noun_n_cmpnd_rule_rbst & ;; [ RNAME nndr ]. xp_brck-pr_c := paired_bracket_rule & [ RNAME anti_ctype ].