;;; -*- 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 marked-parenth-constr-rule-type := binary-grammar-or-mw-rule. #| so-np-rule-type := marked-parenth-constr-rule-type & collect-constr-1b-liszt & [ SYNSEM parenth-synsem, C-CONT [ RELS , HCONS ], ARGS < [ SYNSEM.LOC.CAT.HEAD so-dummy-head, SIGNPUNCT.PAIRED ppair_min ], [ SYNSEM saturated-ref-noun-synsem & [ LOC [ CAT.HEAD.CAS struc-nom & [ MORPH-CASE nom-val ], CONT.HOOK [ INDEX #ref1 ] ] ], SIGNPUNCT [ PUNCTPAIR ppair_min & [PPAIRACCURACY #pacc ], RPUNCT.PUNCTACCURACY #pacc ] ] > ]. so-vp-rule-type := marked-parenth-constr-rule-type & [ SYNSEM parenth-synsem & [ LOC [ CAT [ SUBCAT , SUBJ < > ], CONT #cont ], NONLOC #nonloc ], ARGS < [ SYNSEM.LOC.CAT.HEAD so-dummy-head, SIGNPUNCT.PAIRED ppair_min ], [ SYNSEM [ LOC [ CAT [ HEAD initial_+_fin-verb-head, SUBCAT , SUBJ < > ], CONT #cont ], NONLOC #nonloc & [ SLASH ], V2 non_v2 ] ] > ]. ; SIGNPUNCT [ PUNCTPAIR ppair_min & [PPAIRACCURACY #pacc ], ; RPUNCT.PUNCTACCURACY #pacc ] ; & [ LOC.CONT.HOOK.LTOP #l ] bind-marked-parenth-rule-type := cle-binary-rule & [ SYNSEM #synsem, SIGNPUNCT [ PAIRED ppair_min, --COORDPAIRED ppair_min ], ARGS < [ SYNSEM #synsem & [ LEX +, PHRASE -, LEX-COMPLETE +, LOC.CAT.HEAD.V1 *undef*], SIGNPUNCT.RPUNCT #lpunct ], marked-parenth-constr-rule-type & [ SIGNPUNCT [ LPUNCT #lpunct, PAREN #lpunct ] ]> ]. |# basic_v1-commun-parenth-rule-type := collect-constr-2-liszt & head-mod-sem-princ & head-first-rule & inher-left-sister-pnctpr-binary-rule-type & [ SYNSEM [ LOC [ CONT [ HOOK #h, MODCONT #modcont ], CAT #cat, UNIAGR #uniagr, ANC #anc], NONLOC #nonloc, LEX #lex, PHRASE #phrase, LEX-COMPLETE #lex-complete, QUE #que ], SIGNPUNCT [ PAIRED #ppair, --COORDPAIRED #ppair ], ARGS < [ SYNSEM [ LEX + & #lex, PHRASE - & #phrase, LEX-COMPLETE + & #lex-complete, QUE #que, LOC [ CAT #cat & [ HEAD.V1 *undef* ], UNIAGR #uniagr, ANC #anc, CONT [ HOOK #h, MODCONT #modcont ]], NONLOC #nonloc ], MALRULE.MAL-COMMA-INFL - ], [ SYNSEM [ LOC [ CAT [ HEAD initial_+_fin-verb-head, SUBCAT , SUBJ < > ]], NONLOC.SLASH , V2 non_v2 ], SIGNPUNCT.PUNCTPAIR #ppair ] > ]. ;;; 10/12/2011 v1-commun-parenth-rule-type-nodash := basic_v1-commun-parenth-rule-type & [ C-CONT [RELS , HCONS ], ARGS < [ SYNSEM.LOC.CONT.HOOK [LTOP #t ], SIGNPUNCT [ RPUNCT #lpunct & [--PAIRED #paired], PAIRED #paired ] ], [ SYNSEM.LOC.CONT [ HOOK [INDEX #arg1, LTOP #t]], SIGNPUNCT [ LPUNCT #lpunct, PAREN #lpunct ] ] > ]. head-paren-dash-punct-rule-type := *rule* & [ ARGS < [ SIGNPUNCT [ LPUNCT advers_comma_punct_min, RPUNCT comma_or_paren_or_no_punct_min & [ PUNCTACCURACY #punctacc ], PAIRED ppair_min & [ PPAIRACCURACY #punctacc ] ] ], [] > ]. v1-commun-parenth-rule-type-dash := basic_v1-commun-parenth-rule-type & head-paren-dash-punct-rule-type & [ C-CONT [RELS , HCONS ], ARGS < [ SYNSEM.LOC.CONT.HOOK [ LTOP #t ] ], basic-v1paren-dash-rule-type & [ SYNSEM.LOC.CONT [HOOK.LTOP #t]] > ]. basic-v1paren-dash-rule-type := collect-constr-1b-liszt & [ SYNSEM [ LOC [ CAT #cat, ADJUNCTION #adj, UNIAGR #uniagr, CONT [ HOOK #h, KEY #key ] ], NONLOC #nonloc, QUE #que, LPER #lper ], SIGNPUNCT.LPUNCT #lpunct, C-CONT [RELS , HCONS ], LR lr-syntax_min & [ LR_INFLECTED + ], ARGS [ FIRST dash-le & [ SIGNPUNCT.LPUNCT #lpunct ], REST.FIRST [ SYNSEM [ LOC [ CAT #cat & [ HEAD initial_+_fin-verb-head, SUBCAT , SUBJ < > ], ADJUNCTION #adj, UNIAGR #uniagr, CONT [ HOOK #h & [ INDEX #arg1, LTOP #t] ] ], NONLOC #nonloc & [ SLASH ], V2 non_v2, QUE #que, LPER #lper ] ] ] ]. paren-onedash-punct-rule-type := binary-rule & [ SIGNPUNCT [ RPUNCT #rpunct, PAREN paren_punct_min ], ARGS < dash-le, [ SIGNPUNCT [ LPUNCT advers_comma_punct_min, RPUNCT #rpunct & clause_punct_min, PAREN advers_comma_punct_min ] ] > ]. paren-twodash-punct-rule-type := ternary-sign & [ SIGNPUNCT [ PAIRED #paired, PUNCTPAIR #punctpair, RPUNCT #rpunct, PAREN #paren ], ARGS < dash-le, [ SIGNPUNCT [ LPUNCT advers_comma_punct_min, RPUNCT comma_or_paren_or_no_punct_min & [ PUNCTACCURACY #pnctacc ], PAIRED ppair_min & [ PPAIRACCURACY #pnctacc ] ] ], [ SYNSEM.LOC.CAT.HEAD dash-head, SIGNPUNCT [ PAIRED #paired, PUNCTPAIR #punctpair, RPUNCT #rpunct & [ PUNCTACCURACY #pnctacc ], PAREN #paren ] ] > ]. v1-paren-twodash-rule-type := paren-twodash-punct-rule-type & basic-v1paren-dash-rule-type. v1paren-onedash-rule-type := paren-onedash-punct-rule-type & basic-v1paren-dash-rule-type. #| main-clause-parenthesis-rule-type := cle-binary-rule & [ SYNSEM #synsem, SIGNPUNCT [ PAIRED ppair_min, --COORDPAIRED ppair_min ], ARGS < [ SYNSEM #synsem & [ LEX +, PHRASE -, LEX-COMPLETE +, LOC.CAT.INFLECTED + ], SIGNPUNCT.RPUNCT advers_comma_punct_min ], get-rpunct-msgpred-rule-type & [ SYNSEM.ELLIPSE - ] > ]. quote-rule-type := cle-ternary-rule & [ SYNSEM quotesynsem & [ LOC #loc, V2 #v2 ], ARGS < basic-left-dquote-le, [SYNSEM [ LOC #loc & [CAT.HEAD root-head], V2 #v2 ], RESTR-COLL.GOT-RPUNCT-MSGPRED +, SIGNPUNCT.RPUNCT #rpunct ], [ SYNSEM.LOC.CAT.HEAD rightquote-head, SIGNPUNCT.RPUNCT #rpunct2 &[ MSGPRED #msgpred ]] >, SIGNPUNCT [ RPUNCT.MSGPRED #msgpred, --RPUNCT < #rpunct, #rpunct2 > ] ]. colon-quote-rule-type := cle-binary-rule & [ ARGS < colondummy, quote-rule-type > ]. |# percolate-pron-2 := grammar-rule & [synsem.loc.cat._pron [expl [list #e_ini, last #e_fin], refl [list #r_ini, last #r_fin]], args < [synsem.loc.cat._pron [expl [list #e_ini, last #e_mid], refl [list #r_ini, last #r_mid]]], [synsem.loc.cat._pron [expl [list #e_mid, last #e_fin], refl [list #r_mid, last #r_fin]]]> ]. percolate-pron := unary-rule & [synsem.loc.cat._pron [expl [list #e_ini, last #e_fin], refl [list #r_ini, last #r_fin]], args < [synsem.loc.cat._pron [expl [list #e_ini, last #e_fin], refl [list #r_ini, last #r_fin]]]>]. slash-intro-sign := percolate-pron & [synsem [nonloc contains-slash ], args <[vf - ]>]. anc-retrieval-rule := grammar-rule. #| h-opt-rule:= headed-unary-rule-type & inher-nonloc & inher-anc-unary & [synsem saturated-synsem & [loc.cat.extra-poss x_- & s-, phrase +, lex -], head-dtr #h, args <#h & [synsem.loc.cat [subcat.list *opt-cons*, subj <> ]]>]. |# bind-anc := anc-retrieval-rule & headed-unary-rule-type & inher-nonloc & inher-ltops & got-no-rpunct-msgpred-rule-type & [synsem saturated-synsem & [loc [cat.extra-poss x_+, anc anc-inher-bound & [self , active , inert ]], phrase +, lex -], head-dtr #h, args <#h & anc-retrieval-rule & [synsem saturated-anc-to-bind-synsem & [loc.anc anc-to-bind & [self [ last *null*], active [ last *null* ] ], phrase +, lex - ] ]>]. #| find-anc := headed-unary-rule-type & anc-retrieval-rule & inher-nonloc & [synsem saturated-anc-to-bind-synsem & [loc [adjunction modified-unmodifiable, cat.extra-poss x_+, anc anc-to-bind & [self #self, active [list #rest, last *null* ], inert ]], phrase +, lex -], head-dtr #h, args <#h & anc-retrieval-rule & [synsem saturated-anc-to-bind-synsem & [loc [adjunction modified-unmodifiable, anc anc-to-bind & [self #self & [list <[]>, last *null*], active [list <[] . #rest>, last *null* ] ]], phrase +, lex - ] ]>]. |# h-extra-rel-type := anc-retrieval-rule & head-first-rule & bin-headed-inher-rule-type & head-non-valence-rule-type & inher-ltops & no-commapair-binary-rule-type & [synsem saturated-anc-to-bind-synsem & [loc [cat [no_adj #no_adj, extra-poss s- ], anc anc-to-bind & [self , active #active , inert ], adjunction modified & unmodifiable, sgf #sgf ], v2 #v2, phrase +, lex - ], NON-HEAD-DTR [ synsem saturated-modifier-synsem & [loc [cat [ head rel-clause-head & [ extra +, mod.loc.cont.hook.index #i & [png 3-n-g]], no_adj #no_adj ], cont.hook [ltop #h ]], nonloc contains-no-rel, phrase +, lex - ], vf -, key-arg + ], head-dtr [ synsem saturated-synsem & [loc [adjunction modifiable, anc anc-inher & [self , active #active & [list *cons*, last *null*] ], sgf #sgf], nonloc contains-no-rel, v2 #v2 ] ] ]. inher-anc-binary := cle-binary-rule & [synsem.loc.anc anc-inher-unbound & [active [list #a1, last #a5], inert [list #i1, last #i3]], args <[synsem.loc.anc anc-inher & [active [list #a4, last #a5], inert [list #a3, last #a4], self [list #a2, last #a3]]], [synsem.loc.anc anc-inher & [active [list #a1, last #a2], inert [list #i2, last #i3 ], self [list #i1, last #i2 ]]]> ]. inher-anc-unary := cle-unary-rule & [synsem.loc.anc anc-inher-unbound & [active [list #a1, last #a2], inert [list #i1, last #i3]], args <[synsem.loc.anc anc-inher & [active [list #a1, last #a2], inert [list #i2, last #i3 ], self [list #i1, last #i2 ]]]> ]. self-less-rule-type := grammar-rule & [synsem.loc.anc anc-inher & [self ]]. det-or-np-n1-head-rule-type := anc-intro-sign & inher-anc-binary & head-last-rule & head-mrs-spec-binary-rule & inher-nonloc2 & no-commapair-binary-rule-type & [synsem saturated-noun-synsem & [loc [ uniagr #agr, coord - ], lex -, phrase + ], ARGS <[vf - ], [synsem noun-synsem & [loc [uniagr #agr, cat.subcat [list #last & *null*, last #last]] ] ] > ]. det-n1-head-rule-type := det-or-np-n1-head-rule-type & head-last-spec-p-2 & [ synsem.loc [uniagr #agr, CONT [ modcont #mc, hook.ltop #dhand ]], C-CONT [ RELS , HCONS ], ARGS < [ key-arg +, synsem #c & [ loc [ cat.head det-head & [spec.loc.uniagr #agr], CONT [ hook.ltop #dhand ] ] ] ], [ synsem.loc [ cont.modcont #mc, cat.spr < #c >] ] > ]. np-n1-head-rule-type := det-or-np-n1-head-rule-type & [synsem.loc.CONT [hook.ltop #uhand], C-CONT [ RELS , HCONS ], ARGS <[key-arg +, synsem complete-ref-comp-noun-synsem & [loc [ cat.head.cas #cas, CONT [ hook [INDEX #measure-ind & [mass-unit +, png 3-n-g ]], key std_nom_rel ] ], phrase + ] ], [synsem.loc [ cat [ HEAD.cas #cas, spr < [] > ], UNIAGR c-s-g, CONT [ hook [INDEX #noun-ind & [sort mass, png 3-n-g ], ltop #noun-hand] ] ] ] > ]. empty-noun-modifier-rule-type := inher-anc-unary & inher-nonloc-unheaded-unary-rule & self-less-rule-type & adj-noun-sem-rule & noun-sign & [ RESTR-COLL.REL-CLAUSE-PROJ + ]. rs-proj-rule-type := inher-nonloc-unheaded-unary-rule & cle-unary-rule & noun-sign & phrasal-sign & collect-constr-1-liszt & [ c-cont [rels , hcons ], SYNSEM [ LOC [anc anc-inher & [self , active , inert ], CONT [hook [INDEX #ind, ltop #ltop], KEY #key ]]], RESTR-COLL.REL-CLAUSE-PROJ +, ARGS < [ SYNSEM.LOC [CAT.HEAD.MOD.LOC.CONT.HOOK.INDEX #ind, CONT [ HOOK.LTOP #hand, MODCONT.HOOK [ INDEX #ind ]]]] > ]. empty-noun-det-rule-type := cle-unary-rule & inher-nonloc-unheaded-unary-rule & det-noun-sem-rule & noun-sign. price-pp-noun-rule-type := cle-unary-rule & inher-nonloc-unheaded-unary-rule & price-pp-noun-sem-rule & complete-ref-comp-noun-sign & [ synsem.loc [cat.head.cas.morph-case nom-acc-dat-val, uniagr nda-n-g] ]. empty-det-rule-type := anc-intro-sign & inher-anc-unary & headed-unary-rule & empty-det-sem-rule & [synsem saturated-noun-synsem & [loc [ cat.inflected #inflected, coord - ], nonloc undef-nonlocs & [_slash #_slash, slash #sl, rel #rel], que #que, lex -, phrase #phrase ], head-dtr #hd, ARGS < #hd & [ synsem [ loc [ cat [ head lpe_-_noun-head, spr < det-synsem & [loc.cat.head.infl [UNIAGR #agr, NODEF-AGR #agr, NP-DECL strong] ] >, subcat , inflected #inflected ], coord - ], nonloc undef-nonlocs & [_slash #_slash, slash #sl, rel #rel], que #que, phrase #phrase ] ] > ]. n-mod-gen-np-rule-type := self-less-rule-type & inher-anc-binary & head-first-rule & head-mrs-constr-binary-rule & inher-nonloc2 & no-commapair-binary-rule-type & [non-head-dtr [key-arg +, synsem.lper +]]. np-to-det-rule-type := unheaded-unary-rule & inher-anc-unary & self-less-rule-type & constr-type & det-sign & [c-cont [rels ], synsem [loc [ cat.head.spec.loc [uniagr nda-n-g, cont [hook [index #ind1], key.lbl #hand1]], cont [ hook [index #ind1 ], KEY #key & quant-rel & [ PRED "def_q_rel", ARG0 #ind1, RSTR #rest1 ], RELS [ LIST < #key, #poss & poss-rel & [ LBL #hand1, ARG1 #ind1, ARG2 #ind2 ], #det & udef_rel & [ PRED "udef_q_rel", ARG0 #ind2, RSTR #rest2 ] . #nounsem >, LAST #nounlast ], HCONS [ LIST < qeq & [HARG #rest1, LARG #hand1 ], qeq & [HARG #rest2, LARG #hand2 ] . #nounh-cons >, LAST #nounh-cons-last ] ], uniagr #agr, coord - ], nonloc #nonloc, que #que, lex -, phrase #phrase ], ARGS < [poss-aff +, synsem noun-synsem & [loc [ cat [ head.cas.morph-case gen-val, spr < [ LOC.CONT.KEY #det ] >, subcat ], cont [ key named_ep & [LBL #hand2, ARG0 #ind2 ], RELS [ LIST #nounsem, LAST #nounlast ], HCONS [ LIST #nounh-cons, LAST #nounh-cons-last ] ], uniagr #agr & g-n-g ], nonloc #nonloc & undef-nonlocs, que #que, phrase #phrase ] ] > ]. bin-headed-inher-rule-type := headed-binary-rule & head-liszt-2-rule & inher-nonloc2. inher-ltops := headed-rule & [SYNSEM.LOC.CONT.HOOK._LTOPS #ltops, HEAD-DTR.SYNSEM.LOC.CONT.HOOK._LTOPS #ltops]. super-general-valence-rule-type := inher-ltops & bin-headed-inher-rule-type & [synsem [ loc [ _third -, cat [spr #spr, vcomp <>, no_adj #no_adj ], coord na_or_-, adjunction #adj ], lex -, phrase +, v2 #v2 ], head-dtr [vf -, synsem [loc [cat [spr #spr, vcomp <>, no_adj #no_adj ], _third -, adjunction #adj ], v2 #v2 ] ], non-head-dtr [vf -]]. general-valence-rule-type := self-less-rule-type & percolate-pron-2 & inher-anc-binary & super-general-valence-rule-type & [non-head-dtr [synsem [loc [cat.head.v1 *undef* , cont.hook.index.--top na_or_- ]]]]. non-extraposed-rule-type := headed-binary-rule & [head-dtr [synsem.loc.cat.extra-poss x_- & s- ], non-head-dtr.synsem.loc.cat.head.extra na_or_-]. strict-non-extraposed-rule-type := non-extraposed-rule-type & [non-head-dtr.synsem.loc.cat.head.extra -]. general-h-s-corr-rule-type := general-valence-rule-type & no-commapair-binary-rule-type & [synsem.loc [sgf sgf-lor- & [lor <>, lee <>], cat [subj <#subj>, --ucomps #--uc, ucomps #uc, subcat #sc]], head-dtr [synsem.loc [sgf sgf-lor-lee-, cat [ head fin-verb-head, ucomps #uc, --ucomps #--uc, subj <#subj>, subcat #sc]]], non-head-dtr [synsem #subj & saturated-synsem & [loc [cat.head.v1 *undef*, sgf sgf-lee-, uniagr n-n-g], nonloc [rel ]]] ]. general-h-s-rule-type := general-valence-rule-type & no-commapair-binary-rule-type & [synsem.loc [sgf sgf-lor+ & [lor <#sind>], cont.hook.index.SF prop-or-ques, cat [subj <>, --ucomps #--uc, ucomps #uc, subcat #sc]], head-dtr [synsem.loc [sgf sgf-lor-lee-, cat [ head fin-verb-head, ucomps #uc, --ucomps #--uc, subj <#subj & [loc.cont.hook.index #sind]>, subcat #sc]]], non-head-dtr [synsem #subj & saturated-synsem & [loc [cat.head.v1 *undef*, sgf sgf-lee-, uniagr n-n-g], nonloc [rel ]]] ]. general-h-c-rule-type := general-valence-rule-type & [synsem.loc [sgf #sgf, cat [subj #subj, --ucomps #--uc, ucomps #uc, subcat.list #rest]], head-dtr.synsem.loc [sgf #sgf, cat [subj #subj, --ucomps #--uc, ucomps #uc, subcat.list <#c . #rest>]], non-head-dtr.synsem #c ]. general-h-uc-rule-type := general-valence-rule-type & [synsem.loc [sgf #sgf, cat [subj #subj, subcat.list #sc, ucomps #rest , --ucomps <#hook . #irest>]], head-dtr.synsem.loc [sgf #sgf, cat [head fin-verb-head, subj #subj, subcat.list #sc, ucomps <#c . #rest>, --ucomps #irest]], non-head-dtr.synsem #c & [loc [uniagr gda-n-g, cont.hook #hook]]]. cf-s-rule-type := super-general-valence-rule-type & head-first-rule & [synsem [loc [sgf #sgf, anc [self , active , inert ], cat [subj <>, ucomps <>, subcat [list <>, last #last]]], cat-change -], head-dtr [key-arg +, synsem [loc [sgf #sgf, anc anc-inactive & [self , active , inert ], cat [subj <>, subcat [list <#c>, last #last & *null*]]], lex +]], non-head-dtr [synsem #c ]]. #| comp-s-rule-type := cf-s-rule-type & basic_commapair-binary-rule-type & inher-left-sister-pnctpr-binary-rule-type & [ head-dtr [synsem.loc.cat.head complementizer-head ], non-head-dtr [SIGNPUNCT.--RPUNCT clause_punct_min ] ]. |# relax-right-comma-unary-rule-type := unary-rule_min & sign & [ SYNSEM #synsem, VF #vf, ROOT #root, SIGNPUNCT [ LPUNCT #lpunct, RPUNCT no_punct_min, INFPUNCT #infpunct, PAREN #paren, PAIRED ppair_min, --COORDPAIRED #coordpaired ], ARGS < basic_commapair-rule-type & [ SYNSEM #synsem, SIGNPUNCT [ LPUNCT #lpunct, RPUNCT no_punct_min & [ PUNCTACCURACY partialpunct & #pacc ], INFPUNCT #infpunct, PAREN #paren, PAIRED no_ppair_min & [ PPAIRACCURACY #pacc ], --COORDPAIRED #coordpaired ], VF #vf, ROOT #root ] > ]. comp-s-rule-type := cf-s-rule-type & basic_commapair-binary-rule-type & inher-left-sister-pnctpr-binary-rule-type & [ head-dtr [synsem.loc.cat.head complementizer-head ] ]. v1-s-rule-type := cf-s-rule-type & no-commapair-binary-rule-type & [head-dtr [synsem.loc [cont [hook.index #e, rels.list <[], ... >], cat [head initial_+_fin-verb-head & [aux -], subcat.list <[loc [cont.hook.index #e, cat.head eps-verb-head ]]>]]]]. aux-s-rule-type := cf-s-rule-type & no-commapair-binary-rule-type & [synsem.loc.cat.--ucomps #--uc, head-dtr [synsem.loc [cont [hook [index #e, ltop #l], rels ], cat [head initial_+_fin-verb-head & [aux +], subcat.list <[loc [cont.hook [index #e, ltop #l], cat.head eps-verb-head ]]>]]], non-head-dtr [synsem.loc [cat.--ucomps #--uc, cont.hook [index #e, ltop #l]]]]. h-sgf-rule-type := inher-anc-unary & self-less-rule-type & headed-unary-rule-type & [synsem [loc [cat [subj <>, vcomp <>, subcat.list <>, extra-poss x_-], adjunction unmodifiable, sgf sgf-lee+ & [lor <>, lee <#sind>], cont.hook.index.e tensed ], nonloc undef-nonlocs, phrase +], head-dtr #hd-dtr & [synsem [loc [sgf sgf-lor-lee-, cat [ head initial_+-or-eps-verb-head, vcomp <>, subj , subcat.list <>]], nonloc undef-nonlocs]], args <#hd-dtr>]. imp-bin-rule-type := inher-anc-binary & self-less-rule-type & inher-nonloc2 & collect-constr-2-liszt & got-no-rpunct-msgpred-rule-type & no-commapair-binary-rule-type & [synsem verb-synsem & [loc [cat [head initial_+_fin-verb-head & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive, subj <#subj>], subj <>, subcat.list #sc, ucomps #uc, extra-poss x_-], sgf sgf-lor-lee-, cont [hook [_ltops #ltops, ltop #h0, index #ind & [SF comm], --oind #oind] ]], nonloc #nonloc & undef-nonlocs, phrase +], C-CONT [RELS , HCONS ], head-dtr #hd-dtr, ARGS <#hd-dtr & [key-arg +, synsem [nonloc #nonloc, loc [sgf sgf-lor-lee-, cat [ head initial_+_fin-verb-head & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive, subj <>], subj <#subj & ref-noun-synsem & [loc [cont personal-pronoun-sem-type & [hook [index #p_ind & ref-ind ], key [arg0 #p_ind & [png #png]]], uniagr n-n-g & [png 3-p-g & #png]]]>, subcat.list #sc, ucomps #uc], cont [hook [--oind #oind, index #ind & [e prs-sbj], ltop #h0, _ltops #ltops ] ]]]], [synsem #subj]> ]. basic-v1-imp-rule-type := inher-anc-unary & self-less-rule-type & collect-constr-1-liszt & inher-ltops & inher-nonloc & oind-unary-rule & [synsem fin-verb-synsem & [loc [cat [head #hd & initial_+_fin-verb-head & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive], subj <>, subcat.list #sc, ucomps #uc, extra-poss x_-], adjunction #adjunction, sgf sgf-lor-lee-, cont [hook [ltop #l, index #ind & [e imp, sf basic-comm]] ]], phrase + ], SIGNPUNCT.RPUNCT.MSGPRED basic-comm, RESTR-COLL.got-rpunct-msgpred -, C-CONT [ HOOK [INDEX #p_ind], RELS [LIST #rlist, LAST #rlast], HCONS ], head-dtr #hd-dtr, ARGS <#hd-dtr & [synsem [loc [sgf sgf-lor-lee-, cat [ head #hd & initial_+_fin-verb-head & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive, subj <>], subj , LAST #rlast ], hcons ], uniagr n-n-g & [png 2-n-g & #png]]]>, subcat.list #sc, ucomps #uc], cont [hook [index #ind, --oind [--bnd -], ltop #l] ], adjunction #adjunction], LEX +, PHRASE -]]> ]. imp-rule-type := basic-v1-imp-rule-type. v-fin-imp-rule-type := inher-anc-unary & self-less-rule-type & headed-phrasal-sign & collect-constr-1-liszt & inher-nonloc & [synsem synsem & [loc [cat [head #hd & eps-verb-head & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive], subj <>, vcomp <>, subcat.list #sc & <>, ucomps #uc & <>, extra-poss x_-], adjunction unmodifiable, sgf sgf-lor-lee-, cont [hook [ltop #t, index #ind & [e imp, sf basic-comm], _ltops ] ]], lex #lex, phrase + ], SIGNPUNCT.RPUNCT.MSGPRED basic-comm, RESTR-COLL.got-rpunct-msgpred -, C-CONT [ RELS , HCONS ], head-dtr #hd-dtr, ARGS <#hd-dtr & [synsem [loc [sgf sgf-lor-lee-, cat [ head #hd & [mod #mod, v1 #v1, prd #prd, extra #extra, top #top, aux #aux, flip #flip, log-subj #log-subj, vform #vform, passive #passive, subj <>], subj , hcons ], uniagr n-n-g & [png 2-n-g & #png]]]>, subcat.list #sc, ucomps #uc, vcomp <>], cont [hook [index #ind, ltop #t, _ltops ] ]], LEX #lex]]> ]. h-s-rule-type := general-h-s-rule-type & non-extraposed-rule-type & head-first-rule & [head-dtr.key-arg +, synsem.loc.cat.head initial_+_fin-verb-head]. s-h-rule-type := general-h-s-rule-type & strict-non-extraposed-rule-type & head-last-rule & [head-dtr.key-arg +, synsem.loc.cat [head initial_-_fin-verb-head]]. h-c-rule-type := general-h-c-rule-type & non-extraposed-rule-type & head-first-rule & [head-dtr.key-arg +, synsem.loc [cat.head initial_+_noncomp-head]]. h-uc-rule-type := general-h-uc-punct-rule-type & non-extraposed-rule-type & head-first-rule & [head-dtr.key-arg +, synsem.loc [cat.head initial_+_noncomp-head]]. coord-comp-rule-type := general-h-c-rule-type & head-first-rule & inher-punctpair-binary-rule-type & inher-left-sister-pnctpr-binary-rule-type & [head-dtr.key-arg +, synsem.loc [cat.head initial_+_noncomp-head], ARGS < [ SIGNPUNCT.PAIRED ppair_min ], [SYNSEM.LOC.CONT.HOOK._LTOPS & [LAST <>] ] > ]. coord-comp-non-v-rule-type := coord-comp-rule-type & [synsem.loc [cont [hook [xarg #xarg, ltop #t], modcont [--scopal #scopal]], coord na, uniagr._cas <#c . case-list>], head-dtr.synsem.loc [cont [hook [xarg #xarg, ltop #t], key.lbl #t], cat.head basic-coord-head], non-head-dtr.synsem.loc [uniagr #c, cont.modcont.--scopal #scopal]]. normal-coord-comp-non-v-rule-type := coord-comp-non-v-rule-type & [ non-head-dtr.synsem.loc.cat.head non-verbal-head & [PRD -], SYNSEM.PUNCT.--LEFT_SISTER_RPUNCT non_v2 ] . coord-comp-rel-clause-rule-type := coord-comp-non-v-rule-type & [ non-head-dtr.synsem.loc.cat.head rel-clause-head, SYNSEM.LOC.CONT.HOOK.INDEX.E.TENSE finite ] . coord-comp-fin-rule-type := coord-comp-rule-type & [synsem [ loc [cont.hook [ltop #t], coord na, uniagr._cas <#c . case-list>], PUNCT.--LEFT_SISTER_RPUNCT #lsr ], head-dtr [ synsem [ loc [cat.head basic-coord-head, cont [hook [index event & [--TPC tpc-mod-or--, E.TENSE finite], ltop #t], key.lbl #t] ]], SIGNPUNCT.PAIRED ppair_min ], non-head-dtr.synsem [ loc [cat.head [vform fin-sm], uniagr #c ], V2 #lsr ] ]. coord-comp-nonfin-rule-type := coord-comp-rule-type & [synsem [ loc [coord na, uniagr._cas <#c . case-list>], PUNCT.--LEFT_SISTER_RPUNCT non_v2 ], head-dtr.synsem.loc [cat.head basic-coord-head & [spec [loc.cont.hook.index event & [e [tense #t, mood #m] ]]], cont.hook.index event & [e [tense #t, mood #m ]]], non-head-dtr.synsem.loc [cat.head.vform non-fin-sm, uniagr #c, cont.hook.index event & [e [tense #t, mood #m ] ] ] ]. coord-comp-prd-rule-type := coord-comp-rule-type & [synsem [ loc [coord na, uniagr._cas <#c . case-list>], PUNCT.--LEFT_SISTER_RPUNCT non_v2 ], head-dtr.synsem.loc [cat.head basic-coord-head & [spec [loc.cont.hook.index event & [e [tense #t, mood #m, stative #stat] ]]], cont.hook.index event & [e [tense #t, mood #m, stative #stat ]]], non-head-dtr.synsem.loc [cat.head [PRD +], uniagr #c, cont.hook.index event & [e [tense #t, mood #m, stative #stat] ] ] ]. h-c-punct-rule-type := general-h-c-rule-type & [ SIGNPUNCT.INFPUNCT.--TRANS_INFCOMMA < #rinf . #transinfrest >, ARGS < [ SIGNPUNCT [ PAIRED #paired, INFPUNCT.--LEFT_INFCOMMA #rinf ] ], [ SYNSEM.PUNCT.--INF_PPAIR #paired, SIGNPUNCT [ --LEFT_SISTER_PAIRED < #paired, ... >, INFPUNCT [ --RIGHT_INFCOMMA #rinf, --TRANS_INFCOMMA #transinfrest ] ] ] > ]. general-h-uc-punct-rule-type := general-h-uc-rule-type & [ SIGNPUNCT.INFPUNCT.--TRANS_INFCOMMA < #rinf . #transinfrest >, ARGS < [ SIGNPUNCT [ PAIRED #paired, INFPUNCT.--LEFT_INFCOMMA #rinf ] ], [ SYNSEM.PUNCT.--INF_PPAIR #paired, SIGNPUNCT [ --LEFT_SISTER_PAIRED < #paired, ... >, INFPUNCT [ --RIGHT_INFCOMMA #rinf, --TRANS_INFCOMMA #transinfrest ] ] ] > ]. h-comp-rule-type := h-c-punct-rule-type & h-c-rule-type & basic-no-commapair-binary-rule-type & got-no-rpunct-msgpred-rule-type & [head-dtr.synsem.loc.coord bool, non-head-dtr.synsem.loc.sgf sgf-lee- ]. head-non-spr-rule-type := headed-rule & [ synsem.loc.cat.spr #spr, head-dtr [ synsem.loc.cat.spr #spr ] ]. head-non-c-rule-type := headed-rule & [ synsem.loc.cat [subj #subj, subcat #sc, --ucomps #--uc, ucomps #uc], head-dtr [ synsem.loc.cat [subj #subj, subcat #sc, --ucomps #--uc, ucomps #uc] ] ]. head-non-cluster-rule-type := headed-rule & [ synsem.loc.cat.vcomp #vc, head-dtr [ synsem.loc.cat.vcomp #vc ] ]. head-non-c-non-spr-rule-type := head-non-spr-rule-type & head-non-c-rule-type. head-non-valence-rule-type := head-non-c-non-spr-rule-type & head-non-cluster-rule-type. headed-unary-non-valence-rule-type := headed-unary-rule-type & head-non-valence-rule-type. c-h-rule-type := general-h-c-rule-type & head-last-rule & strict-non-extraposed-rule-type & no-commapair-binary-rule-type & [head-dtr [key-arg +, synsem.loc.cat.head initial_-_-head ], non-head-dtr [synsem saturated-synsem ]]. uc-h-rule-type := general-h-uc-punct-rule-type & head-last-rule & strict-non-extraposed-rule-type & [head-dtr [key-arg +, synsem.loc.cat.head initial_-_-head ], non-head-dtr [synsem saturated-synsem ]]. general-h-a-rule-type := self-less-rule-type & inher-anc-binary & headed-binary-rule & inher-nonloc2 & head-non-valence-rule-type & got-no-rpunct-msgpred-rule-type & [synsem [ loc [_third -, cat [no_adj #no_adj], adjunction modified & modifiable, sgf #sgf ], lex -, phrase #phrase, v2 #v2 ], NON-HEAD-DTR [KEY-ARG +, synsem modifier-synsem & [loc [cat [ head.mod #head-synsem, subj <>, vcomp <>, spr <>, subcat.list <>, no_adj #no_adj ], sgf sgf-lee-, cont.hook [index.--top na_or_-]], nonloc contains-no-rel ], vf -], head-dtr [ vf -, synsem #head-synsem & [loc [cat.vcomp <>, _third -, adjunction modifiable, sgf #sgf], phrase #phrase, v2 #v2, nonloc.rel ] ] ]. general-h-isect-rule-type := head-mod-liszt-2-rule & general-h-a-rule-type & inher-ltops & [SYNSEM.LOC.CONT [HOOK [XARG #xarg, LTOP #t]], NON-HEAD-DTR.SYNSEM.LOC.CONT [HOOK [LTOP #t, XARG #i & individual]], HEAD-DTR.SYNSEM.LOC.CONT [HOOK [XARG #xarg, LTOP #t, INDEX #i]]]. general-h-scop-rule-type := head-mod-liszt-2-rule & general-h-a-rule-type & [synsem.loc.cont [hook [XARG #xarg, LTOP #t, INDEX #i]], non-head-dtr.synsem.loc.cont [HOOK [LTOP #t, XARG #h & handle]], head-dtr.synsem.loc.cont [hook [xarg #xarg, ltop #h, index #i]]]. ;;; Scope reversal for main verb-initial clauses (v1-norb). ;;; Need to set lowest handle v-ini-scop-rule-type := collect-2-liszt & general-h-a-rule-type & head-first-rule & [SYNSEM.LOC [CAT.HEAD initial_+_fin-verb-head, CONT [HOOK [LTOP #h, INDEX #i, _LTOPS [LIST #li, LAST #le]]]], NON-HEAD-DTR.SYNSEM.LOC.CONT [HOOK [LTOP #t, _LTOPS [LIST #lm & <#t . #le>, LAST #le], XARG #h & handle]], HEAD-DTR.SYNSEM.LOC.CONT [HOOK [LTOP #t, INDEX #i, _LTOPS [LIST #li, LAST #lm]]]]. v_ini_term := headed-unary-rule & inher-anc-unary & inher-nonloc & [SYNSEM [LOC [CAT #cat & [HEAD initial_+_fin-verb-head ], ADJUNCTION unmodifiable, CONT [KEY #key, RELS #rels, HCONS #hc], SGF #sgf, COORD #coord, ERG #erg], ELLIPSE #ell, V2 #v2 ], RESTR-COLL.got-rpunct-msgpred -, ARGS <[SYNSEM saturated-synsem & [LOC [CAT #cat, CONT [KEY #key, RELS #rels, HCONS #hc], SGF #sgf, COORD #coord, ERG #erg], ELLIPSE #ell, V2 #v2]]> ]. v_ini_term_no_scop_rule := v_ini_term & [SYNSEM.LOC [CONT [HOOK [INDEX #i, LTOP #t, _LTOPS ] ] ], ARGS <[SYNSEM [LOC [CONT [HOOK [INDEX #i, LTOP #t, _LTOPS & [LAST <>]] ] ]]]> ]. v_ini_term_scop_rule := v_ini_term & [SYNSEM.LOC [ADJUNCTION modified, CONT [HOOK [INDEX #i, LTOP #t, _LTOPS ]]], ARGS <[SYNSEM [LOC [CONT [HOOK [INDEX #i, LTOP #b, _LTOPS [LIST < #b, #t . *list* >, LAST <>]]]]]]> ]. h-isect-rule := general-h-isect-rule-type & no-commapair-binary-rule-type & non-extraposed-rule-type & head-first-rule & [SYNSEM.LOC.CAT.EXTRA-POSS #ep, HEAD-DTR.SYNSEM.LOC.CAT.EXTRA-POSS #ep & x_-, NON-HEAD-DTR.SYNSEM.LOC.CAT [HEAD post-head-modifier-head]]. isect-h-rule := general-h-isect-rule-type & no-commapair-binary-rule-type & non-extraposed-rule-type & head-last-rule & [NON-HEAD-DTR.SYNSEM.LOC.CAT [HEAD pre-head-modifier-head]]. h-extra-isect-rule := extraposition-rule-type & general-h-isect-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_a+]. h-extra-scop-rule := extraposition-rule-type & general-h-scop-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_a+]. scop-h-rule := general-h-scop-rule-type & no-commapair-binary-rule-type & non-extraposed-rule-type & head-last-rule & [HEAD-DTR.SYNSEM.LOC.CAT.EXTRA-POSS x_-, NON-HEAD-DTR.SYNSEM.LOC.CAT [HEAD pre-head-modifier-head]]. v-scop-rule := v-ini-scop-rule-type & no-commapair-binary-rule-type & non-extraposed-rule-type & [SYNSEM.LOC.CAT.EXTRA-POSS #ep, HEAD-DTR.SYNSEM.LOC.CAT.EXTRA-POSS #ep & x_-, NON-HEAD-DTR.SYNSEM.LOC.CAT [HEAD post-head-modifier-head]]. scop-v-rule := no-commapair-binary-rule-type & general-h-scop-rule-type & head-last-rule & [SYNSEM.LOC.CAT.HEAD verb-head, HEAD-DTR.SYNSEM.LOC.CAT.EXTRA-POSS x_-, NON-HEAD-DTR.SYNSEM.LOC.CAT.HEAD pre-head-modifier-head]. #| v-a-rule-type := non-extraposed-rule-type & head-first-rule & general-v-a-rule-type & no-commapair-binary-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_-, NON-HEAD-DTR.synsem.loc.cat [head post-head-modifier-head ]]. a-v-rule-type := strict-non-extraposed-rule-type & head-last-rule & general-v-a-rule-type & no-commapair-binary-rule-type & [head-dtr.synsem.loc.cat.extra-poss x_-, NON-HEAD-DTR.synsem.loc.cat.head pre-head-modifier-head]. |# basic-additional-get-rpunct-msgpred-rule-type := no-ltops-unary-rule & get-rpunct-msgpred-rule-type & [ SYNSEM [LOC #loc, NONLOC #nloc, QUE #que, V2 v2], RESTR-COLL.spanning-only +, SIGNPUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, PAREN #paren ], ARGS < [ SYNSEM complete-synsem & [ LOC #loc & [CAT.HEAD initial_+_fin-verb-head ], NONLOC #nloc, QUE #que ], SIGNPUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, PAREN #paren ] ] > ]. #| h-a-rule-type := non-extraposed-rule-type & head-first-rule & general-non-v-h-a-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_-, NON-HEAD-DTR.synsem.loc.cat [head post-head-modifier-head ]]. h-a-no-commapair-rule-type := h-a-rule-type & no-commapair-binary-rule-type. |# filler-head-get-rpunct-msgpred-rule-type := basic-additional-get-rpunct-msgpred-rule-type & [ SYNSEM.V2 v2, ARGS < head-filler-rule-type & [SYNSEM.V2 v2] > ]. imp-get-rpunct-msgpred-rule-type := basic-additional-get-rpunct-msgpred-rule-type & [ ARGS < [synsem.loc.CONT.HOOK.INDEX.SF comm, RESTR-COLL.got-rpunct-msgpred - ] > ]. coord-get-rpunct-msgpred-rule-type := basic-additional-get-rpunct-msgpred-rule-type & [ SYNSEM.V2 v2, ARGS < basic-coordination-rule-type & [SYNSEM.V2 v2]> ]. #| coord-get-rpunct-msgpred-rule-type := cle-unary-rule & get-rpunct-msgpred-rule-type & [ RESTR-COLL.spanning-only +, ARGS < basic-coordination-rule-type & [ synsem complete-synsem ] > ]. |# #| a-h-rule-type := strict-non-extraposed-rule-type & head-last-rule & general-non-v-h-a-rule-type & no-commapair-binary-rule-type & [head-dtr.synsem.loc.cat.extra-poss x_-, NON-HEAD-DTR.synsem.loc.cat.head pre-head-modifier-head]. |# no-ltops-headed-rule := inher-ltops & [SYNSEM.LOC.CONT.HOOK._LTOPS ]. no-ltops-unary-rule := unary-rule & [SYNSEM.LOC.CONT.HOOK._LTOPS #ltops, ARGS <[SYNSEM.LOC.CONT.HOOK._LTOPS #ltops & ]>]. head-filler-rule-type := no-nonloc-headed-binary-rule-type & got-no-rpunct-msgpred-rule-type & no-commapair-binary-rule-type & [synsem complete-comp-fin-verb-synsem & [loc [ cat #mom-cat, coord -, adjunction unmodifiable, sgf [lor #lor, lee <>], anc anc-inher & [active , inert , self ] ], lex -, phrase +, v2 v2 ], head-dtr #hd, non-head-dtr #nhd & [synsem.que [list #l, last #l & *null*]], ARGS < #nhd & [synsem [loc #filler-local & [ cat.head no-eps-head, anc anc-inher ], nonloc undef-nonlocs & [_slash & [last *null*]] ]], #hd & [synsem saturated-comp-fin-verb-synsem & [ loc [cat #mom-cat & [head initial_+_fin-verb-head ], cont.hook._ltops , sgf.lor #lor ], nonloc contains-slash & [_slash & [last *null*], slash ], lex -, v2 non_v2 ], key-arg + ] > ]. no-nonloc-headed-binary-rule-type := headed-binary-rule & no-ltops-headed-rule & collect-constr-2-liszt & [ SYNSEM [LOC.CONT [hook [index #ev & [SF prop-or-ques], ltop #l]], QUE ], NON-HEAD-DTR [vf +, SYNSEM [loc [cat [vcomp <>, spr <>, subj <>], cont.hook.index #i], QUE [LIST #loc, LAST #loc & *null* ]]], HEAD-DTR [vf -, SYNSEM.LOC.CONT [hook [INDEX #ev, ltop #l]]], C-CONT [ RELS , HCONS ]]. wh-no-nonloc-headed-binary-rule-type := headed-binary-rule & no-ltops-headed-rule & collect-constr-2-liszt & no-commapair-binary-rule-type & [ SYNSEM.LOC.CONT [hook [index #ev & [SF ques], ltop #l]], NON-HEAD-DTR [vf +, SYNSEM [loc [cat [vcomp <>, spr <>, subj <>], cont.hook [index #i]], QUE [LIST < [] , ... >, LAST *null* ]]], HEAD-DTR [vf -, SYNSEM.LOC [CONT [hook [INDEX #ev, ltop #l]]]], C-CONT [ RELS , HCONS ]]. wh-h-rule-type := wh-no-nonloc-headed-binary-rule-type & get-rpunct-msgpred-rule-type & [synsem complete-comp-fin-verb-synsem & [loc [ cat #mom-cat, coord -, adjunction unmodifiable, sgf [lor #lor, lee <>], anc anc-inher & [active , inert , self ] ], lex -, phrase +, v2 v2 ], head-dtr #hd, non-head-dtr #nhd, ARGS < #nhd & [key-arg +, synsem [loc #filler-local & [cat.head no-eps-head, CONT [HOOK.INDEX.SF #sf , --MSGPRED #sf], anc anc-inher ], nonloc undef-nonlocs & [_slash & [last *null*]] ]], #hd & [synsem saturated-comp-fin-verb-synsem & [ loc [cat #mom-cat & [head initial_+_fin-verb-head ], sgf.lor #lor], nonloc contains-slash & [_slash , slash ], lex -, v2 non_v2 ] ] > ]. rel-or-interrogative-clause-rule-type := unheaded-binary-rule & collect-constr-2-liszt & [ c-cont [rels , hcons ], synsem complete-synsem & [ loc [ cat.head rel-or-int-clause-head, coord - ], lex -, phrase +, v2 non_v2 ], ARGS < [key-arg +, synsem saturated-synsem & [loc.cont.hook.index #i, nonloc contains-no-slash ] ], [vf -, synsem saturated-comp-fin-verb-synsem & [ loc [cat.head v-final-head, cont [hook [ltop #h, index #e & event & [--sub +]]]], lex -, v2 non_v2 ] ] > ]. rel-clause-rule-type := rel-or-interrogative-clause-rule-type & [ SYNSEM complete-noun-modifier-synsem & [loc [ cat [ head rel-clause-head & [mod.loc.cont [hook [index #ind, --reli #ind ]], rp-head #rp-head ], no_adj + ], CONT [ hook [ltop #h, INDEX #i & [SF prop]], KEY #key ], anc anc-inher & [self , active , inert ] ], que ], C-CONT [ RELS , HCONS ], ARGS < [ SYNSEM [ LOC [ cat.head #rp-head ], NONLOC contains-rel & [ rel.LIST.FIRST #ind & index ] ] ], [ SYNSEM.LOC.CONT [ hook [ltop #h, INDEX #i & [E.TENSE real_tense]], KEY #key] ] > ]. extraction-rel-or-int-clause-rule-type := rel-or-interrogative-clause-rule-type & commapair-binary-rule-type & [ ARGS < [synsem saturated-synsem & [loc #filler-local ] ], [synsem [loc [cont.hook.index.--sub +], nonloc contains-slash & [_slash , slash ]]] > ]. extraction-rel-clause-rule-type := extraction-rel-or-int-clause-rule-type & rel-clause-rule-type. int-clause-rule-type := rel-or-interrogative-clause-rule-type & [ SYNSEM int-clause-synsem & [ loc [CONT [ hook [ltop #h0, INDEX #i], KEY #key, --MSGPRED ques ], anc anc-inher & [self , active , inert ] ], que #que ], C-CONT [ RELS , HCONS ], ARGS < [ SYNSEM complete-synsem & [ que #que & singleton-diff-list & [ LIST.FIRST individual, LAST *null* ] ] ], [ SYNSEM.LOC.CONT [ hook [INDEX #i, ltop #h0], KEY #key ] ] > ]. extraction-int-clause-rule-type := extraction-rel-or-int-clause-rule-type & int-clause-rule-type. adjunct-v1-rule-type := headed-binary-rule & head-mod-constr-2-rule & topic-mrs-marking-princ. ;;; BC: Does not work with particles currently ;;; head-dtr.morph , super-vc-rule-type := headed-binary-rule & inher-nonloc2 & vc-mrs-binary-rule & inher-anc-binary & self-less-rule-type & [synsem [loc [ _third #3rd, cat [_subcat #_sc, subj #subj, --ucomps #--uc, ucomps #uc, vcomp #vcomps ], cont [hook [xarg #xarg, index #i, ltop #l]], coord -, sgf #sgf ], nonloc #nonloc, que #que, lex -, phrase -, v2 #v2 ], head-dtr [ synsem [loc [cat [ subj #subj, ucomps <>, vcomp < #vc . #vcomps >, extra-poss x_- ], sgf #sgf & sgf-lee-, cont [hook [xarg #xarg, index #i, ltop #l]]], nonloc undef-nonlocs, que , lex +, v2 #v2 ], key-arg + ], non-head-dtr [ synsem #vc & sp-sep-or-prd-adj-or-non-fin-verb-synsem & [ loc [cat [_subcat #_sc, --ucomps #--uc, ucomps #uc], _third #3rd], nonloc #nonloc & contains-no-rel & [--top -], que #que, phrase - ] ] ]. vc-rule-type := headed-binary-rule & inher-nonloc2 & vc-mrs-binary-rule & inher-anc-binary & self-less-rule-type & [synsem verb-synsem & [loc [ _third #3rd, cat [head final-verb-head, _subcat #_sc, subj #subj, --ucomps #--uc, ucomps #uc, vcomp #vcomps ], cont [hook [index #i, ltop #l]], coord -, sgf #sgf ], nonloc #nonloc, que #que, lex -, phrase -, v2 #v2 ], head-dtr [ synsem [loc [cat [ head [--sub +], subj #subj, ucomps <>, vcomp < #vc . #vcomps >, extra-poss x_- ], sgf #sgf & sgf-lee-, cont [hook [index #i, ltop #l]]], nonloc undef-nonlocs, que , lex +, v2 #v2 ], key-arg + ], non-head-dtr [ synsem #vc & sp-sep-or-prd-adj-or-non-fin-verb-synsem & [ loc [cat [_subcat #_sc, --ucomps #--uc, ucomps #uc], _third #3rd], nonloc #nonloc & contains-no-rel & [--top -], que #que, phrase - ] ] ]. vc-participle-rule := super-vc-rule-type & head-last-rule & no-commapair-binary-rule-type & [synsem.loc.cat.head mod-participle-head, non-head-dtr.synsem [loc [cat [head.flip -]]] ]. vc-head-rule := vc-rule-type & head-last-rule & no-commapair-binary-rule-type & [non-head-dtr.synsem [loc [cat [head.flip -]]] ]. third-construction := head-first-rule & vc-mrs-binary-rule & self-less-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem verb-synsem & [loc [ cat [ subj #subj, ucomps #uc & <>, --ucomps #--uc, vcomp <>, subcat #sc], cont.hook.index [--tpc tpc-non-event], coord -, sgf #sgf, anc #anc, _third - ], nonloc [slash #sl, _slash #_sl, rel #rel, _topic-drop #td], que #que, lex #lex, phrase -, v2 #v2 ], head-dtr [ synsem verb-synsem & [loc [adjunction unmodified, _third +, cat [ head final-verb-head, subj #subj, _subcat #_sc, --ucomps #--uc, ucomps #uc, subcat #sc, vcomp < >, extra-poss x_- ], sgf #sgf, anc #anc], nonloc contains-slash & [_slash , slash singleton-diff-list & [list < #loc . #last>, last #last ], rel ], que , phrase -, lex #lex, v2 #v2 ], key-arg + ], non-head-dtr [ synsem non-fin-verb-synsem & [ loc #loc & [cat [head coherent-inf-verb-head, vcomp <>, subcat.list #_sc & *cons*]], nonloc [slash #sl, _slash #_sl, rel #rel, _topic-drop #td], que #que ] ] ]. head-vc-rule := vc-rule-type & head-first-rule & [ non-head-dtr [synsem non-fin-verb-synsem & [ loc [cat [head.flip +, extra-poss x_-] ] ] ] ]. headed-unary-rule-type := headed-unary-rule & head-sem-princ. third-to-pvp-rule := inher-anc-unary & headed-unary-rule-type & inher-nonloc & [synsem verb-synsem & [loc [ _third -, cat #cat & [head final-verb-head & [top -, v1 *undef*], extra-poss #ep, vcomp <> ], cont #cont & [hook.index [--tpc tpc-event]], coord - ], nonloc #nonloc & contains-slash & [_slash , spr <>, subj <>, subcat.list *eps-2-list* ]] !>, _topic-drop -, rel ], que #que, lex +, phrase -, v2 non_v2], ARGS <[synsem [loc [_third +, cat #cat, cont #cont, coord -], nonloc #nonloc, que #que, lex +, phrase -, v2 non_v2]]>]. 3rd-slash-intro-rule := vc-slash-intro-rule & [synsem [nonloc [_slash ] , loc [_third +, cat [_subcat #sc, ucomps <> ] ]], args <[synsem.loc [cat [vcomp < [loc #l] >, ucomps <> ]]]>]. vc-slash-intro-rule := self-less-rule-type & inher-anc-slash & headed-unary-rule-type & slash-intro-sign & [synsem verb-synsem & [ loc [cat [ head final-verb-head & [top -, v1 *undef*], subj #subj, extra-poss #ep, vcomp <> ], cont [hook [index [--tpc tpc]]], coord - ], nonloc contains-slash & [_slash , vcomp <>, spr <>, subj <>, subcat.list *eps-2-list* ], cont.hook #hook] !>, _topic-drop -, slash #slash, rel ], que #que, lex +, phrase -, v2 non_v2], head-dtr #hd, ARGS < #hd & [ synsem verb-synsem & [ loc [ cat [ head [mod *undef*], subj #subj, extra-poss #ep, vcomp < sp-sep-or-prd-adj-or-non-fin-verb-synsem & [ loc #l & [ cat sp-or-prd-adj-or-non-fin-verb-cat & [ head #vc-hd & [extra na_or_-], vcomp <>, subcat.list *eps-2-list* ], anc [self [list #a1, last #a1], active [list #a1, last #a2], inert [list #a2]], cont.hook #hook ], nonloc contains-slash & [ slash #slash & [ LIST.FIRST #l ] ] ] > ] ], nonloc undef-nonlocs, que #que, v2 non_v2, lex +, phrase - ] ] > ]. headed-constr-unary-rule-type := headed-unary-rule & head-constr-unary-sem-princ. basic-coordination-rule-type := unheaded-binary-rule & coord-mrs-binary-rule & got-no-rpunct-msgpred-rule-type & inher-punctpair-binary-rule-type & [ SYNSEM [LEX #lex, LOC.CONT.HOOK._LTOPS ], ARGS < [ SYNSEM [LEX #lex, LOC.CONT.HOOK._LTOPS ], RESTR-COLL.ASYND_COORD -], [SYNSEM.LOC.CONT.HOOK._LTOPS ] > ] . coordination-rule-type := basic-coordination-rule-type & apply-left-sister-rpunct+paired-rule-type & [synsem [loc.anc anc-inher & [self , active , inert ], lper #l ], SIGNPUNCT.RPUNCT.PUNCTACCURACY #punctacc, args <[vf -, synsem.lper #l, SIGNPUNCT [ --COORDPAIRED #--paired & [ PPAIRACCURACY #punctacc ] ] ], [ SYNSEM.PUNCT.--LEFT_SISTER_RPUNCT.--PAIRED #--paired ] > ]. #| coordination-rule-type := basic-coordination-rule-type & apply-left-sister-rpunct+paired-rule-type & [synsem [loc.anc anc-inher & [self , active , inert ], lper #l ], SIGNPUNCT.RPUNCT.PUNCTACCURACY #punctacc, args <[vf -, synsem.lper #l, SIGNPUNCT [ --COORDPAIRED #--paired & [ PPAIRACCURACY #punctacc ], INFPUNCT.--TRANS_INFCOMMA < #lsr, ... > ] ], [ SYNSEM.PUNCT.--LEFT_SISTER_RPUNCT #lsr & [ --PAIRED #--paired ] ] > ]. |# #| ;Variante ohne asyndetische Koordination: temp-coordination-rule-type := basic-coordination-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-nonloc2 & [synsem [loc [ anc anc-inher & [self , active , inert ] ], lper #l], RESTR-COLL.ASYND_COORD +, args <[vf -, synsem.lper #l ], [synsem [ loc.coord +, phrase +]] >]. |# ;Variante mit asyndetischer Koordination: temp-coordination-rule-type := basic-coordination-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-nonloc2 & [synsem [loc [ anc anc-inher & [self , active , inert ] ], lper #l], RESTR-COLL.ASYND_COORD +, args <[vf -, synsem.lper #l, MALRULE.MAL-COMMA-INFL - ], [] >]. ; [nk] saturated-synsem vom zweiten Argument gelöscht, wg. "Er schlief, schlief und schlief." recursive-ev-coord-rule-type := temp-coordination-rule-type & [ synsem [ loc [ cat #cat, cont [hook [xarg #xarg, index #i, ltop #lbl], key #key], adjunction #adj, coord #coord, sgf sgf-lor-lee- ], nonloc #nonloc, v2 #v2 ], c-cont [rels , hcons ], ARGS < [ key-arg +, synsem [ loc [cat #cat, cont [hook [xarg #xarg, index #lind, ltop #lh]], adjunction #adj, sgf sgf-lee-, coord bool], nonloc #nonloc, v2 #v2 ] ], [ synsem [ loc [ cat #cat, cont [hook [xarg #xarg, index #rind, ltop #rh]], adjunction #adj, sgf sgf-lee-, coord #coord ], nonloc #nonloc, v2 #v2 ] ] > ]. recursive-ev-coord-punct-rule-type := recursive-ev-coord-rule-type & attach-left-comma-or-semicol-rule-type. recursive-nom-coord-rule-type := temp-coordination-rule-type & [ synsem [ loc [ cat #cat, cont [hook [index #i & index & [png p-p-g & [_PER [1 [list #1ini, last #1last], 2 [list #2ini, last #2last], 1+2 [list #1ini, last #2last]]], mass-unit #mu]], key #key], adjunction #adj, coord #coord, sgf sgf-lor-lee-, uniagr._cas <#conj-agr . #rest-agr> ], nonloc #nonloc, v2 #v2 ], c-cont [rels , hcons ], ARGS <[synsem [ loc [cat #cat, cont [hook [index #lind]], adjunction #adj, sgf sgf-lee-, coord bool, uniagr #conj-agr], nonloc #nonloc, v2 #v2 ] ], [ synsem saturated-synsem & [ loc [ cat #cat, cont [hook [index #rind]], adjunction #adj, sgf sgf-lee-, coord #coord, uniagr._cas #rest-agr ], nonloc #nonloc, v2 #v2 ], key-arg + ] > ]. recursive-nom-coord-punct-rule-type := recursive-nom-coord-rule-type & attach-left-comma-or-semicol-rule-type. basic-adj-topic-drop-rule := headed-unary-rule & no-ltops-unary-rule & collect-constr-1-liszt & [ SYNSEM [ LOC [ CONT [ modcont #modcont, hook [INDEX #ev & [SF prop]], KEY #key ]], ELLIPSE + ], HEAD-DTR.SYNSEM.LOC.CONT [KEY #key, MODCONT #modcont ] ] & [synsem complete-comp-fin-verb-synsem & [loc [ cat #mom-cat, adjunction unmodifiable, coord -, sgf #sgf, anc anc-inher & [self , active , inert ], cont [hook.ltop #top]], que , lex -, phrase +, v2 v2, ellipse + ], C-CONT [ RELS [LIST < [PRED topic_d_rel, LBL #top, ARG0 event, ARG1 #ev, ARG2 #e0] . #rlist >, LAST #rlast], HCONS [LIST #hlist, LAST #hlast]], HEAD-DTR #hd, ARGS < #hd & sign & [ synsem saturated-comp-fin-verb-synsem & [ loc [cat #mom-cat & [ head initial_+_fin-verb-head ], CONT [ hook [INDEX.E tensed, ltop #top ]], sgf #sgf ], nonloc contains-slash & [_topic-drop +, _slash , slash , active , inert ], cat.drop +, CONT i-sect-adv-sem-type & [KEY [PRED "unspec_a_rel", arg0 #e0 & event, LBL #l, ARG1 #ev], MODCONT.HOOK [ltop #l, index #ev], RELS [LIST #rlist, LAST #rlast], HCONS [LIST #hlist, LAST #hlast ]]] !> ], que , v2 non_v2 ] ] > ]. adj-topic-drop-rule := basic-adj-topic-drop-rule & get-rpunct-msgpred-rule-type. basic-topic-drop-rule := no-ltops-headed-rule & headed-unary-rule & collect-constr-1-liszt & [ SYNSEM [ LOC [ CONT [ hook [INDEX #i & [SF prop]], KEY #key, MODCONT #modcont ] ], ELLIPSE + ], HEAD-DTR.SYNSEM.LOC.CONT [hook [INDEX #i], KEY #key, MODCONT #modcont ] ] & [synsem complete-comp-fin-verb-synsem & [loc [ cat #mom-cat, adjunction unmodifiable, coord -, sgf sgf-lor-lee-, anc anc-inher & [self , active , inert ], cont [hook.ltop #l] ], que , lex -, phrase +, v2 v2, ellipse +], C-CONT [ RELS [LIST < [PRED topic_d_rel, LBL #l, ARG0 event, ARG1 #i, ARG2 #tpc] . #rlist >, LAST #rlast], HCONS [LIST #hlist, LAST #hlast]], HEAD-DTR #hd, ARGS < #hd & sign & [ synsem saturated-comp-fin-verb-synsem & [ loc [cat #mom-cat & [ head initial_+_fin-verb-head ], CONT [ hook [INDEX.E tensed, ltop #l] ] ], nonloc contains-slash & [_topic-drop +, _slash , slash , active , inert ], cat.drop +, CONT personal-pronoun-sem-type & [ hook [INDEX #tpc], KEY [ PRED "unspec_pron_rel" ], RELS [LIST #rlist, LAST #rlast], HCONS [LIST #hlist, LAST #hlast ]] ] !> ], que , v2 non_v2 ] ] > ]. topic-drop-rule := basic-topic-drop-rule & get-rpunct-msgpred-rule-type. yes-no-q-rule := headed-unary-rule & no-ltops-headed-rule & collect-constr-1-liszt & get-rpunct-msgpred-rule-type & [ SYNSEM.LOC.CONT [ hook [INDEX #i & [SF pol-ques]], KEY #key, MODCONT #modcont ], HEAD-DTR.SYNSEM.LOC.CONT [hook [INDEX #i], KEY #key, MODCONT #modcont ] ] & [ synsem complete-comp-fin-verb-synsem & [ loc [ cat #mom-cat, adjunction unmodifiable, coord -, sgf #sgf, anc anc-inher & [self , active , inert ], cont [hook [ltop #l]] ], que , lex -, phrase +, v2 v2, ellipse + ], C-CONT [ RELS , HCONS ], HEAD-DTR #hd, ARGS < #hd & [ synsem complete-comp-fin-verb-synsem & [ loc [cat #mom-cat & [ head initial_+_fin-verb-head ], CONT [ hook [INDEX [--tpc tpc-, E prs-ind+pst], ltop #l] ], sgf #sgf ], que , v2 non_v2 ] ] > ]. topic-drop-adj-rule := headed-unary-rule-type & [ synsem complete-comp-fin-verb-synsem & [ loc [ cat #mom-cat, coord -, CONT #cont ], lex -, phrase +, v2 v2, ellipse + ], ARGS < [ synsem complete-comp-fin-verb-synsem & [ loc [ cat #mom-cat & [ head initial_+_fin-verb-head ], CONT #cont & [hook [INDEX.E tensed] ] ], v2 non_v2 ] ] > ]. interjection-rule-type := collect-constr-2-liszt & inher-nonloc2 & inher-anc-binary & [ C-CONT [ RELS , HCONS ] ]. interjection-rule := interjection-rule-type & attach-optional-left-comma-rule-type & [ synsem complete-synsem & [ loc [ cat.head turn-seq-head, coord - ], lex -, phrase +, v2 #v2 ], head-dtr #hd, NON-HEAD-DTR #non-head, ARGS < #non-head & [ synsem interjection-synsem-syn & [ lex + ], key-arg + ], #hd & [ synsem complete-synsem & [ v2 #v2 ] ] > ]. ;;; BC #| interjection-rule-v-scnd := interjection-rule & get-rpunct-msgpred-rule-type & [ SYNSEM.LOC.CONT [ hook [INDEX #i, ltop #h3], MESSAGE #subm, KEY #key, MODCONT #modcont ], NON-HEAD-DTR.SYNSEM.LOC.CONT [hook [ltop #h3, INDEX #i], KEY.ARG1 #h2], HEAD-DTR [c-cont [MESSAGE #subm, RELS.list <#subm, ...>], SYNSEM.LOC.CONT [hook [ltop #h2], MESSAGE #subm & [LBL #h2], KEY #key, MODCONT #modcont ]], ARGS < [] , [synsem [loc [ cat.head initial_+_fin-verb-head ], v2 v2 ] ] > ]. interjection-rule-v-fst := interjection-rule & get-rpunct-msgpred-rule-type & [SYNSEM.LOC.CONT [ hook [ltop #h3, INDEX #i], message #subm, KEY #key, MODCONT #modcont ], NON-HEAD-DTR.SYNSEM.LOC.CONT [KEY.ARG1 #h2, hook [index #i, ltop #h3]], HEAD-DTR [c-cont [MESSAGE #subm, RELS.list <#subm, ...>], SYNSEM.LOC.CONT [hook [ltop #h2], MESSAGE #subm & [LBL #h2], KEY #key, MODCONT #modcont ]], ARGS < [] , [ synsem [ loc [ cat.head initial_+_fin-verb-head ], v2 non_v2 ] ] > ]. interjection-rule-non-v := interjection-rule & [ ARGS < [] , [ synsem.loc [ cat.head non-verbal-root-head] ] > ]. interjection-rule-coord := interjection-rule & get-rpunct-msgpred-rule-type & [ ARGS < [] , [ synsem.loc [ cat.head basic-coord-head & [ spec complete-synsem, coordform normal-coord ] ] ] > ]. |# #| q-tag-rule := collect-constr-2-liszt & non-head-dtr-sign & headed-phrasal-sign & inher-anc-binary & [ synsem complete-synsem & [ loc [ cat.head turn-seq-head, coord - ], lex -, phrase +, v2 #v2 ], head-dtr #hd, NON-HEAD-DTR #non-head, ARGS < #hd & [ synsem complete-synsem & [ v2 #v2 ] ], #non-head & [ synsem q-tag-synsem-syn & [ lex + ], key-arg + ] > ]. basic-q-tag-rule-decl-imp := q-tag-rule & [ SYNSEM.LOC.CONT [ hook [ltop #h0, INDEX #qi], KEY #key, MODCONT #modcont ], NON-HEAD-DTR.SYNSEM.LOC.CONT [hook [ltop #h0, index #qi], KEY.ARG1 #i ], HEAD-DTR [c-cont [MESSAGE #subm, RELS.list <#subm, ...>], SYNSEM.LOC.CONT [hook [ltop #h2], MESSAGE #subm & [pred prop_imp_m_rel, arg0 #i, LBL #h2], KEY #key, MODCONT #modcont ]], C-CONT [RELS , HCONS ], args <[synsem [loc.cat.head initial_+_fin-verb-head, v2 v2 ] ] , []> ]. q-tag-rule-decl-imp := basic-q-tag-rule-decl-imp & get-rpunct-msgpred-rule-type & attach-left-comma-rule-type. basic_q-tag-rule-quest := q-tag-rule & [ SYNSEM.LOC.CONT [ hook[ltop #h0, INDEX #tagi], KEY #key, MODCONT #modcont ], NON-HEAD-DTR.SYNSEM.LOC.CONT [hook [index #tagi, ltop #h2], key.arg1 #i], HEAD-DTR.SYNSEM.LOC.CONT [hook [ltop #h2, INDEX #i & [e imp+prs-ind+pst]], KEY #key, MODCONT #modcont ], C-CONT [RELS , HCONS ], args <[synsem [ loc.cat.head initial_+_fin-verb-head, v2 non_v2 ] ] , []> ]. q-tag-rule-quest := basic_q-tag-rule-quest & get-rpunct-msgpred-rule-type & attach-left-comma-rule-type. basic-q-tag-rule-non-v := q-tag-rule & [C-CONT [RELS , HCONS ], ARGS < [ synsem.loc [ cat.head non-verbal-root-head, ] ], [] > ]. q-tag-rule-non-v := basic-q-tag-rule-non-v & get-rpunct-msgpred-rule-type & attach-left-comma-rule-type. basic-q-tag-rule-coord := q-tag-rule & [ C-CONT [RELS , HCONS ], ARGS < [ synsem.loc [ cat.head basic-coord-head & [ spec complete-synsem, coordform normal-coord ], ] ], [] > ]. q-tag-rule-coord := basic-q-tag-rule-coord & get-rpunct-msgpred-rule-type & attach-left-comma-rule-type. |# extraposition-rule-type := headed-binary-rule & [ synsem verb-synsem & [loc.cat.extra-poss x_+ & s-], head-dtr #hd, non-head-dtr #nhd, args < #hd & [ synsem verb-synsem & [ loc [cat [ head final-verb-head, extra-poss x_+ & s-, subcat.last *null*, vcomp <> ] ] ] ], #nhd & [ synsem saturated-synsem & [ loc [cat [ head extrapos_head & [ extra + ] ], sgf sgf-lee- ] ] ] > ]. h-extra-s-rule-type := extraposition-rule-type & general-h-s-rule-type & [synsem.loc.cat.extra-poss x_c-, head-dtr.synsem.loc.cat.extra-poss x_c+, non-head-dtr.synsem.loc.uniagr n-n-g]. h-extra-c-rule-type := extraposition-rule-type & general-h-c-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss x_c-, head-dtr.synsem.loc.cat.extra-poss x_c+, non-head-dtr.synsem.loc.uniagr c-n-g ]. h-extra-uc-rule-type := extraposition-rule-type & general-h-uc-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss x_c-, head-dtr.synsem.loc.cat.extra-poss x_c+, non-head-dtr.synsem.loc.uniagr c-n-g ]. #| h-extra-a-rule-type := extraposition-rule-type & general-non-v-h-a-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_a+]. v-extra-a-rule-type := extraposition-rule-type & general-v-a-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & [synsem.loc.cat.extra-poss #ep, head-dtr.synsem.loc.cat.extra-poss #ep & x_a+]. |# super-adj-slash-intro-rule := cle-unary-rule & self-less-rule-type & inher-anc-slash & head-non-valence-rule-type & collect-constr-1-liszt & slash-intro-sign & [synsem [ loc [_third -, cat [vcomp <>, ucomps #uc & <>, extra-poss s-], coord -, cont [hook [index #ev]], adjunction modified, sgf #sgf ], v2 non_v2, lex #lex, phrase -, nonloc contains-slash & [_slash , spr <>, subcat , vcomp <>]] !>, slash [ LIST.FIRST [cat [head verb-modifier-head & [mod #head-synsem ], subj <>, spr <>, subcat , vcomp <>] ] ] ] ], ARGS < #hd & [synsem #head-synsem & verb-synsem & [loc [cat [head [mod *undef*], vcomp <> , ucomps #uc, extra-poss s+ ], cont [hook [index #ev]], sgf #sgf & sgf-lee-, adjunction modifiable ], nonloc undef-nonlocs, v2 non_v2, lex #lex, phrase - ] ] >, head-dtr #hd ]. adj-slash-intro-rule-final := super-adj-slash-intro-rule & [synsem [loc [cat.head final-verb-head, adjunction modified], nonloc contains-slash & [slash ]], args <[synsem.loc.adjunction unmodified]>]. adj-slash-intro-rule-initial := super-adj-slash-intro-rule & [synsem [loc [cat.head initial_+_fin-verb-head], nonloc contains-slash & [slash ]], args <[synsem.loc.adjunction unmodified]>]. basic-apposition-rule-type := self-less-rule-type & inher-anc-binary & inher-nonloc2 & head-first-rule & head-constr-2-rule & inher-left-sister-pnctpr-binary-rule-type & [synsem.loc [cat #cat, adjunction #adj], HEAD-DTR #hd, ARGS < #hd & [ synsem [loc [ cat #cat & [head.mod #mod, subcat ], adjunction #adj ]], MALRULE.MAL-COMMA-INFL - ], [ key-arg +, synsem [loc [cat.head.mod #mod, adjunction #adj ] ] ] > ]. appos-nodash-mrs-rule-type := basic-apposition-rule-type & [ C-CONT [RELS , HCONS ], ARGS < [ synsem.loc.cont.hook [LTOP #l, index #1 ]], [ synsem.loc.cont.hook.index #2] > ]. appos-nodash-punct-rule-type := basic-apposition-rule-type & [ ARGS < [ SIGNPUNCT [ PAIRED #paired, RPUNCT #punct & [--PAIRED #paired ] ] ], [ SIGNPUNCT [ LPUNCT #punct, PAREN #punct ] ] > ]. appos-nodash-rule-type := appos-nodash-mrs-rule-type & appos-nodash-punct-rule-type. appos-dash-mrs-rule-type := basic-apposition-rule-type & [ C-CONT [ RELS , HCONS ], ARGS < [ SYNSEM.LOC.CONT.HOOK [ LTOP #argl, INDEX #arg1 ]] , [ SYNSEM.LOC.CONT.KEY [ LBL #argl, ARG1 #arg1 ] ] > ]. appos-dash-rule-type := appos-dash-mrs-rule-type & head-paren-dash-punct-rule-type & [ ARGS < [], basic-appos-dash-rule-type > ]. cas-agree-apposition-rule-type := basic-apposition-rule-type & [ SYNSEM.LOC.UNIAGR #agr, ARGS < [ SYNSEM.LOC.UNIAGR #agr & [cas #cas]] , [ SYNSEM.LOC.UNIAGR.CAS #cas ] > ]. nominative-apposition-rule-type := basic-apposition-rule-type & [ ARGS < [ ], [ SYNSEM.LOC.CAT.HEAD.CAS struc-nom & [ MORPH-CASE nom-val ] ] > ]. enge-apposition-rule-type := cas-agree-apposition-rule-type & appos-nodash-mrs-rule-type & no-commapair-binary-rule-type & [ ARGS < [ synsem count-noun-synsem & [phrase -, lex + ] ], [ synsem complete-noun-synsem & [loc.cont.KEY named_ep ] ] > ]. basic-lockere-apposition-rule-type := basic-apposition-rule-type & [SIGNPUNCT [ RPUNCT #rpunct, PAIRED #paired, --COORDPAIRED #paired ], ARGS < [ SYNSEM saturated-ref-noun-synsem ], [ SIGNPUNCT [ RPUNCT #rpunct, PUNCTPAIR #paired ] ] > ]. basic-lockere-noun-apposition-rule-type := basic-lockere-apposition-rule-type & [ ARGS < [], [ SYNSEM.LOC.CAT.HEAD noun-head ] > ]. ;CONT.KEY non_abstr_nom_rel ;Die Kombination aus LOC.CAT.SPR < > und LPER + stellt sicher, dass nur NPs mit Artikel angebunden werden. Um artikellose NPs/Ns kuemmern sich die Regeln unten. lockere-apposition-rule-type1 := cas-agree-apposition-rule-type & basic-lockere-noun-apposition-rule-type & [ ARGS < [], [ SYNSEM complete-noun-synsem & [ LOC [ CAT.SPR < > ]]] > ]. ;verhindert Relativsaetze als Apposition basic-lockere-nondash-noun-apposition-rule-type := basic-lockere-noun-apposition-rule-type & [ ARGS < [], [ RESTR-COLL.REL-CLAUSE-PROJ - ] > ]. lockere-apposition-rule-type1-nodash := lockere-apposition-rule-type1 & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type. lockere-apposition-rule-type1-dash := lockere-apposition-rule-type1 & appos-dash-rule-type. ; basic-lockere-apposition-rule-type2 := basic-lockere-noun-apposition-rule-type & [ ARGS < [ ], [ SYNSEM.LOC [ CAT.SPR < [] > ] ] > ]. ;Artikellose Appositionen mit besetzter linker Peripherie (LPER +)... basic-lockere-apposition-rule-type2-1 := basic-lockere-apposition-rule-type2 & [ ARGS < [ ], [ SYNSEM [ LPER +, LOC.CAT.SPR < [ LOC.cat.head.infl [UNIAGR #agr, NODEF-AGR #agr ]] > ] ] > ]. ;...weisen entweder Kasuskongruenz auf (diese Regel) oder stehen im Nominativ (uebernaechste Regel). Bei Kasuskongruenz im Nominativ feuert diese Regel nicht ( CAS.MORPH-CASE acc-dat-gen-val ), um Doppellizensierung zu vermeiden. lockere-apposition-cas-agree-rule-type2-1-nodash := basic-lockere-apposition-rule-type2-1 & cas-agree-apposition-rule-type & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type & [ ARGS < [ ], [ SYNSEM.LOC.UNIAGR._CAS < [ CAS.MORPH-CASE acc-dat-gen-val ], ... > ] > ]. lockere-apposition-cas-agree-rule-type2-1-dash := basic-lockere-apposition-rule-type2-1 & cas-agree-apposition-rule-type & appos-dash-rule-type & [ ARGS < [ ], [ SYNSEM.LOC.UNIAGR._CAS < [ CAS.MORPH-CASE acc-dat-gen-val ], ... > ] > ]. ;Artikellose Appositionen mit besetzter linker Peripherie im Nominativ lockere-apposition-nominat-rule-type2-1-nodash := basic-lockere-apposition-rule-type2-1 & nominative-apposition-rule-type & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type. lockere-apposition-nominat-rule-type2-1-dash := basic-lockere-apposition-rule-type2-1 & nominative-apposition-rule-type & appos-dash-rule-type. lockere-apposition-rule-type2-2-nodash := basic-lockere-apposition-rule-type2 & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type & [ ARGS < [ ], [ SYNSEM.LPER - ] > ]. lockere-apposition-rule-type2-2-dash := basic-lockere-apposition-rule-type2 & appos-dash-rule-type & [ ARGS < [ ], [ SYNSEM.LPER - ] > ]. #| lockere-apposition-nominat-rule-type2-2-nodash := basic-lockere-apposition-rule-type2 & nominative-apposition-rule-type & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type & [ ARGS < [ ], [ SYNSEM.LPER - ] > ]. lockere-apposition-cas-agree-rule-type2-2-nodash := basic-lockere-apposition-rule-type2 & cas-agree-apposition-rule-type & appos-nodash-rule-type & basic-lockere-nondash-noun-apposition-rule-type & [ ARGS < [ ], [ SYNSEM [ LPER -, LOC.UNIAGR._CAS < [ CAS.MORPH-CASE acc-dat-gen-val ], ... > ] ] > ]. |# ;[ SYNSEM.LOC.CAT.HEAD.CAS struc-nom ], lockere-appositive-adjp-rule-type := basic-lockere-apposition-rule-type & [ ARGS < [synsem.loc.cont.hook.index #x ], [ SYNSEM [ LOC [CONT.HOOK [XARG #x, INDEX [E [TENSE no_tense, MOOD no_mood, PERFECTIVE -]]], CAT.HEAD prd-adj-head], PHRASE +, LEX - ] ] > ]. collect-constr-1b-liszt := grammar-rule & constr-type & [ SYNSEM.LOC.CONT [ RELS [ list #liszt2, last #last1 ], HCONS [ list #sc1, last #scl2] ], C-CONT [ RELS [ list #last2, last #last1 ], HCONS [ list #sc1, last #sclist] ], ARGS.REST.FIRST sign & [ synsem.loc.CONT [ RELS [ list #liszt2, last #last2 ], HCONS [ list #sclist, last #scl2 ] ] ] ]. basic-appos-dash-rule-type := collect-constr-1b-liszt & [ SYNSEM [ LOC [ CAT #cat, ADJUNCTION #adj, UNIAGR #uniagr, CONT.KEY #key ], NONLOC #nonloc, QUE #que, LPER #lper ], SIGNPUNCT.LPUNCT #lpunct, C-CONT [RELS , HCONS ], LR lr-syntax_min & [ LR_INFLECTED + ], ARGS [ FIRST dash-le & [ SIGNPUNCT.LPUNCT #lpunct ], REST.FIRST [ SYNSEM [ LOC [ CAT #cat & [ HEAD noun-or-prd-adj-head ], ADJUNCTION #adj, UNIAGR #uniagr, CONT [ HOOK.INDEX #2 ] ], NONLOC #nonloc, QUE #que, LPER #lper ] ] ] ]. appos-dash-rule-type1 := paren-twodash-punct-rule-type & basic-appos-dash-rule-type. appos-dash-rule-type2 := paren-onedash-punct-rule-type & basic-appos-dash-rule-type. ; inher-anc-binary &; complex-nn-rule-type := self-less-rule-type & inher-nonloc2 & no-commapair-binary-rule-type & head-constr-2-rule & [poss-aff #paff, synsem.loc [cat #cat, uniagr #agr, adjunction #adj, anc [active , inert ] ], C-CONT [RELS , HCONS ], HEAD-DTR #hd, ARGS <[ signpunct.rpunct dash_punct_min, synsem noun-synsem & [loc [ cat [ subcat ], adjunction #adj, cont [hook [LTOP #rest, index #2 ] ] ], lex-complete -, phrase -, lex +] ], #hd & [ poss-aff #paff, synsem noun-synsem & [loc [ cat #cat, adjunction #adj, uniagr #agr, cont [key non_carg_rel, hook [ltop #l, index #1] ] ], PHRASE -, LEX + ] ] > ]. complex-ne-rule-type := self-less-rule-type & inher-nonloc2 & inher-anc-binary & head-last-rule & head-constr-2-rule & no-commapair-binary-rule-type & [poss-aff #paff, synsem [loc [cat #cat, uniagr #agr, adjunction #adj ]], C-CONT [RELS , HCONS ], HEAD-DTR #hd, ARGS <[ poss-aff -, synsem proper-noun-synsem & [loc [ cat [ subcat ], uniagr nda-n-g, adjunction #adj, cont [key named_ep, hook [LTOP #rest, index #2 ]] ], phrase -, lex +] ], #hd & [ poss-aff #paff, synsem proper-noun-synsem & [loc [ cat #cat, adjunction #adj, uniagr #agr, cont [ hook [ ltop #l, index #1], KEY named_ep ] ] ] ] > ]. ;;; Verb movement ; BC 31/7/03: Backporting to syntactic mod attachment: disabling restriction on adjunction feature on DTR loc.adjunction unmodified ; See also vc-head super-eps-rule := self-less-rule-type & eps-vc-sem-transport-rule & unheaded-unary-rule & cle-unary-rule & [synsem fin-verb-synsem & [loc [cat [subj *eps-1-no-sp-list*, --ucomps #--uc, _subcat #_sc, subcat.list *eps-4-no-sp-list*, head eps-verb-head & [_v1-hd #hd, v1 [cont.hook [index #up-ev, ltop #up-ltop, xarg #x], cat.vcomp <[loc [cat.head #hd, cont #cont & [hook [index #e, ltop #h]]]], ...>]]], cont [hook [xarg #x, index #up-ev & event & [--sub -], ltop #up-ltop & handle] ], sgf sgf-lor- ], nonloc contains-no-rel, v2 non_v2, phrase -, cat-change + ], ARGS < [ synsem [loc [cat [_subcat #_sc, --ucomps #--uc, head #hd & [--zu -]], cont #cont & [hook [index #e & [e [tense real_tense], --sub -], ltop #h]]], phrase -, nonloc contains-no-rel ], vf - ] >]. ;; the restriction of the V1 SUBCAT to be of at most length 2 is not appropriate with particles ;; being part of the predicate complex, since `ankaufen' may have four complements ;; the VCOMP of the mother is either the empty list ;; or a zu-inf verb (anfangen in the coherent construction) or an adjective (das sieht gut aus.) eps-vc-rule-part := inher-nonloc & inher-anc-unary & super-eps-rule & [synsem [loc [_third -, cat [ head [ aux #aux, v1 fin-verb-local & [ cat [ head [ aux #aux], subj #subj, subcat.list #sc, vcomp < #vcomp . #mom-vcomp > ] ], _v1-hd #v1_hd ], subcat.list #sc & *coh-2-no-sp-no-rel-synsem-list* , subj #subj & *coh-1-no-sp-list*, ucomps #uc, --ucomps <#hook>, vcomp #mom-vcomp & *vc-eps-list* ], cont.hook.index #ev & [e [tense present+past, perfective -], --psv psv-] ] ], ARGS < [ synsem #vcomp & sp-or-prd-adj-or-non-fin-verb-synsem & particle-sep-or-nonsep-synsem & [loc [ cat [head #v1_hd, erg-subtr -, vcomp <>, ucomps #uc, subcat.list <>, extra-poss x_-], cont [key.arg0.--top -, hook #hook & [index #ev ]]], phrase - ] ] > ]. eps-vc-slash-intro-rule-part := inher-anc-slash & super-eps-rule & slash-intro-sign & [synsem [loc [_third bool, cat [head [aux #aux, v1 fin-verb-local & [cat [head [aux #aux ], subj #subj, subcat.list <>, vcomp < #vcomp , [loc #l & [ cat prd-adj-or-non-fin-verb-cat & [head [extra na_or_-], vcomp <>, subcat.list #uc & *eps-2-list* ], anc [self [list #a1, last #a1], active [list #a1, last #a2], inert [list #a2]] ], nonloc contains-slash & [_slash #_slash & , subcat.list *eps-2-list* ]] !>, slash #slash & [LIST.FIRST #l ] ] ]> ] ] ], ucomps #uc & *eps-2-no-sp-undef-nonlocs-synsem-list*, --ucomps #--uc, subcat.list <>, subj #subj & *eps-no-sp-undef-nonlocs-synsem-list* , vcomp <> ], cont [hook [index #ev & event & [e [tense present+past, perfective -, stative -], --psv psv-, --tpc tpc]]], coord - ], nonloc contains-slash & [ _slash #_slash & , subcat.list *eps-2-list* ]] !>, _topic-drop -, slash #slash], que #que ], ARGS < [ synsem #vcomp & sp-or-prd-adj-or-non-fin-verb-synsem & particle-sep-or-nonsep-synsem & [loc [ cat [head._vc sp-form_+, erg-subtr -, vcomp <>, subcat.list <>, extra-poss x_-], cont [hook [index #ev]]], nonloc undef-nonlocs , que #que, v2 non_v2, phrase - ] ] > ]. eps-vc-3rd-intro-rule-part := inher-anc-unary & super-eps-rule & slash-intro-sign & [synsem [loc [_third +, cat [head [aux #aux, v1 fin-verb-local & [cat [head [aux #aux], subj #subj, subcat.list <>, vcomp < #vcomp , [loc #l & [ cat prd-adj-or-non-fin-verb-cat & [head [extra na_or_-], vcomp <>, subcat.list #sc ] ], nonloc contains-slash & [_slash #_slash & ]] !>, slash #slash & [LIST.FIRST #l ] ] ]> ] ] ], ucomps <>, --ucomps <>, _subcat #sc, subcat.list #sc, subj #subj & *eps-no-sp-undef-nonlocs-synsem-list*, vcomp <>], cont [hook [index #ev & event & [e [tense present+past, perfective -, stative -], --psv psv-, --tpc tpc]]], coord - ], nonloc contains-slash & [ _slash #_slash & ]] !>, _topic-drop -, slash #slash], que #que ], ARGS < [ synsem #vcomp & sp-or-prd-adj-or-non-fin-verb-synsem & particle-sep-or-nonsep-synsem & [loc [ cat [head._vc sp-form_+, erg-subtr -, vcomp <>, subcat.list <>, extra-poss x_-], cont [hook [index #ev]]], nonloc undef-nonlocs , que #que, v2 non_v2, phrase - ] ] > ]. ; Backport to syntactic modifier attachment: relaxing extra-poss x_- to x_c- restr-eps-vc-rule := inher-anc-unary & super-eps-rule & [synsem [ loc [ _third #3rd, cat [ head [ aux #aux, v1 fin-verb-local & [cat [ head [ aux #aux], subcat.LIST *eps-1-list*, subj #subj , vcomp < #vcomp > ] ] ], subj #subj, ucomps #uc, subcat.list *eps-3-no-sp-no-rel-synsem-list*, vcomp <>] ], nonloc [_topic-drop #td, _slash #_slash, slash #slash, rel #rel], que #que ], ARGS < [synsem #vcomp & sp-or-prd-adj-or-non-fin-verb-synsem & [loc [_third #3rd & -, cat [vcomp <>, ucomps #uc, extra-poss x_c- ] ], phrase -, nonloc [_topic-drop #td, _slash #_slash, slash #slash, rel #rel], que #que ] ] > ]. eps-vc-rule-1+ := restr-eps-vc-rule & [synsem.loc.cat.head [v1.cat [subj < saturated-noun-synsem & [loc [uniagr n-n-g]] >, subcat.list < [loc [uniagr da-n-g, cont.hook.index #i]]>]], args.FIRST.synsem adj-prd-or-coherent-complement-verb-synsem & [loc [cat.head prd-adj-or-non-fin-verb-head & [subj < saturated-noun-synsem >], cont.hook [--oind #i & individual & [--bnd +], index.e.tense no_tense]]]]. eps-vc-rule-s0-1+ := restr-eps-vc-rule & [synsem.loc.cat.head [v1.cat [subj #subj, subcat.list < [loc [uniagr d-n-g, cont.hook.index #i]]>]], args.FIRST.synsem adj-prd-or-coherent-complement-verb-synsem & [loc [cat.head adj-or-inf-or-bse-verb-head & [subj #subj & *empty-or-expl-synsem-list*], cont.hook [--oind #i & individual & [--bnd +], index.e.tense no_tense]]]]. ; eps-vc-inf-verb-rule-1+ := eps-vc-rule-1+ & ; [args <[synsem.loc [cat [head prd-adj-or-inf-verb-head ]]]>]. ; eps-vc-bse-verb-rule-1+ := eps-vc-rule-1+ & ; [synsem.loc [cat [head.v1.cat.subcat.list <#1 & [loc [uniagr a-n-g]]>]], ; args <[synsem.loc [cat [head bse-verb-head & ; [subj <#1 >]], ; cont.hook.index.e.--zu - ; ]]>]. inher-anc-slash := *rule* & [synsem [loc.anc anc-inher & [active [list #a1 , last #a5], inert [list #in1, last #in3]], nonloc contains-slash & [slash [list <[anc [self [list #a2 , last #a3], active [list #a3, last #a4], inert [list #a4, last #a5]]] . #last>, last #last] ]], args <[synsem.loc.anc anc-inher & [self [list #in2, last #in3], active [list #a1, last #a2], inert [list #in1, last #in2]]]> ]. slash-intro-rule-type := self-less-rule-type & inher-anc-slash & headed-unary-rule-type & slash-intro-sign & inher-ltops & [synsem [loc [cat [vcomp <>, ucomps #uc & <>], coord -], nonloc contains-slash & [_slash , slash ], lex -, phrase +, v2 non_v2 ], head-dtr #hd, ARGS < #hd & [synsem [loc [cat [ head fin-verb-head & non-mod-non-coord-head, ucomps #uc, vcomp <>, extra-poss s+ & x_- ], adjunction unmodified ], nonloc undef-nonlocs, v2 non_v2, phrase - ] ] > ]. ;; BC: UNified version of SGF and subj extraction subj-slash-intro-rule := slash-intro-rule-type & [synsem [loc [cont.hook.index [--tpc tpc-subj], sgf sgf-lee+ & [LEE <#sind>], cat [subj <>, subcat #sc & [list *eps-no-sp-undef-nonlocs-synsem-list* ]]], nonloc.slash #slash], head-dtr.synsem [loc [cat [subj <[ loc #l & [cont.hook.index #sind, cat.head no-eps-head & [top +] ], nonloc contains-slash & [slash #slash & [LIST.FIRST #l ] ] ]>, subcat #sc]]]]. comp-slash-intro-rule := slash-intro-rule-type & [synsem [loc [sgf #sgf & sgf-lee-, cont.hook.index [--tpc tpc-comp], cat [ subj #subj, subcat.list #sc & *eps-no-sp-undef-nonlocs-synsem-list*]], nonloc.slash #slash], head-dtr.synsem [loc [sgf #sgf, cat [subcat.list <[ loc #l & [cat.head no-eps-head & [top +] ], nonloc contains-slash & [slash #slash & [LIST.FIRST #l ] ] ] . #sc>, subj #subj]]]]. inher-anc-pvp-rule := self-less-rule-type & inher-anc-slash & headed-unary-rule-type & [synsem fin-verb-synsem & [loc [ cat [ vcomp <>, subj #subj, subcat.list *eps-undef-nonlocs-synsem-list* ] ], nonloc contains-slash & [rel #rel, slash singleton-diff-list & [LIST.FIRST #vcomp & [cat [drop -, head [extra na_or_-, top +] ] ] ] ], v2 #v2, lex +, phrase - ], ARGS < [synsem verb-synsem & [loc [ cat [ head initial_+_fin-verb-head, vcomp < [loc #vcomp & [cat [vcomp <>, subcat.list *eps-2-list* ]]]>, subj #subj ] ], nonloc undef-nonlocs & [rel #rel ], v2 #v2 ] ] > ]. pos-es := mw-complex-rule & collect-constr-2-liszt & basic-binary-punct-rule & get-rpunct-msgpred-rule-type & no-ltops-headed-rule & inher-nonloc2 & [ C-CONT [ RELS , HCONS ]] & [synsem complete-synsem & [loc [ CONT [hook [index #ev, ltop #l]], sgf #sgf & sgf-lee-, cat.extra-poss x_-, coord -, adjunction unmodifiable, anc anc-inher & [self , active , inert ] ], QUE , lex -, phrase +, v2 v2], head-dtr #hd, ARGS < es-dummy & [synsem.loc.cont [hook.index expl-ind, rels , hcons ]], #hd & [synsem s-v1-synsem & [loc [sgf #sgf, CONT.hook [INDEX #ev & [--tpc tpc-], ltop #l], cat.head.extra na_or_- ] ] ] > ]. left-dislocation-rule := headed-binary-rule & head-constr-2-rule & inher-nonloc2 & inher-anc-binary & [c-cont [hcons , rels ], synsem complete-ref-comp-noun-synsem & [loc [ uniagr #agr, cat #cat, adjunction #adj, coord na, CONT [ hook [ltop #l, index #1], key #key ] ], lex -, phrase + ], vf +, ARGS < [ synsem complete-ref-comp-noun-synsem & [loc [ uniagr #agr, cat #cat, adjunction #adj, cont [ hook [index #2], key #key & reg-nom-rel ] ] ], vf - ], [ synsem d-pron-synsem & [loc [ uniagr #agr, cat #cat & [head.top + ], adjunction #adj, cont [hook [ltop #l, index #1 ], key.pred "_pron_n_deictic_rel"] ], lex +, phrase - ], key-arg + ] > ]. rc-left-dislocation-rule := inher-anc-binary & bin-headed-inher-rule-type & [ synsem complete-ref-comp-noun-synsem & [ loc [ uniagr #agr, cat #cat, adjunction #adj, coord -, CONT [ hook [index #ind], key #key ] ], lex -, phrase + ], vf +, ARGS < extraction-rel-clause-rule-type & [synsem [loc [uniagr #agr, adjunction #adj, cat.head.mod.loc.cont.hook.index #ind, cont [hook.ltop #ltop, modcont [hook [ index #ind], key #key & reg-nom-rel ] ] ] ], vf -, key-arg +, signpunct.rpunct comma_punct ], [ signpunct.rpunct no_punct, synsem d-pron-synsem & [ loc [ uniagr #agr, cat #cat & [ head.top + ], adjunction #adj, cont.hook [index #ind, ltop #ltop] ] ] ] > ]. clause-proj-rule := no-ltops-unary-rule & inher-nonloc-unheaded-unary-rule & commapair-unary-rule-type & [synsem v2-comp-synsem & [loc [cat.head.extra na_or_+, sgf sgf-lor-lee-, anc anc-inher & [self , active , inert ], cont mrs & [RELS #rels, HOOK [index #i & [sf prop], ltop #lbl], HCONS [LIST #s-hcons, LAST #hc-last] ], adjunction unmodifiable], cat-change +, ellipse #ellipse ], ARGS < [ synsem saturated-comp-fin-verb-synsem & [ LOC [cat.head initial_+_fin-verb-head, sgf sgf-lee-, CONT [hook [index #i, ltop #lbl], RELS #rels, HCONS [LIST #s-hcons, LAST #hc-last] ]] , cat-change -, ellipse #ellipse ], SIGNPUNCT.RPUNCT comma_or_clause_or_semicol_min ] > ]. #| ; conj-less-cond-clause-proj-rule := ; inher-nonloc-unheaded-unary-rule & ; collect-constr-1-liszt & ; got-no-rpunct-msgpred-rule-type & ; commapair-unary-rule-type & [ ; synsem synsem & [ ; loc [cat.head post-mod-complementizer-head & [ extra na_or_+ ], ; sgf sgf-lor-lee-, ; anc anc-inher & [self , ; active , ; inert ], ; adjunction unmodifiable, ; CONT.MODCONT #modcont ], ; cat-change +, ; ellipse #ellipse ; ], ; SIGNPUNCT.RPUNCT comma_punct_min, ; RESTR-COLL.cond-clause-proj +, ; C-CONT subordination-and-sem-type & [ HOOK [ LTOP #subord, ; INDEX #i ], ; KEY [ ARG0 event, ; ARG1 #maintop, ; ARG2 #subm, ; PRED "cond_subord_x_rel" ], ; MODCONT #modcont & [ HOOK [ ltop #maintop] ], ; RELS [ list < [], ; [lbl #subm, ; arg0 #i, ; pred prpstn_m_rel, ; marg #marg], ... > ], ; HCONS [ list [ FIRST [ HARG #marg, ; LARG #subord ] ] ] ], ; ARGS < [ synsem complete-s-v1-synsem & ; [ LOC [sgf sgf-lee-, ; CONT [hook [index #i, ; ltop #subord ], ; MODCONT #modcont ; ]], ; ellipse #ellipse ; ] ; ] ; > ; ]. |# v1-clause-proj-rule-type := constr-unary-type & got-no-rpunct-msgpred-rule-type & commapair-unary-rule-type & no-ltops-unary-rule & basic_cle-unary-rule & [C-CONT [RELS , HCONS ], synsem verb-modifier-synsem & [loc [cat.head.extra na_or_+, sgf sgf-lor-lee-, anc anc-inher & [self , active , inert ], cont isect-mod-sem-type & [hook.index #e0 & [sf prop], modcont.hook [index #main, ltop #lbl], HOOK [ltop #lbl] ], adjunction unmodifiable], nonloc #nloc & undef-nonlocs, que #que, cat-change +, v2 non_v2, lex -, phrase +, ellipse #ellipse ], vf +, ARGS < [ synsem complete-comp-fin-verb-synsem & [ LOC [sgf sgf-lee-, cat [head initial_+_fin-verb-head], CONT [hook [index [--tpc tpc-, e [mood indicative+subjunctive]], ltop #sub] ]], nonloc #nloc, que #que, ellipse #ellipse, v2 non_v2 ] ] > ]. MAL-binary-rule-type := inher-left-sister-pnctpr-binary-rule-type & inher-punctpair-binary-rule-type & sign & [ SIGNPUNCT [ LPUNCT #lpunct, RPUNCT #rpunct ], ARGS < [ SIGNPUNCT.LPUNCT #lpunct ], [ SIGNPUNCT.RPUNCT #rpunct ] > ]. MAL-unary-rule-type := inher-all-pnct-unary-rule & sign. get-rpunct-msgpred-rule-type := grammar-or-mw-rule & [ SYNSEM [ LOC.CONT.HOOK.INDEX.SF #msgpred ], SIGNPUNCT.RPUNCT.MSGPRED #msgpred, RESTR-COLL.got-rpunct-msgpred + ]. got-no-rpunct-msgpred-rule-type := grammar-or-mw-rule & [ RESTR-COLL.got-rpunct-msgpred - ]. inher-punctpair-binary-rule-type := binary-rule & [ SIGNPUNCT [ PAIRED #paired, PUNCTPAIR #punctpair ], ARGS < [ ], [ SIGNPUNCT [ PAIRED #paired, PUNCTPAIR #punctpair ] ] > ]. inher-left-sister-pnctpr-binary-rule-type := binary-rule & [ SIGNPUNCT.--LEFT_SISTER_PAIRED #lspaired, ARGS < [ SIGNPUNCT.--LEFT_SISTER_PAIRED #lspaired ], [] > ]. basic-no-commapair-binary-rule-type := inher-punctpair-binary-rule-type & apply-left-sister-rpunct-no-semicol-rule-type & inher-left-sister-pnctpr-binary-rule-type & [ SIGNPUNCT [ PAIRED #--coordpaired, --COORDPAIRED #--coordpaired ]]. no-commapair-binary-rule-type := basic-no-commapair-binary-rule-type & apply-left-sister-paired-rule-type & [ SIGNPUNCT.INFPUNCT [ --RIGHT_INFCOMMA #rinfcomma, --TRANS_INFCOMMA #trinfcomma ], ARGS < [ ], [ SIGNPUNCT.INFPUNCT [ --RIGHT_INFCOMMA #rinfcomma, --TRANS_INFCOMMA #trinfcomma ] ] > ]. basic_commapair-rule-type := *rule*. basic_commapair-binary-rule-type := basic_commapair-rule-type & apply-left-sister-paired-rule-type & apply-left-sister-rpunct-rule-type & [ SIGNPUNCT [ PAIRED #ppair, PUNCTPAIR #ppair, --COORDPAIRED #--coordpaired ], ARGS < [ ], [ SIGNPUNCT [ PUNCTPAIR #ppair, PAIRED #--coordpaired ] ] > ]. ;--noninherpaired #ppair commapair-binary-rule-type := basic_commapair-binary-rule-type & [ SYNSEM.PUNCT.--LEFT_SISTER_RPUNCT advers_comma_punct ]. ; [nk] "Zu den Parallelogrammen gehören: Rechteck; Quadrat; Rhomboid und Rhombus. ; "Zu den Parallelogrammen gehören: Rechteck, Quadrat, Rhomboid und Rhombus. ; ==> attach-left-comma-or-semicol-rule-type := inher-punctpair-binary-rule-type & [ ARGS < [ SIGNPUNCT.RPUNCT comma_or_semicol_min & non_v2 ], [ ] > ]. attach-left-comma-rule-type := attach-left-comma-or-semicol-rule-type & [ ARGS < [ SIGNPUNCT.RPUNCT advers_comma_punct_min ], [] > ]. ; [nk] Um z.B. Semikolon auszuschließen in: ; "Ach nerve mich nicht!" ; "Ach, nerve mich nicht!" ; *"Ach; nerve mich nicht!" ; ==> attach-optional-left-comma-rule-type := apply-left-sister-rpunct-rule-type & [ ARGS < [ SIGNPUNCT.RPUNCT comma_or_no_punct_min ], [ ] > ]. ;; Folgende Regel braucht man für das Komma bei clause-proj: "Er sagte, er werde schlafen" commapair-unary-rule-type := unary-rule_min & basic_commapair-rule-type & [ SYNSEM.PUNCT.--LEFT_SISTER_RPUNCT advers_comma_punct_min, SIGNPUNCT.PUNCTPAIR #paired, SIGNPUNCT.PAIRED #paired ]. apply-left-sister-rpunct-rule-type := binary-rule & [ SIGNPUNCT.PAREN #paren, ARGS < sign & [ SIGNPUNCT.RPUNCT #lrpunct ], sign & [ SYNSEM.PUNCT.--left_sister_rpunct #lrpunct, SIGNPUNCT [ LPUNCT advers_comma_punct_min, PAREN #paren ] ]> ]. apply-left-sister-paired-rule-type := binary-rule & [ ARGS < sign & [ SIGNPUNCT [ PAIRED #paired, INFPUNCT.--TRANS_INFCOMMA #lspairrest ] ], sign & [ SIGNPUNCT.--LEFT_SISTER_PAIRED < #paired & non_inf-ppair . #lspairrest > ] > ]. apply-left-sister-rpunct+paired-rule-type := apply-left-sister-rpunct-rule-type & inher-left-sister-pnctpr-binary-rule-type & apply-left-sister-paired-rule-type. apply-left-sister-rpunct-no-semicol-rule-type := apply-left-sister-rpunct-rule-type & [ ARGS < sign & [ SIGNPUNCT [ RPUNCT comma_or_paren_or_dash_or_no_punct_min ] ], sign & [ ] > ]. apply-left-sister-rpunct+paired-no-semicol-rule-type := apply-left-sister-rpunct+paired-rule-type & apply-left-sister-rpunct-no-semicol-rule-type.