;;; Hey, emacs(1), this is -*- Mode: TDL; Package: LKB ;;; ;;; these rules must appear before both the catch-all `named_rel' MTR and the ;;; `proper_q_rel' rule, since both the latter are obligatory and will consume ;;; the INPUT conditions of the following. ;;; #| bergensområdet_cmpnd_n := monotonic_omtr & [ CONTEXT [ HCONS < qeq & [ HARG #h3, LARG #h5 ] > ], INPUT [ RELS < [ PRED "proper_q_rel", LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ], [ PRED "named_rel", LBL #h5, ARG0 #x2, CARG "Bergensområdet" ] > ], OUTPUT [ RELS < [ PRED _the_q_rel, LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ], [ PRED "_area_n_rel", LBL #h5, ARG0 #x2, ARG1 u ], [ PRED compound_rel, LBL #h5, ARG0 e_untensed, ARG1 #x2, ARG2 #x7 ], [ PRED proper_q_rel, LBL #h6, ARG0 #x7, RSTR #h8, BODY #h9 ], [ PRED named_rel, LBL #h10, ARG0 #x7 & [ NUM sg ], CARG "bergen" ] >, HCONS < qeq & [ HARG #h8, LARG #h10 ] > ] ]. |# bergensområdet_around_n := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h3, LARG #h5 ] > ], INPUT [ RELS < [ PRED "proper_q_rel", LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ], [ PRED "named_rel", LBL #h5, ARG0 #x2, CARG "Bergensområdet" ] > ], OUTPUT [ RELS < [ PRED _the_q_rel, LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ], [ PRED "_area_n_rel", LBL #h5, ARG0 #x2, ARG1 u ], [ PRED _around_p_rel, LBL #h5, ARG0 e_untensed, ARG1 #x2, ARG2 #x7 ], [ PRED proper_q_rel, LBL #h6, ARG0 #x7, RSTR #h8, BODY #h9 ], [ PRED named_rel, LBL #h10, ARG0 #x7 & [ NUM sg ], CARG "bergen" ] >, HCONS < qeq & [ HARG #h8, LARG #h10 ] > ] ]. ;;; ;;; _fix_me_ ;;; i believe the following should probably be decomposed, pending a principled ;;; approach to compound names; `Turlag' by itself occurs in our translations. ;;; (12-apr-04; oe) ;;; bergen+turlag_n := monotonic_mtr & [ INPUT.RELS < [ PRED "named_rel", LBL #h1, ARG0 #x2, CARG "Bergen Turlag" ] >, OUTPUT [ RELS < [ PRED named_rel, LBL #h1, ARG0 #x2, CARG "turlag" ], [ PRED udef_q_rel, ARG0 #x3 & [ PERS 3, NUM sg ], RSTR #h4 ], [ PRED named_rel, LBL #h5, ARG0 #x3, CARG "bergen" ], [ PRED compound_name_rel, LBL #h1, ARG0 e_no_tense, ARG1 #x3, ARG2 #x2 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. ;;; ;;; not sure how to do this better, we see `på Byfjellene' [pl] but at least as ;;; long as we just treat that as a proper name (though it may be compositional ;;; `city mountains'), we struggle with quantifiers: with plural proper nouns, ;;; the ERG moves to `bare_div_q', and for this example at least, the singular ;;; is probably what we want. (15-mar-04; oe) ;;; byfjellene_pl := proper_noun_mtr & [ INPUT.RELS < [ ARG0 [ NUM pl ], CARG "Byfjellene" ] >, OUTPUT.RELS < [ ARG0 [ NUM sg ], CARG "byfjellene" ] > ]. ;;; _fix_me_ ;;; the following does not quite work, since the (standard) MRS construction ;;; code will not create variables for CARG values (nor PRED); see comment on ;;; convert-dag-to-mtr() in `transfer.lisp' (24-jan-04; oe) ;;; ;;; --- which should be fixed, as of today, at the cost of making the `spurious ;;; duplicates' problem (PR transfer/17) slightly worse again, since with two ;;; names in the input, say, there will be two intermediate results coming out ;;; the two possible orderings in applying this rule twice. (27-jan-04; oe) ;;; ;;; --- eventually, we eliminated those duplicates too. (2-mar-04; oe) ;;; named_rel := proper_np_mtr & [ INPUT.RELS < [ CARG #carg ], ... >, OUTPUT.RELS < [ CARG #carg & +downcase+ ], ... > ]. #| Turlaget := proper_noun_mtr & [ INPUT.RELS.LIST.FIRST.CARG "Turlaget"]. Solheimslien := proper_noun_mtr & [ INPUT.RELS.LIST.FIRST.CARG "Solheimslien", OUTPUT.RELS.LIST.FIRST.CARG "solheimslien"]. bergensområdet := proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Bergensområdet", OUTPUT.RELS.LIST.FIRST.CARG "bergen"]. vollavik:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Vollavik", OUTPUT.RELS.LIST.FIRST.CARG "vollavik"]. ortnevik:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Ortnevik", OUTPUT.RELS.LIST.FIRST.CARG "ortnevik"]. kvarvenveien:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Kvarvenveien", OUTPUT.RELS.LIST.FIRST.CARG "kvarvenveien"]. harstad := proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Harstad", OUTPUT.RELS.LIST.FIRST.CARG "harstad"]. harstad := proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Hurtigruta", OUTPUT.RELS.LIST.FIRST.CARG "hurtigruta"]. vefsna:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Vefsna", OUTPUT.RELS.LIST.FIRST.CARG "vefsna"]. børgefjell:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Børgefjell", OUTPUT.RELS.LIST.FIRST.CARG "børgefjell"]. byfjellene:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Byfjellene", OUTPUT.RELS.LIST.FIRST.CARG "byfjellene"]. blånipa:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Blånipa", OUTPUT.RELS.LIST.FIRST.CARG "blånipa"]. kjeragveggen:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Kjeragveggen", OUTPUT.RELS.LIST.FIRST.CARG "kjeragveggen"]. turinformasjonen:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Turinformasjonen", OUTPUT.RELS.LIST.FIRST.CARG "turinformasjonen"]. DNT:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "DNT", OUTPUT.RELS.LIST.FIRST.CARG "dnt"]. Lom:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Lom", OUTPUT.RELS.LIST.FIRST.CARG "lom"]. Molladalsskardet:= proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Molladalsskardet", OUTPUT.RELS.LIST.FIRST.CARG "molladalsskardet"]. Molladalen := proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Molladalen", OUTPUT.RELS.LIST.FIRST.CARG "molladalen"]. YtreStandal := proper_noun_mtr & [INPUT.RELS.LIST.FIRST.CARG "Ytre Standal", OUTPUT.RELS.LIST.FIRST.CARG "ytre standal"]. |#