;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? ;;; ;;; a few `special-purpose' types, transfer operators in a sense ;;; +upcase+ := string. +downcase+ := string. operator := top. +copy+ := operator. ;;; ;;; the scratch slots in variables: used during transfer to control application ;;; of rules, e.g. the rules that introduce selected preposition EPs in the ERG ;;; accomodation phase which would otherwise be cyclic, i.e. the rule would ;;; fire on its own output (since it does not consume anything). ;;; scratch := top. test := scratch. complete := scratch. one := scratch. two := scratch. three := scratch. four := scratch. five := scratch. six := scratch. quantifier := scratch. discourse := scratch. spine := scratch. none := scratch. flags := top & [ OPTIONAL luk, PERMUTE luk, EQUAL list, SUBSUME list, CALL string, WARN string, BLOCK string, AUTHOR string, DATE string, SOURCE string, RANK string, COUNT string ]. mrs_transfer_rule := top & [ FILTER mrs, CONTEXT mrs, INPUT mrs, OUTPUT mrs, FLAGS flags ]. optional_mtr := mrs_transfer_rule & [ FLAGS.OPTIONAL + ]. monotonic_mtr := mrs_transfer_rule & [ CONTEXT [ TOP #h, INDEX #i ], INPUT [ TOP #h, INDEX #i ], OUTPUT [ TOP #h, INDEX #i ] ]. monotonic_omtr := monotonic_mtr & optional_mtr. scopal_arg1_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h, ARG0 #i0 & i, ARG1 #i1 & i ], [ ARG0 #i1 ] >, FILTER.RELS < [ PRED scopal_arg1_mark, LBL #h, ARGM #i0 ] >, OUTPUT.RELS < [ PRED scopal_arg1_mark, LBL #h, ARGM #i0 ] >, FLAGS.SUBSUME < #i0, #i1 > ]. elision_mtr := monotonic_mtr & [ INPUT.RELS < relation > ].