;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? ;;; Author(s): ;;; 2008 Berthold Crysmann ;;; Fix up German naming conventions de-proper_q_mtr := monotonic_mtr & [INPUT.RELS <[PRED "de:udef_q_rel", ARG0 #0]>, CONTEXT.RELS <[PRED "de:_named_n_rel", ARG0 #0]>, OUTPUT.RELS < +copy+ & [PRED "de:proper_q_rel"]>]. ;;; Eliminate stranded verb particles from MRS p_sel_ditch_gf := elision_mtr & [ INPUT.RELS < [ PRED "~de:.*_x_sel_rel$" ] > ]. ;;; Adapt GG ;;; Resolve scope for scopal mods wahrscheinlich_neg_scop_mtr := scopal_mod_mtr & [CONTEXT.RELS <[PRED "de:_wahrscheinlich_a_rel"], [PRED "de:_neg_a_rel"], ...>]. modal_neg_scop_omtr := scopal_mod_omtr & [CONTEXT.RELS <[PRED "de:_neg_a_rel"], [PRED "de:_können_v_modal-haben_rel"], ...>]. modal_neg_scop_mtr := scopal_mod_mtr & [CONTEXT.RELS <[PRED "de:_können_v_modal-haben_rel"], [PRED "de:_neg_a_rel"], ...>]. ;;; fix-imp-tense := monotonic_mtr & [CONTEXT.RELS <[PRED "de:imp_m_rel", ARG0 #0]>, INPUT.RELS <[PRED "~_[avp]_", ARG0 #0 & e & [MOOD imp]]>, FLAGS.SUBSUME <#0>, OUTPUT.RELS < +copy+ & [ARG0 [TENSE pres, MOOD indicative, PERF -, PROG -]]> ]. ;;; Remove gender on nouns ;;; Remove artefacts of Vorfeldbesetzung for subjects ;; Fronted expletive subjects tpc-expl_mtr := monotonic_mtr & [INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv, MARG #m, TPC i & #i] >, FLAGS [EQUAL <#u,#i>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u & #u]>]. ;; Fronted subjects (active voice) in declaratives tpc_x_-psv_nonfin_mtr := monotonic_mtr & [CONTEXT.RELS <[PRED "~_[avp]_.*rel", ARG0 #e & [TENSE untensed], ARG1 #x]>, INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv & u, MARG #m, TPC x & #x] >, FLAGS [EQUAL <#psv>, SUBSUME <#x,#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv, MARG #m, TPC u]>]. tpc_x_-psv_fin_mtr := monotonic_mtr & [CONTEXT.RELS <[PRED "~_[avp]_.*rel", ARG0 #e & [tense tensed], ARG1 #x]>, INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv & u, MARG #m, TPC x & #x] >, FLAGS [EQUAL <#psv>, SUBSUME <#x,#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. tpc_e_-psv_nonfin_mtr := monotonic_mtr & [CONTEXT [RELS <[PRED "~_[avp]_.*rel", ARG0 #e & [TENSE untensed], ARG1 #harg], [PRED "~_[avp]_.*rel", ARG0 #tpc & [TENSE untensed], LBL #larg ]>, HCONS ], INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv & u, MARG #m, TPC e & #tpc] >, FLAGS [EQUAL <#psv>, SUBSUME <#tpc,#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. ;;; Fronted subject infinitives. tpc_e_-psv_fin_mtr := monotonic_mtr & [CONTEXT [RELS <[PRED "~_[avp]_.*rel", ARG0 #e & [TENSE tensed], ARG1 #harg], [PRED "~_[avp]_.*rel", ARG0 #tpc , LBL #larg ]>, HCONS ], INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv & u, MARG #m, TPC e & #tpc] >, FLAGS [EQUAL <#psv>, SUBSUME <#tpc,#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. ;;; Fronted subject dass-clauses. tpc_e-prpstn_-psv_fin_mtr := monotonic_mtr & [CONTEXT [RELS <[PRED "~_[avp]_.*rel", ARG0 #e & [TENSE tensed], ARG1 #h], [PRED "~_m_.*rel", ARG0 #tpc , LBL #h ]>], INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv & u, MARG #m, TPC e & #tpc] >, FLAGS [EQUAL <#psv>, SUBSUME <#tpc,#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. tpc_e-mod_-psv_fin_omtr := monotonic_omtr & [CONTEXT.RELS <[PRED "~_[avp]_.*rel", ARG0 #e, ARG1 #0] >, INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv , MARG #m, TPC e & #e] >, FLAGS [SUBSUME <#e>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. ;; Fronted sujects (passive voice) in declaratives tpc_+psv_mtr := monotonic_mtr & [CONTEXT.RELS <[PRED "~_[avp]_.*rel", ARG0 #0, ARG2 #x]>, INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #x, MARG #m, TPC x & #x] >, FLAGS [SUBSUME <#x>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #x, MARG #m, TPC u ]>]. ;; Fronted subjects (active voice) in declaratives tpc_rel_mtr := monotonic_mtr & [CONTEXT.RELS <[PRED "~_n_", LBL #l]>, INPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0, LBL #l, PSV #psv, MARG #m, TPC x & #x] >, FLAGS [SUBSUME <#x>], OUTPUT.RELS < [PRED "de:prpstn_m_rel", ARG0 #0 & [MARK test], LBL #l, PSV #psv, MARG #m, TPC u]>]. #| ;;; Transfer message predicates prpstn_mtr := message_mtr & [INPUT.RELS <[PRED "de:prpstn_m_rel"]>, OUTPUT.RELS <+copy+ & [PRED prpstn_m_rel]>]. int_mtr := message_mtr & [INPUT.RELS <[PRED "de:int_m_rel"]>, OUTPUT.RELS <[PRED int_m_rel]>]. prop-or-ques_mtr := message_mtr & [INPUT.RELS <[PRED "de:prop-or-ques_m_rel"]>, OUTPUT.RELS <[PRED prop-or-ques_m_rel]>]. imp_mtr := message_mtr & [INPUT.RELS <[PRED "de:imp_m_rel"]>, OUTPUT.RELS <[PRED imp_m_rel]>]. |# ;;; Conversion rules for information status must follow Vorfeld-rules tpc_convert_wh_mtr := msg_mtr & [INPUT.RELS <[PRED #pred & "de:int_m_rel", MARG #marg, LBL #lbl, ARG0 #0 & e, PSV #psv, TPC #tpc & x ]>, FLAGS.SUBSUME <#tpc,#0>, CONTEXT [RELS <[LBL #vlbl, ARG0 #0],[PRED "de:wh_q_rel", ARG0 #tpc]>, HCONS < qeq & [HARG #marg, LARG #vlbl]>], OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV #psv, TPC u]> ]. tpc_convert_nestedwh_omtr := msg_mtr & [INPUT.RELS <[PRED #pred & "de:int_m_rel", MARG #marg, LBL #lbl, ARG0 #0 & e, PSV #psv, TPC #tpc & i ]>, FLAGS.SUBSUME <#tpc>, CONTEXT [RELS <[LBL #vlbl, ARG0 #0],[PRED "de:wh_q_rel"]>, HCONS < qeq & [HARG #marg, LARG #vlbl]>], OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV #psv, TPC u]> ]. tpc_convert_mtr := msg_mtr & [INPUT.RELS <[PRED #pred, MARG #marg, LBL #lbl, ARG0 #0 & e, PSV #psv, TPC #tpc & i ]>, FLAGS.SUBSUME <#tpc>, CONTEXT [RELS <[LBL #vlbl, ARG0 #0]>, HCONS < qeq & [HARG #marg, LARG #vlbl]>], OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV #psv, TPC u], [PRED focus_d_rel, LBL #vlbl, ARG0 i, ARG1 #0, ARG2 #tpc]> ]. prp_attr_convert_mtr := msg_mtr & [INPUT.RELS <[PRED "de:prpstn_m_rel", LBL #lbl, ARG0 #0 & [PROG -], PSV u & #psv]>, FLAGS.EQUAL <#psv>, CONTEXT [RELS <[ARG0 #0, ARG1 #1], [ARG0 #1, RSTR #rstr]>, HCONS ], OUTPUT.RELS < +copy+ & [ARG0.PROG +]> ]. psp_attr_convert_mtr := msg_mtr & [INPUT.RELS <[PRED #pred, MARG #marg & h, LBL #lbl, ARG0 #0, PSV #psv & x, TPC #tpc ]>, FLAGS.SUBSUME <#psv, #marg>, CONTEXT [RELS <[LBL #vlbl, ARG0 #0, ARG2 #psv], [ARG0 #psv, RSTR #rstr]>, HCONS ], OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV u, TPC #tpc], [PRED parg_d_rel, LBL #lbl, ARG0 e & [SF sforce], ARG1 #0, ARG2 #psv]> ]. psv2_convert_mtr := msg_mtr & [INPUT.RELS <[PRED #pred , MARG #marg & h, LBL #lbl, ARG0 #0, PSV #psv & x, TPC #tpc ]>, FLAGS.SUBSUME < #psv, #marg>, CONTEXT.RELS <[LBL #vlbl, ARG0 #0, ARG2 #psv]>, OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV u, TPC #tpc], [PRED parg_d_rel, LBL #vlbl, ARG0 e & [SF sforce], ARG1 #0, ARG2 #psv]> ]. psv3_convert_mtr := msg_mtr & [INPUT.RELS <[PRED #pred, MARG #marg & h, LBL #lbl, ARG0 #0, PSV #psv & x, TPC #tpc ]>, FLAGS.SUBSUME <#psv,#marg>, CONTEXT.RELS <[LBL #vlbl, ARG0 #0, ARG3 #psv]>, OUTPUT.RELS < [PRED #pred, MARG #marg, LBL #lbl, ARG0 #0, PSV u, TPC #tpc], [PRED parg_d_rel, LBL #vlbl, ARG0 e & [SF sforce], ARG1 #0, ARG2 #psv]> ]. prpstn-coord_mtr := msg_mtr & [INPUT.RELS <[PRED "~de:_.*_coord_rel", ARG0 #0 ], [PRED "~de:prpstn_m_rel", ARG0 #0 ]>, OUTPUT [RELS < +copy+ & [ARG0 [SF prop]]>]]. int-coord_mtr := msg_mtr & [INPUT.RELS <[PRED "~de:int_m_rel", ARG0 #0 ]>, CONTEXT.RELS <[PRED "~de:_.*_coord_rel", ARG0 #0 & [SF ques]]>, OUTPUT [RELS < >]]. imp-coord_mtr := msg_mtr & [INPUT.RELS <[PRED "~de:int_m_rel", ARG0 #0 ]>, CONTEXT.RELS <[PRED "~de:_.*_coord_rel", ARG0 #0 & [SF comm]]>, OUTPUT [RELS < >]]. prpstn_matrix_convert_mtr := message_matrix_convert_mtr & [INPUT.RELS <[],[PRED "de:prpstn_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF prop]>]. prpstn_relc_arg1_convert_mtr := message_relc_convert_mtr & [INPUT.RELS <[PRED #pred, ARG1 #1, ARG2 a],[PRED "de:prpstn_m_rel", LBL #larg]>, CONTEXT [RELS <[PRED "~_q_", RSTR #harg]>, HCONS < qeq & [HARG #harg, LARG #larg]>], OUTPUT.RELS <[PRED #pred, ARG1 #1]>]. prpstn_relc_arg12_convert_mtr := message_relc_convert_mtr & [INPUT.RELS <[PRED #pred, ARG1 #1, ARG2 #2, ARG3 a], [PRED "de:prpstn_m_rel", LBL #larg]>, CONTEXT [RELS <[PRED "~_q_", RSTR #harg]>, HCONS < qeq & [HARG #harg, LARG #larg]>], OUTPUT.RELS <[PRED #pred, ARG1 #1, ARG2 #2]>]. prpstn_relc_arg123_convert_mtr := message_relc_convert_mtr & [INPUT.RELS <[ARG1 #1, ARG2 #2, ARG3 #3, ARG4 a], [PRED "de:prpstn_m_rel", LBL #larg]>, CONTEXT [RELS <[PRED "~_q_", RSTR #harg]>, HCONS < qeq & [HARG #harg, LARG #larg]>], OUTPUT.RELS <[ARG1 #1, ARG2 #2, ARG3 #3]>]. prpstn_relc_arg1234_convert_mtr := message_relc_convert_mtr & [INPUT.RELS <[ARG1 #1, ARG2 #2, ARG3 #3, ARG4 #4], [PRED "de:prpstn_m_rel", LBL #larg]>, CONTEXT [RELS <[PRED "~_q_", RSTR #harg]>, HCONS < qeq & [HARG #harg, LARG #larg]>], OUTPUT.RELS <[ARG1 #1, ARG2 #2, ARG3 #3, ARG4 #4]>]. prpstn_subord_convert_mtr := message_subord_convert_mtr & [INPUT.RELS <[],[PRED "de:prpstn_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF prop]>]. int_matrix_convert_mtr := message_matrix_convert_mtr & [INPUT.RELS <[],[PRED "de:int_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF ques]>]. int_subord_convert_mtr := message_subord_convert_mtr & [INPUT.RELS <[],[PRED "de:int_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF ques]>]. imp_matrix_convert := message_matrix_convert_mtr & [INPUT.RELS <[],[PRED "de:imp_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF comm]>]. imp_subord_convert := message_subord_convert_mtr & [INPUT.RELS <[],[PRED "de:imp_m_rel"]>, OUTPUT.RELS < +copy+ & [ARG0.SF comm]>]. coord_hcons_ditch_mtr := monotonic_mtr & [INPUT [RELS <[LBL #l, PRED #p, ARG0 #0 & e & [TENSE tensed], L-HNDL #lh & h, L-INDEX #li & e, R-HNDL #rh & h, R-INDEX #ri & e ]>, HCONS < qeq & [HARG #lh,LARG #ll], qeq & [HARG #rh,LARG #rl]>], FLAGS.SUBSUME <#lh,#rh,#li,#ri>, OUTPUT [RELS <[LBL #l, PRED #p, ARG0 #0, L-HNDL #ll & h, L-INDEX #li, R-HNDL #rl & h, R-INDEX #ri ]>, HCONS <>] ].