;;; -*- Mode: TDL; Package: LKB; Encoding: utf-8-*- got it? ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; first transfer phase, JaCY-specific accomodation: these rules primarly ;;; patch up `deficiencies' in JaCY MRSs, e.g. ditch selected relations. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; FIXME: block some unwanted readings early on ;;; ;;; obviously it would be better to either ;;; (a) block them in the gramamr ;;; (b) rank them low enough we can ignore them ;;; ;;; (FCB 2007-05-24) block-kudasarau_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ja:_kudasaru_v_2_rel", LBL #h0, ARG0 #e0], [ PRED "~_m_rel", LBL #hm, ARG0 #e0 ], [ PRED "ja:coord", R-HNDL #hm ] >, FLAGS.BLOCK "coordinate -te kudasaru" ]. ; For complex events like 行きたい, make particles modify 行く instead of たい ; --eric-n rareru_prep_mark_move_inside_mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "ja:rareru_v_can_rel", LBL #h1, ARG0 #e1 & e, ARG2 #h2 & h ], [ PRED "ja:proposition_m_rel", LBL #h2, ARG0 #e2, MARG #h3 ], [ PRED "~_p_", LBL #h1, ARG0 #e0 & e, ARG1 #e1, ARG2 #x1 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ], FILTER.RELS < [ PRED "~prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] >, OUTPUT.RELS < [ PRED "prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] >, FLAGS.EQUAL < #e0, #e1, #h2 > ]. tai_prep_mark_move_inside_mtr := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "ja:tai_v_want_rel", LBL #h1, ARG0 #e1 & e, ARG2 #h2 & h ], [ PRED proposition_m_rel, LBL #h2, ARG0 #e2, MARG #h3 ], [ PRED "~_p_", LBL #h1, ARG0 #e0 & e, ARG1 #e1, ARG2 #x1 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ], FILTER.RELS < [ PRED "~prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] >, OUTPUT.RELS < [ PRED "prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] >, FLAGS.EQUAL < #e0, #e1, #h2 > ]. prep_swap_move_inside_mtr := monotonic_mtr & [ INPUT.RELS < [ PRED #p, LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1 ], [ PRED "prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] >, OUTPUT.RELS < [ PRED #p, LBL #h4, ARG0 #e0, ARG1 #e2, ARG2 #x1 ], [ PRED "done_prep_move_inside_mark", LBL #h1, ARG0 #e0, ARG1 #e1, ARG2 #x1, ARG3 #h4, ARG4 #e2 ] > ]. ;;; fix Cardinal's label card_mark_jf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "card_rel", LBL #h0, ARG0 #e1 & u ] >, FILTER.RELS < [ PRED "card_mark", LBL #h0, ARG0 #e1 ] >, OUTPUT.RELS < [ PRED "card_mark", LBL #h0, ARG0 #e1 ] >, FLAGS.EQUAL < #e1 > ]. card_relable_jf := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #x1 ] >, INPUT.RELS < [ LBL #h1, PRED #card, ARG0 #e1, ARG1 #x1, CARG #c1], [ PRED "card_mark", LBL #h1, ARG0 #e1 ] >, OUTPUT.RELS < [ LBL #h0, PRED #card, ARG0 #e1, ARG1 #x1, CARG #c1 ] > ]. ;;; ;;; fill in tense in compound sentences ;;; if tense of the sub S is undefined, make it the same as the main S ; conj_tense_mtr := monotonic_mtr & ; [ INPUT.RELS < [ PRED #pred, LBL #h1, ARG0 #e1 & [MARK test], ; L-HNDL #hl, L-INDEX #el & [TENSE notense], ; R-HNDL #hr, R-INDEX #er & [TENSE #tense ] ] >, ; OUTPUT.RELS < [ PRED #pred, LBL #h1, ARG0 #e1 & [MARK complete], ; L-HNDL #hl, L-INDEX #el & [TENSE #tense], ; R-HNDL #hr, R-INDEX #er & [TENSE #tense] ] > ]. ;;; fix the wierd argument order in JACY for prepositions ;;; fixed in JACY, kept as an example ; prep_mark_jf := monotonic_mtr & ; [ CONTEXT.RELS < [ PRED "~_p_", LBL #h0, ARG0 #e1 & e ] >, ; FILTER.RELS < [ PRED "prep_swap_mark", LBL #h0, ARG0 #e1 ] >, ; OUTPUT.RELS < [ PRED "prep_swap_mark", LBL #h0, ARG0 #e1 ] >, ; FLAGS.EQUAL < #e1 > ]. ; prep_swap_jf := monotonic_mtr & ; [ INPUT.RELS < [ LBL #h1, PRED #pred, ; ARG0 #e1, ARG1 #1, ARG2 #2 ], ; [ PRED "prep_swap_mark", LBL #h1, ARG0 #e1 ] >, ; OUTPUT.RELS < [ LBL #h1, PRED #pred, ; ARG0 #e1, ARG1 #2, ARG2 #1 ] > ]. vn-intrans-suru-verb_jf := monotonic_mtr & [ INPUT [ RELS < [PRED "ja:_suru_v_rel", LBL #hv, ARG0 #v0, ARG1 #v1, ARG2 #x0 ], [ PRED "ja:noun-relation", LBL #hn, ARG0 #x0, ARG1 #hp], [ PRED "ja:udef_rel", ARG0 #x0, RSTR #hr ], [ PRED "ja:proposition_m_rel", LBL #hp, ARG0 #ep, MARG #h5 ], [ PRED #pred, LBL #h0, ARG0 #ep ] >, HCONS < qeq & [ HARG #h5, LARG #h0 ], qeq & [ HARG #hr, LARG #hn ] > ], OUTPUT [RELS < [ PRED #pred, LBL #hv, ARG0 #v0, ARG1 #v1 ] >, HCONS < > ] ]. ;; FCB rewrite nominalizations into similar nouns ;; be ambitous and don`t make it optional ;; ;; Note --- this is just smashing the arguments at the moment ;; --- need to transfer them if possible vn-n_jf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "ja:udef_rel", ARG0 #x0 ] >, INPUT [ RELS < [ PRED "ja:noun-relation", LBL #h6, ARG0 #x0, ARG1 #hp], [ PRED "ja:proposition_m_rel", LBL #hp, ARG0 #ep, MARG #h5 ], [ PRED #pred, LBL #h0, ARG0 #ep ] >, HCONS < qeq & [ HARG #h5, LARG #h0 ] > ], OUTPUT [RELS < [ PRED #pred, LBL #h6, ARG0 #x0 ] >, HCONS < > ] ]. ;; ;; Fix semantics of plural markers ;; FIXME doesn't work properly for named_rel plural-marker-jf := monotonic_mtr & [ CONTEXT [RELS < [ ARG0 #x0, RSTR #hr ] >, HCONs < qeq & [ HARG #hr, LARG #h0 ] > ], INPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #x0 & [ PERS #pers, NUM #num ]], [ PRED "~ja.*_a_pl_rel", LBL #h1, ARG0 #e1, ARG1 #x0 ] >, OUTPUT.RELS < [PRED #pred, LBL #h0, ARG0 #x0 & [ PERS #pers, NUM pl ]] > ]. ;;; ;;; let's understand polite input, even if we aren't polite ourselves (^_^). ;;; FCB 2007-05-24 ;;; gozaru_v--exist_v_jf := arg1_v_mtr & [ INPUT.RELS < [ PRED "ja:_gozaru_v_1_rel" ] >, OUTPUT.RELS < [ PRED "ja:_exist_v_rel" ] > ]. ;;; treat iru like aru iru_v--exist_v_jf := arg1_v_mtr & [ INPUT.RELS < [ PRED "ja:_iru_v_be_rel" ] >, OUTPUT.RELS < [ PRED "ja:_exist_v_rel" ] > ]. ;;; ;;; Treat topicalized locatives as just locatives ;;; p-wa--p_jf := monotonic_mtr & [ INPUT.RELS < [ PRED #pred, LBL #h, ARG0 #e0, ARG1 #i1, ARG2 #i2], [ PRED "ja:_wa_p_rel", LBL #h, ARG0 #e, ARG1 #i1, ARG2 #i2 ] >, OUTPUT.RELS < [ PRED #pred, LBL #h, ARG0 #e0, ARG1 #i1, ARG2 #i2] > ]. ;; ;; treat Hiragana wakaru as 分かる wakaru_v_1--wakaru_v_3_jf := arg12_v_mtr & [ INPUT.RELS < [ PRED "ja:_wakaru_v_1_rel" ] >, OUTPUT.RELS < [ PRED "ja:_wakaru_v_3_rel" ] > ].