; -*- Mode: TDL; Package: LKB; Coding: utf-8; -*- ; Experimental lexicon for IWSLT06 data: 2006/9/5 ;; ;; hand done by Eric ;; unspec+exist-unspec_loc_rel-mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "ja:_exist_v_rel", LBL #h1 , ARG0 #e1 & e, ARG1 #x1 & x ], [ LBL #h2, ARG0 #x1, RSTR #h3 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ], INPUT.RELS < [ PRED "ja:unspec_p_rel", LBL #h1, ARG0 #e2 & e, ARG1 #e1, ARG2 #x2 ] >, OUTPUT.RELS < [ PRED unspec_loc_rel, LBL #h4, ARG0 #e2, ARG1 #x1, ARG2 #x2 ] >, FLAGS.EQUAL < #e1, #x1, #e2 > ]. unspec-unspec_loc_rel-mtr := preposition_mtr & [ JA.RELS < [ PRED "ja:unspec_p_rel" ] >, EN.RELS < [ PRED unspec_loc_rel ] > ]. nihongo_n_rel-japanese+named_rel-mtr := monotonic_mtr & [ JA.RELS < [ PRED "ja:_nihongo_n_rel", LBL #h1, ARG0 #x1 ] >, EN.RELS < [ PRED named_rel, LBL #h1, ARG0 #x1 & x & [ DIV - ], CARG "japanese" ] > ]. eigo_n_rel-english+named_rel-mtr := monotonic_mtr & [ JA.RELS < [ PRED "ja:_eigo_n_rel", LBL #h1, ARG0 #x1 ] >, EN.RELS < [ PRED named_rel, LBL #h1, ARG0 #x1 & x & [ DIV - ], CARG "english" ] > ]. ;;; Auxiliary verbs, copula, etc. ; Handle negatives: should Jacy's neg be a real relation? -- eric-n neg_rel-neg_rel-mtr := monotonic_mtr & [ JA.RELS < [ PRED "ja:neg_rel", LBL #h1, ARG0 #e1, ARG1 #x1 ] >, EN.RELS < [ PRED neg_rel, LBL #h1, ARG0 #e1, ARG1 #x1 ] > ]. neg_v_rel-neg_rel-mtr := monotonic_mtr & [ JA.RELS < [ PRED "ja:_neg_v_rel", LBL #h1, ARG0 #e2, ARG1 #h3 ] >, EN.RELS < [ PRED neg_rel, LBL #h1, ARG0 #e2, ARG1 #h3 ] > ]. neg_a_rel-neg_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:_neg_a_rel" ] >, EN.RELS < [ PRED neg_rel ] > ]. ; nai_a_2_rel --> nai_a_rel -- eric-n nai_a_rel-neg_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:_nai_a_rel" ] >, EN.RELS < [ PRED neg_rel ] > ]. cop_id_rel-unspec_loc_rel := arg12_v_mtr & [ CONTEXT.RELS < [ PRED "ja:place_rel", ARG2 #x ] >, JA.RELS < [ PRED "ja:cop_id_rel", ARG0 #x ] >, EN.RELS < [ PRED unspec_loc_rel, ARG0 #x ] > ]. ; Handle copulas: which relations for 'to be' are acceptable? -- eric-n ; swaps ARG0s FIXME: in the Japanese grammar, ; OR add HCONS to ensure proper scope ; 犬 が 猫 で は ない cop_id_rel+neg_rel-be_v_id_rel-neg_rel_mtr := monotonic_mtr & [ INPUT.RELS < [ PRED "neg_rel", LBL #h1, ARG0 #e1, ARG1 #h2 ], [ PRED "ja:cop_id_rel", LBL #h3, ARG0 #e2, ARG1 #x1, ARG2 #x2 ] >, OUTPUT.RELS < [ PRED neg_rel, LBL #h1, ARG0 #e2 & [ TENSE untensed], ARG1 #h2 ], [ PRED _be_v_id_rel, LBL #h3, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] > ]. ;; NP to fragment: すり → theif ;; FIXME: Maybe it should be optional? cop_id_rel-unknown_rel-mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "ja:proposition_m_rel", ARG0 #e0] >, JA.RELS < [ PRED "ja:cop_id_rel", LBL #h, ARG0 #e0, ARG1 #u1 & u, ARG2 #x2 ] >, EN.RELS < [ PRED unknown_rel, LBL #h, ARG0 #e0, ARG #x2 ] >, FLAGS.EQUAL < #u1 > ]. ;;; 犬 が 猫 だ ;;; need to harmonize number somewhere ;;; maybe do this earlier to block the the quantifier(s)? cop_id_rel-be_v_id_rel-mtr := arg12_v_mtr & [ JA.RELS < [ PRED "ja:cop_id_rel" ] >, EN.RELS < [ PRED _be_v_id_rel ] > ]. iru_v_be_rel-be_v_there_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:_iru_v_be_rel" ] >, EN.RELS < [ PRED _be_v_there_rel ] > ]. ; gozaru_v_rel-be_v_there_rel-mtr := arg1_v_mtr & ; [ JA.RELS < [ PRED "ja:_gozaru_v_1_rel" ] >, ; EN.RELS < [ PRED _be_v_there_rel ] > ]. ; Handle ある existence rels -- eric-n exist_v_rel-be_v_there_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:_exist_v_rel" ] >, EN.RELS < [ PRED _be_v_there_rel ] > ]. ; Handle ある existence rels -- eric-n ; exist_v_rel-be_v_there_rel-mtr := arg1_v_mtr & ; [ JA.RELS < [ PRED "ja:_exist_v_2_rel" ] >, ; EN.RELS < [ PRED _be_v_there_rel ] > ]. ; Handle ある existence rels -- eric-n ; exist_v_rel-be_v_there_rel-mtr := arg1_v_mtr & ; [ JA.RELS < [ PRED "_exist_v_3_rel" ] >, ; EN.RELS < [ PRED _be_v_there_rel ] > ]. exist-be_v_there_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:exist" ] >, EN.RELS < [ PRED _be_v_there_rel ] > ]. ;;; these go before the default quantifier rules ;;; 犬 が ない be_v_there_rel-neg_rel--udef_rel-any_q_rel-omtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED _be_v_there_rel, LBL #h1, ARG1 #x1 ], [ PRED neg_rel, ARG1 #h2 ] >, HCONS < qeq & [ HARG #h2, LARG #h1 ] > ], INPUT.RELS < [ PRED "ja:udef_rel", LBL #h3, ARG0 #x1 , RSTR #h4, BODY #h5 ] >, OUTPUT.RELS < [ PRED _any_q_rel, LBL #h3, ARG0 #x1 , RSTR #h4, BODY #h5 ] > ]. be_v_there_rel--udef_rel+neg_rel-no_q_rel-mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED _be_v_there_rel, LBL #h1, ARG1 #x1 ] >, INPUT [ RELS < [ PRED "ja:udef_rel", LBL #h2, ARG0 #x1, RSTR #h3, BODY #h4 ], [ PRED neg_rel, LBL #h5, ARG1 #h6 ] >, HCONS < qeq & [ HARG #h7, LARG #h5 ], qeq & [ HARG #h6, LARG #h1 ] > ], OUTPUT [ RELS < [ PRED _no_q_rel, LBL #h2, ARG0 #x1 , RSTR #h3, BODY #h4 ] >, HCONS < qeq & [ HARG #h7, LARG #h1 ] > ] ]. be_v_there_rel--udef_rel-udef_q_rel-omtr := monotonic_omtr & [ CONTEXT.RELS < [ PRED _be_v_there_rel, LBL #h1, ARG1 #x1 ] >, INPUT.RELS < [ PRED "ja:udef_rel", LBL #h2, ARG0 #x1 , RSTR #h3, BODY #h4 ] >, OUTPUT.RELS < [ PRED udef_q_rel, LBL #h2, ARG0 #x1 , RSTR #h3, BODY #h4 ] >, FILTER [ RELS < [ PRED neg_rel, LBL #h5, ARG1 #h6 ] >, HCONS < qeq & [ HARG #h7, LARG #h5 ], qeq & [ HARG #h6, LARG #h1 ] > ] ]. be_v_there_rel--udef_rel-a_q_rel-mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED _be_v_there_rel, LBL #h1, ARG1 #x1 ] >, INPUT.RELS < [ PRED "ja:udef_rel", LBL #h2, ARG0 #x1 , RSTR #h3, BODY #h4 ] >, OUTPUT.RELS < [ PRED _a_q_rel, LBL #h2, ARG0 #x1 , RSTR #h3, BODY #h4 ] >, FILTER [ RELS < [ PRED neg_rel, LBL #h5, ARG1 #h6 ] >, HCONS < qeq & [ HARG #h7, LARG #h5 ], qeq & [ HARG #h6, LARG #h1 ] > ] ]. suru_v_rel-do_v_rel-mtr := arg12_v_mtr & [ JA.RELS < [ PRED "ja:_suru_v_rel" ] >, EN.RELS < [ PRED "_do_v_1_rel" ] > ]. ; "_yaru_v_rel" --> "_yaru_v_3_rel": 2006/09/27 grammar yaru_v_rel-do_v_rel-mtr := arg12_v_mtr & [ JA.RELS < [ PRED "ja:_yaru_v_rel" ] >, EN.RELS < [ PRED "_do_v_1_rel" ] > ]. ;;; ko-/so-/aso- demonstratives kono-this_q-mtr := quantifier_mtr & [ JA.RELS < [ PRED "ja:_kono_q_rel" ] >, EN.RELS < [ PRED _this_q_dem_rel ] > ]. sono-that_q-mtr := quantifier_mtr & [ JA.RELS < [ PRED "ja:_sono_q_rel" ] >, EN.RELS < [ PRED _that_q_dem_rel ] > ]. ano-that_q-mtr := quantifier_mtr & [ JA.RELS < [ PRED "ja:_ano_q_rel" ] >, EN.RELS < [ PRED _that_q_dem_rel ] > ]. ; demonstrative_q-mtr := quantifier_mtr & ; [ JA.RELS < [ PRED "ja:_dem_q_rel" ] >, ; EN.RELS < [ PRED _that_q_dem_rel ] > ]. ; "_koko_n_rel" --> "_koko_n_3_rel" : changed in 2006/09/27 grammar ; --> "_koko_n_rel", "_koko_n_7_rel" koko_n_rel-here_a_1_rel := n_adj_mtr & [ JA.RELS < [ PRED "ja:_koko_n_3_rel" ] >, EN.RELS < [ PRED _here_a_1_rel ] > ]. soko_n_rel-there_a_1_rel := n_adj_mtr & [ JA.RELS < [ PRED "ja:_soko_n_rel" ] >, EN.RELS < [ PRED _there_a_1_rel ] > ]. ;;; fix me --- maybe "over there" asoko_n_rel-there_a_1_rel := n_adj_mtr & [ JA.RELS < [ PRED "ja:_asoko_n_rel" ] >, EN.RELS < [ PRED _there_a_1_rel ] > ]. ;;; Adverbs motto_a_3_rel-comp_rel-mtr & adjective_mtr & [ JA.RELS < [ PRED "ja:_motto_a_3_rel" ] >, EN.RELS < [ PRED comp_rel ] > ]. ; motto_a_3_rel-more_a_1_rel-mtr & adjective_mtr & ; [ JA.RELS < [ PRED "_motto_a_3_rel" ] >, ; EN.RELS < [ PRED "_more_a_1_rel" ] > ]. motto_a_rel-comp_rel-mtr & adjective_mtr & [ JA.RELS < [ PRED "ja:_motto_a_rel" ] >, EN.RELS < [ PRED comp_rel ] > ]. ; motto_a_rel-more_a_1_rel-mtr & adjective_mtr & ; [ JA.RELS < [ PRED "_motto_a_rel" ] >, ; EN.RELS < [ PRED "_more_a_1_rel" ] > ]. ;;; Particles, prepositions, etc. no_p_rel-rel_noun-omtr := monotonic_omtr & [ CONTEXT.RELS < [ PRED "~_n_of_", LBL #h1, ARG0 #x1 & x ] >, INPUT.RELS < [ PRED "ja:_no_p_rel", ARG1 #x1, ARG2 #x2 & x ] >, OUTPUT.RELS < [ PRED "rel_noun_mark", LBL #h1, ARG0 #x2 ] >, FLAGS.EQUAL < #x1, #x2 > ]. rel_noun_add_arg2-mtr := monotonic_mtr & [ INPUT.RELS < [ PRED #p, LBL #h1, ARG0 #x1 & x ], [ PRED "rel_noun_mark", LBL #h1, ARG0 #x2 & x ] >, OUTPUT.RELS < [ PRED #p, LBL #h1, ARG0 #x1, ARG1 #x2 ] >, FLAGS.EQUAL < #x1, #x2 > ]. ; XのY → X Y ; not if X is a pronoun (then use poss) no_p_rel-compound_rel-omtr := preposition_omtr & [ FILTER.RELS < [ PRED "ja:pron_rel", ARG0 #x1] >, JA.RELS < [ PRED "ja:_no_p_rel", ARG2 #x1 ] >, EN.RELS < [ PRED compound_rel ] > ]. mark-compound_rel-lbl-mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_n_", LBL #h0, ARG0 #x1 & x ], [ PRED compound_rel, LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT.RELS < [ PRED "compound_rel_lbl_mark", LBL #h1, ARG0 #h0 ] >, FILTER.RELS < [ PRED "compound_rel_lbl_mark", LBL #h1, ARG0 #h0 ] >, FLAGS.EQUAL < #x1 > ]. swap-compound_rel-lbl-mtr := monotonic_mtr & [ INPUT.RELS < [ PRED compound_rel, LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ PRED "compound_rel_lbl_mark", LBL #h1, ARG0 #h2 ] >, OUTPUT.RELS < [ PRED compound_rel, LBL #h2, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] > ]. compound_rel--udef_rel-udef_q_rel := monotonic_mtr & [ CONTEXT.RELS < [ PRED compound_rel, LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, INPUT.RELS < [ PRED "ja:udef_rel", LBL #h2, ARG0 #x2, RSTR #h3, BODY #h4 ] >, OUTPUT.RELS < [ PRED udef_q_rel, LBL #h2, ARG0 #x2, RSTR #h3, BODY #h4 ] > ]. ; XのY → X's Y or Y of X ; have to swap the order of the arguments ;;; fix me - may want a lower type than this no_p_rel-poss_rel-omtr := arg12_arg21_v_mtr & [ JA.RELS < [ PRED "ja:_no_p_rel" ] >, EN.RELS < [ PRED poss_rel ] > ]. ; XのY → Y of X ;no_p_rel-of_p_rel-mtr := preposition_mtr & ;[ JA.RELS < [ PRED "ja:_no_p_rel" ] >, ; EN.RELS < [ PRED _of_p_rel ] > ]. ; ni_p_rel-in+order+to_rel := monotonic_omtr & ; [ CONTEXT.RELS < [ PRED "~_v_", LBL #h1, ARG0 #e1 & e ] >, ; JA.RELS < [ PRED "ja:_ni_p_rel", LBL #h1, ARG0 #e0 & e, ARG1 #e1 & e, ARG2 #e2 & e ] >, ; EN.RELS < [ PRED "_in+order+to_x_rel", LBL #h1, ARG0 #e0, MAIN #h2, SUBORD #h3 ] >, ; FLAGS.EQUAL < #e0, #e1, #e2 > ]. ; "_de_p_rel"'s ARGs have already been swapped; really matches on ARG1 ; -- eric-n 2006/8/31 de_p_rel-unspec_loc_rel := preposition_mtr & [ CONTEXT.RELS < [ PRED "ja:place_rel", ARG0 #x ] >, JA.RELS < [ PRED "ja:_de_p_rel", ARG2 #x ] >, EN.RELS < [ PRED unspec_loc_rel ] > ]. ni_p_rel-unspec_loc_rel := preposition_mtr & [ CONTEXT.RELS < [ PRED "ja:place_rel", ARG0 #x ] >, JA.RELS < [ PRED "ja:_ni_p_rel", ARG2 #x ] >, EN.RELS < [ PRED unspec_loc_rel ] > ]. ;;; *in* January ni_p_rel-in_p_temp_rel := preposition_mtr & [ CONTEXT.RELS < [ PRED mofy_rel, ARG0 #x ] >, JA.RELS < [ PRED "ja:_ni_p_rel", ARG2 #x ] >, EN.RELS < [ PRED _in_p_temp_rel ] > ]. ;;; *on* Monday ni_p_rel-on_p_temp_rel := preposition_mtr & [ CONTEXT.RELS < [ PRED dofw_rel, ARG0 #x ] >, JA.RELS < [ PRED "ja:_ni_p_rel", ARG2 #x ] >, EN.RELS < [ PRED _on_p_temp_rel ] > ]. ni_p+adj-adj := monotonic_mtr & [ INPUT.RELS < [ PRED "ja:_ni_p_rel", LBL #h1, ARG0 #e1 & e, ARG1 #e2 & e, ARG2 #e3 & e ], [ PRED #p, LBL #h2, ARG0 #e3, ARG1 #u ] >, OUTPUT.RELS < [ PRED #p, LBL #h1, ARG0 #e3 & [ TENSE UNTENSED ], ARG1 #e2 ] >, FLAGS.EQUAL < #e1, #e2, #e3 > ]. ni_p_rel-in_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_ni_p_rel" ] >, EN.RELS < [ PRED _in_p_rel ] > ]. ni_p_rel-to_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_ni_p_rel" ] >, EN.RELS < [ PRED _to_p_rel ] > ]. ni_p_rel-into_p_rel := preposition_mtr & [ JA.RELS < [ PRED "ja:_ni_p_rel" ] >, EN.RELS < [ PRED _into_p_rel ] > ]. ; "_e_p_rel" --> "_e_p_6_rel" : changed in 2006/09/27 grammar ; there and back again! e_p_6_rel-to_p_rel := preposition_mtr & [ JA.RELS < [ PRED "ja:_e_p_rel" ] >, EN.RELS < [ PRED _to_p_rel ] > ]. to_p_with_rel-with_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_to_p_with_rel" ] >, EN.RELS < [ PRED _with_p_rel ] > ]. de_p_rel-in_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _in_p_rel ] > ]. de_p_rel-on_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _on_p_rel ] > ]. de_p_rel-at_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _at_p_rel ] > ]. de_p_rel-by_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _by_p_rel ] > ]. de_p_rel-by_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _by_p_means_rel ] > ]. de_p_rel-with_p_rel := preposition_mtr & [ JA.RELS < [ PRED "ja:_de_p_rel" ] >, EN.RELS < [ PRED _with_p_rel ] > ]. made_p_rel-to_p_rel := preposition_omtr & [ JA.RELS < [ PRED "ja:_made_p_rel" ] >, EN.RELS < [ PRED _to_p_rel ] > ]. ; made_p_rel-until_p_rel := preposition_mtr & ; [ JA.RELS < [ PRED "_made_p_rel" ] >, ; EN.RELS < [ PRED _until_p_rel ] > ]. ; how do I turn this off (^^;) -- eric-n 2006/9/1 ; -- use FLAGS.EQUAL to force equality comparison ;;; FCB fixme kara_p_rel-from_p_rel := preposition_mtr & [ JA.RELS < [ PRED "ja:_kara_p_rel" ]>, EN.RELS < [ PRED _from_p_rel ] >]. kara_p_rel-so_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_kara_p_rel", ARG0 #u & u ] >, EN.RELS < [ PRED _so_c_rel ] >, FLAGS.EQUAL < #u > ]. ;;; Coordination node_p_rel-so_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_node_p_rel" ] >, EN.RELS < [ PRED _so_c_rel ] > ]. ga_p_rel-but_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_ga_p_rel" ] >, EN.RELS < [ PRED _but_c_rel ] > ]. kedo_p_rel-but_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_kedo_p_rel" ] >, EN.RELS < [ PRED _but_c_rel ] > ]. to_p_and_rel-and_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_to_p_and_rel" ] >, EN.RELS < [ PRED _and_c_rel ] > ]. to_p_sconj_rel-and_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_to_p_sconj_rel" ] >, EN.RELS < [ PRED _and_c_rel ] > ]. ka_p_conj_rel-or_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_ka_p_conj_rel" ] >, EN.RELS < [ PRED _or_c_rel ] > ]. ka_p_sconj_rel-or_c_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_ka_p_sconj_rel" ] >, EN.RELS < [ PRED _or_c_rel ] > ]. comma_p_conj_rel-implicit_conj_rel := conjunction_mtr & [ JA.RELS < [ PRED "ja:_comma_p_conj_rel" ] >, EN.RELS < [ PRED implicit_conj_rel ] > ]. coord-and_c_rel := monotonic_mtr & [ CONTEXT.RELS < [ PRED #p1, LBL #h2 & h, ARG0 #e1 & [ TENSE #t1, MOOD #m1 ], MARG #h3 & h ], [ PRED #p2, LBL #h4 & h, ARG0 #e0 & [ TENSE #t2, MOOD #m2 ], MARG #h5 & h ]>, INPUT [ RELS < [ PRED "ja:coord", LBL #h6 & h, L-HNDL #h2, R-HNDL #h4 ], [ PRED #p0, LBL #h0 & h, ARG0 #e0, MARG #h1 & h ] >, HCONS < qeq & [ HARG #h1, LARG #h6 ] > ], OUTPUT.RELS < [ PRED _and_c_rel, LBL #h1, ARG0 #e2 & [ TENSE #t2, MOOD #m2 ], L-HNDL #h2, L-INDEX #e1, R-HNDL #h4, R-INDEX #e0 ], [ PRED #p0, LBL #h0 & h, ARG0 #e2, MARG #h1 & h ] >, FLAGS.EQUAL < #h0, #e0, #h1, #e1, #h2, #e2, #h3, #h4, #h5, #h6 > ]. relink_index_mtr := mrs_transfer_rule & [ CONTEXT.RELS < [ LBL #h1 & h, ARG0 #e1 & e, MARG #h2 & h ] >, INPUT [ LTOP #h1 , INDEX #e2 & e ], FILTER [ LTOP #h1, INDEX #e1 ], OUTPUT [ LTOP #h1, INDEX #e1 ], FLAGS.EQUAL < #h1, #e1, #h2, #e2 > ]. nara_if_p-mtr := conj_subord_mtr & [ JA.RELS < [ PRED "ja:_nara_p_rel" ], ... >, EN.RELS < [ PRED "_if_x_then_rel" ], ... > ]. eba_if_p-mtr := conj_subord_mtr & [ JA.RELS < [ PRED "ja:_eba_c_rel" ], ... >, EN.RELS < [ PRED "_if_x_then_rel" ], ... > ]. tara_if_p-mtr := conj_subord_mtr & [ JA.RELS < [ PRED "ja:_tara_c_rel" ], ... >, EN.RELS < [ PRED "_if_x_then_rel" ], ... > ]. ; why does rareru_v_can_rel need to be in quotes? -- eric-n 2006/8/28 ; -- make sure it is in predicates.tdl ; changed rareru_rel to rareru_v_can_rel in 2006/09/27 grammar rareru_v_can_rel-can_v_modal_rel-mtr := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], JA.RELS < [ PRED "ja:rareru_v_can_rel", LBL #h3, ARG0 #e1, ARG1 #x, ARG2 #h4 ], [ PRED "ja:proposition_m_rel", LBL #h4, ARG0 #e2, MARG #h1 ] >, EN.RELS < [ PRED _can_v_modal_rel, LBL #h3, ARG0 #e1, ARG1 #h1 ] > ]. ; handle ellipsed arguments -- we need to produce an ellipse_ref_rel in ERG ; EN 2007/2/5 dekiru_v_rel-can_v_modal_rel-mtr := monotonic_mtr & [ JA.RELS < [ PRED "ja:_dekiru_v_rel", LBL #h0, ARG0 #e1, ARG1 #x1 ] >, EN [ RELS < [ PRED _can_v_modal_rel, LBL #h0, ARG0 #e1, ARG1 #h1 ], [ PRED ellipsis_ref_rel, LBL #h2, ARG0 #e2 & [ TENSE UNTENSED ], ARG1 #x1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ]]. ; changed rareru_rel to rareru_v_can_rel in 2006/09/27 grammar dekiru_v_rel+koto_n_rel-can_v_modal_rel-mtr := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], JA [ RELS < [ PRED "ja:_dekiru_v_rel", LBL #h3, ARG0 #e1, ARG1 #x1 ], [ PRED "ja:proposition_m_rel", LBL #h4, ARG0 #e2, MARG #h1 ], [ PRED "ja:_koto_n_rel", LBL #h5, ARG0 #x1, ARG1 #h4 ], [ PRED "ja:udef_rel", LBL #h6, ARG0 #x1, RSTR #h7, BODY #h8 ] >, HCONS < qeq & [ HARG #h7, LARG #h5 ] > ], EN.RELS < [ PRED _can_v_modal_rel, LBL #h3, ARG0 #e1, ARG1 #h1 ], [ PRED "mark_strip_tense", LBL #h2, ARG0 #e2 & [ TENSE UNTENSED ] ]> ]. dekiru_v_rel+no_n_rel-can_v_modal_rel-mtr := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT [ RELS < [ PRED "ja:_dekiru_v_rel", LBL #h3, ARG0 #e1, ARG1 #x1 ], [ PRED "ja:proposition_m_rel", LBL #h4, ARG0 #e2, MARG #h1 ], [ PRED "ja:_no_n_rel", LBL #h5, ARG0 #x1, ARG1 #h4 ], [ PRED "ja:udef_rel", LBL #h6, ARG0 #x1, RSTR #h7, BODY #h8 ] >, HCONS < qeq & [ HARG #h7, LARG #h5 ] > ], OUTPUT.RELS < [ PRED _can_v_modal_rel, LBL #h3, ARG0 #e1, ARG1 #h1 ], [ PRED "mark_strip_tense", LBL #h2, ARG0 #e2 & [ TENSE UNTENSED ] ] > ]. ;;; FCB fix me! ;;; "like" taking a verbal complement ;;; * maybe split? ;;; link ARG2 through the "no/koto" ;;; link the ARG1 if they are empty ;;;; FIXME: generalize to other verbs suki_a_rel+koto_n_rel-likes-to-mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "~_m_", LBL #h4, ARG0 #e2, MARG #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT [ RELS < [ PRED "_like_v_1_rel", LBL #h3, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ PRED "ja:_koto_n_rel", LBL #h5, ARG0 #x2, ARG1 #h4 ], [ PRED "ja:udef_rel", LBL #h6, ARG0 #x2, RSTR #h7, BODY #h8 ], [ PRED #verb, LBL #h2, ARG0 #e2, ARG1 #x, ARG2 #xx ]>, HCONS < qeq & [ HARG #h7, LARG #h5 ] > ], OUTPUT.RELS < [ PRED "_like_v_1_rel", LBL #h3, ARG0 #e1, ARG1 #x1, ARG2 #h4 ], [ PRED "mark_strip_tense", LBL #h2, ARG0 #e2 & [ TENSE UNTENSED ]], [ PRED #verb, LBL #h2, ARG0 #e2, ARG1 #x1, ARG2 #xx ] > ]. ;;; "like" taking a verbal complement suki_a_rel+no_n_rel-likes-to-mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "~_m_", LBL #h4, ARG0 #e2, MARG #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT [ RELS < [ PRED "_like_v_1_rel", LBL #h3, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ PRED "ja:_no_n_rel", LBL #h5, ARG0 #x2, ARG1 #h4 ], [ PRED "ja:udef_rel", LBL #h6, ARG0 #x2, RSTR #h7, BODY #h8 ], [ PRED #verb, LBL #h2, ARG0 #e2, ARG1 #x, ARG2 #xx ]>, HCONS < qeq & [ HARG #h7, LARG #h5 ] > ], OUTPUT.RELS < [ PRED "_like_v_1_rel", LBL #h3, ARG0 #e1, ARG1 #x1, ARG2 #h4 ], [ PRED "mark_strip_tense", LBL #h2, ARG0 #e2 & [ TENSE UNTENSED ]], [ PRED #verb, LBL #h2, ARG0 #e2, ARG1 #x1, ARG2 #xx ] > ]. ;;; FIXME what does this do? ; drop_strip_tense-mtr := monotonic_mtr & ; [ INPUT.RELS < [ PRED "mark_strip_tense", LBL #h1, ; ARG0 #e1 & [ TENSE UNTENSED ] ] > ]. ; changed from tai_rel to tai_v_want_rel in 2006/09/27 grammar tai_v_want_rel-want_v_1_rel := arg12_v_mtr & [ JA.RELS < [ PRED "ja:tai_v_want_rel" ] >, EN.RELS < [ PRED "_want_v_1_rel" ] > ]. ; can't use prop-or-ques_m_rel ^^; -- eric-n ne_m_rel-prpstn_m_rel-mtr := message_mtr & [ JA.RELS < [ PRED "ja:ne_m_rel" ] >, EN.RELS < [ PRED prpstn_m_rel ] > ]. ;;; Nominalization, thing, place -- predicates with slightly different names noun-relation-nominalization_rel-mtr := arg1_v_mtr & [ JA.RELS < [ PRED "ja:noun-relation" ] >, EN.RELS < [ PRED nominalization_rel ] > ]. noun_relation-generic_entity_rel := noun_mtr & [ JA.RELS < [ PRED "ja:noun_relation" ] >, EN.RELS < [ PRED generic_entity_rel ] > ]. reason_reason_rel := noun_mtr & [ JA.RELS < [ PRED "ja:_reason_n_rel" ] >, EN.RELS < [ PRED reason_rel ] > ]. thing_n_rel-thing_rel-mtr := noun_mtr & [ JA.RELS < [ PRED "ja:_thing_n_rel" ] >, EN.RELS < [ PRED thing_rel ] > ]. place_rel-place_n_rel-mtr := noun_mtr & [ JA.RELS < [ PRED "ja:place_rel" ] >, EN.RELS < [ PRED place_n_rel ] > ]. way-manner-mtr := noun_mtr & [ JA.RELS < [ PRED "ja:_way_a_rel" ] >, EN.RELS < [ PRED manner_rel ] > ]. itsu-time-mtr := noun_mtr & [ JA.RELS < [ PRED "ja:_itsu_n_rel" ] >, EN.RELS < [ PRED time_n_rel ] > ]. ;;; ;;; Time relations ;;; ima_n_rel-now_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_ima_n_rel" ] >, EN.RELS < [ PRED _now_a_1_rel ], ... > ]. kyou_n_7_rel-today_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_kyou_n_7_rel" ] >, EN.RELS < [ PRED _today_a_1_rel ], ... > ]. honjitsu_n-today_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_honjitsu_n_rel" ] >, EN.RELS < [ PRED _today_a_1_rel ], ... > ]. ashita_n_rel-tomorrow_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_ashita_n_rel" ] >, EN.RELS < [ PRED _tomorrow_a_1_rel ], ... > ]. kinou_n_rel-yesterday_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_kinou_n_rel" ] >, EN.RELS < [ PRED _yesterday_a_1_rel ], ... > ]. konban_n_-tonight_a_1_rel+time_n_rel-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_konban_n_rel" ] >, EN.RELS < [ PRED _tonight_a_1_rel ], ... > ]. konya_n_1-tonight_a_1+time_n-mtr := n_adj+time_n_rel-mtr & [ JA.RELS < [ PRED "ja:_konya_n_1_rel" ] >, EN.RELS < [ PRED _tonight_a_1_rel ], ... > ]. udef_q-implicit_q-mtr := quantifier_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] >, RELS < [ PRED time_n_rel, LBL #h2 ] > ], JA.RELS < [ PRED "ja:udef_rel", RSTR #h1 ] >, EN.RELS < [ PRED implicit_q_rel, RSTR #h1 ] > ]. ; topicalize-mtr := message_mtr & ; [ JA.RELS < [ PRED int_m_rel, ARG0 #e ] >, ; EN.RELS < [ PRED int_m_rel, ARG0 #e, TPC #e ] > ]. ;;; ;;; Time of day (not so good cover) ;;; nichi_n_rel-day_n_rel := noun_mtr & [ JA.RELS < [ PRED "ja:_nichi_n_rel" ] >, EN.RELS < [ PRED "_day_n_of_rel" ] > ]. yoru_n_rel-night_n_rel := noun_mtr & [ JA.RELS < [ PRED "ja:_yoru_n_5_rel" ] >, EN.RELS < [ PRED "_night_n_of_rel" ] > ]. asa_n_rel-morning_n_rel := noun_mtr & [ JA.RELS < [ PRED "ja:_yoru_n_rel" ] >, EN.RELS < [ PRED "_morning_n_of_rel" ] > ]. udef_q-implicit_q-mtr := quantifier_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] >, RELS < [ PRED "_night_n_of_rel", LBL #h2 ] > ], JA.RELS < [ PRED "ja:udef_rel", RSTR #h1 ] >, EN.RELS < [ PRED def_implicit_q_rel, RSTR #h1 ] > ]. ;;; English grammar uses different predicates! manner_manner_mtr := preposition_mtr & [ CONTEXT.RELS < [PRED manner_rel, ARG0 #x2] >, INPUT.RELS < [ PRED "ja:unspec_p_manner_rel", ARG2 #x2 ] >, OUTPUT.RELS < [ PRED unspec_manner_rel ] > ]. manner_manner_mtr := preposition_mtr & [ CONTEXT.RELS < [PRED reason_rel, ARG0 #x2] >, INPUT.RELS < [ PRED "ja:unspec_p_manner_rel", ARG2 #x2 ] >, OUTPUT.RELS < [ PRED _for_p_rel ] > ]. ;;; ;;; IWSLT predicates ;;; suri_n_1-thief_n_1-omtr := noun_omtr & [ JA.RELS < [ PRED "ja:_suri_n_1_rel" ] >, EN.RELS < [ PRED "_thief_n_1_rel" ] > ]. suri_n_1-pick+pocket_1-omtr := n_n+n_mtr & [ INPUT.RELS < [ PRED "ja:_suri_n_1_rel" ], ... >, OUTPUT.RELS < [ PRED "_pick_n_1_rel" ], [ PRED "_pocket_n_of_rel" ], ... > ]. isha_n_1-doctor_n_1-omtr := noun_mtr & [ JA.RELS < [ PRED "ja:_isha_n_1_rel" ] >, EN.RELS < [ PRED "_doctor_n_1_rel" ] > ]. shitashii_a_1--close_a_1-mtr := adjective_mtr & [ INPUT.RELS < [ PRED "ja:_shitashii_a_1_rel" ], ... >, OUTPUT.RELS < [ PRED "_close_a_to_rel" ], ... > ]. tooku_n_1--distance_n_1-mtr := noun_mtr & [ INPUT.RELS < [ PRED "ja:_tooku_n_1_rel" ], ... >, OUTPUT.RELS < [ PRED "_distance_n_1_rel" ], ... > ]. ;; ;; FIXME: link に to arg2 ;; shitashii_a_1--close_a_1-mtr := adjective_mtr & [ INPUT.RELS < [ PRED "ja:_anzen_a_2_rel" ], ... >, OUTPUT.RELS < [ PRED "_safe_a_for_rel" ], ... > ]. wakaru_v_3--understand_v_by-omtr := arg12_v_mtr & [ INPUT.RELS < [ PRED "ja:_wakaru_v_3_rel" ] >, OUTPUT.RELS < [ PRED "_understand_v_by_rel" ] > ]. wakaru_v_5--understand_v_by-omtr := arg12_v_mtr & [ INPUT.RELS < [ PRED "ja:_wakaru_v_5_rel" ] >, OUTPUT.RELS < [ PRED "_understand_v_by_rel" ] > ]. hoshii_a_emo-want_v_rel-mtr := arg12_v_mtr & [ INPUT.RELS < [ PRED "ja:_hoshii_a_emo_rel" ] >, OUTPUT.RELS < [ PRED "_want_v_1_rel" ] > ]. ;;; just like suki_a_1--want_v_rel-mtr := arg12_v_mtr & [ INPUT.RELS < [ PRED "ja:_suki_a_1_rel" ] >, OUTPUT.RELS < [ PRED "_want_v_1_rel" ] > ]. ;;; ;;; For the moment we lose all titles ;;; lose-title-mtr := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], JA [ RELS < [ PRED #titled, ARG0 #x1 ], [ LBL #h4, ARG0 #x2 ], [ PRED "ja:title-id_rel", ARG1 #x2, ARG1 #x2 ], [ PRED "ja:udef_rel", LBL #h6, ARG0 #x2, RSTR #h7 ] >, HCONS < qeq & [ HARG #h7, LARG #h4 ] > ], EN.RELS < +copy+ & [ PRED #titled, ARG0 #x1 ] > ]. ; zero pronoun handling TNG -- eric-n ; mark_zero_arg1_mtr := monotonic_mtr & ; [ CONTEXT.RELS < [ ARG0 #e & e, ; ARG1 #u & u ] >, ; OUTPUT.RELS < [ PRED "_zero_mark", ; ARG0 #u ] >, ; FILTER.RELS < [ PRED "~zero_mark", ; ARG0 #u ] >, ; FLAGS.EQUAL < #e, #u > ]. ; ; mark_no_zero_arg1_mtr := monotonic_mtr & ; ; [ CONTEXT.RELS < [ ARG0 #e & e, ; ; ARG1 #u & u ] >, ; ; OUTPUT.RELS < [ PRED "no_zero_mark", ; ; ARG0 #u ] >, ; ; FILTER.RELS < [ PRED "~zero_mark", ; ; ARG0 #u ] >, ; ; FLAGS.EQUAL < #e, #u > ]. ; mark_zero_arg2_omtr := monotonic_omtr & ; [ CONTEXT.RELS < [ ARG0 #e & e, ; ARG2 #u & u ] >, ; OUTPUT.RELS < [ PRED "_zero_mark", ; ARG0 #u ] >, ; FILTER.RELS < [ PRED "~zero_mark", ; ARG0 #u ] >, ; FLAGS.EQUAL < #e, #u > ]. ; mark_no_zero_arg2_mtr := monotonic_mtr & ; [ CONTEXT.RELS < [ ARG0 #e & e, ; ARG2 #u & u ] >, ; OUTPUT.RELS < [ PRED "no_zero_mark", ; ARG0 #u ] >, ; FILTER.RELS < [ PRED "~zero_mark", ; ARG0 #u ] >, ; FLAGS.EQUAL < #e, #u > ].