;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; first transfer phase, NorGram-specific accomodation: these rules primarly ;;; patch up `deficiencies' in NorGram MRSs, e.g. ditch selected relations. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; pron_identity_m_nf := pron_identity_nmtr & [ OUTPUT.RELS < [ ARG0 [ GEND m ] ] > ]. pron_identity_f_nf := pron_identity_nmtr & [ OUTPUT.RELS < [ ARG0 [ GEND f ] ] > ]. pron_identity_n_nf := pron_identity_nmtr & [ OUTPUT.RELS < [ ARG0 [ GEND n ] ] > ]. ;;; ;;; a somewhat arbitrary decision: in interrogatives with their double ;;; message, the ERG marks TPC and PSV on both messages; accomodate here rather ;;; than in the post-transfer phase, since it might help in transfer to have ;;; information available on the immediately dominating message. ;;; ;;; actually, looking at the ERG more closely, the TPC (and PSV) identities are ;;; /not/ enforced in, e.g. `kim saw what?', such that we have to be careful ;;; here to only fire on configurations with non-empty TPC (and PSV). ;;; (19-nov-04; oe) ;;; _fix_me_ ;;; for increased robustness, we should maybe add a set of rules to the final, ;;; ERG fix-up phase, making sure ARG0, TPC, and PSV are all shared. ;;; (22-sep-05; oe) int_m_tpc_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "int_m_rel", MARG #h0, TPC #u1 & [ SCRATCH one ] ] >, INPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC [ SCRATCH two ], PSV #u4 ] >, OUTPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC #u1, PSV #u4 ] > ]. int_m_psv_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "int_m_rel", MARG #h0, PSV #u1 & [ SCRATCH one ] ] >, INPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC #u4, PSV [ SCRATCH two ] ] >, OUTPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC #u4, PSV #u1 ] > ]. synchronized_messages_tpc_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "prpstn_m_rel", LBL #h1, ARG0 #e0, MARG #h2, TPC a & [ SCRATCH one ], PSV #u3 ], [ PRED "prpstn_m_rel", LBL #h4, ARG0 #e0, MARG #h5, TPC a & [ SCRATCH two ], PSV #u6 ] >, OUTPUT.RELS < [ PRED "prpstn_m_rel", LBL #h1, ARG0 #e0, MARG #h2, TPC #u7, PSV #u3 ], [ PRED "prpstn_m_rel", LBL #h4, ARG0 #e0, MARG #h5, TPC #u7, PSV #u6 ] > ]. synchronized_messages_psv_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "prpstn_m_rel", LBL #h1, ARG0 #e0, MARG #h2, PSV a & [ SCRATCH one ], TPC #u3 ], [ PRED "prpstn_m_rel", LBL #h4, ARG0 #e0, MARG #h5, PSV a & [ SCRATCH two ], TPC #u6 ] >, OUTPUT.RELS < [ PRED "prpstn_m_rel", LBL #h1, ARG0 #e0, MARG #h2, PSV #u7, TPC #u3 ], [ PRED "prpstn_m_rel", LBL #h4, ARG0 #e0, MARG #h5, PSV #u7, TPC #u6 ] > ]. ;;; This topicalization is wrong when we introduce a preposition. ;;; (04-jan-06; jtl) unspec_loc_tpc_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_loc_rel", ARG0 #e2, ARG2 #x0 & x ] >, INPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC #x0, PSV #u4 ] >, OUTPUT.RELS < [ PRED "prpstn_m_rel", LBL #h0, ARG0 #e5, MARG #h2, TPC #e2, PSV #u4 ] >, FLAGS.EQUAL < #x0 > ]. ;;; ;;; _fix_me_ ;;; in tur/65, `_også_r' is scopal (unlike in other examples) but not properly ;;; inserted into the top message. (27-jul-04; oe) ;;; scopal_adverb_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "prpstn_m_rel", LBL #h0, MARG #h1 ], [ PRED "~_a_rel$", LBL #h2, ARG1 #h3 ] >, INPUT.HCONS < qeq & [ HARG #h1, LARG #h4 ], qeq & [ HARG #h3, LARG #h4 ] >, OUTPUT.HCONS < qeq & [ HARG #h1, LARG #h2 ], qeq & [ HARG #h3, LARG #h4 ] > ]. ;;; ;;; _fix_me_ ;;; in `sønnen iver ankom', the `ref-identity' LBL should be shared with the ;;; LBL of the head noun in the apposition, i.e. the ARG1. also, the embedded ;;; proposition needs to look like a relative clause. (28-aug-04; oe) ;;; ref-identify_nf := monotonic_mtr & [ CONTEXT [ RELS < [ ARG0 #x1 & x, RSTR #h2 & h ], [ LBL #h0 & [ SCRATCH one ], ARG0 #x1 ] >, HCONS < qeq & [ HARG #h2, LARG #h0 ] > ], INPUT.RELS < [ PRED "ref-identity_rel", LBL [ SCRATCH two ], ARG1 #x1, ARG2 #x3 ] >, OUTPUT.RELS < [ PRED "ref-identity_rel", LBL #h0, ARG1 #x1, ARG2 #x3 ] >, FLAGS.EQUAL < #x1, #h2 > ]. ;;; ;;; _fix_me_ ;;; in tur/97, `oslofjorden' has a duplicate quantifier. (27-jul-04; oe) ;;; def+proper_q_nf := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "proper_q_rel", ARG0 #x0, RSTR #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT [ RELS < [ PRED "def_q_rel", ARG0 #x0, RSTR #h3 ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ] ]. ;;; ;;; _fix_me_ ;;; vei/10260 et al. (`Eier: DNT OA.') receive an analysis with a guessed noun ;;; `OA' as the `title_id' to `DNT'. titles should be restricted to a known ;;; class of title nouns, as only these will actually generate in the ERG. ;;; (26-feb-06; oe) dnt+oa_nf := monotonic_mtr & [ INPUT [ RELS < [ PRED "title_id_rel", LBL #h0, ARG1 #x2, ARG2 #x3 ], [ PRED "named_rel", LBL #h0, ARG0 #x3, CARG "~[Dd][Nn][Tt]" ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h4 ], [ PRED "guess_rel", LBL #h5, ARG0 #x2, CARG "~[Oo][Aa]" ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT.RELS < [ PRED "named_rel", LBL #h0, ARG0 #x3, CARG "DNT OA" ] > ]. ;;; ;;; _fix_me_ ;;; complex proper names (`Helge Dyvik') receive ill-formed MRSs, with just one ;;; variable but multiple `named' EPs and multiple quantifiers. ;;; (22-sep-05; oe) complex_proper_name_1_nf := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "proper_q_rel", ARG0 #x0, RSTR #h1 ], [ PRED "named_rel", LBL #h2, ARG0 #x0 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT [ RELS < [ PRED "proper_q_rel", ARG0 #x0, RSTR #h3, BODY #h4 ], [ PRED "named_rel", LBL #h2, ARG0 #x0, CARG #carg ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ], OUTPUT [ RELS < [ PRED "compound_name_rel", LBL #h2, ARG0 e_untensed, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h3, BODY #h4 ], [ PRED "named_rel", LBL #h5, ARG0 #x4, CARG #carg ] >, HCONS < qeq & [ HARG #h3, LARG #h5 ] > ] ]. complex_proper_name_2_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "named_rel", LBL #h0 & [ SCRATCH one ], ARG0 #x1 ] >, INPUT.RELS < [ PRED "compound_name_rel", LBL [ SCRATCH two ], ARG0 #e2, ARG1 #x3, ARG2 #x1 ] >, OUTPUT.RELS < [ PRED "compound_name_rel", LBL #h0, ARG0 #e2, ARG1 #x3, ARG2 #x1 ] > ]. complex_proper_name_3_nf := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "compound_name_rel", ARG1 #x0 & x ], [ PRED "named_rel", LBL #h1, ARG0 #x0 ] >, HCONS < qeq & [ HARG #h2, LARG #h1 ] > ], INPUT.RELS < [ PRED "proper_q_rel", LBL #h3, ARG0 #x0, RSTR #h2, BODY #h4 ] >, OUTPUT.RELS < [ PRED "udef_q_rel", LBL #h3, ARG0 #x0, RSTR #h2, BODY #h4 ] > ]. named+guess_nf := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h1, LARG #h2 ] >, INPUT.RELS < [ PRED "proper_q_rel", ARG0 #x0, RSTR #h1 ], [ PRED "named_rel", LBL #h2, ARG0 #x0, CARG #carg0 ], [ PRED "guess_rel", LBL #h2, ARG0 #x0, CARG #carg1 ] >, OUTPUT [ RELS < [ PRED "compound_name_rel", LBL #h5, ARG0 e_untensed, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x4, RSTR #h1 ], [ PRED "named_rel", LBL #h2, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], CARG #carg0 ], [ PRED "proper_q_rel", ARG0 #x0, RSTR #h3 ], [ PRED "named_rel", LBL #h5, ARG0 #x0, CARG #carg1 ] >, HCONS < qeq & [ HARG #h3, LARG #h5 ] > ] ]. ;;; ;;; _fix_me_ ;;; for `Bygdin høyfjellshotell', the title constituent includes an adjective ;;; plus noun compound, where `_høy_a' is a modifier on `_hotell_n'; we later ;;; convert the compound into a plain attributive modifier, but then we need ;;; to make sure it is a modifier on the intermediate noun, actually, i.e. we ;;; force low attachment for the adjective. possibly this is globally a true ;;; constraint on Adj+N+N compounds, but here we restrict it to just the title ;;; environment, because in general [old [mountain hotel]] is unproblematic. ;;; (8-jun-06; oe) title_adj+n_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "title_id_rel", ARG1 #x0 & x ], [ PRED "unspec_rel", LBL #h1, ARG1 #x0, ARG2 #x2 & x ], [ PRED "~_a_", LBL #h3, ARG0 #e4 & e & [ TENSE untensed ] ], [ PRED "~_n_", LBL #h5, ARG0 #x2 ] >, INPUT.RELS < [ PRED "unspec_rel", LBL #h1, ARG0 #e6, ARG1 #x0, ARG2 #e4 ] >, OUTPUT.RELS < [ PRED "unspec_rel", LBL #h5, ARG0 #e6, ARG1 #x2, ARG2 #e4 ] >, FLAGS.EQUAL < #x0, #x2, #e4 > ]. ;;; ;;; _fix_me_ ;;; for `I 1980-tallet ankom Embla', we would expect a definite quantifier. ;;; (6-dec-05; oe) yearperiod+proper_q_nf := monotonic_mtr & [ CONTEXT [ RELS < [ PRED "yearperiod_rel", LBL #h0, ARG0 #x1 ] >, HCONS < qeq & [ HARG #h2, LARG #h0 ] > ], INPUT.RELS < [ PRED "proper_q_rel", LBL #h3, ARG0 #x1, RSTR #h2, BODY #h4 ] >, OUTPUT.RELS < [ PRED "def_q_rel", LBL #h3, ARG0 #x1, RSTR #h2, BODY #h4 ] > ]. ;;; ;;; _fix_me_ ;;; for `hold forskere i god stand', there is now a three-place predicative ;;; frame, but in analogy to the ERG, we want to wrap the ARG3 into a `state of ;;; affairs' message. (25-aug-04; oe) ;;; holde_predicative_nf := arg123_predicative_nmtr & [ INPUT.RELS < [ PRED "_holde_v_rel" ] > ]. ;;; ;;; _fix_me_ ;;; in `ett av sporene' [ankom], the singular partitive is incompatible with ;;; a `bare_div_q'. (1-dec-04; oe) ;;; part_of_one_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "part_of_rel", LBL #h0, ARG0 #x0 ], [ PRED "card_rel", LBL #h0, ARG1 #x0, CARG "1" ] >, INPUT.RELS < [ PRED "bare_div_q_rel", LBL #h1, ARG0 #x0, RSTR #h2, BODY #h3 ] >, OUTPUT.RELS < [ PRED "def_explicit_q_rel", LBL #h1, ARG0 #x0, RSTR #h2, BODY #h3 ] > ]. deg+quant_nf := monotonic_mtr & [ CONTEXT [ RELS < [ LBL #h0, ARG0 #x1 & x, RSTR #h2 ], [ PRED "~_n_", LBL #h3, ARG0 #x1 ] >, HCONS < qeq & [ HARG #h2, LARG #h3 ] > ], INPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #e5, ARG1 #x1 ] >, OUTPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #e5, ARG1 u ] >, FLAGS.EQUAL < #x1 > ]. ;;; ;;; _fix_me_ ;;; for whatever reason, `_om-temp-p' disappeared, even though transfer stands ;;; to gain from it (avoiding ambiguity in translating `om'). ;;; (5-jan-07; jtl & oe) om_temp_1_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_(?:morgen|ettermiddag|kveld|natt)_n_rel", ARG0 #x0 ] >, INPUT.RELS < [ PRED "_om_p_rel", ARG2 #x0 ] >, OUTPUT.RELS < +copy+ & [ PRED "_om-temp_p_rel" ] > ]. om_temp_2_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_(?:sekund|minutt|time|stund)_n_rel", ARG0 #x0 ] >, INPUT.RELS < [ PRED "_om_p_rel", ARG2 #x0 ] >, OUTPUT.RELS < +copy+ & [ PRED "_om-temp_p_rel" ] > ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; a couple of predicates for which we know no way of mapping into ERG terms, ;;; or cannot be bothered right now. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stative_asp_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "stative_asp_rel" ] > ]. inchoative_asp_nf := monotonic_mtr & [ INPUT.RELS < [ ARG0 #e & e & [ TENSE pres ] ], [ PRED "inchoative_asp_rel", ARG1 #e ] >, OUTPUT.RELS < +copy+ & [ ARG0 [ TENSE fut ] ] >, FLAGS.EQUAL < #e > ]. inchoative_asp_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "inchoative_asp_rel" ] > ]. specified_to_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "specified_to_rel" ] > ]. ;;; ;;; _fix_me_ ;;; these must not use handle-valued ARG1 and ARG2, if we want the structure to ;;; scope; NorGram currently makes that impossible. (15-feb-04; oe) ;;; subjectivized_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "subjectivized_rel" ] > ]. topic_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "topic_rel" ] > ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; for cases where a selected-for preposition is idiosyncratically governed ;;; by its head, we probably do not want the predicate duplication. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; bruke*til_v_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "_bruke*til_v_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_bruke_v_rel" ] > ]. egnet*til_a_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "_egnet*til_a_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_egnet_a_rel" ] > ]. forsiktig*med_a_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "_forsiktig*med_a_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_forsiktig_a_rel" ] > ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; selected-for prepositions: the theory is that they do not contribute to the ;;; semantics, since they have also been incorporated into their main predicate ;;; (e.g. in `_bruk-av_n' et al.); however, maybe revisit one day for cases ;;; like `interesse { for | i }'. (joint taxi ride with helge: 4-mar-04; oe) ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; p_sel_ditch_nf := elision_mtr & [ INPUT.RELS < [ PRED "~_p_sel_rel$" ] > ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; as a general precaution, make sure all referential index are bound by a ;;; quantifier; this is robustness to a degree of taking chances, i guess ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; _fix_me_ ;;; the noun guesser appears to not add a quantifier. (20-aug-05; oe) ;;; guess_quantifier_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "guess_rel", LBL #h1, ARG0 #x2 & x, CARG #carg ] >, FILTER.RELS < [ ARG0 #x2, RSTR #h3 & h ] >, OUTPUT [ RELS < [ PRED "udef_q_rel", ARG0 #x2, RSTR #h4 ], [ PRED "guess_rel", LBL #h1, ARG0 #x2 & x, CARG #carg ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ] > ], FLAGS.EQUAL < #x2, #h3 > ]. ;;; ;;; PR norgram/400: month names often lack a quantifier. (16-sep-06; oe) ;;; mofy_quantifier_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "mofy_rel", LBL #h1, ARG0 #x2 & x, CARG #carg ] >, FILTER.RELS < [ ARG0 #x2, RSTR #h3 & h ] >, OUTPUT [ RELS < [ PRED "proper_q_rel", ARG0 #x2, RSTR #h4 ], [ PRED "mofy_rel", LBL #h1, ARG0 #x2 & x, CARG #carg ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ] > ], FLAGS.EQUAL < #x2, #h3 > ]. ;;; ;;; more generally, make sure all nominal relations have some quantifier. ;;; missing_quantifier_sg_count_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_n_rel$", LBL #h1, ARG0 #x2 & x & [ NUM sg, DIV - ] ] >, FILTER.RELS < [ ARG0 #x2, RSTR #h3 & h ] >, OUTPUT [ RELS < [ PRED "some_q_indiv_rel", ARG0 #x2, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ] > ], FLAGS.EQUAL < #x2, #h3 > ]. missing_quantifier_sg_count_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_n_rel$", LBL #h1, ARG0 #x2 & x & [ NUM sg ] ] >, FILTER.RELS < [ ARG0 #x2, RSTR #h3 & h ] >, OUTPUT [ RELS < [ PRED "some_q_rel", ARG0 #x2, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ] > ], FLAGS.EQUAL < #x2, #h3 > ]. missing_quantifier_pl_nf := monotonic_mtr & [ CONTEXT.RELS < [ PRED "~_n_rel$|^generic_nonpro_rel$", LBL #h1, ARG0 #x2 & x & [ NUM pl ] ] >, FILTER.RELS < [ ARG0 #x2, RSTR #h3 & h ] >, OUTPUT [ RELS < [ PRED "bare_div_q_rel", ARG0 #x2, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ] > ], FLAGS.EQUAL < #x2, #h3 > ]. ;;; ;;; _fix_me_ ;;; in preparing the 8-apr-05 integration, we stumbled into a few new predicate ;;; sub-divisions; maybe we should have known, maybe not. for now, wash out ;;; the ones we found during the transfer workshop at Gålå. (9-apr-05; oe) ;;; gå*tur_v_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "~_gå\\*[a-z]*tur_v_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_gå_v_rel" ] > ]. gå*rute_v_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "~_gå\\*rute_v_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_gå_v_rel" ] > ]. mene_subjeq_v_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "_mene_subjeq_v_rel" ] >, OUTPUT.RELS < +copy+ & [ PRED "_mene_v_rel" ] > ]. ;;; ;;; _fix_me_ ;;; unlike cardinals, literal ordinal numbers come out with a literal CARG. i ;;; believe the final verdict on the corresponding PR was to add these to the ;;; NorGram lexicon, even though they are numerous. (24-sep-05; oe) ;;; ord_1_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "første" ] >, OUTPUT.RELS < +copy+ & [ CARG "1" ] > ]. ord_2_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "andre" ] >, OUTPUT.RELS < +copy+ & [ CARG "2" ] > ]. ord_3_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tredje" ] >, OUTPUT.RELS < +copy+ & [ CARG "3" ] > ]. ord_4_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "fjerde" ] >, OUTPUT.RELS < +copy+ & [ CARG "4" ] > ]. ord_5_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "femte" ] >, OUTPUT.RELS < +copy+ & [ CARG "5" ] > ]. ord_6_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "sjette" ] >, OUTPUT.RELS < +copy+ & [ CARG "6" ] > ]. ord_7_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "sjuende" ] >, OUTPUT.RELS < +copy+ & [ CARG "7" ] > ]. ord_7_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "syvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "7" ] > ]. ord_8_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "åttende" ] >, OUTPUT.RELS < +copy+ & [ CARG "8" ] > ]. ord_9_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "niende" ] >, OUTPUT.RELS < +copy+ & [ CARG "9" ] > ]. ord_10_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "10" ] > ]. ord_11_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "ellevte" ] >, OUTPUT.RELS < +copy+ & [ CARG "11" ] > ]. ord_12_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tolvte" ] >, OUTPUT.RELS < +copy+ & [ CARG "12" ] > ]. ord_13_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "trettende" ] >, OUTPUT.RELS < +copy+ & [ CARG "13" ] > ]. ord_14_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "fjortende" ] >, OUTPUT.RELS < +copy+ & [ CARG "14" ] > ]. ord_15_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "femtende" ] >, OUTPUT.RELS < +copy+ & [ CARG "15" ] > ]. ord_16_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "sekstende" ] >, OUTPUT.RELS < +copy+ & [ CARG "16" ] > ]. ord_17_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "syttende" ] >, OUTPUT.RELS < +copy+ & [ CARG "17" ] > ]. ord_18_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "attende" ] >, OUTPUT.RELS < +copy+ & [ CARG "18" ] > ]. ord_19_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "nittende" ] >, OUTPUT.RELS < +copy+ & [ CARG "19" ] > ]. ord_20_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuende" ] >, OUTPUT.RELS < +copy+ & [ CARG "20" ] > ]. ord_21_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjueførste" ] >, OUTPUT.RELS < +copy+ & [ CARG "21" ] > ]. ord_22_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjueandre" ] >, OUTPUT.RELS < +copy+ & [ CARG "22" ] > ]. ord_23_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuetredje" ] >, OUTPUT.RELS < +copy+ & [ CARG "23" ] > ]. ord_24_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuetjuefjerde" ] >, OUTPUT.RELS < +copy+ & [ CARG "24" ] > ]. ord_25_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuefemte" ] >, OUTPUT.RELS < +copy+ & [ CARG "25" ] > ]. ord_26_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuesjette" ] >, OUTPUT.RELS < +copy+ & [ CARG "26" ] > ]. ord_27_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjuesyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "27" ] > ]. ord_28_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjueåttende" ] >, OUTPUT.RELS < +copy+ & [ CARG "28" ] > ]. ord_29_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tjueniende" ] >, OUTPUT.RELS < +copy+ & [ CARG "29" ] > ]. ord_20_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "20" ] > ]. ord_21_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "enogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "21" ] > ]. ord_22_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "toogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "22" ] > ]. ord_23_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "treogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "23" ] > ]. ord_24_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "fireogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "24" ] > ]. ord_25_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "femogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "25" ] > ]. ord_26_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "seksogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "26" ] > ]. ord_27_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "sjuogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "27" ] > ]. ord_27_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "syvogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "27" ] > ]. ord_28_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "åtteogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "28" ] > ]. ord_29_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "niogtyvende" ] >, OUTPUT.RELS < +copy+ & [ CARG "29" ] > ]. ord_30_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "trettiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "30" ] > ]. ord_30_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tredevte" ] >, OUTPUT.RELS < +copy+ & [ CARG "30" ] > ]. ord_40_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "førtiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "40" ] > ]. ord_50_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "femtiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "50" ] > ]. ord_60_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "sekstiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "60" ] > ]. ord_70_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "syttiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "70" ] > ]. ord_80_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "åttiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "80" ] > ]. ord_90_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "nittiende" ] >, OUTPUT.RELS < +copy+ & [ CARG "90" ] > ]. ord_100_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "hundredede" ] >, OUTPUT.RELS < +copy+ & [ CARG "100" ] > ]. ord_1000_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "tusende" ] >, OUTPUT.RELS < +copy+ & [ CARG "1000" ] > ]. ord_10000_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "ord_rel", CARG "titusende" ] >, OUTPUT.RELS < +copy+ & [ CARG "10000" ] > ]. ;;; ;;; _fix_me_ ;;; a related case: in `1. Abrams kom.', the CARG of the named number is `1.', ;;; which prevents generating a run-on construction down the road, as the ERG ;;; refuses to put a period (or semikolon) on tokens that end in a period. ;;; (13-oct-06; dan & oe) card_period_1_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "1." ] >, OUTPUT.RELS < +copy+ & [ CARG "1" ] > ]. card_period_2_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "2." ] >, OUTPUT.RELS < +copy+ & [ CARG "2" ] > ]. card_period_3_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "3." ] >, OUTPUT.RELS < +copy+ & [ CARG "3" ] > ]. card_period_4_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "4." ] >, OUTPUT.RELS < +copy+ & [ CARG "4" ] > ]. card_period_5_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "5." ] >, OUTPUT.RELS < +copy+ & [ CARG "5" ] > ]. card_period_6_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "6." ] >, OUTPUT.RELS < +copy+ & [ CARG "6" ] > ]. card_period_7_nf := monotonic_mtr & [ INPUT.RELS < [ PRED "card_rel", CARG "7." ] >, OUTPUT.RELS < +copy+ & [ CARG "7" ] > ].