;;; -*- 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 complex-nn := complex-nn-rule-type. v1-parenthesis-nodash := v1-commun-parenth-rule-type-nodash. v1-parenthesis-dash := v1-commun-parenth-rule-type-dash & [ARGS.REST.FIRST.KEY-ARG +]. v1-paren-onedash := v1paren-onedash-rule-type & [ARGS.REST.FIRST.KEY-ARG +]. v1-paren-twodash := v1-paren-twodash-rule-type & [ARGS.REST.FIRST.KEY-ARG +]. ;so-np := so-np-rule-type. ;so-vp := so-vp-rule-type. ;bind-marked-parenth := bind-marked-parenth-rule-type. ;main-clause-parenth := main-clause-parenthesis-rule-type. ;quote-rule := quote-rule-type. ;colon-quote-rule := colon-quote-rule-type. np-nbar := np-n1-head-rule-type. det-nbar := det-n1-head-rule-type. empty-noun-modifier-rule := empty-noun-modifier-rule-type & [ synsem fak-intr-det-ref-comp-nominal-synsem-syn & [ loc [ cat [ head #head & [ cas #cas, lpe #lpe ], inflected #inflected, spr < #det & det-synsem & [ loc.CONT.KEY [ ARG0 #index ] ] >, no_adj #no_adj ], cont.HOOK.INDEX #index, coord -, uniagr #uniagr ], cat-change +, lex -, phrase #phrase ], ARGS < [ synsem complete-noun-modifier-synsem & [ loc [cat [ head [ mod noun-synsem & [ loc.cat [ head #head & [ cas #cas ], spr < #det > ] ], lpe #lpe ], inflected #inflected, no_adj #no_adj ], uniagr #uniagr], phrase #phrase ], key-arg + ] > ]. rel-clause-proj := rs-proj-rule-type & [synsem complete-synsem & [loc [ cat.head #rp-head & [mod *undef*], coord - ], cat-change -, lex - ], ARGS <[synsem complete-noun-modifier-synsem & [ loc [cat.head rel-clause-head & [ rp-head #rp-head]]], key-arg + ] > ]. empty-det-proper-noun := empty-det-rule-type & [poss-aff #poss-aff, c-cont.rels , ARGS < [poss-aff #poss-aff, synsem.loc [ cont.key carg-type, cat.spr < [ loc.cat.drop-det + ] >, uniagr c-n-g ] ] > ]. empty-det-sg := empty-det-rule-type & [c-cont.rels , ARGS < [ synsem.loc [ cont.key non_carg_rel, cat.spr < [ loc.cat.drop-det + ] >, uniagr c-s-g ]]>]. empty-det-pl := empty-det-rule-type & [c-cont.rels , ARGS < [ synsem.loc [cont.key non_carg_rel, uniagr c-p-g ]]> ]. n-mod-gen-np := n-mod-gen-np-rule-type & [ synsem noun-synsem & [ loc [ cat [ spr #spr, subcat #sc, vcomp <> ], coord - ], lex -, phrase + ], C-CONT [ RELS , HCONS ], ARGS < [ synsem noun-synsem & [ loc [ cat [ spr #spr & < synsem >, subcat #sc, vcomp <> ], CONT [ hook [ltop #hand, INDEX #possd] ] ], phrase - ] ], [ poss-aff +, synsem complete-comp-noun-synsem & [ loc [ CONT [ hook [INDEX #possr] ], uniagr g-n-g ], lex - ], key-arg + ] > ]. ;; Irans Außenminister np-to-det := np-to-det-rule-type. h-subj := h-s-rule-type. subj-h := s-h-rule-type. h-ucomp := h-uc-rule-type & [head-dtr.synsem.loc.coord bool, non-head-dtr.synsem.loc.sgf sgf-lee- ]. h-comp := h-comp-rule-type. #| h-subj-corr := h-subj-corr-rule-type. h-comp-corr := h-comp-corr-rule-type. subj-h-corr := subj-h-corr-rule-type. comp-h-corr := comp-h-corr-rule-type. |# coord-comp-non-v := normal-coord-comp-non-v-rule-type. coord-comp-rel := coord-comp-rel-clause-rule-type. coord-comp-fin := coord-comp-fin-rule-type. coord-comp-nonfin := coord-comp-nonfin-rule-type. coord-comp-prd := coord-comp-prd-rule-type. comp-h := c-h-rule-type. ucomp-h := uc-h-rule-type. h-subj-extraposed := h-extra-s-rule-type & [head-dtr.key-arg +]. h-comp-extraposed := h-extra-c-rule-type & [non-head-dtr.key-arg +]. h-ucomp-extraposed := h-extra-uc-rule-type & [non-head-dtr.key-arg +]. #| h-adjunct-extraposed := h-extra-a-rule-type & [non-head-dtr.key-arg +]. |# #| v-scop-extraposed := v-extra-a-rule-type & [c-cont [rels , hcons ], synsem.loc [cat.head verb-head], non-head-dtr [key-arg +, synsem.loc.cont scopal-mod-sem-type & [modcont.hook.ltop #b, hook [ltop #l]] ], head-dtr [synsem.loc.cont [hook [ltop #t & [], lbot #b]] ]]. |# vcomp-participle := vc-participle-rule & [synsem.loc.cat.subcat.list #sc, head-dtr [synsem.loc.cat [subcat.list <>, vcomp <[loc.cat.subcat.list #sc]>]]]. vcomp-h-0 := vc-head-rule & [synsem.loc.cat.subcat.list #sc, head-dtr [synsem.loc.cat [subcat.list <>, vcomp <[loc.cat.subcat.list #sc]>]]]. vcomp-h-1 := vc-head-rule & [synsem.loc.cat.subcat.list <#1 . #sc>, head-dtr [synsem.loc.cat [subcat.list <#1>, vcomp <[loc.cat.subcat.list #sc]>]]]. vcomp-h-2 := vc-head-rule & [synsem.loc.cat.subcat.list <#1,#2 . #sc>, head-dtr [synsem.loc.cat [subcat.list <#2>, vcomp <[loc.cat.subcat.list <#1 .#sc>]>]]]. vcomp-h-3 := vc-head-rule & [synsem.loc.cat.subcat.list <#1,#2,#3 . #sc>, head-dtr [synsem.loc.cat [subcat.list <#3>, vcomp <[loc.cat.subcat.list <#1,#2 .#sc>]>]]]. vcomp-h-4 := vc-head-rule & [synsem.loc.cat.subcat.list <#1,#2,#3,#4 . #sc>, head-dtr [synsem.loc.cat [subcat.list <#4>, vcomp <[loc.cat.subcat.list <#1,#2,#3 .#sc>]>]]]. h-isect := h-isect-rule. isect-h := isect-h-rule. scop-h := scop-h-rule. h-extra-isect := h-extra-isect-rule. h-extra-scop := h-extra-scop-rule. v-scop := v-scop-rule. v1-term-noscop := v_ini_term_no_scop_rule. v1-term-scop := v_ini_term_scop_rule. subj-slash-intro := subj-slash-intro-rule. comp-slash-intro := comp-slash-intro-rule. isect-slash-intro-vfin := adj-slash-intro-rule-final & [synsem [loc.cont [hook [ltop #l, index #e & [--tpc tpc-isect] ]], nonloc [_slash , slash ]], head-dtr [synsem.loc.cont.hook.ltop #l], c-cont [rels , hcons ]]. isect-slash-intro-vini := adj-slash-intro-rule-initial & [SYNSEM [LOC.CONT [HOOK [LTOP #l, _LTOPS #ltops, INDEX #e & [--TPC tpc-isect] ]], NONLOC [_SLASH , SLASH ]], ARGS < [SYNSEM.LOC.CONT.HOOK._LTOPS #ltops]>, C-CONT [RELS , HCONS ]]. scop-slash-intro-vfin := adj-slash-intro-rule-final & [c-cont [rels , hcons ], synsem [loc.cont [key #k, hook [index [--tpc tpc-scop], ltop #t]], nonloc.slash ], head-dtr [synsem.loc.cont [key #k, hook [ltop #l] ]] ]. scop-slash-intro-vini := adj-slash-intro-rule-initial & [c-cont [rels , hcons ], synsem [loc.cont [key #k, hook [index [--tpc tpc-scop], ltop #l, _ltops [LIST #li, LAST #le]]], nonloc.slash , LAST #le], index [--TOP +], xarg #l & handle]] ] !> ], head-dtr [synsem.loc.cont [hook [ltop #t, _ltops [LIST #li, LAST #lm ]], key #k]] ]. filler-head-get-rpunct-msgpred := filler-head-get-rpunct-msgpred-rule-type & [signpunct.rpunct clause_or_no_punct_min]. imp-get-rpunct-msgpred := imp-get-rpunct-msgpred-rule-type & [signpunct.rpunct clause_or_no_punct_min]. coord-get-rpunct-msgpred := coord-get-rpunct-msgpred-rule-type. filler-h := head-filler-rule-type. wh-h := wh-h-rule-type. rel-clause := extraction-rel-clause-rule-type. int-clause := extraction-int-clause-rule-type. coord := coordination-rule-type & [synsem [ loc [ cat #cat, cont [key #key, hook [ltop #l, index #index, xarg #xarg ]], coord +, sgf [lor <>], uniagr._cas <#conj-agr . #rest-agr> ], nonloc #nonloc, que #que, v2 #v2 ], c-cont [rels , hcons ], ARGS < [synsem #spec & [ loc [cat #cat, uniagr #conj-agr, cont.hook [xarg #xarg], coord bool ], nonloc #nonloc, que #que, v2 #v2 ] ], [ synsem saturated-synsem & [ loc [ cat [ head basic-coord-head & [ spec #spec, coordform normal-coord ] ], cont [key #key, hook [index #index, ltop #l, xarg #xarg ]], uniagr._cas #rest-agr ] ], key-arg +, vf - ] > ]. binary-coord := coordination-rule-type & [synsem [ loc [ cat #cat, adjunction #adj, coord -, cont [key #key, hook [index #ki, ltop #kl]], sgf sgf-lor-lee-, uniagr._cas <#conj-agr . #rest-agr> ], nonloc #nonloc , que #que, v2 #v2 ], c-cont [rels , hcons ], ARGS < [synsem saturated-synsem & [loc [ cat [ head basic-coord-head & [spec [ loc [cat #cat, cont [hook [index #i, ltop #l]], adjunction #adj, sgf sgf-lee-], nonloc #nonloc, v2 #v2 ], coordform initial-binary-coord ] ], cont [hook [ltop #kl, index #ki], key #key & [pred #keypred]], uniagr._cas <#conj-agr, ...> ], que #que ], key-arg + ], [synsem saturated-synsem & [loc [ cat [ head basic-coord-head & [spec [ loc [cat #cat, cont.key.pred #keypred, adjunction #adj, sgf sgf-lee-], nonloc #nonloc, v2 #v2 ], coordform final-binary-coord ] ], cont [hook [index #i, ltop #l]], uniagr._cas #rest-agr ], que #que ], vf -] > ]. recursive-ev-coord := recursive-ev-coord-punct-rule-type & [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE finite], ARGS <[SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE finite]], [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE finite]]>]. recursive-ev-coord-no_tense := recursive-ev-coord-punct-rule-type & [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE no_tense], ARGS <[SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE no_tense]], [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE no_tense]]>]. recursive-ev-coord-none := recursive-ev-coord-punct-rule-type & [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE none], ARGS <[SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE none]], [SYNSEM.LOC.CONT.HOOK.INDEX [E.TENSE none]]>]. recursive-nom-coord := recursive-nom-coord-punct-rule-type. pos-es := pos-es & [args <[],[synsem.loc.sgf.lor *ref-ind-or-event-list*]>]. ;clause-proj := clause-proj-rule. ; conj-less-cond-clause-proj := conj-less-cond-clause-proj-rule. v1-clause-proj := v1-clause-proj-rule-type. eps-vcomp-3:= eps-vc-rule-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#3 >]], subcat.list <#1,#2,#3 . #sc>], args <[synsem.loc.cat.subcat.list <#1,#2 . #sc>]>]. eps-vcomp-2:= eps-vc-rule-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#2 >]], subcat.list <#1,#2 . #sc>], args <[synsem.loc.cat.subcat.list <#1 . #sc>]>]. eps-vcomp-1:= eps-vc-rule-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#1>]], subcat.list <#1 . #sc>], args <[synsem.loc.cat.subcat.list #sc]>]. ; eps-vcomp-3-raising := eps-vc-bse-verb-rule-1+ & ; [synsem.loc.cat [head [v1.cat [subcat.list <#3 >]], ; subcat.list <#1,#2,#3 . #sc>], ; args <[synsem.loc.cat.subcat.list <#1,#2 . #sc>]>]. ; eps-vcomp-2-raising := eps-vc-bse-verb-rule-1+ & ; [synsem.loc.cat [head [v1.cat [subcat.list <#2 >]], ; subcat.list <#1,#2 . #sc>], ; args <[synsem.loc.cat.subcat.list <#1 . #sc>]>]. ; eps-vcomp-1-raising := eps-vc-bse-verb-rule-1+ & ; [synsem.loc.cat [head [v1.cat [subcat.list <#1>]], ; subcat.list <#1 . #sc>], ; args <[synsem.loc.cat.subcat.list #sc]>]. eps-vcomp-0 := restr-eps-vc-rule & [synsem.loc.cat [head.v1.cat [subj *eps-1-list*, subcat.list <>], subcat.list #sc & *eps-3-list*], args <[synsem prd-adj-or-non-fin-verb-synsem & [loc [cat [subcat.list #sc ], cont [hook.--oind.--bnd -]]]]>]. eps-vcomp-3-nosubj := eps-vc-rule-s0-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#3>]], subcat.list <#1,#2,#3 . #sc>], args <[synsem.loc.cat.subcat.list <#1,#2 . #sc>]>]. eps-vcomp-2-nosubj := eps-vc-rule-s0-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#2>]], subcat.list <#1,#2 . #sc>], args <[synsem.loc.cat.subcat.list <#1 . #sc>]>]. eps-vcomp-1-nosubj := eps-vc-rule-s0-1+ & [synsem.loc.cat [head [v1.cat [subcat.list <#1>]], subcat.list <#1 . #sc>], args <[synsem.loc.cat.subcat.list #sc]>]. eps-part_-vc := eps-vc-rule-part & [synsem.loc.cat [vcomp <>], args <[synsem.loc.cat.head._vc sp-form_-]>]. eps-part_+vc-0 := eps-vc-rule-part & [synsem.loc.cat [vcomp ], args <[synsem.loc.cat.head._vc sp-form_+]>]. imperative := imp-rule-type. imperative-3pl := imp-bin-rule-type. v-fin-imperative := v-fin-imp-rule-type. yes-no-question := yes-no-q-rule. aux-s := aux-s-rule-type. v1-s := v1-s-rule-type. comp-s := comp-s-rule-type. ;third-to-pvp-rule := third-to-pvp-rule. reorder-2-1 := reorder-lrule & [synsem.loc.cat.subcat.list <#2 & [loc.cat.opt -] ,#1 .#sc> , args.first.synsem.loc.cat.subcat.list <#1,#2 . #sc> ]. reorder-3-1 := reorder-lrule & [synsem.loc.cat.subcat.list <#3 & [loc.cat.opt -],#2,#1 .#sc> , args.first.synsem.loc.cat.subcat.list <#1,#2,#3 . #sc>]. reorder-3-2 := reorder-lrule & [synsem.loc.cat.subcat.list <#1,#3 & [loc.cat.opt -],#2 . #sc>, args.first.synsem.loc.cat.subcat.list <#1,#2,#3 .#sc>]. v1-fin-lrule-no-rb := v1-fin-lrule-no-rb. v1-fin-lrule-rb := v1-fin-lrule-rb.