;;; Hey, emacs(1), this is -*- Mode: TDL; Coding: utf-8; -*- got it? ;;; ;;; @ 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 ] > ]. ta_X_fatt_mtr := monotonic_mtr & [ INPUT [ RELS < [ LBL #h5, ARG0 #x3 ] , [ PRED "_ta*fatt_v_rel", LBL #h0, ARG0 #e1, ARG1 #x2, ARG2 #x3 & x ], [ PRED "def_q_rel", ARG0 #x3, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG #h5 ] > ], OUTPUT [ RELS < [ LBL #h7, ARG1 #x2 ], [ PRED "_start_v_1_rel", LBL #h0, ARG0 #e1, ARG1 #h6 ] >, HCONS < qeq & [ HARG #h6, LARG #h7 ] > ], FLAGS.EQUAL < #x3 > ]. ta_X_fatt_omtr := ta_X_fatt_mtr & optional_mtr. ;;; ;;; focal adverbs in NorGram are analyzed as part of NPs, e.g. `allerede ti ;;; biler ankom'. for some, there are suitable degree specifiers available in ;;; English, others we need to convert to adverbs predicated over the embedding ;;; clause. maybe we see a genuine difference between the languages here: in ;;; `Abrams ga Browne også epler', the `også' is forced into the NP. ;;; according to dan, there is no corresponding syntactic structure in English ;;; for `also' et al. ;;; focal_adverb_degree_specifier_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #u3 ], [ PRED focal_mark, LBL #h1, ARG0 #e2, ARG1 #u3 ] >, FILTER.RELS < [ PRED focal_name_mark, LBL #h1, ARG0 #e2, ARG1 #u3 ] >, OUTPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #u3 ] > ]. focal_adverb_degree_specifier_omtr := focal_adverb_degree_specifier_mtr & optional_mtr. focal_adverb_core_mtr := monotonic_mtr & [ CONTEXT [ RELS < [ LBL [ SCRATCH one ], ARG0 #e1 & e ], [ PRED quant_rel, LBL #h3, ARG0 #x2 & x, RSTR #h4 ] >, HCONS < qeq & [ HARG #h4, LARG [ SCRATCH two ] ] > ], INPUT.RELS < [ LBL #h3, ARG0 #e2, ARG1 #u5 ], [ PRED focal_mark, LBL #h3, ARG0 #e2, ARG1 #u5 ] >, FLAGS.EQUAL < #e1, #x2 > ]. focal_adverb_core_scopal_mtr := focal_adverb_core_mtr & [ CONTEXT.RELS < [ LBL #h0 ], ... >, INPUT.HCONS < qeq & [ LARG #h0 ] > ]. focal_adverb_intersective_arg1_mtr := focal_adverb_core_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #e0, ARG1 #x2 ], [ ARG0 #x2 ] >, INPUT.RELS < [ ARG0 #e4 ], ... >, OUTPUT.RELS < [ LBL #h0, ARG0 #e4, ARG1 #e0 ] > ]. focal_adverb_intersective_arg2_mtr := focal_adverb_core_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #e0, ARG2 #x2 ], [ ARG0 #x2 ] >, INPUT.RELS < [ ARG0 #e4 ], ... >, OUTPUT.RELS < [ LBL #h0, ARG0 #e4, ARG1 #e0 ] > ]. focal_adverb_intersective_arg3_mtr := focal_adverb_core_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #e0, ARG3 #x2 ], [ ARG0 #x2 ] >, INPUT.RELS < [ ARG0 #e4 ], ... >, OUTPUT.RELS < [ LBL #h0, ARG0 #e4, ARG1 #e0 ] > ]. focal_adverb_intersective_arg4_mtr := focal_adverb_core_mtr & [ CONTEXT.RELS < [ LBL #h0, ARG0 #e0, ARG4 #x2 ], [ ARG0 #x2 ] >, INPUT.RELS < [ ARG0 #e4 ], ... >, OUTPUT.RELS < [ LBL #h0, ARG0 #e4, ARG1 #e0 ] > ]. focal_adverb_scopal_arg1_mtr := focal_adverb_core_scopal_mtr & [ CONTEXT.RELS < [ ARG1 #x2 ], [ ARG0 #x2 ] >, INPUT [ RELS < [ ARG0 #e4 ], ... >, HCONS < qeq & [ HARG #h6, LARG #h0 ] > ], OUTPUT [ RELS < [ LBL #h7, ARG0 #e4, ARG1 #h8 ] >, HCONS < qeq & [ HARG #h6, LARG #h7 ], qeq & [ HARG #h8, LARG #h0 ] > ] ]. focal_adverb_scopal_arg2_mtr := focal_adverb_core_scopal_mtr & [ CONTEXT.RELS < [ ARG2 #x2 ], [ ARG0 #x2 ] >, INPUT [ RELS < [ ARG0 #e4 ], ... >, HCONS < qeq & [ HARG #h6, LARG #h0 ] > ], OUTPUT [ RELS < [ LBL #h7, ARG0 #e4, ARG1 #h8 ] >, HCONS < qeq & [ HARG #h6, LARG #h7 ], qeq & [ HARG #h8, LARG #h0 ] > ] ]. focal_adverb_scopal_arg3_mtr := focal_adverb_core_scopal_mtr & [ CONTEXT.RELS < [ ARG3 #x2 ], [ ARG0 #x2 ] >, INPUT [ RELS < [ ARG0 #e4 ], ... >, HCONS < qeq & [ HARG #h6, LARG #h0 ] > ], OUTPUT [ RELS < [ LBL #h7, ARG0 #e4, ARG1 #h8 ] >, HCONS < qeq & [ HARG #h6, LARG #h7 ], qeq & [ HARG #h8, LARG #h0 ] > ] ]. focal_adverb_scopal_arg4_mtr := focal_adverb_core_scopal_mtr & [ CONTEXT.RELS < [ ARG4 #x2 ], [ ARG0 #x2 ] >, INPUT [ RELS < [ ARG0 #e4 ], ... >, HCONS < qeq & [ HARG #h6, LARG #h0 ] > ], OUTPUT [ RELS < [ LBL #h7, ARG0 #e4, ARG1 #h8 ] >, HCONS < qeq & [ HARG #h6, LARG #h7 ], qeq & [ HARG #h8, LARG #h0 ] > ] ]. focal_ditch_mtr := monotonic_omtr & [ INPUT.RELS < [ LBL #h1, ARG0 #e2, ARG1 #u3 ], [ PRED focal_mark, LBL #h1, ARG0 #e2, ARG1 #u3 ] > ]. ;;; ;;; in Norwegian, all adjectives can in principle be used adverbially; that is ;;; not the case in English, where at times we need to convert adjectival event ;;; modifiers into `manner' PPs. ;;; ;;; @ Abrams går avslappet. >> Abrams walks in a relaxed manner. ;;; adjective_adverbial_mtr := monotonic_mtr & [ INPUT.RELS < [ LBL #h0, ARG0 #e0 & e, ARG1 #e1 & e ] >, OUTPUT [ RELS < [ LBL #h2, ARG0 e, ARG1 #x0 & x & [ PERS 3, NUM sg, GRIND - ] ], [ LBL #h0, PRED _in_p_rel, ARG0 #e0, ARG1 #e1, ARG2 #x0 ], [ PRED _a_q_rel, ARG0 #x0, RSTR #h1 ], [ LBL #h2, PRED "_manner_n_of_rel", ARG0 #x0 ] >, HCONS < qeq & [ HARG #h1, LARG #h2 ] > ], FLAGS.EQUAL < #e1 > ]. adjective_adverbial_omtr := adjective_adverbial_mtr & optional_mtr.