;;; -*- Mode: tdl; Coding: utf-8; -*- ;;; ;;; Copyright (c) 1994-2013 ;;; Dan Flickinger, Rob Malouf, Emily M. Bender ;;; see LICENSE for conditions ;;; ;;; syntax.tdl ;;; ;;; The grammar rules for English ;;; ;;; Created: Rob Malouf, 3-Nov-1994 ;;; ;;; $Id: syntax.tdl 7479 2010-02-21 23:11:30Z danf $ ;; ;; Phrase structure schemata ;; ; Headed phrases must obey the Head Feature Principle and the Revised Marking ; Principle. They do not all obey the NLFP with respect to QUE, but it ; appears that all CLAUSE phrases account for QUE on mother and non-head-dtr. ; Hence moved the QUE coreference to NON-CLAUSE. Headed phrases also identify ; the value of AGR on mother and head daughter, unlike e.g. the coordination ; schemata which identify HEAD but not AGR. ;; DPF 2012-03-23: Interestingly, this identification of AGR might shed some ;; light on which daughter is the head in the proper-name phrase |Kim Browne| ;; since |[Kim and Mary] Browne| shows plural agreement when it's the subject. ;; We have been treating these proper-name compounds pretty much like other ;; nominal compound phrases, all of which have the right dtr as the head. ;; FIX, one way or the other. headed_phrase := phrase & [ SYNSEM.LOCAL [ CAT [ HEAD head & #head, HC-LEX #hclex ], AGR #agr, CONJ #conj ], HD-DTR.SYNSEM.LOCAL local & [ CAT [ HEAD #head, HC-LEX #hclex ], AGR #agr, CONJ #conj ] ]. non_headed_phrase := phrase. ; Most but not all phrases have SYNSEM phr_synsem; head_complement constructions ; have their SYNSEM type determined by the head-dtr. phrasal := phrase & [ SYNSEM phr_synsem ]. ; Head/nexus phrases pass up the REL and QUE values of the head daughter ; (which has amalgamated the REL and QUE values of its arguments a la Ivan's ; relative clause paper) to the mother. head_nexus_rel_phrase := headed_phrase & [ SYNSEM.NONLOC.REL #rel, HD-DTR.SYNSEM.NONLOC.REL #rel ]. head_nexus_que_phrase := headed_phrase & [ SYNSEM.NONLOC.QUE #que, HD-DTR.SYNSEM.NONLOC.QUE #que ]. head_nexus_phrase := head_nexus_rel_phrase & head_nexus_que_phrase. ; In a head/local dependent phrase, the SLASH feature of the mother is ; token-identical to that of the head daughter, which has already amalgamated ; the SLASH values of its arguments. See discussion of head_nexus_phrase for ; treatment of REL and QUE. head_valence_phrase := head_nexus_phrase & [ SYNSEM.NONLOC.SLASH #slash, HD-DTR.SYNSEM.NONLOC.SLASH #slash ]. ; (Almost) all phrases are either unary or binary. basic_unary_phrase := phrase & [ SYNSEM.LOCAL [ CONT [ RELS *diff-list* & [ LIST #first, LAST #last ], HCONS *diff-list* & [ LIST #scfirst, LAST #sclast ] ], CAT.HEAD [ --HID #from, --CTYPE #ctype ] ], ORTH.TO #to, C-CONT [ RELS [ LIST #first, LAST #middle ], HCONS [ LIST #scfirst, LAST #scmiddle ] ], ARGS < sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle, LAST #last ], HCONS *diff-list* & [ LIST #scmiddle, LAST #sclast ] ], CAT.HEAD [ --HID #from, --CTYPE #ctype ] ], IDIOM #idiom, DIALECT #dialect, GENRE #genre, ORTH.TO #to ] >, IDIOM #idiom, DIALECT #dialect, GENRE #genre ]. norm_unary_phrase := basic_unary_phrase & [ SYNSEM.PUNCT #punct, ORTH [ LB #lb, RB #rb ], ARGS < [ SYNSEM.PUNCT #punct, ORTH [ LB #lb, RB #rb ] ] > ]. unary_phrase := norm_unary_phrase & [ INFLECTD +, ARGS < [ INFLECTD + ] > ]. basic_binary_phrase := phrase & [ SYNSEM [ LOCAL.CONT [ RELS *diff-list* & [ LIST #first, LAST #last ], HCONS *diff-list* & [ LIST #scfirst, LAST #sclast ] ] ], ORTH [ TO #to, LB #lb, RB #rb ], C-CONT [ RELS *diff-list* & [ LIST #first, LAST #middle1 ], HCONS *diff-list* & [ LIST #scfirst, LAST #scmiddle1 ] ], ARGS < sign & [ SYNSEM [ LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle1, LAST #middle2 ], HCONS *diff-list* & [ LIST #scmiddle1, LAST #scmiddle2 ] ] ] ], ORTH [ LB #lb, RB bracket_null ], IDIOM #idiom, DIALECT #dialect, GENRE #genre ], sign & [ SYNSEM [ LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle2, LAST #last ], HCONS *diff-list* & [ LIST #scmiddle2, LAST #sclast ] ] ] ], ORTH [ TO #to, LB bracket_null, RB #rb ], IDIOM #idiom, DIALECT #dialect, GENRE #genre ] >, IDIOM #idiom, DIALECT #dialect, GENRE #genre ]. binary_punct_phrase := basic_binary_phrase & [ SYNSEM.PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, PAIRED #paired, RCLSTR #rclstr ], ARGS < [ SYNSEM.PUNCT.LPUNCT #lpunct ], [ SYNSEM.PUNCT [ RPUNCT #rpunct, PAIRED #paired, RCLSTR #rclstr ] ] > ]. binary_phrase := binary_punct_phrase & [ INFLECTD +, ARGS < [ INFLECTD + ], [ INFLECTD + ] > ]. basic_binary_headed_phrase := headed_phrase & basic_binary_phrase & [ HD-DTR.ORTH.FROM #from, NH-DTR sign & [ SYNSEM.LOCAL.CAT.HEAD [ --HID #from, --CTYPE #ctype ] ], RNAME #ctype ]. binary_headed_phrase := basic_binary_headed_phrase & binary_phrase. binary_rule_left_to_right := rule & [ ARGS < [ KEY-ARG + ] , [ KEY-ARG bool ] > ]. binary_rule_right_to_left := rule & [ ARGS < [ KEY-ARG bool ], [ KEY-ARG + ] > ]. basic_ternary_phrase := phrase & [ SYNSEM.LOCAL.CONT [ RELS *diff-list* & [ LIST #first, LAST #last ], HCONS *diff-list* & [ LIST #scfirst, LAST #sclast ] ], ORTH [ TO #to, LB #lb, RB #rb ], C-CONT [ RELS *diff-list* & [ LIST #middle3, LAST #last ], HCONS *diff-list* & [ LIST #scmiddle3, LAST #sclast ] ], ARGS < sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #first, LAST #middle1 ], HCONS *diff-list* & [ LIST #scfirst, LAST #scmiddle1 ] ] ], ORTH [ LB #lb, RB bracket_null ], DIALECT #dialect, IDIOM #idiom ], sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle1, LAST #middle2 ], HCONS *diff-list* & [ LIST #scmiddle1, LAST #scmiddle2 ] ] ], ORTH [ LB bracket_null, RB bracket_null ], DIALECT #dialect, IDIOM #idiom ], sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle2, LAST #middle3 ], HCONS *diff-list* & [ LIST #scmiddle2, LAST #scmiddle3 ] ] ], ORTH [ TO #to, LB bracket_null, RB #rb ], DIALECT #dialect, IDIOM #idiom ], ... >, DIALECT #dialect, IDIOM #idiom ]. ternary_phrase := basic_ternary_phrase & [ INFLECTD +, SYNSEM.PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, RCLSTR #rclstr ], ARGS < [ INFLECTD +, SYNSEM.PUNCT.LPUNCT #lpunct, GENRE #genre ], [ INFLECTD +, GENRE #genre ], [ INFLECTD +, SYNSEM.PUNCT [ RPUNCT #rpunct, RCLSTR #rclstr ], GENRE #genre ] >, GENRE #genre ]. ternary_rule_left_to_right := rule & [ ARGS < [ KEY-ARG + ] , [ KEY-ARG bool ] , [ KEY-ARG bool ] > ]. basic_quad_phrase := phrase & [ SYNSEM.LOCAL.CONT [ RELS *diff-list* & [ LIST #first, LAST #last ], HCONS *diff-list* & [ LIST #scfirst, LAST #sclast ] ], ORTH [ TO #to, LB #lb, RB #rb ], C-CONT [ RELS *diff-list* & [ LIST #middle4, LAST #last ], HCONS *diff-list* & [ LIST #scmiddle4, LAST #sclast ] ], ARGS < sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #first, LAST #middle1 ], HCONS *diff-list* & [ LIST #scfirst, LAST #scmiddle1 ] ] ], ORTH [ LB #lb, RB bracket_null ], DIALECT #dialect, IDIOM #idiom ], sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle1, LAST #middle2 ], HCONS *diff-list* & [ LIST #scmiddle1, LAST #scmiddle2 ] ] ], ORTH [ LB bracket_null, RB bracket_null ], DIALECT #dialect, IDIOM #idiom ], sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle2, LAST #middle3 ], HCONS *diff-list* & [ LIST #scmiddle2, LAST #scmiddle3 ] ] ], ORTH [ LB bracket_null, RB bracket_null ], DIALECT #dialect, IDIOM #idiom ], sign & [ SYNSEM.LOCAL local & [ CONT [ RELS *diff-list* & [ LIST #middle3, LAST #middle4 ], HCONS *diff-list* & [ LIST #scmiddle3, LAST #scmiddle4 ] ] ], ORTH [ TO #to, LB bracket_null, RB #rb ], DIALECT #dialect, IDIOM #idiom ] >, DIALECT #dialect, IDIOM #idiom ]. quad_phrase := basic_quad_phrase & [ INFLECTD +, SYNSEM.PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, RCLSTR #rclstr ], ARGS < [ INFLECTD +, SYNSEM.PUNCT.LPUNCT #lpunct, GENRE #genre ], [ INFLECTD +, GENRE #genre ], [ INFLECTD +, GENRE #genre ], [ INFLECTD +, SYNSEM.PUNCT [ RPUNCT #rpunct, RCLSTR #rclstr ], GENRE #genre ] >, GENRE #genre ]. quad_rule_left_to_right := rule & [ ARGS < [ KEY-ARG + ], [ KEY-ARG bool], [ KEY-ARG bool], [ KEY-ARG bool] > ]. head_only := unary_phrase & headed_phrase & [ HD-DTR #head & [ SYNSEM.LOCAL.CONJ cnil ], ARGS < #head > ]. basic_head_initial := basic_binary_headed_phrase & [ HD-DTR #head, NH-DTR #non-head, ARGS < #head, #non-head > ]. head_initial := basic_head_initial & [ NH-DTR.SYNSEM.LOCAL.CONJ cnil_or_numconj ]. head_initial_infl := head_initial & binary_headed_phrase. head_final := basic_binary_headed_phrase & [ SYNSEM.PUNCT [ PAIRED #paired, RCLSTR #rclstr ], HD-DTR #head & [ SYNSEM.PUNCT [ PAIRED #paired, RCLSTR #rclstr ] ], NH-DTR #non-head & [ SYNSEM.LOCAL.CONJ cnil ], ARGS < #non-head, #head > ]. head_final_infl := head_final & binary_headed_phrase. ; C-CONT is the semantic contribution of the phrase itself. The handle and ; index of the phrase come from the handle and index of C-CONT (which are ; possibly but not necessarily identified with the handle and index of one of ; the daughters). The liszt of the phrase is the append of the liszt of ; C-CONT and the liszts of the daughters. head_compositional := headed_phrase & [ C-CONT.HOOK #hook, HD-DTR.SYNSEM.LOCAL.CONT.HOOK #hook ]. nonhead_compositional := basic_binary_headed_phrase & [ C-CONT.HOOK #hook, NH-DTR.SYNSEM.LOCAL.CONT.HOOK #hook ]. non_clause := head_nexus_phrase & [ SYNSEM.LOCAL.CAT.MC na ]. ; ERB (05-10-97) The immediate subtypes of clause are now rel_cl and ; non_rel_clause. The latter groups together decl, imp, and (wh_)interrog, ; which are similar in that they can't serve as modifiers and have empty REL ; values. That type used to be (misleadingly) named msg_clause. The ; remaining constraint (MSG message) has been moved to the type clause ; where it belongs. basic_clause := phrase & [ SYNSEM.LOCAL [ CAT.VAL.COMPS < >, CONJ cnil ] ]. ; DPF 15-sept-07 - Added hack --ADDIN feature to enable us to only use one ; inflected verb form for base and pres-non3sg. See how it goes... clause := basic_clause & [ SYNSEM.LOCAL [ CAT.HEAD [ TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], AGR.PNG.PN #pn ] ]. ; DPF 12-Nov-03 - Renamed this from mc_phrase to mc_fillhead_phrase since ; they're the only ones inheriting from it, and it's a good place to add ; the following constraint: ; DPF 12-Nov-03 - Experimentally, make the XARG of this type be the XARG ; of the head-dtr, in order to support "on Tuesday who arrived" where the ; PP should share the handle of the VP (as if it had been extracted). ; DPF 24-oct-05 - But while the XARG for wh-subj phrases is the right handle, ; it's not for non-subj wh-phrases, so we push this constraint down to the ; two subtypes, adjusting appropriately ; DPF 06-mar-06 - Without messages, we don't need (or want) this XARG hack. mc_fillhead_phrase := headed_phrase & clause & [ SYNSEM [ LOCAL.CAT.MC +, NONLOC [ SLASH 0-dlist, QUE 0-dlist ] ] ]. ; The [MC bool] constraint lives here rather than on clause because we want ; to treat relative clauses as clauses, but we need to distinguish them as the ; only clauses which can serve as modifiers. That is, on the one hand we need ; to distinguish relative clauses from ordinary finite subj_head declaratives, ; where both have a non-empty MOD value, but only the former can appear in a ; head-modifier phrase; and on the other hand we need to distinguish ; extracted-subject finite clauses from ordinary finite S/NP clauses, since ; only the latter can be the dtr in a thatless-relative construction. So the ; head-adjunct rule for nouns says the adjunct must be [MC na], and the ; thatless_rel rule says the dtr must be [MC +]. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 26-Mar-03 - Removed reentrancy with HD-DTR..LTOP ; DPF 27-May-03 - Added reentrancy of HD-DTR's E-INDEX and C-CONT's, at least ; for coordination of S's where we want to attend to precedence relations of ; the coordinated events, which conjunctions pick up from E-INDEX not INDEX. basic_non_rel_clause := head_nexus_rel_phrase & basic_clause & head_compositional. non_rel_clause := basic_non_rel_clause & clause. ; DPF 26-Jan-01 - Changed HEAD.INV - to HEAD.INV -* to allow for coordination ; of inverted and non-inverted sentences. Worry that this swap has been made ; before, but next time we'll know why. ; DPF 28-Nov-02 - HOOK comes only from C-CONT decl_phrase := basic_non_rel_clause & phrasal & [ SYNSEM.LOCAL.CAT [ HEAD basic_verb_or_frag & [ INV -, PRD - ], MC bool ], HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #hdtop, INDEX #hdind ], C-CONT [ HOOK [ LTOP #hdtop, INDEX #hdind ], RELS , HCONS ] ]. ; Added [SYNSEM..SPR < >] on imp to preserve intended constraints on modifiers ; which only attach to VP and N-bar. ; DPF 13-May-00 - Added [DTR..SUBJ..CASE acc] to prevent ordinary finite ; verbs from serving as heads, now that we want to be able to later conjoin ; imperatives and finite clauses. ; DPF 13-May-00 - Added [DTR..CONT.HOOK.INDEX ref-ind] to prevent expl-there. ; DPF 22-Feb-01 - Removed above-mentioned [SPR < >], since we've decided to ; allow sentence-initial PP-modifiers for WH-questions (see 11-Dec-00 below), ; and we still want to be able to coordinate imperatives and WH-questions, as ; in "Give me that book and what is its title?" ; DPF 20-Oct-01 - Replaced SUBJ < > with *olist* since we were blocking e.g. ; 'Tell me your bank's name and where is it?", and made the HD-DTR's SUBJ ; be unexpressed_reg so this cannot have as input an inverted phrase. ; Also replaced INV - with -* for the same example. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 04-mar-06 - Re 22-Feb-01: without messages, we need SPR < > to block ; spurious ambiguity for "arrive on monday." Give up on odd S-coordination ; for now. ; DPF 06-sept-07 - Can't reconstruct why we divided into the two subrules ; with and without slash. The cooccurrence with MC seems like it should be ; fully predictable. So let's try collapsing these again, and see what ; happens. ; DPF 23-mar-10 - Restrict dtr to non_conj_event to avoid spurious ambiguity ; for "arise and leave." ;; DPF 2012-02-20 - Restrict SLASH to *modlist*, to prevent spurious analysis ;; of e.g. |politicians believe| with object fronting. imp_phrase := basic_non_rel_clause & head_valence_phrase & head_only & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ INV -, VFORM imp_vform, TAM [ TENSE present, ASPECT no_aspect, MOOD indicative ] ], VAL [ SUBJ *olist* & < anti_synsem_min >, SPR < >, COMPS < > ], MC bool ], CONT.HOOK.INDEX.SF basic-comm ], NONLOC.SLASH.LIST *modlist*, LEX #lex ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD verb, MC na, VAL [ SUBJ < unexpressed_reg & [ --SIND #inst & ref-ind & [ PNG.PN 2 ], LOCAL.CONT.HOOK.INDEX #inst ]>, COMPS < > ] ], CONT.HOOK [ LTOP #hdtop, INDEX #hdind & non_conj_event ] ], LEX #lex, NONLOC.QUE 0-dlist, PUNCT.RPUNCT.PSF basic-comm & #sf ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #hdtop, INDEX #hdind & [ SF #sf ] ], RELS , HCONS ] ]. ; ERB (05-10-97) There is no longer a subtype of interrog for polar questions, ; as a result of streamlining the hd-cmp_u_c family (subordinate polar questions ; didn't inherit from the old ynq type anyway). So interrog and its sole ; subtype wh_interrog could be collapsed into each other, but it seems clearer ; to have them separate. I don't know what the effect of losing the constraint ; on SLASH in matrix polar questions will be. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ;; DPF 2013-02-13 - Don't pass up --SLTOP from hd-dtr to mother, since some ;; interrogative phrases are filler-head. interrog := head_nexus_rel_phrase & clause & phrasal & [ SYNSEM [ LOCAL.CONT.HOOK [ LTOP #ltop, INDEX #index & [ SF ques ], XARG #xarg ], NONLOC.SLASH 0-dlist ], HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #ltop, INDEX #index, XARG #xarg ] ]. ; Restrict NH-DTR to be [HEAD subst] to avoid trying non-partitive ; determiner "whose" as filler in filler-head-wh rules. Assume all ; wh-interrog phrases are [MOOD ind_or_mod_subj]. ; DPF 29-Aug-00 - But the above [ HEAD subst ] blocked "How often did kim win", ; so removed it. ; DPF 20-sept-04 - Removed NH-DTR..RPUNCT no_punct since we want to allow e.g. ; "Which consultant, if hired, would work?" where the first comma attaches to ; the WH-NP. ; DPF 22-jul-05 - Changed NH-DTR..RPUNCT from rbc_or_pair... to ; comma_or_rbc_or_pair... so the above example will still work. ; DPF 23-nov-09 - Don't recall what work [SF basic-wh-ques] is doing, so ; returning to simply [SF ques], in order to allow embedded inverted Qs as ; in "Kim asks me, where is abrams?" wh_interrog := interrog & binary_headed_phrase & [ SYNSEM.LOCAL [ CAT.HEAD verbal & [ TAM.MOOD indicative ], CONT.HOOK.INDEX.SF ques ], NH-DTR.SYNSEM [ NONLOC.QUE 1-dlist, PUNCT [ RPUNCT comma_or_rbc_or_pair_or_no_punct, PNCTPR ppair ] ] ]. ; This type has subtypes for filler_head. If we assumed only ; finite subj_head phrases, and explicitly made the relevant filler_head ; phrases be finite (which we do), we wouldn't have to stipulate VFORM here. wh_interrog_fin := wh_interrog & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM fin ], VAL.SUBJ *olist*, MC bool ] ]. ; DPF (28-Apr-99) Need this construction to get simple yes-no questions like ; "Did Kim fall", while keeping the phrase "did Kim devour" with an empty ; MSG so it can be the head of "What did Kim devour", where this filler-head ; rule introduces the interrogative message. ; DPF 26-Jan-01 - Made HEAD.INV be +* to allow coord of inv and non-inv Ss. ; DPF 13-May-01 - Added [HD-DTR..VFORM fin] - was missing. ; DPF 12-Apr-02 - Made SYNSEM..SUBJ re-entrant with HD-DTR..SUBJ ; DPF 14-Feb-05 - Experimentally, make the XARG of this type be ; the LTOP of the head-dtr, in order to support "on Tuesday, did kim arrive?" ; where the PP should share the handle of the VP (as if it had been extracted). ; DPF 14-mar-05 - Make hd_yesno_c not be a unary headed phrase in order to have ; it not be AUX +, so can still have PP-modifiers. This means having to ; duplicate the relevant links usually supplied by head_only_phrase. ; DPF 04-mar-06 - For now, block "Did who arrive?" since don't have a clear ; notion of what the semantics should be in our message-free universe, and ; don't want same semantics for this and "Who arrived?". ; DPF 06-mar-06 - Re: 14-Feb-05: Without messages, we don't need (or want) ; this XARG hack. ;; DPF 2011-05-26 - Re 12-Apr-02: But this prevents embedded yes-no questions ;; such as |he asks, did we arrive?|. So instead make SUBJ of mother be < >. ;; DPF 2012-07-26 - Re 2011-05-26: But < > prevents s-initial subordinate ;; modifers, as in |Given the response, should we stay?|. So change to ;; SUBJ < anti_synsem_min >. inv_subj_phrase := head_only & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ INV +, VFORM fin, MOD < anti_synsem_min >, MINORS #mins ], VAL [ SUBJ < anti_synsem_min >, SPR < >, SPEC < >, COMPS < > ], MC + ], CONJ #conj & cnil, AGR #agr, CONT [ HOOK [ INDEX.SF #pred ] ] ], NONLOC [ SLASH #slash, REL #rel, QUE 0-dlist ] ], HD-DTR #hddtr, ARGS < #hddtr & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ INV +, VFORM fin, MINORS #mins ], MC na, VAL [ SUBJ < anti_synsem_min >, SPR *olist*, COMPS < > ] ], AGR #agr, CONJ #conj, CONT [ HOOK [ INDEX #index & [ E.TENSE real_tense ] ] ] ], NONLOC [ SLASH #slash, REL #rel & 0-dlist, QUE 0-dlist ] ] ] >, C-CONT [ HOOK.INDEX #index & [ SF #pred ], RELS , HCONS ] ]. yesno_phrase := interrog & inv_subj_phrase & head_compositional & [ C-CONT.HOOK.INDEX.SF pol-ques ]. inv_decl_phrase := inv_subj_phrase & non_rel_clause & [ SYNSEM [ NONLOC.SLASH 0-dlist, PUNCT.RPUNCT clause_or_no_punct ], HD-DTR.SYNSEM [ LOCAL.CAT.NEGPOL +, MODIFD lmod ], C-CONT.HOOK.INDEX.SF prop ]. ; Since MOD is a head feature, and projections of finite verbs can be relative ; clauses, we introduce the [MOD nbar] property directly on finite verbs, ; rather than in the rel_cl phrase type as before. Then we have to be sure ; that finite VPs do not appear as postnominal modifiers, and likewise for ; declarative S's. The former is blocked because the head-adjunct rule ; requires that the adjunct be [SUBJ *olist*]. The latter we block by ; requiring that the adjunct in a head-adjunct phrase be [MC na], while making ; declarative head_subj phrases be [MC bool]. Thus relative clauses must also ; be [MC na]. ; ; DPF 27-May-99 - Avoid making rel_cl a headed_phrase, so it can be marked as ; [PRD +] even though its 'head' daughter is necessarily {PRD -]. Will be ; easier with defaults. ; DPF 15-Apr-00 - Removed REL 0-dlist from rel_cl, so we can distinguish ; relative clauses from other clauses; e.g., to avoid allowing "I am out on t" ; as a (non-strict) root. ; DPF 22-May-02 - Added MOD..SPR..ALTMIN explicit_quant_or_udef_noagr_q_rel ; to prevent relative clauses from modifying NP-adv's like "there" as in ; "there to be a bookcase" while still allowing e.g. "someone to fix the sink" ; DPF 30-May-02 - But this also blocks noun-noun-compound heads, since they ; are ALTMIN no_rel as a separate hack (see n_n_compound notes). So undo this ; constraint, and figure out something else for "there to be a bookcase". ; DPF 27-Nov-02 - Added MOD..MIN basic_nom_rel to exclude measure-NPs from ; being modified by rel clauses. ; DPF 28-Nov-02 - HOOK comes only from C-CONT: INDEX from MOD, LTOP from HDTR. ; DFP 15-Nov-03 - Removed PRD + default, since we now want to distinguish ; non_wh_inf_subj relative clauses (which can appear as complements of 'be') ; from the rest, ; so now make most relative clause types PRD -, and only the ; above type PRD +. Also removed PRD + constraint on n_adj_int_phrase's ; non-hd dtr, in pursuit of same goal. ; Since these are only restrictive relatives, prevent comma separating them ; from head noun. ; DPF 8-apr-05 - Replaced MOD..CAT nbar_cat_min with basic_nbar_cat, not ; restricting SPR to < synsem > because we want to allow "here where Abrams ; works" but still block "from happy here". That is, prenom adjs impose a ; stronger constraint on their modifiee than postnom modifiers, so can't use ; the same CAT value for both. ;; DPF 2012-02-18 - Removed stamping of SF prop on mother, since this should ;; be (and is) done in the rule combining the relative clause with its head ;; noun. Leaving it off here means we can parse |who is to arrive?| where ;; we treat the purposive phrase as an infinitival relative. ;; basic_rel_cl := sign & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ INV -, TAM.MOOD indicative, MOD < synsem & [ LOCAL intersective_mod & [ CAT basic_nbar_cat & [ HEAD noun_or_nomger, VAL.SPR.FIRST synsem_min & [ --MIN quant_or_deg_rel ] ] ], PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct, OPT - ] >], POSTHD +, MC na ], CONJ cnil ] ] ]. rel_cl := basic_rel_cl & clause & phrasal & [ SYNSEM [ LOCAL.CAT.HEAD.VFORM fin_or_inf, NONLOC [ QUE 0-dlist, REL 0-dlist ] ] ]. ; We prevent PP adjunct extraction from feeding thatless_rel rule by requiring ; that the gap be [ MOD < > ], to block "the man kim slept walks." To handle ; "I remember the time Kim fell" maybe we can make the words "time" and ; "place" take an S/PP complement, not treat them as thatless_rels. Also, ; to block "*Sandy likes the man walks" and "*Sandy likes the man who thinks ; went home", we require the S/NP to be [ MC + ], which excludes subject ; extraction for that daughter. ; The dtr is required to be [MC +] in order to block subject-extracted S/NPs ; from being admitted as relative clauses. This constraint would be removed ; for those dialects which accept examples like "There's a man wants to talk to ; you waiting outside." ; ERB (14-12-97) I am trying to get the non-finite ones to work and to ; have only one type that will make both "The man Kim likes" and "The ; man to talk to" (but not "The man to talk to Sandy".) The new ; constraints are: on the head-dtr HEAD verb, VFORM fin_or_inf, and ; SUBJ list(pro). I also need to make to_c_prop HEAD verb and ; MC +. The latter is because we want to require MC + of the head-dtr ; to exclude subject extraction as above, adn to exclude that-declaratives ; from being the head-dtr of this cx. (To avoid a really ugly second ; parse for "The man that Kim likes.") ; ERB (14-12-97) to_c_prop doesn't have to be a verb. non_wh_rel_cl ; can just say HEAD verbal -- that-decls will be ruled out because they ; are MC -. To_c_prop has to be MC + anyway because we need the ; MC + on the head-dtr in order to bar subj extractions from this ; cx. ; ERB (19-01-98) MC + moved to appropriate subtype. See notes below. ; ERB (19-01-98) Part of what's keeping to_c_prop from serving directly ; as a modifier without first building a non_wh_rel is that hadj requires ; SUBJ *olist* and pro_ss is OPT -. This means that non_wh_rel_cl can't ; copy up the SUBJ requirement. I don't know what exactly the constraints ; are on the other valence features, so I am just copying them up for now. ; (Previously all of VAL was identified.) ; DPF (21-Apr-98) Make SYNSEM.COMPS be < > on mother and *olist* on daughter. ; DPF (26-05-98) Added [MOD < [ NONLOC.QUE 0-dlist] >] to the mother, to ; block thatless relatives modifying WH-partitives, as in the unwanted NP ; "how many books are t" ; DPF (06-Sept-98) Added reg_nom_rel constraint on MOD..MIN ; to avoid infinitival relatives modifying temporal nouns as in "we should ; meet next week to celebrate". ; DPF (27-Jan-99) Updated this to non_temp_nom_rel. ; DPF 09-Jan-00 - Added HD-DTR..MODIFD notmod_or_rmod to block ; adverb-initial relative clauses as in "The book apparently Sandy bought is ; new" ; DPF 17-Mar-01 - Moved [ MOD..MIN non_temp_nom_rel ] to inf_non_wh_rel_cl rule ; only, since we want phrases like "the day he arrived". ; DPF 20-Mar-01 - Added MOD..MODIFD notmod_or_lmod to prevent thatless-rels ; from modifying already-modified nominals, especially with a full relative ; clause: *the book that I bought you have is long" ; DPF 26-Mar-01 - But this is too strong, also blocking "the city in Germany I ; wanted to visit was Berlin". So instead use RPERIPH feature. ; DPF 11-Sept-01 - Added [MOD..SPR synsem] to block e.g. 'there to be arriving' ; DPF 24-Apr-03 - Also removed MOD..MIN non_temp_nom_rel from inf_non_wh_rel_cl ; since it prevents e.g. 'a good time to meet would be tomorrow' We'll see ; what it was blocking. ; (ERB 2003-08-08) Add a type for instrument infinitival relatives, ; like "the Fedex number to return my package. These are similar ; to ordinary infinitival relatives, except that we need to hallucinate ; a SLASH value and a _with_p_rel, and make the index of the SLASH ; be the ARG2 of the _with_p_rel. Since non_wh_rel_cl introduces ; a SLASH value, the new type can't inherit from it directly. Add ; a supertype basic_non_wh_rel_cl that has the rest of the constraints ; from non_wh_rel_cl. Hmmm... it seems that there might be no need ; for that slash value, as non_wh_rel_cl just takes the MIN and INDEX ; and zeros it out. I have no idea what we'd put in for that KEYREL, and ; the INDEX can be identified with the ARG2 of the_with_p_rel. ; (ERB 2003-08-11) Move constraint on HOOK.LTOP down to daughters, ; since I'm having the instr_inf_non_wh_rel_cl introduce the prpstn_m_rel. ;; DPF 2011-08-15 - Re 09-Jan-00: Since we now propagate MODIFD from VP to S ;; (in order to keep visibility of right-modif for first dtr in S-gapping ;; construction), change constraint on the dtr to be LPERIPH na_or_-, and ;; make adj-head-scopal rule stamp LPERIPH + on mother. ;; basic_non_wh_rel_cl := unary_phrase & rel_cl & [ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, MOD < [ NONLOC.QUE 0-dlist, MODIFD.RPERIPH na_or_- ] >, --ADDIN #addin, MINORS.MIN #min ], VAL [ SUBJ < >, SPR < >, COMPS < > ] ], AGR #agr ], NONLOC.SLASH 0-dlist ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, --ADDIN #addin, MINORS.MIN #min ], VAL.COMPS < > ], AGR #agr, CONJ cnil ], NONLOC [ QUE 0-dlist, REL 0-dlist ], MODIFD.LPERIPH na_or_-, PUNCT.LPUNCT no_punct ] ] > ]. ; DPF 05-sept-05 - Added identity of MOD..SPR..ALTMIN and SLASH..SPR..ALTMIN ; to make visible properties that block e.g. 'six cabins have been' where ; 'have been' underwent np_adv_c extraction (extradj-t) non_wh_rel_cl := basic_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD [ MOD < [ --MIN #mmin, LOCAL [ CAT.VAL.SPR.FIRST [ LOCAL.CAT.HEAD.MINORS.ALTMIN #amin ], CONT.HOOK.XARG #xarg ], --SIND #ind ] > ], C-CONT.HOOK.XARG #ind, ARGS < [ SYNSEM [ LOCAL.CONT.HOOK.INDEX.SF prop, NONLOC.SLASH 1-dlist & [ LIST < [ CAT [ HEAD noun & [ PRD -, MOD < >, MINORS.MIN #mmin ], VAL [ SPR < [ LOCAL.CAT.HEAD.MINORS.ALTMIN #amin ]>, COMPS < > ] ], AGR #ind, CONT.HOOK [ INDEX #ind, XARG #xarg ] ] > ] ] ] > ]. ; ERB (19-01-98) As much as it hurts, I don't think it is possible ; to avoid differentiating a inf and fin non_wh_rel_cl. The facts of ; (Standard American) English seem to be that finite non-wh relatives ; do not allow extraction of the highest subject, but non-finite ones ; do: ; ; (1) Kim likes the book Sandy bought. ; (2) *Kim likes the person buys books. ; (3) Kim found a book to buy for Sandy. ; (4) Kim found a person to buy Sandy a book. ; ; A simple hack involving case won't work, because embedded subjects ; can be extracted in the finite case: ; ; (5) Sandy likes the program Kim thinks works. ; ; Another tack is to treat (3) and (4) above differently, where ; the to in (3) is to_c_prop and the to in (4) is to_c_nonprop. ; The motivation for this is that the former allows a discourse ; PRO interpretation, while the latter doesn't, so it is tempting ; to says that the latter doesn't involve PRO at all. The idea is ; that to_c_prop builds a non_wh_rel which can then serve as a ; modifier, while to_c_nonprop has a MOD value to start off with, ; and can be a modifier directly once it builds a hd-cmp_u_c. To_c_nonprop ; would bind the index of its MOD value to that of its subject. ; ; However, this is unsatisfactory for several reasons. First, the ; ones like (4), built with to_c_nonprop, have no message for the ; relative. Second, since MOD is a head feature now, to_c_prop must ; also be MOD < nbar > . Once this is true, there is no obvious way to ; keep it from serving directly as a modifier without building a ; non_wh_rel. Finally, we run into problems with lexical SLASH ; amalgamation. Something has to be said about the subject value of ; to_c_nonprop, otherwise it runs the risk of having a non-terminated ; SLASH value. However, on the one hand, to_c_nonprop is the to of ; raising constructions, so sometimes its SUBJ must be able to be ; canonical_synsem, and on the other, on this analysis, it can also ; head modifiers in which its SUBJ goes unexpressed. To take care ; of the latter, something must be said in the lexical entry, but ; unexpressed is not compatible with canonical_synsem. ; ; The only other possibility I can see is to let the subject extraction ; apply lower, as in to [like Sandy] in [a person to like Sandy], but ; this requires letting subject extraction apply to base forms, which ; would most likely be a royal mess. ; ; In sum, given the facts of SAE and the rest of the grammar as ; it is, (3) and (4) must be built with the same to. In (3) there ; is an extracted complement and in (4) there is an extracted ; subject. In the case of infinitival non_wh_rels, the grammar ; doesn't care. In the case of finite ones, it does. ; ; DPF 10-dec-03 - Restricted MOD nbar-synsem to QUE 0-dlist, to block in-situ ; wh-modifiers preceding thatless relatives like 'a friend of whom I approved' ; DPF 13-nov-05 - Added NORM no_rel to prevent these from appearing in ; comparatives/equatives, as in "kim arrives as soon as browne arrives." ; DPF 19-apr-08 - Removed ARGS..INDEX non_conj_event since this blocks ; "books Kim admires and reads" ; DPF 10-aug-09 - Removed MOD..NORM norm_rel, since this prevented e.g. ; "the interview we had". We'll see what if anything it was blocking. #| fin_non_wh_rel_cl := non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD [ PRD -, MOD < [ --MIN nonpro_or_refl_or_num_rel, MODIFD.RPERIPH -, PUNCT.RPUNCT no_punct ] >, MINORS [ ALTMIN #altmin, NORM no_rel ] ], ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ VFORM fin, MINORS.ALTMIN #altmin, MOD < [ LOCAL.CAT nbar_cat_min, NONLOC.QUE 0-dlist ] > ], VAL.SUBJ < anti_synsem_min >, POSTHD +, MC - ], CONT.HOOK [ LTOP #ltop, INDEX #event & [ E.TENSE real_tense ] ] ] ]>, C-CONT [ HOOK [ LTOP #ltop, INDEX #event ], RELS , HCONS ] ]. |# basic_fin_non_wh_rel_cl := basic_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD [ PRD -, MOD < [ MODIFD.RPERIPH -, PUNCT.RPUNCT no_punct ] >, MINORS [ ALTMIN #altmin, NORM no_rel ] ], ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD verb & [ VFORM fin, MINORS.ALTMIN #altmin, MOD < [ LOCAL.CAT nbar_cat_min, NONLOC.QUE 0-dlist ] > ], VAL.SUBJ < anti_synsem_min >, POSTHD +, MC - ], CONT.HOOK [ LTOP #ltop, INDEX #event & [ E.TENSE real_tense ] ] ] ]>, C-CONT [ HOOK [ LTOP #ltop, INDEX #event ], HCONS ] ]. fin_non_wh_rel_cl := basic_fin_non_wh_rel_cl & non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ --MIN nonpro_or_refl_or_num_rel ] >, C-CONT.RELS ]. ; DPF 19-jul-07 - Added MINORS.ALTMIN no_rel to prevent these from undergoing ; the subconj_prdp unary rule. ;; DPF 2012-12-21 - Constrained dtr's XARG.SORT to exclude do-index, to avoid ;; spurious parses with do-be entry for `be', as in wsj20d:22063009 ;; basic_inf_non_wh_rel_cl := basic_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN no_rel, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD comp & [ VFORM inf ], CONT.HOOK.XARG.SORT basic-entity-or-event ] ] >, C-CONT.HCONS ]. inf_non_wh_rel_cl := basic_inf_non_wh_rel_cl & non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD [ PRD -, MOD < [ --MIN nonpro_or_refl_or_num_rel ] > ], ARGS < [ SYNSEM.LOCAL [ CAT.VAL.SUBJ *cons*, CONT.HOOK.LTOP #ltop ] ] >, C-CONT [ HOOK.LTOP #ltop, RELS ] ]. ; DPF 26-Nov-03 - Added MODIFD notmod_or_rmod to enable blocking of spurious ; analysis for purposive "kim is probably to remain" ;; DPF 2012-08-01 - After conversation with EMB, decided to drop the ;; expected_event_v_rel from C-CONT, since not all subject relatives have ;; this reading, and the line is blurry about when they should: ;; |there is evidence to support that view| ;; |the first company to sell widgets| ;; DPF 2012-11-09 - But this is not quite enough, since we need someplace to ;; hang the tense information for |He was to arrive|. So put back the EP, ;; but rename it to the more neutral `eventuality_rel', to avoid introducing ;; an often spurious notion of expectation. ;; inf_non_wh_subj_rel_cl := basic_inf_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ --SIND #ind ] >, ARGS < [ SYNSEM [ LOCAL [ CAT.VAL.SUBJ < synsem >, CONT.HOOK [ LTOP #vpltop, XARG #ind ] ], NONLOC.SLASH 0-dlist, MODIFD notmod_or_rmod, --MIN non_ellipt_rel ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #event, XARG #ind & non_expl-ind ], RELS ] ]. ; (ERB 2003-08-08) Type for instrumental infinitival relative clauses. ; See notes at basic_non_wh_rel_cl above. Consider adding a type ; to capture similarities between constraints on this type and ; inf_non_wh_rel_cl. ; (ERB 2003-08-08) Switch to nonprop to phrases so that I can still ; get at the handle for the verb relation within the clause (which ; should be the ARG1 of the with_p_rel). The other options (using ; to_c_prop_le) were to cheat and get that handle through the KEYREL ; (illegal per the alegbra) or to introduce a slash value on the ; VP (?), which raises the problem of keeping those VP/NPs out of ; every other context. ; ; This requires also switching from *prolist* to < synsem > as ; the constraint on the SUBJ of the daughter. Maybe need to ; constrain NONLOC values of this synsem? -- that seemed ; to reduce supurious ambiguity some. ; ; Indeed, I need to make it < unexpressed > in order to constrain ; the NONLOC values properly and keep the elided 'to' out of this ; construction. ; DPF 8-jun-04 - Added ARGS..MIN nonaux_event_rel to exclude elided "to", as ; in "the tenth to the eleventh" instr_inf_non_wh_rel_cl := basic_non_wh_rel_cl & [ SYNSEM [ LOCAL.CAT.HEAD [ PRD -, MOD < [ --SIND #index & ref-ind ] > ] ], ARGS < [ SYNSEM phr_synsem & [ LOCAL [ CAT [ HEAD comp & [ VFORM inf, MINORS.MIN nonaux_event_rel ], VAL.SUBJ < synsem > ], CONT.HOOK [ LTOP #handle, INDEX #event, XARG #xarg ] ], NONLOC.SLASH 0-dlist ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #handle, INDEX #pind & [ SF prop ], XARG #xarg ], RELS , HCONS ] ]. ;; For |the day we arrived| modgap_rel_cl := basic_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CAT.HEAD noun, --MIN modable_rel, --SIND #mind ] >, ARGS < [ SYNSEM [ LOCAL.CONT.HOOK.INDEX.SF prop, NONLOC.SLASH 1-dlist & [ LIST < mod-local & [ CAT.HEAD mobile & [ MOD < synsem > ], CONT.HOOK [ LTOP #sltop, INDEX #slind & [ SORT location ], XARG #xarg ] ] > ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT.RELS ]. fin_modgap_rel_cl := modgap_rel_cl & basic_fin_non_wh_rel_cl. inf_modgap_rel_cl := modgap_rel_cl & basic_inf_non_wh_rel_cl & [ SYNSEM.LOCAL.CAT.HEAD.PRD -, ARGS < [ SYNSEM.LOCAL [ CAT.VAL.SUBJ *cons*, CONT.HOOK.LTOP #ltop ] ] >, C-CONT.HOOK.LTOP #ltop ]. ; DPF 2-Jul-02 - Added MOD..RPERIPH - to block analysis of "Abrams hired" ; while allowing "anyone hired" ; DPF 25-aug-04 - Removed ARGS..MODIFD notmod_or_rmod since this blocked e.g. ; 'the consultants recently hired by Abrams' ; DPF 3-mar-05 - Added [LEX -] to prevent 'dog chased'. Now treat ; 'anyone hired' like 'anyone angry' and live with the resulting spurious ; ambiguity of 'anyone angry at Kim' ; DPF 3-Feb-06 - Re: 2-Jul-02, this blocks 'Kim, hired by Abrams, arrived' ; so remove from here, and expect to treat this properly once we add ; non-restrictive relatives. ;; DPF 2012-02-18 - Tempted to relax [MOD..MIN basic_nonpro_rel], since it ;; blocks |you, admired by all, should be happy|. But too much ambiguity ;; for pronoun followed by -ed verb, when no comma delimiters, so leave as ;; is for now. ;; DPF 2012-12-21 - Constrain SPCMPS in case this erroneously appears as ;; something's SPR. ;; red_rel_cl := unary_phrase & basic_rel_cl & [ SYNSEM [ LOCAL [ CAT [ HEAD [ MOD < [ --MIN basic_nonpro_rel, --SIND #ind ] >, PRD -, MINORS.MIN #min, VFORM #vform ], VAL [ SUBJ < >, SPR < >, COMPS < >, SPCMPS < > ] ], CONJ cnil ], NONLOC [ SLASH 0-dlist, REL 0-dlist, QUE 0-dlist ], LEX #lex ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM non_fin & #vform, PRD +, MINORS.MIN #min ], VAL [ SUBJ < unexpressed_reg >, COMPS < > ] ], CONT [ HOOK [ LTOP #vpltop, INDEX #vpind & [ E [ TENSE no_tense, ASPECT.PRF - ] ], XARG #ind ] ], CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ], LEX #lex, PUNCT.LPUNCT pair_or_no_punct ] ] >, C-CONT [ HOOK [ LTOP #vpltop, INDEX #vpind & [ SF prop ], XARG #ind ], RELS , HCONS ] ]. ; DPF 26-jun-03 - Added rule for making participial phrases into virtual ; subordinate phrases, as in "kim arrived devouring chocolate' analogous to ; "Kim arrived while devouring chocolate" ; For now, exclude passives using VFORM: too much annoying ambiguity for ; too little value. ; DPF 10-dec-03 - Tried restricting the mother to POSTHD +, but this loses ; 'looking at Abrams, kim smiled" - would like to disallow pre-VP modification, ; but not yet clear how to do that. ; DPF 22-apr-04 - Corrected handle-linking to get the right semantics ; (making "kim arrived singing" analogous to "Kim arrived while singing"). ; This rule should be generalized to include at least depictive adjectives ; and maybe also passive participles if we can find an argument that we need ; both analyses for e.g. "kim arose assisted by her nurse" - but cf. "Kim ; arose unassisted (by her nurse)" which suggests "assisted" may be adjectival, ; so maybe we don't have to open the door to also let in passives here. ; DPF 18-jul-04 - Added MOD..MSG message to reduce ambiguity, as in ; 'Kim is interviewing' ; DPF 27-jul-04 - Try allowing passives, but require that these phrases be ; preceded by a comma to reduce ambiguity. ; DPF 20-aug-04 - Generalize this rule to allow depictive adjectives as well, ; as in "Kim left, angry at Sandy", but split into two, in order to enforce ; comma separation from modified phrase. ; DPF 30-sept-04 - Since we want "Having arrived, Kim arose." but still want ; to block "*Kim is having arrived", we can't require the dtr to be PRD +, ; so here we compromise, and allow sentence-initial "having..." but not (yet) ; sentence-final, since it isn't clear how to exclude non-predicative adjs. ; DPF 7-mar-05 - Removed identification of MOD..AGR and ARGS..CONT.XARG, which ; was motivation by e.g. "Seeing Kim, we left", but is incompatible with ; expletive main clauses, like "Given his record, it was obvious that he would ; be convicted." ; DPF 12-mar-05 - Constrained XARG of dtr to be non_expl-ind, to exclude ; expletive it-taking phrases, such as "Kim arrived, possible that Abrams ; arose" ; DPF 29-mar-05 - Re 18-jul-04, this blocks e.g. "After measuring the height ; using a ruler, we emerged", so let's try removing this hack to see if we ; can live with the added (necessary) ambiguity. ; DPF 27-sept-05 - Try making SPR empty for these phrases, to avoid ambiguity ; for e.g. "just laughing" where was attaching to mother as well as daughter. ; DPF 18-jul-07 - Consistent with blocking of PP modifiers to auxiliaries, ; let's try imposing same restriction on depictives, to avoid spurious ; ambiguity for e.g. "Kim would appear prominent." ; DPF 06-sept-07 - Add constraint on MOD..MOD to exclude attachment of ; these subconj phrases to relative clauses, to avoid spurious analysis for ; e.g. "the cat we should be connected arrives." ; DPF 30-jun-09 - Re 30-sept-04: Now that "having arrived" is not marked for ; PRD, restore PRD + on dtr, in order to prevent reduced-relative VPs from ; being dtr in this rule (as they are PRD -). ; DPF 2010-09-17 - Removed C-CONT..INDEX non_conj_event, since we are now ; (correctly) unifying the phrase's INDEX with that of the modifiee, which ; might of course be conjoined, as in "Kim was happy and surprised, winning." subconj_prdp_phr := unary_phrase & [ SYNSEM basic_subconj_synsem & [ LOCAL [ CAT [ HEAD [ MOD < [ MODIFD.RPERIPH -, LOCAL.CAT.HEAD.MOD *anti_list*, --SIND #modind, OPT - ] >, PRD -, MINORS.NORM no_rel ], VAL [ COMPS < >, SUBJ *anti_null*, SPR < > ] ], CONJ #conj ], NONLOC [ SLASH 0-dlist, REL 0-dlist, QUE 0-dlist ], MODIFD hasmod, --SIND #modind, LEX #lex ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_a & [ TAM.TENSE no_tense, MOD < [ LOCAL intersective_mod ] >, PRD + ], VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ], MC na, POSTHD + ], CONT [ HOOK [ LTOP #vpltop, INDEX.SF prop, XARG non_expl-ind ] ], CONJ cnil & #conj ], NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], LEX #lex ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #modind, RELS.LIST < relation & [ PRED subord_rel, ARG2 #subord, CFROM #from, CTO #to ], ... >, HCONS ] ]. ; DPF 23-aug-04 - Further divide the s-initial variant to require a comma for ; the adjectival ones, though not for the verbal ones, to avoid unwanted ; analysis for "happy dogs bark" but allow "arriving in Paris we smiled", ; and further to exclude pre-VP modification. And further exclude extraction, ; to avoid unwanted analysis for ; "the women [SBCNJ evaluated [S/NP their own staffs]]". ; DPF 14-feb-07 - Changed MOD..SUBJ *olist* to *ocons* to avoid spurious ; analysis for "Browne was hired to fire Abrams." ; DPF 08-apr-08 - Removed MODIFD notmod_or_rmod to allow ; "Happy, eager, Kim arose." ; DPF 04-sep-09 - Restrict MOD..SUBJ to < anti_synsem_min >, to block pre-VP ; modification. subconj_prdp_init_phr := subconj_prdp_phr & [ SYNSEM [ LOCAL.CAT [ POSTHD -, HEAD.MOD < [ LOCAL [ CAT [ HEAD verb, VAL.SUBJ < anti_synsem_min >, MC na_or_+ ] ], NONLOC.SLASH 0-dlist, PUNCT.RPUNCT.PSF #pred ] > ], PUNCT [ LPUNCT pair_or_no_punct, RPUNCT comma_or_pair_or_no_punct ] ], C-CONT [ HOOK [ LTOP #sltop, INDEX.SF #pred ], RELS ] ]. subconj_prdp_a_init_phr := subconj_prdp_init_phr & [ SYNSEM [ LOCAL.CAT.POSTHD -, PUNCT.RPUNCT comma_punct ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD adj & [ PRD +, MOD < synsem >, MINORS.NORM norm_rel ] ] > ]. subconj_prdp_v_init_phrase := subconj_prdp_init_phr & [ SYNSEM.LOCAL.CAT.POSTHD -, ARGS < [ SYNSEM.LOCAL.CAT.HEAD verb & [ VFORM pas_or_prp ] ] > ]. ; DPF 13-sept-07 - Restrict to RPUNCT comma_punct for lexical VPs, to avoid ; extra ambiguity for e.g. "hired consultants arrived" ; (But add this constraint in constructions.tdl, so more easily changed). subconj_prdp_v_init_lex := subconj_prdp_v_init_phrase & [ ARGS < [ SYNSEM.LEX + ] > ]. subconj_prdp_v_init_phr := subconj_prdp_v_init_phrase & [ ARGS < [ SYNSEM.LEX - ] > ]. ; Avoid spurious reading for "Kim is arriving" by requiring the modified ; phrase to be ALTMIN non_ellipt_rel, excluding elided auxiliaries. Separate ; variant includes elided VPs if modified is RPUNCT comma_or_pair_punct. ; DPF 29-mar-05 - Also restrict final passives to preceding comma, ; Also try restricting these final guys to VP-modifying only, but still ; keep semantics consistent with (and as baroque as) that for "the dog ; barked when arriving", where the when-clause must provide an outermost ; message since it can't know if it will modify a VP or an S; in the latter ; case it must supply a message to preserve the convention that there is ; always a message at the top. subconj_prdp_final_phr := subconj_prdp_phr & [ SYNSEM.LOCAL.CAT [ POSTHD +, HEAD.MOD < [ LOCAL.CAT [ HEAD.MINORS.ALTMIN non_ellipt_rel, VAL.SUBJ *synlist* ], MODIFD.LPERIPH na_or_- ] > ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD.PRD + ] >, C-CONT [ HOOK.LTOP #sltop, RELS ] ]. subconj_prdp_prp_phr := subconj_prdp_final_phr & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.VFORM prp, PUNCT.LPUNCT no_punct ] ] > ]. ;; DPF 2012-12-17 - Removed the MOD..SLASH 0-dlist constraint, since it wrongly ;; blocked examples like |Here, they arrived admired.| ;; DPF 2012-12-29 - Re 2012-12-17: But allowing the head to be slashed also ;; admits unwanted RNR analyses for e.g. wsj20d:22080002: ;; |bids were __ submitted and bids were at __ 10%| ;; So restore no-slash for now, and re-evaluate (FIX) later. ;; subconj_prdp_pas_phr := subconj_prdp_final_phr & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ NONLOC.SLASH 0-dlist ] >, ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.VFORM pas, OPT + ] ] > ]. subconj_prdp_adj_phr := subconj_prdp_final_phr & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ PUNCT.RPUNCT comma_or_no_punct ] >, ARGS < [ SYNSEM [ LOCAL.CAT.HEAD adj & [ MINORS.NORM norm_rel ], OPT +, PUNCT.LPUNCT no_punct ] ] > ]. subconj_prdp_ellip_phr := subconj_prdp_phr & [ SYNSEM.LOCAL.CAT [ POSTHD +, HEAD.MOD < [ LOCAL.CAT.HEAD.MINORS.ALTMIN ellipsis_rel, MODIFD.LPERIPH na_or_-, PUNCT.RPUNCT comma_or_pair_punct & [ PSF #pred ] ] > ], C-CONT [ HOOK [ LTOP #sltop, INDEX.SF #pred ], RELS ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD [ PRD +, MINORS.ALTMIN norm_rel ] ] > ]. ; For predicative 'small clause' modifiers: "Kim sang, the voice surprisingly ; clear" ;; DPF 2012-02-18 - To exclude infinitival relatives as right dtr, added ;; [ALTMIN norm_rel]. ;; DPF 2012-09-30 - Also extend here the OPT + hack used to exclude some ;; predicative phrases as depictives, such as in |He arrived a year earlier| ;; DPF 2012-12-21 - Generalized left dtr's HEAD from noun to basic_noun in ;; order to admit |we arose, some terrified| ;; np_pred_phr := non_headed_phrase & binary_phrase & [ SYNSEM basic_subconj_synsem & [ LOCAL [ CAT [ HEAD [ MOD < [ LOCAL.CAT [ HEAD verb & [ MOD *anti_list* ], MC #mc ], MODIFD [ LPERIPH na_or_-, RPERIPH - ], NONLOC.SLASH 0-dlist, PUNCT.RPUNCT comma_or_clause & [ PSF #sf ] ] >, PRD -, MINORS.NORM no_rel ], VAL [ SUBJ *anti_null*, SPR < >, COMPS < >, SPCMPS < > ], MC #mc ], AGR #agr, CONJ cnil ], NONLOC non-local_none & #nonloc ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & #head & [ CASE acc, MINORS.ALTMIN non_freerel_q_rel, --BARE - ], VAL [ SPR *olist*, COMPS *olist* ] ], CONT.HOOK.INDEX #modind, CONJ cnil ], NONLOC non-local_none, PUNCT.RPUNCT no_punct ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD [ MOD < [ LOCAL intersective_mod & [ CAT [ HEAD #head, VAL.SPR < synsem > ] ], --SIND #modind ] >, MINORS.ALTMIN norm_rel, PRD + ], VAL [ SUBJ *synlist*, SPR *olist*, COMPS < >, SPCMPS < > ], POSTHD + ], AGR #agr, CONT.HOOK [ LTOP #modltop, XARG #modind ], CONJ cnil ], NONLOC #nonloc, OPT +, PUNCT.RPUNCT comma_or_clause ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX.SF #sf ], RELS , HCONS ] ]. ; The version of the Non-local Feature Principle here assumes that there will ; only be one value on the SLASH list. To handle multiple gaps, we'll need ; more general set-manipulation functions. This version also doesn't use a ; distinction between INHERITED and TO-BIND non-local features. Instead, it ; treats non-local features like valence features. ; ERB (17-10-96) in order to get "Kim knows who to ask" under the current ; hacks (i.e., no PRO), I need a head_filler_phrase that takes something like ; "to ask" (i.e., VFORM in, SUBJ nomp) as its head. So I am making a ; separate parallel type that will only be inherited by the embedded wh ; nonfinite questions. ; N.B. Since all head_filler constructions inherit from type clause, which ; inherits from head_compositional, this type does not (though it could, ; redundantly). ; Added [ SUBJ *prolist* ] constraint to NH-DTR, to ensure termination ; of the QUE and REL attributes now that we're doing lexical threading, and ; PPs (among others) wouldn't otherwise know if they were QUE empty or not. ; ; (DPF 23-Aug-98) But if we make the SUBJ *prolist*, then we can't get ; extraction of raising predicates, as in "how does Kim look", since the ; subject of the "how" adjective is identified with that of "look". Hence ; we move this constraint to the extracted-adjunct rule, since it seems to ; hold true for adjuncts, but not for complements. ; DPF 23-Sept-99 - Made mother be POSTHD +, to avoid clauses as prenominal ; modifiers. ; DPF 11-Dec-00 - Removed SPR < > from mother, to allow sentence-initial PP ; modifiers for WH-questions. ; DPF 03-nov-03 - Moved SPR < > to head_filler_phrase so it does ; not hold for relative clause head-filler phrases, to block analysis for e.g. ; 'when we arrive in Berlin' as RELS+PP. ; DPF 18-jun-04 - Replaced parent basic_binary_phrase with binary_phrase to ; get PUNCT attributes inherited. This predicts the INFLECTD features that ; were stipulated, but also adds propagation of GENRE, which might cause ; surprises. ; DPF 21-jul-04 - Moved HD-DTR.QUE 0-dlist from this type to the non-fin and ; non-wh subtypes, in order to allow in-situ WH phrases in combination with ; WH phrases, as in "who hired whom", and to allow ?-punctuation (which also ; introduces a non-empty QUE in order to trigger sb-hd_q_c with interrogative ; semantics for "Abrams hired Browne?"). ; DPF 18-feb-08 - Removed ARGS.FIRST..SUBJ *antisyn_or_prolist* to see what ; work it was doing ... (it is getting in the way). basic_head_filler_phrase := binary_punct_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ VAL.COMPS < >, POSTHD + ], CONJ cnil ], NONLOC.SLASH 0-dlist, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL #slash & local & [ CAT.VAL.COMPS *olist*, CONT.HOOK.LTOP #ltop, CTXT.ACTIVATED + ], NONLOC.SLASH 0-dlist ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD verbal, VAL.COMPS < > ], CONT.HOOK [ --SLTOP #ltop, INDEX.--TPC + ] ], NONLOC [ SLASH 1-dlist & [ LIST [ FIRST #slash, REST < > & #last ], LAST #last ], REL 0-dlist ], PUNCT [ LPUNCT lparen_or_dq_or_no_punct, PNCTPR #ppair ] ] ] > ]. ; DPF 21-jul-04 - Removed parent head_nexus_que_phrase since this didn't allow ; multiple-wh clauses like "who hired whom", and it wrongly implied that there ; would be filler-head constructions where the mother still had a non-empty ; QUE value. head_filler_phrase := basic_head_filler_phrase & head_final & binary_phrase & [ SYNSEM [ LOCAL.CAT.VAL.SPR < >, NONLOC.QUE 0-dlist ], ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR *olist* ], sign > ]. basic_head_filler_phrase_fin := head_filler_phrase & [ HD-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM fin_or_imp, TAM.TENSE real_tense ], VAL.SUBJ *olist* ] ]. head_filler_phrase_wh_fin := basic_head_filler_phrase_fin & head_final_infl & [ NH-DTR.SYNSEM [ LOCAL.CAT.VAL.COMPS < >, PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct ], HD-DTR.SYNSEM.LOCAL.CAT.HEAD.VFORM fin ]. head_filler_phrase_inf := head_filler_phrase & head_final_infl & [ HD-DTR.SYNSEM [ LOCAL.CAT.HEAD verbal & [ VFORM inf ], NONLOC.QUE 0-dlist ], NH-DTR.SYNSEM [ LOCAL.CAT.VAL.COMPS < >, PUNCT.RPUNCT comma_or_pair_or_no_punct ] ]. ; N.B. Since all head_subj_phrase constructions inherit from type clause, ; which inherits from head_compositional, this type does not (though it could, ; redundantly). ; ; 1-May-96 (DPF) Restricted head to be verb only, to block spurious parses ; where NP modifed by PP was also analyzed as its subject. ; 12-Jun-96 (RPM) Allow verbal gerunds to head head/subj phrases. ; DPF (28-Apr-99) Added INV - to head-dtr, since most auxiliary verbs are ; underspecified for INV. ; DPF 27-May-99 - Constrained subj to be unslashed, in order to block, e.g. ; "the consultant that kim hired slept fell". ; DPF 23-Sept-99 - Made mother be POSTHD +, to avoid clauses as prenominal ; modifiers. ; DPF 26-Jan-01 - Changed HEAD.INV + to HEAD.INV +* to allow for coordination ; of inverted and non-inverted sentences. Worry that this swap has been made ; before, but next time we'll know why. ; DPF 2-Feb-01 - Changed SPR of mother to *olist*, to allow coordination with ; head-filler phrases which are [ SPR < anti_synsem > ]. ; DPF 20-Oct-01 - Changed SUBJ of mother to *olist*, to allow coordination with ; imperatives which are SUBJ *olist* so they can coordinate with interrogs. ; DPF 18-Nov-04 - Removed NH-DTR..SLASH.LIST < > since this was unnecessary ; (see 27-May-99), and blocked "People who think we arrive arise". ; DPF 10-may-05 - We won't block comma-marked subjects at present, since in ; informal text genres, they sometimes occur (as in the first two examples in ; Rondane :). Maybe consider for an example of genre-specific constraints, ; excluding such marking in edited text. ;; DPF 2011-12-13 - Removed identity of whole MODIF value on mother and head ;; dtr (cf. |Still, I happily arrived|), instead only preserving the RPERIPH ;; value. basic_head_subj_phrase := head_nexus_rel_phrase & head_final_infl & phrasal & [ SYNSEM [ LOCAL [ CAT.VAL [ COMPS < >, SPR < >, SUBJ *olist* & < anti_synsem_min >, SPEC #spec ], CONJ cnil ], MODIFD.RPERIPH #rperiph, PUNCT.PNCTPR #ppair ], HD-DTR.SYNSEM [ LOCAL.CAT [ VAL [ COMPS < >, SPR *olist*, SPEC #spec ], MC na ], MODIFD.RPERIPH #rperiph, PUNCT [ LPUNCT pair_or_no_punct, PNCTPR #ppair ] ], NH-DTR.SYNSEM canonical_synsem & [ LOCAL [ CAT [ HEAD subst, VAL [ SUBJ *olist_or_prolist*, COMPS < >, SPR *olist* ] ] ], NONLOC [ SLASH 0-dlist, REL 0-dlist ], PUNCT [ LPUNCT pair_or_no_punct, RPUNCT comma_or_rbc_or_pair_or_no_punct, PNCTPR ppair ] ] ]. head_subj_phrase := basic_head_subj_phrase & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < #synsem >, NH-DTR.SYNSEM #synsem ]. ; A head/comps phrase is a phrase that combines a head with something selected ; for by the COMPS feature. Head/comps phrases come in two denominations: ; head/comp phrases and head/marker phrases. A head/comp phrases is like the ; usual VP rule, and its head (and therefore the whole phrase) must be CONJ ; cnil. A head/comp phrase is unmarked for MC, but will inherit a MC ; specification from its head daughter. Head/marker phrases takes the place ; of the P&S94 head/marker rule. The head must be lexical (i.e., of type ; "word") and CONJ non-cnil. ; ; DPF 10-Aug-99 - Moved the propagation of ALTMIN from head_marker-phrase up to ; head_comp_or_marker_phrase. ; DPF 2-Jun-02 - Added HS-LEX -* (see discussion of HS-LEX): needed to distinguish ; "*the children very angry arrived" from "the children very angry at kim arrived" ; DPF 23-Apr-03 - Added propagation of MODIFD value from head to mother, ; reminded by spurious ambiguity for "thirty twenty-two chairs arrive" ; DPF 13-Oct-03 - Removed HS-LEX - from mother, since it prevented coordination ; of adjectives, which are HS-LEX + basic_head_comp_or_marker_phrase := head_valence_phrase & head_compositional & [ SYNSEM canonical_synsem & [ LOCAL [ CAT [ MC #mc, VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcomps ], NEGPOL #negpol ] ], MODIFD #modif, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD subst_or_func, MC #mc, VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcomps ], NEGPOL #negpol ] ], MODIFD #modif ] ], [ SYNSEM.PUNCT.PNCTPR #ppair ] > ]. head_comp_or_marker_phrase := basic_head_comp_or_marker_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS #comps, ARGS < [ SYNSEM.LOCAL.CAT.VAL.COMPS < #synsem . #comps > ], [ SYNSEM #synsem ] > ]. ; ERB (03-10-96) hcomp_nc is no longer marked as non-clause because some of them ; are "clauses" in the sense of having a message (e.g., "Kim wants [to leave]"). ; This is actually in need of revision: we are probably going to need to ; distinguish between to-headed hcomp_ncs which are selected by equi predicates ; or otherwise have PRO subjects and whether-headed hcomp_ncs on the one hand, ; and all other instances on the other with a restriction equivalent to SUBJ ; list(PRO) in order to block "To rain is difficult" etc. I think this should ; be possible without resorting to anything like VFORM whether to identify cases ; -- see Ivan's interrogatives paper. ; ERB (05-10-97) In order for one single hd-cmp_u_c rule to build things like "how ; about on Friday", the restriction HEAD subst needs to be removed from this ; rule, or else root-marker needs to inherit from subst. I am opting for the ; former. ; DPF (25-Aug-98) The head_comp_phrase is not marked POSTHD + since we want to ; build "twenty-one" using this rule, but still allow it to serve as a ; prenominal modifier as in "twenty-one books". So instead we use the PRED ; feature to distinguish prenominal from postnominal modifiers, and conspire to ; make all PRED - entries have an empty COMPS list. ; DPF 01-Feb-03 - Generalized CONJ value to cnil_or_numconj, to allow this ; rule to build "and three" as in "two hundred and three". ; DPF 10-dec-03 - But now the mrk-nh_atom_c rule is taking care of these guys. ; DPF 10-jul-04 - Tried making complement LPUNCT no_punct to avoid ; 'Kim hired, Abrams'. But this fails for "January 1st, 1984". So remove, ; and expect heads to declare the expected LPUNCT value for their complements. ; DPF 17-jul-04 - Let's try making the head LPUNCT no_punct, to avoid e.g. ; 'Kim, hired, Sandy.' ; DPF 25-aug-04 - Can't have [HD-DTR..RPUNCT no_punct] since for two-compl ; verbs, the first complement might contain an appositive ending in a comma, ; as in "Kim sent [Abrams, the manager,] to Browne. So it seems that we ; have to live with ambiguity of "Kim sent Abrams, the manager." ; DPF 7-mar-05 - Changed parent type from head_initial_infl to head_initial ; since we want "the Berlin - Paris route" where "Berlin - Paris" is built ; compositionally but is still compatible with [INFL -]. Keep nonhd-dtr as ; INFLECTD +. ; DPF 31-mar-05 - Re 25-aug-04, tried changing hdn-np_app-pr_c rule to underspecify ; RPUNCT value, so this HCOMP rule can return to excluding a comma-marked head, ; which should help with spurious ambiguity. But if hdn-np_app-pr_c rule drops the ; information from its RPUNCT, no longer know if it was marked with final comma, ; or clause_punct, etc - unacceptable, so we'll just live with generating ; 'Kim handed Abrams, the book.' ; DPF 28-jun-07 - Made phrase be SYNSEM nonlex_synsem to prevent PPs from ; being complements of v_p_le verbs, given that we now depend on the SYNSEM ; type to distinguish P from PP for these particle guys. ; DPF 15-sept-07 - Re 7-mar-05: But leaving INFLECTD underspecified means we ; always build spurious edges for e.g. 'hire Abrams' which don't go very far, ; but are unwanted. So let's try requiring the two dtrs to both be INFLECTD + ; but leave the mother unspecified, so we still get "paris - berlin" as a ; left dtr of compound but avoid building uninflected "hire Abrams' basic_head_comp_phrase := basic_head_comp_or_marker_phrase & head_initial & binary_punct_phrase & [ SYNSEM nonlex_synsem & [ LOCAL [ CAT [ POSTHD #ph, HS-LEX #hslex ], CONJ cnil ], LEX #lex ], INFLECTD #infl, HD-DTR [ INFLECTD na_or_+ & #infl, SYNSEM [ LOCAL [ CAT [ POSTHD #ph, HC-LEX #lex, HS-LEX #hslex ] ], PUNCT [ LPUNCT hyphen_or_pair_or_no_punct, RPUNCT comma_or_rbc_or_colon_or_pair_or_no_punct, PNCTPR ppair ] ] ], NH-DTR.INFLECTD +, C-CONT [ RELS , HCONS ] ]. head_comp_phrase := basic_head_comp_phrase & head_comp_or_marker_phrase. ;; DPF 2012-03-23 - Changed nh-dtr to be nonlex_synsem rather than phr_synsem, ;; since we want to allow |Kim made possible the whole approach|, but we still ;; want to avoid lexical edges being reordered. ;; DPF 2012-10-20 - Tried restricting NH-DTR..HEAD from verbal_or_a_or_p to ;; a_or_p to also exclude VPs and clauses, but this would also block obj_equi ;; passives, as in |Kim was urged to arise by Abrams|. So undo. ;; head_second_comp_phrase := basic_head_comp_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS < #comp1 & phr_synsem & canonical_synsem & [ LEX - ] . #comps >, HD-DTR.SYNSEM.LOCAL.CAT [ HEAD.INV -, VAL.COMPS < #comp1 . < #comp2 . #comps > > ], NH-DTR.SYNSEM #comp2 & nonlex_synsem & [ LOCAL.CAT [ HEAD verbal_or_a_or_p & [ MOD *olist* ], VAL.SUBJ *synlist* ], NONLOC.SLASH 0-dlist ] ]. ; DPF 18-jun-04 - For now, stipulate propagation of PUNCT, since this type ; doesn't inherit from binary_phrase (due to INFLECTD?). But maybe can make ; this a binary_phrase? ; DPF 24-may-05 - We put the PAIRED value of the nh-dtr into 'storage' in the ; head-marker phrase's PNCTPR attribute, which is not used during the ; construction of the coordinate phrase. Then the top-coord rule 'retrieves' ; this value from its right conjunct's PNCTPR and makes it once again the ; value of PAIRED on the full conjoined phrase. Affected example: ; only want the hdn-aj_rc_c rule (and not the hdn-aj_rc-pr_c rule) to build the rel ; clause in 'Devito manages a programmer Abrams interviewed and Browne hired.' ; DPF 22-jul-05 - This move creates a little problem for the odd lexical ; entry "etc." which acts syntactically like a head-marker phrase. But then ; "etc.?" should undergo the qmark infl rule, leaving it with a non-empty ; PAIRED value, and then it won't conjoin properly because that PAIRED value ; should be 'stored' in PNCTPR. For now, add lexical entry for "etc.?" basic_head_marker_phrase := head_comp_or_marker_phrase & basic_binary_phrase & [ SYNSEM [ LOCAL [ CAT [ HC-LEX #hclex, HS-LEX #hslex ] ], NONLOC #nonlocal, MODIFD #modif, LEX #lex, PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, PAIRED #paired, PNCTPR #nhpaired, RCLSTR #rclstr ] ], HD-DTR #hd-dtr, ARGS < #hd-dtr & [ SYNSEM [ PUNCT [ LPUNCT #lpunct, RPUNCT hyphen_sgl_or_rbc_or_no_punct, PAIRED #paired ], LEX na_or_- ] ], sign & [ SYNSEM [ LOCAL.CAT [ HC-LEX #hclex, HS-LEX #hslex ], NONLOC #nonlocal, MODIFD #modif, LEX #lex, PUNCT [ RPUNCT #rpunct, RCLSTR #rclstr, PAIRED #nhpaired ] ] ] > ]. head_marker_phrase_event := basic_head_marker_phrase & [ INFLECTD +, SYNSEM.LOCAL [ CONT.HOOK.INDEX conj_event & [ SF #iforce ], CAT.POSTHD #ph, CONJ complex-conj & [ CREL #rel ], AGR #agr ], ARGS < [ SYNSEM.LOCAL [ CAT.HEAD non_noun_or_adv, CONJ.CREL.R-INDEX #ind, CONJ complex-conj & [ CREL #rel ] ], INFLECTD + ], [ SYNSEM.LOCAL [ CAT [ HEAD non_noun_or_adv & [ MINORS.MIN event_or_degree_or_no_rel ], VAL.COMPS *olist*, POSTHD #ph ], CONT.HOOK.INDEX #ind & [ SF #iforce ], CONJ cnil_or_numconj, AGR #agr ], INFLECTD + ] >, C-CONT.RELS ]. ; DPF 13-oct-05 - While two-part phrasally headed phrases typically conjoin ; with a comma-marked left conjunct, lexically-headed phrases do not, so ; use the same CPUNCT constraint as for nominal phrases to restrict commas ; to informal ones for simple lexical coordination. ; DPF 31-oct-05 - VP and S coordination may allow informal commas after the ; conjunction as in "Kim arrived and, Sandy arose", especially with 'dangling' ; conjuncts as in "Or, you can stay." ;; DPF 2011-06-12 - Removed NH-DTR..POSTHD + since this prevents pre-head ;; adverbs from conjoining, as in "we quickly and quietly arose". Can't ;; recall yet what it was doing for us... Ah, it's meant to avoid spurious ;; ambiguity with the rule for coordinating attrib adjectives. Now have to ;; reconstruct why that specialized rule is desirable. Let's try doing ;; without it. ; All except clauses head_marker_phrase_e_phr := head_marker_phrase_event & [ ARGS < [ SYNSEM.LOCAL.CONJ.CREL.R-HNDL #rtop ], [ SYNSEM.LOCAL [ CAT [ VAL.SUBJ *synlist*, MC na_or_- ], CONT.HOOK.LTOP #rtop ] ] >, C-CONT.HCONS ]. ; For clause coordination, where we need qeq for each conjunct. ; DPF 02-jul-09 - Removed NH-DTR..MC bool since this prevented coord of ; relative clauses, which are MC na. head_marker_phrase_s_phr := head_marker_phrase_event & [ ARGS < word_or_lexrule & [ SYNSEM.LOCAL.CONJ.CREL.R-HNDL #rhndl ], [ SYNSEM.LOCAL [ CAT [ HEAD verbal_or_cr & [ TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], VAL [ SUBJ *anti_list*, SPR < > ], POSTHD + ], AGR.PNG.PN #pn, CONT.HOOK.LTOP #rtop ] ] >, C-CONT.HCONS ]. ; DPF 31-may-06 - To get pre-head adv-coord as in "historically and ; culturally important", make nh-dtr's HEAD be a_or_adv. ;; DPF 2011-06-12 - Re 31-may-06: But since we're using the PP-coord rule ;; for adverbs as well, don't need (or want) this accommodation. ;; head_marker_phrase_a_lex := head_marker_phrase_event & [ SYNSEM.LOCAL [ CAT.POSTHD -, CONJ.CPUNCT ppair ], ARGS < word_or_lexrule & [ SYNSEM [ LOCAL.CONJ.CREL.R-HNDL #rtop, PUNCT.RPUNCT hyphen_sgl_or_no_punct ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD adj, POSTHD - ], CONT.HOOK.LTOP #rtop ], MODIFD notmod_or_lmod ] ] >, C-CONT.HCONS ]. ; DPF 6-Dec-02 - Added ident. of HD-DTR..KEYREL.R-INDEX with NHD..INDEX ; here in the construction since nouns can no longer identify their E-INDEX ; with their INDEX (which was wrong anyway, since the E-INDEX should be of ; type event). A related re-entrancy appears for the left daughter in the ; nom_coord_rule definition. ; DPF 10-may-05 - Added CPUNCT ppair on mother to block comma-marked ; left conjunct in simple two-part nominal coordination: ; '*Abrams, and Browne arrived'. This constraint is ignored in any ; multi-part coordination. ; DPF 30-jul-05 - But as noted elsewhere, this also prevents coordination ; of longer NPs. So we let those in using informal_comma_punct. ; DPF 29-sept-05 - To allow "The friendliness and helpfulness of Norwegians ; is apparent", we don't identify AGR.PNG with HOOK.INDEX.PNG on this basic ; type, but only for NPs. Thus we'll allow "the dog and cat is barking.", ; which is undesirable, but then we'll also get "my friend and confidante is ; here." which we also want. basic_head_marker_phrase_nom := basic_head_marker_phrase & [ SYNSEM.LOCAL [ CAT.HEAD.MINORS.NORM #norm, CONT.HOOK.INDEX conj_non_expl-ind, CONJ [ CPUNCT ppair, CREL #crel ], AGR [ PNG #png, DIV #div ] ], ARGS < [ SYNSEM [ LOCAL [ AGR [ PNG #png, DIV #div ], CONJ complex-conj & [ CREL #crel & [ R-INDEX #ind ] ] ], PUNCT.RPUNCT hyphen_sgl_or_rbc_or_no_punct ] ], [ SYNSEM.LOCAL [ CAT.HEAD supnoun & [ MINORS.NORM #norm ], CONT.HOOK.INDEX #ind & ref-ind, CONJ cnil_or_numconj ] ] > ]. ; DPF 26-aug-04 - Generalized NH-DTR.HEAD from noun to noun_or_nomger to ; get e.g. "His singing and dress were unusual". Restrict nbar coord to ; HOOK.INDEX 3per, since we're not enforcing full PNG constraint (see ; above. ; DPF 01-sep-07 - Restrict NH-DTR..MIN to gen_nom_nbar_rel to exclude ; detless-pp nouns like "level" ;; DPF 2012-02-01 - Re: 26-aug-04 on basic_nom_coord_rule, about SORT: ;; We still want to assign some SORT value on the mother, to avoid spurious ;; locative relative clause modifiers as in |*the book and bicycle that I slept| ;; So identify conj-index's SORT with that of right dtr. head_marker_phrase_nbar := basic_head_marker_phrase_nom & [ INFLECTD #infl, SYNSEM.LOCAL.CONT.HOOK.INDEX [ PNG.PN 3, SORT #sort ], ARGS < [ INFLECTD + ], [ INFLECTD #infl, SYNSEM.LOCAL [ CAT [ HEAD noun_or_nomger & [ MINORS.MIN gen_nom_nbar_rel ], VAL.SPR.FIRST synsem & [ --MIN quant_or_wh_rel, LOCAL.CAT.HEAD det ] ], CONT.HOOK [ LTOP #ltop, INDEX #ind ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; DPF 20-Sept-06 - Since we no longer make 'and' be [PN 3p] in order to get ; 'their cleverness and zest for life is legendary", we now use the lexical ; constraint stored in CONJ.CPNG for 'and' to block "*Abrams and Browne is ..." ; while still allowing "Abrams or Browne is ..." head_marker_phrase_nom := basic_head_marker_phrase_nom & [ INFLECTD #infl, SYNSEM.LOCAL [ CONT.HOOK [ LTOP #ltop, INDEX.PNG #png ], AGR.PNG #png ], ARGS < [ INFLECTD +, SYNSEM.LOCAL.CONJ.CPNG #png ], [ INFLECTD #infl, SYNSEM.LOCAL [ CAT.VAL.SPR *olist*, CONT.HOOK.LTOP #ltop ] ] >, C-CONT [ RELS , HCONS ] ]. ; For 'both', 'neither', etc. head_marker_phrase_atomic := basic_head_marker_phrase & binary_phrase & [ ARGS < [ SYNSEM [ LOCAL.CONJ atomic-conj, PUNCT.RPUNCT hyphen_sgl_or_no_punct ] ], [ SYNSEM.LOCAL.CONJ cnil_or_numconj ] >, C-CONT [ RELS , HCONS ] ]. ; Skip an optional complement as long as there is still another obligatory ; complement on the list (here assumed to be the second complement, since it's ; hard and perhaps unnecessary to allow the obligatory one to appear in an ; arbitrary position). ; DPF (27-Apr-99) Note that this formulation unfortunately does not get ; "Kim bet Abrams won" with the first two optional complements missing, since ; the rule forces the complement after the omitted one to be expressed. ; DPF 7-Apr-01 - Added MC reentrant with head-dtr's MC value. ; DPF 7-Apr-01 - Removed POSTHD + since it prevented pre_S if-clauses. ; DPF 22-May-01 - Instead, pass up POSTHD from dtr to mother. ; DPF 18-Dec-01 - Moved ALTMIN identity from this type to the non-noun ; subtypes, to allow noun-opt-comp to override, in order to prevent n-n-cmpnd ; from feeding that rule, while allowing that rule to feed n-n-cmpnd. ; DPF 2-June-2 - Moved ALTMIN identity back since have better mechanism for ; blocking the above feedingg relationship for compounds. basic_head_opt_comp_phrase := head_valence_phrase & norm_unary_phrase & head_compositional & [ INFLECTD #infl, SYNSEM canonical_synsem & [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcmps ], MC #mc, POSTHD #ph, HS-LEX #hslex ], CONJ cnil ], OPT #opt, MODIFD #mod ], HD-DTR #head & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcmps ], MC #mc, POSTHD #ph, HS-LEX #hslex ] ], OPT #opt, MODIFD #mod, PUNCT.LPUNCT pair_or_no_punct ] ], C-CONT [ RELS , HCONS ], ARGS < #head > ]. ; DPF 28-jun-07 - Added event_or_hour_rel as temporary solution to puzzle ; about making "three twenty" (clocktime) discharge its optional complement ; even though it is built using hd-cmp_u_c which now stamps nonlex_synsem on the ; mother, but the noun-optcomp rule wants the dtr to be basic_lex_synsem ; in order to avoid spurious ambig with noun-noun compounds like "book cover" ; So for now, we let "three twenty" go through the non-noun optcomp rule. ; DPF 06-apr-08 - Removed HD-DTR..INDEX non_conj_event because this blocks ; conjoined VP in CP-phrase, since the complementizer shares its INDEX with ; the VP. head_opt_comp_phrase := basic_head_opt_comp_phrase & [ SYNSEM nonlex_synsem & [ LOCAL.CAT [ VAL.COMPS #comps, HEAD.LSYNSEM.NONLOC.QUE 1-dlist ], LEX #lex ], HD-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN event_rel, VAL.COMPS < unexpressed_reg & [ OPT + ] . #comps > ], CONT.HOOK.INDEX event ], LEX #lex ] ] ]. ; DPF 21-Mar-01 - Removed SPR..MIN quant_or_wh_rel since this blocked pumping ; for partitives, as in "very little arrived" ; Changed HEAD from noun to n_or_p for "worth" ; DPF 3-Jun-02 - Constraint of lex_synsem on dtr prevents noun-noun-cmpnds ; from undergoing this rule, to avoid spurious ambiguity for e.g. "book cover", ; forcing hdn_optcmp_c to apply before compounding. Identify ALTMIN of mother and ; dtr to block e.g. "*the almost all books arrive" (and then move this identity ; back up to parent opt_comp phrase type). ; DPF 9-Oct-02 - Added re-entrancy of LEX on mother and dtr in order to allow ; n_hour_le's to be unmarked for synsem type, but propagate their (unusual) ; [LEX -*] specification to block "an eleven meeting" but still allow "an ; eleven pm meeting". noun_opt_comp_phrase := basic_head_opt_comp_phrase & [ SYNSEM basic_lex_synsem & [ LOCAL.CAT.VAL.COMPS #comps, LEX #lex ], HD-DTR [ SYNSEM lex_or_nonlex_synsem & [ LOCAL.CAT [ HEAD supnoun, VAL.COMPS < unexpressed_reg & [ OPT +, NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ] ] . #comps > ], LEX #lex ] ] ]. ; ERB (19-01-98) If to_c_prop can undergo subject extraction (see notes ; near non_wh_rel) then this can't require HEAD v_or_p. That constraint ; will be moved to extracted_comp_phrase. Extrasubj will say ; HEAD verbal. ; DPF 10-Jun-99 Changed SYNSEM..MOOD from indicative to ind_or_mod_subj, since ; we weren't getting "Abrams would have hired Browne" ; DPF 26-Nov-03 - Identified MODIFD value of mother and daughter, to preserve ; e.g. whether a VP has been pre-modified so we can still block "probably to ; remain" as the spurious analysis of purposive infinitival in "Kim is ; probably to win" extracted_arg_phrase := head_nexus_phrase & head_only & [ SYNSEM [ LOCAL [ CAT.HC-LEX -, CONT.HOOK.INDEX.--TPC +, CONJ cnil ], NONLOC.SLASH #slash, MODIFD #modif ], HD-DTR.SYNSEM [ LOCAL.CONJ cnil, NONLOC.SLASH #slash, MODIFD #modif ] ]. ; DPF (28-Apr-99) Added identity of MSG for mother and head-dtr, since it ; wasn't being propagated. ; *** We still need special extraction rules for fronting CPs and VPs. ; DPF 31-May-07 - Generalized COMPS gap to include S complements, by ; making 'verb' (but not 'comp') be subtype of 'mobile', and adding ; constraint that the gap's SUBJ be *anti_list* to exclude VPs. ; DPF 09-aug-07 - Preserve LEX feature from dtr to mother, to be able to ; detect lexical VP/NP so we can avoid spurious imperatives as in ; "consultants interview". ; DPF 18-feb-08 - Re 31-May-07: But we don't want to exclude S-bar ; complements from extraction, given eg. "That we had won, everyone knew." ; So changed to make 'comp' also a subtype of 'mobile' ; DPF 2010-10-01 - Re: 09-aug-07: Changed LEX on mother to value of HC-LEX ; on dtr, so we get |for and with Abrams|, now that we're doing right-node ; raising. We'll accept the ambiguity for |consultants interview|, since ; we have no principled reason to block it, given |this movie see right away|. #| extracted_comp_phrase := extracted_arg_phrase & head_compositional & [ SYNSEM canonical_synsem & [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr, COMPS #comps ], MC #mc, HC-LEX - ] ], NONLOC.SLASH.LIST < #local & arg-local >, LEX #hclex ], HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_g_or_a_or_p, VAL [ SUBJ #subj, SPR #spr, COMPS < gap & [ LOCAL #local & [ CAT [ HEAD mobile & [ MINORS.MIN #min ], VAL.SUBJ *anti_list*], CONT.HOOK [ LTOP #sltop, INDEX #ind ] ], --SIND #ind & non_expl, --MIN #min, NONLOC.SLASH #slash ] . #comps > ], MC #mc, HC-LEX #hclex ], CONT.HOOK.INDEX non_conj_sement ], NONLOC.SLASH #slash ] ], C-CONT [ HOOK.--SLTOP #sltop, RELS , HCONS ] ]. |# extracted_comp_phrase := extracted_arg_phrase & head_compositional & [ SYNSEM canonical_synsem & [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr, COMPS #comps ], MC #mc, HC-LEX - ] ], LEX #hclex ], HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_g_or_a_or_p, VAL [ SUBJ #subj, SPR #spr, COMPS < gap & [ LOCAL arg-local & [ CAT [ HEAD mobile & [ MINORS.MIN #min ], VAL.SUBJ *anti_list*], CONT.HOOK [ LTOP #sltop, INDEX #ind ] ], --SIND #ind & non_expl, --MIN #min, NONLOC.SLASH #slash ] . #comps > ], MC #mc, HC-LEX #hclex ], CONT.HOOK.INDEX non_conj_sement ], NONLOC.SLASH #slash ] ], C-CONT [ HOOK.--SLTOP #sltop, RELS , HCONS ] ]. ; Assume only finite clauses have explicit subjects that can be extracted, and ; restrict these to indicative verbs (not subjunctives). ; ERB (19-01-98) We are assuming that there is subject extraction ; in "just the teacher [to talk to Sandy]" so the VFORM must be ; loosened here. See notes near non_wh_rel. Also, HEAD verbal. ; What's to block whether from undergoing subject extraction? ; (cf. *Sandy Kim knows whether to elect Clinton president.) ; DPF (27-Apr-98) Made HD-DTR..HEAD be strict_type to block non-verbal heads ; from unifying (e.g. "red") ; DPF (1-Apr-99) Made mother be SPR < > to block spurious modification by PPs. ; DPF 27-sept-04 - Re: 19-01-98, this relaxation of VFORM incorrectly predicts ; that e.g. '*Kim, it is possible to arrive' is well-formed, analogous to ; 'Kim, it is possible to hire.' So constrain the infinitival subtype here ; to only produce phrase type that will be used for relative clauses, by ; requiring that the SUBJ be < unexpressed & OPT - >. ; DPF 12-nov-05 - Re: 1-Apr-99, changed this to SPR < anti_synsem_min > since ; we do want to allow pre-modification of these phrases, at least in relative ; clauses, and anyway the usual head_adj_int rule requires the head to be ; MSG no_msg, so we no longer need the SPR < > constraint for this. ;; DPF 2013-02-14 - Removed unif of HOOK.--SLTOP with HD-DTR's SUBJ..INDEX ;; since this is inconsistent with VPs that are already scopally modified, as ;; in |the dog which probably won arose|. ;; #| extracted_subj_phrase := extracted_arg_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD.TAM indic_tam, VAL.SPR < >, MC - ], CONT.HOOK.INDEX.SF prop-or-ques ], NONLOC.SLASH.LIST < #local & arg-local >, LEX - ], HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD verbal & [ VFORM fin_or_inf, PRD - ], VAL [ SUBJ < gap & [ LOCAL #local & [ CAT.HEAD.MINORS.MIN #min, CONT.HOOK.INDEX #ind ], NONLOC.SLASH 1-dlist, --MIN #min, --SIND #ind & non_expl ] >, COMPS < > ], MC na ] ] ]. |# extracted_subj_phrase := extracted_arg_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD.TAM indic_tam, VAL.SPR < >, MC - ], CONT.HOOK.INDEX.SF prop-or-ques ], NONLOC.SLASH #slash, LEX - ], HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD verbal & [ VFORM fin_or_inf, PRD - ], VAL [ SUBJ < gap & [ LOCAL arg-local & [ CAT.HEAD.MINORS.MIN #min, CONT.HOOK [ LTOP #sltop, INDEX #ind ] ], --SIND #ind & non_expl, NONLOC.SLASH #slash, --MIN #min, --SIND #ind & non_expl ] >, COMPS < > ], MC na ] ], C-CONT.HOOK.--SLTOP #sltop ]. ; DPF 28-Nov-02 - HOOK comes only from C-CONT in decl, since it introduces ; a message. ; DPF 12-Nov-03 - Experimentally, make the XARG of this phrase be the LTOP ; of the head-dtr, in order to support "on Tuesday who arrived" where the ; PP should share the handle of the VP (as if it had been extracted). ; DPF 06-mar-06 - Without messages, we don't need (or want) this XARG hack. extracted_subj_phrase_fin := extracted_subj_phrase & decl_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD.TAM indic_tam, VAL.SUBJ *anti_null* ], CONT [ HOOK.INDEX.SF prop-or-ques ] ], HD-DTR.SYNSEM.LOCAL.CAT [ HEAD.VFORM fin, VAL.SUBJ < expressed_non_canonical & [ LOCAL.CAT.HEAD.CASE nom ] > ] ]. ; For specifiers of nouns (det and non-det), adjectives and prepositions. ; Also for specifiers of determiners, as in "almost all". Needs to be modified ; to also allow "exactly which books". ; DPF 3-Oct-99 - Added rentrancy for hd-dtr's HEAD value and the SPEC..HEAD of ; the non-hd-dtr, to allow e.g. the degree-specifier "that" to appear with ; adverbees but not PPs. ; DPF 10-Feb-01 - Changed mother's ALTMIN to come from head-dtr rather than ; nonhead-dtr, in order to get right semantics for "Kim 's" of "Kim's book". ; Couldn't find the reason (if any) why we were getting it from the nonhead. ; DPF 16-Oct-01 - The reason we need it from the head is compositional ; numerals, where the ALTMIN of the head contains the 'highest' rel (often ; times_rel or plus_rel). ; DPF 13-May-01 - Changed HD-DTR..COMPS < > back to *olist*, since adj's ; cannot always discharge their optional complement (especially since that ; would mean the pred-copula would have to require its complement to be ; COMPS < >, which means VP's would have to always discharge theirs, which ; would eliminate the utility of the *olist* in general. ; DPF 17-Dec-01 - Made POSTHD of mother be determined by specifier dtr, ; in order to get contrast of "*every book very old was sold" and "every book ; less than six months old was sold" ; DPF 2-Jun-02 - Removed parent "phrasal" since the LEX feature of head-spec ; phrases is now determined by the feature HS-LEX of head-dtr, analogous to ; HC-LEX feature. See introduction of HS-LEX in fundamentals.tdl. ; DPF 24-Apr-03 - Why is head-dtr [MC na]? This prevents e.g. "I went just to ; see kim". Also blocks "I arrived two weeks after kim left". Remove, and ; see what happens. ; DPF 26-aug-04 - FIX? make NH-DTR be INFLECTD +? No, can't, since need this ; rule for "ten foot high (wall)" But make it so for head_spec_phrase. ; DPF 7-mar-05 - Changed from INFLECTD + on mother and head-dtr to simply ; identifying INFL, since we want "the Berlin - Paris route" where ; "Berlin - Paris" is built compositionally but is still compatible with ; [INFL -]. But make the head_spec_phrase still be hd-dtr INFLECTD +. ; DPF 29-oct-06 - Changed [MC na] on mother, since this prevented use of ; sp-hd_hc_c for colon-copula with nbar-spr, so now inherit value from ; head-dtr. ; DPF 2010-09-16 - Changed newly added NH-DTR..SPR *olist* to *unexplist* ; since there are several spr-hd constructions in which the specifier dtr ; still itself has an unsaturated specifier, as in |year after year|, where ; `after' is taken to be the head. The *unexplist* ensures that the NH-DTR ; has sealed off its SPCMPS list (which can come from its own SPR, here ; unexpressed). basic_head_spec_phrase := head_valence_phrase & head_final & binary_punct_phrase & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr ], MC #mc, POSTHD #ph, NEGPOL #negpol ] ], MODIFD #modif, LEX #lex, PUNCT.PNCTPR #ppair ], HD-DTR [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ SUBJ #subj, COMPS #comps, SPR < #synsem & canonical_synsem . #spr > ], MC #mc, HS-LEX #lex, POSTHD #hdph ], CONT.HOOK #hdhook, CONJ cnil ], LEX #hdlex, MODIFD #hmodif, PHON #phon, --MIN #min, --SIND #semind, PUNCT [ LPUNCT pair_or_no_punct, PNCTPR #ppair ] ] ], NH-DTR [ SYNSEM #synsem & [ LOCAL [ CAT [ VAL [ SPEC < [ LOCAL [ CAT [ HEAD #head, VAL.COMPS #comps, POSTHD #hdph ], CONT.HOOK #hdhook ], LEX #hdlex, MODIFD #hmodif, PHON #phon, --MIN #min, --SIND #semind ] >, SPR *unexplist* ], POSTHD #ph, NEGPOL #negpol ] ], MODIFD #modif, PUNCT [ LPUNCT pair_or_no_punct, RPUNCT rbc_or_pair_or_no_punct ] ] ], C-CONT [ RELS , HCONS ] ]. ; DPF 15-Sept-03 - Added NH-DTR.MOD < > to exclude numbers ; DPF 06-mar-06 - Added XARG handle as hack to prevent degree specifiers as ; in "a little earlier". But abandoned this hack, and now try constraining ; NH-DTR..HEAD det. ;; DPF 2012-06-15 - Added SUBJ *olist* to mother, to block spurious structure ;; for verbal gerunds where both the specifier and the subject get picked up, ;; as in |there's anything's admiring kim arrived.| ;; head_spec_phrase := basic_head_spec_phrase & [ SYNSEM.LOCAL.CAT.VAL [ SPEC #spec, SUBJ *olist*, COMPS #spcmps ], HD-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT.VAL [ COMPS < >, SPEC #spec ], AGR #agr ] ], NH-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ HEAD det & [ MOD < > ], VAL [ SPR *olist*, SPEC < synsem & [ LOCAL [ CAT.HEAD supnoun, AGR #agr ] ] >, SPCMPS #spcmps ], MC na ], CONT.HOOK #hook & [ INDEX individual_min ] ] ], C-CONT.HOOK #hook ]. ; For numbers and degree specifiers, and also for x_to_y adjectives, as in ; 'the mid to upper nineties' ;; DPF 18-jul-2010 - Split this into two: one for heads with no complements, ;; as in |more beautiful|, and one for heads with one, as in |much more|. ;; Note that we need to allow for multiple "postponed" complements, as with ;; combination of degree specifiers like |so| or |too|, with comparative |more| ;; Complex example: |so much more beautiful than Kim that they fainted| ;; Also: ;; |a much more beautiful cat than Kim| ;; |so much taller than Kim that they fainted| ;; But for now, restrict the rule with complements to only comparative ;; complements (than/as), to avoid spurious ambiguity for "very happy to sing". basic_head_spec_hc_phrase := basic_head_spec_phrase & head_compositional & [ SYNSEM [ LOCAL.CAT.VAL.SPEC #spec, --MIN #min ], HD-DTR.SYNSEM [ LOCAL.CAT.VAL.SPEC #spec, --MIN #min ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN compos_spec_rel ]. head_spec_hc_phrase := basic_head_spec_hc_phrase & [ SYNSEM.LOCAL.CAT.VAL [ COMPS #comps, SPCMPS #spcomps ], HD-DTR.SYNSEM.LOCAL.CAT.VAL [ COMPS < >, SPCMPS #spcomps ], NH-DTR.SYNSEM.LOCAL.CAT.VAL.SPCMPS #comps ]. head_spec_hc_cmp_phrase := basic_head_spec_hc_phrase & [ SYNSEM.LOCAL.CAT.VAL [ COMPS #comps & < #comp . #spcomps >, SPCMPS #comps ], HD-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < synsem & #comp & [ OPT -, --MIN than_or_as_comp_rel ] >, NH-DTR.SYNSEM.LOCAL.CAT.VAL.SPCMPS #spcomps ]. ; The SYNSEM value of the head of a head/modifier phrase is token-identical to ; the MOD value of the adjunct daughter. Additionally, the adjunct daughter ; must be complement-saturated. The SLASH value is not set in the basic ; schema, but rather in each of the subtypes: in head_mod_phrase_simple the ; SLASH value is passed up from both daughters, but in the ; extracted_adj_phrase the SLASH value of the mother is effectively the ; adjunct that would have modified the head. ; ; DPF (6-Sept-98) Constrained HD-DTR to have empty QUE as well as REL, to ; block adverbs modifying "how", "where", etc. ; DPF (4-Mar-99) But this unfortunately also blocks "which consultant who fell" ; since making "consultant" be QUE empty means via lexical threading that its ; specifier must also be QUE empty. So we would have to find some other way of ; blocking modifiers of "where" etc, but perhaps the generalization is wrong ; anyway; consider "right where", "exactly when" "just how". ; DPF 25-Aug-99 - Removed CONJ cnil from HD-DTR, to allow "oh, and your name" ; DPF 6-Apr-01 - Mysteriously, it seems that we have not been copying up ALTMIN ; from head-dtr to mother for head-mod phrases. It showed up in failure to ; notice that "first seven" had a non-empty ALTMIN, which was intended to ; block this as left member of n-n-compound. ;; DPF 10-Feb-01 - Removed REL 0-dlist from head-dtr, since (a) head-nexus ;; phrases pass the REL value from the head dtr to the mother; and (b) this ;; was blocking e.g. "the chair whose first three legs fell off arrived" ;; where the adj-N construction forces REL 0-dlist rather than passing up the ;; spr's REL. ; DPF 2-Jun-02 - Added HS-LEX - (see discussion of HS-LEX) - needed if want to ; distinguish "*the children singing are famous" from "the children singing in ; Berlin are famous" - may not be desirable. ; DPF 30-Apr-03 - The reentrancy of E-INDEX in head-dtr and C-CONT is dubious ; at best, and gives rise to the odd result that in "Kim sleeps in Berlin" ; both the ARG0 and the ARG1 attributes of the _in_rel are identified. This ; looks like a possible violation at least in spirit of the semantic algebra, ; so why is it here? More research is needed. ; DPF 25-Jun-03 - Restored [CONJ cnil] on mother (cf 25-Aug-99), since don't ; want "and Browne hired" as a head-adj constituent. ; DPF 09-may-04 - Removed HD-DTR..MIN independent_rel since it prevents e.g. ; 'Kim relies you know on Sandy' ; DPF 14-mar-05 - Added identity of POSTHD on hd-dtr and mother, to block ; e.g. adj "in" from subconj_prdp as in "kim arrived [in [on Tuesday]]" ; DPF 12-apr-08 - Re 25-Jun-03: Moved cnil down to head_adj_phrase, so ; can still get pre-head modifiers as in "yes, and Kim" ; DPF 30-jun-09 - We don't want to inherit from head_nexus_rel_phrase because ; this blocks pied-piping in relative clauses, as in ; "books the covers of which ...". So instead append the RELS of the two ; dtrs. head_mod_phrase := headed_phrase & [ SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcmps ], POSTHD #ph, HS-LEX - ], CONJ cnil_or_lexconj ], MODIFD hasmod ], HD-DTR.SYNSEM.LOCAL.CAT [ VAL [ SUBJ #subj, SPR #spr, SPEC #spec, SPCMPS #spcmps ], POSTHD #ph ] ]. ; Added restriction on adjunct's specifier to prevent unsaturated nouns ; (like 'afternoon') from serving as modifiers before they pick up their ; specifiers. ; head_mod_phrase_simple takes the MSG value from its non-head dtr's ; MSG. Most modifiers identify their message with their ; modifiee's message, but tags don't. (Modifiers cannot simply identify their ; own message with that of their modifiee, since some signs (like "not") ; can be either a modifier or an argument, and hence need a message value ; independent of that of their modifiee. ; SLASH of mother is append of SLASH lists for the two daughters. In principle ; this allows distinct slash values on the two daughters, without enforcing ; parasitic gaps. So we restrict the LIST.REST value of SLASH on the mother to ; be the empty list -- a hack which works in PAGE since not strictly typed, but ; what we really want to say is that SLASH on the mother is either a singleton ; list, or the empty list. ;; 15-Jun-98 Removed this hack, since it doesn't work in the LKB, and is wrong ;; anyway, failing to generalize to e.g. head-complement structures, which ;; present the same problem of distinct SLASH values coming from each of the ;; two daughters. ;; Removed identification of hddtr's MSG with mother's - wrong for tags, ;; at least. Should be handled independently by each modifier. ;; DPF 26-Feb-99 - Added [ MIN independent_rel] to NH-DTR to distinguish ;; modifier phrases from verb-particle constructions, where the particle's ;; MIN is specialized to a subtype of 'selected_rel'. ;; DPF 7-Apr-99 - Moved C-CONT..INDEX to the scopal and intersective variants, ;; since intersectives take their index from the head-dtr, while scopals take ;; it from the non-head-dtr. The crucial case for intersectives is for ;; participial modifiers of nouns, like "manager interviewing Browne" where ;; the index of the modifier is an event variable. ;; DPF 7-Jun-99 - Removed REL 0-dlist from nonhead, to allow slashed finite ;; rels to keep the REL value on their mother, so it can be distinguished from ;; ordinary clauses. ;; DPF 8-May-00 - MC of the mother is now determined by the modifier dtr, not ;; the head-dtr, in order to make discourse adverbs like "yes" produce MC + ;; phrases. ;; DPF 10-Feb-01 - Removed REL 0-dlist from mother, since (a) head-nexus ;; phrases get the REL value from the head dtr; and (b) this was blocking e.g. ;; "the chair whose first three legs fell off arrived" where the adj-N ;; construction forces REL 0-dlist rather than passing up the spr's REL. ; DPF 3-Jul-02 - Added re-entrancy of HD-DTR..LEX and NH-DTR..MOD..LEX ; to enable modifiers to constrain the lex/phr distinction of the modifiee. ; DPF 26-Apr-03 - Added identification of XARG for head-dtr and non-hd-dtr for ; scopal modifier rules, which was already done for the (non-nominal) ; intersective modifier rules - the adj_n_int_phrase cannot make this identity ; since nouns declare the XARG value to be 'nothing'. ; DPF 03-nov-03 - Changed MC propagation back to coming from head-dtr, since ; want to be able to attach modifiers (which might be MC na) to main clauses, ; as in "Kim laughed, especially because sandy stayed". ; DPF 06-mar-06 - Re 26-Apr-03: XARG of nouns is no longer 'nothing', but ; still don't want to identify XARG of two dtrs in intersective modification ; rules, since the modifier's XARG can be identified with the INDEX of the ; head-dtr. basic_head_mod_phrase_simple := head_mod_phrase & basic_binary_headed_phrase & binary_punct_phrase & [ SYNSEM.LOCAL.CAT.MC #mc, HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL #val, POSTHD #ph, HC-LEX #hclex, MC #mc ], AGR #agr, CONT.HOOK #hook, CONJ #conj ], NONLOC #nonloc, MODIFD #modif, --SIND #semind, --MIN #min, LEX #lex, PUNCT.RPUNCT #rpunct ], NH-DTR.SYNSEM.LOCAL [ CAT [ HEAD head & [ MOD < synsem & [ LOCAL local & [ CAT [ HEAD #head, VAL #val, POSTHD #ph, HC-LEX #hclex, MC #mc ], AGR #agr, CONT.HOOK #hook, CONJ #conj ], NONLOC #nonloc, MODIFD #modif, --SIND #semind, --MIN #min, LEX #lex, PUNCT.RPUNCT #rpunct ] > ], VAL.SPR *olist* ], CONJ cnil ], C-CONT.RELS ]. head_mod_phrase_simple := basic_head_mod_phrase_simple & [ C-CONT.HCONS ]. ;; DPF (12-Jul-98) Changed POSTHD on mother from that of head-dtr to simply - ;; since want to prevent this rule from feeding head-adj rule. ;; DPF (25-Sept-98) Since we're no longer treating all head-complement phrases ;; as POSTHD -, we have to strengthen the constraint on the non-head-dtr's ;; COMPS value to be truly the empty list, not just *olist*. adj_head_phrase := basic_head_mod_phrase_simple & head_final & head_nexus_rel_phrase & [ SYNSEM [ LOCAL.CAT.POSTHD #ph, NONLOC [ SLASH #slash, QUE *diff-list* & [ LIST #qfirst, LAST #qlast ] ], MODIFD lmod & [ LPERIPH #periph ], LEX #lex, PUNCT.PNCTPR #ppair ], HD-DTR.SYNSEM [ LOCAL.CAT [ POSTHD #ph, VAL.COMPS < > ], NONLOC [ SLASH #slash, QUE *diff-list* & [ LIST #qmiddle, LAST #qlast ] ], LEX #lex, PUNCT [ LPUNCT pair_or_no_punct, PNCTPR #ppair ] ], NH-DTR.SYNSEM [ NONLOC [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist & [ LIST < > ], QUE *diff-list* & [ LIST #qfirst, LAST #qmiddle ] ], MODIFD.LPERIPH #periph, PUNCT [ LPUNCT pair_or_no_punct, RPUNCT comma_or_rbc_or_hyphen_or_pair_or_no_punct ] ] ]. ; ERB (07-11-96) Non-head dtr is QUE 0-dlist to rule out "*Leaving when do you ; think would bother Sandy?" or "*Your house where did the government foreclose ; on?" Not on higher type because "How long a book did you write?" ; DPF 09-dec-03 Removed QUE 0-dlist since we now want in-situ WH-phrases like ; "you are leaving when". The above examples with in-situ WH with inversion ; are being blocked now as desired - details on how? ; DPF 04-may-04 Changed COMPS < > to COMPS #comps from head-dtr, since we want ; to allow modification of lexical heads (e.g. for "would + rather (not)") ; DPF 12-mar-05 Removed SYNSEM..POSTHD + since no longer used to constrain ; interaction of pre- and post-head modifiers, and since it gets in the way of ; treatment of fragments such as "well, actually, Abrams" where want to build ; "well, actually" as phrase. ; DPF 21-dec-07 Changed NH-DTR..COMPS from <> to *olist* to allow e.g. ; "Kim arrived most quickly." ; DPF 2011-05-01 Changed append order of SLASH on the two daughters, to get ; the desired behavior for e.g. "In Paris, we hire him with Abrams or Browne" ; where the PP contains a coordinated NP, hence its SLASH value is a subtype ; of *arglist*, yet we don't want the SLASH value of the whole VP to be of ; type *arglist* since the VP's SLASH must have an extracted adjunct. ;; DPF 2012-02-20 Re: 2011-05-01 - Alas, but this reordering introduced the ;; problem of appending non-empty SLASH lists in both a head and its modifier, ;; as in |be used to admire| with an extracted adjunct in the VP |be used| and ;; an extracted complement in |to admire|. The append wrongly succeeds, with ;; distinct non-empty values in each of LIST and LAST, even though the type ;; of SLASH on the mother is 0-1-dlist, because the LIST is still waiting to ;; append the value of the not-yet-found SUBJ's SLASH. This edge will not ;; be part of any full tree, but causes trouble just being in the chart. ;; So go back to appending order with adjunct's slash first, then head's, ;; leaving the as-yet-unfound SUBJ's SLASH at the end of the list, where the ;; open end of the list needs to be. ;; DPF 2012-09-18 - Moved HD-DTR.MODIFD notmod_or_rmod down to subtypes, in ;; order to allow post-head scopal modifiers to attach high, as in ;; |big cats, however| ;; head_adj_phrase := basic_head_mod_phrase_simple & head_initial & phrasal & [ SYNSEM [ LOCAL [ CAT.VAL.COMPS #comps, CONJ cnil ], NONLOC [ SLASH *diff-list* & [ LIST #first, LAST #last ], QUE *diff-list* & [ LIST #qfirst, LAST #qlast ] ], MODIFD rmod & [ LPERIPH #periph ] ], HD-DTR.SYNSEM [ LOCAL [ CAT.VAL.COMPS #comps, CONT.HOOK.INDEX.--TPC #tpc ], NONLOC [ SLASH *diff-list* & [ LIST #middle, LAST #last ], QUE *diff-list* & [ LIST #qmiddle, LAST #qlast ] ], MODIFD.LPERIPH #periph, PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct ], NH-DTR.SYNSEM [ LOCAL [ CAT [ POSTHD +, VAL.COMPS *olist* ], CONT.HOOK.INDEX.--TPC #tpc ], NONLOC [ SLASH *diff-list* & [ LIST #first, LAST #middle ], QUE *diff-list* & [ LIST #qfirst, LAST #qmiddle ] ] ] ]. ; DPF (07-17-98) Split head_adj_phrase and adj_head_phrase into two each, ; one for intersective modifiers and one for scopal modifiers, in order to ; get desired results for recursive modification as in "apparently difficult ; problem" (cf. Kasper '98). This split is also used in generation, where ; we delay construction of intersective modification, but not scopal. ; DPF 13-may-09 - Relaxed NH-DTR.COMPS < > to *olist* and pushed < > down to ; subtype, since this prevented 'most probably arrived' due to the optional ; of-PP complement from 'most'. But need *olist* to force e.g. 'as' to pick ; up complement first: "as reported, ..." ;; DPF 12-02-20 - Let's return to blocking extraction from scopal modifiers, ;; since allowing it produces great numbers of unwanted and unused edges in the ;; chart. Maybe we'll recall when we wanted such extraction. scopal_mod_phrase := head_mod_phrase_simple & nonhead_compositional & head_nexus_rel_phrase & [ HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ XARG #xarg, --SLTOP #sltop ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MOD < [ LOCAL scopal_mod & [ CONT.HOOK.XARG #xarg ] ] >, VAL.COMPS *olist* ], CONT.HOOK #hook & [ XARG #xarg ] ], NONLOC.SLASH 0-dlist ], C-CONT.HOOK #hook & [ --SLTOP #sltop ] ]. isect_mod_phrase := head_mod_phrase_simple & head_compositional & [ SYNSEM.NONLOC.REL [ LIST #first, LAST #last ], HD-DTR.SYNSEM [ LOCAL.CONT [ HOOK.LTOP #hand ], NONLOC.REL [ LIST #first, LAST #middle ] ], NH-DTR.SYNSEM [ LOCAL [ CAT.HEAD.MOD < [ LOCAL intersective_mod ] >, CONT.HOOK.LTOP #hand ], NONLOC.REL [ LIST #middle, LAST #last ] ] ]. basic_adj_head_scop_phrase := adj_head_phrase & scopal_mod_phrase & head_final_infl & [ SYNSEM.LOCAL.CAT [ VAL.COMPS < >, NEGPOL #negpol ], NH-DTR.SYNSEM.LOCAL.CAT [ POSTHD -, NEGPOL #negpol ] ]. ; DPF 19-may-09 - Changed NH-DTR..COMPS from < > to *olist* to allow e.g. ; "most obviously, Kim won" adj_head_scop_phrase := basic_adj_head_scop_phrase & [ SYNSEM.MODIFD.LPERIPH +, HD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR < >, NH-DTR.SYNSEM [ LOCAL.CAT.VAL.COMPS *olist*, PUNCT.RPUNCT comma_or_clause_or_pair_or_no_punct ] ]. ; For non_sentential heads - to avoid '*Kim before Abrams arrived arose' adj_head_scop_xp_phrase := basic_adj_head_scop_phrase & [ HD-DTR.SYNSEM.LOCAL.CAT.VAL.SPR *cons*, NH-DTR.SYNSEM [ LEX +, PUNCT.RPUNCT rbc_or_pair_or_no_punct ] ]. ; The paired variant - see comment 7-may-05 for n_adj_relcl_phrase. adj_head_scop_prpnct_phrase := adj_head_scop_xp_phrase & [ SYNSEM.PUNCT.PAIRED #paired, NH-DTR.SYNSEM.PUNCT [ PNCTPR #pnctpr, PAIRED #paired, RPUNCT comma_or_pair_punct ], HD-DTR.SYNSEM.PUNCT [ PAIRED #pnctpr, PNCTPR #paired ] ]. ; Non-paired variant - propagate comma or clause-punct onward ; DPF 30-sept-06 - Also allow robust comma on head-dtr. adj_head_scop_nopair_phrase := adj_head_scop_xp_phrase & [ SYNSEM.PUNCT.PNCTPR #ppair, NH-DTR.SYNSEM.PUNCT.RPUNCT rbc_or_no_punct, HD-DTR.SYNSEM.PUNCT [ RPUNCT comma_or_rbc_or_clause_or_no_punct, PNCTPR #ppair ] ]. head_adj_scop_phrase := head_adj_phrase & scopal_mod_phrase & head_initial_infl & [ NH-DTR.SYNSEM [ LOCAL.CAT.VAL.COMPS < >, NONLOC.REL 0-dlist ], HD-DTR.SYNSEM.PUNCT.RPUNCT comma_or_pair_or_no_punct ]. ; The paired variant - see comment 7-may-05 for n_adj_relcl_phrase. head_adj_scop_prpnct := head_adj_scop_phrase & [ SYNSEM.PUNCT.PAIRED #paired, HD-DTR.SYNSEM.PUNCT [ PNCTPR #pnctpr, PAIRED #paired, RPUNCT comma_or_pair_punct ], NH-DTR.SYNSEM.PUNCT [ PAIRED #pnctpr, PNCTPR #paired ] ]. ; Non-paired variant - propagate comma or clause-punct onward ; DPF 10-sept-07 - Added RPERIPH + to mother to enable blocking of stacked ; depictives as in "Kim arrived happy sad." ; head_adj_scop_nopair := head_adj_scop_phrase & [ SYNSEM [ PUNCT.PNCTPR #ppair, MODIFD.RPERIPH + ], HD-DTR.SYNSEM.PUNCT.RPUNCT pair_or_no_punct, NH-DTR.SYNSEM.PUNCT [ RPUNCT comma_or_clause_or_pair_or_no_punct, PNCTPR #ppair ] ]. ; DPF 29-Nov-02 - Removed NH-DTR..TENSE no_tense, since the adjunct ; now provides the HOOK for the mother, including E-INDEX, which must be ; unified with the head-dtr's E-INDEX. ; DPF 26-May-03 - But that spurious re-entrancy with the head-dtr's index has ; now been removed, so we can re-introduce this constraint on TENSE, crucial ; for the generator, since the heuristics will introduce lots of spurious ; auxiliaries if there is an event variable unconstrained for TENSE. adj_head_int_phrase := adj_head_phrase & isect_mod_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS #comps & *obllist*, NH-DTR.SYNSEM.LOCAL.CAT [ HEAD.PRD -, VAL.COMPS #comps, POSTHD - ] ]. ; DPF 19-Oct-02 - Try making the non-head dtr PRD +, to make VP-modifying ; PPs PRD + in order to avoid spurious ambiguity for 'a foot in front of ...' ; DPF 29-Nov-02 - Removed NH-DTR..HEAD..TENSE no_tense, since the adjunct ; now provides the HOOK for the mother, including E-INDEX, which must be ; unified with the head-dtr's E-INDEX. ; DPF 26-May-03 - But that spurious re-entrancy with the head-dtr's index has ; now been removed, so we can re-introduce this constraint on TENSE, crucial ; for the generator, since the heuristics will introduce lots of spurious ; auxiliaries if there is an event variable unconstrained for TENSE. ; DPF 24-aug-04 - Try making the hd-dtr [REL 0-dlist] to avoid spurious ; parse for e.g. 'abrams has an office [[browne showed] to chiang]' ; DPF 26-aug-04 - Tempted to generalize HD-DTR..MIN from event_rel to ; event_or_degree_or_no_rel (ignoring degree_rel here), to allow no_cop VPs ; to be post-modified, as in "down again and to the lodge.", but this will ; surely lead to lots of additional edges with little coverage benefit. ; DPF 25-aug-07 - Try restricting HD-DTR to SPR *cons* to force modifier to ; attach before specifier, to avoid spurious ambiguity for e.g. "He was ; pretty scared himself" ; DPF 26-aug-07 - Try restricting HD-DTR to POSTHD + to avoid spurious ; attachment to attributive adjs, especially derived from participial verbs. ; as in "going on a holiday" ; DPF 16-nov-09 - Generalize HD-DTR..HEAD from adverbee to adverbee_or_modnp ; to allow `next week in Paris we dance'. Unfortunately, we also get spurious ; ambiguity for 'here in Paris' - FIX? ; DPF 4-apr-10 - Note that HD-DTR..RPUNCT excludes ordinary commas, ; apparently to avoid (usually) spurious ambiguity as in ; "kim hired several people, such as consultants and managers." ; We might someday regret this. FIX? ;; DPF 2011-10-01 - Re 4-apr-10: yes, this prevents e.g. ;; |afterwards, in Paris, we relaxed.| So remove this, and live with the ;; extra ambiguity. head_adj_int_phrase := head_adj_phrase & isect_mod_phrase & head_initial_infl & [ SYNSEM.PUNCT.PNCTPR #ppair, HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD adverbee_or_modnp & [ MINORS.MIN event_rel ], VAL [ SPR *cons*, COMPS < > ], POSTHD + ], MODIFD notmod_or_rmod, NONLOC.REL 0-dlist ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN independent_rel, NONLOC.REL 0-dlist, PUNCT.PNCTPR #ppair ] ]. ; For "On Tuesday who won" where need S-initial PP rather than extracted PP. ; DPF 29-Nov-02 - Removed NH-DTR..HEAD..TENSE no_tense, since the adjunct ; now provides the HOOK for the mother, including E-INDEX, which must be ; unified with the head-dtr's E-INDEX. ; DPF 26-May-03 - But that spurious re-entrancy with the head-dtr's index has ; now been removed, so we can re-introduce this constraint on TENSE, crucial ; for the generator, since the heuristics will introduce lots of spurious ; auxiliaries if there is an event variable unconstrained for TENSE. ; DPF 25-sept-04 - Changed NH-DTR..HEAD from prep to prep_or_modnp to also ; allow "tomorrow, can you come?" ; DPF 31-oct-05 - Constrained this rule to main clauses, to avoid spurious ; analyses in subordinate clauses like "we arise since today he arrives." ;; DPF 2012-11-06 - Added CONJ cnil to hd-dtr; presumably intended all along. ;; Also constrained NH-DTR to have saturated SPR, to avoid admitting the ;; rare PPs that are missing an obligatory specifier ;; adj_head_inv_phrase := head_mod_phrase_simple & binary_headed_phrase & [ SYNSEM [ LOCAL.CAT [ VAL.COMPS < >, NEGPOL #negpol ], NONLOC #nonloc & non-local_none, MODIFD lmod & [ LPERIPH #periph ], PUNCT.PNCTPR #ppair ], HD-DTR #hdtr & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM fin ], VAL [ SUBJ *anti_list*, COMPS < > ], MC + ], CONT.HOOK [ LTOP #ltop, INDEX #ind & [ SF ques ] ], CONJ cnil ], NONLOC #nonloc, MODIFD notmod_or_rmod, PUNCT [ LPUNCT pair_or_no_punct, PNCTPR #ppair ] ] ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD prep_or_modnp & [ MOD < [ LOCAL intersective_mod, --SIND #ind & event ] >, TAM [ TENSE no_tense, ASPECT no_aspect ] ], VAL [ SPR *olist*, COMPS < > ], NEGPOL #negpol ], CONJ cnil, CONT.HOOK.LTOP #ltop, CTXT.ACTIVATED + ], NONLOC #nonloc, MODIFD.LPERIPH #periph, PUNCT [ LPUNCT pair_or_no_punct, RPUNCT comma_or_pair_or_no_punct ] ] ], #hdtr >, C-CONT.HOOK [ LTOP #ltop, INDEX #ind ] ]. ; For "the team which in 1924 won the title" ; DPF 30-sept-06 - Restrict to exclude npadvs like 'there' adj_head_rel_phrase := adj_head_phrase & head_mod_phrase_simple & head_compositional & head_final_infl & [ SYNSEM.LOCAL [ CAT #cat, CONT.HOOK #hook ], HD-DTR.SYNSEM.LOCAL [ CAT #cat & [ HEAD verb & [ VFORM fin ], VAL [ SUBJ < >, SPR *olist*, COMPS < > ] ], CONT.HOOK #hook & [ LTOP #ltop, INDEX #index ] ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD prep & [ TAM [ TENSE no_tense, ASPECT no_aspect ], MOD < [ LOCAL intersective_mod ] > ], VAL.COMPS < > ], CONT.HOOK [ LTOP #ltop, INDEX.E.TENSE no_tense, XARG #index ] ], PUNCT.RPUNCT hyphen_or_pair_or_no_punct ] ]. ; Further split the head_adj_int_phrase in order to enforce one aspect of the ; Complex-NP constraint prohibiting extraction from nominal adjuncts. ; ; DPF (27-May-99) Moreover, the nom_adj rule constrains the NH-DTR to be ; PRD +, in order to prevent finite VPs from serving as modifiers. This was ; being blocked earlier by pretending that all post-head modifiers had to have ; SUBJ *olist*, but this meant making predicative participles not specify an ; OPT value on their SUBJ - dubious generalization, and besides, it made it ; difficult to get the parse-node labels right, since passive verbs looked ; like S's. ; ; DPF 3-June-99 -- Further constrained nom_adj rule to make the modifier be ; phrasal, to block "Kim met the consultant hired." It's too strong a ; constraint, but we'll revisit the question if we move to making post-nominal ; modifiers attach at NP rather than N. Among the disadvantages is the fact ; that we can't do "Get him something nice". (But see opt comp for generic-pro) ; DPF 9-Sept-99 - Added [PRD -] to head-dtr to avoid modifiers of e.g. ; minute-word. ; - 20-Nov-99: But this also blocked "the eleventh any time after three" ; DPF 15-Apr-00 - Removed [NH-DTR..SLASH 0-dlist] since now have ; relative clauses have non-empty REL value. This means we have to split the ; nn_adj rule into two, one for relative clauses which are REL 1-dlist and the ; other for reduced relatives which are REL 0-dlist - otherwise we would get ; "*Kim bought a book by whom?". ; DPF 26-Mar-01 - Added [HD-DTR..RPERIPH na_or_-] to block e.g. attachment of ; post-nom modifiers to bare proper names and numerals. ; DPF 2-Jun-02 - Added NH-DTR.LEX - to exclude "the children angry" ; DPF 2-Jul-02 - (from 26-Mar-01) But attachment of post-nom modifiers to ; proper names is possible, as in "Abrams from New York just called". So ; removed this constraint, and leave for later how to block "Abrams by Browne ; arrived" ; DPF 3-Jul-02 - Try adding HD-DTR..NORM no_rel to exclude modification ; of np-adverbs like "here". ; DPF 13-Oct-02 - But why block this? We want "here in Paris is nice" and ; "I'll arrive later that morning". So remove it, and wait for motivation. ; DPF 23-aug-04 - Moved NH-DTR..LEX - from n_adj_int_phrase to n_adj_redrel_cl ; in order to allow postnominal participles like "the people hired were good" ; while still blocking e.g. "*the people happy were good" ; DPF 25-aug-04 - Change HD-DTR.LPUNCT from pair_or_no_punct to ; comma_or_pair_or_no_punct to allow non-restrictive relatives and reduced ; relatives for now. ; DPF 06-apr-05 - Try constraining HD-DTR..RPUNCT to pair_or_no_punct, to ; exclude spurious reading for "Kim sent [a letter, then] a card." ; DPF 04-may-05 - Constrain NH-DTR to QUE 0-dlist to block NP analysis of ; "the time when". ; DPF 13-nov-05 - Changed HD-DTR..RPUNCT from rbc_or_pair_or_no_punct to ; comma_or_rbc_or_pair_or_no_punct n_adj_int_phrase := head_adj_phrase & [ INFLECTD +, HD-DTR [ INFLECTD na_or_+, SYNSEM [ LOCAL.CAT [ HEAD supnoun, VAL [ COMPS < >, SPR.FIRST synsem_min ] ], PUNCT [ LPUNCT pair_or_no_punct, RPUNCT comma_or_rbc_or_pair_or_no_punct ], MODIFD notmod_or_rmod & [ RPERIPH na_or_- ] ] ], NH-DTR [ INFLECTD +, SYNSEM [ LOCAL.CAT [ MC na, VAL.COMPS < > ], NONLOC [ SLASH 0-dlist, QUE 0-dlist ], PUNCT.LPUNCT pair_or_no_punct ] ] ]. ; DPF 26-Mar-01 - Added [SPR..MIN impl_or_expl_q_rel] to provide basis ; for blocking application of hdn_bnp-pn_c (non-branching) rule, to avoid e.g. ; "*I saw Abrams I had hired" - cf. "I saw the Abrams I had hired" ; Also added SYNSEM..RPERIPH + to provide basis for blocking addition of a ; thatless-rel to the right of a full relative clause. ; DPF 19-Oct-02 - Added HD-DTR..NORM no_rel to block full relatives ; modifying np_adverbs like "here, there", and singular deictics as in ; "*that he bought yesterday arrived" (cf "those he bought yesterday arrived") ; DPF 10-jul-04 - Can't make NH-DTR be LPUNCT no_punct as one might think for ; restrictive relatives (in contrast to non-restrictives which must be ; comma-delimited), because of pied-piping examples like "I bought five ; books, all of which were new" where the comma is optionally present even ; on the restrictive reading. ; DPF 4-mar-05 - Re 19-Oct-02: This NORM hack interacts badly with the ; appositive rule, where we want to prevent deictic pronouns from appearing, ; and use NORM to block. Anyway, cf. "That which one writes is admired." ; So try non_number_rel as value instead, including deictics but still ; excluding "here, there". ; DPF 7-may-05 - With the current treatment of punctuation pairing, we need ; two versions of this rule (and similarly for appositives): one which ; requires the PNCTPR value to match on both daughters, thus satisfying the ; pairing requirements and freeing the PNCTPR value on the mother; and one ; where the left daughter has no punct, so the PNCTPR value propagates. Same ; for head_adj_scop_phrase. ; DPF 03-Feb-06 - Note that SPR..MIN impl_or_expl_q_rel now generalized to ; i_or_e_quant_or_deg_rel, still blocking construction of bare proper names ; with relative clauses. FIX - This constraint should only hold for ; restrictive relatives, so when we add non-restrictives, should allow them ; for proper names as well. ; DPF 22-may-06 - Try moving this SPR constraint down to the non-comma variant, ; so we can get non-restrictives like "Abrams, who sings, dances" while still ; blocking the restrictive variant. ; DPF 19-jun-09 - Re 26-Mar-01: This constraint also unfortunately blocks ; "However, XHTML parsed in this way is not ...". But given the large ; increase in ambiguity for all proper names followed by -ed verbs, and ; the markedness of this construction, leave as is. ; DPF 28-jun-09 - Re 26-Mar-01(b): This RPERIPH constraint should not be on ; this rule, because it blocks all iteration of relative clauses. Since the ; thatless-rel rule already constrains its MOD..RPERIPH to na_or_-, remove ; it here, and still expect the desired asymmetry where thatless relatives ; must attach to the noun before that-relatives. But since this constraint ; was also blocking attachment of rel-clauses to bare plural NPs (which are ; RPERIPH +), change n_adj_int_phrase to require MOD..RPERIPH na_or_-, make ; thatless-rels require MOD..RPERIPH -, and full relatives (here) have ; RPERIPH na_or_+. ;; DPF 2012-02-18 - It seems we want to allow relative pronouns to themselves ;; be modified by at least passive VPs, as in |the machine which, properly ;; configured, should last forever|. So we should append the REL values from ;; dtr to mother. But we probably only want this modification on relative ;; pronouns when comma-separated, and this will require further work on the ;; comma machinery. So keep stamp of [REL 0-dlist] on mother for now, and ;; FIX someday. ;; DPF 2012-08-30 - In syntax.tdl, added HD-DTR.INFLECTD + to avoid spurious ;; |bill we admired| n_adj_relcl_phrase := n_adj_int_phrase & isect_mod_phrase & [ SYNSEM [ MODIFD #modif & [ RPERIPH na_or_+ ], NONLOC.REL [ LIST #first, LAST #last ] & 0-dlist ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ TAM indic_tam & [ TENSE real_tense ], INV - ], VAL.SUBJ *olist_or_prolist* ], CONT.HOOK.INDEX.SF basic-prop ], NONLOC.REL [ LIST #middle, LAST #last ], MODIFD #modif ], HD-DTR [ INFLECTD +, SYNSEM [ LOCAL.CAT [ VAL.SPR.FIRST [ --MIN quant_or_deg_rel ], HEAD.MINORS.NORM non_number_rel ], NONLOC.REL [ LIST #first, LAST #middle ] ] ] ]. ; The paired variant, where both daughters match in right punctuation ;; DPF 2012-10-10 - Removed HD-DTR..RPAREN - since this blocks e.g. ;; |the mayor (Kim) who resigned|. We'll remind ourselves of why it was here. ;; n_adj_relcl_prpnct := n_adj_relcl_phrase & [ SYNSEM.PUNCT.PAIRED #paired, HD-DTR.SYNSEM.PUNCT [ PNCTPR #pnctpr, PAIRED #paired, RPUNCT comma_or_pair_punct ], NH-DTR.SYNSEM.PUNCT [ PAIRED #pnctpr, PNCTPR #paired ] ]. ; The non-paired variant with comma ;; DPF 2011-10-01 - Try restricting HD-DTR.RPUNCT from rbc_or_pair_or_no_punct ;; to avoid some spurious ambiguity ;; n_adj_relcl_nopair := n_adj_relcl_phrase & [ SYNSEM.PUNCT.PNCTPR #ppair, HD-DTR.SYNSEM [ LOCAL.CAT.VAL.SPR.FIRST.--MIN i_or_e_quant_or_deg_rel, PUNCT.RPUNCT pair_or_no_punct ], NH-DTR.SYNSEM.PUNCT [ RPUNCT comma_or_rbc_or_clause_or_no_punct, PNCTPR #ppair ] ]. ; DPF 27-Nov-02 - Added MOD..MIN basic_nom_rel to exclude measure-NPs from ; being modified by rel clauses. ; DPF 31-oct-03 - Tried adding ALTMIN norm_non_conj_rel to prevent modification ; of internval NPs like spurious (?) reading of "berlin to Paris in June". ; DPF 25-aug-04 - Constrained NH-DTR..LPUNCT to pair_or_no_punct, to avoid ; spurious ambiguity for "the chair, in Berlin, arrives." ; DPF 28-sept-04 - Changed HEAD value of NH-DTR from a_or_p to a_or_p_or_adv ; since verbal gerunds still need to take post-head modifiers, as in ; 'eating quickly is not recommended' ; DPF 12-mar-05 - Re 25-aug-04: This blocks eg "Here, above Berlin, we arrive" ; so accept ambig and relax to comma_or_pair_or_no_punct. ; DPF 19-aug-06 - Since some already quantified NPs like pronouns also take ; post-head modifiers, and since they currently carry their non-quant rel's ; handle in XARG, also unify with XARG. ; DPF 31-mar-08 - Re: 19-aug-06: Undesirable, and unnecessary since pronouns ; present the pron_rel's LBL as their LTOP, just as expected. ;; DPF 30-jun-09 - Removed NHD-DTR..REL 0-dlist since this blocks pied piping ;; as in "consultants, the cars of whom are old, arrived." ;; n_adj_redrel_phrase := n_adj_int_phrase & head_compositional & [ SYNSEM.NONLOC.REL [ LIST #first, LAST #last ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN norm_non_conj_rel ], CONT.HOOK.LTOP #hand ], NONLOC.REL [ LIST #first, LAST #middle ] ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD n_or_a_or_p_or_adv & [ MOD < [ LOCAL intersective_mod ] > ], VAL.SUBJ *olist* ], CONT.HOOK.LTOP #hand ], NONLOC.REL [ LIST #middle, LAST #last ], PUNCT.LPUNCT comma_or_hyphen_or_pair_or_no_punct, LEX - ], C-CONT.HCONS ]. ; The paired variant, where both daughters match in right punctuation n_adj_redrel_prpnct := n_adj_redrel_phrase & [ SYNSEM.PUNCT.PAIRED #paired, HD-DTR.SYNSEM.PUNCT [ PNCTPR #pnctpr, PAIRED #paired, RPUNCT comma_or_pair_punct, RCLSTR.RPAREN - ], NH-DTR.SYNSEM.PUNCT [ PAIRED #pnctpr, PNCTPR #paired ] ]. ; The non-paired variant with comma n_adj_redrel_nopair := n_adj_redrel_phrase & [ SYNSEM.PUNCT.PNCTPR #ppair, HD-DTR.SYNSEM.PUNCT.RPUNCT pair_or_no_punct, NH-DTR.SYNSEM.PUNCT.PNCTPR #ppair ]. ; For generator, distinguish constructions where adjunct contains a gap from ; those where it does not. h_adj_unsl_phrase := head_adj_int_phrase & [ ARGS.REST.FIRST.SYNSEM.NONLOC.SLASH 0-dlist ]. ; DPF 10-dec-03 - Restrict this rule to exclude elided auxiliary heads, to ; avoid "Berlin, the road is, to" ; DPF 20-oct-09 - Restrict hd-dtr to INV -, to avoid spurious ambiguity ; h_adj_sl_phrase := head_adj_int_phrase & [ SYNSEM.NONLOC.SLASH 1-dlist, HD-DTR.SYNSEM.LOCAL.CAT.HEAD [ MINORS.ALTMIN non_ellipt_rel, INV - ], ARGS.REST.FIRST.SYNSEM.NONLOC.SLASH 1-dlist ]. ; DPF 11-May-01 - Split adj_head_int_phrase into two: one for nominal head-dtrs ; and one for non-nominals, parallel to head_adj_phrase split. Needed at least ; to prevent pre-head adjectives from modifying partitives, to get contrast in ; "any angry at Sally left" vs "*angry any left" ; DPF 13-May-01 - Changed SPR..MIN from impl_or_expl_q_rel to quant_rel in ; order to get "Mr Smith" as adj_n construction which then undergoes hdn_bnp-pn_c ; rule. ; DPF 13-Mar-02 - HD-DTR..LPERIPH na_or_- prevents adjectives from modifying ; numerically-modified nouns, as in "*the tall five consultants". ; DPF 28-Apr-03 - But this constraint prevents "the next five consultants",so ; remove constraint here, and expect (statistical?) adjective-ordering ; constraints to get the order of "five" and "tall" right. Someday. ; DPF 16-dec-03 - Made NHD be [LEX +] to prevent eg "the older than Kim chair" ; since "older" is [LEX +] but "older than Kim" is [LEX -]. ; DPF 24-apr-04 - Made COMPS of mother be *obllist* to avoid spurious ambiguity ; for e.g. "easy problem" since we could otherwise discharge the optional ; complement of "easy" first with head_opt_comp, or after this rule applies, ; using n_opt_comp. ; For now, rule out comma-separated prenominal adjectives, since out for ; one adjective, pretty bad for two, and not clear how to allow for three ; or more (if that's the right generalization). ; But this is clearly wrong, for e.g. "we expect warm, sunny days', so remove, ; and someday work out how to block comma on rightmost adjective. ; DPF 28-jun-09 - Pulled RPUNCT constraint up from two subtypes, since we ; want to allow informal comma in both constructions, to admit e.g. ; "The angry, or unhappy, cat arrives." adj_n_int_phrase := adj_head_int_phrase & [ HD-DTR [ SYNSEM [ LOCAL.CAT [ HEAD basic_nom_or_ttl, VAL [ SPR.FIRST [ LOCAL.CAT.HEAD.MINORS.MIN #min, --MIN #min & quant_rel ], COMPS < > ] ], PHON.ONSET #onset ], INFLECTD #infl ], NH-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD.MOD < [ PHON.ONSET #onset ] >, VAL.SUBJ *synlist* ], CONT.HOOK.INDEX event & [ E.TENSE no_tense ] ], LEX +, PUNCT.RPUNCT rbc_or_hyphen_or_pair_or_no_punct ], INFLECTD + ], INFLECTD #infl ]. ; DPF 29-aug-04 - Also allow "tenth-century" with optional hyphen when the ; head noun is [INFLECTD -] ; DPF 11-mar-05 - More interested in avoiding "*The tall, chair arrived", so ; instead splitting this rule for latter purpose. And anyway, the hyphen ; constraint was wrong, since we also want "the tenth-century church arose", ; so allow hyphen for adj-n case. ;; DPF 2012-08-29 - Added INFLECTD bool on HD-DTR to block |true that| with ;; relative pron `that'. adj_n_phrase := adj_n_int_phrase & [ HD-DTR [ SYNSEM.MODIFD notmod_or_rmod, INFLECTD bool ], NH-DTR.SYNSEM.PUNCT.RPUNCT rbc_or_hyphen_or_pair_or_no_punct ]. ; DPF 17-aug-06 - Added NORM to block n-ed phrases like "wide-eyed" from ; being recursively modified. But this wrongly also blocks recursive ; modification of these nouns when used ordinarily. So instead constrain ; HEAD type to exclude n-ed nouns. ; DPF 07-nov-07 - Removed [HD.DTR..LPERIPH bool] since this prevents e.g. ; "the first five cats" and "the same five cats" ; DPF 25-may-09 - Re 07-nov-07 - This was also blocking "*the tall many cats" ; but now doing this with the lexical type for normal adjectives ; DPF 2010-09-01 - Re 25-may-09: But still want to block "*the tall very cat" ; so add LPERIPH na_or_-. ; adj_adjn_phrase := adj_n_int_phrase & [ HD-DTR.SYNSEM [ LOCAL.CAT.HEAD nom_or_ttl, MODIFD lmod & [ LPERIPH na_or_- ] ] ]. ; DPF 29-Nov-02 - Removed NH-DTR..HEAD..TENSE no_tense, since the adjunct ; now provides the HOOK for the mother, including E-INDEX, which must be ; unified with the head-dtr's E-INDEX. ; DPF 26-May-03 - But that spurious re-entrancy with the head-dtr's index has ; now been removed, so we can re-introduce this constraint on TENSE, crucial ; for the generator, since the heuristics will introduce lots of spurious ; auxiliaries if there is an event variable unconstrained for TENSE. ; DPF 21-may-05 - Add similar split to get comma distribution right for ; 'Kim quietly left' '*Kim quietly, left' 'Kim quietly, carefully left' ; DPF 21-dec-07 Changed NH-DTR..COMPS from <> to *olist* to allow e.g. ; "The most quickly hired cat arrives." ; DPF 31-mar-08 - Why the re-entrancy of XARG on the two dtrs? FIX basic_adj_h_int_phrase := adj_head_int_phrase & head_final_infl & [ HD-DTR.SYNSEM.LOCAL [ CAT.HEAD adverbee, CONT.HOOK.XARG #xarg ], NH-DTR.SYNSEM [ LOCAL [ CAT.HEAD.TAM [ TENSE no_tense, ASPECT no_aspect ], CONT.HOOK.XARG #xarg ], NONLOC.REL 0-dlist, PUNCT.RPUNCT rbc_or_hyphen_or_pair_or_no_punct ] ]. ;; DPF 2011-09-24 - Removed this split, since it's too hard to ensure that ;; the two rules don't overlap, e.g. for |quickly worst| where |worst| ;; needs to unify with MODIFD hasmod in order to undergo the partitive rule, ;; but needs to unify with notmod in order to undergo the v_mod rule. #| adj_h_int_phrase := basic_adj_h_int_phrase & [ HD-DTR.SYNSEM.MODIFD notmod_or_rmod ]. adj_adjh_int_phrase := basic_adj_h_int_phrase & [ HD-DTR.SYNSEM [ MODIFD lmod, LOCAL.CONT.HOOK.INDEX non_conj_event ] ]. |# adj_h_int_phrase := basic_adj_h_int_phrase. ; DPF 18-aug-07 - Added constructions for modifier PPs and adverbs which ; immediately follow a verb, preceding its complements, in a generalization ; of "heavy-NP shift". ; DPF 26-aug-07 - Restrict NH-DTR's ALTMIN to block lexical PPs like "on" ; Also restrict to single complement for now, to avoid unlikely insertion ; before double NP or obj-control. ; DPF 28-aug-07 - Note that currently we get an unwanted ambiguity for ; "kim might quietly hire Abrams." FIX? maybe by splitting into two rules, ; one for PPs and one for adverbs, where the latter exclude verbal comps. ; DPF 17-sept-07 - Restrict hd-dtr's complement to exclude robust-np-sg, ; to cut down on spurious ambiguity. ; DPF 08-apr-08 - Removed NH-DTR..MODIFD notmod to allow ; "we enter now the citadel" ; DPF 08-apr-08 - Re: 26-aug-07 - But this prevents application to ; passives like "associated with". So relax constraint, and also remove ; HD-DTR.SYNSEM abstr_lex_synsem. ; DPF 31-dec-08 - Made NORM no_rel to block measure-NPs, as in spurious ; parse for "Kim [hires 48] consultants" ; DPF 2010-10-31 - Let's try expanding this to include adjective heads, so ; we can get "higher on the hill than kim" v_mod_phrase := head_initial & binary_punct_phrase & head_valence_phrase & [ SYNSEM [ LOCAL [ CAT.VAL #val, CONJ cnil_or_lexconj ], LEX - ], HD-DTR [ INFLECTD +, SYNSEM [ LOCAL.CAT [ VAL #val & [ COMPS.FIRST canonical_synsem & [ --MIN nonpro_or_event_rel, LOCAL.CAT.VAL.COMPS *olist*, OPT - ] ] ], MODIFD notmod ] ], NH-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD p_or_adv & [ MINORS [ MIN independent_rel, ALTMIN norm_rel, NORM no_rel ], MOD < [ LOCAL [ CAT [ HEAD verb, VAL.SUBJ <[OPT -]>], CONT.HOOK.INDEX #ind ], MODIFD.RPERIPH na_or_+, --SIND #ind ] > ], VAL [ SPR *olist*, COMPS < > ], POSTHD + ] ], NONLOC non-local_none & [ SLASH.LIST < > ] ] ], C-CONT [ RELS , HCONS ] ]. ;; DPF 2012-08-01 - Generalized this to allow nominal heads as well, so we ;; get the intended analysis for e.g. |the attempt on Tuesday to arise| ;; DPF 2012-10-23 - Had MODIFD rmod on mother to block recursive application ;; of this rule (as in |you are deep within Berlin|), but this blocks ;; |In Paris, Kim is sometimes Abrams| (adjunct extraction after applic of ;; this rule), so instead, make mother [MODIFD notmod & [ RPERIPH + ] and ;; restrict the dtr to [RPERIPH na_or_-]. ;; v_mod_vg_phrase := v_mod_phrase & [ SYNSEM.MODIFD notmod & [ RPERIPH + ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD v_or_g_or_a_or_n, VAL.SUBJ *synlist* ], CONT.HOOK #hook ], MODIFD.RPERIPH na_or_- ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK #hook, GENRE nonformal ]. v_mod_int_phrase := v_mod_vg_phrase & head_compositional & [ NH-DTR.SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL intersective_mod ] >, CONT.HOOK.LTOP #ltop ], C-CONT.HOOK.LTOP #ltop ]. ;; DPF 29-mar-10 - Don't recall why HD-DTR..RPUNCT comma_or_pair_punct, ;; but it blocks |recommend only that he be hired|, so remove, and see ;; what happens. ;; v_mod_scop_phrase := v_mod_vg_phrase & [ NH-DTR.SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL scopal_mod ] >, CONT.HOOK #hook ], C-CONT.HOOK #hook ]. ;; DPF 29-jan-12 - Cannot remember why HD-DTR..HEAD was constrained to ;; n_or_a_or_det, but this blocks "arrived and on Tuesday arose", so remove ;; it and maybe see what it was doing for us. ;; conj_mod_phrase := v_mod_phrase & [ SYNSEM nonlex_synsem, HD-DTR.SYNSEM basic_lex_synsem & [ LOCAL [ CAT [ HEAD subst, VAL.SPR *olist* ], CONT.HOOK.LTOP #ltop, CONJ lex-conj ], PUNCT.RPUNCT rbc_or_pair_or_no_punct ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.LOCAL.CONT.HOOK.LTOP #ltop ]. ;; For "and on Tuesday arose" or "and later Kim" conj_mod_int_phrase := conj_mod_phrase & head_compositional & [ NH-DTR.SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL intersective_mod ] >, CONT.HOOK.LTOP #ltop ], C-CONT.HOOK.LTOP #ltop ]. conj_mod_scop_phrase := conj_mod_phrase & [ NH-DTR.SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL scopal_mod ] >, CONT.HOOK #hook ], C-CONT.HOOK #hook ]. ; For now, restrict adjunct extraction to posthead modifiers of VPs (and the ; special case of inverted auxiliary-headed Ss, which still have a non-empty ; but never realized SUBJ - see discussion of sai_synsem in lextypes.tdl). ; This will still produce two parses for "Tuesday Kim might dance", but the ; alternatives (e.g., blocking modification of all auxiliaries except the ; copula) seem even less attractive. Also block extraction of adjuncts out of ; subjunctive-verb-headed phrases. ; ERB (12-11-96) This is the exception; the reason I couldn't put the MSG ; stuff on head_mod_phrase. ; DPF (23-Aug-98) Given our splitting up of the head-modifier type into ; separate subtypes for intersective and scopal modification, we have to do ; the same for extracted adjuncts as well. ; DPF (09-Jan-99) But it is not clear that we ever need to extract scopal ; modifiers, since the ones that are post-head (maybe always adverbs) also seem ; to be available as modifiers of S, and not restricted to POSTHD +. So ; we'll try doing without the scopal variant. ; ; DPF 19-Oct-99 - We used to make the value of SLASH's MOD feature be the ; whole SYNSEM of the HEAD, but this interacted badly with coordination ; of two extracted_adj phrases: it resulted in the CONT features of the ; two conjoined phrases being identified, since coordination enforces ; across-the-board identity of SLASH. This resulted in circular RELS ; values, which are undesirable. So now we identify the values of the ; relevant LOCAL features in SLASH..MOD and in HD-DTR, avoiding false ; identity of the RELS values. Test case: "Kim arises and arises". ; DPF 2-Feb-01 - Eliminated HD-DTR..MOOD strict_sort since it blocked ; "On tuesday Kim arrived and would stay" ; DPF 30-May-01 - Identify MC of head-dtr and extracted adjunct, to avoid ; spurious ambiguity for "For whom does she work" ; DPF 15-Oct-01 - Replaced HD-DTR..HEAD..TENSE real_tense with MIN relation, ; since former blocked extraction of adjuncts from complements of e.g. modals, ; and the latter works as intended to block extraction from no_copula VPs. ; DPF 12-Apr-02 - Added HD-DTR..SUBJ..INDEX non_expl-ind to prevent adjunct ; extraction from there-copula sentences - spurious chart ambiguity. ; DPF 28-Nov-02 - HOOK comes only from C-CONT (linked here to SLASH values) ; DPF 14-Oct-03 - But can't prevent adjunct extraction from there-copula ; sentences: "In winter there is snow". So removed non_expl constraint. basic_extracted_adj_phrase := head_mod_phrase & head_only & phrasal & [ SYNSEM [ LOCAL [ CAT.VAL [ COMPS < >, SPCMPS #spcmps ], CONT.HOOK.INDEX.--TPC +, CONJ cnil ], NONLOC [ QUE #que, REL 0-dlist ], MODIFD rmod ], HD-DTR.SYNSEM [ LOCAL.CAT [ HEAD.MINORS.MIN norm_rel, VAL [ COMPS < >, SPCMPS #spcmps ] ], NONLOC [ QUE #que, REL 0-dlist ] ] ]. extracted_adj_int_phrase := basic_extracted_adj_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN #modmin, POSTHD #ph, MC #mc ] ], NONLOC.SLASH 1-dlist & [ LIST < mod-local & [ CAT [ POSTHD +, HEAD mobile & [ MOD < synsem & [ --MIN #modmin, LOCAL intersective_mod & [ CAT [ HEAD #head, VAL [ SUBJ #subj, COMPS #comps, SPEC #spec, SPCMPS #spcmps ], POSTHD #ph, HC-LEX #hclex, MC #mc ], CONT.HOOK [ LTOP #hand, INDEX #hind ], CONJ #conj, CTXT #ctxt ], NONLOC.SLASH 0-dlist, --SIND #hind ] >, TAM [ TENSE no_tense, ASPECT no_aspect ], MINORS.MIN independent_rel ], VAL [ COMPS *olist*, SPR *olist* ] ], CONT [ HOOK [ LTOP #hand, XARG #hind ] ], CONJ cnil ] > ] ], HD-DTR.SYNSEM canonical_synsem & [ LOCAL local_basic & [ CAT [ HEAD #head & v_or_a_or_p & [ TAM.MOOD ind_or_modal_subj, MOD < anti_synsem > ], VAL [ SUBJ #subj, COMPS #comps, SPEC #spec, SPCMPS #spcmps ], POSTHD #ph & +, HC-LEX #hclex, MC #mc ], CONT.HOOK [ LTOP #hand, INDEX #hind & individual, XARG #xarg ], CONJ #conj, CTXT #ctxt ], NONLOC.SLASH 0-dlist & [ LIST < > ], MODIFD notmod ], C-CONT [ HOOK [ LTOP #hand, INDEX #hind, XARG #xarg, --SLTOP #hand ], RELS , HCONS ] ]. ; DPF (1-May-99) Removed identity of SLASH..KEYREL.LBL and HD-DTR..KEYREL.LBL ; since ; this should be redundant for most cases, and is wrong for free relatives ; like "where Kim slept" since in this construction the MIN of the free-rel and ; the MIN of its sister's SLASH must be identified in order to allow "where Kim ; put the book" while blocking "where kim relied". But this identity means we ; can't have the LBL of that SLASH..MIN be the same as the LBL of the ; head of this extracted-adj phrase, because that would mean that the LBL of ; the ex-adj head's MIN ("slept" in "where she slept" would be wrongly ; identified with the LBL of the MIN for "where" (which is 'place_rel'). ; DPF 2-Oct-01 - Added to mother [SLASH..INDEX.SORT entity] to make this rule ; be complementary to the hd_xaj-tmp_c rule, which is restricted to SORT time. ; DPF 28-Apr-03 - The drawback of this (2-Oct-01) is that it blocks a ; combination of temporal and nontemporal modifiers, as in "why don't we hire ; kim now". ; DPF 13-mar-05 - Tried adding SPR *anti_list* to avoid spurious ambiguity for ; extracted adjuncts of adjective phrases. Also added POSTHD + to avoid ; spurious extraction from attributive adjectives. ; DPF 28-mar-05 - Added SUBJ *synlist* to distinguish extr_vp from extr_s ; (since MSG no_msg doesn't work for "where is Kim the king", since msg is ; added (too late) by hd_yesno_c rule). ; DPF 29-apr-07 - Added MOD *anti_list* to prevent [VP [VP [PP/X PP]]] where ; the PP undergoes this rule - while still allowing use of this rule for e.g. ; "Why is Kim in Berlin?". ; DPF 02-jul-09 - Added HD-DTR..MC na to VP variant, to exclude spurious ; extraction from filler-head dtr, such as "which arrive". ; DPF 2010-sept-08 - Added SLASH..MIN nondir_or_adv_rel to ; ensure that when the adjunct is extracted, it is not interpreted as ; directional. extracted_adj_int_vp_phrase := extracted_adj_int_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD [ AUX -, MOD *anti_list* ], VAL.SUBJ *synlist*, POSTHD + ], CONT [ HOOK.XARG individual ] ], NONLOC.SLASH.LIST.FIRST.CAT.HEAD [ MINORS.MIN nondir_or_adv_rel, MOD < [ LOCAL.CAT.VAL.SPR #spr ] > ] ], HD-DTR.SYNSEM.LOCAL.CAT [ MC na, VAL.SPR #spr ] ]. ;; DPF 20-oct-09 - Cannot recall why this rule is needed, so try excluding it ;; DPF 20-mar-10 - Well, grasshopper, it's what we use for "when is he Kim?" ;; where "is he Kim" blocks ordinary adjunction extraction. But let's try ;; to tame it by restricting hd-dtr to MC na, and to --MIN be_v_id_rel, then ;; generalize if we see need. ;; DPF 2011-05-01- Another needed variant of this rule is for extraction from ;; a conjoined S, where we can't do across-the-board extraction (since ;; semantics would force unification of the two S's events into the ARG1 of ;; the modifier). extracted_adj_int_s_phrase := extracted_adj_int_phrase & [ SYNSEM.NONLOC.SLASH.LIST.FIRST.CAT.HEAD.MOD < [ LOCAL.CAT.VAL.SPR #spr ] >, HD-DTR.SYNSEM.LOCAL.CAT [ HEAD verb & [ INV +, PRD -, MOD *anti_list*, MINORS [ MIN be_v_id_rel, ALTMIN nonpass_rel ] ], MC na, VAL [ SUBJ < anti_synsem_min >, SPR #spr ] ] ]. extracted_adj_coord_s_phrase := extracted_adj_int_phrase & [ SYNSEM.NONLOC.SLASH.LIST.FIRST.CAT.HEAD.MOD < [ LOCAL.CAT.VAL.SPR *anti_cons* ] >, HD-DTR.SYNSEM.LOCAL [ CAT [ HEAD verb & [ MOD *anti_list*, VFORM fin, MINORS.NORM no_rel ], VAL [ SUBJ < anti_synsem_min >, SPR < > ] ], CONT.HOOK.INDEX conj_event ] ]. ; DPF 14-Jul-01 - Identified MSG of mother with that of head-dtr as well ; as already specified SLASH..MOD..MSG, in order to prevent PPS for ; sentence-initial modification from modifying VPs. This is only okay as long ; as we continue to not extract scopal modifiers. ; DPF 25-Sep-01 - Removed SLASH unexpr_local since it blocks any filler - how ; was that supposed to work, anyway?? ; DPF 2-Oct-01 - Replaced [VFORM fin] on head-dtr with [VFORM fin_or_bse], to ; allow low attachment of "when can kim arrive" ; DPF 28-Apr-03 - Tried to restrict this to VP dtr, not S, to avoid spurious ; ambiguity for "the day I arrive". But then we get no parse for e.g. ; "when was Kim ready" since this rule has to apply to the S. So leave the ; spuriosity for now. ; DPF 14-Oct-03 - Changed SLASH value from NP to Nbar so this should only be ; used for relative clauses like "the day I arrived", not for "Yesterday Kim ; arrived", since the latter is handled by extraction of the unary PP. Now ; also restrict dtr to VP, since 28-Apr-03 objection now overcome. ; DPF 5-sept-05 - Added SLASH..SPR..ALTMIN no_rel to block analyses like for ; 'six cabins have been built' where 'have been' undergoes this extracted-T ; rule, and 'six' is day-of-month. ; DPF 18-aug-07 - Re 5-sept-05: But this also blocks "every time we arise", ; so change to the normal ALTMIN for quantifiers: dofw_or_poss_q_rel ; DPF 19-sept-07 - And further improve this ALTMIN to allow "the" as well. ; DPF 16-aug-10 - Removed SLASH..MOD < anti_synsem_min > since it prevents ; "the day we arrived". The idea was to only allow the np-adv "that" as in ; "the day that we arrived", but now we are blocking the unwanted NP "that" ; via SPR constraint. ;; DPF 2012-08-02 - No longer used #| extracted_adj_npadv_phrase := basic_extracted_adj_phrase & head_compositional & [ SYNSEM [ LOCAL [ CAT [ POSTHD #ph, MC #mc ] ], NONLOC.SLASH 1-dlist & ], CONT.HOOK.INDEX #ind & [ SORT location ] ] !> ], HD-DTR.SYNSEM canonical_synsem & [ LOCAL local_basic & [ CAT [ HEAD verb & [ VFORM fin_or_bse, TAM.MOOD ind_or_modal_subj, MOD *anti_list* ], VAL.SUBJ < synsem & [ LOCAL.CAT.HEAD nominal, --SIND non_expl-ind, NONLOC.SLASH 0-dlist ] >, POSTHD #ph, MC #mc ], CONT [ HOOK [ LTOP #hand, INDEX #event & [ SF prop-or-ques ] ] ] ], NONLOC.SLASH 0-dlist & [ LIST < > ], MODIFD notmod ], ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. |# ;; ;; Bare plural and mass NPs, distinguished by the INDEX feature [ DIV + ] ;; ; DPF 9-Sept-99 - Changed head-dtr's SPR to be canonical_synsem rather than ; non_canonical. Don't know why it was that way, but it was allowing e.g. the ; proper noun 'Tuesday' to undergo this rule. ; DPF 17-Mar-01 - Since the choice of bare-np rule is determined by the value ; of DIV on the dtr, this needs to be a strict sort; but a bare-np must ; be able to conjoin with another NP of a different DIV value, so we ; make these not be headed phrases (which identify AGR on mother and head-dtr). ; DPF 6-Apr-01 - Given that we now pump all optional nominal complements, this ; rule now requires the n-bar dtr to also be COMPS < >. ; DPF 22-May-01 - Instead of making mother nonpronominal_synsem (which ; incorrectly claims all bare NPs are [LEX +]), make mother's MIN nonpro_rel. ; Then make LEX value propagate from dtr to mother. ; DPF 25-Sep-01 - From 17-Mar: Having broken link for AGR of dtr and mother, ; DPF 20-Nov-01 - Moved identification of MODIFD down to the non-proper-name ; subtypes, in order to allow "My friend Mister Abrams" as an appositive. ; DPF 25-Nov-01 - Changed dtr's HEAD from noun to noun_or_nomger to allow e.g. ; "Processing of requests is important" ; DPF 19-Oct-02 - Moved ALTMIN to subtypes, to allow num-nps to differ. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 23-oct-03 - Added LPERIPH na_or_+ to dtr to enable blocking of bare-np ; for e.g. "miles an hour" as in "*Kim ran miles an hour". ; DPF 03-dec-03 - But this also blocks "I have time" - not true that the ; candidates for bare-np are same as those for np_adv_c rule. So undo this ; constraint. Anyway, above bad example is probably duu to measure-NP that ; should (somehow) be blocked for same reason as "*this string is foot long". ; DPF 14-dec-03 - Removed [ SLASH 0-dlist ] from dtr, since it prevented ; "who did you have pictures of" ; DPF 04-mar-06 - Removed reentrancy of LEX on dtr and mother - need to stamp ; LEX - on mother for hdn_bnp-num_c. So move down to norm_bare_np. ; DPF 31-mar-08 - Maybe don't want XARG constrained on daughter. FIX. ; DPF 21-may-09 - Changed mother's SYNSEM from synsem to ; nonlex_or_lex_phr_synsem so we can distinguish these constructions from ; lexical items. ; DPF 25-may-09 - Added propagation of INFLECTD from dtr to mother, in part ; to block "[Kim and many] gems" ; DPF 26-jun-09 - Re 04-mar-06: Try again to identify LEX on dtr and mother, ; to avoid |US$ 10 billion in revenues| as cmpnd. generic_bare_np_phrase := norm_unary_phrase & [ INFLECTD #infl, SYNSEM nonlex_or_lex_phr_synsem & [ LOCAL [ CAT [ HEAD #head, HC-LEX #hclex, VAL [ SUBJ < >, COMPS < >, SPR < synsem_min & [ --MIN just_only_deg_rel, LOCAL [ CAT.HEAD adv, CONT.HOOK.LTOP #splbl ], OPT + ] >, SPCMPS < > ], MC na, NEGPOL - ], AGR ref-ind & [ PNG #png ], CONJ #conj ], NONLOC #nonloc, LEX #lex, MODIFD.RPERIPH + ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD #head & noun_or_nomger, HC-LEX #hclex, VAL [ SUBJ *olist*, COMPS < >, SPR.FIRST [ LOCAL [ CAT.HEAD det, CONT.HOOK.LTOP #splbl ], NONLOC [ SLASH 0-dlist, REL 0-dlist, QUE 0-dlist ] ] ] ], AGR.PNG #png, CONJ #conj & cnil, CONT [ HOOK [ LTOP #nhand, INDEX #index ] ] ], LEX #lex, NONLOC #nonloc, PUNCT.LPUNCT pair_or_no_punct ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ INDEX #index, XARG #nhand ], RELS , HCONS ] ]. ; DPF 21-sept-04 - Changed ARGS..SPR canonical_synsem to unexpressed_reg ; in order to prevent bare-nps where the determiner is obligatory, as in ; 'those five chairs' to avoid spurious ambiguity with the determiner 'five' norm_bare_np_phrase := generic_bare_np_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.MIN nonpro_rel, VAL.SPEC < anti_synsem_min > ], LEX #lex ], ARGS < [ SYNSEM [ LOCAL.CAT.VAL.SPR.FIRST unexpressed_reg, LEX #lex ] ] > ]. ; DPF 19-Oct-02 - Changed SPR..MIN from udef_q_rel to abstr_def_or_udef_q_rel ; to also allow "afternoons" using (necessarily) the 'afternoon' with an ; optional PP-of and a usually obligatory definite determiner (to get the ; contrast between "on the afternoon of the fifth" but "in the afternoon" reg_bare_np_phrase := norm_bare_np_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN implicit_q_rel, VAL.SPR < synsem > ], AGR.DIV #div ], MODIFD #modif ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ AGR.DIV #div, CAT.VAL.SPR.FIRST synsem & [ --MIN abstr_def_or_udef_q_rel ]], MODIFD #modif ] ] >, C-CONT.RELS ]. ; DPF 19-mar-06 - Divided bare_np_phrase into two, one for nouns and ; another for nominal gerunds, so we can restrict the gerunds to phrasal ; ones, to reduce the unwanted ambiguity for eg 'Singing is fun'. ; DPF 23-may-07 - But this restriction is unfortunate in two ways: (1) it ; prevents e.g. "Hiring is fun" since the verbal gerund LR preserves the ; non-optionality of the verb's NP complement; (2) it prevents N-N compounds ; like "bell ringing is fun" where the N-N compound rule carefully excludes ; verbal gerunds as heads. So we remove this constraint and merge these ; two rules again. ;bare_np_phrase := reg_bare_np_phrase & ; [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD basic_noun ] > ]. ; ;bare_nomger_phrase := reg_bare_np_phrase & ; [ ARGS < [ SYNSEM nonlex_synsem & [ LOCAL.CAT.HEAD nomger ] ] > ]. bare_np_phrase := reg_bare_np_phrase & [ SYNSEM.LOCAL.AGR.DIV +, ARGS < [ SYNSEM.LOCAL.CAT [ HEAD noun_or_nomger, VAL.SPR [ FIRST.OPT -, REST *olist* ] ] ] > ]. ;; DPF 2012-11-14 - Added INDEX.DIV - to mother to prevent `group' nouns ;; (which are underspecified for AGR) from spuriously using this rule. ;; bare_np_prd_phrase := reg_bare_np_phrase & [ SYNSEM.LOCAL [ CAT.HEAD.PRD +, CONT.HOOK.INDEX.DIV -, AGR.DIV - ], ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD noun & [ CASE nom ], VAL.SPR.FIRST unexpressed_reg ], AGR [ PNG.PN 3p ] ] ] > ]. ; DPF 23-Nov-01 - Added SPR..MIN udef_q_rel to block hdn_np-num_c as input. ; DPF 2-Jun-02 - Added ARGS..MIN non_temp_nom_rel to exclude temporal nouns. ; DPF 31-aug-07 - Tried excluding prenominal adjectives. But this loses too ; much coverage (e.g. "replace original fuse"), so live with extra ambiguity. ; DPF 19-sept-07 - Removed constraint that dtr's INDEX be nonconj_ref-ind, ; since this blocked e.g. "chase cat and dog. ; DPF 19-sept-07 - Replaced dtr's MIN non_temp_nbar_rel with MIN nom_nbar_rel ; so we get measure nouns like "meter" to go through this rule. To avoid ; partitives (at least), the SPR..--MIN constraint should suffice. bare_np_sg_phrase_robust := norm_bare_np_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT.HEAD.MINORS.ALTMIN implicit_q_rel, AGR.DIV - ], MODIFD #modif ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ MINORS.MIN nom_nbar_rel, --BARE + ], VAL.SPR < [ --MIN udef_q_rel, OPT - ] > ], AGR.DIV - ], MODIFD #modif ] ] >, C-CONT.RELS , GENRE robust ]. ; DPF 8-Mar-01 - Removed [MODIFD notmod_or_lmod] from head-dtr, since it ; prevented "Tuesday at five" as an NP. ; DPF 17-Mar-01 - But then put it back, since we have to block e.g. ; "*I met Abrams you hired". So will look for another analysis of above. ; DPF 25-Mar-01 - Removed it again, in favor of constraint on SPR in full relcl ; rule which blocks it from feeding this rule. ; DPF 24-Jun-01 - Removed ARGS..DIV - since need to identify AGR of ; dtr and mother to get semantics right, and need mother to be DIV -*, ; and don't know what that constraint was blocking anyway. ; DPF 10-Apr-02 - Changed ALTMIN from basic_nom_rel to implicit_q_rel so ; these can appear in np-n compounds like "Kim Browne" ; DPF 27-Oct-02 - Re: 24-Jun-01 - Well, it blocked the spurious analysis of ; plural proper names like in "on Fridays", where the bare-plural rule already ; supplies the desired analysis. This is another case where our use of ; overspecification for coordination goes wrong, since we want the daughter to ; be really [DIV -] (alternatively, really [PN 3s]) but we want the ; mother to be able to coordinate with unlikes, and yet we need the AGR ; reentrancy (really the INDEX reentrancy) for the semantics. ; DPF 8-May-03 - Added identity of MODIFD on mother and daughter (like most ; of the other bare_np_phrase types, here to avoid "afternoon Monday" as a ; temporal modifier. ; DPF 5-Sep-03 - Added ARGS..INDEX nonconj_ref-ind to prevent conjoined n-bars ; like 'Kim and Sandy' to avoid spurious ambiguity. ; DPF 06-mar-06 - Propagate LEX from dtr to mother - needed to block '*the ; Paris to a city in Italy tour' ; DPF 31-jul-06 - Split into two, one for non-conjoined proper names, which ; may or may not be modified, and one for conjoined names, which must be ; modified (in order to avoid spurious ambiguity for e.g. "Kim and Pat arose.") ; DPF 02-nov-08 - Re 31-jul-06: Can't see when this rule would be needed, ; since should always be possible to pump the proper name conjuncts before ; coordinating. So comment out for now. ; DPF 30-nov-09 - Also constrain dtr's INDEX to be nonconj, to block e.g. ; "Kim and tree disappeared." proper_np_phrase := norm_bare_np_phrase & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT.HEAD.PRD #infl, AGR #agr & [ DIV - ] ], MODIFD #modif ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN abstr_named_np_rel, VAL.SPR < [ --MIN proper_q_rel, OPT - ] > ], CONT.HOOK.INDEX nonconj_ref-ind, AGR #agr ], MODIFD #modif ] ] >, C-CONT.RELS ]. ; DPF 22-May-02 - Split proper_np_phrase into two, one for non-numbers and ; one for numbers, so we can constrain the latter to be unmodified, in order ; to block "*Toshiba 2000 is here" but allow "I visited sunny Pittsburgh" ; DPF 30-May-02 - But this also blocked "order (number) fifty". So instead ; only require [MODIFD.LPERIPH -], since titles don't affect LPERIPH, but ; adjectives and n-n-compounds do. ; DPF 19-Oct-02 - Added ALTMIN never_unify_rel to prevent these guys from ; appearing in np_n_cmpnds. ; DPF 4-Feb-02 - Changed this never_unify_rel to number_q_rel to still keep ; them out of np_n_cmpnds, but allow them in measure phrases. ; DPF 25-May-03 - Since num-nouns now LPERIPH + again, remove constraint from ; ARGS, and see what has to be done to avoid overgeneration of "Toshiba 2000" ; DPF 31-jul-06 - Split into two, like for proper names: either non-conjoined ; or modified when conjoined. ; DPF 12-may-08 - Made mother be INFLECTD + rather than bool, to prevent ; these in NP-N compound "2 cats" (no record of why the strange 'bool' value). ; Note that cannot stamp these as LEX + to block that spurious compound, ; since these num-nps would not then be able to construct num-sequence phrases ; DPF 04-aug-08 - Re 12-may-08: This phrase is INFLECTD bool in order to ; get these phrases in NP-N compounds like "class 2 drugs". So identify the ; INFLECTD feature on mother and head-dtr, allowing us to still block ; compound "2 cats" because "2" is INFLECTD + while "number 2" is not. ; DPF 02-nov-08 - Re 31-jul-06: Can't see when this rule would be needed, ; since should always be possible to pump the number conjuncts before ; coordinating. So comment out for now. ; DPF 25-may-09 - Re 12-may-08 ff: Moved identity of INFLECTD up to parent ; type - see if there's trouble. ; DPF 30-mar-10 - Don't recall why dtr's SPR is canonical_synsem, but this ; makes it not possible in prescriptive mode to require that it be ; unexpressed, so move this constraint to constructions.tdl for now. But ; should understand it better - FIX. num_np_phrase := generic_bare_np_phrase & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN number_q_rel, VAL.SPEC < anti_synsem_min > ], AGR #agr & [ DIV - ] ], MODIFD #mod, PHON #phon ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN named_num_rel, VAL.SPR < [ --MIN number_q_rel, OPT - ] > ], AGR #agr ], MODIFD #mod, PHON #phon ] ] >, C-CONT.RELS ]. num_np_noconj := num_np_phrase & [ ARGS < [ SYNSEM.LOCAL.CONT.HOOK.INDEX nonconj_ref-ind ] > ]. ; For nominal phrases which already contain a quantifier but can still be ; modified intersectively, including partitives like "some in Paris", ; pronouns ("we in Berlin"), and nouns like "here" and "now". Since the ; LTOP of the dtr must be the label of the implicit nominal relation to ; allow for intersective modifiers, but the LTOP of the full NP must be ; unbound to allow for normal quantifier scoping, this rule makes the LTOP ; unbound and cancels the SPR list. ; DPF 25-may-09 - Added propagation of INFLECTD from dtr to mother, in part ; to block "[Kim and many] gems" bare_npq_phrase := norm_unary_phrase & [ INFLECTD #infl, SYNSEM synsem & [ LOCAL [ CAT [ HEAD #head, HC-LEX #hclex, VAL [ SUBJ < >, COMPS < >, SPR < synsem_min & [ --MIN just_only_deg_rel, LOCAL [ CAT.HEAD adv, CONT.HOOK.LTOP #ltop ], OPT + ] > ], MC na, NEGPOL - ], AGR ref-ind & [ PNG #png, DIV #div ], CONJ #conj ], NONLOC #nonloc, LEX #lex, MODIFD #modif & [ RPERIPH + ] ], ARGS < [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD #head & partn, HC-LEX #hclex, VAL [ SUBJ *olist*, COMPS < >, SPR < unexpressed & [ LOCAL.CONT.HOOK.LTOP #ltop, NONLOC.QUE 0-dlist, OPT - ], ... > ] ], AGR [ PNG #png, DIV #div ], CONJ #conj & cnil, CONT.HOOK [ INDEX #index, XARG #xarg ] ], NONLOC #nonloc, LEX #lex, MODIFD #modif, PUNCT.LPUNCT pair_or_no_punct ] ] >, C-CONT [ HOOK [ INDEX #index, XARG #xarg ], RELS , HCONS ] ]. ; For determinerless-PPs of three subtypes ; DPF 13-nov-05 - Try making these SPEC < >, so they won't combine with ; e.g. identity copula. ;; DPF 25-jun-10 - To avoid bare nouns as NP fragments, tried restricting them ;; to [CASE obliq] which is compatible with PPs, but not with np_frag rule. ;; But this fails for e.g. "take part" where CASE is acc. So find another ;; way to block as NP fragments. detlesspp_np_phrase := generic_bare_np_phrase & [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD noun_nonmob & [ MINORS [ MIN nonpro_rel, ALTMIN implicit_q_rel ] ], VAL.SPEC < > ], ARGS < [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD.MINORS.MIN bare_nom_rel, VAL.SPR < [ OPT - ] > ] ] >, C-CONT.RELS ]. ; 'at eye level' detlesspp_np_nmod_phrase := detlesspp_np_phrase & [ ARGS < [ SYNSEM lex_phr_synsem & [ LOCAL.CAT.HEAD.MINORS.MIN bare_n_nmod_rel, MODIFD.LPERIPH na ] ] > ]. ; 'at close range' detlesspp_np_jmod_phrase := detlesspp_np_phrase & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN bare_n_jmod_rel, MODIFD lmod & [ LPERIPH bool ] ] ] > ]. ; 'within range' (optional modifier not present) ; 'on top', 'of course' (no modifier allowed) detlesspp_np_nomod_phrase := detlesspp_np_phrase & [ ARGS < [ SYNSEM lex_or_nonlex_synsem & [ LOCAL.CAT.HEAD.MINORS.MIN bare_nom_rel, MODIFD notmod & [ LPERIPH + ] ] ] > ]. ; Verbal gerunds with no (possessive) specifier. ; DPF 12-May-00 Block extraction from gerund NPs. ; DPF 07-Jan-01 Allow "Me hiring Sandy impressed Kim" as well as "Hiring ; Sandy impressed Kim" by removing constraint that head-dtr be SPR < >, ; but then block spurious analysis for "My hiring Sandy impressed Kim" ; by requiring the head-dtr to be ALTMIN no_rel (the head-spr rule makes ; the mother's ALTMIN the quant_rel). Also, block spurious analysis for ; "me hiring Sandy impressed kim" (failing to undergo this rule and hence ; leaving an unbound variable for the gerund_rel), by making this rule's ; output be MSG no_msg, and (in lextypes.tdl and auxverbs.tdl) ; requiring that subjects (only ever of finite verbs) be MSG no_msg. ; This means sentential subjects will have to undergo a non-branching ; rule to make nominative NPs, but this is at least defensible, since we ; need to get the nominative case from somewhere, to prevent them from ; appearing as, say, objects of prepositions. ; DPF 19-Feb-01 - We're getting spurious ambiguity for "Kim prefers sleeping" ; where both the verbal gerund and the nominal gerund produce an NP. So let's ; try blocking the lexical verbal gerunds by making HD-DTR a phrase. ; DPF 23-Apr-01 - But while we are avoiding nominal gerunds of intransitives, ; we'll undo this block. ; DPF 30-May-01 - Removed head-dtr's non-empty SUBJ requirement, since we ; still need to supply a quantifier in the ACC subj constructions like ; "I resent you leaving early". ; DPF 22-May-02 - Made HD-DTR..COMPS < > rather than *olist*, to avoid ; spurious parse for e.g. "Abrams is interviewing" where hdn_optcmp_c applies. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 31-mar-08 - Maybe don't want XARG constrained on dtr. FIX. bare_vger_phrase := head_only & head_valence_phrase & phrasal & [ SYNSEM.LOCAL [ CAT [ VAL [ SUBJ #subj, SPR < >, COMPS < > ], MC na ] ], HD-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD gerund & [ MINORS.MIN gerund_rel ], VAL [ SUBJ #subj, SPR < unexpressed_reg >, COMPS < > ], MC na_or_- ], CONJ cnil, CONT.HOOK [ LTOP #hand, INDEX #index & [ DIV + ] ] ], NONLOC.QUE 0-dlist ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ INDEX #index, XARG #hand ], RELS , HCONS ] ]. ; 'Whether (or not) Kim slept is not clear to Sandy" ;; DPF 11-Apr-02 -- Why is this rule needed, again? It produces spurious ;; parses, as in "He thought about what she said." ;; DPF 28-Nov-02 - HOOK comes only from C-CONT ;; "it was [known to be true [that Abrams hired Browne]]". ;; DPF 06-May-04 - The above example would only get a free relative reading, ;; which is not the only one, as evidenced by "He thought about who she hired" ;; where there is no free-relative "who", and which we don't get without the ;; np_cp-wh rule. We make it CASE obliq to avoid spurious parses for verbal ;; complements as in "he knew who arrived" ;; DPF 24-aug-04 - Moved ARGS..MODIFD notmod_or_rmod up to basic type ;; to prevent both WH and non-WH S's with pre-modifiers from being NPs, ;; to exclude spurious analysis of ... ;; DPF 07-apr-08 - Re: 06-May-04 Changed to CASE nom_or_obliq so we can ;; still get these in subject position, as in "Who we hired surprised Kim." ;; DPF 08-apr-08 - Added NORM no_rel to prevent these as nonhds in appositives. ;; DPF 10-apr-08 - Added SUBJ < anti_synsem_min > to prevent as hd in ;; hdn-np_app-pr_c. ;; DPF 20-mar-10 - Tried changing dtr's SUBJ from <> to *anti_list* to allow ;; whether-CP phrases, to admit e.g. "about whether Kim won". But this ;; also wrongly admits non-WH topicalized clauses. So instead make "whether" ;; have an empty SUBJ, so it projects clauses like other WH-clauses. np_cp_wh_phrase := unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MOD < >, CASE nom_or_obliq, MINORS [ MIN nominalize_rel, ALTMIN udef_q_rel, NORM no_rel ] ], VAL [ SUBJ < anti_synsem_min >, SPR < >, COMPS < >, SPEC < anti_synsem_min > ], MC na ], AGR.PNG.PN 3s, CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ] ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ VFORM fin_or_inf, INV -, TAM.MOOD ind_or_modal_subj, MINORS.NORM norm_rel ], VAL [ SUBJ < >, COMPS < > ], MC - ], CONJ cnil, CONT.HOOK [ LTOP #chand, INDEX.SF ques ] ], NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], MODIFD notmod_or_rmod, LEX - ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #index & ref-ind & [ PNG.PN 3s, SORT basic-entity-or-event ], RELS , HCONS ] ]. ;; Non-WH CP subjects, which often alternate with expletive-it subject, where ;; the alternation could be analyzed as it-extraposition. Here we assume that ;; any predicate with an expletive-it subject and a CP complement also has ;; a subcat without the CP and with an ordinary NP subject. So we take an ;; ordinary finite VP and convert it via non-branching (syntactic) rule to a ;; VP that wants a non-WH CP subject and adjusts its semantic linking so it ;; takes the LTOP of that subject (rather than the INDEX) as its XARG. ;; ;; 'That Kim slept bothers sandy" ;; ;; DPF 22-apr-09 - Re-worked this analysis, so this rule now takes as its ;; dtr a VP/CP looking for an expletive-it subject, and simply discharges ;; the subject, producing an S/CP which is a suitable head for the normal ;; non-WH filler-head construction. One benefit is that we now also get ;; "That Kim won, we think should be obvious." ;; Another benefit is that we no longer overgenerate anomalous CP subjects ;; as in "That Kim won slept" ;; DPF 2012-10-20 - Added MODIFD lmod to mother to prevent spurious ambig ;; where a post-hd PP attaches to VP after this rule applies (as well as before) cp_subj_phrase := head_only & phrasal & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD #head, VAL [ SUBJ < anti_synsem >, SPR < >, SPEC < > ] ], AGR.PNG.PN 3s ], MODIFD lmod, NONLOC #nonloc ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & #head & [ VFORM fin, TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], VAL [ SUBJ < unexpressed_reg & [ LOCAL.CAT.HEAD noun, --SIND it-ind, OPT - ] >, COMPS < > ] ], AGR.PNG.PN #pn, CONJ cnil, CONT.HOOK #hook ], NONLOC #nonloc & [ SLASH ] ], CONT.HOOK.INDEX.SF prop-or-ques ] !>, REL 0-dlist ] ] ] >, C-CONT [ HOOK #hook, RELS , HCONS ] ]. ; DPF 13-may-09 - Restrict to infinitivals, as in 'To win is good.' ;; DPF 2012-10-20 - Added MODIFD lmod to prevent these VPs from undergoing ;; the extracted-adj rule and hadj_rule: spurious ambig. ;; DPF 2012-11-13 - Try constraining dtr to SLASH 0-dlist, to avoid a lot of ;; (unmotivated?) chart ambiguity. ;; cp_subj_inf_phrase := head_only & phrasal & [ SYNSEM [ LOCAL [ CAT [ VAL [ SUBJ < synsem & [ --MIN non_ellipt_rel, LOCAL [ CAT [ HEAD comp & [ VFORM inf, TAM.MOOD ind_or_modal_subj ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK [ LTOP #sltop, INDEX.SF prop-or-ques ] ], NONLOC.SLASH 0-dlist & [ LIST < > ], OPT - ] >, SPR #spr, COMPS < >, SPEC < > ], POSTHD #ph ], AGR.PNG.PN 3s, CONJ cnil ], NONLOC #nonloc, MODIFD lmod & [ LPERIPH +, RPERIPH + ] ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM fin, TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ], MOD *anti_cons* ], VAL [ SUBJ < unexpressed_reg & [ LOCAL.CAT.HEAD noun ] >, SPR #spr, COMPS < > ], POSTHD #ph ], AGR.PNG.PN #pn, CONJ cnil, CONT.HOOK #hook & [ XARG #index ] ], NONLOC #nonloc & [ REL 0-dlist, SLASH 0-dlist ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK #hook, RELS , HCONS ] ]. ;; ;; Noun-noun compounds ;; ; Make left member be [ COMPS < > ] to avoid spurious ambiguity since we have ; separate lexical entries to handle optional nominal complements. ; DPF (22-Oct-98) Can't do the above, since it's not true for most nouns, and ; also won't work for "two fifteen meeting" where the am_pm argument is not ; expressed, but can't be discharged by the optcomp rule. ; DPF (4-Mar-99) - Removed the gratuitous some_rel, which was wrong for ; proper name left members of N-N compounds, and also wrong for hour words like ; "a one o'clock meeting" since "one o'clock" already supplied a ; def_implicit_q_rel of its own. ; Added [ ALTMIN no_rel ] to non-head-dtr to block partitives, deverbal nouns, ; and other unwanted NPs with complex lexical semantics. ; DPF 09-Jan-00 - Also added [ ALTMIN no_rel ] to head-dtr, to block adj-nouns ; from compounds, as in "*Devito five" (ignoring for now "the Jackson five"). ; 23-Oct-00 - Dropped NONHD-DTR's [AGR 3sg] constraint in order to allow ; "auto and mortgage loans", as well as "systems analyst" - the constraint is ; not really AGR 3sg, but perhaps something like lexeme vs. inflected word, ; where the lexeme might be conjoined, or even lexically marked as if it were ; plural, but still not [INFLECTD +]. ; DPF 18-Aug-01 - Instead of that failed [AGR 3sg] constraint, made the non-hd ; be [INDEX 3sg], since conjoined nominals do not constrain the INDEX value. ; This lets us get 'auto and mortgage loans' while still blocking 'cats hairs' ; 23-Oct-00 - Changed NONHD-DTR's constraint, removing 'pronominal_synsem' ; and instead making the MIN be nonpro_rel, in order to allow conjoined ; lexical NPs such as "auto and mortgage loans", where the synsem of the phrase ; will not be a subtype of nonpronominal_synsem. ; 17-Nov-00 - Removed 0-dlist specification for head-dtr and mother for ; QUE and REL, since this blocked e.g. "Which state office did he seek" ; DPF 1-Mar-01 - Changed COMPS < > to < > on non-head, now that we are ; pumping nouns with complements. ; DPF 5-Apr-01 - Moved [LPERIPH -] from here to the noun-noun subtype, to ; continue to block "towel rusty rack" but allow "1998 annual report". ; DPF 12-mar-05 - Added MODIFD notmod to avoid spurious ambiguity of ; prenom adjective attachment. ; DPF 14-nov-05 - Added MODIFD notmod_or_lmod to nonhd-dtr as well. basic_n_n_cmpnd_phr := head_final & head_compositional & binary_punct_phrase & [ SYNSEM [ LOCAL [ CAT [ VAL #valence, MC #mc ] ], NONLOC [ SLASH #slash, QUE #que, REL #rel ] ], HD-DTR [ SYNSEM synsem & [ LOCAL [ CAT [ HEAD.MINORS.MIN nonpro_or_num_rel, VAL #valence, MC #mc ], CONJ cnil ], NONLOC [ SLASH #slash, QUE #que, REL #rel ], PUNCT [ LPUNCT lparen_or_dq_or_no_punct ] ] ], NH-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN nom_or_mnp_rel, VAL.COMPS < > ], CONT.HOOK.INDEX non_expl-ind ], NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], MODIFD notmod_or_lmod ] ] ]. ; DPF 13-nov-05 - Changed mother's LEX from + to bool, to allow these to ; conjoin with phrasal nbars. Not clear what effects ... ; DPF 28-aug-07 - Changed NH-DTR..RPUNCT to exclude comma, since we don't ; want "the IBM, product code". n_n_cmpnd_phr := basic_n_n_cmpnd_phr & [ INFLECTD #infl, SYNSEM lex_phr_synsem & [ LOCAL.CAT.HEAD.MOD *anti_list*, LEX bool, MODIFD notmod, PUNCT.PNCTPR #ppair ], HD-DTR [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD basic_nom_or_ttl & [ MINORS.MIN nonpro_rel ], VAL.SPR < synsem & [ OPT -, --MIN quant_rel ] > ], CONT.HOOK [ LTOP #ltop, INDEX #hind ] ], PUNCT.PNCTPR #ppair, MODIFD notmod_or_lmod ] ], NH-DTR.SYNSEM [ LOCAL.CONT.HOOK.INDEX #modind, PUNCT [ LPUNCT pair_or_no_punct ] ], ORTH [ FROM #from, TO #to ], C-CONT.RELS.LIST < prep_notense_relation & [ LBL #ltop, PRED compound_rel, ARG1 #hind, ARG2 #modind, CFROM #from, CTO #to ], ... > ]. ; DPF 22-Mar-01 - It seems we need LEX + on non-head-dtr to block "an exactly ; seven appointment", since we want "a seven o'clock appointment". But why did ; we move LEX + down from the n_n_cmpnd_phr in the first place? ; DPF 6-Apr-01 - Added LPERIPH na_or_- to head-dtr to block "Browne five ; dollars" while still allowing "1998 annual report". ; DPF 17-Apr-01 - Added LPERIPH na to mother to block NNN-cmpnd for "a reason ; Kim left" ; DPF 5-Sep-03 - Changed HD-DTR..ALTMIN no_rel to def_or_udef_q_rel ; since ALTMIN now inherits from head-dtr to mother, but we still want to ; block proper names, numbers, etc as head dtrs. ; DPF 5-Sep-03 - And changed NH-DTR..ALTMIN to proper_q_rel. ; DPF 25-Nov-03 - Changed NHD's LEX from + to na_or_+ to allow conjoined ; proper names while still blocking "an exactly seven appointment" ; DPF 10-dec-03 - Since numerals are now LPERIPH na (to block spurious parse ; for "two hundred three chairs" while allowing "two hundred big chairs"), ; make head-dtr be LPERIPH bool, to still block "Browne five chairs" but get ; "IBM annual report" ; Also added PRD - to NHD to prevent measure phrases here in currency "usd 10" ; DPF 10-dec-03 - Tried adding HD-DTR..ALTMIN def_or_udef_q_rel to prevent ; proper names, to avoid spurious analysis for e.g. "Kim Abrams". But this ; conflicts with the no_rel constraint on NHD for N-N-cmpnd rule, blocking one ; analysis for "CSLI department manager". So try restricting H-DTR..MIN to ; nom_nbar_rel. ; DPF 19-mar-06 - Re DPF 17-Apr-01: But this also blocks "university IBM chair" ; so we remove LPERIPH bool on mother, and see if we can live with the ambig. ; DPF 09-aug-07 - Re 10-dec-03: If we exclude integers here, we can't get e.g. ; "the 101 freeway" or "a number 2 pencil". But simply allowing any integer ; before any noun to produce a compound is too expensive in increased (usually ; spurious) ambiguity. Note for further study on RESTRICTED AMBIGUITY. For ; now, assume we'll add lexical proper names for e.g. highway names, and to ; block "6 cats" here, we make number_q_rel not be a subtype of ; impl_or_proper_q_rel. ; DPF 07-sep-07 - Relaxed HD-DTR..MIN from nom_nbar_rel to nbar_or_nger_rel ; to re-allow nominal gerunds as heads - we weren't getting e.g. "IBM hiring". ; DPF 12-may-08 - Re 09-aug-07: But we want "class 2 drugs" even though not ; "2 drugs" here. So restore number_q_rel as subtype of impl_or_proper_q_rel, ; and make hdn_bnp-num_c rule stamp [LEX -] on mother, while NP-title rule does not. ; DPF 25-may-09 - Changed HD-DTR..LPERIPH from bool to - in order to block ; "Kim [other gems]" ; Also constrain NH-DTR..SPR..HEAD to a_or_adv in order allow both ; "Chiang cat" and "hundred-mile road" but block spurious ambig for ; "Chiang cat" before "Chiang" discharges det specifier. ;; DPF 2012-08-25 - Re 25-may-09: But that constraint no longer works, and ;; sadly it blocks |the 2012 third quarter|. So change back to [LPERIPH bool]. basic_np_n_cmpnd_phr := n_n_cmpnd_phr & [ HD-DTR.SYNSEM abstr_lex_synsem & [ LEX +, LOCAL.CAT.HEAD.MINORS.MIN nbar_or_nger_rel, MODIFD.LPERIPH bool ], NH-DTR [ INFLECTD -, SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS [ MIN named_or_meas_rel, ALTMIN impl_or_proper_q_rel, NORM norm_rel ], PRD - ], VAL [ SUBJ < >, SPR.FIRST [ LOCAL.CAT.HEAD a_or_adv, OPT + ] ] ] ], LEX +, MODIFD.LPERIPH + ] ], C-CONT [ RELS , HCONS ] ]. np_n_cmpnd_phr := basic_np_n_cmpnd_phr & [ NH-DTR.SYNSEM.PUNCT.RPUNCT hyphen_or_pair_or_no_punct ]. ;; DPF 2012-08-25 - Admits |the Cupertino, Calif., company| ;; np_n_cmpnd_pr_phr := basic_np_n_cmpnd_phr & [ NH-DTR.SYNSEM.PUNCT [ PNCTPR ppair, RPUNCT comma_punct ] ]. ; For "Jim Smith" ; DPF 10-Apr-02 - Changed HD-DTR..MIN from named_np_rel to abstr_named_np_rel ; to allow number names, as in "Toshiba 3000" of "Toshiba 3000 laptop". Also ; removed LEX + from HD-DTR for same reason. ; DPF 14-feb-04 - Removed MODIFD lmod since want these in appositive ; constructions. ; DPF 17-oct-07 - Changed NH-DTR..MIN from reg_nom_rel to reg_or_temp_nom_rel ; in order to also allow temporal nouns, as in "day 6" ; DPF 31-mar-08 - Once we get rid of quantifiers for proper names and numbers, ; FIX XARG on hd-dtr. ; DPF 10-may-08 - Pushed identity of AGR.PNG.PN on two dtrs down to np_title, ; to allow "[Kim and John] Abrams". ; DPF 28-may-08 - But it's more complicated than this, since "Kim and John ; Browne" has to be plural: "Kim and John Browne arrive" - hard to do if the ; head is "Browne" which is inflected as singular. Give this more thought, ; but in the meantime restore the AGR identity. ; DPF 26-jun-09 - Re 10-apr-02: But we now admit "Toshiba 3000" with a ; separate rule, and we want to block "Kim Browne who dances" as compound, ; so restore HD.DTR..LEX + on np_name_cmpnd_phr ; DPF 28-jun-09 - To avoid spurious analysis for e.g. |Abrams (2009)|, ; constrain hd-dtr's LPUNCT to dq_or_no_punct. ; DPF 23-mar-11 - Constrain NH-DTR to be unmodified, to avoid spurious ; ambiguity for |young Kim Abrams| ;; DPF 2011-aug-05 - Changed HD-DTR..MODIFD from notmod_or_rmod to notmod, ;; to avoid spurious analysis of |offer one of the ski tracks| ;; DPF 2012-mar-12 - Removed NH-DTR..SPR..HEAD det since we want to allow ;; both |Kim Browne| and |Kim and Pat Browne|, where our NP coord is already ;; constrained to have undergone the proper_np_rule. ;; DPF 2012-10-28 - Re 23-mar-11: But this must be pushed down to subtypes, ;; since we do want |federal judge Kim Abrams| with title construction. basic_np_name_cmpnd_phr := basic_n_n_cmpnd_phr & [ SYNSEM lex_phr_synsem & [ LOCAL.CAT.HEAD.MOD < > ], HD-DTR.SYNSEM [ LOCAL [ CAT.HEAD noun, CONT.HOOK.INDEX #ind ], NONLOC non-local_none, PUNCT.LPUNCT dq_or_no_punct, MODIFD notmod ], NH-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS.MIN reg_or_temp_nom_rel ], VAL.SPR < [ NONLOC non-local_none ] > ], CONT.HOOK.INDEX #nhind ], MODIFD.LPERIPH +, LEX + ] ], ORTH [ FROM #from, TO #to ], C-CONT [ RELS.LIST < prep_notense_relation & [ ARG1 #ind, ARG2 #nhind, CFROM #from, CTO #to ], ... > ] ]. norm_np_name_cmpnd_phr := basic_np_name_cmpnd_phr & [ INFLECTD #infl, SYNSEM.MODIFD.LPERIPH #modlp, HD-DTR [ INFLECTD #infl, SYNSEM [ LOCAL.CONT.HOOK.XARG #nhand, MODIFD.LPERIPH #modlp ] ], C-CONT.RELS.LIST.FIRST.LBL #nhand ]. ;; DPF 2012-mar-12 - Removed surprising constraint on NH-DTR of AGR.PNG.PN 3s, ;; since we want to allow |[Kim and Pat] Browne|. np_name_cmpnd_phr := norm_np_name_cmpnd_phr & [ SYNSEM [ PUNCT.PNCTPR #ppair, MODIFD notmod ], HD-DTR.SYNSEM [ MODIFD.LPERIPH +, LOCAL [ CAT [ HEAD.MINORS.MIN named_np_or_num_rel, VAL.SPR < [ OPT - ] > ], CONT.HOOK.LTOP #hdltop ], PUNCT.PNCTPR #ppair, LEX + ], NH-DTR.SYNSEM [ LOCAL.CAT [ HEAD.MINORS [ MIN named_rel, NORM norm_rel ], VAL.SPR.FIRST.LOCAL.CAT.HEAD adv ], MODIFD notmod, PUNCT [ LPUNCT dq_or_sq_or_no_punct, RPUNCT quote_or_hyphen_or_clause_or_no_punct ] ], C-CONT [ RELS , HCONS ] ]. ; DPF 24-apr-09 - Added NORM no_rel to nh-dtr, to block eg. 'single crystal' ; DPF 24-may-09 - But this also blocks ordinary titles like |Dr.| or |Mr.|, ; and we still want to prevent these in ordinary compounds, so we'll live ; with 'single crystal', and return to NORM norm_rel, so we can still block ; 'hire Browne' ; DPF 04-sept-09 - Can't remember why HD-DTR..MIN was named_or_meas_rel ; but don't want e.g. "train next year", so change MIN back to named_rel ; DPF 2010-08-22 - Prevent title with Det-N proper NP, to block e.g. ; *|Mr. that Browne| ; DPF 2010-09-20 - Re 04-sept-09: But named_rel blocks "year 1997", so ; generalize to abstr_named_np_rel, still excluding numbers as in "number ten" ; which are admitted by np_num_cmpnd_phr. ;; DPF 2012-06-14 - Added NH-DTR..SPR..OPT - to exclude spurious analysis for ;; e.g. |height around Paris|, even if |around Paris| were allowed as a hd dtr ;; admitted by hd-spr rule. Also made HD-DTR..SPR be non-empty but [OPT +] ;; to block even the nbar-hd analysis of |height around Paris| when the hd-dtr ;; has a degree specifier. ; basic_np_title_cmpnd_phr := norm_np_name_cmpnd_phr & [ SYNSEM [ PUNCT.PNCTPR #ppair, MODIFD hasmod ], HD-DTR.SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN abstr_named_np_rel, AGR.PNG.PN #pn ], PUNCT.PNCTPR #ppair, MODIFD.LPERIPH + ], NH-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS [ MIN gen_nom_nbar_rel, NORM norm_rel ], VAL.SPR < unexpressed & [ OPT - ] > ], CONT.HOOK [ LTOP #nhltop, INDEX #nhind ], AGR.PNG.PN #pn ], MODIFD notmod_or_lmod, PUNCT [ LPUNCT dq_or_sq_or_no_punct, RPUNCT quote_or_hyphen_or_no_punct ] ], ORTH [ FROM #from2, TO #to2 ] ], C-CONT [ RELS , HCONS ] ]. np_title_cmpnd_phr := basic_np_title_cmpnd_phr & [ HD-DTR.SYNSEM.LOCAL [ CAT.VAL.SPR < [ OPT - ] >, CONT.HOOK.LTOP #lbl ], C-CONT.RELS.LIST.FIRST.LBL #lbl ]. ;; DPF 2012-10-01 - Special case for plural NPs as in |Mssrs. Abrams and Browne| ;; needed because we exclude nbar-coord of proper names (to avoid spurious ;; ambiguity), and yet we want ordinary title-noun constructions to have nbar ;; heads, in order to allow e.g. |your Mr. Browne| ;; np_title_cmpnd_pl_phr := basic_np_title_cmpnd_phr & [ HD-DTR.SYNSEM.LOCAL [ CAT.VAL.SPR *olist*, AGR.PNG.PN 3p, CONT.HOOK.XARG #lbl ], NH-DTR.SYNSEM.LOCAL.AGR.PNG.PN 3p, C-CONT.RELS.LIST.FIRST.LBL #lbl ]. ; DPF 04-nov-07 - This rule is distinct from the above so we can still avoid ; spurious parse for "Browne five chairs". ; DPF 04-aug-08 - Also, this rule does not identify INFLECTD on mother and ; head dtr, so we can admit "the class 2 drugs" (where non-hd of compound ; headed by "drugs" unifies with INFLECTD - given this rule), but block ; n-n-compound for "2 drugs" in "the 2 drugs" because the num-noun "2" is ; INFLECTD +. ; DPF 02-jul-09 - Restrict NH-DTR..MIN to non_temp_nom_rel, to avoid spurious ; analysis for e.g. June 2000. ; DPF 2010-sep-26 - Changed HD-DTR..SPR *olist* to [OPT -] in order to ; admit "My Nokia 500" while still avoiding spurious ambiguity. ;; DPF 2012-04-09 - Re 02-jul-09: But this is too strict, since it also blocks ;; |day one| or |week ten|. And in principle, we should be able to get both ;; |Indy 500| and |June 500|, where the latter is the 500 race run in June. ;; So relax this constraint to MIN gen_nom_nbar_rel, and live with the ;; ambiguity. ;; DPF 2012-11-14 - Re 2012-04-09: But gen_nom_nbar_rel excludes proper names, ;; so that can't be right. Let's try reg_or_temp_nom_rel. ;; DPF 2013-02-12 - Constrained HD-DTR's SPR to be HEAD det, to exclude ;; spurious analysis for |text to speech| where `to' wants a noun specifier. ;; np_num_cmpnd_phr := basic_np_name_cmpnd_phr & [ SYNSEM [ PUNCT.PNCTPR #ppair, MODIFD notmod ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN named_num_or_seq_rel, VAL [ SPR.FIRST [ OPT -, LOCAL.CAT.HEAD det ], COMPS < > ] ], CONT.HOOK.LTOP #hdhand, AGR.PNG.PN #pn ], PUNCT.PNCTPR #ppair ], NH-DTR [ SYNSEM [ LOCAL [ AGR.PNG.PN #pn, CAT [ HEAD.MINORS [ MIN reg_or_temp_nom_rel, NORM norm_rel ], VAL.SPR.FIRST.LOCAL.CAT.HEAD det ], CONT.HOOK [ LTOP #nhltop, INDEX #nhind & [ IND + ] ] ], MODIFD notmod, PUNCT [ LPUNCT dq_or_sq_or_no_punct, RPUNCT quote_or_hyphen_or_no_punct ] ], ORTH [ FROM #from2, TO #to2 ] ], C-CONT [ RELS , HCONS ] ]. np_city_state_phr := norm_np_name_cmpnd_phr & [ SYNSEM.MODIFD notmod, HD-DTR.SYNSEM [ MODIFD notmod & [ LPERIPH + ], LOCAL [ CAT [ HEAD.MINORS.MIN named_np_or_num_rel, VAL.SPR < [ OPT - ] > ], CONT.HOOK.LTOP #hdltop ] ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS [ MIN named_city_rel, NORM norm_rel ], VAL.SPR.FIRST.LOCAL.CAT.HEAD adv ], AGR.PNG.PN 3s ], MODIFD notmod, PUNCT [ LPUNCT no_punct, RPUNCT comma_punct ] ], C-CONT [ RELS , HCONS ] ]. ; DPF 24-Sept-01 - Made LPERIPH of mother be same as LPERIPH of non-hd, to ; block e.g. "*The table important consultant chair arrives". ; DPF 2-Jul-02 - Go back to making NH-DTR..ALTMIN be no_rel to block ; spurious compound analysis for v-gerund for "hiring Sandy", and let's see ; why we wanted to remove it in the first place. ; DPF 9-Oct-02 - Removed [OPT -] from NH-DTR..VAL.SPR, since it prevented ; compounds like "three pm meeting", and it's not clear what it was needed for. ; DPF 08-May-03 - Identified MODIFD of mother and non-hd-dtr (see 24-Sept-01) ; to preserve notmod or lmod status of the left member (not just the PERIPH ; value). ; DPF 05-Sep-03 - Replaced NH-DTR..ALTMIN no_rel with ; def_or_udef_q_rel, since no_rel not needed to block verbal gerunds ; anymore, but still want to prevent proper names, while also getting second ; parse for "CSLI department manager". ; DPF 10-dec-03 - But this doesn't block proper names, since their ALTMIN ; only gets specialized to proper_q_rel when made an NP. So go back to no_rel. ; DPF 10-dec-03 - Made LPERIPH of NHD be bool to exclude possibly spurious ; analysis for "the ten foot chair". But this would make the rule not ; right-recursive, preventing the less likely analysis of "the tobacco garden ; dog". So drop constraint on NHD..LPERIPH, and live with the ambiguity. ; DPF 14-dec-03 - Wonder about motivation for 08-May-03 change, since this ; now prevents Adj-N-N from being modified by a PP, as in "big league baseball ; in Pittsburgh". FIX. ; DPF 29-aug-04 - Re: 08-May-03, but this blocks PP-modification of compounds ; where the non-head happens to be modified, as in "tenth century church in ; Paris". So return to only identifying the LPERIPH values (see 24-Sept-01), ; and insist that compounds are still notmod ; DPF 22-sept-04 - Changed NH-DTR..SPR *unexpcons* to just *cons* since we ; want e.g. 'nineteenth century farmhouse' where numadj+noun now requires ; the SPR to be expressed to avoid spurious ambiguity for 'five chairs'. ; DPF 09-may-05 - Since we want to constrain appositives to treat indefinites ; separately, we need ALTMIN for nouns to be contentful, reflecting their ; specifier's MIN. But we still want to exclude proper names (and verbal ; gerunds?), so drop ALTMIN no_rel and instead use MIN nom_nbar_rel. ; DPF 05-oct-05 - Tried adding NORM no_rel to HD-DTR as well, to ; prevent non-compounding nouns from being heads as well as non-heads, as in ; "*the book next" analogous to blocking the unwanted reading for "next book". ; But this alas also blocks det-less noun compounds like 'sea level, where ; we don't want 'level' as left member, but do as head. So instead make ; type for nouns like 'next' which can't be heads or non-heads. ; DPF 21-jun-07 - Try restricting HD-DTR..MIN to nbar_or_nger_rel, to ; prevent verbal gerunds as heads in compounds, e.g. to avoid spurious parse ; for "[story involving] cats" ; DPF 16-sept-08 - Added HD.DTR..HEAD noun_or_nomger to block spurious ; analysis for |rule-based|. ; DPF 05-apr-09 - But this also blocks |pea-sized| which we want. So have to ; live with extra analysis for |rule-based| ; DPF 02-jun-10 - Make NORM quantity_or_no_rel instead of no_rel, to allow ; for measure nouns. This no longer gives rise to ambiguity for e.g. ; |fifty meter ropes| which also had MNP combining with ; head noun via np-hdn_cpd_c rule, because now MNP would have to undergo ; bare-np rule to make NP for compound, but INFLECTD blocks this for bare-nps. basic_noun_n_cmpnd_phr := n_n_cmpnd_phr & [ SYNSEM.MODIFD [ LPERIPH #lperiph, RPERIPH #rperiph ], HD-DTR.SYNSEM abstr_lex_synsem & [ LOCAL.CAT.HEAD noun_or_nomger_or_nadj & [ MINORS.MIN nbar_or_nger_rel ], MODIFD.RPERIPH #rperiph, LEX + ], NH-DTR [ INFLECTD na_or_-, SYNSEM [ LOCAL [ CAT [ HEAD noun_or_nomger & [ PRD -, MINORS [ MIN nbar_or_nger_rel, NORM quantity_or_no_rel ] ], VAL.SPR.FIRST.NONLOC non-local_none ], CONT.HOOK [ LTOP #nltop, INDEX #nind ] ], LEX +, MODIFD.LPERIPH #lperiph, PUNCT.RPUNCT hyphen_or_pair_or_no_punct ], ORTH [ FROM #from, TO #to ] ], C-CONT [ RELS , HCONS ] ]. ;; Ordinary compound nouns do not allow interleaved adjectives ;; DPF 20-apr-09 - Block left paren on head dtr ;; noun_n_cmpnd_phr := basic_noun_n_cmpnd_phr & [ HD-DTR.SYNSEM [ MODIFD notmod & [ LPERIPH na ], PUNCT.LPUNCT dq_or_no_punct ] ]. ; But for more robust parsing, we'll let them in noun_adjn_cmpnd_phr := basic_noun_n_cmpnd_phr & [ HD-DTR.SYNSEM.MODIFD lmod & [ LPERIPH - ], NH-DTR.SYNSEM abstr_lex_synsem & [ PUNCT.RPUNCT no_punct ], GENRE nonformal ]. ; for "Bygdin mountain lodge" noun_title_cmpnd_phr := basic_n_n_cmpnd_phr & [ INFLECTD #infl, SYNSEM abstr_lex_synsem & [ LOCAL.CAT.HEAD.MOD #mod, MODIFD notmod, PUNCT.PNCTPR #ppair ], HD-DTR [ INFLECTD #infl, SYNSEM abstr_lex_synsem & [ LOCAL [ CAT [ HEAD ttl & [ MOD #mod & < synsem & [ LOCAL.CAT nbar_cat_min ] > ] ], CONT.HOOK [ LTOP #ltop, INDEX #hind, XARG #ctop ] ], PUNCT.PNCTPR #ppair, LEX + ] ], NH-DTR [ INFLECTD +, SYNSEM abstr_lex_synsem & [ LOCAL [ CAT [ HEAD noun_or_nomger & [ PRD -, MINORS.NORM no_rel ], VAL.SPR *cons* & < [ OPT -, LOCAL.CAT.HEAD det, NONLOC non-local_none ] > ], CONT.HOOK [ LTOP #nltop, INDEX #nind & [ PNG.PN 3s ] ] ], PUNCT [ LPUNCT pair_or_no_punct, RPUNCT hyphen_or_pair_or_no_punct ], LEX + ], ORTH [ FROM #from2, TO #to2 ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ]. ; n-adj phrases: "wide-eyed" "pea-sized", "sky blue" ; DPF 30-oct-06 - Stopped passing up of ALTMIN from dtr to mother, since ; we want to coordinate "large and medium-sized" where "large" says ALTMIN ; is norm_rel. Instead, stamp norm_rel on mother's ALTMIN. ; DPF 05-apr-09 - FIX: We currently can't parse "inch-sized" since we don't ; want measure nouns as nonheads in noun-noun compounds ("*inch string" vs. ; "three-inch string"), yet we normally build "pea-sized" first as an N-N ; compound which then undergoes this rule. ;; DPF 2012-05-22 - Added DTR..PRD - to prevent directional nouns like west_n1 ;; from undergoing this rule. ;; DPF 2012-09-10 - Constrained dtr's SPR to be synsem, to avoid spurious ;; analysis of |only one| as in |they arose on only one exchange|. ;; DPF 2012-10-01 - Changed MODIFD lmod to notmod, in order to allow post-modif ;; as in |Kim was tight-lipped about the plan|, and to allow extraction in ;; copula constructions, as in |yesterday, Kim was tight-lipped|. ;; n-adj_phrase := basic_unary_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD adj & [ MOD < synsem_min & [ --MIN nonpro_rel, LOCAL intersective_mod & [ CAT [ HEAD.POSS -, VAL [ SUBJ < >, SPR < synsem & [ --MIN quant_or_deg_rel ] >, COMPS < > ], MC na ], CONJ cnil ], --SIND #modind & non_expl-ind ] >, MINORS [ MIN norm_adj_rel, ALTMIN norm_rel, NORM #norm ] ], VAL [ SUBJ < >, SPR < synsem_min & [ --MIN more_or_very_deg_rel, LOCAL [ CAT [ VAL [ SPR *olist*, SPEC < [ LOCAL.CAT.HS-LEX #hslex ]>], MC na ], CONT.HOOK [ LTOP #lbl, XARG #arg0 ] ], NONLOC.SLASH 0-dlist, OPT + ] >, COMPS < >, SPEC < > ], HS-LEX #hslex ], CONJ cnil, CTXT #ctxt ], NONLOC #nonloc, PUNCT #punct, LEX +, MODIFD notmod & [ LPERIPH bool ] ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD noun_adj & [ MOD < >, MINORS.NORM #norm, PRD - ], VAL [ SPR < synsem & [ LOCAL.CAT.HEAD det, NONLOC.SLASH 0-dlist ] >, COMPS < > ] ], CONT.HOOK [ LTOP #nltop, INDEX #nind ], CONJ cnil, CTXT #ctxt ], NONLOC #nonloc, MODIFD notmod_or_lmod, LEX +, PUNCT #punct ], ORTH [ LB #lb, RB #rb ] ] >, ORTH [ FROM #from, TO #to, LB #lb, RB #rb ], C-CONT [ HOOK [ LTOP #lbl, INDEX #arg0, XARG #modind ], RELS , HCONS ], INFLECTD + ]. ; N-Particple-N phrases: "snow covered mountain, life threatening illness" ; "risk-averse, age-appropriate, PC-compatible" ; DPF 7-feb-08 - Preserve CONJ value from right dtr to mother ; Also, removed POSTHD - to allow e.g.'The mountains are snow-covered' ; So in order to still block "Abrams-put" ; DPF 05-apr-09 - Considered removing first dtr's NORM no_rel since we want ; to allow e.g. 'inch-wide', but this would also allow "being interviewed" ; as compound, so let's not, and FIX some other way. ; DPF 25-may-09 - Added LPERIPH - to second dtr, to block "[Kim other] cats" ; DPF 18-jun-09 - Re 25-may-09: But this also blocks "cat-only garden", so ; push down to trans-adj variant. ; And Re 05-apr-09: Now treating "being/beings" as already inflected, so ; they cannot participate as non-hds in compounds. So now remove first dtr's ; NORM no_rel, so we get "inch-wide", and also "human-readable". ; Also made first dtr MIN reg_nom_rel rather than nom_rel to block detless NPs ; like "being happy" ; DPF 25-jun-09 - Re 18-jun-09 (last): But want |head-driven| so change MIN ; from reg-nom-rel to parent type reg_or_temp_nom_rel. ; DPF 18-jan-10 - Block verb-particle verbs as right dtr, to avoid spurious ; ambiguity in e.g. "stock-picking tips" ; DPF 15-mar-10 - Re 18-jan-10: But this unfortunately also blocks adjectives ; which select for empty-prep PP, as in "context-sensitive" ; DPF 2011-02-03 - Changed first dtr from basic_lex_synsem to abstr_lex_synsem ; to also admit e.g. |T-cell-specific| where first dtr is NP-N cmpnd ;; DPF 2011-09-24 - Constrained right dtr's SPR.--MIN value to exclude ;; comparative adjectives: |*land-richer people prospered| ;; DPF 2012-09-26 - Removed AGR..PN 3s from first dtr, so we can get ;; (uninflected) plurals as in |earnings-related increase|. ;; basic_n_v-or-adj_cmpnd_phr := binary_punct_phrase & [ INFLECTD +, SYNSEM adj_synsem_constr & [ LOCAL [ CAT.VAL.COMPS < >, CONT.HOOK #hook, CONJ #conj ], NONLOC #nonloc, LEX +, MODIFD notmod, PUNCT.PNCTPR #ppair ], ARGS < [ INFLECTD -, SYNSEM abstr_lex_synsem & [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS.MIN reg_or_temp_nom_rel], VAL [ SPR < synsem & [ OPT - ] >, COMPS < > ] ], CONT.HOOK [ LTOP #nltop, INDEX non_expl-ind & #nind ], CONJ cnil ], NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], MODIFD notmod & [ RPERIPH - ], PUNCT.RPUNCT hyphen_sgl_or_no_punct ], ORTH [ FROM #from2, TO #to2 ] ], [ INFLECTD +, SYNSEM basic_lex_synsem & [ LOCAL [ CAT [ HEAD v_or_a & [ PRD +, MINORS.NORM no_rel ], VAL [ SPR *olist* & [ FIRST.--MIN more_deg_rel ] ] ], CONT.HOOK #hook & [ LTOP #ltop, INDEX #ind ], CONJ cnil & #conj ], NONLOC #nonloc & non-local_none, LEX +, MODIFD notmod, PUNCT [ LPUNCT dq_or_no_punct, PNCTPR #ppair ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; DPF 24-may-09 - Note that this formulation excludes passivized ; verb-particle verbs only because the by-PP is currently wrongly ordered ; in the COMPS list before the particle. FIX ; n_v-or-adj_cmpnd_phr := basic_n_v-or-adj_cmpnd_phr & [ ARGS < [ ], [ SYNSEM [ LOCAL.CAT.VAL.COMPS [ FIRST.LOCAL.CAT [ HEAD n_or_p, VAL.COMPS < > ], REST *olist* ], MODIFD.LPERIPH - ] ] >, C-CONT.RELS ]. n_v_cmpnd_phr := n_v-or-adj_cmpnd_phr & [ ARGS < [ ], [ SYNSEM [ LOCAL.CAT.HEAD verb, LKEYS.--COMPKEY independent_rel ] ] > ]. n_adj_cmpnd_phr := n_v-or-adj_cmpnd_phr & [ ARGS < [ ], [ SYNSEM.LOCAL.CAT [ HEAD adj, VAL.COMPS.FIRST.OPT + ] ] > ]. ;; DPF 2012-08-03 - With EMB, decided to underspecify the pred name of the ;; EP introduced by both the transitive and non-transitive adjective-dtr ;; variants of this construction, so changing the transitive one from ;; argument_rel to compound_rel, and the intransitive one below from ;; comp_equal_rel to compound_rel ;; DPF 2012-11-08 - This should probably be restricted to HEAD adj for ;; right dtr, to avoid spurious ambig for |bell-ringing children|. ;; Let's see how it goes ... ;; n_adj_intr_cmpnd_phr := basic_n_v-or-adj_cmpnd_phr & [ ARGS < [ ], [ SYNSEM.LOCAL.CAT [ HEAD adj, VAL [ SPR *ocons*, COMPS < > ] ] ] >, C-CONT.RELS ]. ; DPF 24-jun-08 - Since we cannot currently control generation of hyphens ; well enough, and yet we want to normally generate formal English, the ; following two rules prevent us from generating e.g. "the wind-swept outpost" ; so for now do not draw distinction. #| n_v-or-adj_cmpnd_eg_phr := n_v-or-adj_cmpnd_phr & [ ARGS.FIRST.SYNSEM.PUNCT.RPUNCT hyphen_sgl ]. n_v-or-adj_cmpnd_ig_phr := n_v-or-adj_cmpnd_phr & [ ARGS.FIRST.SYNSEM.PUNCT.RPUNCT no_punct, GENRE nonformal ]. |# ;; Appositives ;; For now, restrict this to temporal nouns and proper names, since it's an ;; overly enthusiastic rule. So only get "Tuesday the tenth" and "Jim Smith" ;; (well, and also "Jim the tenth", but then it's only a hack anyway). ;; Use CASE feature hack on non-head to avoid unwanted "minor" NPs like ;; minute_word as appositives: "seven thirty" ;; DPF 10-May-00 - In fact, restrict to only proper names, since the date ;; guys already come in via the npadv_mod rule. ;; DPF 11-Sept-01 - Restrict head-dtr to be reg_nom_rel (not basic_nom_rel) ;; to exclude deictic pronouns as in "that Kim", and further restrict to ;; explicit_q_rel so we can allow nonhead-dtr to include numbers as in ;; "the number five" but not "Abrams five". This means we'll get as an ;; appositive "my friend Kim" but not "Kim my friend". It means we also ;; block this analysis for "Lee Browne" - probably right. ;; DPF 12-Sept-01 - Restrict head-dtr to be PRD + to rule out free-relatives ;; DPF 18-Oct-01 - Removed [MODIFD notmod] from HD-DTR, since it blocks ;; 'my old friend kim' ;; DPF 4-Dec-02 - Made AGR..PN be strict_sort on the two dtrs, to exclude ;; as appositives e.g. "Kim and Sandy the book", even though this also rightly ;; will force another analysis to be constructed someday for ;; "the brothers Grimm". ;; DPF 5-Sep-03 - Changed HD-DTR..ALTMIN from explicit_q_rel to quant_rel ;; to allow proper names which now have ALTMIN proper_q_rel. Use SORT ;; unification now to block "Abrams five" while allowing "the number five". ;; DPF 13-Nov-03 - Generalized to allow definite NPs as right dtrs, and ;; prevented recursion by use of LPERIPH. [NORM no_rel] prevents np_adv's ;; like in "the chair here" or "here the chair" ;; DPF 27-jan-04 - Made MODIFD on non-hd dtr be notmod_or_rmod to prevent ;; appositive analysis for "Kim interviewed Sandy". ;; But this blocks "my order # 12345", so undo, and instead make the ;; attr_adj_verb lexical rule restrict its MOD.MINORS.MIN value to block the ;; construction of "interviewed Sandy" in the first place, though this may ;; be too strong. ;; DPF 03-may-04 - Changed NHD..MIN from nonpro_rel to nonpro_or_num_rel, ;; to allow "Abrams, number five, arrived". Still blocking "*Abrams five" ;; because the simple num-noun "five" is LPERIPH na. ;; DPF 16-jun-04 - Removed HD-DTR..LPERIPH bool since it blocks ;; "two people (Kim and Sandy)" since "two people" must be [LPERIPH na]. ;; Not sure what overgeneration will result, but we'll see. ;; DPF 16-jul-04 - Added RPERIPH constraints on HD-DTR and mother to block ;; left recursion. ;; DPF 18-jul-04 - Made two subtypes of hdn-np_app-pr_c, one as before for proper ;; names and definite NPs ('Kim the doctor", "my brother Sandy") which allows ;; but does not require separating commas, and the other for indefinites ;; ("Kim, a manager, arrives') where commas are obligatory (to avoid a lot ;; of unwanted ambiguity as in 'We sent Kim a book'). ;; DPF 20-aug-04 - Try changing HD-DTR..MIN from reg_nom_rel to ;; nonpro_or_num_rel, to admit "highway 55, the new road" ;; DPF 25-aug-04 - Restrict both dtrs to MSG no_msg, to exclude NPs derived ;; from S's or inf-VPs. ;; DPF 26-sept-04 - Let's try requiring number agreement for the two dtrs, ;; to rule out spurious analysis for "another two of the chairs". ;; DPF 18-Nov-04 - Removed HD-DTR..PRD -, since this now excludes proper NPs ;; DPF 22-apr-05 - Try ruling out bare plurals as heads, to avoid spurious ;; ambiguity for "we sent two [consultants, Abrams and Browne]" ;; DPF 16-mar-06 - Re 13-Nov-03: Conflict with desire to constrain rel clause ;; rule via NORM. So removed from NH-DTR, since 'the chair here' is now ;; ruled out by SORT mismatch. ;; DPF 24-may-07 - Tried requiring PNG to match on both dtrs, but this blocked ;; hdn-np_app-pr_c analysis of 'we have two cats, one from each litter'. ;; Also prevents ;; 'Our team, six men and six women, is going to win', and "Our friends, a ;; couple from Kansas, are visiting." So remove constraint. ;; DPF 31-may-07 - Changed HD-DTR..MIN from nonpro_or_num_rel to nom_rel, ;; to allow "I myself arrived early" and "we the people" ;; DPF 24-jul-07 - Re 16-mar-06: But we still allow "his home" as hdn-np_app-pr_c, since ;; pronoun is necessarily unrestricted for SORT. So instead make the NORM ;; be norm_rel, which will block "home", but allow NPs with rel clauses. ;; DPF 24-apr-09 - Re 13-Nov-03: Changed hd-dtr's NORM from no_rel ;; to quantity_or_no_rel to allow measure-NPs: |10 mm, the highest measure|, ;; (note that SPR *olist* (surprisingly) blocks adverbial NPs as heads). ;; DPF 02-jul-09 - Push NH-DTR..NORM norm_rel down to subtypes, to allow ;; parenthetical hdn-np_app-pr_c to admit more variety, as in "the story (what he said)" ;; DPF 11-jan-10 - Removed identification of CASE on two dtrs, since it blocks ;; "John himself arose." Can't remember what it was added to avoid ... ;; DPF 18-jul-2010 - Re 24-jul-07: Changed HD-DTR..NORM quantity_or_no_rel ;; to quantity_or_norm_or_no_rel, since this was blocking as heads any NPs ;; which don't appear as left members of noun-noun compounds (these are NORM ;; norm_rel), and because we now block appos of e.g. |his home| with distinct ;; NORM values. New value still blocks demonstratives, as in |that Browne|. ;; DPF 2012-12-20 - Changed HD-DTR..LPUNCT from no_punct to dq_or_no_punct ;; since we want |we admire "Scores Plus," the film.| ;; DPF 2013-01-09 - Removed RPERIPH na on mother and RPERIPH bool on NH-DTR, ;; to allow appos in coord, such as [[Kim, the cat,] and Abrams]. ;; basic_appos_phr := head_initial & head_compositional & [ INFLECTD +, SYNSEM phr_synsem & [ LOCAL.CAT [ VAL #valence ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL #rel ], MODIFD.LPERIPH na, PUNCT [ LPUNCT #lpunct & dq_or_no_punct, RPUNCT #rpunct, RCLSTR #rclstr ] ], HD-DTR [ INFLECTD +, SYNSEM canonical_synsem & [ LOCAL [ CAT [ HEAD noun_or_nomger & [ MINORS [ MIN nom_rel, NORM quantity_or_norm_or_no_rel ], --BARE - ], VAL #valence & [ SPR *olist*, SUBJ *olist*, COMPS < > ] ], CONT.HOOK.INDEX #hind & ref-ind, CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL #rel ], PUNCT [ LPUNCT #lpunct, RPUNCT comma_or_rbc_or_pair_or_no_punct ] ] ], NH-DTR [ INFLECTD +, SYNSEM canonical_synsem & [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS [ MIN nonpro_or_refl_or_num_rel, ALTMIN appos-able_rel ], --BARE - ], VAL.COMPS < > ], CONT [ HOOK.INDEX #modind ] ], NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], PUNCT [ RPUNCT #rpunct, RCLSTR #rclstr ] ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop ], RELS.LIST.FIRST prep_notense_relation & [ LBL #ltop, PRED appos_rel, ARG1 #hind, ARG2 #modind, CFROM #from, CTO #to ] ] ]. norm_appos_phr := basic_appos_phr & [ HD-DTR.SYNSEM.LOCAL [ CAT [ HEAD basic_noun, VAL.SUBJ < > ], CONT.HOOK.INDEX.SORT #sort ], NH-DTR.SYNSEM.LOCAL [ CAT.HEAD basic_noun, CONT.HOOK.INDEX.SORT #sort ] ]. basic_appos_np_phr := norm_appos_phr & [ HD-DTR.SYNSEM.MODIFD.RPERIPH bool, NH-DTR.SYNSEM.LOCAL.CAT.VAL.SPR *olist*, C-CONT [ RELS , HCONS ] ]. appos_np_phr := basic_appos_np_phr & [ NH-DTR.SYNSEM.LOCAL.CAT [ HEAD.MINORS.NORM norm_rel, VAL.SUBJ < > ] ]. ; For these two subtypes, see comment 7-may-05 for n_adj_relcl_phrase ; DPF 07-sept-07 - Restrict this nopair variant to exclude bare_sg NP as head. ; DPF 23-apr-09 - Block left paren on NH-DTR -- when both left and right par ; are present, uses appos_np_phr rule. ; DPF 13-may-09 - Block bare partitives as heads, to avoid spurious parse for ; 'both the cats' ; DPF 13-may-09 - Re 23-apr-09: Remove paren constraint, since get ; PNCTPR no_pair on parenthesized coord NP. appos_phr_nopair := appos_np_phr & [ SYNSEM.PUNCT [ PNCTPR #ppair, PAIRED #paired ], HD-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS [ ALTMIN impl_or_expl_or_prop_q_rel, NORM norm_or_no_rel ], PUNCT.RPUNCT no_punct ], NH-DTR.SYNSEM [ PUNCT [ RPUNCT comma_or_clause, PNCTPR #ppair, PAIRED #paired ] ] ]. ;; DPF 18-jul-2010 - Added HD-DTR..ALTMIN non_pronoun_q_rel to block ;; relative pronouns as heads, as in |who Browne ...| ;; DPF 2012-10-10 - Also allow indefinite on NH-DTR, to admit ;; |a friend, Kim, arrived| appos_phr_prpnct := appos_np_phr & [ HD-DTR.SYNSEM [ PUNCT [ PNCTPR #pnctpr, PAIRED #paired, RPUNCT comma_or_pair_or_no_punct ] ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.ALTMIN def_or_meas_rel, PUNCT [ PAIRED #pnctpr, PNCTPR #paired ] ] ]. ;; DPF 2011-08-24 - For each of the paired and non-paired phrase types, ;; exclude proper name from right dtr in first rule, to avoid spurious appos ;; analysis of "John Browne". Then exclude proper name from the left dtr of ;; the second variant, and require proper name for the right dtr. appos_phr_nonprop_nopair := appos_phr_nopair & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN explicit_or_proper_q_rel, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN def_or_meas_noproper_rel ]. appos_phr_prop_nopair := appos_phr_nopair & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN def_or_meas_or_num_rel, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN num_or_proper_q_rel ]. appos_phr_nonprop_prpnct := appos_phr_prpnct & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN non_pronoun_q_rel, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN def_or_meas_noproper_rel ]. ;; DPF 2012-07-22 - Added for |Kim, 22, arose| but still blocking appos for ;; |Kim 22 arose| appos_phr_num_prpnct := appos_phr_prpnct & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN non_pronoun_q_rel, NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.ALTMIN number_q_rel, PUNCT.RPUNCT comma_punct ] ]. appos_phr_prop_prpnct := appos_phr_prpnct & [ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN indef_or_def_or_meas_rel, NH-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN num_or_proper_q_rel ]. ; DPF 18-jun-07 - This is a patch to enable us to get comma-marked appositives ; as right conjuncts, while our comma constraints on conjuncts currently block ; them with normal commas. ; DPF 13-may-09 - Re 18-jun-07: Leads to a lot of spurious ambiguity. Let's ; instead try not propagating the PAIRED value from hd-dtr to mother in ; the appos_phr_prpnct rule. #| appos_phr_rbc := appos_np_phr & [ HD-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.ALTMIN explicit_or_proper_q_rel, PUNCT.RPUNCT comma_punct ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.ALTMIN def_or_proper_q_rel, PUNCT.RPUNCT rbcomma_punct ] ]. |# appos_indef_phr := basic_appos_phr & [ HD-DTR.SYNSEM [ LOCAL.CAT.HEAD [ CASE #case, MINORS.NORM norm_rel ], MODIFD.RPERIPH bool, PUNCT [ RPUNCT comma_or_pair_punct, PNCTPR #ppair, PAIRED #paired ] ], NH-DTR.SYNSEM [ LOCAL.CAT [ HEAD [ MINORS [ ALTMIN indef_or_udef_rel, NORM norm_rel ], CASE #case ], VAL.SPR *olist* ], PUNCT [ RPUNCT comma_or_clause_or_pair_punct, PNCTPR #ppair, PAIRED #paired ] ], C-CONT [ RELS , HCONS ] ]. appos_indef_paren_phr := basic_appos_np_phr & [ SYNSEM.PUNCT [ PNCTPR #ppair, PAIRED #paired ], HD-DTR.SYNSEM [ LOCAL.CAT.HEAD.CASE #case, PUNCT.RPUNCT no_punct ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD [ MINORS.ALTMIN indef_or_udef_or_meas_rel, CASE #case ], PUNCT [ LPUNCT lparen_punct, RPUNCT rparen_or_clause_punct, PNCTPR #ppair, PAIRED #paired ] ] ]. ; 'Paris, home of the Eifel Tower' ; DPF 07-apr-08 - Replaced phr_synsem constraint on NH-DTR with ; nonlex_or_lex_phr_synsem to allow compounds, such as in ; "Kim Smith, airport director, resigned." ; DPF 02-jul-09 - Restricted NH-DTR..MIN to non_temp_nbar_rel instead of ; nom_nbar_rel, to exclude e.g. numbers as in "June, 2000" ; Also relaxed NH-DTR..RPUNCT to allow "Kim, creator of X" with no closing ; comma. ; Also restricted NH-DTR to singular count nouns, to avoid spurious ambiguity ; with ordinary NP apposition appos_nbar_phr := norm_appos_phr & [ SYNSEM.PUNCT.PAIRED #paired, HD-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN nonpro_or_num_rel, PUNCT [ PAIRED #paired, RPUNCT comma_or_clause ] ], NH-DTR [ SYNSEM nonlex_or_lex_phr_synsem & [ LOCAL [ CAT [ HEAD.MINORS [ MIN non_temp_nbar_rel, NORM norm_rel ], VAL.SPR < synsem & [ LOCAL.CAT.HEAD det, OPT - ] > ], AGR [ PNG.PN 3s, DIV - ], CONT.HOOK [ LTOP #nhand, INDEX #index ] ], PUNCT [ RPUNCT comma_or_clause_or_no_punct ] ], ORTH [ FROM #from, TO #to ] ], C-CONT [ RELS , HCONS ] ]. ;; ;; Adverbial-NP modifiers ;; ; DPF 11-Jun-99 - Added SUBJ..OPT - to prevent these temporal NPs from filling ; ordinary NP argument positions. ; ; DPF 26-Jul-99 - Changed [HEAD noun] to [HEAD prep] to avoid double parse ; for "Thursday the fourth" where "the fourth" attaches after "Thursday" ; is itself an npadv_mod phrase. ; DPF 9-Sept-99 - Added PRD - to mother, to block temp-mods as complements of ; copula. ; DPF 30-Sept-99 - But this blocks all post-nominal modification with temporal ; NPs, sigh. Besides, the most natural reading of "The meeting is Tuesday" is ; with the temp-mod reading rather than the identity one. ; DPF 2-Sept-00 - Removed SPR, to avoid spurious analysis for "my mornings ; look pretty booked tuesdays". Don't recall why we wanted a SPR on these ; phrases. ; DPF 4-Apr-01 - Added PRD from dtr to prevent e.g. relpro "that" from being ; the complement of copula, as in "the book that Kim is", while allowing "here ; are the books", which requires npadv_mod extraction from locative inversion. ; DPF 17-Jul-01 - Replaced SPR, since we want "leave right now", where the ; nominal "now" gets pumped to a modifier, and can (only) then take a degree ; specifier. It seems the ambiguity of 2-Sept-00 is not spurious, just ; unlikely. ; DPF 25-Sep-01 - Added reentrancy of AGR and SUBJ's INDEX, to get no-copula ; constructions like "Kim in Berlin becoming impatient" ; DPF 2-Apr-02 - Made SUBJ be expressed_synsem rather than synsem, to prevent ; these phrases from appearing as complements of when_subord_prd. ; DPF 30-May-02 - But this also blocks "someone there". So remove this ; constraint, and instead restrict the when_subord_prd complement to be ; non-temporal. ; DPF 9-May-02 - Identified INDEX.SORT of dtr and of mother, to avoid letting ; temporal NPs be fillers for ordinary adjunct extraction, which was giving ; us a spurious parse for e.g. "when did kim arrive" ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 2-May-03 - Try replacing dtr's [MODIFD hasmod] with [MODIFD lmod] to ; block "*KIm fell time that I did" but allow "Kim fell two times". This ; seems to force us to have two lexical entries for "the", one which is notmod ; (as is its head sister), and one for modified nominals, where "the" stamps ; [MODIFD lmod] whether the nominal is right-modified or left-modified, so ; we still get "Kim arrived the week Sandy left". ; DPF 13-May-02 - Added SLASH to prevent spurious ambiguity for "Kim ; arrived when(ever) Sandy left". ; DPF 27-May-03 - Re 2-May-03: But those two "the" entries have the effect of ; preventing us from using the intersective modification efficiency improvement ; for generation, since "the consultant" uses a different "the" than "the tall ; consultant", which means the generator's second-pass adjunction algorithm ; will fail to enrich "the consultant" to "the tall consultant". Since that ; two-pass strategy depends on the phrase without modifiers being the "same" ; as the phrase with modifiers (at least using the same lexical entries), it ; seems to drive us back to just one entry for "the" which preserves the ; MODIFD value of its SPEC. And then this rule requires that its dtr go back ; to just [MODIFD hasmod]. Not too troubling for this particular case, since ; the above example with "time" was playing on an ambiguity between the count ; and the mass senses, which we are treating as underspecification, perhaps ; wrongly. ; DPF 06-Jun-03 - Changed the identity of SORT on dtr and mother's INDEX, since ; this excluded temporal modifiers of non-temporal nouns ("meetings Tuesday"), ; and seemed counter-intuitive. Rather we want the SORT of the dtr to ; constrain the ARG0 of the derived "PP" itself (its E-INDEX), not what the PP ; modifies. ; DPF 09-Jun-03 - Made dtr be MODIFD.LPERIPH bool to exclude "Kim arrived ; times I left" ; DPF 22-Jul-03 - Might think to make SPR's MIN be much_deg_rel rather than ; simply degree_rel to avoid spurious ambig for "right now", given two entries ; "right" for 'very' and 'much' type degree specifiers. But this blocks "too ; late" where "too" is not much-deg subtype. ; DPF 16-oct-03 - Changed LPERIPH from bool to na_or_+ to be consistent with ; revised treatment of number adjectives ; DPF 30-oct-03 - Mysteriously, MOD was not restricted to non-empty SPR, which ; meant spurious parses attaching to both Nbar and NP (and VP and S). Changed, ; but how unnoticed till now? Also, --SIND on SUBJ was not co-indexed. Fixed ; DPF 01-may-04 - Continuing the pendulum swing of 2-Sept-00 and 17-Jul-01, ; removed SPR again, since we get "right now" as an NP, and have just added ; an analysis for "too late" and "too long" where these gradable NPs take ; "too", "very", etc. before pumping to PP. ; DPF 25-sept-04 - Removed SYNSEM..MOD..MSG no_msg, since we want to allow ; e.g. 'tomorrow, can you come' using adj_i_ques rule. Rather, make MSG ; value same as that of MOD, like ordinary prepositions. ; DPF 12-nov-05 - Added MOD..NORM norm_rel to prevent these from ; modifying lexical NP-adverbials as in e.g. "here there" ; DPF 05-dec-05 - Re: 25-sep-01 - Not clear what that comment meant, but ; removed AGR reentrancy since this was preventing e.g. "Here lies Kim" ; where the AGR ends up not being of type 'index' ; DPF 30-sept-06 - Re: 12-nov-05: But this interferes in interaction with ; appositives, as in "the manager today, Abrams, arrives." So instead use ; value 'non_number_rel', which also allows 'no_rel', only excluding ; 'never_unify_rel'. ; DPF 23-may-07 - Re: 01-may-04, we want "they know why Kim is here", and ; "why" wants to modify a phrase with a non-empty SPR, so modnp "here" ; needs such a SPR, but we'll make it anti_synsem_min to avoid unwanted ; side-effects. ; DPF 18-jun-07 - Re 30-sept-06: But if we block "here there", we also ; block "here today" as in "Kim is here today", and also "Kim arrives late ; this afternoon." So remove this constraint, and live with the spurious ; analysis of "here there". ; DPF 02-jul-09 - Constrain dtr to INDEX nonconj_ref-ind to avoid spurious ; ambiguity for "Kim arrives Tuesday and Wednesday" ; DPF 04-sept-09 - Removed reentrancy of MODIFD on mother and dtr, since ; we want to allow "Yesterday, Kim was here", where the np_adv_c must undergo ; hd_xaj-int-vp_c rule, which constrains its dtr to be notmod (to avoid ; spurious ambiguity). See what trouble this removed constraint might give... ; DPF 13-mar-10 - Re 02-jul-90: Unfortunately, this also blocks "every ; morning and evening", so undo this change, and live with ambiguity for ; "Tuesday and Wednesday". ; DPF 20-mar-10 - Re 23-may-07: Given that degree specifiers cannot combine ; directly either with cardinal adjectives or with meas-NPs (in both cases ; to avoid spurious ambiguity elsewhere), we need to allow adverbial ; meas-NPs to take specifiers, as in "Kim slept just over twelve hours." ; So push down to subtypes. ;; DPF 2011-08-02 - Re 16-oct-03: Changed to LPERIPH +, to exclude e.g. ;; |We arrived March the third month|, where appositives are necessarily ;; [LPERIPH na]. ;; DPF 2011-10-21 - Removed REL 0-dlist from mother, since it blocks e.g. ;; |companies whose ads this year were longer prospered| basic_npadv_mod_phrase := basic_unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD modnp & [ MOD < [ LOCAL intersective_mod & [ CAT [ HEAD subst & [ AUX - ], VAL.COMPS < >, MC #mc ], CONJ cnil ], --SIND #ind & non_expl & [ SORT basic-entity-or-event ] ] >, TAM #tam, MINORS.ALTMIN #altmin, PRD #prd ], POSTHD +, VAL [ SUBJ < >, COMPS #comps ], MC #mc, NEGPOL #negpol ], CONT.HOOK [ INDEX [ SORT #sort ], XARG #ind ], CONJ cnil, CTXT #ctxt ], NONLOC #nonloc & [ REL 0-dlist, SLASH 0-dlist ], PUNCT #punct ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD basic_noun & [ MINORS.MIN #altmin, PRD #prd, --BARE - ], VAL [ SPR *olist*, SUBJ *anti_list*, COMPS #comps & < > ], NEGPOL #negpol ], CONT.HOOK.INDEX #index & [ SORT #sort ], CONJ cnil, CTXT #ctxt ], NONLOC #nonloc, PUNCT #punct ], ORTH [ LB #lb, RB #rb ] ] >, ORTH [ FROM #from, TO #to, LB #lb, RB #rb ], C-CONT [ HOOK [ LTOP #khand, INDEX #arg0 ], RELS , HCONS ], INFLECTD + ]. ;; DPF 2012-04-16 - Added MODIFD lmod to mother, to prevent these from being ;; post-modified, to avoid redundant analysis for |25% of the cats in Paris| ;; DPF 2012-09-12 - Tried adding MOD..NORM no_rel to block unwanted ambiguity ;; of analysis of e.g. |a year earlier| where |a year| is itself already an ;; np_adv_mnp. But this runs afoul of the constraint on the complement of the ;; predicative copula which requires NORM norm_rel of its complement, so we ;; would not get |when was Kim hired?|, where |when| demands that its MOD ;; (namely |hired| be [NORM no_rel], while |was| demands that |hired| be ;; [NORM norm_rel|. So instead use the same MODIFD lmod feature on the ;; mother of the npadv_meas rule that we use here to block similar unwanted ;; ambiguity for |here earlier|. ;; npadv_mod_phrase := basic_npadv_mod_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD [ MINORS.MIN loc_nonsp_rel, MOD < [ LOCAL.CAT [ VAL.SPR < synsem_min, ... > ] ] >], VAL.SPR < anti_synsem_min > ], MODIFD lmod ], ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN modable_rel, MODIFD hasmod & [ LPERIPH + ] ] ] > ]. ; Special construction for n_year_le as in 'July 14, 1984' npadv_yofc_phrase := basic_npadv_mod_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD [ MINORS.MIN loc_nonsp_rel, MOD < [ --MIN dofm_or_mofy_rel, LOCAL [ CAT [ HEAD basic_noun, VAL.SPR.FIRST synsem & [ OPT - ] ], CONT.HOOK.XARG #ltop ] ] > ], VAL.SPR < anti_synsem_min > ], CONT.HOOK.LTOP #ltop ], ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.MINORS.MIN yofc_rel, MODIFD notmod ] ] > ]. ; For "Kim fell three meters." ; DPF 31-dec-08 - Added NORM norm_rel to prevent these from appearing in ; v_mod construction, as in "Kim has 46 cats" ; DPF 28-apr-09 - Generalized MOD..HEAD to v_or_a to allow ; e.g. |Kim was low three liters| ; DPF 21-oct-09 - Added PRD - to prevent spurious ambiguity for "the distance ; is ten feet" ;; DPF 2012-10-14 - Tried adding MODIFD hasmod to dtr to block spurious ;; |we arose years|, but this is wrong since ordinary binary meas-NPs are ;; also |MODIFD notmod|. ;; DPF 2012-12-17 - Added SPR..OPT + to improve parse-node labeling. ;; npadv_measnp_phrase := basic_npadv_mod_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD [ MINORS [ MIN miscprep_rel, NORM norm_rel ], PRD -, MOD < [ LOCAL.CAT [ HEAD v_or_a, VAL.SPR < synsem_min, ... > ] ] >], VAL.SPR < synsem & [ --MIN just_only_degree_rel, LOCAL.CONT.HOOK.LTOP #ltop, OPT + ] > ], MODIFD lmod ], C-CONT.HOOK.LTOP #ltop, ARGS < [ SYNSEM [ LOCAL.CAT [ HEAD [ MINORS.MIN num_or_meas_rel, CASE no_case ], VAL.SPR < synsem & [ LOCAL.CAT.HEAD adv ] > ] ] ] > ]. ; DPF 5-Feb-01 - Restrict mother's SPEC..HEAD value to adj for now, to block ; silly analysis for e.g. "There are a bookcase in the office." ; DPF 22-Apr-01 - Added MODIFD identification of mother and left daughter to ; distinguish "an inch" from "one inch" as in "I need one inch nails" but not ; "*I need a inch nails". Corresponds here roughly to left stress. ; DPF 8-Jan-02 - Removed above constraint on SPEC, since this also blocked ; "Kim arrived two days before Sandy". Instead, prevent most PPs from taking ; measure-NP specifiers. ; DPF 11-Feb-02 - Made INDEX.SORT of phrase be that of right dtr to enable ; blocking of meas-NP analysis of "a laptop" in "Can you get me a laptop before ; Christmas" ; DPF 2-Apr-02 - Changed SPEC..HEAD from a_or_adv to a_or_p since we don't ; want "ten times competently". Will need to do something for comparative ; adverbs like "faster" as in "ten times faster". ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 17-Jul-03 - Changed C-CONT.RELS deg_rel to much_or_very_deg_rel, since ; we want MNP specifiers for comparatives as well, but still exclude them for ; e.g. subordinating conjunctions. ; DPF 10-dec-03 - Made DTR1 be COMPS < > to avoid spurious measure-NP for e.g. ; "thirty foot" - possible now that we've changed analysis for currency as in ; "usd 10" ; DPF 6-jun-04 - Changed SPEC..HEAD from a_or_p to n_or_p_or_a to also allow ; e.g. "ten weeks early" ; DPF 23-aug-04 - Considered extended it further to n_or_p_or_a_or_adv, to ; allow "ten miles further on" where "further" is treated as a degree-spec, ; but this creates massive spurious ambiguity with constituents for e.g. ; "peaks approximately". And probably there's another analysis for ; "further into the woods", at least one where that "further" is still a noun. ; DPF 08-Feb-06 - Added NORM norm_rel to avoid spurious N-N compound ; analysis for 'ten foot rope' (in addition to intended NP-N compound). ; DPF 25-may-09 - Leave SPR on mother unconstrained here, and in subtypes, ; either stamp < anti_synsem > or in normal binary rule, pass up from left ; dtr, to enable "the hundred mile road" but block ; "*the hundred miles long road" since the meas_np_degadv rule requires ; the dtr's SPR to be anti_synsem. ;; DPF 2012-09-18 - Moved DTR1.SYNSEM basic_lex_synsem down to bare-mnp, ;; to allow |ten percentage point rise| where the n-n cmpnd is lex_phr_synsem. ;; basic_measure_np_phrase := phrase & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN meas_nom_rel, NORM quantity_rel ], MOD < > ], VAL.SPEC < > ], AGR.DIV +, CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ] ], DTR1 [ INFLECTD #infl, SYNSEM abstr_lex_synsem & [ LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN abstr_meas_nom_rel, ALTMIN udef_q_rel ] ], VAL [ SUBJ < >, SPR < canonical_synsem & [ --MIN udef_q_rel, OPT -, NONLOC [ SLASH 0-dlist, REL 0-dlist, QUE 0-dlist ] ] > ] ], CONJ cnil, CONT.HOOK.INDEX #nindex ], NONLOC.SLASH 0-dlist, MODIFD.LPERIPH bool ] ], C-CONT.HOOK.INDEX #nindex ]. ; For "days ago", "miles high" ; DPF 15-Nov-03 - Made bare-MNPs HEAD adv to prevent "*days arrive(s)" etc. ; DPF 26-aug-04 - Restrict dtr to be MIN abstr_meas_nom_rel to exclude ; spurious edges for ordinary plural nouns. ; DPF 21-dec-05 - Re 15-Nov-03: This prevented "We arrive in hours", so ; instead make HEAD noun, but CASE obliq. ; DPF 10-aug-09 - Re 21-dec-05: But this prevents "miles remained" and ; "we use gallons". So remove CASE obliq. ;; DPF 12-03-01 - Somehow we have not been supplying a udef quantifier to ;; bind the INDEX. Fixed, but have to think about degadv usage as in ;; |he arrived days later|. FIX ;; DPF 12-08-03 - Re: 12-03-01 - The udef quantifier should come either ;; from the meas_np_degadv rule or from the bare_np rule, so not from here. ;; We force the bare-meas phrase to under the bare_np rule by making the ;; SPR be [OPT -]. Also changed SPR from anti_synsem_min to unexpressed_rel, ;; since we had lost |miles high| with |miles| undergoing the meas_np_degadv ;; rule, where that dtr is [ SPR < synsem > ]. Sigh. ;; DPF 2012-10-14 - Tried constraining mother to MODIFD notmod (preserved from ;; dtr) to avoid these undergoing npadv rule for spurious analysis of ;; |Kim arose years|. But this doesn't help, since for independent reasons ;; we also make binary meas-NPs be MODIFD notmod, and we need the npadv_meas ;; rule to take those as dtrs, of course. Besides, already adopted a hack ;; via CASE on |dollars| for this purpuse, so generalize to other measure-nouns ;; that we don't want as bare npadv. Also added no_case to dtr, to block ;; these non-bare measure-nouns as input to this rule. ;; bare_measure_np_phrase := norm_unary_phrase & basic_measure_np_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD [ MINORS.ALTMIN udef_q_rel, CASE no_case ], VAL [ SPR < unexpressed_reg & [ OPT - ] >, COMPS < > ] ], AGR #agr ], LEX + ], DTR1 #dtr1 & [ INFLECTD +, SYNSEM basic_lex_synsem & [ LOCAL [ CAT [ HEAD [ MINORS [ MIN abstr_meas_nom_rel, NORM quantity_rel ], CASE no_case ], VAL.COMPS < > ], CONT.HOOK [ LTOP #ltop, INDEX #index ], AGR #agr & [ PNG.PN 3p ] ], MODIFD notmod, LEX + ] ], ARGS < #dtr1 >, C-CONT [ HOOK [ LTOP #ltop, INDEX #index ], RELS , HCONS ] ]. ; DPF 12-Apr-03 - Added CARDINAL + to DTR2 to block e.g. 'first day' as meas-NP ; DPF 27-jul-04 - Removed DTR2..SPR *olist* to get 'the million dollar view' ; DPF 20-aug-04 - Removed MODIFD notmod, since this prevents "ten miles east" ; from being an np_adv_c, since the sp-hd_n_c rule takes its MODIFD value from ; the non-hd dtr. Don't know what this constraint was ruling out - we'll see. ; DPF 19-nov-04 - Considered making mother be MODIFD lmod, in order to avoid ; seemingly spurious ; attachment of posthead modifiers to measure-NP, as in ; "ten dollars that Kim hired". (The current analysis of "ten miles east" has ; "ten miles" as a specifier of "east".) But this constraint would block e.g. ; "ten miles on artificial snow is hard work", so we live with the ambiguity. ; DPF 24-may-10 - (Re 27-jul-04) Again tried removing DTR2..SPR *olist* since ; we want "the million dollar house". Assume the mnp-deg-spec rule will ; ensure that we block "*the mountain is thousand meters high" while allowing ; "the thousand-meter high mountain". ;; DPF 2012-04-09 - Re 24-may-10, note that we keep putting this *olist* back. ;; If remove it, then need to change bare-np rule to require its dtr's SPR ;; list to have REST be *olist*. ;; DPF 2012-09-12 - Re 20-aug-04 and 19-nov-04: It is clear that we want to ;; allow rightward modification, as in |ten miles on snow is fun|, so we ;; can't stamp MODIFD lmod on mother; and also clear that we can't stamp ;; MODIFD notmod on mother, since we want |ten miles east| to be able to be ;; np_adv. But we also want to block spurious adj_adjn for |big ten feet| ;; so let's try MODIFD.LPERIPH + on mother. ;; DPF 2012-09-28 - But LPERIPH + also blocks N-N compounds where the meas-NP ;; is in the head-dtr, as in |benchmark 10% rate|, and anyway the npadv_mnp ;; rule does not mind its dtr with MODIFD notmod, so we go back to notmod. ;; binary_measure_np_phrase := binary_punct_phrase & basic_measure_np_phrase & [ SYNSEM [ LOCAL [ CAT.VAL [ SPR < synsem & [ --MIN quant_rel, LOCAL.CAT [ HEAD det, VAL [ SUBJ < >, SPR *olist* ] ], OPT - ] . #spr2 >, COMPS #comps ], AGR.PNG.PN 3s ], MODIFD notmod ], DTR2 [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD intadj_or_comp & [ CARDINAL +, MINORS.MIN const_or_meas_rel, MOD < synsem & [ PHON.ONSET #onset, --MIN #min, LOCAL.AGR #agr ] > ], VAL [ SPR #spr2, COMPS #comps & *phrlist* ] ], CONT.HOOK [ LTOP #nhand, INDEX.E [ TENSE no_tense, ASPECT no_aspect ], XARG #index ], CONJ cnil ], LEX + ] ], DTR1.SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN #min, CONT.HOOK [ LTOP #nhand, INDEX #index ], AGR #agr ], PHON.ONSET #onset ], C-CONT [ HOOK.LTOP #nhand, RELS , HCONS ] ]. ; DPF 16-May-01 - Cannot have [DTR1..COMPS < >] (as desired to avoid spurious ; parse for "he is ten pounds heavier" where "pound" takes optional pp-of), ; since cannot discharge that optional complement if the noun is uninflected, ; as in "the ten pound heavier guy". So allow spurious analysis for now. ; DPF 21-oct-09 - The SPR of the mother should not be identified with that of ; the right dtr, since it should always be < anti_synsem_min> in order to ; be able to undergo the rule for mnp_deg_c, asin "several feet tall" measure_np_phrase := binary_measure_np_phrase & [ SYNSEM.PUNCT.PNCTPR #ppair, DTR1 #dtr1 & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.NORM quantity_rel, VAL.COMPS < > ], PUNCT.PNCTPR #ppair ] ], DTR2 #dtr2 & [ SYNSEM.PUNCT.RPUNCT hyphen_sgl_or_no_punct ], ARGS < #dtr2, #dtr1 > ]. ; For $ 100 (100 dollars) where the head precedes the integer. ; DPF 16-May-01 - Suggests that the rule for measure_nps should be a ; non-branching rule. Especially given the difficulty of pp-of nouns noted ; just above. But would have to allow "sixty" and "dollar" to combine in ; general, then block most of the time - sigh. Leave for now. ;; DPF 2012-09-12 - To trim down ambiguity, let's try excluding conjoined ;; numerals here, as in dubious |$20 or 30| measure_np_symbol_phrase := binary_measure_np_phrase & [ SYNSEM.PUNCT.PNCTPR #ppair, DTR1 #dtr1 & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS [ MIN mnp_symb_rel, NORM norm_rel ], VAL.COMPS *anti_cons* ], PUNCT.RPUNCT no_punct ] ], DTR2 #dtr2 & [ SYNSEM [ PUNCT.PNCTPR #ppair, LOCAL.CONT.HOOK.INDEX non_conj_event ] ], ARGS < #dtr1, #dtr2 > ]. ; DPF 18-jul-06 - Added ARGS..MODIFD notmod_or_lmod to still block ; (((ten meters) (in Paris)) (under Berlin)) while once again allowing ; "directly down under Berlin". ;; DPF 2012-04-08 - Propagate POSTHD from SPEC, to block e.g. ;; |the three-foot taller than Kim tree| ;; DPF 2012-09-12 - Let's try blocking these as spr's of nominal phrases, ;; (changing HEAD n_or_p_or_a to a_or_p), to avoid extra ambiguity of e.g. ;; |Kim arose a year earlier| where |earlier| is the noun. ;; meas_np_degadv_phrase := norm_unary_phrase & [ INFLECTD #bool, SYNSEM phr_degree_spec_synsem & [ LOCAL [ CAT [ HEAD adv & [ MINORS [ MIN much_or_very_deg_rel, ALTMIN #min ] ], VAL [ SPEC < synsem & [ LOCAL [ CAT [ HEAD a_or_p & [ PRD #bool ], POSTHD #ph ], CONT.HOOK.LTOP #sphand ] ] >, SPR < [ LOCAL.CAT.HEAD adv ] >, COMPS < > ], POSTHD #ph ], CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ] ], ARGS < [ INFLECTD #bool, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS.MIN #min & meas_nom_rel ], VAL [ SPR.FIRST synsem & [ LOCAL.CAT.HEAD det ], SPEC < > ] ], CONT.HOOK [ LTOP #nhand, INDEX #nindex ], CONJ cnil ], MODIFD notmod_or_lmod ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #sphand, INDEX #nindex, XARG #argind ], RELS , HCONS ] ]. ; If used with attrib adj, the integer need not have picked up its specifier: ; |the hundred meter tall building| or |the one hundred meter tall building| meas_np_degadv_attr_phrase := meas_np_degadv_phrase & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD.PRD - ] > ]. ; If used with predicative adj, the integer must have picked up its specifier: ; |*the building is hundred meters tall| meas_np_degadv_pred_phrase := meas_np_degadv_phrase & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.CAT.HEAD adj & [ PRD + ] ] >, ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR.REST *anti_list* ] > ]. ; DPF 5-Apr-01 - For "two hundred is enough" ; DPF 13-May-01 - Added [SYNSEM..LPERIPH +] to prevent these numbers from ; being modified. ; DPF 31-Oct-01 - But this blocks "order 123 for a chair was cancelled." ; DPF 22-May-01 - Added [LEX -] to prevent these from appearing as left members ; of noun-noun compounds as in "sixty books". ; DPF 29-May-02 - Removed MOD < synsem > from ARGS.FIRST, so "one" can also ; undergo this rule. ; DPF 31-May-02 - Added [ARGS..FIRST..HEAD.PRD -] to block "a/an" ; DPF 19-Oct-02 - Want to preserve LEX value on mother from dtr, so change ; from 22-May-01 and instead make mother be ALTMIN never_unify_rel, to still ; prevent n-n-cmpnd participation. Also make sign not phrasal. ; DPF 28-Nov-02 - HOOK comes only from C-CONT, since rule further specifies ; keyrel integer relation to named_num_rel. ; DPF 01-Feb-03 - Required daughter's SPR to be saturated, to block e.g. ; "*hundred arrives". ; DPF 23-May-03 - Returned to issue from 31-Oct-01, and put back constraint ; preventing modification - getting too many spurious parses for "ten to three" ; and that purported counterexample is presumably non-restrictive modification ; of some kind (cf oddness of NP without title: "123 for a chair"). ; DPF 5-Sep-03 - Changed ALTMIN never_unify_rel to number_q_rel so it will ; still undergo hdn_bnp-num_c rule. ; DPF 5-Sep-03 - Added CARDINAL + to prevent num. "third" from becoming a noun. ; DPF 16-oct-03 - Added SORT number to mother, to prevent "Abrams five" compnd. ; DPF 03-may-04 - But this SORT constraint prevented e.g. "that box is number ; five" and "my candidate, number five, lost". So instead make use of the ; nonpro_rel constraint on heads of N-N-compounds, and make named_num_rel not ; be a subtype of nonpro_rel. ; DPF 03-may-04 - Changed SPR number_q_rel to def_or_proper_q_rel (and same ; for HEAD..ALTMIN) to also allow "My (number) five arrived" ; DPF 03-may-04 - Changed LPERIPH from + to na in order to prevent simple ; num-nouns from appearing as appositives ("*Abrams five"), while allowing ; modified numbers there ("Abrams, number five, arrived") ; DPF 07-jul-06 - Recently added MODIFD lmod to block aj-hdn_adjn_c rule, but ; this interacts badly with constraint on titles as in "Highway 66 near Phx" ; so change to notmod instead. ; DPF 31-dec-08 - RE 03-may-04: SPR.--MIN needs to be more general, to allow ; "She rolled a six", "Every six is even". ;; DPF 2012-12-21 - Constrain SPR..HEAD to prevent e.g. reduced rels ;; num_or_color_noun_phrase := norm_unary_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT nbar_cat & [ HEAD noun & [ MOD < > ], VAL [ SPR < [ --MIN quant_rel, LOCAL [ CAT [ HEAD det, VAL.SPR *olist* ], AGR.PNG.PN 3s ], NONLOC [ QUE #que, REL #rel ], OPT - ] >, SPEC < anti_synsem_min > ] ], CONT nom-obj & [ HOOK [ LTOP #nhand, INDEX #index & nonconj_ref-ind & [ SORT basic_entity, PNG.PN 3s ] ]], CONJ cnil, AGR.PNG.PN 3s ], NONLOC [ SLASH 0-dlist, QUE #que, REL #rel ], LEX #lex, MODIFD notmod & [ LPERIPH #lperiph ] ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD adj_or_intadj & [ MINORS.MIN integer_or_color_rel, PRD - ], VAL.COMPS < > ], CONJ cnil, CONT.HOOK [ LTOP #nhand, INDEX #index ] ], LEX #lex, MODIFD notmod & [ LPERIPH #lperiph ] ] ] >, C-CONT [ RELS , HCONS ] ]. ; DPF 14-nov-09 - Can't make integers be of SORT `number' distinct from ; 'entity' (tempting, to block "Abrams one") because we also want ; "Kim is ten" which we currently treat as identity-copula with NP "ten" ; num_noun_phrase := num_or_color_noun_phrase & [ SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN #altmin & named_num_rel, CONT.HOOK.INDEX.SORT entity ], PHON #phon ], ARGS < [ SYNSEM [ LOCAL.CAT [ HEAD [ CARDINAL +, MINORS [ MIN integer_rel, ALTMIN #altmin ] ], VAL [ SPR *anti_list*, SPEC *synlist* ] ], PHON #phon ] ] > ]. color_noun_phrase := num_or_color_noun_phrase & [ SYNSEM.LOCAL [ CAT.HEAD.MINORS [ MIN norm_nom_rel, NORM norm_rel ], CONT.HOOK.INDEX.SORT entity ], ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN color_rel ] > ]. ; DPF 19-Oct-02 - Restricted dtrs to be LEX + to avoid spurious ambiguity ; for e.g. "two thirty to five". Also made mother LEX + to allow recursion, ; removing phrasal parent as well, ; and made mother ALTMIN number_q_rel to still prevent these guys in ; n-n-compnds. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 02-jul-09 - Added HD-DTR..LPERIPH na to prevent these from heading ; np_title_cmpnd_phr, as in "June 12, 2002". Also added nonconj_ref-ind ; to each dtr, to avoid spurious analysis for "2002 and Kim, 2004" num_noun_sequence_phrase := binary_phrase & [ SYNSEM [ LOCAL [ CAT nomp_cat & [ HEAD noun & [ MOD < >, MINORS [ MIN num_seq_nom_rel, ALTMIN number_q_rel ] ] ], CONT nom-obj & [ HOOK [ INDEX #index & [ SORT #sort ] ] ], CONJ cnil, AGR #index & [ PNG.PN 3s ] ], NONLOC #nonlocal, MODIFD.LPERIPH na, LEX +, PUNCT.PNCTPR #ppair ], ARGS < [ SYNSEM [ LOCAL [ CAT nomp_cat & [ HEAD.MINORS.MIN named_num_or_seq_rel ], CONJ cnil, CONT.HOOK.INDEX nonconj_ref-ind & #index1 ], NONLOC #nonlocal, PUNCT.RPUNCT hyphen_sgl_or_no_punct, LEX + ] ], [ SYNSEM [ LOCAL [ CAT nomp_cat & [ HEAD.MINORS.MIN named_num_rel ], CONJ cnil, CONT.HOOK.INDEX nonconj_ref-ind & #index2 & [ SORT #sort ] ], NONLOC #nonlocal, PUNCT [ RPUNCT clause_or_no_punct, PNCTPR #ppair ], LEX + ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; DPF 12-Mar-99 - Can't simply identify HEAD of HD-DTR with SLASH..HEAD of ; NH-DTR, since these two HEAD values themselves include MOD, which ; includes SUBJ values, which include CONT, and since the free relative ; combines with an S (not a VP), that SUBJ.CONT of the S/NP is now identified ; with the semantics of the S/NP's subject, but now it's not possible to ; use the free_rel phrase as a VP modifier, because it will eventually want to ; unify that same MOD.SUBJ.CONT with that of the subject of the VP that the ; free_rel modifies, but the RELS value of that attribute is already bound to ; the earlier subject's RELS. ; So we have each free-rel lexical entry specify the relevant constraints on ; the SLASH of its sister in this construction. ; The QUE value of the free relatives is a singleton list containing an index ; instead of a handle - this distinguishes free relatives from question words, ; and makes available this index for interpretation at the ltop of the phrase, ; which may be desirable if there is indeed ambiguity in the meaning of ; examples like "I'll interview whoever's frog wins this race." (We're not ; doing anything with that index just now, beyond checking for its presence.) ; DPF (1-May-99) Removed identification of HD-DTR..MIN and NHD-DTR..SLASH..MIN ; since the slash's MIN is already identified with the main verb's MIN in the ; non-head dtr, for independent reasons. Don't know what work this was ; supposed to do, anyway. ; ; DPF 10-Jun-99 - Added SUBJ *olist* to head-dtr, to prevent e.g. "one to three". ; DPF 24-Mar-01 - Removed [MODIFD notmod] from mother, since free-rels need ; to be able to undergo npadv_mod_phrase. ; DPF 8-Nov-01 - Made non-hd-dtr be either infinitival or finite in ; order to get "advise me on where to go" as well as "advise me on where I ; should go" ;; DPF 2010-jul-21 - Changed SUBJ < > to SUBJ < anti_synsem_min > to block ;; free relatives in appositives and as possessive NPs. Maybe not strictly ;; impossible, but let's exclude them for now. FIX? ;; DPF 2010-sept-09 - Changed HD-DTR..SPR *olist* to *anti_list*, since we ;; recently added second SPR list element (anti_synsem) which is marked OPT - ;; (for reasons not immediately recallable). ;; DPF 2012-11-14 0 Added phr_synsem to HD-DTR to enforce the discharging ;; of the optional SPR for free relatives, to avoid spurious ambiguity. ;; free_rel_phrase := head_initial_infl & head_compositional & [ SYNSEM [ LOCAL [ CAT [ HEAD n_or_p, MC na, VAL [ SUBJ < anti_synsem_min >, COMPS < >, SPR < >, SPEC < anti_synsem_min > ], POSTHD + ], CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ], LEX -, PUNCT.PNCTPR #ppair ], HD-DTR.SYNSEM phr_synsem & [ LOCAL [ CAT [ HEAD.MINORS.MIN independent_rel, VAL [ COMPS < >, SPR *anti_list*, SUBJ *olist* ] ], CONT.HOOK.XARG #hand ], NONLOC [ QUE 1-dlist & , SLASH 1-dlist & ], PUNCT.RPUNCT no_punct ], NH-DTR.SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM fin, INV -, TAM #tam & [ MOOD indicative ], --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], VAL [ SUBJ *olist*, SPR *olist*, COMPS < > ], MC - ], AGR.PNG.PN #pn, CONT [ HOOK [ LTOP #hand, INDEX.SF prop, --SLTOP #sltop ] ] ], NONLOC [ SLASH 1-dlist & , SPR *olist* ], CONT.HOOK.LTOP #sltop ] !>, QUE 0-dlist, REL 0-dlist ], PUNCT.PNCTPR #ppair ], C-CONT [ RELS , HCONS ] ]. ; For "two hundred twenty remain" ; DPF 31-May-02 - Added [ARGS..FIRST..HEAD.PRD -] to block "a/an" ; DPF 3-Jul-02 - Added [ARGS..INDEX..PN 3p] to block "one", since already ; get determiner-partitive for "one". ; DPF 19-Oct-02 - Made SPR be LEX + to avoid getting complex measure-NPs ; as specifiers. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 01-Feb-03 - Since we now require the COMPS list to be empty for all NPs, ; and we also constrain the hdn_optcmp_c rule to apply only to lexical heads (to ; get the interaction with noun-noun compounds right), we have to have two ; rules for partitive numbers, one for no-complement ones as in "three arrive" ; and one for those with of-PP complement, as in "three of them arrive". This ; is in fact parallel to what we've decided to do for ordinary partitives, so ; no real surprise. ; DPF 13-May-03 - From 3-Jul-02, undid this since now using this rule instead ; for "one" partitive. ; DPF 05-Dec-03 - Added [SORT entity] to prevent spurious parses for 'from ten ; o'clock to eleven'. ; DPF 10-dec-03 - ARGS..SPEC *synlist* excludes ordinary NPs which have ; SPEC < anti_synsem > to distinguish them from measure NPS. So this rule ; applies to numerals ('ten', 'forty-two') and measure NPs: 'ten miles of road' ; DPF 20-sept-04 - Removed SPR..QUE 0-dlist from mother, since we need e.g. ; "which one (of the students) arrived?" ; DPF 7-mar-05 - Removed ARGS..MOD < [ LOCAL.AGR #index ] > since this ; prevented meas-NPs from undergoing it. Maybe redundant anyway? ; DPF 14-mar-05 - Added LPERIPH na to prevent these from being modified by ; pre-head cardinal adjectives, as in spurious "The twenty seven arrive" ; DPF 14-apr-05 - Added MODFID notmod to dtr, to prevent "*three in paris of ; the chairs". ; DPF 08-jul-06 - Re: 7-mar-05: Once again removed SPR..QUE 0-dlist, which ; somehow crept in again here. Let's try instead pushing this constraint ; down to partitive_np_num_phrase, to avoid WH-adv specifiers for NP ; partitives, while still allowing them for nbar-partitives. ; DPF 15-jul-06 - Re 05-Dec-03: But this blocks coordinations like ; "We stayed for two days or three." - Not really spurious, just uncooperative. ; So removed constraint. ; DPF 27-apr-08 - Added ARGS..MODIFD notmod, at least to block spurious ; aj-hdn_adjn_c analysis of "tall one" with partitive_intadj_nocomp_rule. ; We'll see if this was too ambitious. ; DPF 28-apr-08 - Well, yes, too ambitious - this blocks "a hundred" with ; partitive_num_nocomp. So move notmod down to partitive_intadj_phrase. ; DPF 2010-08-31 - Re 14-mar-05: But this also blocks "the two oldest", so ; push constraint down to subtype partitive_np_num_phrase. ; DPF 2011-04-16 - Re 31-May-02: Removed [PRD -] from dtr, in order to allow ; |this many arose|. Okay since already using NORM attribute to block |a/an| ; while allowing |one| here. basic_partitive_num_phrase := unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD partn & [ MOD < >, POSS - ], VAL [ SUBJ < >, SPR < synsem & [ LOCAL [ CAT.VAL [ SPR *olist*, COMPS < > ], AGR #index ], NONLOC.REL 0-dlist, LEX + ], ... >, SPEC < anti_synsem_min > ], HC-LEX - ], CONT nom-obj, CONJ cnil, AGR #agr ] ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD adj_or_intadj & [ MOD < synsem & [ LOCAL.AGR #agr & [ PNG #png, DIV #div ] ] > ], VAL [ SUBJ < >, COMPS < > ] ], CONJ cnil, CONT.HOOK [ LTOP #nhand, XARG #index ] ], PUNCT.LPUNCT pair_or_no_punct ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #nhand, INDEX #index & overt_non_expl-ind & [ PNG #png, DIV #div ] ], RELS.LIST < [ LBL #nhand, ARG0 #index, CFROM #from, CTO #to ], ... > ] ]. ; DPF 9-apr-05 - Try making SPR..MIN be just_only_deg_rel rather than ; just_only_degree_rel, excluding 'very' and its ilk: "*very five of the ; chairs" ; DPF 30-may-06 - ALTMIN was def_explicit_q_rel, but this undesirably feeds ; the appos_phr_prpnct rule's non-hd dtr as in "Abrams more arrived". So ; try making it def_implicit_q_rel (more intuitively), and see. ; DPF 28-apr-08 - Removed ARGS.SPEC *synlist* since this blocks ; "a dozen (of them) arrived", and its original motivation is (maybe) gone. ; Also added ARGS..ALTMIN norm_rel to block "an arrived" partitive_np_num_phrase := basic_partitive_num_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.ALTMIN def_implicit_q_rel, VAL.SPR < [ --MIN just_only_deg_rel, LOCAL [ CAT.HEAD adv, CONT.HOOK.LTOP #hand ], NONLOC.QUE 0-dlist ], anti_synsem_min & [ OPT - ] > ], NONLOC.QUE #que, MODIFD.LPERIPH na ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD intadj_or_comp & [ MINORS.ALTMIN norm_rel ], VAL.SPR *olist* ], CONT.HOOK.INDEX event ], NONLOC.QUE #que ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; DPF 03-may-04 - Changed generic_entity_rel to num_nocmpnd_rel to prevent ; these in N-N-cmpnds or appositives basic_partitive_num_nocomp_phrase := basic_partitive_num_phrase & [ SYNSEM [ LOCAL.CAT.VAL.COMPS < >, NONLOC [ SLASH #slash, REL 0-dlist ] ], ARGS < [ SYNSEM [ NONLOC [ SLASH #slash, REL 0-dlist ], PUNCT.RPUNCT comma_or_clause_or_pair_or_no_punct ] ] >, C-CONT.RELS.LIST.FIRST.PRED generic_entity_rel ]. ; DPF 03-oct-06 - Removed following constraint: blocked "many of the cats" ; ARGS < [ SYNSEM.LOCAL.CAT.VAL.SPR *anti_list* ] >, basic_partitive_num_ppof_phrase := basic_partitive_num_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.MIN part_of_rel, VAL.COMPS < synsem & [ --MIN _of_p_sel_rel, LOCAL [ CAT [ HEAD prep & [ PRD -, TAM [ TENSE nontense, ASPECT no_aspect ] ], VAL.COMPS < > ], CONT.HOOK [ INDEX #arg, XARG #xarg ] ], NONLOC [ SLASH #slash & 0-dlist, QUE 0-dlist, REL #rel ], OPT - ] > ], NONLOC [ SLASH #slash, REL #rel ] ], C-CONT [ HOOK [ INDEX.SORT #sort, XARG #xarg ], RELS.LIST.FIRST [ PRED part_of_rel, ARG1 #arg & overt_non_expl-ind & [ SORT #sort ] ] ] ]. ;; DPF 2012-05-12 - Added INDEX nonconj_ref-ind to prevent these from being ;; subj of do-be VPs. ;; partitive_num_nocomp_phrase := partitive_np_num_phrase & basic_partitive_num_nocomp_phrase & [ SYNSEM.LOCAL.CAT.HEAD.MINORS.MIN num_nocmpnd_rel, C-CONT.HOOK.INDEX nonconj_ref-ind ]. partitive_num_ppof_phrase := partitive_np_num_phrase & basic_partitive_num_ppof_phrase. ; Added variant of this rule for "the first (of the papers) was long" and ; "those two were good", where the conversion from adj to noun produces ; a common noun (still requiring a determiner), rather than an NP. ; DPF 26-aug-04 - Restrict ordinals to being DIV -, so they only appear ; with a determiner, to block "*I hired seventh (of the applicants)" partitive_intadj_phrase := basic_partitive_num_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN explicit_q_rel, VAL.SPR < canonical_synsem & [ LOCAL.CAT.HEAD det, NONLOC.QUE #que, OPT - ] >, HS-LEX - ], CONT.HOOK.INDEX.PNG #png, AGR #agr & [ PNG #png ] ], NONLOC.QUE #que, MODIFD notmod ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD adj_or_intadj & [ MOD < [ LOCAL.AGR #agr ] >, MINORS.ALTMIN comp_or_superl_rel ], VAL [ SPEC < anti_synsem_min >, SPR *anti_list* ] ], CONT.HOOK.INDEX non_conj_event ], MODIFD hasmod & [ LPERIPH na_or_+ ] ] ] >, C-CONT [ HOOK.LTOP #nhand, RELS , HCONS ] ]. partitive_intadj_nocomp_phrase := partitive_intadj_phrase & basic_partitive_num_nocomp_phrase & [ SYNSEM.LOCAL.CAT.HEAD.MINORS [ MIN part_nc_rel, ALTMIN quant_or_wh_rel ] ]. partitive_intadj_ppof_phrase := partitive_intadj_phrase & basic_partitive_num_ppof_phrase. ; For 'five chairs arrived' where 'five' is a determiner which can optionally ; take a degree specifier as in 'exactly five chairs arrived', contrasted ; with adjectival 'five' as in 'those five chairs arrived': '*those exactly ; five chairs arrived'. ; DPF 28-jul-06 - Restricted dtr's SPR to be OPT +, to block "*hundred chairs" ; DPF 06-sept-07 - Constrain dtr to be MODIFD notmod_or_rmod, to avoid spurious ; ambiguity for e.g. "at least six cats" ; DPF 20-apr-08 - Made mother be MODIFD hasmod so e.g. "one morning" can ; undergo np_adv_c rule. ; DPF 04-sep-09 - Re 20-apr-08: But this overgenerates: "*we arrived two years" ; So instead copy MODIFD from dtr to mother, so "one" can allow "hasmod" but ; "two" etc. won't. ; DPF 29-sep-09 - To block spurious analysis of "twenty five cats", require ; SPEC to be LPERIPH -. ;; DPF 2012-03-09 - The LPUNCT no_punct on the daughter is just wrong, since ;; we want to allow NP-initial punctuation like |(one idea| or |`one idea|. ;; So remove, and see what happens. ; num_det_phrase := unary_phrase & [ SYNSEM basic_det_synsem & [ LOCAL [ CAT [ HEAD.MINORS [ MIN num_q_rel, ALTMIN dofw_or_poss_q_rel ], VAL [ SPEC < [ LOCAL.CONT.HOOK.LTOP #nhand, MODIFD.LPERIPH -, --MIN nonpart_nom_rel ] >, SPR < [ --MIN just_only_deg_rel, LOCAL [ CAT.HEAD adv, CONT.HOOK [ LTOP #nhand, XARG #aind ] ] ] >, COMPS < >, SPCMPS < > ] ], CONJ cnil ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ], MODIFD #modif & notmod_or_lmod ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD intadj & [ CARDINAL +, PRD -, MOD < synsem & [ --MIN norm_nom_rel ] >, MINORS.MIN norm_rel ], VAL [ SPR *olist*, COMPS < > ] ], CONJ cnil, CONT.HOOK [ LTOP #nhand, INDEX event & #aind & [ E.TENSE no_tense ], XARG #index ] ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ], PUNCT.RPUNCT hyphen_or_comma_or_clause_or_no_punct, MODIFD #modif ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #index, RELS , HCONS ] ]. ; DPF 11-Oct-02 - It seems that this rule is only used for robust parsing ; where a word like "covers" has to be analyzed as a possessive. So let's ; make it ROBUST + (11-may-05: Now GENRE robust). ; DPF 28-Nov-02 - HOOK comes only from C-CONT possessed_np_phrase := norm_unary_phrase & phrasal & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD det & [ POSS +, MOD < >, MINORS [ MIN def_implicit_q_rel, ALTMIN poss_rel ] ], VAL [ SUBJ < >, SPR < >, COMPS < >, SPEC < [ LOCAL.CONT.HOOK [ LTOP #phand, INDEX #index ]]>] ], CONJ cnil ], NONLOC #nonlocal ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT nomp_cat_min & [ HEAD.MINORS.MIN nonpro_rel ], CONT.HOOK.INDEX #pindex & individual, CONJ cnil ], NONLOC #nonlocal ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #index, RELS , HCONS ], GENRE robust ]. ; For "the book's is red" ; DPF 10-jan-09 - For the present, block mass nouns, to at least avoid ; silly overgeneration in paraphrasing, as in "the metal box" => "the ; box of metal's" partitive_np_phrase := norm_unary_phrase & phrasal & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD partn & [ MOD < >, POSS -, MINORS [ MIN pron_part_rel, ALTMIN #altmin ] ], VAL [ SPR < anti_synsem_min & [ OPT - ] >, SUBJ < >, COMPS < > ] ], AGR #agr, CONJ #conj & cnil, CONT nom-obj & [ HOOK #hook & [ INDEX #agr ] ] ], NONLOC #nonloc ], ARGS < [ INFLECTD +, SYNSEM phr_synsem & [ LOCAL [ CAT [ HEAD det & [ POSS +, MINORS [ MIN #altmin & explicit_q_rel, ALTMIN poss_rel ] ], VAL [ SPR < >, COMPS < >, SPEC < [ LOCAL.CONT.HOOK #hook & [ LTOP #phand, INDEX #index ] ] > ] ], CONT.HOOK.XARG.IND +, CONJ #conj ], NONLOC #nonloc ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #index, RELS , HCONS ] ]. ; Vocatives ; Restrict to LEX +, to avoid appositives as vocatives (spurious ambiguity) ; DPF 06-mar-06 - XARG ?? ; DPF 13-jun-07 - Removed identif of MOD..XARG with the addressee_rel's LBL, ; since it was clearly wrong (prevented this rule from ever succeeding with ; attachment to S). ; DPF 22-apr-09 - Changed PRD to + to block these in frag_l_mod vocative_np_phrase := norm_unary_phrase & phrasal & [ INFLECTD +, SYNSEM disc_adv_phr_synsem & [ LOCAL [ CAT [ HEAD [ PRD -, MOD < [ LOCAL scopal_mod & [ CAT [ HEAD adverbee & [ TAM.TENSE real_tense ], VAL.SUBJ *olist* ], CONT.HOOK [ LTOP #ltop, INDEX #index ] ], OPT - ] >, MINORS.MIN abstr_excl_rel ], MC + ], CONJ #conj ], NONLOC #nonloc ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN named_rel, ALTMIN proper_q_rel ] ], VAL [ SPR *olist*, COMPS < >, SPEC < anti_synsem_min > ] ], CONT.HOOK.INDEX #argind, CONJ #conj ], LEX +, NONLOC #nonloc, PUNCT [ LPUNCT lparen_or_no_punct, RPUNCT hyphen_or_comma_or_pair_or_clause ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #index ], RELS , HCONS ] ]. ; DPF 15-feb-10 - Might consider generalizing the punctuation marker to ; allow opening single and double quotes, as well as explicit italics marker ; (replacing lital_punct with dq_or_sq_or_lital_punct), but at present we ; already get a N-N compound analysis for sequences of unknown words, so an ; additional FW analysis is not obviously useful. ;; DPF 2012-02-18 - We want double quoted phrases to be analyzable here, ;; since some are quoted sequences of ordinary English words, as in ;; |"Can't wait" is a familiar phrase.| ;; fw_sequence_left_phrase := binary_punct_phrase & [ INFLECTD na, SYNSEM [ LOCAL [ CAT [ HEAD fw, VAL [ SPR < >, SUBJ < >, COMPS < >, SPEC < > ] ], CONT nom-obj & [ HOOK [ LTOP #hand, INDEX #index ] ], CONJ cnil ], NONLOC #nonlocal & non-local_none, LEX + ], ARGS < [ INFLECTD na, SYNSEM [ LOCAL [ CONJ cnil, CONT.HOOK [ LTOP #hand, INDEX #index1 ] ], NONLOC #nonlocal, PUNCT [ LPUNCT lital_punct, RPUNCT pair_or_no_punct ], LEX + ] ], word_or_infl_or_punct_rule & [ INFLECTD +, SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN independent_rel, CONJ cnil, CONT.HOOK [ LTOP #hand, INDEX #index2 ] ], NONLOC #nonlocal, PUNCT [ LPUNCT no_punct, RPUNCT pair_or_no_punct, RCLSTR.RFP - ], LEX + ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. fw_sequence_right_phrase := basic_binary_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT nomp_cat & [ HEAD noun & [ MOD < >, MINORS.MIN norm_nom_rel ], VAL.SPR < > ], CONT nom-obj & [ HOOK [ LTOP #hand, INDEX #index ] ], CONJ cnil, AGR #index & [ PNG.PN 3s ] ], NONLOC #nonlocal & non-local_none, LEX +, PUNCT [ LPUNCT no_punct, RPUNCT clause_or_no_punct ] ], ARGS < [ SYNSEM [ LOCAL [ CAT.MC na_or_-, CONJ cnil, CONT.HOOK [ LTOP #hand, INDEX #index1 ] ], NONLOC #nonlocal, PUNCT [ LPUNCT lital_punct, RPUNCT comma_or_clause_or_no_punct ], LEX + ] ], word_or_punct_rule & [ SYNSEM [ LOCAL [ CAT [ HEAD subst_or_func, MC na_or_- ], CONJ cnil, CONT.HOOK [ LTOP #hand, INDEX #index2 ] ], NONLOC #nonlocal, PUNCT [ LPUNCT no_punct, RPUNCT comma_or_clause_or_pair_punct, RCLSTR.RFP + ], LEX + ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; Verbal gerund N-bars: 'hiring Kim' is important. ; DPF 23-jun-09 - Try restricting dtr to phr_synsem, to avoid spurious ; ambiguity with nominal gerund for simple intransitives, e.g. "arriving" ; DPF 28-jun-09 - Add RPERIPH + to prevent spurious ambiguity of post-modif. ; DPF 28-jan-10 - Generalized SUBJ..HEAD from noun to basic_noun, to allow ; partitive subjects, as in "none hiring Kim" ;; DPF 2010-10-24 - Discovered that we cannot identify the SPR..INDEX with ;; the SUBJ..INDEX (and thus the XARG of the dtr), since the spr's index ;; is already going to be identified with the INDEX of the nominalized ;; phrase, which is certainly not the ARG1 of the dtr. Instead, it's the ;; XARG of the possessive which presents the pronoun's index that we want. ; vgerund_phrase := unary_phrase & phrasal & [ SYNSEM [ LOCAL [ CAT [ HEAD gerund & [ MOD < >, PRD -, POSS -, MINORS.MIN gerund_rel ], VAL [ SUBJ < synsem & [ LOCAL [ CAT nomp_cat_acc_min & [ HEAD basic_noun ], CONJ cnil ], --SIND #subjind & non_expl-ind ] >, SPR < [ LOCAL local & [ CAT [ HEAD det & [ POSS + ], VAL [ SUBJ < >, SPR *olist*, COMPS < > ] ], CONT.HOOK.XARG #subjind ], OPT -, NONLOC #snonloc ] >, COMPS < > ], HS-LEX #lex ], CONT nom-obj & [ HOOK [ LTOP #hand, INDEX #ind & [ PNG png & [ PN 3s, GEN neut ], DIV + ] ] ], AGR #ind ], MODIFD.RPERIPH +, LEX #lex, NONLOC #nonlocal & non-local_none ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM prp, PRD + ], VAL [ SUBJ < [ --SIND #subjind, LOCAL.CAT.HEAD noun, NONLOC #snonloc ] >, COMPS < > ] ], CONT.HOOK [ LTOP #vhand, INDEX [ E.TENSE no_tense, SF prop ] ], CONJ cnil ], LEX #lex, NONLOC #nonlocal ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Coordinate structures ;; ; We set the MIN of the mother to be that of the right-hand daughter, rather ; arbitrarily, but the MIN needs to be set, since many lexical types select ; an argument based on the MIN value. ; We also need to set the type of the index on the mother, to match the types ; of the indices on the daughters. It looks like this will force us to make ; the kind of index a feature, not just a type, but for now we wrongly make the ; index be that of the right-hand daughter. This does not break subject-verb ; agreement for plural NPs, since we only change INDEX in this hack, not AGR. ; And we have to make sure that the BODY attributes of two conjoined ; quantified phrases are identified, but not clear how to do this. ; DPF (27-Apr-99) Both conjuncts have MIN constrained to independent_rel, since ; they may be relations underspecified for use as particles - by doing this, we ; exclude coordination of particles themselves, but this is probably okay. ; DPF (1-May-99) At present we overgenerate with conjoined propositions because ; we cannot identify the MSG values of the two conjuncts - that would wrongly ; make the MARG values of those two messages be identified. Hence we accept eg. ; "*I wonder who left and that Sandy arrived". As long as MSG values are ; typed relations, there doesn't seem to be a way out of this awkwardness. ; DPF (1-May-99) In the long run, we cannot simply identify the whole local ; values of SLASH for the two conjuncts, since this would mean that the handles ; of the two extracted elements would be wrongly identified - wrong at least ; for ordinary complements, which identify their LTOP handle with that of their ; head, meaning that in "the book Kim saw and Sandy liked" the handles for ; "saw" and "liked" would be identified, which is bad since these handles each ; fill a MARG role in distinct messages. ; DPF 20-Nov-99 - Made all coord_phr's be LEX - in order to avoid, among other ; things, coordinate structures as right members of noun-noun compounds, as in ; 'the seventeenth, twentieth, or twenty-third'. ; DPF 20-Jun-00 - Made LEX match on both conjuncts, to avoid e.g. "Kim [ had ; Sandy and would ] arise" (with causative "have") ; DPF 28-Aug-00 - But this will block "Kim and the cat arrived", so removed it. ; DPF 3-Feb-01 - Moved [ CONJ complex-conj ] on right dtr to subtypes, in order ; to let us treat run-on sentences as coordination. ; DPF 22-Mar-01 - Moved AGR.DIV reentrancy down to NP coordination, since ; want to allow non-like AGR.DIV values for sentence coordination, as in ; "I arrived and consultants left." ; DPF 29-may-07 - Changed constraint on RCONJ-DTR to be [LEX bool] rather ; than nonlex_synsem, so we can allow "etc," as right dtr. Conjunction words ; are now [LEX na]. ; DPF 25-jun-09 - Can't recall why mother's SLASH.LIST is *arglist*, excluding ; extracted modifiers. This blocks "In paris, we hire him with abrams or ; browne." FIX ; DPF 27-jul-09 - Block |an| in AP coord: "tall and an understanding arrived" ; Also remove nonloc identif from basic_coord_phr. ; DPF 2011-04-26 - Re 25-jun-09: This constraint also blocks "during which ; Kim arrived and Abrams arose". But it is well-motivated: there is no good ; way to construct a semantics for an extracted modifier across-the-board, ; since the modifier has to take its modifiee's INDEX event as its ARG1, and ; for a coordinated phrase, that has to be the conjoined index, not the ; (spurious) unification of the two individual events. So will have to ; allow for an extracted adjunct from a conjoined S (likely a new rule). ; For related fix to 25-jun-09 ex., see 2011-05-01 change to head_adj_phrase. min_coord_phr := basic_binary_phrase & non_headed_phrase & [ SYNSEM.NONLOC #nonloc, LCONJ-DTR sign & [ SYNSEM.NONLOC #nonloc ], RCONJ-DTR sign & [ SYNSEM.NONLOC #nonloc ] ]. #| basic_coord_phr := min_coord_phr & [ INFLECTD #infl, SYNSEM [ PUNCT.PNCTPR #ppair, LOCAL.CONT.HOOK.LTOP #ltop ], LCONJ-DTR sign & #left & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN independent_rel, CONT.HOOK [ INDEX individual ] ], LEX #lex ] ], RCONJ-DTR #right & [ INFLECTD #infl, SYNSEM [ LOCAL [ CONT.HOOK.INDEX individual, CONJ.CLEX #lex ], LEX bool, PUNCT.PNCTPR #ppair ] ], C-CONT.HOOK.--SLTOP #ltop, ARGS < #left, #right > ]. |# basic_coord_phr := min_coord_phr & [ INFLECTD #infl, SYNSEM [ PUNCT.PNCTPR #ppair ], LCONJ-DTR sign & #left & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT.HEAD.MINORS.MIN independent_rel, CONT.HOOK [ INDEX individual ] ], LEX #lex ] ], RCONJ-DTR #right & [ INFLECTD #infl, SYNSEM [ LOCAL [ CONT.HOOK.INDEX individual, CONJ.CLEX #lex ], LEX bool, PUNCT.PNCTPR #ppair ] ], ARGS < #left, #right > ]. coord_phr := basic_coord_phr & [ SYNSEM.LOCAL.CAT [ HEAD.MOD #mod ], LCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.MOD #mod ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD.MOD #mod ], CONJ complex-conj ] ]. ; DPF 10-mar-05 - Pushed [LEX -] down to dtrs, since need to allow ; at least non-finite verbs to be able coordinate as LEX + since the ; passives can be attributive adjectives: "The admired and hated politicians" ;; DPF 2012-06-22 - Moved AGR.PNG unif of mother and right dtr down to some subtypes, ;; excluding s_coord, since we want to be able to coordinate sentences with unlike ;; AGR, and then have that coordinated S be a complement, as in ;; |we describe what happened and how it felt|, where for other reasons the AGR of ;; the mother is unified with the AGR of the left dtr. ;; norm_coord_phr := coord_phr & [ INFLECTD +, ARGS < [ INFLECTD + ], [ INFLECTD + ] > ]. ; [SPR..no_rel] prevented attachment of modifiers to no_cop phrases, but ; this incorrectly blocks "rain possible today". ; ARGS..SPR *olist* blocks e.g. "ago" as nocop_vp ; DPF 10-Sep-01 - Changed MIN to be no_rel, to block nocop_vp as root phrase. ; DPF 13-Sep-01 - Removed ROBUST - from dtr, since want "message received" ; DPF 25-aug-04 - Changed SYNSEM..SUBJ..CASE from nom to acc, since want ; 'with me in Paris', not '*with I in Paris'. no_copula_be_phrase := norm_unary_phrase & phrasal & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD frag & [ PRD -, MINORS [ MIN no_rel, ALTMIN #min ], TAM #tam ], VAL [ SUBJ < synsem & [ LOCAL [ CAT nomp_cat_min & [ HEAD.CASE acc, VAL.SPR < > ], CONT [ HOOK.INDEX #ind ]]] >, SPR < anti_synsem_min >, COMPS < > ], MC na ], CONT [ HOOK [ INDEX.E #tam & [ TENSE no_tense ], XARG #ind & ref-ind ] ], CONJ cnil ], NONLOC #nonloc & [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist, QUE 0-dlist ] ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN #min, VAL [ COMPS < >, SPR *olist* ], MC na ], CONJ cnil ], NONLOC #nonloc ] ] >, C-CONT [ HOOK.INDEX.E.TENSE no_tense, HCONS ] ]. ; DPF 28-Nov-02 - HOOK comes only from C-CONT no_copula_prd_phrase := no_copula_be_phrase & [ SYNSEM.LOCAL [ CAT.HEAD.MOD < >, CONT.HOOK.XARG #xarg, AGR #agr ], ARGS < [ SYNSEM.LOCAL [ CAT.HEAD v_or_a_or_p & [ PRD +, MOD < [ --MIN event_rel, LOCAL intersective_mod ]> ], CONT.HOOK [ LTOP #hand, INDEX non_expl, XARG #xarg ], AGR #agr ] ] >, C-CONT [ HOOK.LTOP #hand, RELS ] ]. ; DPF 21-Nov-01 - Added ROBUST - to dtr, to block bare-sing-nps. ; DPF 28-Nov-02 - HOOK comes only from C-CONT no_copula_id_phrase := no_copula_be_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD [ MOD < >, TAM #tam ], VAL.SUBJ < [ LOCAL [ CAT nomp_cat_min, AGR #agr ], --SIND #id1ind ] > ], CONT.HOOK.INDEX.E #tam, AGR #agr ], ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN nonpro_rel, ALTMIN non_conj_rel ] ], VAL [ SUBJ < >, SPR < >, COMPS < > ] ], CONT.HOOK.INDEX #id2ind ], GENRE edited ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #hand, INDEX #event ], RELS ] ]. ; DPF 25-Sept-01 - Changed SPR *olist* to < >, to prevent e.g. PPs from ; attaching to no_cop S rather than to the no_cop VP. ; DPF 28-Nov-02 - HOOK comes only from C-CONT no_copula_nosubj_phrase := non_rel_clause & head_valence_phrase & head_only & [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN #min, VAL [ SUBJ < >, SPR < >, COMPS < > ], MC + ], CONT.HOOK.INDEX.SF prop ], NONLOC #nonloc ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD verb & [ MOD < >, PRD -, VFORM fin, TAM.TENSE no_tense, MINORS.MIN #min ], VAL [ SUBJ < synsem & [ OPT + ] >, COMPS < > ], MC na ], CONT.HOOK.LTOP #hdtop, CONJ cnil ], NONLOC #nonloc & [ SLASH 0-dlist, REL 0-dlist, QUE 0-dlist ] ], C-CONT [ HOOK.LTOP #hdtop, RELS , HCONS ] ]. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; Proto-instance types ; DPF 12-Nov-03 - Experimentally, make the XARG of this phrase be the LTOP ; of the head-dtr, in order to support "on Tuesday who arrived" where the ; PP should share the handle of the VP (as if it had been extracted). ; DPF 30-aug-04 - Split subj_rule_decl into MC+ and MC- in order to enforce ; unification of msg from punctuation mark on main clause phrases only, to ; get "Kim arrived?" but not "*I wonder Kim arrived?" subjh_rule_basic := binary_rule_right_to_left & basic_binary_headed_phrase & head_valence_phrase & [ SYNSEM.LOCAL.CAT [ MC bool, POSTHD + ], HD-DTR.SYNSEM.NONLOC.QUE 0-dlist, NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.POSS -, NONLOC.QUE 0-dlist ] ]. subjh_rule_decl := subjh_rule_basic & decl_phrase & [ SYNSEM.LOCAL.CAT [ MC bool, POSTHD + ], HD-DTR.SYNSEM.NONLOC.QUE 0-dlist, NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.POSS -, NONLOC.QUE 0-dlist ] ]. ;; DPF 2010-jul-24 - FIX: Identifying PSF and SF wrongly makes [SF ques] ;; for "Kim wondered, who arose?" ;; DPF 2010-sept-10 - Since all filler-head rules require MC na_or_- for ;; the hd-dtr, we can constrain this rule to be SLASH 0-dlist. subjh_mc_rule := subjh_rule_decl & head_subj_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM fin, TAM indic_tam ], MC + ], CONT.HOOK [ INDEX.SF #pred & prop-or-pol-ques-or-comm, LTOP #ltop, --SLTOP #ltop ] ], NONLOC.SLASH 0-dlist, PUNCT.RPUNCT.PSF #pred ] ]. ; Constrain nh-dtr to be HEAD n_or_v to exclude locative inversion in ; non-main clauses ; Note that this rule does not exploit the PSF marking, unlike the main ; clause variant, so we get "Did Kim deny that Browne arrived?" even though ; 'deny' doesn't take an interrogative CP complement. ;; DPF 2011-jun-11 - Recalled why this type does not inherit from `clause': ;; since we're still underspecifying bse-or-n3sg verb forms, and we treat ;; one of the subjunctive forms as just the base form, we can't require that ;; embedded clauses add-in the n3s constraint on the subject, if we still ;; want to parse "we demand that he remain." Instead, need to impose the ;; add-in unification for the complement of non-subjunctive-CP-taking verbs ;; (and presumably other non-main-clause contexts). Hmm... subjh_nonmc_rule := subjh_rule_decl & head_subj_phrase & [ SYNSEM.LOCAL.CAT [ HEAD.VFORM fin_or_bse, MC - ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD n_or_v ]. subjh_rule_wh_insitu := binary_rule_right_to_left & head_subj_phrase & clause & [ SYNSEM [ LOCAL [ CAT [ HEAD v_or_g & [ VFORM fin, INV -, PRD -, TAM indic_tam ], MC +, POSTHD + ], CONT.HOOK.INDEX.SF #pred & ques ], NONLOC [ SLASH 0-dlist, QUE 0-dlist, REL 0-dlist ], PUNCT.RPUNCT.PSF #pred ], HD-DTR.SYNSEM [ LOCAL.CONT.HOOK [ LTOP #ltop, INDEX #ind ], NONLOC [ QUE 1-dlist, REL 0-dlist, SLASH 0-dlist ] ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD.POSS -, NONLOC.QUE 0-dlist ], C-CONT [ HOOK [ LTOP #ltop, INDEX #ind & [ SF ques ] ], RELS , HCONS ] ]. ; DPF 04-aug-10 - Block free relatives via NH-DTR..HEAD value subjh_nonfin_robust_rule := subjh_rule_basic & head_subj_phrase & non_rel_clause & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM non_pas, TAM indic_tam & [ ASPECT.PRF - ] ], MC bool ], CONT.HOOK.INDEX.SF #pred & prop-or-pol-ques ], NONLOC.SLASH 0-dlist, PUNCT.RPUNCT.PSF #pred ], HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #hdtop, INDEX #hdind ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD noun, C-CONT [ HOOK [ LTOP #hdtop, INDEX #hdind ], RELS , HCONS ] ]. ; DPF 22-nov-07 - For now, don't allow bare-sg NPs as subjects here, to ; avoid too much ambiguity - maybe FIX later, if this is too restrictive ; subjh_robust_rule := subjh_rule_decl & basic_head_subj_phrase & clause & [ SYNSEM.LOCAL.CAT [ HEAD [ VFORM fin, TAM indic_tam & [ TENSE present ] ], MC + ], HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.ALTMIN non_ellipt_rel, VAL.SUBJ < canonical_synsem & [ LOCAL [ CAT #cat, CONT #cont, CONJ #conj, CTXT #ctxt ], NONLOC #nonloc, --SIND ref-ind & #sind, OPT #opt, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct ] > ], CONT.HOOK.INDEX non_conj_event ], NONLOC.SLASH 0-dlist ], NH-DTR.SYNSEM [ LOCAL [ CAT #cat & [ HEAD noun & [ --BARE -, MINORS.ALTMIN non_freerel_q_rel ] ], CONT #cont, CONJ #conj, CTXT #ctxt ], NONLOC #nonloc, --SIND #sind, OPT #opt, LEX #lex, MODIFD #modifd, PHON #phon, PUNCT #punct & [ RPUNCT pair_or_no_punct ] ], GENRE robust ]. subjh_robust_3s_v_rule := subjh_robust_rule & [ SYNSEM.LOCAL.AGR.PNG.PN 3s, HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.AGR.PNG.PN 3s ] >, NH-DTR.SYNSEM.LOCAL.AGR.PNG.PN -3s ]. subjh_robust_n3s_v_rule := subjh_robust_rule & [ SYNSEM.LOCAL.AGR.PNG.PN -3s, HD-DTR.SYNSEM.LOCAL.CAT.VAL.SUBJ < [ LOCAL.AGR.PNG.PN -3s ] >, NH-DTR.SYNSEM.LOCAL.AGR.PNG.PN 3s ]. hcomp_rule := binary_rule_left_to_right & head_comp_phrase. h2comp_rule := binary_rule_left_to_right & head_second_comp_phrase. hoptcomp_rule := rule & head_opt_comp_phrase. noptcomp_rule := rule & noun_opt_comp_phrase. hmark_e_phr_rule := binary_rule_left_to_right & head_marker_phrase_e_phr. hmark_s_phr_rule := binary_rule_left_to_right & head_marker_phrase_s_phr. hmark_a_lex_rule := binary_rule_left_to_right & head_marker_phrase_a_lex. hmark_nom_rule := binary_rule_left_to_right & head_marker_phrase_nom. hmark_nbar_rule := binary_rule_left_to_right & head_marker_phrase_nbar. hmark_atomic_rule := binary_rule_left_to_right & head_marker_phrase_atomic. extracomp_rule := rule & extracted_comp_phrase. extrasubj_fin_rule := rule & extracted_subj_phrase_fin. ;extrasubj_inf_rule := rule & extracted_subj_phrase_inf. hspec_rule := binary_rule_right_to_left & head_spec_phrase. hspec_hc_rule := binary_rule_right_to_left & head_spec_hc_phrase. hspec_hc_cmp_rule := binary_rule_right_to_left & head_spec_hc_cmp_phrase. adjh_s_rule := binary_rule_left_to_right & adj_head_scop_phrase. ;adjh_s_xp_rule := binary_rule_left_to_right & adj_head_scop_xp_phrase. adjh_s_prpnct_rule := binary_rule_left_to_right & adj_head_scop_prpnct_phrase. adjh_s_nopair_rule := binary_rule_left_to_right & adj_head_scop_nopair_phrase. ;adjn_i_rule := binary_rule_left_to_right & adj_n_infl_phrase. ;adjn_ni_rule := binary_rule_left_to_right & adj_n_noninfl_phrase. adj_n_rule := binary_rule_left_to_right & adj_n_phrase. adj_adjn_rule := binary_rule_left_to_right & adj_adjn_phrase. adjh_i_rule := binary_rule_left_to_right & adj_h_int_phrase. ;adj_adjh_i_rule := binary_rule_left_to_right & adj_adjh_int_phrase. adjh_i_inv_rule := binary_rule_left_to_right & adj_head_inv_phrase. adjh_i_rel_rule := binary_rule_left_to_right & adj_head_rel_phrase. hadj_s_prpnct_rule := binary_rule_right_to_left & head_adj_scop_prpnct. hadj_s_nopair_rule := binary_rule_right_to_left & head_adj_scop_nopair. hadj_i_relcl_pr_rule := binary_rule_right_to_left & n_adj_relcl_prpnct. hadj_i_relcl_npr_rule := binary_rule_right_to_left & n_adj_relcl_nopair. hadj_i_redrel_pr_rule := binary_rule_right_to_left & n_adj_redrel_prpnct. hadj_i_redrel_npr_rule := binary_rule_right_to_left & n_adj_redrel_nopair. hadj_i_unsl_rule := binary_rule_right_to_left & h_adj_unsl_phrase. hadj_i_sl_rule := binary_rule_right_to_left & h_adj_sl_phrase. v_mod_int_rule := binary_rule_left_to_right & v_mod_int_phrase. v_mod_scop_rule := binary_rule_left_to_right & v_mod_scop_phrase. conj_mod_int_rule := binary_rule_left_to_right & conj_mod_int_phrase. conj_mod_scop_rule := binary_rule_left_to_right & conj_mod_scop_phrase. extradj_i_vp_rule := rule & extracted_adj_int_vp_phrase. extradj_i_s_rule := rule & extracted_adj_int_s_phrase. extradj_i_s_coord_rule := rule & extracted_adj_coord_s_phrase. ;;extradj_npadv_rule := rule & extracted_adj_npadv_phrase. fin_non_wh_rel_rule := rule & fin_non_wh_rel_cl. inf_non_wh_rel_rule := rule & inf_non_wh_rel_cl. inf_non_wh_subj_rel_rule := rule & inf_non_wh_subj_rel_cl. instr_inf_non_wh_rel_rule := rule & instr_inf_non_wh_rel_cl. fin_modgap_rel_rule := rule & fin_modgap_rel_cl. inf_modgap_rel_rule := rule & inf_modgap_rel_cl. red_rel_cl_rule := rule & red_rel_cl. subconj_prdp_prp_rule := rule & subconj_prdp_prp_phr. subconj_prdp_pas_rule := rule & subconj_prdp_pas_phr. ;subconj_prdp_pas_sl_rule := rule & subconj_prdp_pas_sl_phr. ;subconj_prdp_pas_lex_rule := rule & subconj_prdp_pas_lex_phr. subconj_prdp_adj_rule := rule & subconj_prdp_adj_phr. subconj_prdp_ellip_rule := rule & subconj_prdp_ellip_phr. subconj_prdp_a_init_rule := rule & subconj_prdp_a_init_phr. subconj_prdp_v_init_lex_rule := rule & subconj_prdp_v_init_lex. subconj_prdp_v_init_rule := rule & subconj_prdp_v_init_phr. np_pred_rule := binary_rule_right_to_left & np_pred_phr. ; ERB (19-01-98) The single non_wh_rel_rule dream didn't come true. ; non_wh_rel_rule := rule & non_wh_rel_cl. bare_np_rule := rule & bare_np_phrase. bare_np_prd_rule := rule & bare_np_prd_phrase. ;bare_nomger_rule := rule & bare_nomger_phrase. proper_np_rule := rule & proper_np_phrase. ;proper_np_conj_rule := rule & proper_np_conj. num_np_rule := rule & num_np_noconj. ;num_np_conj_rule := rule & num_np_conj. bare_npq_rule := rule & bare_npq_phrase. bare_np_sg_rule_robust := rule & bare_np_sg_phrase_robust. detlesspp_np_nmod_rule := rule & detlesspp_np_nmod_phrase. detlesspp_np_jmod_rule := rule & detlesspp_np_jmod_phrase. detlesspp_np_nomod_rule := rule & detlesspp_np_nomod_phrase. bare_vger_rule := rule & bare_vger_phrase. np_n_cmpnd_rule := binary_rule_right_to_left & np_n_cmpnd_phr. np_n_cmpnd_pr_rule := binary_rule_right_to_left & np_n_cmpnd_pr_phr. np_title_cmpnd_rule := binary_rule_right_to_left & np_title_cmpnd_phr. np_title_cmpnd_pl_rule := binary_rule_right_to_left & np_title_cmpnd_pl_phr. np_name_cmpnd_rule := binary_rule_right_to_left & np_name_cmpnd_phr. np_num_cmpnd_rule := binary_rule_right_to_left & np_num_cmpnd_phr. np_city_state_rule := binary_rule_right_to_left & np_city_state_phr. noun_n_cmpnd_rule := binary_rule_right_to_left & noun_n_cmpnd_phr. noun_adjn_cmpnd_rule := binary_rule_right_to_left & noun_adjn_cmpnd_phr. noun_title_cmpnd_rule := binary_rule_right_to_left & noun_title_cmpnd_phr. ;n_v-or-adj_cmpnd_eg_rule := binary_rule_right_to_left & ; n_v-or-adj_cmpnd_eg_phr. ;n_v-or-adj_cmpnd_ig_rule := binary_rule_right_to_left & ; n_v-or-adj_cmpnd_ig_phr. n_v_cmpnd_rule := binary_rule_right_to_left & n_v_cmpnd_phr. n_adj_cmpnd_rule := binary_rule_right_to_left & n_adj_cmpnd_phr. n_adj_intr_cmpnd_rule := binary_rule_right_to_left & n_adj_intr_cmpnd_phr. n-adj_rule := rule & n-adj_phrase. ;appos_prpnct_rule := binary_rule_right_to_left & appos_phr_prpnct. appos_prpnct_rule := binary_rule_right_to_left & appos_phr_nonprop_prpnct. appos_prpnct_pnr_rule := binary_rule_right_to_left & appos_phr_prop_prpnct. appos_prpnct_num_rule := binary_rule_right_to_left & appos_phr_num_prpnct. appos_nopair_rule := binary_rule_right_to_left & appos_phr_nonprop_nopair. appos_nopair_pnr_rule := binary_rule_right_to_left & appos_phr_prop_nopair. ;appos_rbc_rule := binary_rule_right_to_left & appos_phr_rbc. appos_indef_rule := binary_rule_right_to_left & appos_indef_phr. appos_indef_paren_rule := binary_rule_right_to_left & appos_indef_paren_phr. appos_nbar_rule := binary_rule_right_to_left & appos_nbar_phr. npadv_mod_rule := rule & npadv_mod_phrase. npadv_yofc_rule := rule & npadv_yofc_phrase. npadv_measnp_rule := rule & npadv_measnp_phrase. measure_np_rule := binary_rule_right_to_left & measure_np_phrase. measure_np_symbol_rule := binary_rule_left_to_right & measure_np_symbol_phrase. bare_measure_np_rule := rule & bare_measure_np_phrase. meas_np_degadv_attr_rule := rule & meas_np_degadv_attr_phrase. meas_np_degadv_pred_rule := rule & meas_np_degadv_pred_phrase. num_noun_rule := rule & num_noun_phrase. num_noun_seq_rule := rule & num_noun_sequence_phrase. color_noun_rule := rule & color_noun_phrase. ;np_cp_rule := rule & np_cp_phrase. np_cp_wh_rule := rule & np_cp_wh_phrase. cp_subj_rule := rule & cp_subj_phrase. cp_subj_inf_rule := rule & cp_subj_inf_phrase. vgerund_rule := rule & vgerund_phrase. fw_seq_l_rule := rule & fw_sequence_left_phrase. fw_seq_r_rule := rule & fw_sequence_right_phrase. ;; DPF 22-Dec-98 - Modified filler_head_rule_non_wh to require head to be ;; VFORM fin, in order to block "*Kim hire". The VFORM used to be fin_or_imp, ;; to allow an extraction analysis of "On Monday hire Kim", but this also ;; allowed a spurious second analysis for "On Monday tell Kim that Sandy left". ;; So a new construction for left dislocation is needed for "On Monday hire Kim", ;; one which would also admit "As for that book, who did it offend?" where a ;; (double) extraction analysis would otherwise be required. ;; DPF 29-Jan-99 - Constrained nonhead_dtr to be HEAD n_or_p, in order to block ;; Yoda examples like "Happy you will be" or "Making a mess you are". More ;; generally these should simply be dispreferred, but we'll block them for now. ; ; DPF 10-Jun-99 - Note that filler_head_rule_non_wh does not currently inherit ; from non_rel_clause, but perhaps should. ; ; DPF 10-Jun-99 - Removed mc_fillhead_phrase from filler_head_rule_non_wh since ; topicalized constructions can be embedded, as in "Kim thinks on Tuesday we ; should be in Berlin" ; -- DPF 24-Mar-01 - But this is too weak: we still need to block "*I'm sure ; bananas he likes" - cf. examples with "bet". So put back mc_fillhead_phrase, ; and wait for more inspiration about allowing S-init adjuncts for embedded S's ; DPF 2-Feb-01 - Generalized HEAD value of nonhead_dtr to include adverbs as ; well as n_or_p, to get "Quietly kim left" ; DPF 2-Apr-01 - Removed INV - from head-dtr to allow "here are my questions" ; DPF 13-May-01 - Added [HD-DTR..MODIFD notmod_or_rmod] to prevent root ; exclamatives like "oh" from modifying the head of the head-filler. ; DPF 25-Sep-01 - From 2-Apr-01: But this overgenerates too much, so putting ; it back in (cf "*There is Kim Sandy") ; DPF 12-Apr-02 - Apparently INV - was put back on head-dtr (see 2-Apr-01) -- ; this blocks non-wh PP-fronting for yes-no questions, as in "On Tuesday did ; Kim arrive". Maybe right not to treat these as unbounded dependencies - ; note lack of ambiguity for "tomorrow can you ask Sandy to call me?" ; DPF 1-Jun-02 -Added HD-DTR..MSG.PRED prop-or-ques_m_rel to exclude imperatives ; since sometime between 22-Dec-98 and now (see above) the VFORM constraint was ; removed, but we still want to block "*kim hire". ; DPF 13-Oct-03 - But blocking "Kim hire" also prevents us from getting PPs ; fronted for imperatives, as with "On Sunday, buy two books". It also blocks ; "Books about elephants, buy only on Sundays" which seems fine. So removed ; this constraint, and expect punctuation to catch "*Kim hire" since we want ; a comma after fronted phrase for imperatives. ; DPF 26-Nov-03 - Further constrained head-dtr's MODIFD (see 13-May-01) to ; exclude rmod, to avoid spurious parse for "Kim we hired, singing". ; DPF 21-aug-04 - Try relaxing hd-dtr's MODIFD value to notmod_or_lmod, to ; allow e.g. "on Tuesday, if you wish, leave early" ; DPF 27-aug-04 - Removed parent mc_fillhead_phrase to allow these as ; subordinate clauses, as in "since on Tuesday they'll leave" ; DPF 8-apr-05 - Removed NH-DTR..MSG no_msg to get "Kim arrived, Abrams said." ; DPF 05-sept-05 - Tried making NH-DTR..RPUNCT include clause_punct, to ; allow "Who arrived? asked Kim." But this means unwanted overgeneration ; like "Kim. we hired" and "Kim? we hired". So we'll have to find another ; analysis for this stripped down clause-fronting - note that if the ; fronted sentence is quoted, all is well with the existing pair_punct ; constraint on the non-hd dtr. ; DPF 9-oct-05 - The nonhd-dtr was marked [CASE non_obliq] as a hack to ; prevent lexical PPs from fronting (see 25-mar-05 in lextypes.tdl) ; but this prevents us from getting "Here Kim slept" now that we want "here" ; to be [CASE obliq] in order to prevent these as direct objects as in "here ; kim plunged into the lake". So we'll look for another way to block the ; unwanted parse for "on the first kim arrived" if indeed we should. ; DPF 23-nov-06 - Re: 27-aug-04: Restored MC + since we now distinguish two ; types of subordinating preps, one class like "since" which allow topicalized ; complement S, and the other class like "after" which don't. ;; DPF 21-mar-10 - Added CASE non-obliq to prevent these from appearing e.g. ;; as complements of subordinating conjunctions that don't want them. ;; DPF 2010-10-23 - FIX: We're wrongly asserting here that embedded non-wh ;; filler-head constructions cannot have bse-form verb, thus blocking ;; |we demanded that on Monday he be released|. But we would have to ;; add main-clause and non-mc variants of this rule, which is already split ;; with respect to comma-marked filler. So undergenerate for now. ;; DPF 2011-08-07 - Re: 21-aug-04: removing HD-DTR.MODIFD notmod_or_lmod, ;; now that we propagate value in subj-head phrase, since we still want ;; extraction from VP modifying PP: "that office, the consultants work in.' ;; DPF 2012-02-12 - Can't see why the mother wasn't REL 0-dlist, but the lack ;; meant we get the phrase |I feel like a little kid| as the filler in the ;; fillhead_rel rule. Corrected. ;; filler_head_rule_non_wh := binary_rule_right_to_left & basic_head_filler_phrase_fin & head_compositional & clause & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.CASE non_obliq, VAL.SUBJ *olist* & < anti_synsem_min >, MC bool ], CONT [ HOOK.XARG #xarg ] ], NONLOC non-local_none ], HD-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ INV - ], VAL.SUBJ *anti_cons*, MC - ], CONT.HOOK [ XARG #xarg, INDEX #vind & [ SF #pred ] ] ], NONLOC [ SLASH , QUE 0-dlist ], PUNCT.RPUNCT.PSF #pred ] ], NH-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD subst_or_adv, MC #mc ], CONT.HOOK.INDEX #nhind ], NONLOC [ QUE 0-dlist, REL 0-dlist ] ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #vind ], RELS , HCONS ] ]. ; DPF 21-jan-10 - For now, change RPUNCT from comma_or_clause_or_pair_punct, ; but see note from 05-sept-05 above. In particular, we will eventually ; want to generate e.g. |More coffee? she asked, along with |Victory! he ; exclaimed. FIX. filler_head_rule_non_wh_edgen := filler_head_rule_non_wh & [ NH-DTR.SYNSEM.PUNCT.RPUNCT comma_or_pair_punct ]. ;; DPF 2011-09-24 - Added NH-DTR..ALTMIN non_ellipt_rel in order to avoid ;; annoying (but stricly speaking, not spurious) ambiguity with do-be where ;; clause ending with elliptical copula be is treated as extracted from the ;; imperative clause that follows. ;; DPF 2012-10-09 - We don't want a filler-hd + imperative analysis for ;; |you work here|, but we do want to admit |on Friday eat fish|, filler_head_rule_non_wh_infgen := filler_head_rule_non_wh & [ HD-DTR.SYNSEM.LEX -, NH-DTR.SYNSEM [ LOCAL.CAT.HEAD non_noun_or_adv & [ MINORS.ALTMIN non_ellipt_rel ], PUNCT.RPUNCT no_punct ], GENRE nonformal ]. filler_head_rule_non_wh_np := filler_head_rule_non_wh & [ HD-DTR.SYNSEM [ LEX -, LOCAL.CONT.HOOK.INDEX.SF prop ], NH-DTR.SYNSEM [ LOCAL.CAT.HEAD basic_noun, PUNCT.RPUNCT no_punct ], GENRE nonformal ]. filler_head_rule_wh_root := binary_rule_left_to_right & head_filler_phrase_wh_fin & wh_interrog_fin & mc_fillhead_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD.INV +, VAL.SUBJ *olist* & < anti_synsem_min > ], CONT.HOOK [ LTOP #hdtop, INDEX #index ] ], HD-DTR.SYNSEM.LOCAL [ CAT.MC na, CONT.HOOK [ LTOP #hdtop, INDEX #index ] ], NH-DTR.SYNSEM [ PUNCT.RPUNCT comma_or_pair_or_no_punct ], C-CONT [ RELS , HCONS ] ]. ; DPF (21-Apr-98) To block use of fill_head_wh_subj in "Kim knows who Sandy ; saw" added constraint that filler must be [CASE NOM]. ; DPF 15-Oct-01 - Removed [AUX -]: was wrong. ; DPF 15-May-02 - Changed HEAD.INV - to HEAD.INV -* to allow for coordination ; of inverted and non-inverted sentences. ; DPF 31-May-02 - Added restriction on head-dtr for MSG.PRED prop-or-ques_m_rel ; to block imperative S-comp, as in "*I know which manager hire" ; DPF 24-jun-05 - Further restricted the head-dtr's MSG to always be ; prpstn_m_rel. filler_head_rule_wh_subj := binary_rule_left_to_right & head_filler_phrase_wh_fin & wh_interrog_fin & mc_fillhead_phrase & [ SYNSEM.LOCAL [ CAT [ HEAD.INV -, VAL.SUBJ *olist* & < anti_synsem_min > ], CONT.HOOK.XARG #xarg ], HD-DTR.SYNSEM.LOCAL [ CAT.VAL.SUBJ < >, CONT.HOOK.XARG #xarg ], NH-DTR.SYNSEM.LOCAL.CAT.HEAD basic_noun & [ CASE nom ], C-CONT [ RELS , HCONS ] ]. ; DPF (21-Apr-98) Removed constraint making HD-DTR [MC -], since this was ; blocking "Abrams knows who Kim saw." ; DPF 31-May-02 - Added restriction on head-dtr for MSG.PRED prop-or-ques_m_rel ; to block imperative S-comp, as in "*I know which manager hire" ; DPF 24-jun-05 - Further restricted the head-dtr's MSG to always be ; prpstn_m_rel. ; DPF 03-mar-06 - Without messages, we no longer have the 'double message' ; option where we could make the head_subj_nonmc type be MSG prop, and still ; use it in constructing the sentential complement of 'whether'. Now that ; construction has to leave MOOD underspecified, so it must be assigned by ; the head that selects it, or by the construction that embeds it. Hence it ; must itself have some property incompatible with the complement of 'wonder', ; but not a HEAD property since the head-filler phrase used for 'wonder who ; Abrams hired' is a headed phrase. So instead we make use of a contrast in ; the SUBJ value for head-filler phrases vs head-subject phrases: the latter ; make it a non-empty *anti_list* while complementizers have a simple empty ; list. So we make non-root WH head-filler phrases also assign SUBJ < >, ; and have 'wonder' verbs impose this constraint on their complements. ;; DPF 2012-06-22 - Changed SUBJ < > to *anti_null* to prevent these from undergoing ;; the non-clause head_marker_event rule. filler_head_rule_wh_nr_fin := binary_rule_left_to_right & head_filler_phrase_wh_fin & wh_interrog_fin & [ SYNSEM.LOCAL.CAT [ HEAD.INV -, VAL.SUBJ *anti_null*, MC - ], HD-DTR.SYNSEM.LOCAL [ CAT.MC -, CONT.HOOK.LTOP #hdtop ], NH-DTR.SYNSEM [ PUNCT.RPUNCT comma_or_pair_or_no_punct ], C-CONT [ HOOK.LTOP #hdtop, RELS , HCONS ] ]. ; DPF 13-Nov-99 - Restricted SUBJ on mother to be 'unexpressed' to prevent ; the subject-extraction rule from applying. ; DPF 13-Nov-99 - Changed [MC na] to [MC -] since e.g. "know" wants an MC - ; complement, as in "kim knows who to hire". ; DPF 26-Mar-01 - Added to head-dtr: SUBJ..SLASH 0-dlist to avoid wrong ; subj-extraction parse for "Kim knew who to approach". ; DPF 03-mar-06 - Changed SUBJ value to < >, to prevent "whether who to hire" ;; DPF 2012-06-22 - Changed SUBJ < > to *anti_null* to prevent these from undergoing ;; the non-clause head_marker_event rule. filler_head_rule_wh_nr_inf := binary_rule_left_to_right & head_filler_phrase_inf & wh_interrog & [ SYNSEM.LOCAL.CAT [ HEAD.INV -, VAL.SUBJ *anti_null*, MC - ], HD-DTR.SYNSEM.LOCAL [ CAT.VAL.SUBJ < synsem >, CONT [ HOOK.LTOP #hdtop ] ], C-CONT [ HOOK.LTOP #hdtop, RELS , HCONS ] ]. ; DPF 25-Nov-01 - Added SYNSEM..RPERIPH + to enable blocking of thatless-rel ; attaching after WH-relative ; DPF 8-Jul-02 - Changec C-CONT.HOOK.LTOP to be re-entrant with head-dtr's ; LTOP rather than with its MSG..LBL, since the latter does the wrong thing ; at least for coordinated relative clauses as in "The programmar Abrams ; interviewed and Browne hired arrived". ; DPF 19-dec-03 - Added propagation of NORM constraint from nbar-filler ; "that" for "the place that Kim bought the book" - modable_rel preserved, ; to get same effect as with actual gap in simple that-less rel construction. ; This is just a hack, but the right solution is elusive. ; DPF 29-jun-09 - Re 25-Nov-01: Changed RPERIPH to na_or_+: see related note ; for n_adj_relcl_phrase. ; DPF 02-jul-09 - Removed identification of SUBJ on mother and dtr, since ; we want these rel clauses to be admitted in the head_marker_event rule ; (for verbal projections that are MC na), but that rule rejects ; SUBJ *anti_list*. filler_head_rule_rel := binary_rule_left_to_right & rel_cl & basic_head_filler_phrase & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM #vform, TAM #tam, AUX #aux, INV #inv, PRD -, MOD < [ LOCAL [ CONT.HOOK.XARG #xarg, CAT.HEAD.MINORS.NORM #modmin ], --SIND #ind ] >, --ADDIN #addin, MINORS.MIN #min ], VAL [ SUBJ < >, SPR < > ] ], AGR #agr ], MODIFD.RPERIPH na_or_+ ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.NORM #modmin, VAL.COMPS < > ], CONJ cnil ], NONLOC [ QUE 0-dlist, REL 1-dlist & [ LIST < [ LTOP #rhand, INDEX #ind, XARG #xarg ] > ] ], PUNCT.RPUNCT rparen_or_rbc_or_no_punct ] ], [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ VFORM #vform & fin_or_inf, TAM #tam, AUX #aux, INV #inv, --ADDIN #addin, MINORS.MIN #min ], VAL.SUBJ *olist_or_prolist*, MC - ], CONT.HOOK [ LTOP #ltop, INDEX #event & [ SF prop ], --SLTOP #rhand ], AGR #agr, CONJ cnil ], NONLOC [ QUE 0-dlist, REL 0-dlist, SLASH ] ] ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #event ], RELS , HCONS ] ]. ; DPF 03-mar-06 - In order to block "*The book which to buy." while ; allowing "the book on which to rely" and "the book which he bought", divide ; the flr-hd_rel-fin_c rule into two, one for infinitivals which requires the ; filler to be a non-np, and the other for finite rels. ;; DPF 2011-09-30 - Leave the left dtr unmarked for INFLECTD, so we can treat ;; the relative pronoun `that' as uninflected, to prevent it from appearing ;; in pied-piping relative clauses, since the head-complement rule requires ;; the non-head to be INFLECTD +. filler_head_fin_rule_rel := filler_head_rule_rel & [ ARGS < sign, [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM fin ], VAL.SUBJ *olist* ] ] > ]. ;; DPF 16-jul-10 - Also constrain the infinitival variant to only allow the ;; head to be a VP, to block |*cats with which Abrams to play| filler_head_inf_rule_rel := filler_head_rule_rel & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD prep ], [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD.VFORM inf, VAL.SUBJ < synsem > ] ] > ]. ; ERB (05-10-96) This no longer inherits from (old) mc_phrase because it also ; serves to make nonroot phrases, such as the bracketed phrase in: "On Tuesday ; [plan to meet Kim]". imperative_mc_rule := rule & imp_phrase. ;imperative_slash_rule := rule & imp_slash_phrase. yesno_rule := rule & yesno_phrase. inv_decl_rule := rule & inv_decl_phrase. ; The top_coord_rule is for building the ltop of a (potential iterated) ; coordinate structure and the mid_coord_rule is for building intermediate ; parts of an iterated coordinate structure. The mid_coord_rule (and the ; head/marker schema) collect the handels and indices of the conjuncts under ; the CONJ feature and passes them (with the lexically specified coordination ; relation) up from the right conjunct. The top_coord_rule uses handels and ; liszts from the CONJ value to build the values for an n-ary coordination ; relation. We could skip all this feature passing if we weren't limited by ; performance considerations to binary trees. That is, we could build ; coordinate structures like: ; ; ; coord_phrase ; +- -+ ; | conj_rel | ; RELS | C-HNDLS [h1], [h2], ..., [hn] | ; | C-INDICES [i1], [i2], ..., [in] | ; +- -+ ; / / \ ; / / \ ; / / \ ; / / \ ; / / \ ; phrase phrase phrase ; LTOP [h1] LTOP [h2] ... LTOP [hn] ; INDEX [i1] INDEX [i2] INDEX [in] ; | | | ; | | | ; Kim Sandy ... Lee ; ; then we could eliminate the features HNDLS and INDICES. These ; feature are just for bookkeeping. The feature LEFT, on the other hand, is ; essential to the analysis. The LEFT value is a list of (up to) two ; elements. The first element is the required CONJ value of the left conjunct ; in a top_coord_phrase and the second element is the CONJ value of the left ; conjunct in a mid_coord_phrase. For example, a LEFT value of < either, or > ; permits a coordinate structure like "either Kim or Sandy or Chris or Lee". ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 6-Jun-03 - Tried making the MIN of mother be that of left dtr rather than ; right dtr, given that neither is right in principle. Want to get "an hour ; and a half" to still be temporal-noun. But this fails because the MIN of ; "either Monday" is a conj_rel (in "either Monday or Tuesday") while the MIN ; of "Monday" is a day_rel (in "Monday or Tuesday"). So only the right dtr ; consistently puts the right conjunct's MIN in one place: the ALTMIN of ; "and Tuesday". So let's consider making "a half" unspecified for SORT. basic_top_coord_rule := binary_rule_right_to_left & basic_coord_phr & [ SYNSEM [ LOCAL [ CONT.HOOK.INDEX #ind, CONJ cnil ], PUNCT [ LPUNCT #lpunct, PAIRED #rpnctpr, RPUNCT #rpunct ] ], LCONJ-DTR.SYNSEM [ LOCAL local & [ CONJ conj_min & #left ], PUNCT [ LPUNCT #lpunct, RPUNCT comma_or_rbc_or_semi_or_pair_or_no_punct, PNCTPR #pnctpr ] ], RCONJ-DTR.SYNSEM [ LOCAL local & [ CONT.HOOK.INDEX #ind, CONJ complex-conj & [ CHEAD #left, CPUNCT #pnctpr ] ], PUNCT [ LPUNCT pair_or_no_punct, RPUNCT #rpunct, PAIRED #pnctpr, PNCTPR #rpnctpr ] ], C-CONT.HOOK.INDEX #ind & conj-ind ]. top_coord_rule := basic_top_coord_rule & [ RCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.LTOP #cltop, C-CONT.HOOK.LTOP #cltop ]. ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; Require RCONJ-DTR..LPUNCT comma_punct to rule out "Kim arose arrived and ; laughed" but allow both "Kim arose, arrived and laughed" and also ; "Kim arose, arrived, and laughed" This assumes that conj_words do not ; lexically constrain LPUNCT, unlike most words. So in the base case (the ; first time this rule applies in a series of mid-conj's), the left dtr is ; optionally marked with a comma (RPUNCT comma_or_no_punct), but since the ; mother is [LPUNCT no_punct, RPUNCT comma_punct], the only way this rule ; can reapply is if the phrase picks up a left comma in order to match the ; requirement on the right dtr's LPUNCT. (This arrangement looks like it ; would in principle accept a double comma on the left dtr in a recursively ; applied structure, as in "Abrams, Browne,, Chiang, and Devito", but the ; preprocessor doesn't admit the two successive commas, so we can live with ; this flaw for now.) ; [ abrams [, [ browne [ and Chiang ]]]] ; [ abrams [, [ [ browne ,] [ and Chiang ]]]]] ; [ devito [, [ abrams [, [ [ browne ,] [ and Chiang ]]]]] ; This means that we get a spurious analysis for complex conjunctions where the ; conjoined phrase ends in a comma or period, since that licenses a left comma ; on the final conjunct: [arise [, smile [, [and [ go .]]]]]. FIX?? later. ; DPF 10-may-05 - Use new feature PUNCT.PAIRED to enable constraint on presence ; of commas in three (or more) part coordination, ensuring that if the ; next-to-last conjunct is comma-marked, all leftward conjuncts are too, ; while if the next-to-last conjunct is not comma-marked, the next one ; doesn't have to be either, but can be. The way it works is that the ; affixation rule for comma punctuation stamps [PAIRED no-ppair], while ; a non-punctuated sign is underspecified for PAIRED. This mid_coord_rule ; type propagates that PAIRED property up from its left dtr, so it's still ; visible on the mid-coordinated phrase. Then the top_coord_rule requires ; that its left dtr unifies its PUNCT.PNCTPR value with the PAIRED value of ; its right dtr. The effect is that if the next-to-last conjunct is unmarked, ; it will not restrict the PNCTPR value of the top conjunct, but if the ; next-to-last is comma-marked, it imposes a constraint (eventually) on the ; top conjunct's PNCTPR value, forcing it to be a comma. basic_mid_coord_rule := binary_rule_right_to_left & basic_coord_phr & [ SYNSEM [ LOCAL.CONJ phr-conj & [ CHEAD #chead, CREL basic_conj_relation & [ LBL #ltop, PRED implicit_conj_rel, ARG0 #cind & non_expl, R-INDEX #ind ] ], PUNCT [ LPUNCT no_punct, RPUNCT #rpunct, PAIRED #paired, PNCTPR #rpnctpr] ], LCONJ-DTR.SYNSEM [ LOCAL.CONJ cnil, PUNCT [ LPUNCT no_punct, RPUNCT comma_or_semi_or_no_punct, PNCTPR #pnctpr, PAIRED #paired ] ], RCONJ-DTR.SYNSEM [ LOCAL [ CONT.HOOK.INDEX #ind, CONJ complex-conj & [ CHEAD #chead ] ], PUNCT [ LPUNCT no_punct, RPUNCT #rpunct, PAIRED #pnctpr, PNCTPR #rpnctpr ] ], C-CONT.HOOK [ LTOP #ltop, INDEX #cind & conj-ind ] ]. ; Not NP mid-coord, whose LTOP must be free. ; mid_coord_rule := basic_mid_coord_rule & [ SYNSEM.LOCAL.CONJ.CREL.LBL #ltop, C-CONT.HOOK.LTOP #ltop ]. ; Edited variant requires left dtr to be comma marked. mid_coord_edgen_rule := mid_coord_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_punct ]. ; Informal variant has no comma on left dtr mid_coord_infgen_rule := mid_coord_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT semi_or_no_punct, GENRE nonformal ]. ; Coordination of non-nominal phrases (S's and VPs) ;; DPF 25-Feb-01 - Changed division of labor with these two rules, so the first now ;; conjoins all phrases with event index values, while the second conjoins nominal ;; phrases. ;; DPF 21-Aug-01 - Added E-INDEX.E.TENSE real_tense to both dtrs in order to ;; block conjunction of no-copula VPs (want the no-cop after conjunction). ;; DPF 12-Oct-06 - Changed determination of mother's TAM to come from first ;; daughter rather than second. Seemingly arbitrary, and some prefer it. event_coord_rule := basic_coord_phr & [ SYNSEM.LOCAL.CONT.HOOK.INDEX conj_event & [ E #tam ], LCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX #lind & [ E #tam ], RCONJ-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX conj_event, CONJ.CREL.L-INDEX #lind ] ]. basic_top_coord_event_rule := basic_top_coord_rule & event_coord_rule & [ LCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX event_or_deg-ind ]. top_coord_event_rule := basic_top_coord_event_rule & top_coord_rule & [ C-CONT.RELS ]. mid_coord_event_rule := mid_coord_rule & event_coord_rule & [ SYNSEM.LOCAL [ CONJ.CREL #rel, CAT.HEAD.LSYNSEM anti_synsem_min ], RCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.LTOP #ltop, ORTH [ FROM #from, TO #to ], C-CONT.RELS ]. mid_coord_event_edgen_rule := mid_coord_event_rule & mid_coord_edgen_rule. mid_coord_event_infgen_rule := mid_coord_event_rule & mid_coord_infgen_rule. basic_verbal_coord_phr := basic_coord_phr & [ SYNSEM [ LEX -, LOCAL.CAT [ HEAD verbal & [ PRD #prd ], MC #mc ] ], LCONJ-DTR.SYNSEM [ LOCAL.CAT [ HEAD verbal & [ PRD #prd ], MC #mc ], PUNCT.RPUNCT comma_or_semi_or_pair_or_no_punct ], RCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD verbal & [ PRD #prd ], MC #mc ] ]. verbal_coord_phr := basic_verbal_coord_phr & norm_coord_phr. ; DPF 13-nov-05 - Removed HEAD verb on mother and daughters, since this ; prevented coordination of infinitival VPs: "Kim tried to sing and to dance" ; DPF 18-jun-07 - Instead, only put [HEAD verb] on the finite subtype, in ; part to block spurious application of the frag-sbar rule. ; DPF 31-jan-09 - Whereas we have finally realized that we cannot simply unify ; valence feature values for mother and daughters in coordinate phrases ; (because then the LTOP values of the heads would also be wrongly unified, ; since we now ensure, as per the semantic algebra, that heads unify their ; LBLs with those of their complements unless they are 'scopal' heads), ; we must therefore cross-classify verbal phrases (at least) by their ; valence variants. For now, we'll only deal with coordination of lexical ; two-argument verbs (transitive, subj-equi, etc.) basic_v_coord_phr := basic_verbal_coord_phr & [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, MINORS #mins, --ADDIN #addin, LSYNSEM anti_synsem_min ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, CONT.HOOK [ LTOP #ltop, INDEX #sind ], AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK [ LTOP #ltop, XARG #xarg ] ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, TAM.MOOD #mood, --ADDIN #addin & [ ADDPN #pn ] ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, CONT.HOOK.INDEX #sind, AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM #vform, TAM.MOOD #mood, MINORS #mins, --ADDIN.ADDPN #pn ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, CONT.HOOK.INDEX #sind, AGR #agr ], NONLOC #nonloc, --SIND #sind, OPT #opt ] >, SPR #spr ] ], CONT.HOOK [ XARG #xarg, INDEX.SF #iforce ] ], C-CONT.HCONS ]. v_coord_phr := basic_v_coord_phr & verbal_coord_phr & [ SYNSEM.LOCAL.AGR.PNG #png, LCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.LTOP #ltop, RCONJ-DTR.SYNSEM.LOCAL [ CONJ.CREL.L-HNDL #ltop, AGR.PNG #png ] ]. x_onecomp_coord_phr := basic_coord_phr & [ SYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, OPT -, --SIND #sind ] >, LCONJ-DTR.SYNSEM.LOCAL [ CAT.VAL.COMPS < [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, OPT -, --MIN #min, --SIND #sind ] >, CONT.HOOK.LTOP #ltop ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.VAL.COMPS < [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, OPT -, --MIN #min, --SIND #sind ] >, CONJ.CREL.L-HNDL #ltop ] ]. xp_coord_phr := basic_coord_phr & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, LCONJ-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < >, RCONJ-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < > ]. basic_v_coord_phr_fin := basic_v_coord_phr & [ SYNSEM.LOCAL [ CAT.HEAD verb & [ VFORM fin_or_imp, TAM indic_tam & #tam ], CONT.HOOK.INDEX.E #tam ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD verb & [ VFORM fin_or_imp, MINORS.NORM norm_rel, TAM #tam & indic_tam & [ MOOD ind_or_modal_subj ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD verb & [ VFORM fin_or_imp, TAM indic_tam & #rtam, --ADDIN [ ADDTAM #rtam, ADDPN #pn ] ], AGR.PNG.PN #pn ] ]. v_coord_phr_fin := basic_v_coord_phr_fin & v_coord_phr & [ RCONJ-DTR.SYNSEM.LOCAL.CONJ.CREL.R-INDEX.E indic_tam ]. ; Restrict to [PRD -] since predicative phrases are coordinated via ; distinct construction. ;; DPF 2012-12-21 - Removed RCONJ-DTR..CREL..MOOD indicative since this ;; blocked e.g. |We prefer that he arise and arrive| ;; v_coord_phr_nonfin := v_coord_phr & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM non_fin, TAM #tam ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD [ VFORM non_fin, TAM #tam, PRD - ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD [ VFORM non_fin, TAM #tam, PRD - ] ] ]. v_coord_fin_top_phr := v_coord_phr_fin & basic_top_coord_event_rule & top_coord_rule & [ SYNSEM.LOCAL.CAT.HEAD.MINORS.NORM norm_rel, C-CONT.RELS ]. vp_coord_fin_top_phr := v_coord_fin_top_phr & xp_coord_phr. v_onecomp_coord_fin_top_phr := v_coord_fin_top_phr & x_onecomp_coord_phr. v_coord_fin_mid_eg_phr := v_coord_phr_fin & mid_coord_event_edgen_rule. vp_coord_fin_mid_eg_phr := v_coord_fin_mid_eg_phr & xp_coord_phr. v_onecomp_coord_fin_mid_eg_phr := v_coord_fin_mid_eg_phr & x_onecomp_coord_phr. v_coord_fin_mid_ig_phr := v_coord_phr_fin & mid_coord_event_infgen_rule. vp_coord_fin_mid_ig_phr := v_coord_fin_mid_ig_phr & xp_coord_phr. v_onecomp_coord_fin_mid_ig_phr := v_coord_fin_mid_ig_phr & x_onecomp_coord_phr. ; For two coordinated VPs with no conjunction ; DPF 10-sept-07 - Added NORM no_rel to block these as conjuncts in ordinary ; VP coordination, to avoid spurious parse for e.g. "Kim arose, sang, and left" #| v_coord_fin_top_noconj_phr := basic_v_coord_phr_fin & binary_rule_right_to_left & xp_coord_phr & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ MOD #mod, MINORS.NORM no_rel ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK.INDEX conj_event & #cind & [ E #tam ], CONJ cnil, AGR.PNG #png ], NONLOC.SLASH 0-dlist, PUNCT [ LPUNCT #lpunct, PAIRED #rpnctpr, RPUNCT #rpunct ] ], LCONJ-DTR.SYNSEM [ LOCAL local & [ CAT [ HEAD [ MOD #mod, MINORS.ALTMIN non_ellipt_rel ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK [ LTOP #lltop, INDEX #lind & non_conj_event ], CONJ cnil ], PUNCT [ LPUNCT #lpunct, RPUNCT comma_or_semicol, PNCTPR #pnctpr ] ], RCONJ-DTR.SYNSEM [ LOCAL local & [ CAT [ HEAD [ MOD #mod, MINORS [ ALTMIN non_ellipt_rel, NORM no_rel ] ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK [ LTOP #rltop, INDEX #rind & [ E #tam ] ], CONJ cnil, AGR.PNG #png ], PUNCT [ RPUNCT #rpunct, PAIRED #pnctpr, PNCTPR #rpnctpr ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #cind & conj-ind ], RELS , HCONS ], GENRE nonformal, ARGS < [ INFLECTD + ], [ INFLECTD + ] > ]. |# basic_v_coord_top_noconj_phr := basic_v_coord_phr & xp_coord_phr & binary_rule_right_to_left & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ MOD #mod, MINORS.NORM no_rel ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK.INDEX conj_event & #cind & [ E #tam ], CONJ cnil, AGR.PNG #png ], NONLOC.SLASH 0-dlist, PUNCT [ LPUNCT #lpunct, PAIRED #rpnctpr, RPUNCT #rpunct ] ], LCONJ-DTR.SYNSEM [ LOCAL local & [ CAT [ HEAD [ MOD #mod, MINORS.ALTMIN non_ellipt_rel ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK [ LTOP #lltop, INDEX #lind & non_conj_event ], CONJ cnil ], PUNCT [ LPUNCT #lpunct, RPUNCT comma_or_semicol, PNCTPR #pnctpr ] ], RCONJ-DTR.SYNSEM [ LOCAL local & [ CAT [ HEAD [ MOD #mod, MINORS [ ALTMIN non_ellipt_rel ] ], VAL [ SUBJ < synsem >, COMPS < > ] ], CONT.HOOK [ LTOP #rltop, INDEX #rind & [ E #tam ] ], CONJ cnil, AGR.PNG #png ], PUNCT [ RPUNCT #rpunct, PAIRED #pnctpr, PNCTPR #rpnctpr ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #cind & conj-ind ], RELS , HCONS ], GENRE nonformal, ARGS < [ INFLECTD + ], [ INFLECTD + ] > ]. v_coord_fin_top_noconj_phr := basic_v_coord_top_noconj_phr & basic_v_coord_phr_fin & [ RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.NORM no_rel ]. ;; Added nonfin variant, for |We tried to hire Abrams, hire Browne.| v_coord_nonfin_top_noconj_phr := basic_v_coord_top_noconj_phr & [ SYNSEM.LOCAL.CAT.HEAD [ VFORM non_fin, TAM #tam ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD [ VFORM non_fin, TAM #tam, PRD - ], RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD [ VFORM non_fin, TAM #tam, PRD - ] ]. v_coord_nonfin_top_phr := v_coord_phr_nonfin & basic_top_coord_event_rule & top_coord_rule & [ C-CONT.RELS ]. vp_coord_nonfin_top_phr := v_coord_nonfin_top_phr & xp_coord_phr. v_onecomp_coord_nonfin_top_phr := v_coord_nonfin_top_phr & x_onecomp_coord_phr. v_coord_nonfin_mid_eg_phr := v_coord_phr_nonfin & mid_coord_event_edgen_rule. vp_coord_nonfin_mid_eg_phr := v_coord_nonfin_mid_eg_phr & xp_coord_phr. v_onecomp_coord_nonfin_mid_eg_phr := v_coord_nonfin_mid_eg_phr & x_onecomp_coord_phr. v_coord_nonfin_mid_ig_phr := v_coord_phr_nonfin & mid_coord_event_infgen_rule. vp_coord_nonfin_mid_ig_phr := v_coord_nonfin_mid_ig_phr & xp_coord_phr. v_onecomp_coord_nonfin_mid_ig_phr := v_coord_nonfin_mid_ig_phr & x_onecomp_coord_phr. ; DPF 16-nov-09 - Cannot identify SUBJ values, since we want to coordinate ; S-bar and S. Try leaving just as *olist* on each, and identify left dtr's ; with mother (arbitrarily). s_coord_phr := verbal_coord_phr & [ SYNSEM [ LOCAL [ CAT [ HEAD.VFORM fin_or_inf_or_imp, VAL [ SUBJ #subj & *olist*, COMPS < >, SPR #spr, SPEC < >, SPCMPS < > ], MC bool ] ] ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD.TAM.MOOD ind_or_modal_subj, VAL [ SUBJ #subj, COMPS < > ] ], CONT.HOOK.LTOP #ltop ], RCONJ-DTR.SYNSEM phr_synsem & [ LOCAL [ CAT [ HEAD.TAM.MOOD ind_or_modal_subj, VAL [ SUBJ *olist*, SPR #spr, COMPS < > ] ], CONJ.CREL.L-HNDL #lhndl ] ], C-CONT.HCONS ]. ; Exclude S-coord from NP-CP rule unless complementizer present. basic_s_coord_top_phr := s_coord_phr & basic_top_coord_event_rule & [ SYNSEM.LOCAL.CAT.HEAD #head, LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD #head, RCONJ-DTR.SYNSEM.LOCAL.CONT [ HOOK [ LTOP #conjltop, INDEX #ind ] ], C-CONT [ HOOK [ LTOP #conjltop, INDEX #ind ], RELS ] ]. s_coord_top_phr := basic_s_coord_top_phr & [ LCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX.SF prop-or-comm ]. ; This variant requires that if the first conjunct is a question, ; the second must be as well. Needed to avoid leaving the first ; conjunct spuriously underspecified for its message (which then would ; do damage to efficiency in generation, since would then add interrogative ; alternatives even when not wanted. ;; DPF 2012-06-22 - Removed INV + since we want to allow coordination of embedded ;; WH-clauses too, as in |we described what happened and how it felt| s_coord_int_top_phr := basic_s_coord_top_phr & [ LCONJ-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX.SF ques ], RCONJ-DTR.SYNSEM.LOCAL [ CONT.HOOK.INDEX.SF ques ] ]. s_coord_mid_eg_phr := s_coord_phr & mid_coord_event_edgen_rule. s_coord_mid_ig_phr := s_coord_phr & mid_coord_event_infgen_rule. relcl_coord_phr := verbal_coord_phr & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM fin, INV -, MOD < synsem >, MINORS #mins, LSYNSEM anti_synsem_min ], VAL [ SUBJ *olist* & #subj, SPR #spr, COMPS < > ], MC na ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM fin, INV -, MOD < synsem >, MINORS #mins ], VAL [ SUBJ #subj, SPR #spr, COMPS < > ], MC na ], CONT.HOOK.LTOP #ltop ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD [ VFORM fin, INV -, MOD < synsem > ], VAL [ SUBJ #subj, SPR #spr, COMPS < > ], MC na ], CONJ.CREL.L-HNDL #ltop ], C-CONT.HCONS ]. relcl_coord_top_phr := relcl_coord_phr & basic_top_coord_event_rule & top_coord_rule & [ C-CONT.RELS ]. ; DPF 21-dec-05 - Removed SPR..MIN much_deg_rel, since this prevented ; coordination of subordinating preps as in 'we arise to arrive and to fall' ; DPF 2010-10-01 - Added LEX - to both dtrs, to prevent coord analysis of ; degree phrases |[so that is] not [too]|. ;; DPF 2011-06-12 - Re 2010-10-01: But we're using this rule for lexical ;; adverbs as well (and we do in principle want to allow degree-phr coord, ;; as in |the less and less obvious idea|). prep_coord_phr := norm_coord_phr & [ SYNSEM [ LEX #lex, LOCAL [ CAT [ HEAD prep & [ PRD #prd, MINORS #mins, MOD #mod, TAM #tam, CASE #case ], VAL [ SPR < [ LOCAL [ CAT [ HEAD adv, VAL [ SPR *olist*, COMPS < > ] ], CONT.HOOK [ LTOP #ltop, INDEX #ind ] ], NONLOC.QUE 0-dlist ] >, SPCMPS < > ], POSTHD #ph ], CONT.HOOK [ LTOP #ltop, INDEX #ind, XARG #xarg ], AGR.PNG #png ] ], LCONJ-DTR.SYNSEM [ LOCAL [ CAT [ HEAD p_or_adv & [ PRD #prd, MINORS #mins, MOD #mod, TAM #tam, CASE #case ], VAL [ SPR *olist* ], POSTHD #ph ], CONT.HOOK [ LTOP #ldtop, XARG #xarg ] ], LEX #lex ], RCONJ-DTR.SYNSEM [ LOCAL [ CAT [ HEAD p_or_adv & [ PRD #prd, MOD #mod, TAM #tam, CASE #case ], VAL.SPR *olist*, POSTHD #ph ], CONT.HOOK.XARG #xarg, AGR.PNG #png, CONJ.CREL.L-HNDL #ldtop ], LEX #lex ], C-CONT.HCONS ]. prep_coord_top_phr := prep_coord_phr & top_coord_event_rule. pp_coord_top_phr := prep_coord_top_phr & xp_coord_phr. p_coord_top_phr := prep_coord_top_phr & x_onecomp_coord_phr. ; DPF 29-oct-06 - To avoid generally spurious ambiguity with coordinated ; depictive phrases as in "You enjoy hut to hut walking or staying in one ; place and sleeping", constrain ternary (or more) coord to intersective ; PPs only prep_coord_mid_eg_phr := prep_coord_phr & mid_coord_event_edgen_rule & [ LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL intersective_mod ] >, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL intersective_mod ] > ]. pp_coord_mid_eg_phr := prep_coord_mid_eg_phr & xp_coord_phr. p_coord_mid_eg_phr := prep_coord_mid_eg_phr & x_onecomp_coord_phr. prep_coord_mid_ig_phr := prep_coord_phr & mid_coord_event_infgen_rule & [ LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL intersective_mod ] >, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL intersective_mod ] > ]. pp_coord_mid_ig_phr := prep_coord_mid_ig_phr & xp_coord_phr. p_coord_mid_ig_phr := prep_coord_mid_ig_phr & x_onecomp_coord_phr. ; DPF - 23-aug-04 - For now, disallow specifiers on conjoined APs, since it's ; hard to match them correctly as long as we are not using unary rule to ; discharge the SPR first. This means stamping QUE 0-dlist on mother, since ; we can't propagate constraints from the dtrs' specifiers (since we don't ; know if they've been picked up). So we lose e.g. "how big and wide is it?" ; DPF 31-jul-06 - Re 23-aug-04: While waiting for a better solution, at least ; make the SPR < anti_synsem_min > so we can extract adjuncts from coordinated ; AP, as in "Today Kim is happy and cheerful." ;; DPF 2012-09-12 - Constrain the SPRs on the dtrs to be *olist*, to block ;; |*million or ten cats| ;; adj_coord_phr := basic_coord_phr & [ SYNSEM [ LOCAL [ CAT [ HEAD #head & [ MOD #mod, PRD #prd, MINORS #min, TAM #tam ], VAL [ SPR < anti_synsem_min >, COMPS < >, SPCMPS < > ], POSTHD #ph ], CONT.HOOK.XARG #xarg ], NONLOC [ SLASH 0-dlist, QUE 0-dlist ] ], LCONJ-DTR.SYNSEM [ LOCAL [ CAT [ HEAD adj_or_intadj & #head & [ MOD #mod, PRD #prd, MINORS #min, TAM #tam ], VAL [ COMPS < >, SPR *olist* ], POSTHD #ph ], CONT.HOOK [ LTOP #ltop, XARG #xarg ] ], NONLOC.SLASH 0-dlist ], RCONJ-DTR.SYNSEM [ LOCAL [ CAT [ HEAD adj_or_intadj, VAL [ COMPS < >, SPR *olist* ], POSTHD #ph ], CONT.HOOK.XARG #xarg, CONJ complex-conj & [ CREL.L-HNDL #ltop ] ], NONLOC.SLASH 0-dlist ], C-CONT.HCONS ]. ; Attributive APs are LEX + (unusual for coordinate structures): ; "*The angry at Kim and sad child" ; "*The angry and taller child than Kim" ;; Require MINORS.MIN to unify on two dtrs, to avoid |two and tall| adj_attr_coord_phr := adj_coord_phr & [ INFLECTD +, SYNSEM [ LEX + & #lex, LOCAL.CAT [ HEAD.PRD -, POSTHD - ] ], LCONJ-DTR [ SYNSEM [ LEX #lex, LOCAL.CAT.HEAD.MINORS.MIN #min ], INFLECTD + ], RCONJ-DTR [ SYNSEM [ LEX #lex, LOCAL.CAT.HEAD.MINORS.MIN #min ], INFLECTD + ] ]. ; Predicative APs may have LEX + or - conjuncts, but preserve LEX value of ; (say) right conjunct, to avoid e.g. "the child angry and loud cried." ; DPF 31-jul-06 - But this also blocks "visitors young and old", so opt for ; slight overgeneration here, and stamp LEX - on mother. adj_pred_coord_phr := adj_coord_phr & norm_coord_phr & [ SYNSEM [ LEX -, LOCAL [ CAT [ HEAD.PRD +, POSTHD + ], AGR.PNG #png ] ], RCONJ-DTR.SYNSEM.LOCAL.AGR.PNG #png ]. adj_attr_coord_top_phr := adj_attr_coord_phr & top_coord_event_rule. ; Let's try doing without these, since there is already a semantically ; equivalent parse for "The big furry and black cat arrived." given that ; we assume all adjectives are intersective. ; DPF 14-jul-09 - But this equivalence does not hold for disjunction, as in ; "The big, furry, or black cats arrived." So restrict these mid ones to ; disjunction. FIX ; ;adj_attr_coord_mid_eg_phr := adj_attr_coord_phr & mid_coord_event_edgen_rule. ;adj_attr_coord_mid_ig_phr := adj_attr_coord_phr & mid_coord_event_infgen_rule. adj_pred_coord_top_phr := adj_pred_coord_phr & top_coord_event_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_or_no_punct ]. adj_pred_coord_mid_eg_phr := adj_pred_coord_phr & mid_coord_event_edgen_rule. adj_pred_coord_mid_ig_phr := adj_pred_coord_phr & mid_coord_event_infgen_rule. ; DPF 21-jun-07 - Instead of requiring that the dtrs have SUBJ *anti_list* ; (which is incompatible with VP adverbs requiring that their modifiee be ; *synlist*, so we wouldn't get "poorly understood and unhappy"), we make ; the two dtrs be SPR *cons*, since this is true of all predicative phrases ; including VPs, but not true of Ss. ; DPF 15-jul-07 - But this isn't true, of course - "very tall" is a predp ; with an empty SPR list. Anyway, PRD + should be enough to block Ss. ; DPF 02-nov-07 - Changed SPR from < anti_synsem_min > to < > so these can ; undergo frag_pp rule. ; DPF 07-apr-08 - Removed reentrancy of MOD on RCONJ-DTR (with LCONJ and ; mother), to allow e.g. "cats happy and smiling" where the VP blocks ; modification to avoid spurious reduced relative analysis. Instead, ; stamp nominal modifiee on mother. ; Change predp_coord_phr to push HEAD value down to three subtypes, so ; vp_predp can be 'verb' to allow "Kim arose, arriving and arising." ; DPF 21-apr-09 - Changed MOD < synsem to MOD < synsem_min in order to ; let these conjoined phrases undergo adjunct-extraction, as in ; 'Suddenly, Kim was fired and ejected.' ; Also changed SUBJ < anti_synsem_min > to < synsem_min > for same reason. ; DPF 25-jan-10 - Propagate MODIFD from right dtr - this isn't really right, ; but we want to avoid spurious RNR analysis for "of or related to Abrams" ; DPF 2010-10-31 - Re 25-jan-10: But this blocks extracted-adj for coord-VP ; as in "In Paris, he was admired and [toasted on Tuesday]" (given the ; constraint to do extracted modifiers before attaching modifiers). So ; remove, and reconsider the above analysis if it's still problematic. ; basic_predp_coord_phr := basic_coord_phr & [ INFLECTD +, SYNSEM [ LEX -, LOCAL [ CAT [ HEAD [ PRD +, MINORS #min, MOD < synsem_min & [ LOCAL intersective_mod & [ AGR #xarg, CAT [ HEAD basic_nom_or_ttl & [ POSS - ], VAL [ SUBJ < >, SPR < synsem & [ --MIN quant_or_deg_rel ] >, COMPS *olist*, SPCMPS < > ], MC na ] ], NONLOC.REL 0-dlist, --SIND #xarg ] > ], VAL [ SUBJ < synsem_min >, SPCMPS < > ], POSTHD #ph & + ], CONT.HOOK.XARG #xarg ], NONLOC [ SLASH #slash, QUE 0-dlist ] ], LCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD v_or_a_or_p & [ PRD + ], VAL [ SPCMPS < > ], POSTHD #ph ], CONT.HOOK [ LTOP #ldtop, XARG #xarg ] ], NONLOC.SLASH #slash ] ], RCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD v_or_a_or_p & [ PRD +, MINORS #min ], VAL [ SPCMPS < > ], POSTHD #ph ], CONT.HOOK.XARG #xarg, CONJ complex-conj & [ CREL.L-HNDL #ldtop ] ], NONLOC.SLASH #slash ] ], C-CONT.HCONS ]. predp_coord_phr := basic_predp_coord_phr & [ SYNSEM.LOCAL.CAT.VAL [ SPR < >, COMPS < > ], LCONJ-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < >, RCONJ-DTR.SYNSEM.LOCAL.CAT.VAL.COMPS < > ]. ;; DPF 2012-04-09 - Added RCONJ-DTR..AUX - to block infinitival relatives ;; as in *|kim is happy and to arrive| ;; ap_predp_coord_phr := predp_coord_phr & [ SYNSEM [ LOCAL.CAT.HEAD adj, NONLOC.SLASH 0-dlist ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD adj, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD v_or_p & [ MINORS.MIN event_rel, AUX - ] ]. ap_vp_predp_coord_phr := predp_coord_phr & [ SYNSEM [ LOCAL.CAT.HEAD adj, NONLOC.SLASH 0-dlist ], LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD verb, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD adj ]. ; DPF 31-may-09 - Note that this still overgenerates when interacting with ; the verbal-gerund rule: "*Hiring Kim and fired by Abrams bothers Browne. ; FIX ; verbal_predp_coord_phr := basic_predp_coord_phr & [ SYNSEM.LOCAL.CAT [ HEAD verb & [ VFORM non_fin & #vform, MOD < anti_synsem >, LSYNSEM anti_synsem_min ], VAL.SPR *anti_cons* ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD verbal & [ VFORM #vform ], VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, --SIND #sind ] >, SPR *anti_cons* ] ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.VAL [ SUBJ < synsem & [ LOCAL [ CAT #cat, AGR #agr ], NONLOC #nonloc, --SIND #sind ] >, SPR *anti_cons* ] ] ]. pp_predp_coord_phr := predp_coord_phr & [ SYNSEM.LOCAL.CAT.HEAD prep, LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD prep, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD v_or_a & [ MINORS.MIN event_rel ] ]. ap_predp_coord_top_phr := ap_predp_coord_phr & top_coord_event_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_or_no_punct ]. ap_predp_coord_mid_eg_phr := ap_predp_coord_phr & mid_coord_event_edgen_rule. ap_predp_coord_mid_ig_phr := ap_predp_coord_phr & mid_coord_event_infgen_rule. ap_vp_predp_coord_top_phr := ap_vp_predp_coord_phr & top_coord_event_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_or_no_punct ]. ap_vp_predp_coord_mid_eg_phr := ap_vp_predp_coord_phr & mid_coord_event_edgen_rule. ap_vp_predp_coord_mid_ig_phr := ap_vp_predp_coord_phr & mid_coord_event_infgen_rule. verbal_predp_coord_top_phr := verbal_predp_coord_phr & top_coord_event_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_or_no_punct ]. vp_predp_coord_top_phr := verbal_predp_coord_top_phr & xp_coord_phr. v_onecomp_predp_coord_top_phr := verbal_predp_coord_top_phr & x_onecomp_coord_phr. vp_predp_coord_mid_eg_phr := verbal_predp_coord_phr & mid_coord_event_edgen_rule & xp_coord_phr. vp_predp_coord_mid_ig_phr := verbal_predp_coord_phr & mid_coord_event_infgen_rule & xp_coord_phr. v_onecomp_predp_coord_mid_eg_phr := verbal_predp_coord_phr & mid_coord_event_edgen_rule & x_onecomp_coord_phr. v_onecomp_predp_coord_mid_ig_phr := verbal_predp_coord_phr & mid_coord_event_infgen_rule & x_onecomp_coord_phr. pp_predp_coord_top_phr := pp_predp_coord_phr & top_coord_event_rule & [ LCONJ-DTR.SYNSEM.PUNCT.RPUNCT comma_or_no_punct ]. pp_predp_coord_mid_eg_phr := pp_predp_coord_phr & mid_coord_event_edgen_rule. pp_predp_coord_mid_ig_phr := pp_predp_coord_phr & mid_coord_event_infgen_rule. ; Coordination of all nominals ; DPF 4-Jun-03 - Added identification of SORT values for left and right and ; mother - see if this can fly. We want to block e.g. the spurious parse for ; "the ninth and tenth kim danced" where the temp-np rule erroneously applied. ; DPF 26-aug-04 - But this excludes coordination of nouns and nominal gerunds, ; as in "His singing and dress were unusual", so push down to NP-coord only. basic_nom_coord_rule := basic_coord_phr & [ SYNSEM synsem & [ LOCAL [ CAT [ HEAD noun & [ MOD < >, MINORS #mins, PRD #prd, --BARE - ], VAL [ SUBJ #subj, COMPS < >, SPCMPS < > ] ], CONT [ HOOK.INDEX conj-ind ] ] ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD supnoun & [ CASE #case, MINORS #mins, PRD #prd, --BARE #bare ], VAL [ SUBJ #subj & *anti_list*, COMPS < > ] ], CONT.HOOK.INDEX non_expl_or_conj-ind ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD supnoun & [ CASE #case, PRD #prd, --BARE #bare ], VAL [ SUBJ *anti_list*, COMPS < > ] ], CONT.HOOK.INDEX non_expl_or_conj-ind ] ]. nom_coord_rule := basic_nom_coord_rule & coord_phr & [ LCONJ-DTR.SYNSEM.LOCAL.CONT.HOOK.INDEX #ind, RCONJ-DTR.SYNSEM.LOCAL.CONJ.CREL basic_conj_relation & [ L-INDEX #ind ] ]. ; DPF 29-may-07 - Mother was [LEX na], but we need to use this value to ; distinguish lexical conjunction from head-marker-phrase (to avoid simple ; conjunction as right dtr in coord phrase), and it's not clear what work ; this [LEX na] was doing. Note that it was also unhappily blocking ; "[Kim and Sandy] Browne". ; DPF 20-apr-08 - Removed INFLECTD + from dtrs, since we want to get ; "the Abrams and Browne children". Yes, more ambiguity, but ... ; DPF 27-jul-09 - Allow non-empty SPR for coord-NP, since NP-n-cmpnd rule ; expects it. ; DPF 18-may-10 - Removed RPERIPH reentrancy from RCONJ-DTR and mother, since ; we want to allow high attachment for PP in |Kim and Sandy in Paris|. ;; DPF 2012-10-01 - Changed C-CONT..XARG from reentrant with RCONJ-DTR's XARG ;; to its LTOP, since (a) couldn't recall why it should be XARG, and (b) we ;; need to have the conj_rel's handle in order to get right semantics for ;; title-compound |writers Abrams and Browne| ; np_coord_rule := nom_coord_rule & [ SYNSEM [ LOCAL [ CAT.VAL [ SPR < synsem_min & [ --MIN just_only_deg_rel, LOCAL [ CAT.HEAD adv, CONT.HOOK.LTOP #splbl ], OPT + ] >, SPCMPS < > ], CONT.HOOK.INDEX conj_ref-ind & [ PNG #png, SORT #sort ], AGR [ PNG #png, DIV #div ] ], MODIFD notmod & [ LPERIPH #lper ] ], LCONJ-DTR [ SYNSEM [ LOCAL [ CAT.VAL [ SPR *olist*, SPCMPS < > ], CONT.HOOK.LTOP #rtop ], MODIFD.LPERIPH #lper ], INFLECTD #infl ], RCONJ-DTR [ SYNSEM [ LOCAL [ CAT.VAL [ SPR *olist*, SPCMPS < > ], CONT.HOOK [ LTOP #rtop, INDEX #ind ], CONJ.CREL [ L-INDEX.SORT entity-or-event, R-INDEX.SORT entity-or-event & #sort ], AGR [ PNG #png, DIV #div ] ] ], INFLECTD #infl ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.XARG #rtop, RELS.LIST.FIRST [ PRED udef_q_rel, LBL #splbl, ARG0 #ind, RSTR #harg, CFROM #from, CTO #to ], HCONS ], INFLECTD #infl ]. ; DPF 16-jul-04 - Can't make the left dtr RPUNCT no_punct, even though this ; would nicely block "*Kim, and Sandy arrive", because it also blocked the ; acceptable coordination of longer NPs, as in "the chair next to the ; table by the window, and the stool by the door are new." ; We'll leave the strong constraint on nbar-coord until forced to give it up. np_coord_top_rule := basic_top_coord_rule & np_coord_rule & [ LCONJ-DTR.SYNSEM.MODIFD.RPERIPH bool, C-CONT [ HOOK.INDEX #ind, RELS ] ]. np_coord_top_eg_rule := np_coord_top_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE #case, LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.CASE #case ]. np_coord_top_ig1_rule := np_coord_top_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom, LCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN pron_rel, CASE acc ], AGR.PNG.PN -2 ], GENRE nonformal ]. np_coord_top_ig2_rule := np_coord_top_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE nom, RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN pron_rel, CASE acc ], AGR.PNG.PN -2 ], GENRE nonformal ]. ; DPF 02-jun-09 - Restrict to 1st person only (for hypercorrection), to avoid ; spurious ambiguity np_coord_top_ig3_rule := np_coord_top_rule & [ SYNSEM.LOCAL.CAT.HEAD.CASE acc, RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD [ MINORS.MIN pron_rel, CASE nom ], AGR.PNG.PN 1 ], GENRE nonformal ]. np_coord_mid_rule := basic_mid_coord_rule & np_coord_rule & [ SYNSEM.LOCAL [ CAT.HEAD.CASE #case, CONJ.CREL #rel ], LCONJ-DTR.SYNSEM [ LOCAL.CAT.HEAD.CASE #case, MODIFD.RPERIPH bool ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #ind, RELS ] ]. np_coord_mid_eg_rule := np_coord_mid_rule & mid_coord_edgen_rule. np_coord_mid_ig_rule := np_coord_mid_rule & mid_coord_infgen_rule. ; For sequence of coordinated NPs and nbars without final conjunction ; Constrain to be GENRE nonformal ; Restrict right conjunct to be nonprominal nom_coord_mid_noconj_rule := binary_rule_right_to_left & basic_nom_coord_rule & [ SYNSEM [ LOCAL [ CAT.HEAD.CASE non_obliq, CONT.HOOK.INDEX conj_ref-ind, AGR.DIV #div, CONJ phr-conj & [ CHEAD cnil, CREL #rel ] ], PUNCT [ LPUNCT no_punct, PAIRED no_ppair, RPUNCT #rpunct ], MODIFD.RPERIPH na ], LCONJ-DTR [ SYNSEM [ LOCAL [ CAT.HEAD.CASE non_obliq, CONT.HOOK.INDEX #lind & nonconj_ref-ind, CONJ cnil ], PUNCT [ LPUNCT no_punct, RPUNCT comma_punct ], MODIFD.RPERIPH bool ], INFLECTD + ], RCONJ-DTR [ SYNSEM [ LOCAL [ CAT.HEAD [ CASE non_obliq, MINORS.MIN nonpro_rel ], CONT.HOOK.INDEX #rind & nonconj_ref-ind, AGR.DIV #div, CONJ cnil ], PUNCT [ LPUNCT no_punct, RPUNCT #rpunct ], MODIFD.RPERIPH bool ], INFLECTD + ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #cind & conj-ind ], RELS.LIST < [ PRED udef_q_rel, ARG0 #cind2, RSTR #harg, CFROM #from, CTO #to ], basic_conj_relation & [ LBL #ctop2, PRED implicit_conj_rel, ARG0 #cind2 & non_expl, L-INDEX #lind, R-INDEX #rind, CFROM #from, CTO #to ], basic_conj_relation & #rel & [ LBL #ltop, PRED implicit_conj_rel, ARG0 #cind & non_expl, R-INDEX #cind2, CFROM #from, CTO #to ], ... >, HCONS.LIST < qeq & [ HARG #harg, LARG #ctop2 ], ... > ] ]. np_coord_mid_noconj_rule := nom_coord_mid_noconj_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR < >, LCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.MINORS.NORM norm_rel, VAL.SPR *olist* ], RCONJ-DTR.SYNSEM.LOCAL.CAT [ HEAD.MINORS.NORM norm_rel, VAL.SPR *olist* ], C-CONT [ RELS , HCONS ] ]. nbar_coord_mid_noconj_rule := nom_coord_mid_noconj_rule & [ SYNSEM.LOCAL [ CAT [ VAL.SPR < synsem & [ LOCAL [ CAT [ HEAD det, VAL [ SUBJ < >, SPR *olist* ] ], AGR #agr & [ PNG.PN 3p ] ], NONLOC #nonloc, LEX +, OPT - ] >, HS-LEX #hslex ], AGR #agr ], LCONJ-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD.PRD -, VAL.SPR < synsem & [ --MIN #sprmin, OPT -, LOCAL.CAT.HEAD det, NONLOC #nonloc ] >, HS-LEX #hslex ], CONT.HOOK [ LTOP #ltop, INDEX #lind ] ], PUNCT.RPUNCT comma_or_rbc_punct ], ORTH [ FROM #from1, TO #to1 ] ], RCONJ-DTR [ SYNSEM.LOCAL [ CAT.VAL.SPR < synsem & [ --MIN #sprmin, OPT -, LOCAL.CAT.HEAD det, NONLOC #nonloc ] >, CONT.HOOK [ LTOP #rtop, INDEX #rind ] ], ORTH [ FROM #from2, TO #to2 ] ], C-CONT [ RELS , HCONS ] ]. ; DPF 05-apr-09 - Restrict to parenthesized NPs, as in "students (Kim, Pat)" ; even though this undergenerates, to avoid unwanted ambiguity for every ; comma-separated appositive. ; np_coord_top_noconj_rule := binary_rule_right_to_left & basic_nom_coord_rule & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.CASE non_obliq, VAL.SPR < > ], CONT.HOOK.INDEX conj_ref-ind, CONJ cnil ], PUNCT [ LPUNCT lparen_punct, PAIRED no_ppair, RPUNCT #rpunct ] ], LCONJ-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD [ CASE non_obliq, MINORS.NORM norm_rel ], VAL.SPR *olist* ], CONT.HOOK.INDEX #lind & nonconj_ref-ind, CONJ cnil ], PUNCT [ LPUNCT lparen_punct, RPUNCT comma_punct ] ], INFLECTD + ], RCONJ-DTR [ SYNSEM [ LOCAL [ CAT [ HEAD [ CASE non_obliq, MINORS [ MIN nonpro_rel, NORM norm_rel ] ], VAL.SPR *olist* ], CONT.HOOK.INDEX #rind & nonconj_ref-ind, CONJ cnil ], PUNCT [ LPUNCT no_punct, RPUNCT #rpunct, RCLSTR.RPAREN + ], MODIFD.RPERIPH bool ], INFLECTD + ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ INDEX #cind & conj-ind ], RELS , HCONS ], GENRE nonformal ]. ; Exclude proper name nbar coord for now at least. ; DPF 26-aug-04 - Generalized dtrs' HEAD from noun to noun_or_nomger ; DPF 25-feb-05 - Added unif of NORM on mother and dtrs to preserve ; non-compoundability as in "*[paper and other] garbage" ; DPF 13-mar-05 - Added MODIFD notmod to mother, to capture apparent and ; interesting fact that coordination of nbars results in a phrase that can ; again take either a posthead or prehead modifier: '[cats and small dogs] ; in Paris' and 'small [cats in boxes and large dogs]'. ; DPF 2-apr-05 - But this addition overconstrains the rule, disallowing e.g. ; 'the tenth and eleventh I am out of town'. So leave underspecified. ; DPF 14-nov-05 - Removed identification of LEX on dtrs and mother, since ; want to coordinate e.g. "garden with dogs and flower garden". This could ; raise nice puzzle, since want to allow "flower and vegetable garden" ; but block "*flower and vegetable with leaves garden". Happily, making ; non-head in compounds be non-inflected blocks the latter, since head-mod ; rule (for "vegetable with leaves" requires inflected dtrs). So for now ; identify LEX of mother with right dtr - maybe unnecessary. FIX? But to ; avoid too much ambiguity, for now still require #lex identity for ; mid-coord rule. ; DPF 14-nov-05 - Re 2-apr-05: The adj_adjh rule needs to have some MODIFD ; value for its modifiee, so leaving value unconstrained is unsatisfactory. ; Here try propagating the value from the left dtr, arbitrarily. ; DPF 13-mar-10 - Constrain the conjoined phrase to have same spr's MIN ; value, to block e.g. [[every cat] and dog] where adj `every' requires ; explicit determiner. nbar_coord_rule := nom_coord_rule & [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD [ MINORS.NORM #norm, CASE #case ], VAL.SPR < synsem & [ LOCAL [ CAT [ HEAD det & [ MINORS.MIN #sprmin ], VAL [ SUBJ < >, SPR *olist* ] ], AGR #agr ], NONLOC #nonloc, LEX +, OPT - ] >, HS-LEX #hslex ], AGR #agr ], MODIFD #modif, LEX #lex ], LCONJ-DTR [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD noun_or_nomger_or_nadj & [ MINORS.NORM #norm, CASE #case ], VAL.SPR.FIRST synsem & [ --MIN #sprmin, OPT -, LOCAL.CAT.HEAD det, NONLOC #nonloc ], HS-LEX #hslex ], CONT.HOOK [ LTOP #lhndl, INDEX #lind ] ], MODIFD #modif ], ORTH [ FROM #from, TO #to ] ], RCONJ-DTR [ INFLECTD #infl, SYNSEM [ LOCAL [ CAT [ HEAD noun_or_nomger_or_nadj & [ MINORS.NORM #norm, CASE #case ], VAL.SPR.FIRST synsem & [ --MIN #sprmin, OPT -, LOCAL.CAT.HEAD det, NONLOC #nonloc ] ] ], LEX #lex ] ], C-CONT [ RELS.LIST.FIRST [ PRED udef_q_rel, ARG0 #lind, RSTR #lrstr, CFROM #from, CTO #to ], HCONS.LIST.FIRST qeq & [ HARG #lrstr, LARG #lhndl ] ] ]. ; DPF 31-jul-06 - Push identity of SPR..PNG on both conjuncts down to the ; subrule which has [DIV -] LCONJ, so we can coordinate mass and plural, as ; in "camping and cabins". But note that this also allows spurious ambig ; for plur + sing, as in "the woods and field" - FIX. nbar_coord_symmet_rule := nbar_coord_rule & [ SYNSEM.LOCAL.AGR.PNG #png, RCONJ-DTR.SYNSEM.LOCAL.AGR.PNG #png ]. ; DPF 11-oct-05 - If there is a [DIV -] dtr, then mother must also be [DIV -], ; to block "*car and money are necessary". Need two subtypes of symmetric ; coord rule to capture this. ;; 2013-01-15 - Since there are now div and nondiv subtypes, it's wrong to ;; demand that the left dtr always be DIV + (see e.g. |the tenth and eleventh|) ;; so push LCONJ-DTR..DIV down to the two subtypes. ; nbar_coord_top_1_rule := top_coord_rule & nbar_coord_symmet_rule & [ SYNSEM.LOCAL [ AGR.DIV #div, CONT.HOOK.INDEX conj_ref-ind ], RCONJ-DTR.SYNSEM.LOCAL.AGR.DIV #div, C-CONT [ RELS , HCONS ] ]. ;; DPF 2011-09-02 - Since the coordination of two mass nouns can still show ;; singular agreement (|how much sand and gravel is in the pit?|), we divide ;; this rule into count vs. mass subtypes ;; DPF 2012-12-17 - Removed INFLECTD + constraints on dtrs, since we also ;; need this rule for |the rice and corn cat arises| ;; nbar_coord_top_1_div_rule := nbar_coord_top_1_rule & [ SYNSEM.LOCAL.AGR.PNG.PN #pn, LCONJ-DTR.SYNSEM.LOCAL.AGR.DIV +, RCONJ-DTR [ SYNSEM.LOCAL.AGR [ DIV +, PNG.PN #pn ] ] ]. nbar_coord_top_1_nondiv_rule := nbar_coord_top_1_rule & [ SYNSEM.LOCAL.AGR.PNG.PN #pn, LCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD noun, AGR.DIV - ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD noun, AGR.DIV -, CONJ.CPNG.PN #pn ] ]. ; Require both dtrs to be INFLECTD + to avoid spurious ambiguity for N-N ; compounds with a conjoined left dtr: "summer and winter routes" ; DPF 31-jul-06 - Let's try requiring unif of MINORS.MIN values for the ; two conjuncts, to avoid unwanted coord as "Kim and Sara cat Browne" ; DPF 19-apr-08 - Re 31-jul-06 - But this prevents coordination of e.g. ; "hand and book" since n-ed nouns have distinct MIN value. So undo. ; DPF 30-nov-09 - Re 19-apr-08 - However, we still want to block ; "*Kim and tree disappeared" ; nbar_coord_top_2_rule := top_coord_rule & nbar_coord_symmet_rule & [ INFLECTD +, SYNSEM.LOCAL [ AGR [ PNG.PN #pn, DIV - ], CONT.HOOK.INDEX conj_ref-ind ], LCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT.HEAD noun & [ CASE non_obliq ], AGR.DIV - ], PUNCT.RPUNCT comma_or_rbc_or_no_punct ] ], RCONJ-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT.HEAD noun & [ CASE non_obliq ], CONJ.CPNG.PN #pn ] ], C-CONT [ RELS , HCONS ] ]. ; Special coord rule for e.g. 'that legendary hunter and guide arrives', ; which adds semantic constraint that equates the two nbar indices ; DPF 8-aug-07 - Restrict to lexical conjuncts to avoid spurious ambiguity. nbar_coord_top_3_rule := top_coord_rule & nbar_coord_symmet_rule & [ INFLECTD +, SYNSEM.LOCAL [ CAT.HEAD.--BARE -, CONT.HOOK.INDEX conj_ref-ind, AGR [ PNG.PN 3s, DIV - ] ], LCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS.MIN #min & norm_nom_rel ], VAL.SPR < [ LOCAL.AGR.PNG #spng ] > ], CONT.HOOK.INDEX #lind, AGR.DIV - ], MODIFD notmod, LEX + ] ], RCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS.MIN #min ], VAL.SPR < [ LOCAL.AGR.PNG #spng ] > ], AGR.DIV -, CONJ.CREL [ PRED _and_c_rel, R-INDEX #rind ] ], MODIFD notmod, LEX + ] ], ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ]. nbar_coord_mid_rule := mid_coord_rule & nbar_coord_symmet_rule & [ SYNSEM.LOCAL.CONJ [ CREL #rel, CPNG.PN #pn ], LCONJ-DTR.SYNSEM [ LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel, LEX #lex ], RCONJ-DTR [ SYNSEM [ LOCAL [ CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel, CONJ [ CREL [ LBL #lbl, ARG0 #arg0 ], CPNG.PN #pn ] ], LEX #lex ], ORTH [ FROM #from2, TO #to2 ] ], ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. nbar_coord_mid_eg_rule := nbar_coord_mid_rule & mid_coord_edgen_rule. ; DPF 01-sep-07 - This one is too expensive given interaction with compounds. ; DPF 12-feb-08 - But we need this to get e.g. "cat, dog and bird infested" ; so restore it, but for now constrain it to only uninflected conjuncts, so ; only for compounds. ; DPF 05-aug-08 - We also need this for quite ordinary coordination like ; "tools, prototyping and programming", so restore full use, and look for ; other ways to improve efficient interaction with compounds. nbar_coord_mid_ig_rule := nbar_coord_mid_rule & mid_coord_infgen_rule. ; For coord of singular and plural nbar: "husband and children", with ; AGR value to block both "*this husband and children" and "*these husband ; and children" but allow "my husband and children" ; DPF 2-Mar-05 - Removed ALTMIN explicit_q_rel because it prevented ; 'without husband and children'. ; DPF 09-apr-09 - Block mid-coord right dtr, since that conjunction will ; always be plural, and thus falsely permit e.g. "Abrams, cat and dog" as ; a plural NP. nbar_coord_asym_rule := nbar_coord_rule & [ INFLECTD +, SYNSEM.LOCAL.AGR [ PNG.PN 3p, DIV - ], LCONJ-DTR [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD noun, VAL.SPR < [ LOCAL.AGR [ PNG.PN 3s, DIV - ] ] > ] ], RCONJ-DTR [ INFLECTD +, SYNSEM.LOCAL [ CAT [ HEAD noun, VAL.SPR < [ LOCAL.AGR.PNG.PN 3p ] > ], CONJ lex-conj ] ] ]. nbar_coord_asym_2_rule := nbar_coord_rule & [ INFLECTD +, SYNSEM.LOCAL [ CAT.HEAD.MINORS.ALTMIN explicit_q_rel, AGR [ PNG.PN 3p, DIV + ] ], LCONJ-DTR [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD noun, VAL.SPR < [ LOCAL.AGR.PNG.PN 3p ] > ] ], RCONJ-DTR [ INFLECTD +, SYNSEM.LOCAL.CAT [ HEAD noun, VAL.SPR < [ LOCAL.AGR [ PNG.PN 3s, DIV - ] ] > ] ] ]. nbar_coord_asym_top_rule := top_coord_rule & nbar_coord_asym_rule & [ C-CONT [ HOOK.INDEX conj_ref-ind, RELS , HCONS ] ]. nbar_coord_asym_top_2_rule := top_coord_rule & nbar_coord_asym_2_rule & [ C-CONT [ HOOK.INDEX conj_ref-ind, RELS , HCONS ] ]. ; For now, exclude mid-coord variants #| nbar_coord_asym_mid_rule := mid_coord_rule & nbar_coord_asym_rule & [ LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel ]. nbar_coord_asym_mid_2_rule := mid_coord_rule & nbar_coord_asym_2_rule & [ LCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN impl_or_expl_q_rel ]. |# ; For coordination of prenominal adj + noun modifiers, as in ; "the wooden and marble staircase" ; DPF 02-jul-09 - Add the reverse order as well: "the marble and wooden X" #| basic_adj_noun_coord_rule := min_coord_phr & [ INFLECTD +, SYNSEM synsem & [ LOCAL [ CAT [ HEAD adj & [ MOD #mod & < [ LOCAL.CONT.HOOK.INDEX #mind ] >, PRD #prd, MINORS #minors & [ MIN norm_adj_rel ] ], VAL #val & [ SPR < unexpressed, anti_synsem_min >, COMPS < > ], POSTHD #posthd & - ] ], LEX + & #lex, NONLOC non-local_none ], LCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD adj & [ MOD #mod, PRD #prd & -, MINORS #minors & [ NORM norm_rel ] ], VAL #val & [ COMPS < > ], POSTHD #posthd ], CONT.HOOK [ INDEX #lcind, XARG #mind ] ], LEX #lex, NONLOC non-local_none ] ], RCONJ-DTR [ INFLECTD -, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN gen_nom_nbar_rel, NORM no_rel ] ], VAL.COMPS < > ] ], NONLOC non-local_none ] ], ORTH [ FROM #from, TO #to ], C-CONT [ RELS.LIST < prep_notense_relation & [ PRED compound_rel, LBL #cltop, ARG1 #mind, ARG2 #rcind, CFROM #from, CTO #to ], ... > ], ARGS < sign, [ SYNSEM.LOCAL [ CONJ complex-conj & [ CREL [ L-INDEX #lcind, R-HNDL #cltop, R-INDEX #rcind ] ] ] ] > ]. |# basic_adj_noun_coord_rule := min_coord_phr & [ INFLECTD +, SYNSEM synsem & [ LOCAL [ CAT [ HEAD adj & [ MOD #mod & < [ LOCAL.CONT.HOOK.INDEX #mind ] >, PRD #prd, MINORS #minors & [ MIN norm_adj_rel ] ], VAL #val & [ SPR < unexpressed, anti_synsem_min >, COMPS < > ], POSTHD #posthd & - ] ], LEX + & #lex, NONLOC non-local_none ], LCONJ-DTR [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD adj & [ MOD #mod, PRD #prd & -, MINORS #minors & [ NORM norm_rel ] ], VAL #val & [ COMPS < > ], POSTHD #posthd ], CONT.HOOK [ XARG #mind ] ], LEX #lex, NONLOC non-local_none ] ], RCONJ-DTR [ INFLECTD -, SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS [ MIN gen_nom_nbar_rel, NORM no_rel ] ], VAL.COMPS < > ] ], NONLOC non-local_none ] ], ORTH [ FROM #from, TO #to ], C-CONT [ RELS.LIST < prep_notense_relation & [ PRED compound_rel, ARG1 #mind, CFROM #from, CTO #to ], ... > ], ARGS < sign, [ SYNSEM.LOCAL [ CONJ complex-conj ] ] > ]. ;; DPF 2012-08-25 - Added CONJ cnil to left daughter blocking spurious ambig ;; adj_noun_coord_rule := basic_adj_noun_coord_rule & [ LCONJ-DTR #ldtr & [ SYNSEM.LOCAL.CONT.HOOK.LTOP #lctop ], RCONJ-DTR #rdtr, C-CONT [ RELS , HCONS ], ARGS < #ldtr & [ SYNSEM [ LOCAL [ CONJ cnil, CONT.HOOK.INDEX #lcind ], PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct ]], #rdtr & [ SYNSEM.LOCAL [ CONJ.CREL [ L-HNDL #lctop, L-INDEX #lcind, R-HNDL #cltop, R-INDEX #rcind ], CONT.HOOK [ LTOP #lbl, INDEX #ind ] ] ] > ]. ;; Note that RCONJ-DTR is the leftmost dtr here (the noun) ;; DPF 2012-08-25 - Added CONJ cnil to left dtr, blocking spurious ambig ;; noun_adj_coord_rule := basic_adj_noun_coord_rule & [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.LTOP #mltop ] >, LCONJ-DTR #ldtr, RCONJ-DTR #rdtr & [ SYNSEM [ LOCAL.CONT.HOOK [ LTOP #lbl, INDEX #ind ], PUNCT.RPUNCT no_punct ] ], C-CONT [ RELS , HCONS ], ARGS < #rdtr & [ SYNSEM.LOCAL.CONJ cnil ], #ldtr & [ SYNSEM.LOCAL [ CONJ.CREL [ LBL #mltop, L-HNDL #cltop, L-INDEX #ind ] ] ] > ]. ; For now, only conjoin lexical adverbs ; Consider collapsing this with p_coord_phr type ; DPF 02-jun-09 - Relaxed much_deg_rel to much_or_more_deg_rel, since we ; were blocking "Kim left quickly and quietly" ; DPF 03-jun-10 - Okay, trying out merge of this rule with that for PPs #| adv_coord_phr := norm_coord_phr & [ SYNSEM [ LEX -, LOCAL [ CAT [ HEAD adv & [ PRD #prd, MINORS #mins, MOD #mod, TAM #tam ], VAL [ SPR < [ --MIN much_or_more_deg_rel, LOCAL [ CAT [ HEAD adv, VAL [ SPR *olist*, COMPS < > ] ], CONT.HOOK [ LTOP #ltop, INDEX #ind ] ], NONLOC.QUE 0-dlist ] >, COMPS < >, SPEC #spec ], POSTHD #ph ], CONT.HOOK [ LTOP #ltop, INDEX #ind, XARG #xarg ] ] ], LCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD adv & [ PRD #prd, MINORS #mins, MOD #mod, TAM #tam ], VAL [ SPR < [ --MIN much_or_more_deg_rel, LOCAL [ CAT [ HEAD adv, VAL [ SPR *olist*, COMPS < > ]]], NONLOC.QUE 0-dlist ] >, COMPS < >, SPEC #spec ] ], CONT.HOOK [ LTOP #ltop, XARG #xarg ] ], RCONJ-DTR.SYNSEM.LOCAL [ CAT [ HEAD adv & [ PRD #prd, MOD #mod, TAM #tam ], VAL [ SPR < [ --MIN much_or_more_deg_rel, LOCAL [ CAT [ HEAD adv, VAL [ SPR *olist*, COMPS < > ]]], NONLOC.QUE 0-dlist ] >, COMPS < >, SPEC #spec ], POSTHD #ph ], CONT.HOOK.XARG #xarg, CONJ.CREL.L-HNDL #ltop ], C-CONT.HCONS ]. adv_coord_top_phr := adv_coord_phr & top_coord_event_rule. adv_coord_mid_eg_phr := adv_coord_phr & mid_coord_event_edgen_rule. adv_coord_mid_ig_phr := adv_coord_phr & mid_coord_event_infgen_rule. |# ; DPF 28-Nov-02 - HOOK comes only from C-CONT ; DPF 27-Nov-04 - Removed SPR *anti-list* from left dtr, to allow N-bars ; like "act of kindness; assistance" ; DPF 27-Nov-04 - Added LPERIPH + as hack to prevent these from being ; modified by subconj_prdp phrases, as in "coming next after the ninety-ninth" ; DPF 14-aug-05 - Limit to run-ons where message is same on both conjuncts, ; to avoid underspecification of message on left dtr which leads to unwanted ; triggering for generation ; DPF 03-sep-05 - But this doesn't work so well with fragments. So just ; restrict left conjunct to prop_imp_m_rel, and ignore for now run-ons with a ; left interrogative -- annoying in treebanking, but manageable. ; DPF 31-may-07 - Removed ALTMIN no_rel from mother to allow recursive ; application of this rule. ;; DPF 2012-12-21 - Moved MC + down to subtypes, but not on npindef_s_rule, ;; to allow embedded clauses of the form ;; |Kim said "a famous doctor, Abrams cured thousands"| ;; basic_run_on_rule := binary_rule_right_to_left & basic_binary_phrase & [ INFLECTD +, SYNSEM [ LEX -, LOCAL [ CAT [ HEAD conj-s & [ MOD < >, MINORS.MIN discourse_rel ], VAL [ SPR *anti_list*, COMPS < > ] ], CONJ cnil, AGR.PNG #png ], PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct ] ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL local & [ CAT.VAL.COMPS < >, CONT.HOOK.INDEX #lind, CONJ cnil_or_lex_or_atomconj ], NONLOC.SLASH 0-dlist & [ LIST < > ], PUNCT [ LPUNCT #lpunct ] ] ], [ INFLECTD +, SYNSEM [ LOCAL local & [ CAT [ VAL [ SUBJ *anti_list*, COMPS < > ] ], AGR.PNG #png, CONJ cnil_or_lexconj & [ CHEAD cnil ] ], NONLOC.SLASH 0-dlist & [ LIST < > ], PUNCT [ LPUNCT lparen_or_dq_or_no_punct, RPUNCT #rpunct & [ PSF #sf ] ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #cltop, INDEX #ind & event & [ SF #sf ] ], RELS.LIST < conj_relation & [ PRED implicit_conj_rel, LBL #cltop, ARG0 #ind, L-INDEX #lind, CFROM #from, CTO #to ], ... > ] ]. ; DPF 23-jun-07 - Changed RCONJ-DTR..RPUNCT from clause_or_semicol to ; clause_or_semicol_or_no_punct in order to allow e.g. |2. Kim| without ; final period. May cause trouble since this rule is now right-recursive. ; DPF 25-aug-07 - Try relaxing LCONJ-DTR..RPUNCT to include comma, as in ; "This man's isolation is not merely momentary, it is permanent." ;; DPF 2012-01-29 - Removed RCONJ-DTR..LPERIPH - to allow ;; |we arise, maybe they arrive.| basic_run_on_coord_rule := basic_run_on_rule & basic_coord_phr & [ SYNSEM.LOCAL.CAT [ VAL.SUBJ #subj & *anti_list*, MC + ], LCONJ-DTR #lconj & [ SYNSEM [ LOCAL [ CAT [ HEAD verb_or_frag & [ TAM.MOOD ind_or_modal_subj, MOD *anti_list*, MINORS [ MIN norm_rel, ALTMIN norm_rel ] ], VAL.SUBJ #subj, MC + ], CONT.HOOK [ LTOP #ltop, INDEX [ E indic_tam, SF prop-or-comm ] ] ] ] ], RCONJ-DTR #rconj & [ SYNSEM [ LOCAL [ CAT [ HEAD verb_or_conj_or_frag & [ MINORS [ MIN norm_rel, ALTMIN norm_rel ] ], VAL.SUBJ *anti_list*, MC + ], CONT [ HOOK [ LTOP #rltop, INDEX #rind & [ SF #sf ] ] ] ], PUNCT.RPUNCT clause_or_semicol_or_no_punct & [ PSF #sf ] ] ], C-CONT [ RELS , HCONS ], ARGS < #lconj, #rconj > ]. run_on_coord_rule := basic_run_on_coord_rule & [ SYNSEM.MODIFD.LPERIPH +, LCONJ-DTR.SYNSEM.PUNCT.RPUNCT clause_or_semicol, RCONJ-DTR.SYNSEM.LOCAL.CAT.HEAD verb_or_conj_or_frag ]. run_on_coord_comma_rule := basic_run_on_coord_rule & [ LCONJ-DTR.SYNSEM phr_synsem & [ LOCAL.CAT.HEAD verb, PUNCT.RPUNCT comma_punct ], RCONJ-DTR.SYNSEM.LOCAL [ CAT.HEAD verb_or_conj-s, CONJ cnil ], GENRE nonformal ]. ;; DPF 22-apr-09 - Block WH-NP as right dtr (via SUBJ < >), to ;; avoid spurious analysis of 'Abrams lost, which Abrams suspected.' basic_run_on_np_rule := basic_run_on_rule & non_headed_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.ALTMIN no_rel, VAL.SUBJ *anti_list*, MC + ], NONLOC #nonloc, MODIFD.LPERIPH + ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb_or_frag & [ MINORS.MIN norm_rel ], VAL.SUBJ *anti_list*, MC + ], CONT.HOOK [ LTOP #ltop, INDEX.SF prop-or-comm ] ], NONLOC #nonloc ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD noun & [ MINORS.MIN norm_rel, --BARE - ], VAL [ SPR *olist*, SUBJ < > ] ], CONJ cnil_or_lexconj, CONT.HOOK.INDEX #nind ], NONLOC #nonloc ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ], GENRE nonformal ]. ;; Comma marked sentence, followed by NP ;; run_on_np_rule := basic_run_on_np_rule & [ ARGS < [ SYNSEM.PUNCT.RPUNCT rbcomma_punct ], [ SYNSEM.MODIFD.LPERIPH - ] > ]. run_on_np_paren_rule := basic_run_on_np_rule & [ ARGS < [ SYNSEM.PUNCT.RPUNCT no_punct ], [ SYNSEM.PUNCT [ LPUNCT lparen_punct, RCLSTR.RPAREN + ] ] > ]. np_s_phrase := basic_run_on_rule & non_headed_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD.MINORS.ALTMIN no_rel, VAL.SUBJ *anti_list* ], NONLOC #nonloc, MODIFD.LPERIPH + ], ARGS < [ SYNSEM [ LOCAL.CAT.VAL [ SPR *olist*, SUBJ < > ], NONLOC #nonloc ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD verb_or_frag & [ MINORS.MIN norm_rel ], VAL.SUBJ *anti_list*, MC + ], CONT.HOOK [ LTOP #sltop, INDEX #sind & [ SF prop-or-comm & #sf ] ] ], NONLOC #nonloc, PUNCT.RPUNCT.PSF #sf ] ] >, C-CONT [ RELS , HCONS ] ]. ;; DPF 01-feb-2011 - Added rule for numbered items: |2. We arrived.| ;; Also added hack ONSET unk_onset to allow this analysis for |2 cats arrived| ;; but not for |Two cats arrived|, to avoid generally spurious ambiguity ;; DPF 2012-09-26 - Added MODIFD notmod to left dtr to avoid spurious ambig ;; DPF 2012-11-06 - Changed PHON.ONSET to PHON.DIGIT. Also added ALTMIN ;; number_q_rel, to avoid admitting complex phrases headed by a number, ;; such as |[the one Devito] we arrived| ;; npnum_s_rule := np_s_phrase & [ SYNSEM.LOCAL.CAT.MC +, ARGS < [ SYNSEM [ LOCAL [ CAT.HEAD noun & [ MINORS [ MIN named_num_rel, ALTMIN number_q_rel ]], CONJ cnil_or_lexconj ], PUNCT.RPUNCT hyphen_or_comma_or_clause_or_no_punct & [ PSF prop ], MODIFD notmod, PHON.DIGIT + ] ], [ SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN norm_rel ] > ]. ;; DPF 2011-08-14 - Added rule for NP+S where initial NP is indefinite ;; `depictive', such as |A competent programmer, Devito works for Abrams.| ;; npindef_s_rule := np_s_phrase & [ SYNSEM.LOCAL.CAT.MC bool, ARGS < [ SYNSEM [ LOCAL [ CAT.HEAD noun & [ MINORS [ MIN norm_nom_rel, ALTMIN _a_q_rel ] ], CONJ cnil ], PUNCT.RPUNCT comma_punct ] ], [ SYNSEM.LOCAL.CAT.HEAD verb ] > ]. ;; DPF 2011-08-14 - Added extraposed (restrictive) relatives which attach to ;; VP, and which introduce an underspecified relation to be interpreted as ;; anaphoric link to some NP in the clause. Exclude proper names as subjects ;; here, to avoid |*Kim arrived, who arose| ;; DPF 2013-01-09 - Constrain vp-final-relcl_phrase to exclude s-final punct ;; on hd-dtr. (See generator for "a cat arrived who arose.") ;; vp-final-relcl_phrase := head_initial_infl & [ SYNSEM phr_synsem & [ LOCAL [ CAT #cat, CONJ cnil ], NONLOC #nonloc ], ARGS < [ SYNSEM [ LOCAL [ CAT #cat & [ HEAD verb & [ MINORS.MIN norm_rel ], VAL [ SUBJ < expressed_synsem & [ LOCAL.CAT.HEAD basic_noun & [ MINORS.ALTMIN impl_or_expl_or_pron_q_rel ]] >, COMPS < > ] ], CONT.HOOK #hook, CONJ cnil ], PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct, NONLOC #nonloc ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM fin, INV -, MOD < synsem & [ --SIND #modind & [ SORT entity ], LOCAL.CONT.HOOK.XARG basic_non_expl, MODIFD.RPERIPH na_or_+ ] > ], VAL [ SUBJ < >, SPR < >, COMPS < > ], MC na ], CONT.HOOK.LTOP #rcltop, CONJ cnil ], MODIFD.RPERIPH na, NONLOC non-local_none ] ] >, C-CONT [ HOOK #hook & [ LTOP #ltop ], RELS , HCONS ], ORTH [ FROM #from, TO #to ] ]. ;;no_copula_prd_vp_rule := no_copula_prd_phrase & rule. ;;no_copula_id_vp_rule := no_copula_id_phrase & rule. ;;no_copula_nosubj_rule := no_copula_nosubj_phrase & rule. free_rel_rule := binary_rule_left_to_right & free_rel_phrase. partitive_num_nocomp_rule := partitive_num_nocomp_phrase & rule. partitive_num_ppof_rule := partitive_num_ppof_phrase & rule. partitive_intadj_nocomp_rule := partitive_intadj_nocomp_phrase & rule. partitive_intadj_ppof_rule := partitive_intadj_ppof_phrase & rule. possessed_np_rule := possessed_np_phrase & rule. partitive_np_rule := partitive_np_phrase & rule. vocative_np_rule := vocative_np_phrase & rule & [ SYNSEM [ LOCAL.CAT [ POSTHD +, HEAD.MOD < [ PUNCT.RPUNCT comma_punct ] > ], MODIFD.RPERIPH - ], ARGS < [ SYNSEM [ LOCAL.CONT.HOOK.INDEX nonconj_ref-ind, MODIFD.RPERIPH na_or_+, PUNCT.RPUNCT comma_or_clause ] ] > ]. ;; DPF 2012-03-13 - Restrict to HEAD verb_or_frag to avoid modifying ;; conj-initial sentence: |Kim hired Abrams and we quit.| vocative_np_lmod_rule := vocative_np_phrase & rule & [ SYNSEM [ LOCAL.CAT [ POSTHD -, HEAD.MOD < [ MODIFD.LPERIPH -, LOCAL [ CAT.HEAD verb_or_frag, CONJ cnil ] ] > ], MODIFD.LPERIPH + ], ARGS < [ SYNSEM.PUNCT.RPUNCT comma_punct ] > ]. ; This normal rule ensures number agreement of the determiner and head noun. ; (but allows the supertype to be used for a robustness rule on number) ; num_det_rule := num_det_phrase & rule & [ SYNSEM.LOCAL.CAT.VAL.SPEC < [ LOCAL.AGR.PNG.PN #pn ] >, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL.AGR.PNG.PN #pn ] > ] > ]. ; DPF 14-aug-05 - Made frags be MC + (rather than na_or_+) to prevent non-MC ; modifiers (like 'not') from modifying fragments. basic_frag_rule := phrase & rule & [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN unknown_rel, VAL [ SUBJ < anti_synsem_min >, COMPS < > ], MC + ], CONJ cnil_or_lexconj ], NONLOC [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist, QUE 0-dlist ] ] ]. norm_frag_rule := basic_frag_rule & [ SYNSEM.LOCAL.CAT.HEAD frag, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK.INDEX #arg0, RELS.LIST < unknown_relation & [ ARG0 #arg0 & non_conj_event, CFROM #from, CTO #to ], ... > ] ]. basic_unary_frag_rule := norm_frag_rule & norm_unary_phrase & [ SYNSEM [ LOCAL [ CONT.HOOK.INDEX.SF #pred, CONJ #conj ], LEX - ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT.VAL.COMPS < >, CONJ #conj ], LEX bool, NONLOC.REL 0-dlist, PUNCT.RPUNCT comma_or_clause_or_pair_or_no_punct & [ PSF #pred ] ] ] >, C-CONT.HOOK.INDEX.SF prop-or-ques ]. unary_frag_rule := basic_unary_frag_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR < >, ARGS < [ SYNSEM.NONLOC.SLASH 0-dlist & [ LIST < > ] ] >, C-CONT [ HOOK.LTOP #ulbl, RELS ] ]. frag_nom_rule := basic_unary_frag_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR #spr, ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD supnoun & [ CASE non_obliq ], VAL [ SUBJ *olist*, SPR #spr ] ], CONT [ HOOK.INDEX #ind ] ], NONLOC.SLASH 0-dlist & [ LIST < > ] ] ] >, C-CONT [ HOOK.LTOP #ulbl, RELS.LIST.FIRST [ LBL #ulbl, ARG #ind ] ] ]. frag_np_rule := frag_nom_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR *olist*, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ CASE acc, MINORS.NORM quantity_or_norm_or_no_rel ], CONT.HOOK.LTOP #ltop, CONJ cnil ] ] >, C-CONT [ RELS , HCONS ] ]. frag_np_conj_rule := frag_nom_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR *olist*, ARGS < [ SYNSEM.LOCAL [ CAT.HEAD [ CASE acc, MINORS.NORM quantity_or_norm_or_no_rel ], CONT.HOOK.LTOP #ltop, CONJ lex-conj & [ CHEAD cnil ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. frag_nbar_rule := frag_nom_rule & [ SYNSEM.LOCAL [ CAT.VAL.SPR < unexpressed & [ LOCAL.CAT.HEAD det & [ MINORS.ALTMIN no_rel ], OPT - ] >, AGR.DIV - ], ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD.MINORS [ MIN nbar_or_dofm_rel, NORM no_rel ], VAL.SPR < [ LOCAL.CAT.HEAD.MINORS.MIN #min & implicit_q_rel, --MIN #min ] > ], CONT.HOOK [ LTOP #nhand, INDEX #index & [ DIV - ] ] ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS , HCONS ] ]. ; DPF 28-aug-07 - Added ALTMIN no_rel to prevent these from appearing as ; right-hand dtr in cl-cl_runon_c rule, e.g. "Kim arrived yesterday, in Paris." ; DPF 08-apr-08 - Removed ARGS..SPR *synlist* so we can admit NP-adverbials ; like "here in Paris". ;; DPF 2012-11-06 - Added ARGS..SPR *olist* to avoid admitting PPs whose ;; head has an obligatory specifier, such as the prenominal `a' of ;; |$10-a-share cat| ;; frag_pp_ind_rule := unary_frag_rule & [ SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN no_rel, ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD prep_or_modnp & [ MOD < [ LOCAL intersective_mod ] >, MINORS.MIN independent_rel ], VAL.SPR *olist* ], CONT.HOOK [ LTOP #klbl, XARG #arg ] ] ] >, C-CONT [ RELS.LIST.FIRST [ LBL #klbl, ARG0 #arg ], HCONS ] ]. ; DPF 05-Dec-03 - Try excluding expletive-it subject adjectives, to prevent eg ; spurious analysis for 'okay I will stay' ; DPF 10-apr-05 - But this also blocks "Impossible to know" and ; "how convenient that Kim left!" so live with the above ambiguity ; DPF 21-dec-05 - Removed [PRD +] since it blocked coord of adj and passive VP ; DPF 28-jul-06 - Corrected semantics to make ARG1 of adj_rel be same as ; the ARG of unknown_rel. ;; DPF 2012-04-07 - Re 05-Dec-03: But this blocks a fragment analysis for e.g. ;; |Strange that Kim wasn't here|, so remove this constraint. frag_adj_rule := unary_frag_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD adj & [ MINORS.MIN norm_rel ], VAL.COMPS < > ], CONT.HOOK [ LTOP #lbl, XARG #ind ] ] ] >, C-CONT [ HOOK.LTOP #lbl, RELS.LIST.FIRST [ LBL #lbl, ARG #ind ], HCONS ] ]. frag_adv_rule := basic_unary_frag_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR < >, ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD adv_or_no_head & [ MOD < synsem & [ LOCAL scopal_mod & [ CONT.HOOK.LTOP #klbl ] ] >, MINORS.MIN norm_or_no_rel ], POSTHD - ], CONT.HOOK.LTOP #ltop ] ] >, C-CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ]. frag_int_adv_rule := unary_frag_rule & [ ARGS < [ SYNSEM.LOCAL.CAT [ HEAD adv & [ MOD < synsem & [ LOCAL intersective_mod & [ CAT.HEAD adverbee, CONT [ HOOK.LTOP #klbl ] ] ] >, MINORS.MIN norm_rel ] ] ] >, C-CONT [ RELS.LIST.FIRST.LBL #klbl, HCONS ] ]. ; For conditionals, among others, but blocking subconj_prdp guys. frag_sent_adv_rule := basic_unary_frag_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR < >, ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD prep & [ MOD < synsem & [ LOCAL scopal_mod & [ CONT.HOOK.LTOP #klbl ] ] >, MINORS.NORM norm_rel ] ], CONT.HOOK.LTOP #ltop ], NONLOC.SLASH 0-dlist & [ LIST < > ] ] ] >, C-CONT [ HOOK.LTOP #ltop, RELS , HCONS ] ]. ;; 'And Kim arrived.' ;; Restrict dtr to CONJ lex-conj to avoid mid-coord S as fragment ;; DPF 2011-06-23 - Changed dtr's SUBJ from < anti_synsem_min > to *anti_list* ;; in order to admit e.g. |and should he arise?| ;; frag_sent_conj_rule := basic_frag_rule & norm_unary_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD conj-s & [ MOD < >, MINORS.ALTMIN no_rel ], VAL.SPR < > ], CONJ cnil ], LEX #lex ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ MINORS.MIN norm_rel ], VAL [ SUBJ *anti_list*, SPR *anti_list*, COMPS < > ], MC + ], CONT.HOOK [ LTOP #ltop, INDEX #arg0 ], CONJ lex-conj & [ CHEAD cnil ] ], LEX #lex & bool, NONLOC.SLASH 0-dlist & [ LIST < > ] ] ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #arg0 ], RELS , HCONS ] ]. ; DPF 23-aug-04 - Added DTRA..NORM norm_rel to enable blocking of phrases ; that cannot be fragments, such as the derived subconj_prdp 'hiking' as in ; 'hiking in Aurland' binary_frag_rule := norm_frag_rule & binary_punct_phrase & [ SYNSEM.LOCAL [ CAT.VAL.SPR < >, CONJ cnil ], DTRA [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD [ MOD < synsem & [ --MIN norm_rel, LOCAL.CONT.HOOK [ LTOP #ulbl, INDEX #uind ] ] >, MINORS [ MIN independent_rel, NORM norm_rel ] ], VAL [ SUBJ *olist*, COMPS < > ] ], CONT [ HOOK [ INDEX.SF #pred ] ], CONJ cnil_or_lexconj ], NONLOC [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist, QUE 0-dlist ] ] ], DTRB [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD.MINORS.MIN independent_rel, VAL.COMPS < > ], CONJ cnil_or_lexconj ], NONLOC [ SLASH 0-dlist & [ LIST < > ], REL 0-dlist ] ], KEY-ARG + ], ARGS < sign, [ SYNSEM.PUNCT.RPUNCT.PSF #pred ] >, C-CONT [ RELS.LIST < [ LBL #ulbl, ARG0 #uind ], ... > ] ]. binary_left_frag_rule := binary_frag_rule & [ SYNSEM.PUNCT.PNCTPR #ppair, DTRA #dtr1 & [ SYNSEM [ LOCAL [ CAT.HEAD.MOD < [ LOCAL.CAT.HEAD adverbee ] > ], PUNCT.RPUNCT hyphen_or_comma_or_clause_or_no_punct ] ], DTRB #dtr2 & [ SYNSEM [ LOCAL.CAT.VAL.SPR *olist*, PUNCT.PNCTPR #ppair ] ], ARGS < #dtr1, #dtr2 >, C-CONT [ HOOK [ INDEX.SF prop-or-ques ], RELS ] ]. frag_l_mod_np_rule := binary_left_frag_rule & [ ARGS < sign & [ SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL.CONT.HOOK.LTOP #lbl ] >, CONT.HOOK.LTOP #ltop ] ], [ SYNSEM.LOCAL [ CAT.HEAD basic_noun & [ CASE non_obliq ], CONT.HOOK [ LTOP #lbl, INDEX #ind ], CONJ cnil ] ] >, C-CONT [ HOOK.LTOP #ltop, RELS.LIST.FIRST [ LBL #lbl, ARG #ind ], HCONS ] ]. ;; DPF 25-apr-04 - Added POSTHD - to modifier, like for frag_l_mod_pp_rule. ;; DPF 22-apr-09 - Added PRD + to block vocatives frag_l_mod_s_np_rule := frag_l_mod_np_rule & [ ARGS < sign & [ SYNSEM.LOCAL.CAT [ HEAD [ MOD < [ LOCAL scopal_mod ] >, PRD + ], POSTHD - ] ], sign > ]. ;; DPF 2011-08-20 - constrain left daughter to be phrasal, to avoid e.g. ;; |away the trash| frag_l_mod_i_np_rule := frag_l_mod_np_rule & [ ARGS < sign & [ SYNSEM phr_synsem & [ LOCAL.CAT.HEAD.MOD < [ LOCAL intersective_mod & [ CONT.HOOK.LTOP #ltop ], --SIND event ] > ] ], sign >, C-CONT.HOOK.LTOP #ltop ]. ; DPF 22-jan-08 - Try removing the MOD..scopal_mod constraint, to allow ; e.g. "eventually in Paris" as a fragment. ;; DPF 09-dec-09 - Added PRD + to first dtr, to block vocatives. frag_l_mod_pp_rule := binary_left_frag_rule & [ ARGS < sign & [ SYNSEM.LOCAL [ CAT [ HEAD.PRD +, POSTHD - ], CONT.HOOK.LTOP #klbl ] ], [ SYNSEM.LOCAL [ CAT.HEAD prep & [ MOD < synsem & [ LOCAL intersective_mod, --SIND #kev ] >, MINORS.MIN independent_rel ], CONT.HOOK.LTOP #klbl ] ] >, C-CONT [ HOOK.LTOP #klbl, RELS.LIST.FIRST [ LBL #klbl, ARG0 #kev ], HCONS ] ]. ;; DPF 28-jun-09 - Added PRD + to block vocatives frag_l_mod_adv_rule := binary_left_frag_rule & [ ARGS < sign & [ SYNSEM.LOCAL [ CAT [ HEAD p_or_adv_or_dadv & [ MOD < [ LOCAL scopal_mod ] > ], POSTHD - ], CONT.HOOK.LTOP #ltop ] ], [ SYNSEM.LOCAL [ CAT [ HEAD [ MOD < synsem & [ LOCAL scopal_mod & [ CONT.HOOK.LTOP #ltop ] ] >, MINORS.NORM norm_rel, PRD + ], POSTHD + ], CONT.HOOK.LTOP #ltop2 ] ] >, C-CONT [ HOOK.LTOP #ltop2, HCONS ] ]. ; DPF 05-dec-03 - Try restricting left dtr to non-WH, also to avoid spurious ; parses for e.g 'what is a good time to meet' binary_right_frag_rule := binary_frag_rule & [ SYNSEM.PUNCT.PNCTPR #ppair, DTRA #dtr1 & [ SYNSEM.PUNCT.PNCTPR #ppair ], DTRB #dtr2 & [ SYNSEM [ NONLOC.QUE 0-dlist, PUNCT.RPUNCT comma_or_clause_or_no_punct ] ], ARGS < #dtr2, #dtr1 > ]. basic_frag_r_mod_np_rule := binary_right_frag_rule & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD noun & [ CASE acc, MINORS.ALTMIN non_freerel_q_rel, --BARE - ], VAL.SPR *olist* ], CONT [ HOOK [ LTOP #lbl, INDEX #ind ] ] ], PUNCT.RPUNCT #rpunct ] ], sign & [ SYNSEM.LOCAL [ CAT.HEAD.MOD < [ PUNCT.RPUNCT #rpunct ] > ] ] >, C-CONT [ RELS , HCONS ] ]. frag_r_mod_np_rule := basic_frag_r_mod_np_rule & [ ARGS < sign, sign & [ SYNSEM.LOCAL.CAT [ HEAD p_or_adv_or_dadv & [ MOD < [ LOCAL scopal_mod ] >, PRD - ], POSTHD + ] ] > ]. ; For intersective adverbs or non-nom-modifying PPs, as in ; "many problems afterwards" ; DPF 9-aug-07 - But allowing PPs means we get annoying fragment parse for ; "roads to Rome" with the non-noun-modifying "to". Let's try restricting ; this to adverbs only. ; DPF 3-nov-07 - But this also blocks "2. To Paris". So put prep back in. ; frag_r_mod_np_i_rule := basic_frag_r_mod_np_rule & [ ARGS < sign, sign & [ SYNSEM.LOCAL [ CAT [ HEAD p_or_adv_or_dadv & [ MOD < [ LOCAL intersective_mod & [ CAT.HEAD v_or_a, CONT.HOOK.LTOP #ltop]]>], VAL.SPR *olist*, POSTHD + ], CONT.HOOK.LTOP #ltop ] ] >, C-CONT.HOOK.LTOP #ltop ]. ; For "pizza ready" frag_r_mod_np_adj_rule := basic_frag_r_mod_np_rule & [ ARGS < sign, sign & [ SYNSEM [ LOCAL [ CAT.HEAD adj_or_intadj & [ PRD +, MOD < [ LOCAL.CONT.HOOK.LTOP #ltop ]> ], CONT.HOOK.LTOP #ltop ], LEX + ] ] >, C-CONT.HOOK.LTOP #ltop ]. frag_r_mod_nbar_rule := binary_right_frag_rule & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD noun & [ CASE acc, MINORS.ALTMIN non_freerel_q_rel ], VAL.SPR < [ OPT - ] > ], AGR [ PNG.PN 3s, DIV - ], CONT.HOOK [ LTOP #ltop, INDEX #ind ] ], PUNCT.RPUNCT #rpunct ], ORTH [ FROM #from, TO #to ] ], sign & [ SYNSEM.LOCAL [ CAT [ HEAD p_or_adv_or_dadv & [ MOD < [ LOCAL scopal_mod, PUNCT.RPUNCT #rpunct ] > ], POSTHD + ] ] ] >, C-CONT [ RELS , HCONS ] ]. ; 'into the room before Kim arrives' frag_r_mod_scop_pp_rule := binary_right_frag_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD p_or_adv & [ MOD < synsem & [ LOCAL intersective_mod, --SIND #kev ] >, MINORS.MIN independent_rel ], CONT.HOOK.LTOP #klbl ] ], sign & [ SYNSEM.LOCAL.CAT [ HEAD p_or_adv_or_dadv & [ MINORS.MIN subord_rel, MOD < [ LOCAL scopal_mod & [ CAT.HEAD adverbee, CONT.HOOK.LTOP #klbl ], --SIND #kev ] > ], POSTHD + ] ] >, C-CONT [ HOOK.INDEX.SF prop-or-ques, RELS , HCONS ] ]. frag_r_mod_ap_rule := binary_right_frag_rule & [ ARGS < [ SYNSEM [ LOCAL [ CAT.HEAD adj & [ PRD + ], CONT [ HOOK [ LTOP #klbl, INDEX #ind ] ] ], NONLOC.QUE 0-dlist ] ], sign & [ SYNSEM.LOCAL.CAT [ HEAD p_or_adv_or_dadv & [ MOD < [ LOCAL scopal_mod & [ CAT.HEAD adverbee, CONT.HOOK.LTOP #klbl ], --SIND #ind ] > ], POSTHD + ] ] >, C-CONT [ HOOK.INDEX.SF prop-or-ques, RELS , HCONS ] ]. ; DPF 21-aug-04 - Added nonempty SYNSEM..ALTMIN to prevent these from ; appearing in run_on_s rule. basic_frag_verbal_rule := basic_frag_rule & unary_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD frag & [ MINORS.ALTMIN no_rel ], VAL.SPR < > ], CONT.HOOK #hook ], PUNCT.RPUNCT.PSF #sf ], ARGS < [ INFLECTD +, SYNSEM [ LOCAL [ CAT [ HEAD verbal & [ INV - ], VAL.COMPS < >, MC na_or_- ], CONT.HOOK #hook, CONJ cnil_or_lexconj ], NONLOC [ REL 0-dlist, QUE 0-dlist ] ] ] >, C-CONT.HOOK.INDEX.SF prop-or-ques & #sf ]. frag_verbal_rule := basic_frag_verbal_rule & [ ARGS < [ SYNSEM.NONLOC.SLASH 0-dlist & [ LIST < > ] ] > ]. ;; DPF 2012-06-23 - Can't see why the zero-pronoun semantics was introduced, ;; since the ref-ind has no link to the rest of the VP. So delete it. ;; #| frag_vp_rule := frag_verbal_rule & [ ARGS < [ SYNSEM.LOCAL.CAT [ HEAD [ MINORS.MIN norm_rel, VFORM non_bse, TAM.MOOD ind_or_modal_subj, MOD *cons* ], VAL.SUBJ < synsem & [ LOCAL.CAT.HEAD noun, --SIND non_expl-ind, NONLOC.SLASH 0-dlist ] > ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ RELS.LIST < [ PRED pronoun_q_rel, RSTR #rhand, ARG0 #inst, CFROM #from, CTO #to ], [ LBL #prohand, PRED pron_rel, ARG0 #inst & full_ref-ind & [ PRONTYPE zero_pron, SORT entity ], CFROM #from, CTO #to ], ... >, HCONS ] ]. frag_vp_fin_rule := frag_vp_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM fin, TAM.TENSE real_tense ], VAL.SUBJ.FIRST unexpressed_min ], CONT.HOOK #hook ] ] >, C-CONT [ HOOK #hook & [ XARG.SORT entity ], RELS ] ]. frag_vp_nonfin_rule := frag_vp_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD.VFORM non_fin, CONT.HOOK.LTOP #argltop ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #arg0 ], RELS ] ]. |# frag_vp_rule := frag_verbal_rule & [ ARGS < [ SYNSEM.LOCAL.CAT [ HEAD [ MINORS.MIN norm_rel, VFORM non_bse, TAM.MOOD ind_or_modal_subj, MOD *cons* ], VAL.SUBJ < synsem & [ LOCAL.CAT.HEAD noun, --SIND non_expl-ind, NONLOC.SLASH 0-dlist ] > ] ] >, C-CONT [ HCONS ] ]. frag_vp_fin_rule := frag_vp_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD [ VFORM fin, TAM.TENSE real_tense ], VAL.SUBJ.FIRST unexpressed_min ], CONT.HOOK #hook ] ] >, C-CONT [ HOOK #hook & [ XARG.SORT entity ], RELS ] ]. #| frag_vp_nonfin_rule := frag_vp_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD.VFORM non_fin, CONT.HOOK.LTOP #argltop ] ] >, ORTH [ FROM #from, TO #to ], C-CONT [ HOOK [ LTOP #ltop, INDEX #arg0 ], RELS ] ]. |# frag_vp_nonfin_rule := frag_vp_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT.HEAD.VFORM non_fin, CONT.HOOK #hook ] ] >, C-CONT [ HOOK #hook, RELS ] ]. frag_sbar_rule := frag_verbal_rule & [ ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD comp & [ MINORS.MIN norm_rel, VFORM fin, CASE nom ], VAL.SUBJ *anti_list* ], CONJ cnil ] ] >, C-CONT [ RELS , HCONS ] ]. frag_relcl_rule := frag_verbal_rule & [ ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ MINORS [ MIN norm_rel, NORM norm_rel ], VFORM fin, MOD < synsem > ], MC na, VAL.SUBJ *anti_list* ], CONJ cnil ], PUNCT.RPUNCT.PSF prop ] ] >, C-CONT [ RELS , HCONS ] ]. ; "To devour or consume" - used in dictionary defs frag_vp_slash_rule := basic_frag_verbal_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT [ HEAD [ MINORS.MIN norm_rel, VFORM non_fin ], VAL.SUBJ < nongappro & [ OPT + ] > ], NONLOC.SLASH 1-dlist & ] ] !> ] ] > ]. ; Also used in dictionary definitions frag_pp_slash_rule := basic_unary_frag_rule & [ SYNSEM.LOCAL.CAT.VAL.SPR < >, ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD prep & [ MOD < synsem & [ LOCAL intersective_mod ] >, MINORS.MIN independent_rel ], VAL.SPR *synlist* ], CONT.HOOK [ LTOP #klbl, INDEX #arg ] ], NONLOC.SLASH 1-dlist ] ] >, C-CONT [ RELS , HCONS ] ]. frag_dadv_rule := norm_frag_rule & norm_unary_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD frag, VAL.SPR < >, POSTHD - ], LEX -, MODIFD #modif ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD root-marker & [ MOD < [ LOCAL.CAT.MC + ] > ], POSTHD - ], CONT.HOOK.LTOP #ltop, CONJ cnil_or_lexconj ], MODIFD #modif, LEX bool ] ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #ind & [ SF prop-or-ques ] ], RELS , HCONS ] ]. punct_marker_phrase := head_nexus_rel_phrase & basic_binary_headed_phrase & [ SYNSEM [ LOCAL [ CAT #cat, CONT #cont, AGR #agr, CONJ #conj ], MODIFD #modif ], NH-DTR.SYNSEM.LOCAL [ CAT [ HEAD punct_hd, VAL.COMPS < #synsem > ], CONJ cnil ], HD-DTR [ INFLECTD #infl, SYNSEM #synsem & [ LOCAL [ CAT #cat, CONT #cont, AGR #agr, CONJ #conj ], MODIFD #modif ] ], INFLECTD #infl ]. ; Making mother be SYNSEM lex_punct_synsem prevents spurious application of ; derivational rules that are constrained by synsem type. Assumes that ; right punctuation will attempt to attach to each derivational stage of ; a lexical entry - maybe not pretty, but can't be helped since PUNCT has ; to be inside SYNSEM, so can't identify synsems of hd-dtr and mother. ; DPF 19-sept-04 - Removed parent word_or_lexrule since this causes infinite ; recursion in generation with e.g. period, and it's not clear why we wanted ; recursion here anyway. ;; DPF 2011-06-12 - Removed HD-DTR..LEX +, in order to get sentence-dash to ;; attach to lexical PPs which are LEX -. ;; punct_marker_hinit_rule := punct_marker_phrase & head_initial & binary_rule_right_to_left & [ SYNSEM synsem & [ PUNCT [ LPUNCT #lpunct, RPUNCT #rpunct, PNCTPR #ppair ], NONLOC [ SLASH #slash, QUE #que ] ], HD-DTR word_or_lexrule & [ SYNSEM [ PUNCT.LPUNCT #lpunct, NONLOC.SLASH #slash ] ], NH-DTR.SYNSEM [ PUNCT [ LPUNCT no_punct, RPUNCT #rpunct, PNCTPR #ppair ], NONLOC.QUE #que ], C-CONT [ RELS , HCONS ] ]. ; DPF 11-oct-05 - This rule should ideally check for the presence of a ; matching right paren on the nh-dtr, but this can't simply be the value ; of RPUNCT, since we might have e.g. "The boss (Abrams), who arrived..." ; or "Kim hired the guy (Abrams); we approved." More generally, we need ; to keep track of a paren being in the punctuation cluster, and presumably ; also for other right paired elements like quotes. For now, we'll ; over-generate. ; DPF 13-sept-07 - Now trying out use of RCLSTR (right punct cluster). ; DPF 17-sept-07 - Constrained HD-DTR..SPR to determiner, to avoid spurious ; ambiguity for bare NPs. ; DPF 30-apr-09 - So let's try preserving the punctuation on the right dtr, ; so we can e.g. accept |Kim (Browne), the manager| using the hdn-np_app-idf_c rule ; which demands a comma on the hd-dtr. ; DPF 13-may-09 - Re 30-apr-09: Alas, this means the PSF (punctuation-derived ; sentence force) is carried up as 'comm' to the larger sentence - not what ; we want. So instead for now leave RPUNCT unconstrained on mother, which ; means we also don't get the specialization of prop-or-ques in e.g. ; 'We hired Kim (Browne).' FIX. ; DPF 14-may-09 - Allow both uninflected and inflected heads, so we can get ; e.g. |A (B) C| as compound noun. ; DPF 14-may-09 - Removed RPERIPH + on mother, since we want to allow e.g. ; 'the [cat (see illustration) in the room] slept' ;; DPF 2012-03-14 - Removed NH-DTR..--TPC -, since we want e.g. ;; |we admire him (in Paris, he is famous)| ;; DPF 2013-02-16 - Re 17-sept-07: Can't require HEAD det since we also want to ;; attach these to e.g. pronouns. paren_dash_float_rule := basic_head_initial & head_compositional & binary_rule_right_to_left & [ INFLECTD #infl, SYNSEM synsem & [ LOCAL.CAT.VAL #valence, NONLOC #nonloc, MODIFD #modif, LEX #lex, PUNCT [ LPUNCT #lpunct, PAIRED #paired ] ], HD-DTR [ INFLECTD #infl, SYNSEM canonical_synsem & [ LOCAL [ CAT [ HEAD n_or_a_or_det & [ --BARE - ], VAL #valence & [ SPR.FIRST synsem & [ LOCAL.CAT.HEAD det_or_adv ], COMPS < > ] ], CONT.HOOK [ LTOP #ltop, INDEX #hdind & non_expl ], CONJ cnil_or_lexconj ], NONLOC #nonloc & [ SLASH 0-dlist ], MODIFD #modif, LEX #lex, PUNCT.LPUNCT #lpunct ] ], NH-DTR [ INFLECTD +, SYNSEM canonical_synsem & [ NONLOC [ SLASH 0-dlist & [ LIST < > ], QUE 0-dlist, REL 0-dlist ], PUNCT.PAIRED #paired ] ], ORTH [ FROM #from, TO #to ], C-CONT.RELS.LIST < [ LBL #ltop, PRED parenthetical_rel, ARG1 #hdind, CFROM #from, CTO #to ], ... > ]. ; DPF 27-jul-09 - Push identity of RPUNCT down from paren_float_rule to ; nbar subtype, since we don't want SF comm to propagate up from the NH-DTR. ; paren_float_rule := paren_dash_float_rule & [ HD-DTR.SYNSEM.PUNCT.RPUNCT quote_or_hyphen_or_clause_or_no_punct, NH-DTR.SYNSEM.PUNCT [ LPUNCT lparen_punct, RCLSTR.RPAREN + ] ]. ; "Abrams (I mean it) arrived" paren_dash_float_s_rule := paren_dash_float_rule & [ HD-DTR.SYNSEM.NONLOC non-local_none, NH-DTR.SYNSEM.LOCAL [ CAT [ HEAD verb, VAL [ SUBJ *anti_list*, SPR < >, COMPS < > ], MC + ], CONT.HOOK.LTOP #nhtop ], C-CONT [ RELS , HCONS ] ]. paren_float_s_rule := paren_dash_float_s_rule & paren_float_rule. dash_float_s_rule := paren_dash_float_s_rule & [ HD-DTR.SYNSEM.PUNCT.RPUNCT hyphen_sgl_or_dbl, NH-DTR.SYNSEM.PUNCT.RPUNCT hyphen_sgl_or_dbl ]. ; "We visited Turlidfossen (waterfall)." ; DPF 09-aug-07 - Block named entities, to avoid spurious ambiguity for e.g. ; "Abrams (Browne) arrived" ; DPF 02-oct-08 - Re 09-aug-07: But this also blocks post-nominal modification ; after an acronym, as in "the computers (IBM) in Paris are black". So remove. ; paren_float_nbar_rule := paren_float_rule & head_initial & [ SYNSEM.PUNCT.RPUNCT #rpunct, NH-DTR [ SYNSEM [ LOCAL [ CAT nbar_cat & [ HEAD.--BARE -, VAL [ SPR < [ OPT - ] >, SPEC *anti_list* ] ], CONT.HOOK [ LTOP #nhtop, INDEX #nhind ] ], PUNCT.RPUNCT #rpunct ], ORTH [ FROM #from, TO #to ] ], C-CONT [ RELS , HCONS ] ]. speech_filler_phrase := head_nexus_rel_phrase & basic_binary_headed_phrase & [ SYNSEM lex_synsem & [ LOCAL [ CAT #cat, CONT #cont, AGR #agr, CONJ #conj ], NONLOC #nonloc, MODIFD #modif, PUNCT #punct ], NH-DTR.SYNSEM [ LOCAL [ CAT.HEAD spfill, CONJ cnil ], PUNCT #punct ], HD-DTR [ INFLECTD #infl, SYNSEM basic_lex_synsem & [ LOCAL [ CAT #cat & [ HEAD non_frag ], CONT #cont, AGR #agr, CONJ #conj ], LEX +, NONLOC #nonloc, MODIFD #modif ] ], C-CONT [ RELS , HCONS ], INFLECTD #infl ]. ;; DPF 2012-11-26 - Constrain dtr's SLASH to be arg-local, to exclude spurious ;; RNR analysis of |Kim is arising and arriving in Paris|, which otherwise gets ;; admitted since |arising and arriving| undergoes adjunct extraction. (The ;; reason the spurious analysis was blocked for simple |Kim arises and arrives ;; in Paris| is that the dtr is already constrained to [MODIFD notmod], but ;; the copula passes its MODIFD value up in |is arising and arriving|.) ;; right_node_raise_phrase := head_initial_infl & phrasal & [ SYNSEM [ LOCAL [ CAT [ VAL [ COMPS < >, SPR #spr, SPEC #spec ], POSTHD + ], CONJ cnil ], NONLOC [ QUE #que, REL #rel ], PUNCT.PNCTPR #ppair ], ARGS < phrase & [ SYNSEM [ LOCAL [ CAT.VAL [ COMPS < >, SPR #spr, SPEC #spec ], CONT.HOOK [ LTOP #ltop, INDEX #index & conj_event, XARG #xarg, --SLTOP #sltop ] ], NONLOC [ SLASH 1-dlist & [ LIST [ FIRST #slash, REST < > & #last ], LAST #last ], QUE #que, REL #rel ], MODIFD notmod, PUNCT [ LPUNCT no_punct, RPUNCT comma_or_pair_or_no_punct ] ] ], [ SYNSEM [ LOCAL #slash & arg-local & [ CAT.VAL.COMPS < >, CONT.HOOK.LTOP #sltop ], NONLOC [ SLASH 0-dlist, QUE #que, REL #rel ], PUNCT.PNCTPR #ppair ] ] >, C-CONT [ HOOK [ LTOP #ltop, INDEX #index, XARG #xarg ], RELS , HCONS ] ]. right_node_raise_vp_phrase := right_node_raise_phrase & [ SYNSEM [ LOCAL.CAT [ HEAD verb, VAL.SUBJ < synsem & [ LOCAL #loc, NONLOC #nonloc & [ REL #rel, QUE #que ], LEX #lex, MODIFD #mod, PUNCT #punct, --MIN #min, --SIND #sind ] > ], MODIFD #modif, NONLOC #nonloc ], ARGS.FIRST.SYNSEM [ LOCAL.CAT.VAL.SUBJ < synsem & [ LOCAL #loc, NONLOC [ SLASH 0-dlist, REL #rel, QUE #que ], LEX #lex, MODIFD #mod, PUNCT #punct, --MIN #min, --SIND #sind ] >, MODIFD #modif ] ]. ;; Exclude subordinate clauses with constraint on MOD ;; right_node_raise_nonvp_phrase := right_node_raise_phrase & [ SYNSEM [ LOCAL.CAT.VAL.SUBJ < >, NONLOC.SLASH 0-dlist ], ARGS.FIRST.SYNSEM.LOCAL.CAT [ HEAD a_or_p & [ MOD.FIRST.LOCAL intersective_mod ], VAL.SUBJ < > ] ]. right_node_raise_vp_rule := right_node_raise_vp_phrase & rule. right_node_raise_nonvp_rule := right_node_raise_nonvp_phrase & rule. ;; 2011-08-05 - Added gapping constructions both for S+S gapping and ;; VP=VP conjunction reduction, where in both cases the verb is missing from ;; the second conjunct. The approach is to have two subtypes of a general ;; gapping phrase (two-dtr or four-dtr) where the first daughter is the full ;; S or VP, the second daughter is a conjunction lexical item, and then ;; (1) if the remaining two or more elements of the construction are ;; complements, the relevant rule has only two dtrs, where the mother of the ;; phrase adopts the COMPS list from the first dtr (via its LSYNSEM) and picks ;; them up one at a time via the normal hd-cmp rule; or ;; (2) at least one of the remaining two elements is a modifier, in which case ;; we use the four-dtr subtype, since we could not otherwise ensure that the ;; modifier(s) would appear. ;; [Analysis was developed in collaboration with Montserrat Marimon] ;; DPF 2012-02-18 - We want to avoid picking up complements to the right if ;; the left daughter has not actually picked up the corresponding complement, ;; to avoid analysis of e.g. |the slide shows and kim the cat|. ;; conj_no_verb_phrase := phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM #vform, AUX #aux, INV #inv, MOD #mod, TAM.MOOD #mood, MINORS #mins, --ADDIN #addin, LSYNSEM anti_synsem_min ], VAL [ SUBJ #subj, SPR #spr, SPEC < > ], MC #mc ], CONT.HOOK [ INDEX conj_event & [ E #tam ], XARG #xarg ], CONJ cnil ], NONLOC non-local_none ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM #vform, AUX #aux, INV #inv, MOD #mod, TAM #tam & [ MOOD #mood ], MINORS #mins, --ADDIN #addin, LSYNSEM synsem & [ LOCAL [ CONT [ HOOK.INDEX #index & [ E #tam ], HCONS #hcons ] ], NONLOC non-local_none, LKEYS.KEYREL [ PRED #pred, ARG0 #index, CFROM #from, CTO #to ] ], LPRED #pred ], VAL [ SUBJ #subj, SPR #spr, COMPS < >, SPEC < > ], MC #mc ], CONT.HOOK [ LTOP #ltop, INDEX #lind & non_conj_event & [ E #tam ], XARG #xarg ], CONJ cnil ], PUNCT.RPUNCT comma_or_no_punct, NONLOC non-local_none ] ], [ SYNSEM [ LOCAL [ CAT [ HEAD.VFORM #vform, VAL.COMPS < synsem > ], CONJ lex-conj & [ CHEAD cnil, CREL [ L-HNDL #ltop, L-INDEX #lind ] ], CONT.HOOK #hook ], LEX na, LKEYS.KEYREL.R-INDEX #index, PUNCT.RPUNCT no_punct, NONLOC non-local_none ], ORTH [ FROM #from, TO #to ] ], ... >, C-CONT [ HOOK #hook, HCONS #hcons ] ]. ;; VP+conj+XP+XP... where first XP is a complement, the second either a ;; complement or a modifier, and possibly with a third complement, for ;; `bet, trade, etc.' ;; conj_reduct_phrase := conj_no_verb_phrase & [ ARGS.FIRST.SYNSEM.LOCAL [ CAT [ HEAD [ LSYNSEM.LOCAL [ CAT.VAL.SUBJ < [ LOCAL.CAT #cat, --SIND #sind, NONLOC #nonloc ] >, CONT.HOOK.XARG #xarg ], TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], VAL [ SUBJ < synsem & [ LOCAL.CAT #cat & [ HEAD basic_noun & [ MINORS.NORM norm_or_no_rel ] ], NONLOC #nonloc, --SIND #sind ] >, SPR < anti_synsem_min > ], MC na ], AGR.PNG.PN #pn ], C-CONT.HOOK.XARG #xarg ]. ;; At least two complements, which willl be picked up by successive applications ;; of the normal hd-cmp rule after this rule applies. ;; basic_conj_red_c_c_rule := conj_reduct_phrase & binary_rule_left_to_right & binary_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS #comps & < synsem & [ LOCAL [ CAT [ HEAD n_p_v_adv_adj_comp, VAL [ SPR *olist*, COMPS < > ], MC na_or_- ], CONT.HOOK.INDEX basic_non_expl, CONJ cnil ], PUNCT.RPUNCT no_punct, NONLOC non-local_none ], synsem & [ OPT - ], ... >, ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM [ LOCAL [ CAT.VAL.COMPS #comps, CONT.RELS #rels ], LKEYS.KEYREL.LBL #rltop ] ], [ SYNSEM.LKEYS.KEYREL.R-HNDL #rltop ] >, C-CONT.RELS #rels ]. ;; First complement is expressed: |Kim handed A the book and C the box| ;; conj_red_c_c_rule := basic_conj_red_c_c_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS.FIRST expressed_synsem ]. ;; First synsem is unexpressed, so third must be expressed ;; |Kim bet A a dollar that we'd win and two dollars that they'd be second| ;; conj_red_x_c_c_rule := basic_conj_red_c_c_rule & [ SYNSEM.LOCAL.CAT.VAL.COMPS < unexpressed, synsem, expressed_synsem > ]. ;; Final phrase is a modifier ;; basic_conj_red_x_m_rule := conj_reduct_phrase & quad_rule_left_to_right & quad_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, ARGS < [ SYNSEM [ LOCAL.CAT #vpcat, MODIFD rmod & [ RPERIPH na_or_- ] ] ], [ SYNSEM.LKEYS.KEYREL.R-HNDL #rltop ], [ ], [ SYNSEM phr_synsem & [ LOCAL [ CAT.HEAD.MOD < synsem & [ LOCAL.CAT #vpcat ] >, CONT.HOOK.LTOP #rltop ], NONLOC non-local_none ] ] > ]. ;; No additional construction semantics ;; conj_red_x_m_rule := basic_conj_red_x_m_rule & [ ARGS.FIRST.SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LOCAL.CONT.RELS #rels, C-CONT.RELS #rels ]. ;; Intersective modifier ;; basic_conj_red_x_m-int_rule := basic_conj_red_x_m_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ], [ ], [ ], [ SYNSEM.LOCAL [ CAT.HEAD.MOD < [ LOCAL intersective_mod & [ CONT.HOOK [ LTOP #ltop, INDEX #index ] ] ] >, CONT.HOOK [ LTOP #ltop, XARG #index ] ] ] > ]. conj_red_x_m-int_rule := basic_conj_red_x_m-int_rule & conj_red_x_m_rule. ;; Scopal modifier basic_conj_red_x_m-scop_rule := conj_red_x_m_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ], [ ], [ ], [ SYNSEM.LOCAL.CAT.HEAD.MOD < [ LOCAL scopal_mod & [ CONT.HOOK [ LTOP #ltop, INDEX #index ]]]>] > ]. ;; Identity of complement followed by intersective modifier ;; conj_red_c_m-int_rule := conj_red_x_m-int_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LOCAL.CAT.VAL.COMPS < #comp1 > ], [ ], [ SYNSEM #comp1 ], [ ] > ]. ;; Identity of complement followed by scopal modifier ;; conj_red_c_m-scop_rule := basic_conj_red_x_m-scop_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LOCAL.CAT.VAL.COMPS < #comp1 > ], [ ], [ SYNSEM #comp1 ], [ ] > ]. ;; VP-and-NP-PP ;; Non-identity of complement where complement in first VP is marked with ;; empty prep, while that prep is missing from the phrase after the conjunction. ;; |Kim relied on Abrams today and Pat yesterday.| ;; Intersective-mod only, so far ;; conj_red_csel_m-int_rule := conj_red_x_m-int_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LOCAL.CAT.VAL.COMPS < [ LOCAL [ CAT.HEAD prep & [ MINORS.MIN independent_rel ], CONT.HOOK.INDEX #ind ], --SIND #ind ] > ], [ ], [ SYNSEM.LOCAL [ CAT nomp_cat_acc, CONT.HOOK.INDEX #ind ] ], [ ] > ]. ;; VP-and-NP-PP where NP is the object of implicit contentful prep, as in ;; |Kim flew to Paris on Monday and Rome on Tuesday| ;; conj_red_mn_m-int_rule := basic_conj_red_x_m-int_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM [ LOCAL [ CAT.VAL.COMPS *olist*, CONT.RELS [ LIST #rlist, LAST #rlast ]], LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ] ], [ ], [ SYNSEM.LOCAL [ CAT nomp_cat_acc, CONT.HOOK.INDEX #nind ] ], [ ] >, C-CONT [ RELS [ LIST < [ LBL #ltop, PRED unspec_mod_rel, ARG1 #index, ARG2 #nind ] . #rlist >, LAST #rlast ] ] ]. ;; VP-and-NP-PP ;; Optional complement unexpressed, then mismatched compl followed by modif ;; Intersective-mod only, so far ;; conj_red_x_csel_m-int_rule := conj_red_x_m-int_rule & [ ARGS < [ SYNSEM.LOCAL.CAT.HEAD.LSYNSEM.LOCAL.CAT.VAL.COMPS < unexpressed, [ LOCAL [ CAT.HEAD prep & [ MINORS.MIN selected_rel ], CONT.HOOK.INDEX #ind ], --SIND #ind ] > ], [ ], [ SYNSEM.LOCAL [ CAT nomp_cat_acc, CONT.HOOK.INDEX #ind ] ], [ ] > ]. ;; For sentence-level gapping: S + SnoV ;; DPF 2012-02-18 - Let's try constraining this to [VFORM fin], and include ;; the --ADDIN constraints, to avoid admitting e.g. |the slide show and Kim|. ;; basic_conj_nov_subj_rule := conj_no_verb_phrase & quad_rule_left_to_right & quad_phrase & [ SYNSEM.LOCAL.CAT.VAL.COMPS < >, ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD [ LSYNSEM.LOCAL [ CAT.VAL.SUBJ < #subj >, CONT.RELS #rels ], VFORM fin, TAM #tam, --ADDIN [ ADDTAM #tam, ADDPN #pn ] ], VAL [ SUBJ *anti_list*, SPR < >, COMPS < > ], MC bool ], CONT.HOOK.INDEX [ SF prop-or-ques, --TPC - ], AGR.PNG.PN #pn ] ] ], [ ], [ SYNSEM #subj & [ LOCAL.CAT nomp_cat_nom ] ], [ SYNSEM [ LOCAL.CAT.HEAD.MOD *olist*, NONLOC non-local_none ] ] >, C-CONT.RELS #rels ]. ;; S+and+NP+Comp ;; conj_nov_sb_c_rule := basic_conj_nov_subj_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.LSYNSEM [ LOCAL.CAT.VAL.COMPS < #comp1 >, LKEYS.KEYREL.LBL #rltop ], MODIFD notmod ] ], [ SYNSEM.LKEYS.KEYREL.R-HNDL #rltop ], [ ], [ SYNSEM #comp1 & [ LOCAL.CONT.HOOK.LTOP #rltop, NONLOC.SLASH.LAST < > ] ] > ]. ;; S+and+NP+Mod (intersective) ;; conj_nov_sb_m-int_rule := basic_conj_nov_subj_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.LSYNSEM [ LOCAL.CAT.VAL.COMPS *olist*, LKEYS.KEYREL [ LBL #ltop, ARG0 #index ] ], MODIFD rmod ] ], [ SYNSEM.LKEYS.KEYREL.R-HNDL #ltop ], [ ], [ SYNSEM phr_synsem & [ LOCAL [ CAT.HEAD.MOD < synsem & [ LOCAL intersective_mod & [ CAT vp_cat, CONT.HOOK [ LTOP #ltop, INDEX #index ] ] ] >, CONT.HOOK [ LTOP #ltop, XARG #index ] ], LEX - ] ] > ]. ;; S+and+NP+Mod (scopal) ;; conj_nov_sb_m-scop_rule := basic_conj_nov_subj_rule & [ ARGS < [ SYNSEM [ LOCAL.CAT.HEAD.LSYNSEM [ LOCAL.CAT.VAL.COMPS *olist*, LKEYS.KEYREL [ LBL #ltop, ARG0 #ind ] ], MODIFD rmod ] ], [ SYNSEM.LKEYS.KEYREL.R-HNDL #rltop ], [ ], [ SYNSEM phr_synsem & [ LOCAL [ CAT.HEAD.MOD < synsem & [ LOCAL scopal_mod & [ CAT vp_cat, CONT.HOOK [ LTOP #ltop, INDEX #ind ] ] ] >, CONT.HOOK.LTOP #rltop ], LEX - ] ] > ]. ;; Experimental - Sing.Eng Prd-AdjP as head of S #| predadj_vp_phrase := norm_unary_phrase & [ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM fin, MOD < anti_synsem_min > ], VAL [ SUBJ < synsem & [ LOCAL [ CAT nomp_cat_nom_min, CONT.HOOK.INDEX #nomind, CONJ cnil ], --SIND #nomind & basic_non_event ] >, SPR < >, COMPS < > ], MC na ], CONT.HOOK #hook ], NONLOC #nonloc ], ARGS < [ SYNSEM [ LOCAL [ CAT [ HEAD adj & [ PRD + ], VAL [ SPR *olist*, COMPS < > ] ], CONJ cnil, CONT.HOOK #hook & [ XARG #nomind ] ], NONLOC #nonloc ] ] >, C-CONT [ HOOK #hook, RELS , HCONS ] ]. predadj_vp_rule := rule & predadj_vp_phrase. |# ;; DPF 2012-11-01 ;; Rule to discharge a pair of brackets introduced in chart-mapping, where ;; all binary rules refuse to cross the brackets. This rule is blocked by ;; a temporary expedient in the LKB. paired_bracket_rule := rule & phrase_or_lexrule & [ SYNSEM #synsem, INFLECTD #infl, IDIOM #idiom, DIALECT #dialect, GENRE #genre, ORTH [ TO #to, LB #lb, RB #rb ], ARGS < [ SYNSEM #synsem & [ LOCAL.CONT.HOOK #hook ], ORTH [ TO #to, LB [ FIRST #ctype, REST #lb ], RB [ FIRST #ctype, REST #rb ] ], IDIOM #idiom, DIALECT #dialect, GENRE #genre, INFLECTD #infl, RNAME #ctype & ctype ] >, C-CONT [ HOOK #hook, RELS , HCONS ] ].