;;;; Hey, emacs(1), this is -*- Mode: tdl; Coding: utf-8; -*- got it? ;;;; ;;;; a `new' (sort of, we had experimented with it a bit in LOGON) mechanism to ;;;; improve generator robustness (and possibly efficiency; berthold lobbied ;;;; for that :-). generator inputs are subjected to a transfer grammar prior ;;;; to generation proper; there must not be transfer ambiguity for this to ;;;; work. --- an initial set of rules is taken from the LOGON fix-up phase. ;;;; ;;;;;;;;;;;;;;;;;; ;;; Mark gaps ;;; ;;;;;;;;;;;;;;;;;; #| gap_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. rel_gap_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS ]. gap_unify_gr := monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. gap_mark_ditch_gr := monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. |# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Mark extraction contexts ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #| xtr-_arg1_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.EQUAL <#xtr>]. xtr-_arg2_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.EQUAL <#xtr>]. xtr-_arg3_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.EQUAL <#xtr>]. ;;; rel_xtr_mark records ARG1 and ARG2 of topic_d_rel as ARG1 and ARG2 ;;; ARG3 is the hypothesised gap site, ARG4 records events along the ;;; extraction path. relxtr-_arg1_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS [EQUAL <#xtr>, SUBSUME <#x2>]]. relxtr-_arg2_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS [EQUAL <#xtr>, SUBSUME <#x2>]]. relxtr-_arg3_gr := monotonic_mtr & [ FILTER.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS [EQUAL <#xtr>, SUBSUME <#x2>]]. relxtr+_gr := monotonic_mtr & [ INPUT.RELS , OUTPUT.RELS , FLAGS.EQUAL <#xtr>]. relxtr-_recurse_arg1_gr := monotonic_mtr & [ FILTER.RELS , INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.SUBSUME <#h>]. relxtr-_recurse_arg2_gr := monotonic_mtr & [ FILTER.RELS , INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.SUBSUME <#h>]. relxtr-_recurse_arg3_gr := monotonic_mtr & [ FILTER.RELS , INPUT.RELS , CONTEXT.RELS , OUTPUT.RELS , FLAGS.SUBSUME <#h>]. xtr+_bool_unify_gr := monotonic_mtr & [INPUT.RELS , FLAGS.EQUAL <#xtr>, OUTPUT.RELS ]. xtr-_mark_ditch_gr := monotonic_mtr & [INPUT.RELS , FLAGS.EQUAL <#xtr>, OUTPUT.RELS ]. xtr+_unify_gr := monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. rel_xtr+_unify_gr := monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. xtr_mark_ditch_gr := monotonic_mtr & [INPUT.RELS , OUTPUT.RELS ]. |#