;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; Authors: ;;; 1997-2000 Walter Kasper & Stefan Müller ;;; 2000-2002 Stefan Müller ;;; 2002-2006 Berthold Crysmann ;;; Copyright: DFKI GmbH comp-am-lex := mw-complex-2-rule & adj-sign. mw-complex-2-rule-collect-constr-2-liszt := mw-complex-2-rule & collect-constr-2-liszt. mw-complex-3-rule-collect-constr-3-liszt := mw-complex-3-rule & collect-constr-3-liszt. mw-complex-2-rule-collect-2-liszt := mw-complex-2-rule & collect-2-liszt. cle-binary-rule-collect-2-liszt := cle-binary-rule & collect-2-liszt. complete-cle-binary-rule-collect-2-liszt := cle-binary-rule-collect-2-liszt & [ synsem complete-synsem & [ que ] ]. cle-binary-rule-collect-constr-2-liszt := cle-binary-rule & collect-constr-2-liszt. mw-complex-2-rule-mod-adv-sign := mw-complex-2-rule & collect-2-liszt & mod-adv-sign. interjection2-lex := mw-complex-underived-2-rule & mw-interjection-sign. interjection3-lex := mw-complex-underived-3-rule & mw-interjection-sign. q-tag-2-lex := mw-complex-underived-2-rule & mw-q-tag-sign. super-ein-bisschen-lex := mw-complex-underived-2-rule & [ ARGS <[ SYNSEM.LOC.CONT.KEY.PRED "_ein_q_rel", MORPH , head dx-ein-null ] !>], [morph ]> ]. ein-bisschen-non-nominal-lex := super-ein-bisschen-lex & [ ARGS <[MORPH ], [] > ]. ein-bisschen-lex := ein-bisschen-non-nominal-lex & [ synsem pre-grad-adv-synsem ]. ein-bisschen-mod-lex := ein-bisschen-non-nominal-lex & [ synsem complete-mod-grad-synsem ]. ein-bisschen-mass-grad-det-lex := super-ein-bisschen-lex & [ ARGS <[MORPH ], []>, synsem mass-grad-det-synsem & [ loc.cat.head.infl #infl ] ]. ein-paar-det-lex := mw-complex-underived-2-rule & [ ARGS <[MORPH , head dx-ein-null & [ INFL.NP-LPE - ] ] !>], [morph ] !>]>, synsem det-synsem & [ loc.cat.head.infl.uniagr.png p-p-g ] ]. uhrzeit-2-1 := mw-complex-underived-2-rule & [ ARGS <[MORPH ], [morph ]>, synsem complete-ref-comp-noun-synsem & [ loc [ cont mrs & [ KEY #key & computed_ctime_rel & [ HOUR #val, FUN 'clocktime-hm-minus-fun, LBL #nhand, ARG0 #index ], hook [INDEX #index, ltop #handel], RELS , HCONS ], uniagr nda-n-g ] ] ]. uhrzeit-2-1-v-mod := mw-complex-underived-2-rule & [ ARGS <[MORPH ], [morph ]>, synsem complete-verb-mod-pp-synsem & [ loc.cont mod-pp-sem-type & [ KEY #key, RELS , HCONS ] ] ]. uhrzeit-2-1-n-mod := mw-complex-underived-2-rule & [ args <[MORPH ], [morph ]>, synsem complete-noun-mod-pp-synsem & [ loc.cont mod-pp-sem-type & [ KEY #key, RELS , HCONS ] ] ]. ;; Instance has to specify PRED of prep minute-hour-rule := self-less-rule-type & collect-constr-3-liszt & [args <[synsem cardinal-number-synsem & [loc.cont.modcont [hook [ltop #mlbl, index #marg0]]] ], [synsem full-noun-mod-preposition-synsem & [loc.cont.key [LBL #ltop, ARG0 event & [e no_tam], ARG1 #ind, ARG2 #marg0]], lr.basic 'yes], [synsem complete-ref-comp-noun-synsem & [loc [cont [hook [ltop #ltop, index #ind], key.pred "clock_time_rel"]]]] >, synsem complete-ref-comp-noun-synsem & [loc [cat.spr <>, cont [hook [ltop #ltop, index #ind]]], nonloc undef-nonlocs], c-cont [RELS , HCONS ]]. hour-minute-rule := self-less-rule-type & collect-constr-2-liszt & inher-nonloc2 & [args <[synsem complete-ref-comp-noun-synsem & [loc [cont [hook [ltop #ltop, index #ind], key.pred "clock_time_rel"]]]], [synsem cardinal-number-synsem & [loc.cont.modcont [hook [ltop #mlbl, index #marg0]]] ] >, synsem complete-ref-comp-noun-synsem & [loc [cat.spr <>, cont [hook [ltop #ltop, index #ind]]]], c-cont [RELS , HCONS ]]. clocktime-v-mod-rule := self-less-rule-type & collect-constr-1-liszt & inher-nonloc & [args <[synsem complete-ref-comp-noun-synsem & [loc [cont [hook.index #arg2, key.pred "clock_time_rel"] ]]]>, synsem complete-verb-mod-pp-synsem & [loc [ cont mod-pp-sem-type & [ HOOK [INDEX #arg0, LTOP #l, XARG #arg1], KEY #key & um_rel & [ LBL #l, ARG1 #arg1, ARG0 #arg0, ARG2 #arg2 ]]]], c-cont [RELS , HCONS ]]. clocktime-n-mod-rule := self-less-rule-type & collect-constr-1-liszt & inher-nonloc & [args <[synsem complete-ref-comp-noun-synsem & [loc [cont [hook.index #arg2, key.pred "clock_time_rel"] ]]]>, synsem complete-noun-mod-pp-synsem & [loc [ cont mod-pp-sem-type & [ HOOK [INDEX #arg0, LTOP #l, XARG #arg1], KEY #key & um_rel & [ LBL #l, ARG1 #arg1, ARG0 #arg0, ARG2 #arg2 ]]]], c-cont [RELS , HCONS ]]. ;; ein uhr uhrzeit-2-2 := mw-complex-2-rule & [ args <[MORPH , SYNSEM.loc.cont.key.carg #val], [synsem.loc.cont.key [pred "_uhr_n_rel"], lr [lr_inflected -], morph , key-arg + ] !>]>, synsem complete-verb-mod-pp-synsem & [ loc [ cont mod-pp-sem-type & [ KEY #key, HOOK [XARG #arg1, INDEX #arg0 ], RELS , HCONS ] ] ] ]. uhrzeit-3-1-viertel-vor-nach-sieben := mw-complex-underived-3-rule-prep-2-rule & [ args <[MORPH , HEAD px-all ]!>], [morph ], [morph ]>, synsem complete-ref-comp-noun-synsem & [ loc [ cont mrs & [ KEY #key & computed_ctime_rel & [ ARG0 #index & [ SORT time ], LBL #nhand, HOUR #val, MINUTE "15" ], hook [ltop #handel, INDEX #index], RELS , HCONS ], uniagr nda-n-g ] ] ]. uhrzeit-3-1-drei-vor-nach-sieben := mw-complex-underived-3-rule-prep-2-rule & [ ARGS <[MORPH ], [morph ], [morph ]>, synsem complete-ref-comp-noun-synsem & [ loc [ cont mrs & [ KEY #key & computed_ctime_rel & [ ARG0 #index & [ SORT time ], LBL #nhand, HOUR #val, MINUTE #minuteval1 ], hook [ltop #handel, INDEX #index], RELS , HCONS ], uniagr nda-n-g ] ] ]. uhrzeit-3-3 := mw-complex-3-rule & [ args <[MORPH ], [morph , key-arg + ] !>], [morph ]>, synsem complete-verb-mod-pp-synsem & [ loc.cont mod-pp-sem-type & [ KEY #key, RELS , HCONS ] ] ]. anfang-naechster-woche-1-type := inher-anc-binary & cle-binary-rule-collect-constr-2-liszt & [ synsem complete-ref-comp-noun-synsem & [ loc [ cat.head.cas #cas, coord -, cont [ hook [index [png #png ]], KEY #key ], uniagr #uniagr & [png #png] ] ], ARGS < [ synsem.loc [ cat.head.cas #cas, CONT common-noun-sem-type & [ hook [index [png #png ]], KEY #key ], UNIAGR #uniagr ], key-arg + ], sign & [ SYNSEM ref-comp-noun-synsem & [ loc [ cat.subcat [list #last & *null*, last #last] , cont.hook.index.sort time ] ] ] > ]. anfang-naechster-woche-2-type := inher-anc-binary & cle-binary-rule-collect-constr-2-liszt & [ synsem complete-time-mod-noun-synsem & [ loc [ cat [ head [ cas #cas, MOD.loc.CONT #modcont ] ], cont [ KEY #key, hook.index [png #png ], MODCONT #modcont ], uniagr #uniagr] ], ARGS < [ synsem.loc [ cat.head.cas #cas, CONT common-noun-sem-type & [ hook [index [png #png] ], KEY #key], UNIAGR #uniagr ], key-arg + ], sign & [ SYNSEM ref-comp-noun-synsem & [ LOC.cat.SUBCAT ] ] > ]. anfang-naechster-woche-1-spr := anfang-naechster-woche-1-type & [ synsem.loc.cont [ hook [INDEX #index1, ltop #uhand1], KEY.ARG2 #possr1 ], C-CONT [ RELS , HCONS ], ARGS < [ synsem.loc.CONT.hook [ INDEX #index1, ltop #handle1 ] ], [ SYNSEM.LOC [ cat.spr < det-synsem & [ loc.cat [ head.infl.np-decl 'st, drop-det - ] ] >, CONT.hook [ INDEX #possr1 & [ SORT time ], ltop #arghandle ] ] ] > ]. anfang-naechster-woche-1-no-spr := anfang-naechster-woche-1-type & [ synsem.loc.cont [ hook [INDEX #index2, ltop #uhand2], KEY.ARG2 #possr2 ], C-CONT [ RELS , HCONS ], ARGS < [ synsem.loc.CONT.hook [ INDEX #index2, ltop #handle2], key-arg + ], sign & [ SYNSEM.LOC [ cat.spr <>, CONT [ hook [INDEX #possr2]] ] ] > ]. anfang-naechster-woche-2-spr := anfang-naechster-woche-2-type & [synsem.loc.cont [ hook [INDEX #index1, ltop #uhand1], KEY.ARG2 #possr1, MODCONT.HOOK [ INDEX #modind1, ltop #modhand1] ], C-CONT [ RELS , HCONS ], ARGS < [ synsem.loc.CONT.hook [ INDEX #index1, ltop #handle1], key-arg + ], sign & [ SYNSEM.LOC [ cat.spr < det-synsem & [ loc.cat [ head.infl.np-decl 'st, drop-det - ] ] >, CONT.hook [INDEX #possr1, ltop #arghandle] ] ] > ]. anfang-naechster-woche-2-no-spr := anfang-naechster-woche-2-type & [synsem.loc.cont [hook [INDEX #index2, ltop #uhand2], KEY.ARG2 #possr2, MODCONT.HOOK [ INDEX #modind2, ltop #modhand2] ], C-CONT [ RELS , HCONS ], ARGS < [ synsem.loc.CONT.hook [ INDEX #index2, ltop #handle2 ] ], [ SYNSEM.LOC [ cat [ spr <>, SUBCAT ], CONT.hook [ INDEX #possr2] ] ] > ]. nach-hause := mw-complex-underived-2-prep-rule & [ args <[MORPH , head px-all ] !>], [morph , head [infl.uniagr d-s-n ], key-arg + ] !>]>, synsem complete-synsem & [ loc.cont mod-pp-sem-type & [ KEY #key & nach_rel & [ ARG2 #arg, PSORT directional-adj ], RELS , HCONS ] ] ]. ;; zu dritt, zu viert zu-n-t := mw-complex-2-rule & [ synsem complete-synsem & [ loc.cont prep-sem-type & [ KEY #key & zu_prep_rel & [ ARG2 #ind ], hook.ltop #hand, RELS [ LIST < #key, udef_rel & [ PRED "udef_q_rel", ARG0 #ind, RSTR #thand ], abstr_nom_rel & [ PRED "abstr_nom_rel", ARG0 #ind, LBL #thand ] . #adjsem >, LAST #adjlast ], HCONS [ LIST #adj-hcons , LAST #adj-hcons-last ] ], lex +, phrase - ], ARGS < lexical-sign & [ MORPH ] !>, SYNSEM complement-preposition-synsem ], lexical-sign & [ synsem ordinal-number-synsem & [ loc.cont [ MODCONT.HOOK [ INDEX #ind, ltop #hand ], RELS [ LIST #adjsem, LAST #adjlast ], HCONS [ LIST #adj-hcons, LAST #adj-hcons-last ] ], lex-complete - ], key-arg + ] > ]. zu-n-t-mod := zu-n-t & [ synsem [ loc.cont mod-pp-sem-type & [ KEY #key & zu_prep_rel & [ ARG2 #ind ], hook.ltop #hand, RELS [ LIST < #key, udef_rel & [ PRED "udef_q_rel", ARG0 #ind, RSTR #thand ], abstr_nom_rel & [ PRED "abstr_nom_rel", ARG0 #ind, LBL #thand ] . #adjsem >, LAST #adjlast ], HCONS [ LIST #adj-hcons , LAST #adj-hcons-last ] ] ], ARGS < [ ], [ synsem ordinal-number-synsem & [ loc.cont [ MODCONT.HOOK [ INDEX #ind, ltop #hand ], RELS [ LIST #adjsem, LAST #adjlast ], HCONS [ LIST #adj-hcons, LAST #adj-hcons-last ] ] ] ] > ]. punkt-acht-1-mod := mw-complex-underived-2-rule & [ args <[MORPH , HEAD [INFL.UNIAGR nda-s-m], key-arg + ] !>], [morph , HEAD cardinal-stunden-eins-or-not-1 & [ VALUE #val ] ] !>]>, synsem complete-synsem & [ loc.cont mod-pp-sem-type & [ KEY #key, RELS , HCONS ] ] ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; MULTI-WORD-LEXEMES ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; multi-word-lexeme := lexical-nonloc-default & *rule*. default-multi-word-lexeme := multi-word-lexeme & lexical-syn-defaults. mw-two-morph-lex-sign := multi-word-lexeme & [ MORPH , ARGS < #m1 & morph-type, #m2 & morph-type> ]. mw-three-morph-lex-sign := multi-word-lexeme & [ MORPH , ARGS < #m1 & morph-type, #m2 & morph-type, #m3 & morph-type > ]. default-mw-two-morph-lex-sign := lexical-syn-defaults & mw-two-morph-lex-sign. default-mw-three-morph-lex-sign := lexical-syn-defaults & mw-three-morph-lex-sign. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; MULTI-WORD-RULES ;; ;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mw-complex-rule := grammar-or-mw-rule & lexical-nonloc-default & lexical-syn-defaults & [synsem.loc.anc [self , active , inert ]]. mw-complex-2-lexical-rule := binary-grammar-or-mw-rule & [ morph , ARGS < lexical-sign & [morph #1], lexical-sign & [morph #2]> ]. mw-complex-2-rule := mw-complex-rule & lexical-sign & mw-complex-2-lexical-rule. mw-complex-2-underived-derived-rule := mw-complex-rule & lexical-sign & [ARGS < [ lr.basic 'yes ], lexical-sign >]. mw-complex-underived-2-rule := mw-complex-2-rule & [ ARGS < [ lr.basic 'yes ], [ lr.basic 'yes ] > ]. mw-complex-underived-3-rule := mw-complex-3-rule & [ ARGS < [ lr.basic 'yes ], [ lr.basic 'yes ], [ lr.basic 'yes ] > ]. mw-complex-underived-2-int-rule := mw-complex-underived-2-rule & [ ARGS < [ synsem interjection-synsem ], [] > ]. ;; im Grunde, vor Ort, von daher mw-complex-underived-2-prep-rule := mw-complex-underived-2-rule & [ ARGS < [ synsem complement-preposition-synsem ], [] > ]. coord-mw-complex-2-rule := mw-complex-2-lexical-rule & lexical-sign. mw-complex-3-rule := mw-complex-rule & ternary-grammar-or-mw-rule & lexical-sign & [ morph , ARGS < lexical-sign & [ morph #1, lr.basic 'yes ], lexical-sign & [ morph #2, lr.basic 'yes ], lexical-sign & [ morph #3, lr.basic 'yes ]> ]. mw-complex-underived-3-rule-prep-2-rule := mw-complex-3-rule & [ ARGS < [], [ synsem complement-preposition-synsem ], [] > ].