;;; Hey, emacs(1), this is -*- Mode: TDL; Package: LKB; -*- got it? ;;; ;;; `multi-word' transfer rules: typically things we should process before the ;;; `regular' transfer rules consume some of the pieces these rules require. ;;; ;;; Everyone complains about the weather, but no one does anything about it ame_rain_mwe_mtr := arg1+np_arg0_v_omtr & [ INPUT [ RELS < [ PRED "ja:_ame_n_rel" ], [ PRED "ja:udef_rel" ], [ PRED "ja:_furu_v_rel" ] >], OUTPUT.RELS < [ PRED "_rain_v_1_rel" ] > ]. yuki_snow_mwe_mtr := arg1+np_arg0_v_omtr & [ INPUT.RELS < [ PRED "ja:_yuki_n_1_rel" ], [ PRED "ja:udef_rel" ], [ PRED "ja:_furu_v_rel"] >, OUTPUT.RELS < [ PRED "_snow_v_1_rel" ] > ]. arare_hail_mwe_mtr := arg1+np_arg0_v_omtr & [ INPUT.RELS < [ PRED "ja:_arare_n_1_rel" ], [ PRED "ja:udef_rel" ], [ PRED "ja:_furu_v_rel"] >, OUTPUT.RELS < [ PRED "_hail_v_1_rel" ] > ]. arare_hail_mwe_mtr := arg1+np_arg0_v_omtr & [ INPUT.RELS < [ PRED "ja:_kirisame_n_1_rel" ], [ PRED "ja:udef_rel" ], [ PRED "ja:_furu_v_rel"] >, OUTPUT.RELS < [ PRED "_drizzle_v_1_rel" ] > ]. ;;; FIXME: other things can also furu. ;;; 0 argument verbs from the ERG ;hail_v1 := v_atrans_le & ;rain_v1 := v_atrans_le & ;snow_v1 := v_atrans_le & ;shower_v2 := v_atrans_le & ;sprinkle_v1 := v_atrans_le & ;drizzle_v1 := v_atrans_le & ;;; add ;pour_v1 := v_atrans_le & ;WordNet ;rain, rain down -- ;(precipitate as rain; "If it rains much more, we can expect some flooding") ; => drizzle, mizzle -- ;(rain lightly; "When it drizzles in summer, hiking can be pleasant") ; => shower, shower down -- ;(rain abundantly; "Meteors showered down over half of Australia") ; => sprinkle, spit, spatter, patter, pitter-patter -- ;(rain gently; "It has only sprinkled, but the roads are slick") ; => pour, pelt, stream, rain cats and dogs, rain buckets -- ;(rain heavily; "Put on your rain coat-- it's pouring outside!") ; => sheet -- ;(come down as if in sheets; "The rain was sheeting down during the monsoon") ; => sluice, sluice down -- ;(pour as if from a sluice; "An aggressive tide sluiced across the barrier reef") ;;; FIXME tense/aspect ;;; FIXME "_shiru_v_rel" or "_shiru_v_1_rel" shiru_koto_v_mwe_mtr := monotonic_mtr & [ INPUT.RELS < [ PRED "ja:_koto_n_6_rel", ARG0 #x18, ARG1 #h17 ], [ PRED "ja:udef_rel", ARG0 #x18 ], [ PRED "ja:_shiru_v_1_rel", LBL #h23, ARG0 #e2, ARG1 #x5, ARG2 #x18 ] >, OUTPUT.RELS < [ PRED "_know_v_1_rel", LBL #h23, ARG0 #e2, ARG1 #x5, ARG2 #h17 ] > ]. ;;; know, have, need, want, live ;;; How can I get these systematically? ;; 日本 の -> Japanese nihon_no--japanese-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "nihon" ], [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_japanese_a_1_rel" ] > ]. oosutoraria_no--australian-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "oosutoraria" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_australian_a_1_rel" ] > ]. igirisu_no--english-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "igirisu_1" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_english_a_1_rel" ] > ]. amerika_no--american-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "amerika" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_american_a_1_rel" ] > ]. beikoku_no--american-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "beikoku_1" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_american_a_1_rel" ] > ]. nihon_jin--japanese-mtr := n+pn_n_mtr & [ INPUT.RELS < [PRED "ja:named_rel", CARG "nihon" ], [ PRED "ja:_hito_n_rel" ], ... >, OUTPUT.RELS < [ PRED named_rel, CARG "Japanese" ], ... > ]. ;; With superlative! moyori_no--nearest-mtr := pp-adjest_mtr & [ INPUT.RELS < [PRED "ja:_moyori_n_1_rel" ], [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_near_a_to_rel" ] > ]. ;;; colors kiiro_no--yellow-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:_kiiro_n_1_rel" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_yellow_a_1_rel" ] > ]. ;;; directions shita_no--low-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:_shita_n__rel" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_low_a_1_rel" ] > ]. ue_no--top-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:_ue_n_rel" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_top_a_1_rel" ] > ]. naka_no--middle-mtr := pp-adj_mtr & [ INPUT.RELS < [PRED "ja:_ue_n_rel" ] , [ PRED "ja:_no_p_rel" ], ... >, OUTPUT.RELS < [ PRED "_middle_a_1_rel" ] > ]. ;;; FIXME should fix in the grammar: link-suki-mtr := monotonic_mtr & [ CONTEXT [ RELS < [PRED "~_m_rel", ARG0 #em, MARG #hm ] >, HCONS < qeq & [ HARG #hm, LARG #h1 ] > ], INPUT.RELS < [ LBL #h1, PRED "ja:_suki_a_1_rel", ARG0 u & #u, ARG1 #x1, ARG2 #x2 ] >, OUTPUT.RELS < [ LBL #h1, PRED "_like_v_1_rel", ARG0 #em, ARG1 #x1, ARG2 #x2 ] >, FLAGS.EQUAL < #u >]. nanika-something_rel_n_1-mtr := monotonic_mtr & [ JA.RELS < [ PRED #verb, LBL #hv, ARG0 #ev, ARG1 #xv, ARG2 u & #u ], [ PRED "ja:_nanika_a_rel", ARG1 #ev, LBL #hn ] >, EN [RELS < [ PRED #verb, LBL #hv, ARG0 #ev, ARG1 #xv, ARG2 #xn ], [ PRED thing_rel, LBL #hn, ARG0 #xn ], [ PRED _some_q_rel, LBL #hs, ARG0 #xn, RSTR #hr ] >, HCONS < qeq & [ HARG #hr, LARG #hn ] > ], FLAGS.EQUAL < #u >]. ; 分かる without any args goes to a bare "okay" -- eric-n wakaru_v_3+proposition_m_rel--okay_a_1+prpstn_m_rel := monotonic_mtr & [ INPUT [ RELS < [ PRED #pred, LBL #h1, ARG0 #e2, MARG #h3 & h ], [ PRED "ja:_wakaru_v_3_rel", LBL #h4, ARG0 #e2 , ARG1 #u5 & u , ARG2 #u6 & u ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ], OUTPUT [ RELS < [ PRED #pred, LBL #h1, ARG0 #e2 & e & [ TENSE untensed, MOOD indicative ], MARG #h3 ], [ PRED unknown_rel, LBL #h6, ARG0 #e2 , ARG #i7 ], [ PRED "_okay_a_for_rel", LBL #h8, ARG0 #e9 & e & [ TENSE untensed, MOOD indicative ], ARG1 #i7, ARG2 #i10 ] >, HCONS < qeq & [ HARG #h3, LARG #h6 ] > ], FLAGS.EQUAL < #e2, #h3, #u5, #u6, #e9 > ]. ; ありがとう goes to "thank you" arigatou_x_-thank-you := monotonic_mtr & [ INPUT.RELS < [ PRED "ja:discourse_rel", LBL #h1, L-HNDL #hl, R-HNDL #hr ], [ PRED "ja:_arigatou_x_rel", LBL #hx, ARG0 #ex ] >, OUTPUT [RELS < [PRED imp_m_rel, LBL #h1, ARG0 #e2, MARG #h3, PSV #u4, TPC #u5 ], [ PRED pron_rel, LBL #h10, ARG0 #x8 ], [ PRED pronoun_q_rel, LBL #h6, ARG0 #x8 & [ PERS 2, PRONTYPE zero_pron ], RSTR #h7 ], [ PRED "_thank_v_1_rel", LBL #h11, ARG0 #e2, ARG1 #x8, ARG2 #x12], [ PRED pron_rel, LBL #h13, ARG0 #x12], [ PRED pronoun_q_rel, LBL #h14, ARG0 #x12 & [ PERS 2, PRONTYPE std_pron ], RSTR #h15 ] >, HCONS < qeq & [ HARG #h3, LARG #h11], qeq & [ HARG #h7, LARG #h10], qeq & [ HARG #h15, LARG #h13] > ]]. ;;; ;;; Ikura to how much <= it's a mess, but doable ;;; ; ikura-how_much := monotonic_mtr & ; [ INPUT [RELS < [ PRED "_quantity_n_rel" ; LBL #h8 ; ARG0 #x9 ] ; [ "part-of_rel" ; LBL #h10 ; ARG0 #x11 ] ; [ PRED udef_rel ; LBL #h12 ; ARG0 #x11 ; RSTR #h13 ; BODY #h14 ] ; [ PRED whq_rel ; LBL #h15 ; ARG0 #x9 ; RSTR #h16 ; BODY #h17 ] ; HCONS < h19 QEQ h18 h16 QEQ h8 h13 QEQ h10 h4 QEQ h7 > ] ; OUTPUT [RELS < ; [ PRED generic_entity_rel ; LBL #h7 ; ARG0 #x5 ] ; [ PRED udef_q_rel ; LBL #h8 ; ARG0 #x5 ; RSTR #h9 ; BODY #h10 ] ; [ PRED abstr_deg_rel ; LBL #h11 ; ARG0 #x12 ] ; [ PRED which_q_rel ; LBL #h13 ; ARG0 #x12 ; RSTR #h14 ; BODY #h15 ] ; [ PRED measure_rel ; LBL #h7 ; ARG0 #i17 ; ARG1 #e16 [ e TENSE #UNTENSED MOOD #INDICATIVE PROG #- PERF #- ] ; ARG2 #x12 ] ; [ PRED much-many_a_rel ; LBL #h7 ; ARG0 #e16 ; ARG1 #x5 ] ; HCONS #< h6 qeq h18 h9 qeq h7 h14 qeq h11 h22 qeq h23 > ]