;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? monotonic_mtr := mrs_transfer_rule & [ CONTEXT [ LTOP #h, INDEX #i ], INPUT [ LTOP #h, INDEX #i ], OUTPUT [ LTOP #h, INDEX #i ] ]. monotonic_omtr := monotonic_mtr & optional_mtr. optional_mtr := mrs_transfer_rule & [ FLAGS.OPTIONAL + ]. quantifier_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x1, RSTR #h2, BODY #h3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x1, RSTR #h2, BODY #h3 ] > ]. quantifier_omtr := quantifier_mtr & optional_mtr. ;;; ;;; @ 1 pluss 2 >> 1 plus 2 ;;; arit_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #i1, ARG1 #x1, ARG2 #h2, ARG3 #h3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #i1, ARG1 #x1, ARG2 #h2, ARG3 #h3 ] > ]. arit_omtr := arit_mtr & optional_mtr. ;;; ;;; @ skiltet >> the sign ;;; noun_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x1 ] > ]. noun_omtr := noun_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; quite possibly there is no need for the relational vs. non-relational ;;; distinction for nouns and adjectives (see below). we could just always ;;; co-index an ARG1 (ARG2 for adjectives), since this will only take effect ;;; when the input actually supplies that role. however, we probably still ;;; want to classify relational nouns somewhere, possibly in the SEM-I, since ;;; that could be required information for, e.g. compounds. (17-apr-04; oe) ;;; ;;; @ bruken av naturen >> the use of the nature ;;; relational_noun_mtr := noun_mtr & [ INPUT.RELS < [ ARG1 #x1 ] >, OUTPUT.RELS < [ ARG1 #x1 ] > ]. relational_noun_omtr := relational_noun_mtr & optional_mtr. ;;; ;;; @ Norge >> Norway ;;; proper_noun_mtr := noun_mtr & [ INPUT.RELS < [ PRED "named_rel" ] >, OUTPUT.RELS < [ PRED named_rel ] > ]. proper_noun_omtr := proper_noun_mtr & optional_mtr. ;;; ;;; @ fredag >> Friday ;;; dofw_mtr := noun_mtr & [ INPUT.RELS < [ PRED "dofw_rel", CARG string ] >, OUTPUT.RELS < [ PRED dofw_rel, CARG string ] > ]. dofw_omtr := dofw_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; right now, NorGram treats the months of the year as regular nominals, i.e. ;;; unlike the ERG not as proper names. investigate with helge. ;;; (11-nov-04; oe) ;;; as it turns out, the grammars differ in the type of quantifier they use on ;;; month names, thus we will have to do a little more to get generator ;;; success (see `a_q+mofy_ef'). (9-apr-05; oe) ;;; ;;; @ juni >> June ;;; mofy_mtr := noun_mtr & [ INPUT.RELS < [ PRED "mofy_rel", CARG string ] >, OUTPUT.RELS < [ PRED mofy_rel, CARG string ] > ]. mofy_omtr := mofy_mtr & optional_mtr. ;;; ;;; interesting: the HCONS CONTEXT condition is required, because otherwise we ;;; may end up equating unrelated pairs of `named_rel' plus `proper_q_rel'; we ;;; may need a notion of `persistent' variables, at some point, i.e. ones that ;;; must bind no more than one (object) variable in the input MRS. maybe coin ;;; [ FLAGS.PERSISTENT < #x2 > ]. (24-jan-04; oe) ;;; ;;; --- which we now have, by means of `skolemization' (10-apr-04; oe) ;;; ;;; @ Norge >> Norway ;;; proper_np_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h4, LARG #h1 ] >, INPUT.RELS < [ PRED "named_rel", LBL #h1, ARG0 #x2 ], [ PRED "proper_q_rel", LBL #h3, ARG0 #x2, RSTR #h4, BODY #h5 ] >, OUTPUT.RELS < [ PRED named_rel, LBL #h1, ARG0 #x2 ], [ PRED proper_q_rel, LBL #h3, ARG0 #x2, RSTR #h4, BODY #h5 ] > ]. ;;; ;;; in some cases, we need to transfer complete NPs, i.e. both the nominal EP ;;; and its quantifier. ;;; ;;; no instantiations ;;; np_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h4, LARG #h1 ] >, INPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x2, RSTR #h4, BODY #h5 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x2, RSTR #h4, BODY #h5 ] > ]. ;;; ;;; @ Det blåser. >> It is windy. ;;; expl_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1 ] > ]. ;;; ;;; @ Vi arbeider. >> We work. ;;; arg1_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] > ]. ;;; ;;; @ Vi spiser isen. >> We eat the ice. ;;; arg12_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] > ]. ;;; ;;; @ Vi brakte ham isen. >> We brought him the ice. ;;; arg123_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2, ARG3 #x3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2, ARG3 #x3 ] > ]. ;;; ;;; @ Vi veddet 50 kroner med Abrams på at han sover. ;;; >> We bet Abrams 50 crowns that he sleeps. ;;; arg1234_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #2, ARG3 #3, ARG4 #4 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #2, ARG3 #3, ARG4 #4 ] > ]. arg1_v_omtr := arg1_v_mtr & optional_mtr. arg12_v_omtr := arg12_v_mtr & optional_mtr. arg123_v_omtr := arg123_v_mtr & optional_mtr. arg1234_v_omtr := arg1234_v_mtr & optional_mtr. ;;; ;;; @ Abrams kan sove. >> Abrams may sleep. ;;; modal_mtr := arg1_v_mtr. modal_omtr := modal_mtr & optional_mtr. ;;; ;;; @ Abrams kan synge. >> Abrams can sing. ;;; arg12_modal_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG2 #h1 & h ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #h1 ] >, FLAGS.EQUAL < #h1 > ]. arg12_modal_omtr := arg12_modal_mtr & optional_mtr. ;;; ;;; and now for more interesting cases of argument dropping or switching ;;; ;;; ;;; @ Han begynner å synge. >> He begins to sing. ;;; arg12_arg1_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG2 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #2 ] > ]. arg12_arg1_v_omtr := arg12_arg1_v_mtr & optional_mtr. ;;; ;;; @ Abrams synes å sove. >> Abrams seems to sleep. ;;; arg1_arg2_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG2 #1 ] > ]. arg1_arg2_v_omtr := arg1_arg2_v_mtr & optional_mtr. ;;; ;;; @ Vi grublet over treet. >> We thought about the tree. ;;; arg12_arg13_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG3 #2 ] > ]. arg12_arg13_v_omtr := arg12_arg13_v_mtr & optional_mtr. ;;; ;;; @ Vi lønner Abrams. >> We pay for Abrams. ;;; arg13_arg12_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG3 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2 ] > ]. arg13_arg12_v_omtr := arg13_arg12_v_mtr & optional_mtr. ;;; ;;; @ Du kan forlate deg på at Abrams sover. >> You can bet Abrams sleeps. ;;; (9-jan-08; ph) arg12_arg14_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG4 #2 ] > ]. arg12_arg14_v_omtr := arg12_arg14_v_mtr & optional_mtr. ;;; ;;; PH 2007-11-12: ;;; ;;; @ Abrams anser bilen som en fare. >> Abrams considers the car a danger. ;;; arg123_arg132_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2, ARG3 #3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #3, ARG3 #2 ] > ]. arg123_arg132_v_omtr := arg123_arg132_v_mtr & optional_mtr. ;;; no instantiations (3-dec-07; ph) arg2_arg1_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG2 #1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1 ] > ]. arg2_arg1_v_omtr := arg2_arg1_v_mtr & optional_mtr. ;;; ;;; @ Isen smaker meg. >> I enjoy the ice. ;;; arg12_arg21_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #2, ARG2 #1 ] > ]. arg12_arg21_v_omtr := arg12_arg21_v_mtr & optional_mtr. ;;; no functioning instantiations (3-dec-07; ph) arg23_arg12_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG2 #1, ARG3 #2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #1, ARG2 #2 ] > ]. arg23_arg12_v_omtr := arg23_arg12_v_mtr & optional_mtr. ;;; ;;; In some cases the ERG encapsulates the wh-clause inside a `nominalization' ;;; EP. (11-jan-08; ph) ;;; ;;; @ De krangler om hvem som sover. >> They argue over who sleeps. ;;; arg12_arg12+nominalization_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h3 ] >, INPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #h2 ] >, HCONS < qeq & [ HARG #h2, LARG #h3 ] > ], OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ PRED udef_q_rel, ARG0 #x2, RSTR #h4 ], [ PRED nominalization_rel, LBL #h5, ARG0 #x2 & [ NUM sg, PERS 3, GRIND - ], ARG1 #h3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. arg12_arg12+nominalization_omtr := arg12_arg12+nominalization_mtr & optional_mtr. ;;; ;;; @ Abrams tråkker på isen. >> Abrams treads on the ice. ;;; arg12_arg1+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ] > ]. arg12_arg1+pp_omtr := arg12_arg1+pp_mtr & optional_mtr. ;;; ;;; @ Gresset tar av for fallet. >> The grass cusions the fall. ;;; arg1+pp_arg12_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] > ]. arg1+pp_arg12_omtr := arg1+pp_arg12_mtr & optional_mtr. ;;; ;;; @ Abrams skiller seg fra Browne. >> Abrams separates from Browne. ;;; arg1+pp_arg13_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG3 #x3 ] > ]. arg1+pp_arg13_omtr := arg1+pp_arg13_mtr & optional_mtr. ;;; ;;; @ Abrams havnet i Norge. >> Abrams ended up in Norway. ;;; (16-dec-2007; ph) arg1+pp_arg12pp3pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ], [ LBL #h0, ARG0 #e2 & e_untensed, ARG1 #e1, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #e2, ARG3 #h1 ], [ LBL #h2, ARG0 #e2, ARG1 #x2, ARG2 #x3 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ] ]. arg1+pp_arg12pp3pp_omtr := arg1+pp_arg12pp3pp_mtr & optional_mtr. ;;; ;;; @ Vi skriver kortet til Abrams. >> We write Abrams the card. ;;; arg12+pp_arg123_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 , ARG2 #x3 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3, ARG3 #x4 ] > ]. arg12+pp_arg123_omtr := arg12+pp_arg123_mtr & optional_mtr. ;;; ;;; @ Vi inviterer Abrams til is. >> We invite Abrams for ice. ;;; arg123_arg12+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3, ARG3 #x4 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 , ARG2 #x3 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ] > ]. arg123_arg12+pp_omtr := arg123_arg12+pp_mtr & optional_mtr. ;;; ;;; @ Abrams deler inn isen i deler. >> Abrams divided the ice into parts. ;;; arg12+pp_arg12+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 , ARG2 #x3 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ] > ]. arg12+pp_arg12+pp_omtr := arg12+pp_arg12+pp_mtr & optional_mtr. ;;; ;;; these days, at least, the NorGram and ERG analyses for ;;; ;;; @ Abrams slår Browne som gammel. >> Abrams strikes Browne as old. ;;; ;;; differ in arity. the ERG analysis has Browne as the ARG1, essentially as ;;; the experiencer of the state of affairs of Abrams being old, i.e. the ARG2 ;;; of a two-place `_strike_v_as'. i admit, i find the NorGram analysis more ;;; immediately accessible. (14-sep-07; oe) ;;; arg123_arg12_predicative_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG2 #x0, ARG3 #h1 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ] > ]. arg123_arg12_predicative_omtr := arg123_arg12_predicative_mtr & optional_mtr. ;;; ;;; PH 2007-09-25 ;;; ;;; @ Vi baserer ideen på dette. >> We base the idea on this. ;;; arg123_arg123_prop_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #x2 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h1 ], [ LBL #h1, ARG0 e, ARG1 #x1, ARG2 #x2 ] > ]. arg123_arg123_prop_omtr := arg123_arg123_prop_mtr & optional_mtr. ;;; ;;; This is a sort of arg123_arg132 followed by arg123_arg12+pp. One can ;;; wonder when the arg123_arg132 switches are real or accidental the way the ;;; arguments 2 and 3 are numered. (9-sep-06; jtl) ;;; ;;; ;;; no instantiations (3-dec-07; ph) ;;; arg123_arg13+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3, ARG3 #x4 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 , ARG2 #x4 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ] > ]. arg123_arg13+pp_omtr := arg123_arg13+pp_mtr & optional_mtr. ;;; ;;; @ Abrams druknet seg. >> Abrams drowned himself. ;;; arg1refl_arg12pron_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg1refl_arg12pron_omtr := arg1refl_arg12pron_mtr & optional_mtr. ;;; ;;; @ Abrams unner seg is. >> Abrams allows himself ice. ;;; arg12refl_arg123pron_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3, ARG3 #x4 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg12refl_arg123pron_omtr := arg12refl_arg123pron_mtr & optional_mtr. ;;; ;;; @ Abrams forsikrer seg om isen. >> Abrams assures himself of the ice. ;;; arg12refl_arg12pron3_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4, ARG3 #x3 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg12refl_arg12pron3_omtr := arg12refl_arg12pron3_mtr & optional_mtr. ;;; ;;; @ Abrams forsikrer seg om isen. >> Abrams assures himself of the ice. ;;; arg12refl_arg12pron3inf_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h3, LARG #h4 ] >, INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #h3 ], [ LBL #h4, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4, ARG3 #h3 ], [ LBL #h4, ARG1 x & [ DITCH - ] ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg12refl_arg12pron3inf_omtr := arg12refl_arg12pron3inf_mtr & optional_mtr. ;;; ;;; @ Abrams markerer seg som forsker. ;;; >> Abrams distinguishes himself as a researcher. ;;; arg12refl_arg12pron+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg12refl_arg12pron+pp_omtr := arg12refl_arg12pron+pp_mtr & optional_mtr. ;;; ;;; a reflexive pronoun inside a PP modifier. (16-jan-08; ph) ;;; ;;; @ Abrams sikret seg isen. >> Abrams secured the ice for himself. ;;; arg12refl_arg12+pp-pron_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg12refl_arg12+pp-pron_omtr := arg12refl_arg12+pp-pron_mtr & optional_mtr. ;;; ;;; sometimes one has to add an adverb or PP in the output. (22-sep-05; jtl) ;;; ;;; @ Abrams reiser rundt. >> Abrams travels around. ;;; arg1_arg1+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1 ] > ]. arg1_arg1+pp_omtr := arg1_arg1+pp_mtr & optional_mtr. ;;; ;;; @ Abrams river seg løs. >> Abrams tears himself away. ;;; arg1refl_arg12pron+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e1 ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ], [ PRED identity_rel, LBL #h5, ARG0 #x2, ARG1 #x4 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg1refl_arg12pron+pp_omtr := arg1refl_arg12pron+pp_mtr & optional_mtr. ;;; ;;; @ Abrams henger i. >> Abrams keeps it up. ;;; (16-dec-2007; ph) arg1_arg12pron_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x4 & x & [ NUM sg, PERS 3, GEND n, PRONTYPE std_pron ] ], [ PRED pron_rel, LBL #h5, ARG0 #x4 ], [ PRED pronoun_q_rel, ARG0 #x4, RSTR #h6 ] >, HCONS < qeq & [ HARG #h6, LARG #h5 ] > ] ]. arg1_arg12pron_omtr := arg1_arg12pron_mtr & optional_mtr. ;;; ;;; PH 2007-09-27: Add a preposition and a noun in the output. ;;; ;;; @ Isen ble til. >> The ice came into existence. ;;; arg1_arg1+p+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0 ], [ LBL #h0, ARG0 e_untensed, ARG1 #e0, ARG2 #x1 ], [ LBL #h2, ARG0 #x1 & [ NUM sg, PERS 3, GRIND - ] ], [ ARG0 #x1, RSTR #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ] ]. arg1_arg1+p+n_omtr := arg1_arg1+p+n_mtr & optional_mtr. ;;; ;;; The object of the prepostion needs to be specified for number in the ;;; rule instances. ;;; ;;; @ Skogen begeistrer meg. >> The wood fills me with enthusiasm. ;;; (13-nov-07; ph) ;;; arg12_arg12+p+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1, ARG2 #x3 ], [ LBL #h2, ARG0 #x3 & [ PERS 3, GRIND - ] ], [ PRED udef_q_rel, ARG0 #x3, RSTR #h3 ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ] ]. arg12_arg12+p+n_omtr := arg12_arg12+p+n_mtr & optional_mtr. ;;; ;;; The PRED value of the object quantifier must be set. (16-jan-08; ph) ;;; ;;; @ Abrams får fatt i isen. >> Abrams gets hold of the ice. ;;; arg12_arg12+n*p+np_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x3 ], [ ARG0 #x3, RSTR #h3 ], [ LBL #h2, ARG0 #x3 & [ PERS 3, NUM sg, GRIND - ], ARG1 #x2 ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ] ]. arg12_arg12+n*p+np_omtr := arg12_arg12+n*p+np_mtr & optional_mtr. ;;; ;;; @ Abrams sørger for isen. >> Abrams takes care of the ice. ;;; (7-jan-08; ph) arg12_arg12+n+p+np_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x3 ], [ LBL #h2, ARG0 #x3 & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h2, ARG0 e_untensed, ARG1 #x3, ARG2 #x2 ], [ PRED udef_q_rel, ARG0 #x3, RSTR #h3 ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ] ]. arg12_arg12+n+p+np_omtr := arg12_arg12+n+p+np_mtr & optional_mtr. ;;; ;;; @ Abrams skimter isen. >> Abrams barely sees the ice. ;;; arg12_arg12+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1 ] > ]. arg12_arg12+pp_omtr := arg12_arg12+pp_mtr & optional_mtr. ;;; ;;; Or one has to remove an adverb or PP in the output. (26-may-06; jtl) ;;; ;;; @ Abrams klorer seg fast til isen. >> Abrams clings to the ice. ;;; arg1+pp_arg1_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] > ]. arg1+pp_arg1_omtr := arg1+pp_arg1_mtr & optional_mtr. ;;; ;;; for `drive jakt på', transfer the verb, its direct object NP, and a PP[på] ;;; adjunct (which should probably be the internal argument of a relational ;;; `jakt') into a simple transitive. ;;; ;;; _fix_me_ ;;; interestingly, the PP will often be optional, and we are thus forced to use ;;; two distinct correspondence types; if there were a way of marking select ;;; input elements as optional, these could be collapsed. (23-feb-06; oe) ;;; ;;; --- `jakt på' is now relational, but nevertheless keep this type as is. ;;; ;;; @ Abrams gjør inntrykk. >> Abrams impresses. ;;; arg12+np_arg1_v_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ ARG0 #x3, RSTR #h4 ], [ LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, FLAGS.EQUAL < #x3 > ]. arg12+np_arg1_v_omtr := arg12+np_arg1_v_mtr & optional_mtr. ;;; ;;; The instances of this type must constrain the index of the object to e.g. ;;; [ NUM pl, PERS 3, GRIND - ], and the PRED value of the quantifier. ;;; ;;; @ Vi grøfter. >> We dig ditches. ;;; arg1_arg12+np_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ ARG0 #x3, RSTR #h4 ], [ LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. arg1_arg12+np_v_omtr := arg1_arg12+np_v_mtr & optional_mtr. ;;; ;;; Intrans to trans with a compound object. The number of the first noun ;;; and quantifier relation needs to be specified in the rule intances. (E.g. ;;; [ NUM sg ] and _a_q_rel) (10-jan-08; ph) ;;; ;;; @ Abrams huker av. >> Abrams makes a check mark. ;;; arg1_arg12+compound-np_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ ARG0 #x3 & [ PERS 3, GRIND - ], RSTR #h4 ], [ LBL #h7, ARG0 #x4 ], [ LBL #h5, ARG0 #x3 ], [ PRED compound_rel, LBL #h5, ARG1 #x3, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ NUM sg, PERS 3, GRIND - ], RSTR #h6 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ], qeq & [ HARG #h6, LARG #h7 ] > ] ]. arg1_arg12+compound-np_omtr := arg1_arg12+compound-np_mtr & optional_mtr. ;;; ;;; Adding an AP in the output. (13-dec-07; ph) ;;; ;;; @ Det flasket seg. >> It went fine. ;;; arg1_arg12+ap_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #h2 ], [ LBL #h3, ARG0 e_untensed, ARG1 #x1 ] >, HCONS < [ HARG #h2, LARG #h3 ] > ] ]. arg1_arg12+ap_omtr := arg1_arg12+ap_mtr & optional_mtr. ;;; ;;; PH 2007-10-04: ;;; ;;; @ Han dømmer om det. >> He is the judge of that. ;;; arg12prep_be_n_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ] >, OUTPUT [ RELS < [ LBL #h2, ARG0 #x3, ARG1 #x2 ], [ PRED _the_q_rel, ARG0 #x3 & [ NUM sg, PERS 3, GRIND - ], RSTR #h3 ], [ PRED _be_v_id_rel, LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x3 ], [ PRED num_equate, ARG0 #x3, ARG1 #x1 ]>, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ] ]. ;;; ;;; PH 2007-10-01 ;;; ;;; @ Han drakk seg full. >> He got drunk. ;;; arg1+a_arg1+vp_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h6 ], [ LBL #h6, ARG1 #x0 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 e, ARG1 #x0 ], [ PRED "_get_v_state_rel", LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h3 ] > ] ]. arg1+a_arg1+vp_v_omtr := arg1+a_arg1+vp_v_mtr & optional_mtr. ;;; ;;; PH 2007-09-27 ;;; ;;; @ Han brente seg. >> He got burned. ;;; arg1_arg12+vp_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #e1, ARG2 #x0 ], [ PRED "_get_v_state_rel", LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ], [ PRED parg_d_rel, LBL #h3, ARG1 #e1, ARG2 #x0 ]>, HCONS < qeq & [ HARG #h1, LARG #h3 ] > ] ]. arg1_arg12+vp_v_omtr := arg1_arg12+vp_v_mtr & optional_mtr. ;;; ;;; @ Han satte fast isen. >> He got the ice caught. ;;; (16-jan-08; ph) arg12_arg123+vp_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #e1, ARG2 #x1 ], [ PRED "_get_v_state_rel", LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h1 ], [ PRED parg_d_rel, LBL #h3, ARG1 #e1, ARG2 #x1 ]>, HCONS < qeq & [ HARG #h1, LARG #h3 ] > ] ]. arg12_arg123+vp_v_omtr := arg12_arg123+vp_v_mtr & optional_mtr. ;;; ;;; @ Abrams rotet seg borti isen. >> Abrams got mixed up in the ice. ;;; (15-jan-08; ph) arg12_arg12+vp-pp_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #e1, ARG2 #x0 ], [ LBL #h3, ARG0 e_untensed, ARG1 #e1, ARG2 #x1 ], [ PRED "_get_v_state_rel", LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ], [ PRED parg_d_rel, LBL #h3, ARG1 #e1, ARG2 #x0 ] >, HCONS < qeq & [ HARG #h1, LARG #h3 ] > ] ]. arg12_arg12+vp-pp_v_omtr := arg12_arg12+vp-pp_v_mtr & optional_mtr. ;;; ;;; @ Dalen har formet seg etter isen. ;;; >> The valley has been shaped by the ice. ;;; (13-dec-07; ph) arg12_arg21+pass_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x1, ARG2 #x0 ], [ PRED parg_d_rel, LBL #h0, ARG1 #e0, ARG2 #x0 ] > ]. arg12_arg21+pass_v_omtr := arg12_arg21+pass_v_mtr & optional_mtr. ;;; ;;; @ Alt ligger til rette for at Abrams sover. ;;; >> All is set for Abrams to sleep. ;;; (12-jan-08; ph) sup-arg12_arg2+pass+cond-pp_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #h2 ], [ LBL #h3 ], ... >, HCONS < qeq & [ HARG #h2, LARG #h3 ], ... > ], OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 p, ARG2 #x1 ], relation, [ ARG0 e_untensed, ARG1 #h4, ARG2 #h5 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e1, ARG2 #x1 ] >, HCONS < qeq & [ HARG #h4, LARG #h1 ], qeq & [ HARG #h5, LARG #h3 ] > ] ]. ;;; ;;; @ Alt ligger til rette for at Abrams sover. ;;; >> All is set for Abrams to sleep. ;;; (12-jan-08; ph) arg12_arg2+pass+cond-pp_mtr := sup-arg12_arg2+pass+cond-pp_mtr & [ INPUT [ RELS < relation, relation >, HCONS < qeq > ] ]. arg12_arg2+pass+cond-pp_omtr := arg12_arg2+pass+cond-pp_mtr & optional_mtr. ;;; ;;; @ Alt ligger til rette for at Abrams kan sove. ;;; >> All is set for Abrams to sleep. ;;; (12-jan-08; ph) arg12-aux_arg2+pass+cond-pp_mtr := sup-arg12_arg2+pass+cond-pp_mtr & [ INPUT [ RELS < [ ARG2 #h2 ], [ LBL #h3 ], [ LBL #h6, ARG1 #h7 ] >, HCONS < qeq & [ HARG #h2, LARG #h6 ], qeq & [ HARG #h7, LARG #h3 ] > ] ]. arg12-aux_arg2+pass+cond-pp_omtr := arg12-aux_arg2+pass+cond-pp_mtr & optional_mtr. ;;; ;;; @ Han finner fram. >> He found his way. ;;; arg1_arg12_poss_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 & [ NUM #num, GEND #gend ], ARG2 #x2 ], [ LBL #h2, ARG0 #x2 & [ PERS 3, NUM sg, GRIND - ] ], [ PRED poss_rel, LBL #h2, ARG0 e_untensed, ARG1 #x2, ARG2 #x3 ], [ PRED pronoun_q_rel, ARG0 #x3 & [ NUM #num, GEND #gend ], RSTR #h3 ], [ PRED pron_rel, LBL #h4, ARG0 #x3 ], [ PRED def_explicit_q_rel, ARG0 #x2, RSTR #h5 ], [ PRED num_equate, ARG0 #x3, ARG1 #x1 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ], qeq & [ HARG #h5, LARG #h2 ] > ] ]. arg1_arg12_poss_omtr := arg1_arg12_poss_mtr & optional_mtr. ;;; ;;; @ Abrams eter seg mett. >> Abrams eats his fill. ;;; arg1+a_arg12_poss_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #h6 ], [ LBL #h6, ARG1 #x1 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 & [ NUM #num, GEND #gend ], ARG2 #x2 ], [ LBL #h2, ARG0 #x2 & [ PERS 3, NUM sg, GRIND - ] ], [ PRED poss_rel, LBL #h2, ARG0 e_untensed, ARG1 #x2, ARG2 #x3 ], [ PRED pronoun_q_rel, ARG0 #x3 & [ NUM #num, GEND #gend ], RSTR #h3 ], [ PRED pron_rel, LBL #h4, ARG0 #x3 ], [ PRED def_explicit_q_rel, ARG0 #x2, RSTR #h5 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ], qeq & [ HARG #h5, LARG #h2 ] > ] ]. arg1+a_arg12_poss_omtr := arg1+a_arg12_poss_mtr & optional_mtr. ;;; ;;; @ Abrams kastet av seg klærne. >> Abrams tore off his clothes. ;;; (9-jan-08; ph) arg12_arg12_poss_mtr := monotonic_mtr & [ CONTEXT [ RELS < [ LBL #h2, ARG0 #x2 ] >, HCONS < qeq & [ HARG #h5, LARG #h2 ] > ], INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1, ARG2 #x2 ], [ ARG0 #x2, RSTR #h5 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #x1 & [ NUM #num, GEND #gend ], ARG2 #x2 ], [ PRED def_explicit_q_rel, ARG0 #x2, RSTR #h5 ], [ PRED poss_rel, LBL #h2, ARG0 e_untensed, ARG1 #x2, ARG2 #x3 ], [ PRED pronoun_q_rel, ARG0 #x3 & [ NUM #num, GEND #gend ], RSTR #h3 ], [ PRED pron_rel, LBL #h4, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ] ]. arg12_arg12_poss_omtr := arg12_arg12_poss_mtr & optional_mtr. ;;; ;;; a light verb plus NP or relational NP complements, e.g. `drive jakt [på]'. ;;; ;;; @ Abrams gjør inntrykk på oss. >> Abrams makes an impression on us. ;;; arg12+np+pp_arg12_v_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ ARG0 #x3, RSTR #h4 ], [ LBL #h5, ARG0 #x3 ], [ LBL #h5, ARG1 #x3, ARG2 #x6 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x6 ] >, FLAGS.EQUAL < #x3 > ]. arg12+np+pp_arg12_v_omtr := arg12+np+pp_arg12_v_mtr & optional_mtr. ;;; ;;; @ Abrams driver jakt på elger. >> Abrams hunts moose. ;;; arg12+rnp_arg12_v_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ ARG0 #x3, RSTR #h4 ], [ LBL #h5, ARG0 #x3, ARG1 #x6 & x ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x6 ] >, FLAGS.EQUAL < #x3, #x6 > ]. arg12+rnp_arg12_v_omtr := arg12+rnp_arg12_v_mtr & optional_mtr. ;;; ;;; @ Abrams grunnet opp innsjøen. >> Abrams made the lake shallow. ;;; arg12_arg12+ap_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 & x ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ], [ LBL #h1, ARG1 #x1 ] > ] ]. arg12_arg12+ap_v_omtr := arg12_arg12+ap_v_mtr & optional_mtr. ;;; ;;; This rule works for both AP ('shiny') and PP ('down') complements. ;;; (15-jan-08; ph) ;;; ;;; @ Abrams blankskurte isen. >> Abrams scrubbed the ice shiny. ;;; arg12_arg123_ap_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 & x ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 & x, ARG3 #h2 ], [ LBL #h1, ARG1 #x1 ] >, HCONS < qeq & [ HARG #h2, LARG #h1 ] > ] ]. arg12_arg123_ap_v_omtr := arg12_arg123_ap_v_mtr & optional_mtr. ;;; ;;; This is a type for verb particles that translate into resultative PPs. ;;; 'kakke*i+stykker' is in the NorGram SEM-I but not in the lexicon. ;;; (18-dec-07; ph) ;;; @ Abrams kakker istykker isen. >> Abrams knocks the ice to pieces. ;;; arg12_arg123_p+n_v_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 & x ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1 & x, ARG3 #h2 ], [ LBL #h1, ARG0 e_untensed, ARG1 #x1, ARG2 #x2 ], [ ARG0 #x2, RSTR #h3 ], [ LBL #h4, ARG0 #x2 ] >, HCONS < qeq & [ HARG #h2, LARG #h1 ], qeq & [ HARG #h3, LARG #h4 ] > ] ]. arg12_arg123_p+n_v_omtr := arg12_arg123_p+n_v_mtr & optional_mtr. ;;; ;;; @ Abrams avstår fra å sove. >> Abrams refrains from sleeping. ;;; arg12+inf_arg12+nominalization_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h2, ARG0 #e1, ARG1 p ] >, INPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x2 ], [ PRED implicit_q_rel, ARG0 #x2, RSTR #h4 ], [ PRED nominalization_rel, LBL #h5, ARG0 #x2 & [ NUM sg, PERS 3, GRIND - ], ARG1 #h2 ], [ PRED prog_mark, LBL #h2, ARG0 #e1 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. arg12+inf_arg12+nominalization_omtr := arg12+inf_arg12+nominalization_mtr & optional_mtr. ;;; ;;; The progressive aspect of the nominalized verb must be set at each instance ;;; of this type. (13-dec-07; ph) ;;; ;;; @ Abrams forhindret Browne fra å sove. ;;; >> Abrams prevented Browne from sleeping. ;;; arg123+inf_arg123+prog_mtr := monotonic_mtr & [ CONTEXT [ RELS < [ LBL #h2, ARG0 #e1, ARG1 x ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h1 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h1 ], [ PRED prog_mark, LBL #h2, ARG0 #e1 ] > ]. arg123+inf_arg123+prog_omtr := arg123+inf_arg123+prog_mtr & optional_mtr. ;;; ;;; @ Abrams lurte seg til å sove. ;;; >> Abrams tricked himself into sleeping. ;;; arg1refl2+inf_arg123+nominalization_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h2, ARG0 #e1, ARG1 x ] >, INPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h3 ], [ LBL #h4, ARG1 #x1, ARG2 #x2 ], [ PRED pronoun_q_rel, ARG0 #x1, RSTR #h5 ], [ PRED pron_rel, LBL #h6, ARG0 #x1 & x_3sg & [ PRONTYPE refl ] ], [ PRED gend_equate, ARG0 #x1, ARG1 #x0 ], [ PRED implicit_q_rel, ARG0 #x2, RSTR #h7 ], [ PRED nominalization_rel, LBL #h8, ARG0 #x2 & x_3sg, ARG1 #h2 ], [ PRED prog_mark, LBL #h2, ARG0 #e1 ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ], qeq & [ HARG #h5, LARG #h6 ], qeq & [ HARG #h7, LARG #h8 ] > ] ]. arg1refl2+inf_arg123+nominalization_omtr := arg1refl2+inf_arg123+nominalization_mtr & optional_mtr. ;;; ;;; @ Det kommer an på om han sover. >> It depends whether he sleeps. ;;; arg12+subord_arg12+subord_mtr := monotonic_mtr & [ CONTEXT.RELS < [ ARG0 #x0 ] >, INPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ], [ LBL #h2, ARG0 e & [ DITCH - ] ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], OUTPUT [ RELS < [ LBL #h3, ARG0 #e0, ARG1 #x0 ], [ LBL #h2, ARG0 e ], [ LBL #h0, ARG0 e, ARG1 #h4, ARG2 #h5 ] >, HCONS < qeq & [ HARG #h4, LARG #h3 ], qeq & [ HARG #h5, LARG #h2 ] > ] ]. arg12+subord_arg12+subord_omtr := arg12+subord_arg12+subord_mtr & optional_mtr. ;;; ;;; @ Abrams får henne til å le. >> Abrams makes her laugh. ;;; arg123+inf_arg12+small-cl_mtr := monotonic_mtr & [ CONTEXT.RELS < [ ARG0 #x1 ] >, INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #x1, ARG3 #h1 ]>, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0, ARG2 #h1 ] > ]. arg123+inf_arg12+small-cl_omtr := arg123+inf_arg12+small-cl_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; now that we have conflated the `j' vs. `r' distinction in predicate names ;;; on both ends, we could just have one `intersective_attribute_mtr' type, ;;; say, and not make the adjective vs. adverb distinction where both have the ;;; same translation(s). (21-jun-05; jtl & oe) ;;; ;;; @ Turen var utmerket. >> The trip was excellent. ;;; @ en utmerket tur >> an excellent trip ;;; intersective_attribute_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #i3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #i3 ] > ]. intersective_attribute_omtr := intersective_attribute_mtr & optional_mtr. ;;; ;;; @ Turen var lang. >> The trip was long. ;;; @ en lang tur >> a long trip ;;; adjective_mtr := intersective_attribute_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & p ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 ] >, FLAGS.SUBSUME < #p3 > ]. adjective_omtr := adjective_mtr & optional_mtr. ;;; ;;; @ Abrams er klar over isen. >> Abrams is aware of the ice. ;;; relational_adjective_mtr := adjective_mtr & [ INPUT.RELS < [ ARG2 #i1 ] >, OUTPUT.RELS < [ ARG2 #i1 ] > ]. relational_adjective_omtr := relational_adjective_mtr & optional_mtr. ;;; ;;; @ Mannen er fjellvant. >> The man is familiar with the mountains. ;;; @ den fjellvante mannen >> the man familiar with the mountains ;;; adj_reladj+np_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #x3, ARG2 #x4 ], [ LBL #h5, ARG0 #x4, RSTR #h5], [ LBL #h6, ARG0 #x4] >, HCONS < qeq & [ HARG #h5, LARG #h6 ] > ] ]. adj_reladj+np_omtr := adj_reladj+np_mtr & optional_mtr. ;;; ;;; This type works adjectives that translates into adjectives modified by ;;; adverbs and degree specifiers (_x_deg_rel). ;;; ;;; @ Mannen er dødssyk. >> The man is mortally ill. ;;; @ den dødssyke mannen >> the mortally ill man ;;; ad_deg+ad_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & i ] >, OUTPUT.RELS < [ LBL #h1, ARG1 #e2 ] , [ LBL #h1, ARG0 #e2, ARG1 #p3 ] > ]. ad_deg+ad_omtr := ad_deg+ad_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; we cannot make the PROG and TENSE (overwriting) constraints part of the MTR ;;; definition, because then we fail to match the input. thus, we merely mark ;;; the event for later processing in the `snug' phase. once again, another ;;; kind of overwriting would be required here. (29-may-06; oe) ;;; ;;; @ Veien er svinget. >> The road is winding. ;;; @ den svingete veien >> the winding road ;;; adjective_prp_participle_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & p ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 ], [ PRED prog_mark, LBL #h1, ARG0 #e2 ] >, FLAGS.SUBSUME < #p3 > ]. adjective_prp_participle_omtr := adjective_prp_participle_mtr & optional_mtr. ;;; ;;; @ Stien er samfunnsnyttig. >> The path is serving the public. ;;; @ den samfunnsnyttige stien >> the path serving the public ;;; adjective_prp_participle+arg2_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #p0 & p ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #p0, ARG2 #x0 ], [ LBL h, ARG0 #x0, RSTR #h2 ], [ LBL #h3, ARG0 #x0 & [ NUM sg, PERS 3, GRIND - ] ], [ PRED prog_mark, LBL #h0, ARG0 #e0 ] >, HCONS < qeq & [ HARG #h2, LARG #h3 ] > ], FLAGS.SUBSUME < #p0 > ]. adjective_prp_participle+arg2_omtr := adjective_prp_participle+arg2_mtr & optional_mtr. ;;; ;;; @ Stien er anerkjent. >> The path is recognized. ;;; @ den anerkjente stien >> the recognized path ;;; adjective_psp_participle_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & p ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 u, ARG2 #p3 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e2 , ARG2 #p3 ] >, FLAGS.SUBSUME < #p3 > ]. adjective_psp_participle_omtr := adjective_psp_participle_mtr & optional_mtr. ;;; ;;; @ Stien er rødmerket. >> The path is marked with red. ;;; @ den rødmerkede stien >> the path marked with red ;;; adjective_psp_participle+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e0, ARG1 #p3 & p ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e0, ARG1 u, ARG2 #p3 ], [ LBL #h1, ARG1 #e0, ARG2 #x7 ], [ ARG0 #x7, RSTR #h9 ], [ LBL #h8, ARG0 #x7 & [ NUM sg, PERS 3, GRIND - ] ], [ PRED parg_d_rel, LBL #h1, ARG0 e_untensed, ARG1 #e0, ARG2 #p3 ] >, HCONS < qeq & [ HARG #h9, LARG #h8 ] > ], FLAGS.SUBSUME < #p3 > ]. adjective_psp_participle+pp_omtr := adjective_psp_participle+pp_mtr & optional_mtr. ;;; ;;; @ Stien er nyanlagt. >> The path is newly built. ;;; @ den nyanlagte stien >> the newly built path ;;; adjective_psp_participle+intersective_adverb_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & p ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #e2 ], [ LBL #h1, ARG0 #e2, ARG1 u, ARG2 #p3 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e2 , ARG2 #p3 ] >, FLAGS.SUBSUME < #p3 > ]. adjective_psp_participle+intersective_adverb_omtr := optional_mtr & adjective_psp_participle+intersective_adverb_mtr. ;;; ;;; @ Stien er usikret. >> The path is unsecured. ;;; @ den usikrede stien >> the unsecured path ;;; adjective_psp_participle+scopal_adverb_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 & p ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 e_untensed & #e2, ARG2 #p3 ], [ LBL #h1, ARG0 e_untensed, ARG1 #h2 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e2 , ARG2 #p3 ] >, HCONS < qeq & [ HARG #h2, LARG #h1 ] > ], FLAGS.SUBSUME < #p3 > ]. adjective_psp_participle+scopal_adverb_omtr := optional_mtr & adjective_psp_participle+scopal_adverb_mtr. ;;; ;;; @ hytta beliggende i Bergen >> the cabin situated in Bergen ;;; prp_participle_adjective_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2 & [ PROG +, PERF - ], ARG1 #p3 & p ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #p3 ] >, FLAGS.SUBSUME < #p3 > ]. prp_participle_adjective_omtr := prp_participle_adjective_mtr & optional_mtr. ;;; ;;; @ Bilen er motorisert. >> The car is motorized. ;;; @ den motoriserte bilen >> the motorized car. ;;; psp_participle_adjective_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h4, ARG0 #e2 & e, ARG1 u, ARG2 #p3 & p ], [ PRED parg_d_rel, LBL #h4, ARG1 #e2, ARG2 #p3 ] >, OUTPUT.RELS < [ LBL #h4, ARG0 #e2, ARG1 #p3 ] >, FLAGS.SUBSUME < #e2, #p3 > ]. psp_participle_adjective_omtr := psp_participle_adjective_mtr & optional_mtr. ;;; ;;; This takes a past participle attributively modifying a noun, and transfers ;;; it into the modifier of an N+N compounds.d. (08-sep-06; jtl) ;;; ;;; @ et laftet bygg >> a log building ;;; psp_participle_compound_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h4, ARG0 #e2, ARG2 #p3 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e2, ARG2 #p3 ] >, OUTPUT [ RELS < [ LBL #h4, ARG0 #x14 ], [ PRED compound_rel, LBL #h1, ARG1 #p3, ARG2 #x14 ], [ PRED udef_q_rel, ARG0 #x14 & [ PERS 3, NUM sg, GRIND - ], RSTR #h15 ] >, HCONS < qeq & [ HARG #h15, LARG #h4 ] > ] ]. psp_participle_compound_omtr := psp_participle_compound_mtr & optional_mtr. ;;; ;;; @ den større isen >> the larger ice ;;; comparative_mtr := arg12_v_mtr. comparative_omtr := comparative_mtr & optional_mtr. ;;; ;;; New type superlative_mtr (compared to comparative_mtr) to prevent ARG2 ;;; which again prevents generation. (11-may-06; jtl) ;;; ;;; @ den største isen >> the largest ice ;;; superlative_mtr := arg1_v_mtr. superlative_omtr := superlative_mtr & optional_mtr. ;;; ;;; @ den heimste gården >> the farm closest to home ;;; adjective_superl+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, arg1 #x0 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, arg1 #x0 ], [ LBL #h0, PRED _to_p_rel, ARG0 e_untensed, ARG1 #e0, ARG2 #x1 ], [ PRED def_implicit_q_rel, ARG0 #x1, RSTR #h1 ], [ LBL #h2, PRED place_n_rel, ARG0 #x1 ], [ LBL #h2, PRED _home_p_rel, ARG0 e_untensed, ARG1 #x1 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ] ]. ;;; ;;; @ 20 >> 20 ;;; cardinal_mtr := adjective_mtr & [ INPUT.RELS < [ PRED "card_rel", LBL #h1, ARG0 #e2, ARG1 #i3, CARG string ] >, OUTPUT.RELS < [ PRED card_rel, LBL #h1, ARG0 #e2, ARG1 #i3, CARG string ] > ]. cardinal_omtr := cardinal_mtr & optional_mtr. ;;; ;;; @ den første mannen >> the first man ;;; ordinal_mtr := adjective_mtr & [ INPUT.RELS < [ PRED "ord_rel", LBL #h1, ARG0 #e2, ARG1 #i3, CARG string ] >, OUTPUT.RELS < [ PRED ord_rel, LBL #h1, ARG0 #e2, ARG1 #i3, CARG string ] > ]. ordinal_omtr := ordinal_mtr & optional_mtr. ;;; ;;; @ Abrams sover fortsatt. >> Abrams still sleeps. ;;; intersective_adverb_mtr := intersective_attribute_mtr & [ INPUT.RELS < [ LBL #h1, ARG1 #e2 & e ] >, OUTPUT.RELS < [ LBL #h1, ARG1 #e2 ] >, FLAGS.EQUAL < #e2 > ]. intersective_adverb_omtr := intersective_adverb_mtr & optional_mtr. ;;; ;;; @ Abrams sover sannsynligvis. >> Abrams probably sleeps. ;;; scopal_adverb_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG1 #h2 & h ] >, OUTPUT.RELS < [ LBL #h1, ARG1 #h2 ] > ]. scopal_adverb_omtr := scopal_adverb_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; adverbs like `too', `usually', et al. are scopal in the ERG; see whether we ;;; can convert an intersective NorGram adverb into a scopal modifier: it has ;;; to insert itself into the QEQ of the message introducing the tensed event ;;; that the original adverb modifies. this should probably not be required. ;;; (25-apr-04; oe) ;;; This does not work with two intersective adverbs that are to be scopal. ;;; The transfer of the second does not fire because at this time it is not in ;;; the immediate scope of a message but of the scopal adverb. Therefore try ;;; with a looser constraint. (06-oct-06; jtl) ;;; ;;; @ Abrams sover vanligvis. >> Abrams usually sleeps. ;;; intersective_scopal_adverb_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG0 #e2 & e ] >, INPUT [ RELS < [ LBL #h1, ARG1 #e2 ] >, HCONS < qeq & [ HARG #h0, LARG #h1 ] > ], OUTPUT [ RELS < [ LBL #h3, ARG1 h & #h4 ] >, HCONS < qeq & [ HARG #h0, LARG #h3 ], qeq & [ HARG #h4, LARG #h1 ] > ] ]. intersective_scopal_adverb_omtr := intersective_scopal_adverb_mtr & optional_mtr. ;;; ;;; @ Abrams sover stort sett. >> Abrams generally sleeps. ;;; scopal_intersective_adverb_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG0 #e2 & e ] >, INPUT [ RELS < [ LBL #h3, ARG1 h & #h4 ] >, HCONS < qeq & [ HARG #h0, LARG #h3 ], qeq & [ HARG #h4, LARG #h1 ] > ], OUTPUT [ RELS < [ LBL #h1, ARG1 #e2 ] >, HCONS < qeq & [ HARG #h0, LARG #h1 ] > ] ]. scopal_intersective_adverb_omtr := scopal_intersective_adverb_mtr & optional_mtr. ;;; ;;; mapping discourse adverb to conjunction. (14-jul-06; dpf) ;;; ;;; @ Men han synger. >> But he sings. ;;; discourse_adverb_conjunction_mtr := mrs_transfer_rule & [ CONTEXT [ LTOP #h0, INDEX #e1, RELS < [ ARG0 #e1 & e ] > ], INPUT.RELS < [ ARG2 #e1 ] >, OUTPUT [ LTOP #h2, RELS < [ LBL #h2, R-HNDL #h0, R-INDEX #e1 ] >, HCONS < > ], FLAGS.EQUAL < #e1 > ]. ;;; ;;; @ Abrams sover øverst. >> Abrams sleeps at the uppermost place. ;;; adverb_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ ARG0 #x3 & [ PERS 3, GRIND - ], RSTR #h4 ], [ LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. adverb_pp_omtr := adverb_pp_mtr & optional_mtr. ;;; ;;; @ Abrams er sant å si en mann. >> Abrams is a man in truth. ;;; scopal_intersective_pp_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG0 #e2 & e ] >, INPUT [ RELS < [ LBL #h3, ARG1 h & #h4 ] >, HCONS < qeq & [ HARG #h0, LARG #h3 ], qeq & [ HARG #h4, LARG #h1 ] > ], OUTPUT [ RELS < [ LBL #h1, ARG1 #e2, ARG2 #x3 ], [ ARG0 #x3 & [ PERS 3, GRIND - ], RSTR #h4 ], [ LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h0, LARG #h1 ], qeq & [ HARG #h4, LARG #h5 ] > ] ]. scopal_intersective_pp_omtr := scopal_intersective_pp_mtr & optional_mtr. ;;; ;;; @ Abrams sover garantert. >> Abrams is guaranteed to sleep. ;;; adverb_part+inf_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h1, LARG #h2 ] >, INPUT.RELS < [ LBL #h0, ARG0 #e0 & e, ARG1 #h1 ], [ LBL #h2, PRED #pred, ARG0 #e1, ARG1 #x0, ARG2 #u1, ARG3 #u2 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG2 #x0, ARG3 #h1 ], [ LBL #h2, PRED #pred, ARG0 e_untensed, ARG1 #x0, ARG2 #u1, ARG3 #u2 ], [ LBL #h0, PRED parg_d_rel, ARG0 e_untensed, ARG1 #e1, ARG2 #x0 ] >, FLAGS.EQUAL < #e0 > ]. adverb_part+inf_omtr := adverb_part+inf_mtr & optional_mtr. ;;; ;;; @ Abrams blir garantert hentet. >> Abrams is guaranteed to be fetched. ;;; adverb_part+inf-pass_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h1, LARG #h2 ] >, INPUT.RELS < [ LBL #h0, ARG0 #e0 & e, ARG1 #h1 ], [ LBL #h2, PRED #pred, ARG0 #e1, ARG2 #x0, ARG3 #u2 ], [ LBL #h2, PRED parg_d_rel, ARG0 e_untensed, ARG1 #e1, ARG2 #x0 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 p, ARG2 #x0, ARG3 #h1 ], [ LBL #h2, PRED #pred, ARG0 #e2 & e_untensed, ARG1 p, ARG2 #x0, ARG3 #u2 ], [ LBL #h0, PRED parg_d_rel, ARG0 e_untensed, ARG1 #e1, ARG2 #x0 ], [ LBL #h2, PRED parg_d_rel, ARG0 e_untensed, ARG1 #e2, ARG2 #x0 ] >, FLAGS.EQUAL < #e0 > ]. adverb_part+inf-pass_omtr := adverb_part+inf-pass_mtr & optional_mtr. ;;; ;;; @ Æren var i behold. >> The honor was intact. ;;; pp_ad_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #p2, ARG2 #x3 ], [ ARG0 #x3 & [ PERS 3, GRIND - ], RSTR #h4 ], [ LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #p2 ] > ]. pp_ad_omtr := pp_ad_mtr & optional_mtr. ;;; ;;; @ Abrams er i anmarsj. >> Abrams is on the way. ;;; pp_pp_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h0, LARG #h1 ] >, INPUT [ RELS < [ LBL #h2, ARG0 #e0, ARG1 #p0, ARG2 #x0 ], [ ARG0 #x0 & [ PERS 3, GRIND - ], RSTR #h0 ], [ LBL #h1, ARG0 #x0 ] > ], OUTPUT.RELS < [ LBL #h2, ARG0 #e0, ARG1 #p0, ARG2 #x0 ], [ ARG0 #x0 & [ PERS 3, GRIND - ], RSTR #h0 ], [ LBL #h1, ARG0 #x0 ] > ]. pp_pp_omtr := pp_pp_mtr & optional_mtr. ;;; ;;; @ til fortrengsel for >> at the expence of ;;; pp+prep_pp+prep_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h0, LARG #h1 ] >, INPUT.RELS < [ LBL #h2, ARG0 #e0, ARG1 #e1, ARG2 #x0 & x ], [ ARG0 #x0 & [ NUM sg, PERS 3, GRIND - ], RSTR #h0 ], [ LBL #h1, ARG0 #x0 ], [ LBL #h1, ARG0 #e2, ARG1 #x0, ARG2 #x1 & x ] >, OUTPUT.RELS < [ LBL #h2, ARG0 #e0, ARG1 #e1, ARG2 #x0 & x ], [ ARG0 #x0, RSTR #h0 ], [ LBL #h1, ARG0 #x0 ], [ LBL #h1, ARG0 #e2, ARG1 #x0, ARG2 #x1 & x ] > ]. pp+prep_pp+prep_omtr := pp+prep_pp+prep_mtr & optional_mtr. ;;; supertype adverb_lexical_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2 ] >, OUTPUT [ RELS < [ LBL #h5, ARG0 e_untensed, ARG1 #x3 ], [ LBL #h5, ARG0 #x3 & [ GRIND - ] ], [ PRED unspec_loc_rel, LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ PRED implicit_q_rel, ARG0 #x3, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. adverb_lexical_pp_omtr := adverb_lexical_pp_mtr & optional_mtr. ;;; ;;; @ Abrams har lenge blitt beundret. >> Abrams has long been admired. ;;; adverb_lexical_pp_time_mtr := adverb_lexical_pp_mtr & [ OUTPUT.RELS < relation, [ PRED time_n_rel ], ... > ]. adverb_lexical_pp_time_omtr := adverb_lexical_pp_time_mtr & optional_mtr. ;;; ;;; @ Stien går vestover. >> The path goes westwards. ;;; adverb_lexical_pp_place_mtr := adverb_lexical_pp_mtr & [ OUTPUT.RELS < relation, [ PRED place_n_rel ], ... > ]. adverb_lexical_pp_place_omtr := adverb_lexical_pp_place_mtr & optional_mtr. ;;; supertype (3-dec-07; ph) prep_lexical_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x9] >, OUTPUT [ RELS < [ LBL #h5, ARG0 e_untensed, ARG1 #x3, ARG2 #x9 ], [ LBL #h5, ARG0 #x3 & [ GRIND - ] ], [ PRED unspec_loc_rel, LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ PRED implicit_q_rel, ARG0 #x3, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ] ]. prep_lexical_pp_omtr := prep_lexical_pp_mtr & optional_mtr. ;;; no instantiations (3-dec-07; ph) prep_lexical_pp_time_mtr := prep_lexical_pp_mtr & [ OUTPUT.RELS < relation, [ PRED time_n_rel ], ... > ]. prep_lexical_pp_time_omtr := prep_lexical_pp_time_mtr & optional_mtr. ;;; ;;; @ Abrams går vestover veien. >> Abrams walks to the west on the road. ;;; prep_lexical_pp_place_mtr := prep_lexical_pp_mtr & [ OUTPUT.RELS < relation, [ PRED place_n_rel ], ... > ]. prep_lexical_pp_place_omtr := prep_lexical_pp_place_mtr & optional_mtr. ;;; no instantiations (3-dec-07; ph) prep_lexical_pp_place+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x4 & x ] >, OUTPUT [ RELS < [ LBL #h5, ARG0 e_untensed, ARG1 #x3 ], [ LBL #h5, ARG0 e_untensed, ARG1 #x3, ARG2 #x4 ], [ PRED place_n_rel, LBL #h5, ARG0 #x3 & [ GRIND - ] ], [ PRED unspec_loc_rel, LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ PRED implicit_q_rel, ARG0 #x3, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], FLAGS.EQUAL < #x4 > ]. prep_lexical_pp_place+pp_omtr := prep_lexical_pp_place+pp_mtr & optional_mtr. ;;; supertype lexical_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h5, ARG1 #x2 ], [ LBL #h5, ARG0 #x2 ], [ PRED "def_q_rel", LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ] >, OUTPUT.RELS < [ LBL #h5, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h5, ARG0 #x2 ], [ PRED implicit_q_rel, LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ] > ]. ;;; ;;; @ Abrams er her. >> Abrams is here. ;;; lexical_pp_place_mtr := lexical_pp_mtr & [ INPUT.RELS < relation, [ PRED "sted_rel" ], ... >, OUTPUT.RELS < relation, [ PRED place_n_rel ], ... > ]. lexical_pp_place_omtr := lexical_pp_place_mtr & optional_mtr. ;;; ;;; @ Abrams kommer i dag. >> Abrams arrives today. ;;; lexical_pp_time_mtr := lexical_pp_mtr & [ INPUT.RELS < relation, [ PRED "tid_rel" ], ... >, OUTPUT.RELS < relation, [ PRED time_n_rel ], ... > ]. lexical_pp_time_omtr := lexical_pp_time_mtr & optional_mtr. ;;; ;;; @ Abrams er der inne. >> Abrams is in there. ;;; lexical_pp_place_proper_pp_place_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h5, ARG1 #x2 ], [ PRED "sted_rel", LBL #h5, ARG0 #x2 ], [ PRED "unspec_loc_rel", LBL #h6, ARG0 #e7, ARG1 #e8, ARG2 #x2 ], [ PRED "def_q_rel", LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ] >, OUTPUT.RELS < [ LBL #h6, ARG0 #e7, ARG1 #e8, ARG2 #x2 ], [ LBL #h5, ARG0 e_untensed, ARG1 #x2, ARG2 u ], [ PRED place_n_rel, LBL #h5, ARG0 #x2 ], [ PRED implicit_q_rel, LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ] > ]. lexical_pp_place_proper_pp_place_omtr := lexical_pp_place_proper_pp_place_mtr & optional_mtr. ;;; ;;; @ Abrams går til fjells. >> Abrams walks in the mountains. ;;; lexical_pp_place_proper_pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG1 #x0 ], [ PRED "unspec_loc_rel", LBL #h0, ARG0 #e0, ARG1 #e1, ARG2 #x0 ], [ PRED "sted_rel", LBL #h1, ARG0 #x0 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #e1, ARG2 #x0 ], [ LBL #h1, ARG0 #x0 ] > ]. lexical_pp_place_proper_pp_omtr := lexical_pp_place_proper_pp_mtr & optional_mtr. ;;; ;;; @ Abrams sover oppe. >> Abrams sleeps upstairs. ;;; lexical_pp_place_adverb_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h5, ARG1 #x3 ], [ ARG0 #x3, RSTR #h4 ], [ PRED "unspec_loc_rel", LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ PRED "sted_rel", LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2 ] > ], FLAGS.EQUAL < #h4 > ]. lexical_pp_place_adverb_omtr := lexical_pp_place_adverb_mtr & optional_mtr. ;;; no instantiations lexical_pp_time_adverb_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h5, ARG1 #x3 ], [ ARG0 #x3, RSTR #h4 ], [ PRED "unspec_loc_rel", LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ PRED "tid_rel", LBL #h5, ARG0 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT [RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2 ] > ] ]. lexical_pp_time_adverb_omtr := lexical_pp_time_adverb_mtr & optional_mtr. ;;; ;;; @ Hytten ligger vest i fjellet. ;;; >> The cabin lies to the west in the mountain. ;;; prep_pp+prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x4 & x ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 #e1, ARG1 #e2, ARG2 #x3 ], [ ARG0 #x3 & [ PERS 3, GRIND - ], RSTR #h4 ], [ LBL #h5, ARG0 #x3 ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1, ARG2 #x4 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], FLAGS.EQUAL < #x4 > ]. prep_pp+prep_omtr := prep_pp+prep_mtr & optional_mtr. ;;; ;;; @ på fjellet >> at the mountain ;;; preposition_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #u2, ARG2 #u3 ] > ]. preposition_omtr := preposition_mtr & optional_mtr. ;;; ;;; @ Abrams går fremover. >> Abrams walks forward. ;;; prep_intr_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 a ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #u2 ] > ]. prep_intr_omtr := prep_intr_mtr & optional_mtr. ;;; ;;; @ Abrams går fremover isen. >> Abrams walks along the ice. ;;; prep_tran_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 #u3 & i ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #u2, ARG2 #u3 ] > , FLAGS.SUBSUME < #u3 > ]. prep_tran_omtr := prep_tran_mtr & optional_mtr. ;;; ;;; @ Abrams går bortom fjellet. >> Abrams walks over to the mountain. ;;; prep_prep+prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #u2, ARG2 u ], [ LBL #h1, ARG0 e_untensed, ARG1 #e1, ARG2 #u3 ] > ]. prep_prep+prep_omtr := prep_prep+prep_mtr & optional_mtr. ;;; ;;; @ Abrams går inn i hytta. >> Abrams walks into the cabin. ;;; prep+prep_prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2 ], [ LBL #h1, ARG1 #e1, ARG2 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e1, ARG1 #u2, ARG2 #u3 ] > ]. prep+prep_prep_omtr := prep+prep_prep_mtr & optional_mtr. ;;; No functioning instantiation. (midt+på_p) prep_deg+prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG1 #e1 ], [ LBL #h1, ARG0 #e1, ARG1 #u2, ARG2 #u3 ] > ]. prep_deg+prep_omtr := prep_deg+prep_mtr & optional_mtr. ;;; ;;; this will not separate between the two prepositions. (22-may-06; jtl) ;;; ;;; No instantiations ;;; prep_prep+np+prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x4 ], [ LBL #h5, ARG0 #x4, RSTR #h5], [ LBL #h6, ARG0 #x4], [ LBL #h6, ARG1 #x4, ARG2 #x3] >, HCONS < qeq & [ HARG #h5, LARG #h6 ] > ] ]. prep_prep+np+prep_omtr := prep_prep+np+prep_mtr & optional_mtr. ;;; ;;; @ Abrams går i retning isen. ;;; >> Abrams walks in the direction of the ice. ;;; prep_prep+relnp+prep_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x3 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e1, ARG1 #e2, ARG2 #x4 ], [ ARG0 #x4, RSTR #h5], [ LBL #h6, ARG0 #x4, ARG1 #x3 ] >, HCONS < qeq & [ HARG #h5, LARG #h6 ] > ] ]. prep_prep+relnp+prep_omtr := prep_prep+relnp+prep_mtr & optional_mtr. ;;; supertype preposition_subordination := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h3, LARG #h4 ] >, INPUT.RELS < [ LBL #h4, ARG0 #e0, ARG2 #x5 & x ], ... >, OUTPUT [ RELS < [ LBL #h12, ARG0 e_untensed & #e2, ARG2 #x5 ], [ PRED subord_rel, LBL #h6, ARG1 #h9, ARG2 #h11 ], [ PRED intersective_equate, ARG0 #e2, ARG1 #e0 ], [ PRED intersective_equate, ARG0 #h12, ARG1 #h4 ], ... >, HCONS < qeq & [ HARG #h3, LARG #h6 ], qeq & [ HARG #h9, LARG #h4 ], qeq & [ HARG #h11, LARG #h12 ] > ], FLAGS.EQUAL < #x5 > ]. ;;; ;;; @ Han synger uansett vær. >> He sings regardless of weather. ;;; preposition_subordination_mtr := preposition_subordination & [ INPUT.RELS < [] >, OUTPUT.RELS < [], [], [], [] > ]. preposition_subordination_omtr := preposition_subordination_mtr & optional_mtr. ;;; ;;; @ Han synger uansett vær. >> He sings regardless of the weather. ;;; preposition_subordination+the_mtr := preposition_subordination & [ INPUT.RELS < [ ARG2 #x0 ], [ PRED udef_q_rel, LBL #h0, ARG0 #x0, RSTR #h1, BODY #h2 ]>, OUTPUT.RELS < [], [], [], [], [ PRED _the_q_rel, LBL #h0, ARG0 #x0, RSTR #h1, BODY #h2 ] > ]. preposition_subordination+the_omtr := preposition_subordination+the_mtr & optional_mtr. ;;; ;;; @ Huset ligger værhardt til. >> The house lies exposed. ;;; adjective_subordination_mtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #e1 & e ] >, INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #e1 ] >, OUTPUT [ RELS < [ LBL #h1, ARG0 e_untensed & #e0 ], [ PRED subord_rel, ARG1 #h2, ARG2 #h3 ] >, HCONS < qeq & [ HARG #h2, LARG #h0 ], qeq & [ HARG #h3, LARG #h1 ] > ] ]. adjective_subordination_omtr := adjective_subordination_mtr & optional_mtr. ;;; no well-funktioning instantiation (inklusive_p) pp_appos_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e & #e1, ARG1 #u2, ARG2 #u3 ] >, OUTPUT.RELS < [ LBL #h1, PRED appos_rel, ARG0 #e1, ARG1 #u2, ARG2 #u3 ] > ]. ;;; ;;; @ Abrams og Browne >> Abrams and Browne ;;; conjunction_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h4, ARG0 #e5, L-HNDL #h0, L-INDEX #e1, R-HNDL #h2, R-INDEX #e3 ] >, OUTPUT.RELS < [ LBL #h4, ARG0 #e5, L-HNDL #h0, L-INDEX #e1, R-HNDL #h2, R-INDEX #e3 ] > ]. conjunction_omtr := conjunction_mtr & optional_mtr. ;;; ;;; @ Abrams synger når Browne sover. >> Abrams sings once Browne sleeps. ;;; subordination_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, MAIN #h2, SUBORD #h3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #h2, ARG2 #h3 ] > ]. subordination_omtr := subordination_mtr & optional_mtr. ;;; ;;; 'for' is analyzed as a conjunction in NorGram and as a subjunction in the ;;; ERG. (23-jan-08; ph) ;;; ;;; @ Abrams synger for Browne sleeps. >> Abrams sings for Browne sleeps. ;;; coord_subord_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, L-HNDL #h1, R-HNDL #h2 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 e_untensed, ARG1 #h1, ARG2 #h2 ] > ]. ;;; ;;; @ Petter synger, for Embla sover. >> Petter sings because Embla sleeps. ;;; conjunction_subordination_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, L-HNDL #h1, R-HNDL #h2 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #h1, ARG2 #h2 ] > ]. conjunction_subordination_omtr := conjunction_subordination_mtr & optional_mtr. ;;; ;;; in at least one case, a NorGram quantifier (`annen') is analyzed as an ;;; adjective in the ERG (`other'); quite possibly a genuine difference among ;;; the two languages. when converting a quantifier into an adjective, there ;;; will have be another quantifier to bind the variable (`bare_div_q' in most ;;; cases presumably); re-use the original QEQ and make sure the adjective is ;;; an intersective modifier. ;;; ;;; @ en del stier >> a few paths ;;; quantifier_adjective_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h1, LARG #h2 ] >, INPUT.RELS < [ LBL #h3, ARG0 #x2, RSTR #h1, BODY #h4 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x2, RSTR #h1, BODY #h4 ], [ LBL #h2, ARG0 e_untensed, ARG1 #x2 ] > ]. quantifier_adjective_omtr := quantifier_adjective_mtr & optional_mtr. ;;; ;;; @ en såpass fin tur >> such a nice trip ;;; quantifier_quantifier+deg_spec_mtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ HARG #h1, LARG #h2 ] >, INPUT.RELS < [ LBL #h3, ARG0 #x2, RSTR #h1, BODY #h4 ], [ LBL #h2 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x2, RSTR #h1, BODY #h4 ] > ]. quantifier_quantifier+deg_spec_omtr := quantifier_quantifier+deg_spec_mtr & optional_mtr. ;;; ;;; @ et loddrett stup >> a vertical cliff ;;; n+a_a_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #e5, ARG1 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #e5, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ] > ], OUTPUT.RELS < [ LBL #h3, ARG1 #x4 ] > ]. n+a_a_omtr := n+a_a_mtr & optional_mtr. ;;; ;;; some SL compounds, even when going to an N -- N TL structure, require an ;;; idiosyncratic translation, e.g. `båndtvang' --> `leash law'. ;;; ;;; @ båndtvang >> leash law n+n_n+n_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ] > ]. ;;; ;;; _fix_me_ ;;; not sure we will ever need the following, optional, variant of the above; ;;; after all, the point is that the compound elements get an idiosyncratic ;;; translation. (30-jun-04; oe) ;;; n+n_n+n_omtr := n+n_n+n_mtr & optional_mtr. ;;; ;;; a compound whose modifier is a nominalization in the target language. ;;; ;;; @ fiskeutstyret >> the fishing equipment ;;; n+n_nominalization+n_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ] >, OUTPUT.RELS < [ LBL #h8, ARG0 e_untensed & [ PROG + ] ], [ LBL #h3, ARG0 #x4 ], [ PRED nominalization_rel, LBL #h1, ARG0 #x2, ARG1 #h8 ] > ]. n+n_nominalization+n_omtr := n+n_nominalization+n_mtr & optional_mtr. ;;; ;;; @ hundekjøringen >> the dog racing ;;; n+n_n+nominalization_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 & [ NUM sg ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h8, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h3, ARG0 #x4, ARG1 #h8 ] > ]. n+n_n+nominalization_omtr := n+n_n+nominalization_mtr & optional_mtr. ;;; ;;; @ sengetøyet >> the bedding ;;; n+n_nominalization_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 & [ NUM sg ] ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ] > ], OUTPUT.RELS < [ LBL #h6, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h3, ARG0 #x4, ARG1 #h6 ] > ]. n+n_nominalization_omtr := n+n_nominalization_mtr & optional_mtr. ;;; ;;; SL N -- N to Tl Adj -- N, e.g. `kulturlandskap' --> `cultivated land'. ;;; ;;; @ kulturlandskapet >> the cultivated land ;;; n+n_adj+n_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ] > ], OUTPUT.RELS < [ LBL #h3, ARG0 e_untensed, ARG1 #x4 ], [ LBL #h3, ARG0 #x4 ] > ]. n+n_adj+n_omtr := n+n_adj+n_mtr & optional_mtr. ;;; ;;; a few NorGram compounds appear to be `lexicalized' in English: `turgåer' ;;; --> `hiker', for example. ditch the two-place compound relation, embedded ;;; quantifier, and nominal modifier relation. ;;; ;;; @ en tidsepoke >> an era ;;; n+n_n_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ] > ], OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ] > ]. n+n_n_omtr := n+n_n_mtr & optional_mtr. ;;; ;;; we also see a number of three-way compounds that we want to translate in ;;; an idiosyncratic manner, e.g. `fotturrute' --> `hiking trail'. ;;; _fix_me_ ;;; presumably, there should be additional types, parallel to the n*n universe. ;;; (15-oct-06; oe) ;;; ;;; @ en motorbåtrute >> a motorboat route ;;; n*n*n_n*n_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ] > ]. n*n*n_n*n_omtr := n*n*n_n*n_mtr & optional_mtr. ;;; ;;; @ en fotturrute >> a hiking trail ;;; n*n*n_nominalization*n_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h8, ARG0 e_untensed & [ PROG + ] ], [ LBL #h3, ARG0 #x4 ], [ PRED nominalization_rel, LBL #h1, ARG0 #x2, ARG1 #h8 ] > ]. n*n*n_nominalization*n_omtr := n*n*n_nominalization*n_mtr & optional_mtr. ;;; ;;; there is one instantiation of this rule (sommerskiløping_n). The transfer ;;; does not generate. (4-dec-07; ph) ;;; n*n*n_n*nominalization_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 & [ NUM sg ] ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ], [ LBL #h8, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h3, ARG0 #x4, ARG1 #h8 ] > ]. n*n*n_n*nominalization_omtr := n*n*n_n*nominalization_mtr & optional_mtr. ;;; no instantiations n*n*n_adj+n_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h7 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ], qeq & [ HARG #h7, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h3, ARG0 e_untensed, ARG1 #x4 ], [ LBL #h3, ARG0 #x4 ] > ]. n*n*n_adj+n_omtr := n*n*n_adj+n_mtr & optional_mtr. ;;; no instantiations n*n*n_n_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h7 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ], qeq & [ HARG #h7, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ] > ]. n*n*n_n_omtr := n*n*n_n_mtr & optional_mtr. ;;; no instantiations n*n*n_nominalization_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #x0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 & [ NUM sg ] ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x2, RSTR #h5 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x0 ], [ PRED "udef_q_rel", ARG0 #x0, RSTR #h7 ] >, HCONS < qeq & [ HARG #h5, LARG #h1 ], qeq & [ HARG #h7, LARG #h0 ] > ], OUTPUT.RELS < [ LBL #h6, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h3, ARG0 #x4, ARG1 #h6 ] > ]. n*n*n_nominalization_omtr := n*n*n_nominalization_mtr & optional_mtr. ;;; ;;; @ en nasjonalparkgrense >> a national park boundary ;;; adj*n*n_adj*n*n_mtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x2 ] >, INPUT.RELS < [ ARG0 #e0 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #e0 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e0 & e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ], [ LBL #h3, ARG0 #x4 ] > ]. adj*n*n_adj*n*n_omtr := adj*n*n_adj*n*n_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; the following introduce a new naming convention, `adj*n' for a compound ;;; comprised of those two categories (contrasted with `adj+n', which is simply ;;; the syntactic unit of a noun and an attribute adjective). once we complete ;;; the `mo' integration, we should re-organize this file anyway, and then go ;;; through the MTR types (and instances :-{) and make the naming consistent. ;;; (14-oct-06; oe) ;;; ;;; @ en halvdel >> a half ;;; adj*n_n_mtr := monotonic_mtr & [ INPUT.RELS < [ ARG0 #e2 & e], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #e2 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ] >, FLAGS.EQUAL < #e2 > ]. adj*n_n_omtr := adj*n_n_mtr & optional_mtr. ;;; ;;; @ tungmetallet >> the heavy metal ;;; adj*n_adj+n_mtr := monotonic_mtr & [ INPUT.RELS < [ ARG0 #e2 & e], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #e2 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #e2, ARG1 #x4 ], [ LBL #h3, ARG0 #x4 ] >, FLAGS.EQUAL < #e2 > ]. adj*n_adj+n_omtr := adj*n_adj+n_mtr & optional_mtr. ;;; ;;; @ en joggesko >> a sneaker ;;; v+n_n_mtr := monotonic_mtr & [ INPUT.RELS < [ ARG0 #e2 & e], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #e2 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ] >, FLAGS.EQUAL < #e2 > ]. v+n_n_omtr := v+n_n_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; the following assumes that the `udef_q' binding the modifier in the source ;;; compound remains a suitable quantifier in the target construction; probably ;;; true for mass noun modifiers, but not very well suited for auto-generation ;;; of transfer rules off the KF entries. (29-may-06; oe) ;;; ;;; no instantiations ;;; n+n_n+p+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x1 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h0, ARG0 #x1 ], [ LBL #h3, ARG0 e_untensed, ARG1 #x4, ARG2 #x1 ] > ]. n+n_n+p+n_omtr := n+n_n+p+n_mtr & optional_mtr. ;;; supertype n+n_n+p+q+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1 ], [ LBL #h3, ARG0 #x4 ], [ PRED "unspec_rel", LBL #h3, ARG1 #x4, ARG2 #x1 ], [ PRED "udef_q_rel", LBL #h5, ARG0 #x1, RSTR #h6, BODY #h7 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h3, ARG0 e_untensed, ARG1 #x4, ARG2 #x1 ], [ LBL #h5, ARG0 #x1, RSTR #h6, BODY #h7 ], [ LBL #h0, ARG0 #x1 ], ... > ]. ;;; ;;; @ frihetsfølelseen >> the sense of freedom ;;; n+n_n+p+q+n_sg_mtr := n+n_n+p+q+n_mtr & [ OUTPUT.RELS < [], [], [], [ LBL #h0, ARG0 #x1 ], [ PRED sg_mark, LBL #h0, ARG0 #x1 ] > ]. n+n_n+p+q+n_sg_omtr := n+n_n+p+q+n_sg_mtr & optional_mtr. ;;; ;;; @ deltakerantallet >> the number of participants ;;; n+n_n+p+q+n_pl_mtr := n+n_n+p+q+n_mtr & [ OUTPUT.RELS < [], [], [], [ LBL #h0, ARG0 #x1], [ PRED pl_mark, LBL #h0, ARG0 #x1 ] > ]. n+n_n+p+q+n_pl_omtr := n+n_n+p+q+n_pl_mtr & optional_mtr. ;;; ;;; sort of the inverse: Norwegian atomic predicates that need decomposing in ;;; English; various subtypes depending on the OUTPUT requirements. ;;; ;;; @ et småbarn >> a small child ;;; n_adj+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] > ]. n_adj+n_omtr := n_adj+n_mtr & optional_mtr. ;;; ;;; @ et rundt skue >> a panorama ;;; adj+n_n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #x2 ] > ]. adj+n_n_omtr := adj+n_n_mtr & optional_mtr. ;;; ;;; @ drengen >> the hired hand ;;; n_psp+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 u, ARG2 #x3 ], [ LBL #h1, ARG0 #x3 ], [ PRED parg_d_rel, LBL #h1, ARG1 #e2, ARG2 #x3 ] > ]. n_psp+n_omtr := n_psp+n_mtr & optional_mtr. ;;; ;;; The ERG generates "a friendly family car" - not "a family friendly car" ;;; (3-12-07; ph) a_n+a_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #x6 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #e2, ARG1 #x6 ], [ PRED compound_rel, LBL #h1, ARG1 #x6, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. a_n+a_omtr := a_n+a_mtr & optional_mtr. ;;; ;;; @ et kjemisk produkt >> a chemical product ;;; adj+n_n+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. adj+n_n+n_omtr := adj+n_n+n_mtr & optional_mtr. ;;; ;;; @ en lysegrønn plante >> a bright green plant ;;; adj+n_adj+n+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 e_untensed, ARG1 #x4 ], [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. adj+n_adj+n+n_omtr := adj+n_adj+n+n_mtr & optional_mtr. adj+n_n+n+n_min := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h6, ARG0 #x7 ], [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h3, ARG1 #x4, ARG2 #x7 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x4 ], [ ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ], [ PRED udef_q_rel, ARG0 #x7 & [ PERS 3, NUM sg, GRIND - ], RSTR #h8 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ], qeq & [ HARG #h8, LARG #h6 ] > ] ]. ;;; ;;; @ en selvbetjent hytte >> a self service cabin ;;; adj+n_n+n+n_mtr := adj+n_n+n+n_min & [ OUTPUT.RELS < [],[],[],[],[],[ PRED udef_q_rel ],... > ]. adj+n_n+n+n_omtr := adj+n_n+n+n_mtr & optional_mtr. ;;; ;;; @ en østnorsk hytte >> an east Norwegian cabin ;;; adj+n_n+pn+n_mtr := adj+n_n+n+n_min & [ OUTPUT.RELS < [],[ PRED named_rel ],[],[],[],[ PRED proper_q_rel ],... > ]. adj+n_n+pn+n_omtr := adj+n_n+pn+n_mtr & optional_mtr. ;;; ;;; @ en firhjuls sykkel >> a four wheeled bicycle ;;; adj+n_card+n+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, PRED card_rel, ARG0 i, ARG1 #x4 ], [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG0 e_untensed, ARG1 #x2, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM pl, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. adj+n_card+n+n_omtr := adj+n_card+n+n_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; the way this tends to be used is a two-step rewrite, e.g. ;;; ;;; `_isblå_a' --> `unpsec_mod' + `_isblå_n' ;;; ;;; which is then followed by an application of `n_n+n_mtr' to decompose the ;;; intermediate pseudo-predicate. if nothing else, such sequences of rules ;;; lead to spurious warning about unknown predicates, e.g. `_isblå_n' being ;;; reported as an invalid output according to the ERG SEM-I. either we would ;;; have to rewrite the rule to do the conversion in a single step, or we will ;;; need the `colour coding' mechanism on predicates (that we had contemplated ;;; a few items in the past), i.e. declare that some rules output SL (or even ;;; DMZ, i.e. purely transfer-internal) predicates. (21-dec-06; oe) ;;; ;;; @ en isblå himmel >> an ice blue sky ;;; adj_unspec+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e0, ARG1 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #x4 ], [ PRED unspec_mod_rel, LBL #h1, ARG0 #e0, ARG1 #x2, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. adj_unspec+n_omtr := adj_unspec+n_mtr & optional_mtr. ;;; ;;; @ en severdig vei >> a road worth seing ;;; adj_adj+v_rais_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x0 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #e0, ARG1 #h1 ], [ LBL #h2, ARG0 e & [ PROG + ], ARG1 p, ARG2 #x0 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ] ]. adj_adj+v_rais_omtr := adj_adj+v_rais_mtr & optional_mtr. ;;; ;;; @ en støl >> a mountain pasture ;;; n_n+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. n_n+n_omtr := n_n+n_mtr & optional_mtr. ;;; ;;; @ en flyttsame >> a Sami nomad ;;; n_pn+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ PRED named_rel, LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x4 ], [ PRED proper_q_rel, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. n_pn+n_omtr := n_pn+n_mtr & optional_mtr. ;;; ;;; @ syklingen >> the bicycling ;;; n_nominalization_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 & [ NUM sg ] ] >, OUTPUT.RELS < [ LBL #h3, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h1, ARG0 #x2, ARG1 #h3 ] > ]. n_nominalization_omtr := n_nominalization_mtr & optional_mtr. ;;; ;;; @ femårsperioden >> the five year period ;;; n_adj+n+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1 ] >, OUTPUT [ RELS < [ LBL #h2, ARG0 e_untensed, ARG1 #x3 ], [ LBL #h2, ARG0 #x3 & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h0, ARG0 #x1 ], [ PRED udef_q_rel, RSTR #h4, ARG0 #x3 ], [ PRED compound_rel, LBL #h0, ARG1 #x1, ARG2 #x3 ] >, HCONS < qeq & [ HARG #h4, LARG #h2 ] > ] ]. n_adj+n+n_omtr := n_adj+n+n_mtr & optional_mtr. ;;; ;;; @ en robåt >> a rowing boat ;;; n_nominalization+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 e_untensed & [ PROG + ] ], [ LBL #h1, ARG0 #x2 & [ PERS 3, NUM sg, GRIND - ] ], [ PRED nominalization_rel, LBL #h7, ARG0 #x8, ARG1 #h3 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x8 ], [ PRED udef_q_rel, RSTR #h9, ARG0 #x8 ] >, HCONS < qeq & [ HARG #h9, LARG #h7 ] > ] ]. n_nominalization+n_omtr := n_nominalization+n_mtr & optional_mtr. ;;; ;;; @ forgården >> the front building ;;; n_n+nominalization_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 & [ NUM sg ] ] >, OUTPUT [ RELS < [ LBL #h7, ARG0 #x8 & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h3, ARG0 e_untensed & [ PROG + ] ], [ PRED nominalization_rel, LBL #h1, ARG0 #x2, ARG1 #h3 ], [ PRED compound_rel, LBL #h1, ARG1 #x2, ARG2 #x8 ], [ PRED udef_q_rel, RSTR #h9, ARG0 #x8 ] >, HCONS < qeq & [ HARG #h9, LARG #h7 ] > ] ]. n_n+nominalization_omtr := n_n+nominalization_mtr & optional_mtr. ;;; ;;; @ en nedbeiting >> a grazing down ;;; n_nominalization+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT.RELS < [ LBL #h3, ARG0 e_untensed & [ PROG + ] ], [ LBL #h1, ARG0 e_untensed, ARG1 #x2 ], [ PRED nominalization_rel, LBL #h1, ARG0 #x2, ARG1 #h3 ] > ]. n_nominalization+pp_omtr := n_nominalization+pp_mtr & optional_mtr. ;;; ;;; _fix_me_ ;;; NorGram treats `Bergen Turlag' et al. as a single name, while the ERG opts ;;; to decompose these. (24-jul-04; oe) ;;; ;;; no instantiations ;;; name_name+name_mtr := monotonic_mtr & [ INPUT.RELS < [ PRED "named_rel", LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ PRED named_rel, LBL #h3, ARG0 #x4 & [ NUM sg ] ], [ PRED named_rel, LBL #h1, ARG0 #x2 ], [ PRED compound_name_rel, LBL #h1, ARG0 e_untensed, ARG1 #x4, ARG2 #x2 ], [ PRED "udef_q_rel", ARG0 #x4, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. ;;; ;;; _fix_me_ ;;; vaguely related, these should possibly be decomposed in NorGram already. ;;; (18-dec-06; oe) ;;; ;;; @ Dovrestien >> the Dovre path ;;; name_name*n_mtr := monotonic_mtr & [ CONTEXT [ HCONS < qeq & [ HARG #h3, LARG #h5 ] > ], INPUT [ RELS < [ PRED "named_rel", LBL #h5, ARG0 #x2 ], [ PRED "proper_q_rel", LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ] > ], OUTPUT [ RELS < [ PRED named_rel, LBL #h10, ARG0 #x7 & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h5, ARG0 #x2 ], [ PRED _the_q_rel, LBL #h1, ARG0 #x2, RSTR #h3, BODY #h4 ], [ PRED compound_rel, LBL #h5, ARG0 e_untensed, ARG1 #x2, ARG2 #x7 ], [ PRED proper_q_rel, ARG0 #x7, RSTR #h8 ] >, HCONS < qeq & [ HARG #h8, LARG #h10 ] > ] ]. ;;; ;;; @ Øst-Jotunheimen >> Eastern Jotunheimen ;;; name_adj+name_mtr := monotonic_mtr & [ INPUT [ RELS < [ PRED "named_rel", LBL #h0, ARG0 #x0 ] > ], OUTPUT [ RELS < [ PRED "named_rel", LBL #h0, ARG0 #x0 ], [ LBL #h0, ARG0 e_untensed, ARG1 #x0 ] > ] ]. ;;; ;;; some nouns are analysed as relational in the source language, but then have ;;; a plain PP modifier in the target language; since NorGram right now has a ;;; strong preference against PP modifiers inside of NPs, this pattern could ;;; turn out relatively common. (19-jul-04; oe) ;;; ;;; ;;; The instantiation of this type (bok_book+about_n) does not seem to trigger. ;;; (4-dec-07; ph) n_n+pp_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1, ARG1 #x2 ] >, OUTPUT.RELS < [ LBL #h0, ARG0 #x1 ], [ LBL #h0, ARG0 e_untensed, ARG1 #x1, ARG2 #x2 ] > ]. n_n+pp_omtr := n_n+pp_mtr & optional_mtr. ;;; ;;; The instantiation of this type (stenrøis_n) does not have an input. ;;; (4-dec-07; ph) n_n+p+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #x1 ], [ LBL #h3, ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h0, ARG0 e_untensed, ARG1 #x1, ARG2 #x4 ], [ PRED udef_q_rel, ARG0 #x4, RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. n_n+p+n_omtr := n_n+p+n_mtr & optional_mtr. ;;; supertype n_n+p+q+n_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1 ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #x1 ], [ LBL #h0, ARG0 e_untensed, ARG1 #x1, ARG2 #x4 ], [ ARG0 #x4, RSTR #h5 ], [ LBL #h3, ARG0 #x4 & [ PERS 3, GRIND - ] ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. ;;; ;;; @ et kvarter >> a quarter of an hour ;;; n_n+p+q+n_sg_mtr := n_n+p+q+n_mtr & [ OUTPUT.RELS < [], [ ARG2 [ NUM sg ] ], ... > ]. n_n+p+q+n_sg_omtr := n_n+p+q+n_sg_mtr & optional_mtr. ;;; ;;; @ en røys >> a heap of stones ;;; n_n+p+q+n_pl_mtr := n_n+p+q+n_mtr & [ OUTPUT.RELS < [], [ ARG2 [ NUM pl ] ], ... > ]. n_n+p+q+n_pl_omtr := n_n+p+q+n_pl_mtr & optional_mtr. ;;; ;;; a group of nouns analyzed as `measure' classifiers in NorGram, while the ;;; corresponding ERG analyses treat the noun as a head that is parasitic on ;;; the (semantic) agreement properties of its complement, e.g. ;;; ;;; - den typen fjell --> this type of mountain ;;; - en trofast skare bestyrere --> a loyal line of wardens ;;; ;;; _fix_me_ ;;; for some reason, no MTR variables are created for PRED values, unless the ;;; co-references are redundantly repeated in each instance definition :-{. ;;; (3-jan-07; oe) ;;; ;;; @ et glass steiner >> a glass of stones ;;; measure_classifier_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h0, ARG0 #x0 & x ], [ PRED #q, LBL #h7, ARG0 #x0, RSTR #h8 & h, BODY #h9 ], [ PRED #n, LBL #h4, ARG0 #x1 & x ], [ PRED "measure_of_rel", ARG0 #x0, ARG1 #x1 & x ], [ PRED "~_q_rel", LBL #h1, ARG0 #x1, RSTR #h2 & h, BODY #h3 ] >, HCONS < qeq & [ HARG #h2, LARG #h4 ], qeq & [ HARG #h8, LARG #h0 ] > ], OUTPUT [ RELS < [ LBL #h10, ARG0 #x1, ARG1 #x2 ], [ PRED #q, LBL #h7, ARG0 #x1, RSTR #h11, BODY #h9 ], [ PRED #n, LBL #h6, ARG0 #x2 & [ PERS 3, GRIND - ] ], [ PRED "udef_q_rel", LBL #h1, ARG0 #x2, RSTR #h5, BODY #h3 ], [ PRED sg_mark, LBL #h10, ARG0 #x1 ], [ PRED intersective_equate, ARG0 #x1, ARG1 #x0 ], [ PRED intersective_equate, ARG0 #h10, ARG1 #h0 ], [ PRED intersective_num_equate, ARG0 #x2, ARG1 #x1 ], [ PRED intersective_equate, ARG0 #h6, ARG1 #h4 ] >, HCONS < qeq & [ HARG #h5, LARG #h6 ], qeq & [ HARG #h11, LARG #h10 ] > ], FLAGS.EQUAL < #x0, #x1, #h2, #h8 > ]. ;;; ;;; @ en temmelig attraktiv rute >> a fairly attractive route ;;; degree_specifier_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #i2, ARG1 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #i2, ARG1 #u3 ] > ]. degree_specifier_omtr := degree_specifier_mtr & optional_mtr. ;;; ;;; some input relations are just redundant, e.g. selected-for prepositions. ;;; ;;; @ Abrams sover jo. >> Abrams sleeps. ;;; elision_mtr := monotonic_mtr & [ INPUT.RELS < relation > ]. elision_omtr := elision_mtr & optional_mtr. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; pre-transfer fix-up: various corrections that, in my view, should be made ;;; in the analysis grammar, at some point. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; _fix_me_ ;;; to get gender `agreement' with pronominal antecedents, e.g. in `Han vasker ;;; sin bil', make sure that GEND is propagated to the anaphor; this would ;;; maybe better be done in the analysis grammar. (30-apr-05; oe) ;;; pron_identity_nmtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED "pron_rel", ARG0 #x0 ], [ PRED "identical_rel", LBL #h1, ARG0 #x0, ARG1 #x2 ] >, INPUT.RELS < [ PRED "pron_rel", LBL #h1, ARG0 #x2 & [ GEND no_gender ] ] >, OUTPUT.RELS < [ PRED "pron_rel", LBL #h1, ARG0 #x2 ] > ]. n_n+n_nmtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #x2 ] >, OUTPUT [ RELS < [ LBL #h3, ARG0 #x4 ], [ LBL #h1, ARG0 #x2 ], [ PRED "unspec_rel", LBL #h1, ARG1 #x2, ARG2 #x4 ], [ PRED "udef_q_rel", ARG0 #x4 & [ PERS 3, NUM sg, GRIND - ], RSTR #h5 ] >, HCONS < qeq & [ HARG #h5, LARG #h3 ] > ] ]. n_n+n_onmtr := n_n+n_nmtr & optional_mtr. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; post-transfer fix-up: insertion of language-specific EPs, e.g. selected-for ;;; prepositions with relational nouns and adjectives and classifier insertion. ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; equate_x_cmtr := monotonic_mtr & [ CONTEXT.RELS < [ PRED equate, ARG0 #e1, ARG1 #e2 ] >, INPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #i3, ARG1 #e2 ] >, FILTER.RELS < [ PRED equate_mark, LBL #h0, ARG0 #i3 ] >, OUTPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #i3, ARG1 #e1 ], [ PRED equate_mark, LBL #h0, ARG0 #i3 ] > ]. relational_adjective_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG2 #x1 & x & [ MARK test ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG2 #x1 ] >, FLAGS.SUBSUME < #x1 > ]. relational_adjective_oamtr := relational_adjective_amtr & optional_mtr. relational_noun_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG1 #x1 & x & [ MARK test ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG2 #x1 ] >, FLAGS.SUBSUME < #x1 > ]. arg1_v_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG0 #e1 & [ MARK test ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG1 #e1 ] > ]. arg12_v_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG2 #x1 & x & [ MARK test ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG2 #x1 ] >, FLAGS.SUBSUME < #x1 > ]. arg123_v_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h1, ARG3 #x1 & x & [ MARK test ] ] >, OUTPUT.RELS < [ LBL #h1, ARG0 e_untensed, ARG2 #x1 ] >, FLAGS.SUBSUME < #x1 > ]. arg12_v_prtcl_amtr := arg12_v_amtr & [ CONTEXT.RELS < [ ARG0 #e1 ] >, OUTPUT.RELS < [ ARG1 #e1 ] > ]. decomposed_quantifier_amtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #x1, RSTR #h2, BODY #h3 ] >, CONTEXT [ RELS < [ LBL #h4, ARG0 #x1 & x ] >, HCONS < qeq & [ HARG #h2, LARG #h4 ] > ], OUTPUT.RELS < [ LBL #h4, ARG0 e_untensed, ARG1 #x1 ], [ PRED udef_q_rel, LBL #h0, ARG0 #x1, RSTR #h2, BODY #h3 ] >, FLAGS.EQUAL < #x1 > ]. count_mark_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #x0 & x ] >, FILTER.RELS < [ PRED count_noun_mark, LBL #h0, ARGM #x0 ] >, OUTPUT.RELS < [ PRED count_noun_mark, LBL #h0, ARG0 a, ARGM #x0 ] >, FLAGS.EQUAL < #x0 > ]. mass_mark_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #x0 & x ] >, FILTER.RELS < [ PRED mass_noun_mark, LBL #h0, ARGM #x0 ] >, OUTPUT.RELS < [ PRED mass_noun_mark, LBL #h0, ARG0 a, ARGM #x0 ] >, FLAGS.EQUAL < #x0 > ]. plural_mark_amtr := monotonic_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #x0 & x ] >, FILTER.RELS < [ PRED plural_noun_mark, LBL #h0, ARGM #x0 ] >, OUTPUT.RELS < [ PRED plural_noun_mark, LBL #h0, ARG0 a, ARGM #x0 ] >, FLAGS.EQUAL < #x0 > ]. ;;; ;;; _fix_me_ ;;; for whatever obscure reason, this type is not quite doing what i would want ;;; it to; at least when applied with a predicate variable (e.g. as a catch-all ;;; insertion of `_unit_n_1' as the classifier), the rules cycle; see `erg.mtr' ;;; for what i ended up doing tonight, given that there is very limited time ;;; and lots more juleøl. (22-dec-06; oe) ;;; #| classifier_insertion_amtr := monotonic_mtr & [ CONTEXT.HCONS < qeq & [ LARG #h0 ] >, INPUT.RELS < [ PRED #pred, LBL #h0, ARG0 #x1 & [ NUM pl ] ] >, OUTPUT [ RELS < [ LBL #h0, ARG0 #x1, ARG1 #x2 ], [ PRED #pred, LBL #h4, ARG0 #x2 & [ PERS 3, NUM sg, GRIND - ] ], [ PRED udef_q_rel, LBL h, ARG0 #x2, RSTR #h3, BODY h ] >, HCONS < qeq & [ HARG #h3, LARG #h4 ] > ] ]. |# ;;; ;;; DPF 17-jul-06 - Convert n+n compound to adj+n in final fix-up ;;; Note that this rule has much in common with the general n+n_adj+n_mtr rule ;;; but needs to mention the ERG-specific compound_rel. ;;; compass_compound_amtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h2, ARG0 #x2 ], [ PRED compound_rel, LBL #h1, ARG1 #x1, ARG2 #x2 ], [ ARG0 #x2, RSTR #h3 ] >, HCONS < qeq & [ HARG #h3, LARG #h2 ] > ], OUTPUT [ RELS < [ LBL #h1, ARG1 #x1 ] >, HCONS < > ] ].