; ;;; -*- Mode: TDL; Coding: utf-8 -*- ; ;;; Author: ; ;;; 2011 Berthold Crysmann ; ;;; Features not yet predicted by fixup rules: ; ;;; --zu luk ; ;;; --tpc ; ;;; ---psv (but see below) ; ;;; --cls semarg ; ;;; reentrant with ARG0 of highest verb in clause ; ;;; percolate down from finite verbs ; ;;; finite predicates: do not set --cls: otherwise ; ;;; problem with complement clauses ; ;;; non-finite predicates: --cls points to arg0 of finite pred ; ;;; clause-level dependents: --cls points to arg0 of finite pred ; ;;; Corresponding syntactic constraint: ; ;;; structure-share --cls on UCOMPS list members ; ;;; ; ;;; Expected efficiency: ; ;;; - blocks sneaking in on skolemised finite preds ; ;;; - blocks mixing of arguments from different clauses ; ;;; on semantically empty heads ; ;;; --sind p-n-g ; ;;; Modals ; ;;; Raising ; ;;; --oind semarg ; ;;; subj-to-obj raising verbs (--sub -) ; ;;; experiencer raising verbs (--sub -) ; ;;; control verbs (--sub -) ; ;;; Assumptions about initial VPM values in input (performance features only): ; ;;; Most general types ; ;;; --coh: luk ; ;;; --top: luk-or-undef ; ;;; --cas: *top* ; ;;; --bnd: luk ; ;;; --punct: mess-punct ; ;;; --sub: luk ; ;;; Explicitly mark non-passives: psv+_mark_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. psv-_mark_rule := fully_monotonic_mtr & [INPUT.RELS , FILTER.RELS , FLAGS.EQUAL <#0>, OUTPUT.RELS ]. ; ;;; Grammar-internally, personal and unpersonal passives are distinguished into ppsv and ipsv, ; ;;; externally they are just --psv +. ;;; Fix tense information on finite coordinate structures fix_coord_tense_fin := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#ri>, CONTEXT.RELS , OUTPUT.RELS ]. ;;; First set --top: --tpc depends on it top_sel_prep_type_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. top_sel_prep_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. top-_sel_prep_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FILTER.RELS , OUTPUT.RELS ]. ;;; Relative clauses top_rel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. top_coord_rel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ; top+_h_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. top+_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FLAGS.SUBSUME <#i>, OUTPUT.RELS ]. top-_rule := fully_monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. ; ;;; arg1_equate_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; arg2_equate_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; arg3_equate_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; marg_equate_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; coord_equate_l_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; coord_equate_r_rule := fully_monotonic_mtr & ; ;;; [CONTEXT [RELS ], ; ;;; FLAGS.SUBSUME <#l2>, ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; ;;; Insert zu_mark ; ;;; ;;; Keep eq_mark ; ;;; ;;; Add coherence equivalence rels ; ;;; ;;; Insert cls_mark ; ;;; coord_eq_init_2 := fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; ;;; Catch case where one conjunct is not instantiated ; ;;; coord_eq_init_1 := fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; coord_eq_recurse := fully_monotonic_mtr & ; ;;; [FILTER.RELS , ; ;;; CONTEXT.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; ;;; ; ;;; ;;; Catch case where there might be two top relations in coiherence chain ; ;;; coh_eq_init_2 := fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; ;;; Catch default case with only 1 top relation ; ;;; coh_eq_init_1 := fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FILTER.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; coh_eq_recurse := fully_monotonic_mtr & ; ;;; [FILTER.RELS , ; ;;; CONTEXT.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; coord_or_coh_mark_del := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS ]. ; ;;; --tpc ; ;;; Rule order ; ;;; 0. set tpc-non-event-non-mod from --TOP + ; ;;; (hopefully contains scopal mods a bit) ; ;;; 1. tpc-isect ; ;;; 2. tcp-event ; ;;; 3. tpc-scop ; ;;; 4. Default: tpc-non-event-non-mod ; ;;; Expected efficency: ; ;;; Controls introduction of PVP ; ;;; Partially controls intersective modifiers ; ;;; Partially controls scopal modifiers ; ;;; Relegates argument extraction to --top feature ; ;;; How to set tpc-isect when attached to scopal mod? ; ;;; Need equivalence marks (recurse over scopal mods) ; ; isect_equiv := fully_monotonic_mtr & ; ; [CONTEXT.RELS , ; ; FLAGS.SUBSUME <#e1>, ; ; FILTER.RELS , ; ; OUTPUT.RELS ]. ; scop_equiv := fully_monotonic_mtr & ; [CONTEXT.RELS , ; FLAGS.SUBSUME <#h1>, ; FILTER.RELS , ; OUTPUT.RELS ]. ; tpc_equiv_ini := fully_monotonic_mtr & ; [CONTEXT.RELS , ; FLAGS.SUBSUME <#l,#e>, ; FILTER.RELS , ; OUTPUT.RELS ]. ; tpc_equiv_recurse := fully_monotonic_mtr & ; [INPUT.RELS , ; CONTEXT.RELS , ; FLAGS.SUBSUME <#e0,#e1>, ; FILTER.RELS , ; OUTPUT.RELS ]. ; mod_mark_del := fully_monotonic_mtr & ; [INPUT.RELS ]. ; isect_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#l,#e0,#e1>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; scop_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#l,#e0,#e1>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; 2nd_isect_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#l,#e0,#e1>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; ;;; ; topic_cop_aux_pvp_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e.#p>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; pvp_arg1_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e0,#h0>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; pvp_arg2_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#h1,#e0,#h0>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; pvp_arg3_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#h1,#e0,#h0>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; isect_default_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e0,#e1>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; scop_default_tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e0,#h1>, ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; coord_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; ; default_tpc_rule := fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; OUTPUT.RELS ]. ; default_-tpc_rule := fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; ;;; --OIND ; ;;; Need to insert coordination equivalence marks (only for full approach) ; ;;; Partial solution possible without. ; ;;; set to --OIND.--BND - on finites ; coord_or_coh_eq_mark_del := ; fully_monotonic_mtr & ; [INPUT.RELS ]. ; ;;; --zu and --tpc operate on coord_eq_mark ; ;;; --cls operates on coh_eq_mark ; ;;; What about --coh ??? ; ;;; --sub ; ;;; Mark all verbs and coordinatons of verbs with sub_mark ; ;;; New regime: ; ;;; Set --sub on finite verbs (+/-/bool) ; ;;; Set on non-finite verbs/coordination in verb movement contexts ; ;;; Default for remaining verbs/coord ; ; sub_v_a := fully_monotonic_mtr & ; ; [CONTEXT.RELS , ; ; FILTER.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_rel_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub-_v1_subord_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_subord_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; ;;; Restricted to embedded wh-questions ; ; sub+_wh_arg1_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_wh_arg2_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_wh_arg3_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_rel_disloc_tpc_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_rel_tpc_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_lindex_rel_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_rindex_rel_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub-_tpc_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub-_imp_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub_+_del_rule_1 := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#0>, ; ; OUTPUT.RELS ]. ; ; sub_-_del_rule_1 := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#0>, ; ; OUTPUT.RELS ]. ; ; #| ; ; sub-_arg1_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS , ; ; HCONS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg1_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_part_arg1_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg1_nomsg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg1_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg2_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg2_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; ;;; Add negative regexp on predicates ; ; sub-_arg2_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_part_arg2_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg2_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; FILTER.RELS , ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg3_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg3_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg3_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub-_arg3_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; ; sub+_non-fin_rule := ; ; ; fully_monotonic_mtr & ; ; ; [INPUT.RELS , ; ; ; CONTEXT.RELS , ; ; ; OUTPUT.RELS ]. ; ; sub+_arg1_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS , ; ; HCONS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg1_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg1_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg1_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg2_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg2_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg2_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg2_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg3_coord_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg3_coord_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg3_no_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#l>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_arg3_msg_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT [RELS ], ; ; OUTPUT.RELS ]. ; ; sub+_no_tpc_arg1_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_no_tpc_arg2_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; sub+_no_tpc_arg3_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#h>, ; ; CONTEXT.RELS , ; ; OUTPUT.RELS ]. ; ; |# ; ; sub_na_del_rule := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#0>, ; ; OUTPUT.RELS ]. ; ; #| ; ; sub_+_del_rule_2 := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#0>, ; ; OUTPUT.RELS ]. ; ; sub_-_del_rule_2 := ; ; fully_monotonic_mtr & ; ; [INPUT.RELS , ; ; FLAGS.SUBSUME <#0>, ; ; OUTPUT.RELS ]. ; ; |# ;;; Explicitly set unbound arguments to unbound bound_ini_rule := fully_monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. ; unbound_reli_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. unbound_arg1_rule := fully_monotonic_mtr & [FILTER.RELS , FLAGS.SUBSUME <#x>, INPUT.RELS , OUTPUT.RELS ]. unbound_arg2_rule := fully_monotonic_mtr & [FILTER.RELS , FLAGS.SUBSUME <#x>, INPUT.RELS , OUTPUT.RELS ]. unbound_arg3_rule := fully_monotonic_mtr & [FILTER.RELS , FLAGS.SUBSUME <#x>, INPUT.RELS , OUTPUT.RELS ]. ;;; free_rel_extra_rule := fully_monotonic_mtr & [INPUT.RELS , FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. rel_+arg1_extra_rule := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#u1>, FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. rel_+carg_extra_rule := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#u1>, FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. rel_extra_rule := fully_monotonic_mtr & [INPUT.RELS , FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. extra_mark_del_rule := fully_monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. ;;; rel (necessarily exempt) ;;; control verbs (trivial) ;;; raising verbs (exempt for the moment) ;;; lexical verbs pas_nom_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ;;; prep prep_sel_gen_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. an_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#0>, CONTEXT.RELS , OUTPUT.RELS ]. auf_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ueber_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. hinter_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. neben_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. unter_prep_sel_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_sel_von+durch_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_sel_dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_sel_acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_dat-gen_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_gen_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_loc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_dir_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prep_acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_nom_modal_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], OUTPUT.RELS ]. act_nom_1_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_nom_2_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg1-acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg1-dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg1-datacc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg2-acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg2-dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg2-gen_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-dat-acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-gen-dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-gen-acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-acc_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-dat_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. act_arg3-gen_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prd_adj_arg1-nom_2_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. prd_adj_arg1-nom_1_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ;;; copulae ;;; not yet accounted for ;;; poss_rel: Order dependent (possessive pronouns do not take genitive case) poss_cas_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ; ;;; zu+_arg1_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; CONTEXT.RELS , ; ;;; OUTPUT.RELS ]. l-r-hndl_prop_punct_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [HOOK.LTOP #t, RELS ], FLAGS.SUBSUME <#e1,#e2>, OUTPUT.RELS ]. prop_punct_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [HOOK.INDEX.SF prop], OUTPUT.RELS ]. ques_punct_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [HOOK.INDEX [SF ques] ], OUTPUT.RELS ]. imp_punct_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [HOOK.INDEX.SF comm], OUTPUT.RELS ]. punct_rel_del_rule := fully_monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. ; coh-_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; prd-adj_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; prd-adj_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; perfect_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; perfect_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; perfect_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; future_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; future_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; future_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; passive_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; passive_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; passive_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg1_h_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#h,#h1>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg1_no_msg_h_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#h>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg2_h_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#h>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg3_h_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#h>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; ;;; part_coh+_arg2_h_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#h>, ; ;;; FILTER.RELS , ; ;;; CONTEXT.RELS , ; ;;; OUTPUT.RELS ]. ; ;;; part_coh+_arg3_h_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#h>, ; ;;; FILTER.RELS , ; ;;; CONTEXT.RELS , ; ;;; OUTPUT.RELS ]. ; part_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; part_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT.RELS , ; OUTPUT.RELS ]. ; modal_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x,#h0,#h1>, ; FILTER.RELS , ; CONTEXT [RELS , ; HCONS ; ], ; OUTPUT.RELS ]. ; modal_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT [RELS , ; HCONS ; ], ; OUTPUT.RELS ]. ; modal_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT [RELS , ; HCONS ; ], ; OUTPUT.RELS ]. ; wollen_coh+_arg1_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT [RELS , ; HCONS ; ], ; OUTPUT.RELS ]. ; wollen_coh+_arg2_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT [RELS ; ], ; OUTPUT.RELS ]. ; wollen_coh+_arg3_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#e,#x>, ; FILTER.RELS , ; CONTEXT [RELS , ; HCONS ; ], ; OUTPUT.RELS ]. ; ;;; v_arg1_coh+_arg1_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg1_coh+_arg2_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg1_coh+_arg3_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg2_coh+_arg1_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg2_coh+_arg2_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg2_coh+_arg3_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg3_coh+_arg1_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg3_coh+_arg2_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; v_arg3_coh+_arg3_rule := ; ;;; fully_monotonic_mtr & ; ;;; [INPUT.RELS , ; ;;; FLAGS.SUBSUME <#e,#x>, ; ;;; CONTEXT [RELS , ; ;;; HCONS ; ;;; ], ; ;;; OUTPUT.RELS ]. ; ;;; ; coh_mark_del_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ;;; oind ; oind_123_del := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#1,#2,#3,#x>, ; OUTPUT.RELS ]. ; oind_12_del := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#1,#2,#x>, ; OUTPUT.RELS ]. ; oind_1_del := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#1,#x>, ; OUTPUT.RELS ]. ; oind_0_del := fully_monotonic_mtr & ; [INPUT.RELS , ; FLAGS.SUBSUME <#x>, ; OUTPUT.RELS ]. oind_ini_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FILTER.RELS , OUTPUT.RELS ]. finite_oind_rule := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#e>, OUTPUT.RELS ]. imp_oind_rule := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#e>, OUTPUT.RELS ]. lassen_modal_arg1_oind_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h0,#h1>, OUTPUT.RELS ]. modal_arg1_oind_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h0,#h1>, OUTPUT.RELS ]. modal_arg2_oind_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h0,#h1>, OUTPUT.RELS ]. subj_to_obj_raising_oind_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h0,#h1>, OUTPUT.RELS ]. subj_to_subj_raising_oind1_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FLAGS.SUBSUME <#e,#h>, OUTPUT.RELS ]. subj_to_subj_raising_oind2_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h>, OUTPUT.RELS ]. control_particle_oind-_arg2_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FLAGS.SUBSUME <#e,#h1,#x>, OUTPUT.RELS ]. control_oind+_arg2_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h0,#h1,#x>, OUTPUT.RELS ]. default_oind-_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FLAGS.SUBSUME <#e>, OUTPUT.RELS ]. oind_mark_123_del := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#1,#2,#3>, CONTEXT.RELS , OUTPUT.RELS ]. oind_mark_12_del := fully_monotonic_mtr & [INPUT.RELS , FLAGS.SUBSUME <#1,#2>, CONTEXT.RELS , OUTPUT.RELS ]. oind_mark_1_del := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , FLAGS.SUBSUME <#1>, OUTPUT.RELS ]. oind_mark_0_del := fully_monotonic_mtr & [INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS ]. ; ;;; --sind ; sind_act_rule := ; fully_monotonic_mtr & ; [CONTEXT.RELS , ; FILTER.RELS , ; OUTPUT.RELS ; ]. ; sind_psv_rule := ; fully_monotonic_mtr & ; [CONTEXT.RELS , ; FLAGS.SUBSUME <#x>, ; FILTER.RELS , ; OUTPUT.RELS ; ]. ; sind_modal_rule := ; fully_monotonic_mtr & ; [CONTEXT.RELS , ; FILTER.RELS , ; OUTPUT.RELS ]. ; sind_raising_rule := ; fully_monotonic_mtr & ; [CONTEXT.RELS , ; FILTER.RELS , ; OUTPUT.RELS ]. ; sind_nonfin_del_rule := ; fully_monotonic_mtr & ; [INPUT.RELS ]. ; sind_3s_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_2s_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_1s_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_3p_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_2p_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_1p_rule := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. ; sind_mark_del := ; fully_monotonic_mtr & ; [INPUT.RELS , ; OUTPUT.RELS ]. scop_mark_del := fully_monotonic_mtr & [INPUT.RELS ]. oind_mark_del := fully_monotonic_mtr & [INPUT.RELS ].