;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: iso-8859-1; -*- got it? ; ERB 2007-06-29: We are reusing the same mtrs over and over again ; in the mmt grammars. For maintainability, define them here, and ; have particular grammars simply instantiate them. ; Pro-drop -> overt pronouns pro-insert-arg1-mtr := monotonic_mtr & [ INPUT.RELS < >, CONTEXT.RELS < [ ARG0.SF prop-or-ques, ARG1 #x & x ] >, FILTER.RELS < [ ARG0 #x ] >, OUTPUT [ RELS < [ PRED "_pronoun_n_rel", ARG0 #x, LBL #larg ], [ PRED "exist_q_rel", ARG0 #x, RSTR #harg ] >, HCONS < qeq & [ HARG #harg, LARG #larg ] > ], FLAGS.EQUAL < #x > ]. pro-insert-arg2-mtr := monotonic_mtr & [ INPUT.RELS < >, CONTEXT.RELS < [ ARG0.SF prop-or-ques, ARG2 #x & [ COG-ST fam-or-more ]] >, FILTER.RELS < [ ARG0 #x ] >, OUTPUT [ RELS < [ PRED "_pronoun_n_rel", ARG0 #x, LBL #larg ], [ PRED "exist_q_rel", ARG0 #x, RSTR #harg ] >, HCONS < qeq & [ HARG #harg, LARG #larg ] > ], FLAGS.EQUAL < #x > ]. pro-insert-arg3-mtr := monotonic_mtr & [ INPUT.RELS < >, CONTEXT.RELS < [ ARG0.SF prop-or-ques, ARG3 #x & [ COG-ST fam-or-more ]] >, FILTER.RELS < [ ARG0 #x ] >, OUTPUT [ RELS < [ PRED "_pronoun_n_rel", ARG0 #x, LBL #larg ], [ PRED "exist_q_rel", ARG0 #x, RSTR #harg ] >, HCONS < qeq & [ HARG #harg, LARG #larg ] > ], FLAGS.EQUAL < #x > ]. ; overt pronouns -> pro-drop pronoun-delete-mtr := monotonic_omtr & [ INPUT [ RELS < [ PRED "_pronoun_n_rel", ARG0 #x, LBL #larg ], [ PRED "exist_q_rel", ARG0 #x, RSTR #harg ] >, HCONS < qeq & [ LARG #larg, HARG #harg ] > ], OUTPUT [ RELS < >, HCONS < > ]]. ; MWEs make-harm-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2, ARG3 #arg3 ], [ PRED "_harm_n_rel", ARG0 #arg2, LBL #larg ], [ PRED "exist_q_rel", ARG0 #arg2 ]>, HCONS < [ LARG #larg ] > ], OUTPUT [ RELS < [ PRED "_hurt_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg3 ] >, HCONS < > ]]. hurt-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_hurt_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2 ] >, HCONS < > ], OUTPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #pursuit, ARG3 #arg2 ], [ PRED "_harm_n_rel", LBL #larg, ARG0 #pursuit ], [ PRED "exist_q_rel", ARG0 #pursuit, RSTR #harg ] >, HCONS < [ HARG #harg, LARG #larg ] > ]]. make-pursuit-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2, ARG3 #arg3 ], [ PRED "_pursuit_n_rel", ARG0 #arg2, LBL #larg ], [ PRED "exist_q_rel", ARG0 #arg2 ]>, HCONS < [ LARG #larg ] > ], OUTPUT [ RELS < [ PRED "_chase_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg3 ] >, HCONS < > ]]. chase-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_chase_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2 ] >, HCONS < > ], OUTPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #pursuit, ARG3 #arg2 ], [ PRED "_pursuit_n_rel", LBL #larg, ARG0 #pursuit ], [ PRED "exist_q_rel", ARG0 #pursuit, RSTR #harg ] >, HCONS < [ HARG #harg, LARG #larg ] > ]]. eat-food-mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "_eat_v_rel", ARG2 #arg2 ] > ], INPUT [ RELS < [ PRED "_food_n_rel", LBL #larg, ARG0 #arg2 & [ COG-ST type-id ] ], [ PRED "exist_q_rel", ARG0 #arg2, RSTR #harg ] >, HCONS < [ HARG #harg, LARG #larg ] > ], OUTPUT [ RELS < >, HCONS < > ], FLAGS [ EQUAL < #arg2 > ]]. eat-ini-mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "_eat_v_rel", ARG2 #arg2 ] > ], FILTER [ RELS < [ ARG0 #arg2 ] > ], INPUT [ RELS < >, HCONS < > ], OUTPUT [ RELS < [ PRED "_food_n_rel", LBL #larg, ARG0 #arg2 & [ COG-ST type-id, NUM sg] ], [ PRED "exist_q_rel", ARG0 #arg2, RSTR #harg ] >, HCONS < [ HARG #harg, LARG #larg ] > ], FLAGS [ EQUAL < #arg2 > ]]. make-thought-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2, ARG3 #arg3 ], [ PRED "_thought_n_rel", ARG0 #arg2, LBL #larg ], [ PRED "exist_q_rel", ARG0 #arg2 ]>, HCONS < [ LARG #larg ] > ], OUTPUT [ RELS < [ PRED "_think_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg3 ] >, HCONS < > ]]. think-mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "_think_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #arg2 ] >, HCONS < > ], OUTPUT [ RELS < [ PRED "_make_v_rel", LBL #lbl, ARG0 #arg0, ARG1 #arg1, ARG2 #thought, ARG3 #arg2 ], [ PRED "_thought_n_rel", LBL #larg, ARG0 #thought ], [ PRED "exist_q_rel", ARG0 #thought, RSTR #harg ] >, HCONS < [ HARG #harg, LARG #larg ] > ]].