;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; ;;; 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 ]. i := u & --top-type & --bnd-type. p := u. h := p. e := i. ; & ext-e-type. x := i & p. ; & ext-x-type. ;;; ;;; to check for `arity' in MTRs, maybe we need an `anti-'variable type ;;; Currently type clash with sorts.tdl 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 bool, EQUAL *list*, SUBSUME *list*, TRIGGER string, TRIGGER-CONSTRAINT sign]. 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, INPUT.HOOK.LTOP #h, OUTPUT.HOOK.LTOP #h ]. fully_monotonic_mtr := monotonic_mtr & [ CONTEXT.HOOK.INDEX #h, INPUT.HOOK.INDEX #h, OUTPUT.HOOK.INDEX #h ]. ;;; Auxiliary trigger rules act_tr := generator_rule & [FILTER.RELS , CONTEXT [ RELS ]]. act_per_tr := act_tr & [CONTEXT [ RELS ], FLAGS [SUBSUME <#x>]]. act_h_tr := act_tr & [CONTEXT [ RELS ], FLAGS [SUBSUME <#h>]]. pas_tr := generator_rule & [ CONTEXT [ RELS ]]. pas_per_tr := pas_tr & [ CONTEXT [ RELS ], FLAGS [SUBSUME <#x>]]. pas_h_tr := pas_tr & [ CONTEXT [ RELS ], FLAGS [SUBSUME <#h>]]. ;;; Complementisers complementiser_tr := generator_rule & [ FILTER.RELS , CONTEXT [ RELS ], FLAGS [SUBSUME <#h,#ev>, TRIGGER-CONSTRAINT [SYNSEM.LOC.CONT.HOOK [LTOP #h]]]]. complementiser_arg1_tr := complementiser_tr & [ CONTEXT [ RELS ]]. complementiser_arg2_tr := complementiser_tr & [ CONTEXT [ RELS ]]. complementiser_arg3_tr := complementiser_tr & [ CONTEXT [ RELS ]]. generic_relative_tr := generator_rule & [ CONTEXT [ RELS.LIST < [LBL #h, ARG0 ref-ind & #x], [LBL #h, PRED "~_[vap]_", ARG0 event & [SF prop, --sub +]], ... > ], FLAGS [SUBSUME <#x>, TRIGGER-CONSTRAINT [SYNSEM.LOC.CONT.HOOK.INDEX #x]]]. relative_tr := generic_relative_tr & [ CONTEXT [ RELS ]]. generic_relative_genitive_tr := generic_relative_tr & [ CONTEXT [ RELS ]]. relative_genitive_tr := generic_relative_genitive_tr & [ CONTEXT [ RELS ] ]. relative_possessive_tr := generic_relative_genitive_tr & [ CONTEXT [ RELS ] ]. ;;; Should actually be R-INDEX and R-HNDL. Have to insert entries for ;;; binary coordination. binary_coord_rule := generator_rule & [CONTEXT [ RELS ], FLAGS.TRIGGER-CONSTRAINT [SYNSEM.LOC.CONT.HOOK [INDEX #i, LTOP #h ] ] ].