;;; Hey, emacs(1), this is -*- Mode: TDL; Package: LKB; -*- got it? ;;; ;;; first shot of minimal type hierarchy for paraphrasing transfer rules. ;;; ;;; ;;; minimal hierarchy of variable types, using the new (R)MRS naming scheme. ;;; u := *top* & [ SCRATCH scratch ]. h := u. i := u. e := i. x := i. ;;; ;;; to check for `arity' in MTRs, maybe we need an `anti-'variable type ;;; a := u. ;;; ;;; the scratch slot 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. flags := *top* & [ OPTIONAL luk, EQUAL list, SUBSUME list, TRIGGER string ]. mrs_transfer_rule := *top* & [ FILTER mrs, CONTEXT mrs, INPUT mrs, OUTPUT mrs, FLAGS flags ]. generator_rule := mrs_transfer_rule & [ INPUT.RELS ]. monotonic_mtr := mrs_transfer_rule & [ CONTEXT.HOOK [ LTOP #h, INDEX #i ], INPUT.HOOK [ LTOP #h, INDEX #i ], OUTPUT.HOOK [ LTOP #h, INDEX #i ] ]. monotonic_omtr := monotonic_mtr & optional_mtr. optional_mtr := mrs_transfer_rule & [ FLAGS.OPTIONAL + ]. ;;; ;;; a few `special-purpose' types, transfer operators in a sense ;;; +upcase+ := string. +downcase+ := string. ;;; ;;; general rule types ;;; arg0e_gr := generator_rule & [ CONTEXT [ RELS ], FLAGS.EQUAL < #e > ]. arg0e-1x_gr := generator_rule & [ CONTEXT [ RELS ], FLAGS.EQUAL < #e, #i > ]. arg0e-2x_gr := generator_rule & [ CONTEXT [ RELS ], FLAGS.EQUAL < #e, #i > ]. arg0e-3x_gr := generator_rule & [ CONTEXT [ RELS ], FLAGS.EQUAL < #e, #i > ]. ;;; ;;; Idiom Implementation (CH 060804) ;;; np_v_idiom_mtr := monotonic_mtr & [ INPUT.RELS , OUTPUT.RELS ]. np_a_idiom_mtr := monotonic_mtr & [ INPUT.RELS , OUTPUT.RELS ].