;;; -*- 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 ;;; Cooresponding 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_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,#h>, OUTPUT.RELS ]. subj_to_obj_raising_oind_rule := fully_monotonic_mtr & [INPUT.RELS , CONTEXT [RELS , HCONS ], FLAGS.SUBSUME <#e,#h>, 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,#h,#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 ].