;;; -*- Mode: TDL; Coding: utf-8 -*- ;;; Authors: ;;; 1997-2000 Walter Kasper & Stefan Müller ;;; 2000-2002 Stefan Müller ;;; 2002-2006 Berthold Crysmann ;;; 2007 Nicolai Kilian ;;; Copyright: DFKI GmbH inher-anc-lrule := lrule & [synsem.loc.anc #anc , ARGS <[synsem.loc.anc #anc]> ]. infl_lrule-sign := infl_lrule & lexical-sign & [ARGS < lexical-sign >]. infl_lrule-arche-form := infl_lrule & stem & [ ARGS < arche-form > ]. noninfl-lrule := inher-anc-lrule & [ ARGS < stem-or-stempunct & [lr.lr_inflected +]> ]. final-lrule := lexical-sign & noninfl-lrule & [lr lr-syntax_min ]. post-infl-lrule := punct-lrule-noarg-lrule & [lr.lr_inflected #i, args <[lr.lr_inflected #i & +]>]. nonfinal-noninfl-lrule := stem & noninfl-lrule. basic-clex-lrule-type := final-lrule & lexical-nonloc-default. clex-lrule-type := basic-clex-lrule-type & [ ARGS < stem > ]. clex-lrule := basic-clex-lrule-type & punct-lrule-noarg-lrule. clex-id-lrule := clex-lrule & [ morph #m, synsem #synsem, ARGS < stem & [ morph #m, synsem #synsem ] > ]. inher-nonloc-lrule := inher-nonloc & noninfl-lrule. ;;; .loc.cat.subcat.list *eps-no-rel-synsem-list* mark-no-rel := stem-or-sign & [ synsem.nonloc.rel ]. mark-undef-nonlocs := lrule & *mark-undef-nonlocs*. *mark-undef-nonlocs* := *lrule* & [ synsem.loc.cat [ head.subj < [ nonloc undef-nonlocs ] >, subcat.list *eps-undef-nonlocs-synsem-list* ] ]. no-rel-inher-nonloc-lrule := mark-no-rel & inher-nonloc-lrule & punct-lrule-noarg-lrule & [synsem.que #que, args <[synsem.que #que]>]. nonfinal-no-rel-inher-nonloc-lrule := nonfinal-noninfl-lrule & no-rel-inher-nonloc-lrule. final-inher-nonloc-lrule := final-lrule & inher-nonloc-lrule. final-no-rel-inher-nonloc-lrule := final-inher-nonloc-lrule & no-rel-inher-nonloc-lrule. fin-flex-final-lrule := fin-verb-flex & post-infl-lrule & final-lrule. fin-lrule := post-infl-lrule & final-lrule & [morph #m, synsem fin-verb-synsem & #synsem & [ loc [ _third -, cat.head v-final-head & [--sub +], cont.hook.index [e tensed], anc [self , active , inert ], sgf sgf-lor- ] ], ARGS < [ morph #m, synsem #synsem, lr.basic na ] > ]. v1-fin-lrule-rb := post-infl-lrule & final-inher-nonloc-lrule & [morph #m, synsem fin-verb-synsem & [loc [_third -, sgf #sgf, cat [head #h & initial_+_fin-verb-head, subj <>, ucomps #uc & <>, subcat & [LAST *null*], vcomp <>], adjunction unmodifiable, cont [ KEY #key, RELS #rels, HCONS #hc, HOOK [INDEX #index & [--sub -], LTOP #ltop, _LTOPS ]], anc anc-inactive ], v2 #v2 ], lr.basic -, ARGS < [morph #m, synsem fin-verb-synsem & [LOC [ CAT [HEAD #h, SUBJ #subj, SUBCAT #subcat, UCOMPS #uc, VCOMP #vcomp & <[LOC [CAT.HEAD #v1-hd]] , ...> ], CONT [HOOK [INDEX #index, LTOP #v1-ltop], KEY #key, RELS #rels, HCONS #hc]], V2 #v2 ], LR [BASIC na] ] > ]. v1-fin-lrule-no-rb := post-infl-lrule & final-inher-nonloc-lrule & [morph #m, synsem fin-verb-synsem & [loc [ _third #3rd, cat [ head #h & initial_+_fin-verb-head & [extra na_or_+], subj #subj, ucomps #uc, subcat #subcat & [LAST *null*], vcomp #vcomp ], cont [RELS #rels, HCONS #hc, HOOK [INDEX #e & [--sub -], LTOP handle, _LTOPS ]], sgf sgf-lor- ], v2 #v2 ], lr.basic -, ARGS < [morph #m, synsem fin-verb-synsem & [loc [_third #3rd, cat [ head #h, subj #subj, ucomps #uc, subcat #subcat, vcomp #vcomp & *list* & *null* ], cont [RELS #rels, HCONS #hc, HOOK [INDEX #e, LTOP #ltop]] ], v2 #v2 ], lr [basic na] ] > ]. particle-lrule := stem & spell-lrule & basic-punct-lrule & inher-nonloc & constr-type & [needs-affix +, morph , c-cont [rels , hcons ], synsem verb-synsem & [loc [ anc #anc , cat [ head #h & initial_-_-head, vcomp #vcomp & *vc-eps-list*, subj #subj, ucomps #uc, subcat #sc, auxf #auxf ], cont [key #k, hook [index #index & [--punct #punct], ltop #lbl], modcont.hook #modcont, hcons #hcons, rels [list <#partrel & [ARG0 [--top -, --bnd +, --punct #punct] ] . #rels>, last #rlast]], adjunction #adj, erg #erg ], v2 #v2, nonloc contains-no-rel ], lr [lr_inflected +, p -, basic #basic, reorder #r, PUNCT-LR-ARG prefix-lr-arg ], ARGS < [ morph , synsem particle-or-more-verb-synsem & [loc [ anc #anc, cat [ head #h & [vform real-vform-sm], vcomp , subj #subj, subcat #sc, ucomps #uc, auxf #auxf ], cont [key #k, hook [index #index, ltop #lbl], modcont.hook #modcont, hcons #hcons, rels [list #rels, last #rlast]], adjunction #adj, erg #erg ], v2 #v2 ], lr [p bool, lr_inflected +, basic #basic & +, reorder #r & +] ] > ]. general-SILR-lrule := post-infl-lrule & nonfinal-no-rel-inher-nonloc-lrule & [morph #m, synsem fin-verb-synsem & [loc [_third #3rd, cat [ head #h & [subj <>], vcomp #vcomp, subj #subj, subcat #sc, ucomps #uc ], cont #cont, adjunction #adj ], v2 #v2 ], cle -, lr [basic na], ARGS < [ morph #m & , synsem verb-synsem & [loc [_third #3rd, cat [ head #h, ucomps #uc, vcomp #vcomp, subj #subj, subcat #sc ], cont #cont , adjunction #adj ], v2 #v2 ], lr.basic + ] > ]. SILR-lrule := general-SILR-lrule & fin-verb-flex. general-pers-SILR-lrule-type := general-SILR-lrule & [ARGS < [morph , synsem.loc [cat.subj < noun-synsem & [loc [ cat.head.cas struc-nom, cont.hook [INDEX [png #png ]], uniagr #agr & n-n-g & [cas struc-nom] ] ] > ] ] > ]. MAL-pers-SILR-lrule-type := SILR-lrule & [ARGS < [synsem.loc [cat.subj < noun-synsem & [loc [ cat.head.cas struc-nom, uniagr n-n-g & [cas struc-nom] ] ] > ] ] > ]. pers-SILR-lrule-type := general-pers-SILR-lrule-type & SILR-lrule. general-unpers-SILR-lrule-type := general-SILR-lrule & [ ARGS < [ morph , synsem.loc.cat [ subj *empty-or-clausal-complement-synsem-list* ] ] > ]. unpers-SILR-lrule-type := general-unpers-SILR-lrule-type & SILR-lrule. pvp-lrule := stem & post-infl-lrule & fin-verb-flex & slash-intro-sign & [morph #m, synsem fin-verb-synsem & [loc [ _third -, cat [ head #h , vcomp <>, subj #subj, subcat.list *eps-undef-nonlocs-synsem-list* ], cont #cont & [hook.index [--tpc tpc-event]], anc anc-inher & [self , active [list #a1, last #a2], inert ] ], nonloc contains-slash & [_slash #_sl & , subcat.list *eps-2-list* ], cont.hook #hook] !>, _topic-drop -, rel #rel, slash #slash ], v2 #v2 ], cle -, lr [basic na, reorder -], ARGS < [ morph #m & , synsem verb-synsem & [loc [_third +, cat [ head #h & initial_+_fin-verb-head, vcomp < sp-or-prd-adj-or-non-fin-verb-synsem & [loc #vcomp & [cat sp-or-prd-adj-or-non-fin-verb-cat & [head #vc-hd, vcomp <>, subcat.list *eps-2-list* ], cont.hook #hook ], nonloc [slash #slash & singleton-diff-list & [LIST.FIRST #vcomp & [cat [drop -, head [extra na_or_-, top +] ], anc anc-inher & [self [list #a1, last #a1], active [list #a1, last #a2] ] ] ], _slash #_sl] ]>, subj #subj ], cont #cont & [ hook.INDEX.E #temo ] ], nonloc contains-no-slash & [rel #rel, slash ], v2 #v2 ], lr [basic na, reorder - ] ] > ]. non-fin-SILR-lrule := post-infl-lrule & nonfinal-no-rel-inher-nonloc-lrule & [morph #m & , synsem non-fin-verb-synsem & [loc [ cat [ head #h & [vform #vform, subj #subj ], auxf #auxf, auxt #auxt, subcat #sc, --ucomps #--uc, ucomps #uc, vcomp #vcomp & *vc-sp-eps-list* ], cont #cont & [hook.index event & [--psv #psv]] ], v2 #v2 ], lr.basic na, ARGS < [morph #m & [ LIST.FIRST.HEAD [vform non-fin-sm, fin [--psv #psv, e tam]]], synsem [ loc [ cat [ head #h, auxf #auxf, auxt #auxt, subj #subj, subcat #sc, --ucomps #--uc, ucomps #uc, vcomp #vcomp ], cont #cont ], v2 #v2 ], lr.basic + ] > ]. non-fin-lrule := post-infl-lrule & clex-lrule-type & [morph #m, synsem non-fin-verb-synsem & [loc [ cat [ head #h, subcat #sc, --ucomps #--uc, ucomps #uc, vcomp #vcomp & *vc-sp-eps-list* ], cont #cont ], lex #lex, phrase #phrase, nonloc #nonloc, que #que ], ARGS < [ morph #m, synsem [ loc [ cat [ head #h, subcat #sc, vcomp #vcomp, --ucomps #--uc, ucomps #uc ], cont #cont ], lex #lex, phrase #phrase, nonloc #nonloc, que #que ], lr.basic na ] > ]. perfective-non-fin-lrule := non-fin-lrule & [ synsem ppp-verb-synsem & [ loc [ cat.head [ auxf #auxf, auxt #auxt ], cont [hook [index [e [perfective #perf & +]]]] ] ], morph.LIST.FIRST.HEAD [VFORM ppp-sm], args < [synsem.loc [cat [ auxf #auxf, auxt #auxt ], cont.hook.index.e [perfective #perf ] ]] > ]. tensed-non-fin-lrule := non-fin-lrule & [synsem.loc [cat.head.--zu #zu, cont.hook.index.e tam & [tense no_inh_tense, perfective #p]], morph ]. super-pers-passiv-lrule := post-infl-lrule & constr-type & final-no-rel-inher-nonloc-lrule & [morph #m, c-cont [rels , hcons ], synsem non-fin-verb-synsem & [loc [ cat [ head passive-verb-head & [subj < saturated-ref-comp-noun-synsem & [loc [ cat.head [ cas struc-nom, mass-noun #erg-mass-noun, prd #erg-prd ], cont #erg-cont & [hook.index #i], uniagr n-n-g & [cas struc-nom] ], nonloc #erg-nonloc ] >, aux #aux, flip #flip, vform #vform, _vform #vform ], vcomp #vcomp & *vc-sp-eps-list*, ucomps #uc ], anc [self , active , inert ], cont [key #key, hook #hook & [ltop #l, index #ev & event & [--psv apsv, e.stative bool]], rels [LIST < #parg . #rlist >, LAST #rlast], hcons #hcons ] ], v2 #v2 ], lr.basic -, ARGS < [morph #m & [LIST.FIRST.HEAD [ fin.e tam, VFORM #vform ] ], synsem verb-synsem & [loc [ cat [ head bse-or-participle-verb-head & [aux #aux, flip #flip, passive psv+, vform #vform & bse-ppp-sm ], subj < ref-comp-noun-synsem >, vcomp #vcomp, ucomps #uc], erg < saturated-ref-comp-noun-synsem & [loc [ cat [ head [ mass-noun #erg-mass-noun, prd #erg-prd ] ], cont #erg-cont ], nonloc #erg-nonloc ] >, cont [key #key, hook #hook, rels [LIST #rlist, LAST #rlast], hcons #hcons] ], v2 #v2 ], lr.basic + ] > ]. erg-subtract-lrule-1 := basic-punct-lrule & [ synsem.loc.cat.subcat.list #rest, ARGS < [ synsem.loc [ cat [subj <[loc.cont.hook.index.--bnd -]>, subcat.list < #erg . #rest > ], erg < #erg > ] ] > ]. erg-subtract-lrule-2 := basic-punct-lrule & [ synsem.loc.cat.subcat.list <#1 . #rest>, ARGS < [ synsem.loc [ cat [subj <[loc.cont.hook.index.--bnd -]>, subcat.list <#1, #erg . #rest > ], erg < #erg > ] ] > ]. erg-subtract-lrule-3 := basic-punct-lrule & [ synsem.loc.cat.subcat.list <#1,#2 .#rest>, ARGS < [ synsem.loc [ cat [subj <[loc.cont.hook.index.--bnd -]>, subcat.list < #1, #2, #erg . #rest > ], erg < #erg > ] ] > ]. non-state-passive-lrule := basic-punct-lrule & [synsem.loc.cont.hook.index.e.stative -]. erg-subtract-lrule-pp-1 := basic-punct-lrule & [ synsem.loc.cat.subcat.list < comp-pp-synsem & [ loc [ cat [ head [ pform durch-von-pform ], _drop -], cont [hook [index ref-ind & #ref-subj & [--bnd +]], key [arg0 event & [E no_tam], arg2 #ref-subj]], uniagr da-n-g ] ] . #rest>, ARGS < [ synsem.loc [ cont [hook [index event]], cat [subj <[loc.cont.hook.index #ref-subj]>, subcat.list < #erg . #rest >] , erg < #erg > ] ] > ]. erg-subtract-lrule-pp-2 := basic-punct-lrule & [synsem.loc.cat.subcat.list < comp-pp-synsem & [loc [cat [head [pform durch-von-pform ], _drop - ], cont [hook [index ref-ind & #ref-subj & [--bnd +]], key [arg0 event & [E no_tam], arg2 #ref-subj]], uniagr da-n-g ] ], #e1 . #rest>, ARGS <[synsem.loc [cont [hook [index event]], cat [subj <[loc.cont.hook.index #ref-subj]>, subcat.list < #e1, #erg . #rest >] , erg < #erg > ] ] > ]. erg-subtract-lrule-pp-3 := basic-punct-lrule & [synsem.loc.cat.subcat.list < comp-pp-synsem & [ loc [ cat [ head [ pform durch-von-pform ], _drop - ], cont [hook [index ref-ind & #ref-subj & [--bnd +]], key [arg0 event & [E no_tam], arg2 #ref-subj]], uniagr da-n-g ] ], #e1, #e2 . #rest>, ARGS <[synsem.loc [cont [hook [index event]], cat [subj <[loc.cont.hook.index #ref-subj]>, subcat.list < #e1,#e2, #erg . #rest >] , erg < #erg > ] ] > ]. pers-passiv-lrule-1 := super-pers-passiv-lrule & erg-subtract-lrule-1. pers-passiv-lrule-2 := super-pers-passiv-lrule & erg-subtract-lrule-2. pers-passiv-lrule-3 := super-pers-passiv-lrule & erg-subtract-lrule-3. pers-passiv-pp-lrule-1 := super-pers-passiv-lrule & erg-subtract-lrule-pp-1 & non-state-passive-lrule. pers-passiv-pp-lrule-2 := super-pers-passiv-lrule & erg-subtract-lrule-pp-2 & non-state-passive-lrule. pers-passiv-pp-lrule-3 := super-pers-passiv-lrule & erg-subtract-lrule-pp-3 & non-state-passive-lrule. super-pers-dat-passive-lrule := post-infl-lrule & final-no-rel-inher-nonloc-lrule & non-state-passive-lrule & constr-type & [morph #m, c-cont [rels , hcons ], synsem non-fin-verb-synsem & [loc [cat [ head passive-verb-head & [subj < saturated-ref-comp-noun-synsem & [loc [ cat.head [ cas struc-nom, mass-noun #dat-mass-noun, prd #dat-prd ], cont #dat-cont & [hook.index #i], uniagr n-n-g & [cas struc-nom] ], nonloc #dat-nonloc ] >, aux #aux, flip #flip, _vform #vform, vform #vform ], vcomp #vcomp & *vc-sp-eps-list*, ucomps #uc], anc [self , active , inert ], cont [hook #hook & [ ltop #l, index #ev & event & [--psv dpsv, e.stative bool]], rels [list < #parg . #rlist>, last #rlast], hcons #hcons, key #key ] ], v2 #v2 ], lr.basic -, ARGS <[morph #m & [LIST.FIRST.HEAD [ fin.e tam, VFORM #vform ] ], synsem verb-synsem & [loc [ cat [ head participle-verb-head & [aux #aux, flip #flip, passive psv+, vform #vform & ppp-sm ], subj < ref-comp-noun-synsem & [loc.cat.gf gf-subj]>, vcomp #vcomp, ucomps #uc, subcat.list < saturated-ref-comp-noun-synsem & [loc [ cat [ head [ cas lex-dat, mass-noun #dat-mass-noun, prd #dat-prd ] ], cont #dat-cont ], nonloc #dat-nonloc ], ... >], cont [hook #hook , rels [list #rlist, last #rlast], hcons #hcons, key #key ] ], v2 #v2 ], lr.basic + ] > ]. pers-dat-passive-lrule := super-pers-dat-passive-lrule & [synsem.loc.cat.subcat.list #rest, ARGS < [synsem.loc [ cat [subj <[loc.cont.hook.index.--bnd -]>, subcat.list < [] . #rest > ] ] ] > ]. pers-dat-passive-pp-lrule := super-pers-dat-passive-lrule & [synsem.loc.cat.subcat.list < comp-pp-synsem & [ loc [ cat [ head [ pform von-pform ], _drop - ], cont [hook [index ref-ind & #ref-subj & [--bnd +]], key [arg0 event & [E no_tam], arg2 #ref-subj]], uniagr da-n-g ] ] . #rest >, ARGS < [synsem.loc [ cat [subj <[loc.cont.hook.index #ref-subj]>, subcat.list < [] . #rest > ] ] ] > ]. *lrule-adj-non-prd-sign* := basic-punct-lrule & nocomma-sign & [synsem [loc [cat.head mod-adj-head, anc anc-inher & [self , active , inert ]], que ]]. lrule-adj-non-prd-sign := *lrule-adj-non-prd-sign* & [synsem [loc adj-local & [cat.vcomp #vc ]], ARGS <[synsem.loc.cat.vcomp #vc] >]. *participle-lrule* := *lrule-adj-non-prd-sign* & constr-unary-type & *mark-undef-nonlocs* & spell-lrule & [synsem [loc [cat [head mod-participle-head & [mod [loc [cat [ head.cas.morph-case #case, spr < [ loc.cat.head.infl [NP-DECL #dtype, DEF-AGR #defagr, NODEF-AGR #nodefagr ] ] > ], uniagr #uniagr, cont.hook.index #xarg]]]], cont [hook [ltop #l, xarg #xarg, index #e & [sf prop]], modcont isect-modcont & [hook [ltop #l, index.png #png]]]]], lr [lr_inflected -, reorder #reorder], morph , args < [synsem verb-synsem & [loc.cont.hook [index #e & [e [mood no_mood]]]], lr [lr_inflected +, reorder #reorder], morph ] >]. participle-lrule := *participle-lrule* & lrule-adj-non-prd-sign. participle-nerg-lrule := participle-lrule & [c-cont [RELS , HCONS ], synsem [ loc [ cat [ head [subj < #erg >]], cont [ hook [LTOP #l, XARG #ind, INDEX #ev & [--psv psv+, E [perfective +]]] ] ], nonloc #nl ], ARGS < [synsem verb-synsem & [loc [ cat [ head adjective-infl-verb-head & [vform ppp-sm], vcomp <> ], cont.hook.ltop #l, erg < #erg & ref-noun-synsem & [ LOC [CONT.hook [ INDEX #ind & index] ]] > ], nonloc #nl & undef-nonlocs ], lr.basic + ] > ]. participle-nerg-lrule-1 := participle-nerg-lrule & erg-subtract-lrule-1. participle-nerg-lrule-2 := participle-nerg-lrule & erg-subtract-lrule-2. participle-nerg-lrule-pp-1 := participle-nerg-lrule & erg-subtract-lrule-pp-1. participle-nerg-lrule-pp-2 := participle-nerg-lrule & erg-subtract-lrule-pp-2. participle-erg-rule := participle-lrule & [C-CONT [RELS , HCONS ], synsem [ loc [ cat [ head [subj < #erg >], subcat #adj-subcat ], CONT [ hook [LTOP #l, XARG #ind, INDEX [--psv psv-, E [perfective +]]] ] ], nonloc #nl ], ARGS < [synsem verb-synsem & [loc [ cat [ head adjective-infl-verb-head & [vform ppp-sm], subj < #erg >, subcat #adj-subcat, vcomp <> ], erg < #erg & synsem & [ LOC.CONT.hook [ INDEX #ind ] ] >, cont.hook.ltop #l ], nonloc #nl & undef-nonlocs ], lr.basic + ] > ]. ;; der auszubildende Lehrling participle-zu-inf-lrule := participle-lrule & [c-cont [rels , hcons ], synsem [ loc [ cat [ head [subj < #erg >] ], cont [ hook [LTOP #h, XARG #ind, INDEX #e0 & [--psv psv+, E tam & [perfective -]]] ] ], nonloc #nl ], ARGS < [synsem verb-synsem & [loc [ cat [ head adjective-infl-verb-head & [vform inf-sm], vcomp <> ], cont.hook.ltop #l, erg < #erg & synsem & [ LOC.CONT.hook [ INDEX #ind ] ] > ], nonloc #nl & undef-nonlocs ], lr.basic + ] > ]. participle-zu-inf-sep-lrule := *participle-lrule* & [c-cont [rels , hcons ], synsem [ loc [ cat [ head [subj < #erg >], vcomp <[loc.cat.head zu-dummy-head ]>], cont [ hook [LTOP #h, INDEX #e0 & [--psv psv+, E tam & [--zu +, perfective -]], XARG #ind ]] ], nonloc #nl ], ARGS < [synsem verb-synsem & [loc [ cat [ head adjective-infl-verb-head & [vform inf-or-real-bse-sm], vcomp <> ], cont.hook.ltop #l, erg < #erg & synsem & [ LOC.CONT.hook [ INDEX #ind ] ] > ], nonloc #nl & undef-nonlocs ], lr.basic + ] > ]. ;; die den Mann liebende Frau participle-bse-rule := participle-lrule & [C-CONT [RELS , HCONS ], synsem [ loc [ cat [ head [subj < #subj >], subcat #subcat, vcomp #vcomp ], CONT [ hook [LTOP #l, INDEX [--psv psv-, E [perfective -]], XARG #ind] ] ], nonloc #nl ], ARGS < [synsem verb-synsem & [ loc [ cat [ head [vform bse-sm], subj < #subj & synsem & [ LOC.CONT.hook [ INDEX #ind ] ] >, subcat #subcat, vcomp #vcomp ], cont.hook.ltop #l ], nonloc #nl & undef-nonlocs ], lr.basic + ] > ]. secondary-predication-lrule := *constr-lrule* & basic-punct-lrule & inher-nonloc & nocomma-sign & [C-CONT [RELS , HCONS ], SYNSEM a-v-modifier-synsem & [LOC [CAT [HEAD [PRD -], SUBCAT #sc, VCOMP #vc, SPR #spr ], CONT [HOOK [LTOP #h, INDEX #ev, XARG #xarg], KEY #key & [ARG0 [E no_tam]]]], PUNCT #punct], LR #lr & [LR_INFLECTED -], SIGNPUNCT no_sign_punct & #sp, MORPH #m, ARGS <[SYNSEM [LOC adj-local & [CAT [SUBCAT #sc, HEAD.SUBJ , VCOMP #vc, SPR #spr ], CONT [HOOK [LTOP #l, INDEX #ev], KEY #key]], PUNCT #punct], LR #lr, SIGNPUNCT #sp, MORPH #m & ]>]. participle-noagr-bse-rule := final-lrule & spell-lrule & [lr [lr_inflected +, reorder #r], morph , synsem a-v-modifier-synsem & [ loc [ cat [ head.mod.loc.cat.head.subj <#subj>, subcat #subcat, vcomp #vcomp & *vc-sp-eps-list* ], CONT #cont ], nonloc #nl, que #que ], lr.basic -, ARGS < [ morph , synsem verb-synsem & [ loc [ cat [ head adjective-infl-verb-head, subj <#subj>, subcat #subcat, vcomp #vcomp ], cont #cont ], nonloc #nl & undef-nonlocs, que #que & ], lr [lr_inflected +, reorder #r, basic +] ] > ]. participle-zu-inf-lrule-1 := participle-zu-inf-lrule & erg-subtract-lrule-1. participle-zu-inf-lrule-2 := participle-zu-inf-lrule & erg-subtract-lrule-2. participle-zu-inf-lrule-pp-1 := participle-zu-inf-lrule & erg-subtract-lrule-pp-1. participle-zu-inf-lrule-pp-2 := participle-zu-inf-lrule & erg-subtract-lrule-pp-2. participle-zu-inf-sep-lrule-1 := participle-zu-inf-sep-lrule & erg-subtract-lrule-1. participle-zu-inf-sep-lrule-2 := participle-zu-inf-sep-lrule & erg-subtract-lrule-2. participle-zu-inf-sep-lrule-pp-1 := participle-zu-inf-sep-lrule & erg-subtract-lrule-pp-1. participle-zu-inf-sep-lrule-pp-2 := participle-zu-inf-sep-lrule & erg-subtract-lrule-pp-2. incoh-to-coh-transport-rule := post-infl-lrule & nonfinal-noninfl-lrule & [synsem [loc [ erg #erg, cat [ head #h, subj #subj, ucomps #uc, log-subj #lsubj, auxf #auxf ], cont [HCONS [LIST #hcons, LAST #last], hook [ltop #hand, index #ind], RELS #liszt, key #key, modcont.hook #modcont ], adjunction #adj ], nonloc #nl, v2 #v2], ARGS <[synsem [loc [ erg #erg, cat [ head #h, subj #subj, ucomps #uc, log-subj #lsubj, auxf #auxf, subcat [ last *null* ]], cont [HCONS [LIST #hcons, LAST #last], hook [ltop #hand, index #ind], RELS #liszt, key #key, modcont.hook #modcont ], adjunction #adj ], nonloc #nl, v2 #v2]]>]. particle-verb-incoh-to-coh-lrule := incoh-to-coh-transport-rule & [morph #m, synsem particle-or-more-verb-synsem & [loc.cat [vcomp <#vcomp, coherent-complement-verb-synsem & [loc [cat [head [mod #mod, v1 #v1, prd #prd, extra na_or_-, top #top, flip #flip, subj #vsubj, aux #aux, log-subj #log-subj, vform #vform, passive #passive ], spr #spr, vcomp <>, subcat.list *cons*, no_adj #no_adj, gf #gf, extra-poss #extra-poss ], cont #cont, coord #coord, adjunction #adjunction, erg #erg], nonloc #nonloc, que #que, lex #lex, phrase -, v2 #v2, ellipse #ellipse, lex-complete #lex-complete, cat-change #cat-change] >]], cle -, lr [reorder +, basic + ], ARGS < [ morph #m, synsem super-particle-verb-synsem & [loc.cat [vcomp <#vcomp & particle-synsem>, head initial_+_fin-verb-head, subcat.list , no_adj #no_adj, gf #gf, extra-poss #extra-poss ], cont #cont, coord #coord, adjunction #adjunction, erg #erg], nonloc #nonloc, que #que, lex #lex, v2 #v2, ellipse #ellipse, lex-complete #lex-complete, cat-change #cat-change], ... >]], lr [reorder +, basic + ]] > ]. incoh-to-coh-lrule := incoh-to-coh-transport-rule & [morph #m, synsem verb-synsem & [loc.cat [vcomp < coherent-complement-verb-synsem & [loc [cat non-fin-verb-cat & [head [mod #mod, v1 #v1, prd #prd, extra na_or_-, top #top, flip #flip, subj #vsubj, aux #aux, log-subj #log-subj, vform #vform, passive #passive ], spr #spr, subcat.list *cons*, vcomp <>, _drop -, drop -, no_adj #no_adj, gf #gf, extra-poss #extra-poss, erg-subtr -], cont #cont, coord #coord, adjunction adjunction, erg #erg], nonloc #nonloc, que #que, lex #lex, phrase -, v2 #v2, ellipse #ellipse, lex-complete #lex-complete, cat-change #cat-change] >]], cle -, lr [reorder +, basic + ], ARGS < [ morph #m, synsem verb-synsem & [loc.cat [vcomp <>, subcat.list , subcat , subj <>, ucomps <>, no_adj #no_adj, gf #gf, extra-poss #extra-poss], cont #cont, coord #coord, erg #erg], nonloc #nonloc, que #que, lex #lex, phrase bool, v2 #v2, ellipse #ellipse, lex-complete #lex-complete, cat-change #cat-change] , ...>]], lr [reorder +, basic + ] ] > ]. reorder-lrule := headed-unary-rule & [synsem verb-synsem & [loc [ erg #erg, cat [ head #h, subj #subj, ucomps #uc, log-subj #lsubj, vcomp #vcomp & *vc-sp-eps-list* , auxf #auxf ], cont #cont, anc #anc, adjunction #adj ], que #que, nonloc #nl & undef-nonlocs, v2 #v2, lex +, phrase - ], lr [ lr_inflected #inf, reorder -, basic - ], ARGS < [morph , synsem verb-synsem & [loc [ anc #anc, erg #erg, cat [ head #h, subj #subj, ucomps #uc, log-subj #lsubj, vcomp #vcomp, auxf #auxf ], cont #cont, adjunction #adj ], que #que, nonloc #nl, v2 #v2, lex +, phrase - ], lr [lr_inflected #inf, reorder +, basic - ] ] > ]. *constr-lrule* := *lrule* & constr-type & [ SYNSEM.LOC.CONT [ RELS [ list #l1, last #l3 ], HCONS [ list #h1, last #h3] ], C-CONT [ RELS [ list #l1, last #l2 ], HCONS [ list #h1, last #h2] ], ARGS <[synsem.loc.CONT [ RELS [ list #l2, last #l3 ], HCONS [ list #h2, last #h3 ] ] ] > ]. constr-lrule := clex-lrule-type & *constr-lrule*. card-infl-lrule := spell-lrule & lexical-sign & lexical-nonloc-default & basic-punct-lrule & [needs-affix -, lr [lr_inflected +], synsem #ss & [loc.cont.key [pred card_rel]], morph , args < stem & [synsem #ss & [loc.uniagr #agr], morph ]>]. zu-ord-infl-lrule := spell-lrule & lexical-nonloc-default & lexical-sign & [needs-affix +, lr lr-syntax, synsem #ss & [loc.cont.key [pred card_rel]], morph , args < lexical-sign & [synsem #ss, lr lr-lexicon & [lr_inflected +], morph ]>]. ord-infl-lrule := spell-lrule & stem & lexical-nonloc-default & adj-flex & basic-punct-lrule & [needs-affix +, lr [lr_inflected -], synsem ordinal-number-synsem-syn & [loc #loc & [uniagr #agr, cont.key [pred ord_rel]], nonloc #nl], morph , args <[lr [lr_inflected -], morph , synsem [loc #loc, nonloc #nl] ]>]. complex-card-ord-lrule := spell-lrule & basic-punct-lrule & *constr-lrule* & stem & lexical-nonloc-default & [needs-affix +, morph , lr [lr_inflected -], synsem.loc [cont [modcont [hook [ltop #l, index #x]], key #k, hook [ltop #l, index #ev, xarg #x]]], c-cont [rels , hcons ], args <[lr [lr_inflected -], morph , synsem.loc [cont [hook [index event & [e no_tam]], key.pred #pred, modcont.hook [index #x]]]]>]. card-ord-std-linking-lrule := *constr-lrule* & basic-punct-lrule & [c-cont [rels ], args <[synsem.loc [cont [hook.ltop #l2]]] >]. card-ord-inv-linking-lrule := *constr-lrule* & basic-punct-lrule & [c-cont [rels ], args <[synsem.loc [cont [hook.ltop #l3]]] >]. complex-times-card-ord-lrule := complex-card-ord-lrule & card-ord-std-linking-lrule & [morph , c-cont [rels ], synsem.loc [cat #cat, uniagr #agr], args <[morph , synsem.loc [cat #cat, uniagr #agr]]>]. complex-plus-card-ord-lrule := complex-card-ord-lrule & [morph , c-cont [rels ], synsem.loc [cat #cat, uniagr #agr], args <[morph , synsem.loc [cat #cat, uniagr #agr]]>]. complex-times-card-lrule := complex-times-card-ord-lrule & [morph , args <[synsem cardinal-number-synsem-syn]>, c-cont.rels.list <[pred card_rel], ...>]. general-complex-plus-card-lrule := complex-plus-card-ord-lrule & [morph , args <[synsem cardinal-number-synsem-syn]>, c-cont.rels.list <[pred card_rel], ...>]. complex-times-ord-lrule := complex-times-card-ord-lrule & [synsem ordinal-number-synsem-syn, args <[synsem ordinal-number-synsem-syn]>, c-cont.rels.list <[pred ord_rel], ...>]. general-complex-plus-ord-lrule := complex-plus-card-ord-lrule & [synsem ordinal-number-synsem-syn, args <[synsem ordinal-number-synsem-syn]>, c-cont.rels.list <[pred ord_rel], ...>]. complex-plus-card-lrule := general-complex-plus-card-lrule & card-ord-std-linking-lrule. complex-plus-ord-lrule := general-complex-plus-ord-lrule & card-ord-std-linking-lrule. complex-inv-plus-card-lrule := general-complex-plus-card-lrule & card-ord-inv-linking-lrule. complex-inv-plus-ord-lrule := general-complex-plus-ord-lrule & card-ord-inv-linking-lrule. #| year-mod-lrule := *constr-lrule* & [c-cont [rels , hcons ], synsem det-time-mod-noun-synsem-syn & [loc [cat.spr < [ loc.cat.drop-det +]>, uniagr a-n-g & [cas lex-case], cont [modcont isect-modcont & [hook [index #e, ltop #t]], hook [index #i, ltop #t, xarg #x] ] ] ], ARGS < stem & [synsem.loc.cont [key.pred "yofc_rel", hook [index #i, ltop #l]]]>]. |# general-adj-lrule := *constr-lrule* & [SYNSEM.loc [cat.ucomps #uc , cont [key #k, hook.xarg #x]], ARGS < stem-or-lex-sign & [SYNSEM.loc [cat.ucomps #uc, cont [key #k, hook.xarg #x]], morph ] > ]. adj-lrule := general-adj-lrule & [synsem.loc.cat #cat, ARGS <[synsem.loc.cat #cat]> ]. norm-adj-prd-lrule := adj-lrule & adj-prd-sign & [synsem.loc.cont [hook.index #i & [e tam], key.arg0 #i]]. norm-adj-non-prd-lrule := adj-lrule & constr-lrule & [synsem.loc [cat [ucomps <>, head adj-head & [prd -], extra-poss x_-], cont [hook [index #i & event & [e [tense none, mood no_mood]]], key.arg0 #i]], args <[LR [LR_INFLECTED +]]>]. adj-pos-lrule := adj-lrule & [synsem.loc.cont [hook.ltop #l, modcont #mod], args <[synsem.loc.cont [hook.ltop #l, modcont #mod]]>, c-cont [rels , hcons ]]. adj-pos-flex-lrule := adj-pos-lrule & [ MORPH ]. adj-comp-lrule := adj-lrule & [synsem.loc.cont [key #key, hook [index #ev, ltop #t, xarg #x], modcont [--scopal #scop, hook [index #i, ltop #t]]], c-cont [hcons , rels ], args <[synsem.loc.cont [modcont [--scopal #scop, hook.index #i], key #key & [arg0 #arg & event, lbl #l], hook [index #ev, ltop #t, xarg #x]] ]>, MORPH ]. adj-comp-flex-lrule := adj-comp-lrule & [ARGS <[synsem.loc.cont.key.arg0 event & [e no_tam]] >, MORPH ]. adj-super-lrule := adj-lrule & [synsem.loc.cont [key #key, hook [ltop #t], modcont [--scopal #scop, hook [index #i, ltop #l]]], c-cont [hcons , rels ], args <[synsem.loc.cont [modcont [--scopal #scop, hook [index #i]], hook [ltop #t], key #key & [arg0 event & #arg , lbl #l]] ]>, MORPH ]. adj-super-flex-lrule := adj-super-lrule & [ARGS <[synsem.loc.cont.key.arg0 event & [e no_tam]] >, MORPH ]. norm-adj-prd-lrule-pos := norm-adj-prd-lrule & adj-pos-lrule & constr-lrule & [ARGS <[LR.LR_INFLECTED +]>, MORPH , SYNSEM.lex-complete +]. norm-adj-prd-lrule-comp := norm-adj-prd-lrule & adj-comp-lrule & [MORPH , SYNSEM.lex-complete +]. norm-adj-prd-lrule-sup := norm-adj-prd-lrule & comparable-sign & adj-super-lrule & [ MORPH , SYNSEM.lex-complete - ]. norm-adj-non-prd-lrule-pos := norm-adj-non-prd-lrule & [SYNSEM #ss, MORPH #morph & , LR lr-syntax, ARGS <[SYNSEM #ss, MORPH #morph ]>]. ; adj-pos-flex-lrule. norm-adj-non-prd-lrule-comp := norm-adj-non-prd-lrule & adj-comp-flex-lrule. adj-inflr := spell-lrule & basic-punct-lrule & lexical-sign & lexical-nonloc-default & inher-nonloc & [SYNSEM #synsem & [loc.anc [active , self , inert ]], morph.list <[head #mhd, STEM #st, --STEM #st ], ... >, LR [ LR_INFLECTED +, LR_STEM -, basic #basic], ARGS < stem-or-lex-sign & [SYNSEM #synsem, morph.list <[head #mhd ], ... >, lr [ lr_inflected -, basic #basic ] ] > ]. attr-adj-inflr := adj-inflr & [synsem.loc.cont.hook.xarg [--cas.first #cas , png #png], args < [ morph ] >]. mal-adj-inflr := adj-inflr & [mal +, MALRULE.MAL-INFL [MAL-ADJ-INFL +, MAL-DET-INFL -]]. adj-comp-inflr := adj-comp-lrule & spell-lrule & inher-nonloc & [signpunct #sp, morph , SYNSEM.LOC.UNIAGR #agr, LR [LR_INFLECTED -], ARGS <[signpunct #sp, SYNSEM.LOC.UNIAGR #agr, morph , LR [LR_INFLECTED -]]>]. norm-adj-non-prd-lrule-sup := norm-adj-non-prd-lrule & comparable-sign & adj-super-flex-lrule. adj-super-inflr := adj-super-lrule & spell-lrule & inher-nonloc & [signpunct #sp, morph , SYNSEM.LOC.UNIAGR #agr, LR [LR_INFLECTED -, BASIC na_or_-], ARGS <[signpunct #sp, morph , SYNSEM.LOC.UNIAGR #agr, LR [LR_INFLECTED -, BASIC +]]>]. adj-prd-super-inflr := norm-adj-prd-lrule-sup & spell-lrule. adv-lrule := constr-lrule & mod-adv-sign & [synsem [lex-complete +, loc [cont [key #k], cat #cat]], args <[synsem [lex-complete +, loc [cont [key #k], cat #cat]]]>]. adv-pos-lrule := adv-lrule & [synsem.loc [cont [hook #hook, modcont #m]], c-cont [hcons , rels ], args <[synsem.loc.cont i-sect-adv-basic-sem-type & [hook #hook, modcont #m]]>, morph ]. adv-comp-lrule := adv-lrule & [synsem.loc.cont [hook [ltop #l, xarg #xarg], modcont [--scopal #scopal, hook [index #i, ltop #l]]], c-cont [hcons , rels ], args <[synsem.loc.cont i-sect-adv-basic-sem-type & [hook.xarg #xarg, modcont [--scopal #scopal, hook.index #i], key [lbl #l, arg0 #arg]] ]>, MORPH ]. adv-flex-lr := clex-id-lrule & mod-adv-sign. adv-flex-lr-0 := adv-flex-lr & [SYNSEM [ LOC.CONT i-sect-adv-sem-type & [ hook [INDEX #ind1, LTOP #hand1], MODCONT.HOOK [ INDEX #ind1, ltop #hand1]], lex-complete + ]]. adv-flex-lr-0-0 := adv-flex-lr-0 & [ MORPH ]. adv-flex-lr-0-2 := adv-flex-lr-0 & [ MORPH ]. adv-flex-lr-1 := adv-flex-lr & [ MORPH , SYNSEM [ LOC.CONT i-sect-adv-sem-type & [ HOOK [INDEX #ind2, LTOP #hand2], MODCONT.HOOK [ INDEX #ind2, ltop #hand2]], lex-complete + ] ]. adv-flex-lr-2 := adv-flex-lr & [ MORPH , SYNSEM [ LOC [ CONT i-sect-adv-sem-type & [ hook [INDEX #ind3, ltop #hand3], MODCONT.HOOK [ INDEX #ind3, ltop #hand3 ]] ], lex-complete - ] ]. pers-passiv-pp-lrule := final-no-rel-inher-nonloc-lrule & [morph #m, synsem non-fin-verb-synsem & [loc [ cat [ head passive-verb-head & [subj < saturated-ref-comp-noun-synsem & [loc [ cat.head [ cas struc-nom, mass-noun #erg-mass-noun, prd #erg-prd ], cont #erg-cont, uniagr n-n-g & [cas struc-nom] ], nonloc #erg-nonloc ] >, aux #aux & -, vform #vform ], ucomps #uc, subcat.list , vcomp #vcomp ], cont #cont ], nonloc #nl, v2 #v2], lr.basic -, ARGS <[morph #m & [ LIST.FIRST.HEAD [ fin.e [tense no_tense], VFORM #vform ] ], synsem verb-synsem & [loc [ cat [ head bse-or-participle-verb-head & [aux #aux, passive psv+, vform #vform ], subj < [ loc.cont.hook.index #ref-subj & ref-ind] >, ucomps #uc, vcomp #vcomp & *vc-sp-eps-list* ], erg < saturated-ref-comp-noun-synsem & [loc [ cat [ head [ mass-noun #erg-mass-noun, prd #erg-prd ] ], cont #erg-cont ], nonloc #erg-nonloc ] >, cont #cont & [hook.index event & [--psv psv+, e.stative -]] ], nonloc #nl, v2 #v2 ], lr.basic + ] > ]. super-unpers-passiv-pp-lrule := final-no-rel-inher-nonloc-lrule & constr-type & [morph #m, c-cont [rels , hcons ], synsem non-fin-verb-synsem & [loc [ cat [ head passive-verb-head & [subj <>, aux #aux & -, vform #vform, _vform #vform ], ucomps #uc, vcomp #vcomp & *vc-sp-eps-list*], cont [hook #hook & [ltop #l, index #ev & event & [--psv psv+, e.stative -]], rels [list < #parg . #rlist>, last #rlast], hcons #hcons, key #key ] ], v2 #v2 ], lr.basic -, ARGS < [morph #m & , synsem verb-synsem & [loc [cat [head bse-or-participle-verb-head & [aux #aux , vform #vform, subj < [ loc.cont.hook.index #i & ref-ind & [png 3-s-g, sort agentive ] ] >], subcat.list <[],...>, ucomps #uc, vcomp #vcomp ], cont [hook #hook , rels [list #rlist, last #rlast], hcons #hcons, key #key & [arg1 #i] ] ], v2 #v2 ], lr.basic + ] > ]. insert-pp-1 := lrule & [ synsem.loc.cat.subcat.list < comp-pp-synsem & [ loc [ cat [ head [ pform durch-von-pform ], _drop - ], cont.hook [index #ref-subj ], uniagr da-n-g ] ] . #rest>, ARGS < [ synsem.loc [ cat [head.subj <[loc.cont.hook.index #ref-subj]>, subcat.list #rest ] , erg < > ] ] > ]. insert-pp-2 := lrule & [ synsem.loc.cat.subcat.list < #e1, comp-pp-synsem & [ loc [ cat [ head [ pform durch-von-pform ], _drop - ], cont.hook.index #ref-subj, uniagr da-n-g ] ] . #rest>, ARGS < [ synsem.loc [ cat [head.subj <[loc.cont.hook.index #ref-subj]>, subcat.list < #e1 . #rest >] , erg < > ] ] > ]. unpers-passiv-pp-lrule-0 := super-unpers-passiv-pp-lrule & insert-pp-1 & [synsem.loc.erg <>]. #| unpers-passiv-pp-lrule-1 := super-unpers-passiv-pp-lrule & erg-subtract-lrule-pp-1. unpers-passiv-pp-lrule-2 := super-unpers-passiv-pp-lrule & erg-subtract-lrule-pp-2. unpers-passiv-pp-lrule-3 := super-unpers-passiv-pp-lrule & erg-subtract-lrule-pp-3. |# state-reflexive-lrule := final-no-rel-inher-nonloc-lrule & constr-type & [morph #m, c-cont [rels , hcons ], synsem non-fin-verb-synsem & [loc [cat [head passive-verb-head & [subj #subj & <[loc.cont.hook.index #psv & [--bnd +]]>, aux #aux ], SUBCAT [list #rest, last *null*], vcomp #vcomp & *vc-sp-eps-list* ], cont [hook #hook & [ltop #l, index #ev &[e.stative +, --psv psv+]], rels [list <#parg . #rlist>, last #rlast], hcons #hcons, key #key] ], v2 #v2 ], lr.basic -, ARGS <[morph #m & , synsem verb-synsem & [loc [ cat [ head ppp-verb-head & [aux #aux ], subj #subj, subcat.list < refl-pronoun-synsem & [LOC.CONT refl-pron-no-sem-type & [HOOK.INDEX #psv]] . #rest >, vcomp #vcomp ], cont [hook #hook, rels [list #rlist, last #rlast], hcons #hcons, key #key] ], v2 #v2 ], lr.basic + ] > ]. state-reflexive-lrule-1 := state-reflexive-lrule. ; & ; erg-subtract-lrule-1. ;[nk] Substantive, die eine Infinitivphrase subkategorisieren, verlangen nur dann unbedingt ein Komma, wenn die Infinitivphrase erweitert ist. ;Daher lasse ich standardmäßig eine "nackte" Infinitivphrase auf der Subcat-Liste von inf-count-noun-LEs und lasse die Kommata um die Inf-Phrase ;herum optional. - "Er hat die Gelegenheit zu schlafen" - "Er hat die Gelegenheit, zu schlafen." ;Die folgende Regel nimmt ein solches inf-count-noun-le und wandelt seine Subcat-Liste so um, dass eine erweiterte Inf-Phrase verlangt ;wird, Kommata aber diesmal obligatorisch sind: "Er hatte die Gelegenheit, ihm zu helfen." - *"Er hatte die Gelegenheit ihm zu helfen." ;Der Rest wird perkoliert. subcat-transport-unary-lrule := unary-rule & [ SYNSEM.LOC.CAT.SUBCAT , ARGS < [ SYNSEM.LOC.CAT.SUBCAT ] > ]. count-noun-bare-inf-to-extended-inf-lrule_min := spell-lrule & subcat-transport-unary-lrule & [ NEEDS-AFFIX -, LR #lr, MORPH #morph, SYNSEM [ LOC [ CAT [ SUBCAT , HEAD #hd, SUBJ #subj, SPR #spr, VCOMP #vcomp ], UNIAGR #uniagr, CONT #cont, ADJUNCTION #adj, SGF #sgf, ANC #anc, COORD #coord ], NONLOC #nonlocal, QUE #que, LEX #lex, PHRASE #phrase, V2 #v2, LEX-COMPLETE #lex-complete ], ARGS < inf-count-noun-le & [ LR #lr, MORPH #morph, SYNSEM [ LOC [ CAT [ SUBCAT , HEAD #hd, SUBJ #subj, SPR #spr, VCOMP #vcomp ], UNIAGR #uniagr, CONT #cont, ADJUNCTION #adj, SGF #sgf, ANC #anc, COORD #coord], NONLOC #nonlocal, QUE #que, LEX #lex, PHRASE #phrase, V2 #v2, LEX-COMPLETE #lex-complete ] ] > ]. count-noun-bare-inf-to-extended-inf-lrule := count-noun-bare-inf-to-extended-inf-lrule_min & basic-punct-lrule & [ SYNSEM.LOC.CAT.SUBCAT ]. rp-pron-synsem-sem-rule-type := *constr-unary-lrule* & [morph , lr [basic -], c-cont [hcons , rels ], synsem comp-pp-synsem & [loc [uniagr #agr, cont.hook #hook]], args <[morph , lr [basic +], synsem.loc [cat.subcat , cont.hook #hook, uniagr #agr]]>]. rp-da-pron-type := rp-pron-synsem-sem-rule-type & [c-cont [rels ]]. rp-hier-pron-type := rp-pron-synsem-sem-rule-type & [c-cont [rels ]]. rp-pron-slash-rule-type := rp-da-pron-type & rp-in-slash-sign & basic-punct-lrule & spell-lrule & [synsem.loc.cat [head #head & comp-prep-head, subcat ] , args < form & [synsem.loc [cat [head #head, subcat ]]]>]. rp-da-pron-full-rule-type := sign & rp-da-pron-type & basic-punct-lrule & spell-lrule & [synsem [loc.cat [head #head & comp-prep-head, subcat.list < >], nonloc undef-nonlocs], args <[synsem.loc [cat [head #head, subcat.list < [] > ]]]>]. rp-hier-pron-full-rule-type := sign & rp-hier-pron-type & basic-punct-lrule & spell-lrule & [synsem [loc.cat [head #head & comp-prep-head, subcat.list < >], nonloc undef-nonlocs], args <[synsem.loc [cat [head #head, subcat.list < [] > ]]]>]. super_basic_punctuation_rule := lexical-sign & spell-lrule & [ KEY-ARG #keyarg, ROOT #root, VF #vf, POSS-AFF #poss-aff, SIGNPUNCT [ RPUNCT.PUNCTACCURACY #punctacc & considerpunct ], MORPH.LIST.FIRST.--STEM #stem, ARGS < [ KEY-ARG #keyarg, ROOT #root, VF #vf, POSS-AFF #poss-aff, SIGNPUNCT.RPUNCT.PUNCTACCURACY #punctacc, MORPH.LIST.FIRST.--STEM #stem ] > ]. basic_punctuation_rule := super_basic_punctuation_rule & [ SYNSEM #synsem, ARGS < [ SYNSEM #synsem ] > ]. punctuation_affix_rule := super_basic_punctuation_rule & stempunct & [ NEEDS-AFFIX +, LR [ P #p, LR_INFLECTED #lri & +, LR_STEM #stem, U #u, BASIC #b, REORDER #reo, ITERATE #it ], MORPH.LIST.FIRST.HEAD #hd, ARGS < [ LR [ P #p, LR_INFLECTED #lri, LR_STEM #stem, U #u, BASIC #b, REORDER #reo, ITERATE #it, PUNCT-LR-ARG punct-lr-arg ], MORPH.LIST.FIRST.HEAD #hd, MALRULE.MAL-COMMA-INFL - ] > ]. punctuation_suffix_rule := punctuation_affix_rule & [ ARGS < [ LR.PUNCT-LR-ARG suffix-lr-arg ] > ]. punctuation_no_affix_rule := basic_punctuation_rule & [ NEEDS-AFFIX -, LR [ lr_STEM -, LR_INFLECTED + ] ]. punctuation_no-affix-rule2 := basic_punctuation_rule & stempunct & [ NEEDS-AFFIX -, LR [ P #p, LR_INFLECTED #lri, U #u, BASIC #b, REORDER #reo, ITERATE #it ], ARGS < [ LR [ P #p, LR_INFLECTED #lri, U #u, BASIC #b, REORDER #reo, ITERATE #it, PUNCT-LR-ARG suffix-lr-arg ] ] > ]. punctuation_possib_sent_fin_rule := basic_punctuation_rule & [ ARGS < [ SYNSEM.LOC.CAT.HEAD possib-sent-final-head ] > ]. basic_punctuation_period_rule := basic_punctuation_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT period_punct_min & [ MSGPRED punct-prop-comm ], PAIRED ppair_min ], ARGS < [ SIGNPUNCT [ LPUNCT #lpunct ] ] > ]. punctuation_period_rule := basic_punctuation_period_rule & punctuation_suffix_rule & punctuation_possib_sent_fin_rule & [ SIGNPUNCT.PAREN #paren, ARGS < [ SYNSEM.LOC.CONT.HOOK.INDEX.--PUNCT prop-punct, SIGNPUNCT.PAREN #paren ] > ]. ;[nk] abbrev_to_period_punct rule "verwandelt" Abkürzungspunkte am Satzende in Satzpunkte. ;"Er sah den Mann, die Frau usw." word_dot_to_period_punct_rule := basic_punctuation_period_rule & punctuation_no_affix_rule & [ ARGS < dotted_sign > ]. basic_punctuation_excl_rule := punctuation_suffix_rule & punctuation_possib_sent_fin_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT qmark_or_excl_mark_min, PAREN #paren ], ARGS < [ SIGNPUNCT [ LPUNCT #lpunct, PAREN #paren ]] > ]. init_punctuation_excl_rule := basic_punctuation_excl_rule & [ SIGNPUNCT.RPUNCT.MSGPRED punct-prop-comm, ARGS < [ SIGNPUNCT.RPUNCT no_punct_min, SYNSEM.LOC.CONT.HOOK.INDEX.--PUNCT imp-punct] > ]. recursive_punctuation_excl_rule := basic_punctuation_excl_rule & [ SIGNPUNCT.RPUNCT.MSGPRED #msgpred, ARGS < [ SIGNPUNCT.RPUNCT qmark_or_excl_mark_min & [ MSGPRED #msgpred ] ] > ]. basic_punctuation_qmark_rule := punctuation_suffix_rule & punctuation_possib_sent_fin_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT qmark_or_excl_mark_min & [ MSGPRED punct-ques ], PAREN #paren ], ARGS < [ SIGNPUNCT [ LPUNCT #lpunct, PAREN #paren ] ] > ]. recursive_punctuation_qmark_rule := basic_punctuation_qmark_rule & [ ARGS < [ SIGNPUNCT.RPUNCT qmark_or_excl_mark_min ] > ]. init_punctuation_qmark_rule := basic_punctuation_qmark_rule & [ ARGS < [ SIGNPUNCT.RPUNCT no_punct_min, SYNSEM.LOC.CONT.HOOK.INDEX.--PUNCT ques-punct ] > ]. punctuation_semicol_rule := punctuation_suffix_rule & punctuation_possib_sent_fin_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT semicol_punct_min & [MSGPRED punct-prop-comm ], PAIRED no_ppair_min, PAREN #paren, --COORDPAIRED no_ppair_min ], ARGS < [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT no_punct_min, PAREN #paren ] ] > ]. super_basic_comma_rule := basic_punctuation_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT comma_punct_min, PAIRED no_ppair_min, PAREN #paren, --COORDPAIRED no_ppair_min, INFPUNCT [ --LEFT_INFCOMMA left_inf_comma, --RIGHT_INFCOMMA right_inf_comma ] ], ARGS < [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT no_punct_min, PAREN #paren ] ] > ]. basic_comma_rule := super_basic_comma_rule & punctuation_suffix_rule. punctuation_comma_rule := basic_comma_rule & [ SIGNPUNCT.PUNCTPAIR ppair_min ]. mal_punctuation_comma_rule := super_basic_comma_rule & punctuation_no-affix-rule2 & [ MORPH #morph, ARGS < [ MORPH #morph ] >, SIGNPUNCT [ PUNCTPAIR ppair_min ] ]. punctuation_rparen_comma_rule := basic_comma_rule & [ SIGNPUNCT.PUNCTPAIR no_ppair_min ]. punctuation_lparen_rule := basic_punctuation_rule & punctuation_affix_rule & [ SIGNPUNCT [ LPUNCT paren_punct_min, RPUNCT #rpunct & no_punct_min, PAREN #paren, PAIRED #paired, --COORDPAIRED #coordpaired ], ARGS < [ SIGNPUNCT [ RPUNCT #rpunct, PAREN advers_comma_punct_min & #paren, PAIRED #paired, --COORDPAIRED #coordpaired ] ] >]. basic_punct_hyphen_mrs_rule := *constr-unary-lrule* & [ c-cont [hcons ], synsem [loc [ cont [ hcons #hcons ]]], ARGS < [ SYNSEM.LOC.CONT.HCONS #hcons ] > ]. basic_punct_hyphen_rule := punctuation_affix_rule & basic_punct_hyphen_mrs_rule & [ SYNSEM [ LOC [ CAT [ HEAD #hd, SUBJ #subj, SPR < det-synsem >, UCOMPS #ucomps, SUBCAT #subcat, VCOMP #vcomp, INFLECTED #infl ], ANC #anc ], NONLOC #nonloc, QUE #que, PHRASE #phrase, LPER #lper, RPER #rper, LKEYS #lkeys, PUNCT #punct ], ARGS < [ SYNSEM ref-noun-synsem & [ LOC [ CAT [ HEAD #hd, SUBJ #subj, UCOMPS #ucomps, SUBCAT #subcat, VCOMP #vcomp, INFLECTED #infl ], ANC #anc ], NONLOC #nonloc, QUE #que, PHRASE #phrase, LPER #lper, RPER #rper, LKEYS #lkeys, PUNCT #punct ], SIGNPUNCT.RPUNCT non_advers_v2_no_punct_min ] > ]. punct_right_hyphen_rule := basic_punct_hyphen_rule & punctuation_suffix_rule & [ SYNSEM.LEX-COMPLETE -, c-cont [rels ], SIGNPUNCT [ LPUNCT #lpunct, RPUNCT dash_punct_min, PAIRED ppair_or_no_ppair_min, PAREN #paren, --COORDPAIRED no_ppair_min], ARGS< [SIGNPUNCT [LPUNCT #lpunct, RPUNCT no_punct_min, PAREN #paren]]>]. punct_left_hyphen_rule := basic_punct_hyphen_rule & [SIGNPUNCT [ RPUNCT #lpunct, LPUNCT dash_punct_min, PAIRED no_ppair_min, PAREN #paren, --COORDPAIRED no_ppair_min], SYNSEM.LOC [ UNIAGR #uniagr, CAT.SPR #spr ], c-cont [rels ], ARGS < [SIGNPUNCT [LPUNCT #lpunct, RPUNCT no_punct_min, PAREN #paren], SYNSEM.LOC [ UNIAGR #uniagr, CAT.SPR #spr ] ] > ]. punctuation_rparen_rule := basic_punctuation_rule & punctuation_suffix_rule & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT paren_punct_min, PAREN paren_punct_min, PAIRED no_ppair_min], ARGS < [ SIGNPUNCT.LPUNCT #lpunct ] > ]. punct-lrule-noarg-lrule := lrule & [ LR.PUNCT-LR-ARG non-punct-lr-arg ].