-
Notifications
You must be signed in to change notification settings - Fork 3
/
syntax.tdl
14547 lines (13814 loc) · 653 KB
/
syntax.tdl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;;; -*- Mode: tdl; Coding: utf-8; -*-
;;;
;;; Copyright (c) 1994-2018
;;; 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.
;; DPF 2017-11-17: And note that we currently don't treat titles as heads in
;; |Mr. Browne|, but for |Mr. and Mrs. Browne| we want the NP to have plural
;; number, so if this generalization about headed phrases is right, then the
;; title will have to be the head of the NP.
;; DPF 2022-11-07 - We don't want to copy RSUBJHD to head-subj or filler-head
;; since this prevents efficient packing. So push down to head-comp, modifier,
;; and extraction rules.
headed_phrase := phrase &
[ SYNSEM [ LOCAL [ CAT [ HEAD head & #head,
HC-LEX #hclex ],
AGR #agr,
CONJ #conj ],
PHON.ONSET #onset ],
HD-DTR.SYNSEM.LOCAL local &
[ CAT [ HEAD #head,
HC-LEX #hclex ],
AGR #agr,
CONJ #conj ],
ARGS.FIRST.SYNSEM.PHON.ONSET #onset ].
non_headed_phrase := phrase &
[ DTR1 sign_min,
DTR2 sign_min ].
; 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.
head_nexus_que_phrase := headed_phrase.
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 ].
|#
head_valence_phrase := head_nexus_phrase &
[ SYNSEM [ NONLOC.SLASH.LIST #slash ],
HD-DTR.SYNSEM [ NONLOC.SLASH.LIST #slash ] ].
; (Almost) all phrases are either unary or binary.
;; DPF 2018-07-16 - Added hack ORTH.FIRST bool so the bracket rules won't apply
;; even when using generalization (with ACE) where the circular diff lists that
;; should block such a configuration can get ignored.
;; DPF 2021-01-16 - Re 2018-07-16: This hack gets in the way of propagating
;; capitalization constraints used in mal-rules, so remove and CHECK.
;;
#|
basic_unary_phrase := phrase &
[ SYNSEM [ LOCAL [ CONT [ RELS *diff-list* &
[ LIST #first,
LAST #last ],
HCONS *diff-list* &
[ LIST #scfirst,
LAST #sclast ],
ICONS *diff-list* &
[ LIST #icfirst,
LAST #iclast ] ] ],
PHON.ONSET #onset ],
ORTH [ TO #to,
FIRST bool ],
C-CONT [ RELS [ LIST #first,
LAST #middle ],
HCONS [ LIST #scfirst,
LAST #scmiddle ],
ICONS [ LIST #icfirst,
LAST #icmiddle ] ],
ARGS < sign & [ SYNSEM [ LOCAL local &
[ CONT [ RELS *diff-list* &
[ LIST #middle,
LAST #last ],
HCONS *diff-list* &
[ LIST #scmiddle,
LAST #sclast ],
ICONS *diff-list* &
[ LIST #icmiddle,
LAST #iclast ] ] ],
PHON.ONSET #onset ],
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre,
ORTH.TO #to ] >,
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre ].
|#
basic_basic_unary_phrase := phrase &
[ SYNSEM [ LOCAL [ CONT [ RELS *diff-list* &
[ LIST #first,
LAST #last ],
HCONS *diff-list* &
[ LIST #scfirst,
LAST #sclast ],
ICONS *diff-list* &
[ LIST #icfirst,
LAST #iclast ] ] ],
PHON.ONSET #onset ],
ORTH.TO #to,
C-CONT [ RELS [ LIST #first,
LAST #middle ],
HCONS [ LIST #scfirst,
LAST #scmiddle ],
ICONS [ LIST #icfirst,
LAST #icmiddle ] ],
ARGS < sign & [ SYNSEM [ LOCAL local &
[ CONT [ RELS *diff-list* &
[ LIST #middle,
LAST #last ],
HCONS *diff-list* &
[ LIST #scmiddle,
LAST #sclast ],
ICONS *diff-list* &
[ LIST #icmiddle,
LAST #iclast ] ] ],
PHON.ONSET #onset ],
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre,
ORTH.TO #to ] >,
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre ].
basic_unary_phrase := basic_basic_unary_phrase &
[ SYNSEM.NONLOC [ REL.LIST #rel,
QUE.LIST #que ],
ARGS < [ SYNSEM.NONLOC [ REL.LIST #rel,
QUE.LIST #que ] ] > ].
unary_phrase := basic_unary_phrase &
[ INFLECTD +,
ARGS < [ INFLECTD + ] > ].
generic_binary_phrase := non_unary-rule &
[ SYNSEM [ LOCAL.CONT [ RELS *diff-list* &
[ LIST #first,
LAST #last ],
HCONS *diff-list* &
[ LIST #scfirst,
LAST #sclast ],
ICONS *diff-list* &
[ LIST #icfirst,
LAST #iclast ] ] ],
ORTH.TO #to,
C-CONT [ RELS *diff-list* &
[ LIST #first,
LAST #middle1 ],
HCONS *diff-list* &
[ LIST #scfirst,
LAST #scmiddle1 ],
ICONS *diff-list* &
[ LIST #icfirst,
LAST #icmiddle1 ] ],
ARGS < sign & [ SYNSEM [ LOCAL local &
[ CONT [ RELS *diff-list* &
[ LIST #middle1,
LAST #middle2 ],
HCONS *diff-list* &
[ LIST #scmiddle1,
LAST #scmiddle2 ],
ICONS *diff-list* &
[ LIST #icmiddle1,
LAST #icmiddle2 ] ] ] ],
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 ],
ICONS *diff-list* &
[ LIST #icmiddle2,
LAST #iclast ] ] ] ],
ORTH.TO #to,
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre ] >,
IDIOM #idiom,
DIALECT #dialect,
GENRE #genre ].
;; Placeholder to allow for robust specialization
;;
basic_binary_phrase := generic_binary_phrase & phrase.
norm_binary_phrase := basic_binary_phrase &
[ SYNSEM.NONLOC [ REL.APPEND < [ LIST #r1 ], [ LIST #r2 ] >,
QUE.APPEND < [ LIST #q1 ], [ LIST #q2 ] > ],
ARGS < [ SYNSEM.NONLOC [ REL.LIST #r1, QUE.LIST #q1 ] ],
[ SYNSEM.NONLOC [ REL.LIST #r2, QUE.LIST #q2 ] ] > ].
;; DPF 2019-03-31 - Exclude unpaired left paren on right dtr, to force paired
;; paren constituents.
;; DPF 2019-09-06 - Re 2019-03-31: But this is too simplistic, since once the
;; parens are paired, their marks should disappear. Otherwise, we fail on e.g.
;; |Kim is (two days) older| because |(two days) older| is the second dtr of
;; |is (two days) older|, but its positive LPAREN value does not match its
;; zero RPAREN value which comes from |older|. Would need a non-branching
;; paren-cancelling rule like the paired bracket rule. FIX someday.
;; DPF 2020-03-30 - Note that this PAIRED identity also blocks
;; |Kim and [cats, who slept,] arrived|. FIX sooner.
;; DPF 2020-04-01 - Okay, let's remove this identity, and CHECK.
;; DPF 2020-05-08 - One consequence is that we now unwantedly get
;; |[cats, not only] arise|
;;
#|
norm_binary_punct_phrase := basic_binary_phrase &
[ SYNSEM.PUNCT [ LPUNCT #lpunct,
PAIRED #paired,
RCLSTR #rclstr ],
ARGS < [ SYNSEM.PUNCT [ LPUNCT #lpunct ] ],
[ SYNSEM.PUNCT [ PAIRED #paired,
RCLSTR #rclstr ] ] > ].
|#
norm_binary_punct_phrase := basic_binary_phrase &
[ SYNSEM.PUNCT [ LPUNCT #lpunct,
RCLSTR #rclstr ],
ARGS < [ SYNSEM.PUNCT [ LPUNCT #lpunct ] ],
[ SYNSEM.PUNCT.RCLSTR #rclstr ] > ].
binary_punct_phrase := norm_binary_punct_phrase &
[ SYNSEM.PUNCT.RPUNCT #rpunct,
ARGS < [ ],
[ SYNSEM.PUNCT.RPUNCT #rpunct ] > ].
binary_phrase := binary_punct_phrase &
[ INFLECTD +,
ARGS < [ INFLECTD + ],
[ INFLECTD + ] > ].
basic_binary_headed_phrase := headed_phrase & basic_binary_phrase &
[ NH-DTR sign ].
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 + ] > ].
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 ].
basic_head_initial_infl := head_initial & binary_headed_phrase.
head_initial_infl := basic_head_initial_infl & norm_binary_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.LTOP #ltop,
NH-DTR.SYNSEM.LOCAL.CONT.HOOK.LTOP #ltop ].
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 < >,
SPCMPS < > ],
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 non-local_none_phr ] ].
; 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
;; DPF 2017-09-04 - Moved PRD - constraint down to subtype, in order to allow
;; non-matric subj-head to have PRD + for verbal gerunds, as in
;; |me arriving surprised him|.
basic_decl_phrase := basic_non_rel_clause & phrasal &
[ SYNSEM.LOCAL.CAT [ HEAD basic_verb_or_frag &
[ INV - ],
MC bool ],
HD-DTR.SYNSEM.LOCAL.CONT.HOOK [ LTOP #hdtop,
INDEX #hdind ],
C-CONT [ HOOK [ LTOP #hdtop,
INDEX #hdind ],
RELS <! !>,
HCONS <! !>,
ICONS <! !> ] ].
decl_phrase := basic_decl_phrase &
[ SYNSEM.LOCAL.CAT.HEAD.PRD - ].
; 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.
;; DPF 2015-04-01 - Re 23-mar-10: But this prevents imperatives with right-node
;; raising, and in |admire and hire Kim!|, where there is no alternative
;; aaalysis. So have to live with the extra ambiguity for imperatives with
;; normal VP coord.
;; DPF 2017-11-01 - Identify VFORM on mother and dtr, so the VP can be sensitive
;; to modifiers that don't want imperatives, such as "last night".
;; DPF 2020-03-20 - Removed the recent constraint phr_synsem on mother, since
;; it blocks e.g. |Arise!|. Let's see why it was added ...
;; DPF 2020-10-20 - Re 2012-02-20: But this eventually blocks subj-extraction
;; needed for relative clause containing an imperative CP complement, as in
;; `people who say "open the door"'. And the supposed prohibition on object
;; extraction with imperatives seems wrong anyway: "Cheese as old as that,
;; never serve without tasting it first!".
;;
imp_phrase := basic_non_rel_clause & head_valence_phrase & head_only &
[ SYNSEM [ LOCAL [ CAT [ HEAD verb &
[ INV -,
VFORM #vform & imp_vform,
TAM [ TENSE present,
ASPECT no_aspect,
MOOD indicative ] ],
VAL [ SUBJ *olist* & < anti_synsem_min >,
SPR < >,
COMPS < > ],
MC bool,
--SLASHED.BOOL #slashed ],
CONT.HOOK.INDEX.SF basic-comm ],
LEX #lex,
PUNCT #punct ],
HD-DTR.SYNSEM [ LOCAL [ CAT [ HEAD verb & [ VFORM #vform ],
MC na,
VAL [ SUBJ < unexpressed_reg &
[ --SIND #inst & ref-ind &
[ PNG.PN 2 ],
LOCAL.CONT.HOOK.INDEX #inst ]>,
COMPS < > ],
--SLASHED.BOOL #slashed ],
CONT.HOOK [ LTOP #hdtop,
INDEX #hdind ] ],
LEX #lex,
NONLOC.QUE.LIST < >,
PUNCT #punct & [ RPUNCT.PSF basic-comm & #sf ] ],
ORTH [ FROM #from, TO #to ],
C-CONT [ HOOK [ LTOP #hdtop,
INDEX #hdind & [ SF #sf ] ],
RELS <! [ PRED pronoun_q_rel,
RSTR #rhand,
ARG0 #inst,
CFROM #from, CTO #to ],
[ LBL #prohand,
PRED pron_rel,
ARG0 #inst & full_ref-ind &
[ PT zero,
SORT entity ],
CFROM #from, CTO #to ] !>,
HCONS <! qeq & [ HARG #rhand,
LARG #prohand ] !>,
ICONS <! !> ] ].
; 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.LIST < > ],
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?"
;; DPF 2017-12-23 - The constraint NH-DTR..PNCTPR ppair prevents analysis of
;; e.g. |[why, in Paris,] did we dance?|, so let's remove it, and remind
;; ourselves of why it was here.
;;
wh_interrog := interrog & binary_headed_phrase &
[ SYNSEM.LOCAL [ CAT.HEAD verbal &
[ TAM.MOOD indicative ],
CONT.HOOK.INDEX.SF ques ],
NH-DTR.SYNSEM [ NONLOC.QUE.LIST < [ ] >,
PUNCT [ RPUNCT comma_or_rbc_or_pair_or_no_punct ] ] ].
; 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 >.
;; DPF 2022-04-30 - Pushed MC + down to yes-no dtr, since we want
;; "she frowned, because never in her life had she missed before"
;; DPF 2022-06-20 - Pushed identity of RPUNCT.PSF and INDEX.SF down to
;; subtypes, since we now have two rules for yes-no Q: MC + and MC -, so we
;; can have embedded yes-no questions without causing the PSF value to
;; propagate upward, as in |Kim refused to ask "Did we win?"| with SF prop.
;; Likewise, pushed SUBJ < anti_synsem_min > down to subtypes, so the embedded
;; yes-no can be SUBJ < > to match embedded WH-Qs.
;;
inv_subj_phrase := head_only &
[ SYNSEM [ LOCAL [ CAT [ HEAD verb & [ INV +,
VFORM fin,
MOD < anti_synsem_min >,
MINORS #mins ],
VAL [ SPR < >,
SPEC < >,
COMPS < > ],
MC bool,
--SLASHED.BOOL #slashed ],
CONJ #conj & cnil,
AGR #agr,
CONT [ HOOK [ INDEX.SF #pred ] ] ],
NONLOC [ SLASH.LIST #slash,
REL.LIST < >,
QUE.LIST < > ],
PUNCT #punct ],
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 < > ],
--SLASHED.BOOL #slashed ],
AGR #agr,
CONJ #conj,
CONT [ HOOK [ INDEX #index &
[ E.TENSE real_tense ] ] ] ],
NONLOC [ SLASH.LIST #slash,
REL.LIST < >,
QUE.LIST < > ],
PUNCT #punct ] ] >,
C-CONT [ HOOK.INDEX #index & [ SF #pred ],
RELS <! !>,
HCONS <! !>,
ICONS <! !> ] ].
basic_yesno_phrase := interrog & inv_subj_phrase & head_compositional &
[ HD-DTR.SYNSEM.LOCAL.CAT.HEAD.CNTRCTD -,
C-CONT.HOOK.INDEX.SF pol-ques ].
;; Main clause
yesno_phrase := basic_yesno_phrase &
[ SYNSEM [ LOCAL.CAT [ MC +,
VAL.SUBJ < anti_synsem_min > ],
PUNCT.RPUNCT.PSF #pred ],
C-CONT.HOOK.INDEX.SF #pred ].
;; Embedded clause
;; DPF 2022-06-20 - This rule avoids identifying the punctuation mark with
;; its SF for embedded yes-no Q, so the embedding clause can still be SF prop.
;;
yesno_nonmc_phrase := basic_yesno_phrase &
[ SYNSEM.LOCAL.CAT [ MC -,
VAL.SUBJ < > ] ].
;; DPF 2022-04-23 - Exclude elided aux head, to avoid "quickly is the cat."
;; DPF 2022-04-28 - But this blocks "and so did Kim", so undo, and find another
;; way to distinguish "so" from "quickly"
inv_decl_phrase := inv_subj_phrase & non_rel_clause &
[ SYNSEM [ LOCAL.CAT.VAL.SUBJ < anti_synsem_min >,
NONLOC.SLASH.LIST < >,
PUNCT.RPUNCT comma_or_clause_or_pair_or_no_punct ],
HD-DTR.SYNSEM [ LOCAL.CAT.NEGPOL +,
MODIFD lmod,
PUNCT.RPUNCT.PSF #pred ],
C-CONT.HOOK.INDEX.SF #pred & 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.LIST < > 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 [ HEAD noun_or_nomger,
VAL [ SPR.FIRST synsem_min &
[ --MIN quant_or_deg_rel ] ],
MC na ] ],
PUNCT.RPUNCT comma_or_rbc_or_pair_or_no_punct,
OPT - ] > ],
VAL.SPCMPS < >,
POSTHD +,
MC na ],
CONJ cnil ],
PHON.ONSET #onset ],
ARGS.FIRST.SYNSEM.PHON.ONSET #onset ].
;; DPF 2020-09-10 - Removed VFORM constraint, to enable robust subtypes of
;; relative clause. All existing normal subtypes already specialize VFORM to
;; either fin or inf.
#|
rel_cl := basic_rel_cl & clause & phrasal &
[ SYNSEM [ LOCAL.CAT.HEAD.VFORM fin_or_inf,
NONLOC [ QUE.LIST < >,
REL.LIST < > ] ] ].
|#
rel_cl := basic_rel_cl & clause & phrasal &
[ SYNSEM [ NONLOC [ QUE.LIST < >,
REL.LIST < > ] ] ].
; 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.LIST < >] >] 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.
;; DPF 2017-03-02 - To avoid having these appear as complements in the
;; head-marker-event (vs head_marker_s) rule, change SUBJ from just < > to
;; *anti_null*.
;;
basic_non_wh_rel_clause := unary_phrase & rel_cl &
[ SYNSEM [ LOCAL [ CAT [ HEAD [ VFORM #vform,
TAM #tam,
AUX #aux,
INV #inv,
MOD < [ NONLOC.QUE.LIST < >,
MODIFD.RPERIPH na_or_- ] >,
--ADDIN #addin,
MINORS.MIN #min ],
VAL [ SUBJ *anti_null*,
SPR < >,
COMPS < > ] ],
AGR #agr ],
PUNCT #punct ],
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.LIST < >,
REL.LIST < > ],
MODIFD.LPERIPH na_or_-,
PUNCT #punct & [ LPUNCT dq_or_sq_or_no_punct ] ] ] > ].
basic_non_wh_rel_cl := basic_non_wh_rel_clause &
[ SYNSEM [ LOCAL.CAT.--SLASHED.BOOL -,
NONLOC.SLASH.LIST < > ] ].
; 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)
;; DPF 2022-11-15 - While we oversimplify and stamp all words as --SLASHED -
;; (thus including do_be_v1), we remove the ARGS..--SLASHED.BOOL + from
;; this type, so we get "the thing we did was arise" and "the thing to do is..."
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-comm ],
NONLOC.SLASH.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.LIST < >, 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.
;; DPF 2017-08-16 - Constrained dtr to be non-conjoined, since we don't want
;; analysis of |the cat that we admire and that Kim hates| where the "that"s
;; are complementizers, and we also want to block the NP
;; |*the cats either we love or we hate|.
;; Note that we still overgenerate for
;; |the cat that we admire and that Kim hates| (with compl for second `that'),
;; but this will be harder to block since we need to allow conjoined S after
;; the first `that' in order to get one of the good readings for
;; |the cat whose tail we admire and Kim hates| where it's the tail Kim hates.
;; Alas, we'll also wrongly get this reading for
;; |the cat whose tail we admire and that Kim hates| (using compl `that')
;; but not clear yet how to block this, without having separate S-coord
;; rules to preserve on the mother that the right conjunct was HEAD comp.
;; FIX someday.
;; DPF 2017-09-12 - Re 2017-08-16: Pushed this non-conjoined constraint down
;; to the normal subtype so we can avoid having it on the modgap variant,
;; so we can still accept |the day he arose and arrived appeared|
;; DPF 2017-09-14 - Re 13-nov-05: Let's try removing this, since it conflicts
;; with analysis of it-clefts as in |it was on Kim we relied|, so we'll see if
;; other constraints now prevent these in |Kim arrives as soon as Pat arrives|.
;; DPF 2017-09-26 - Re 2017-09-12 - But even on the normal subtype, the
;; constraint is too strong, since it fails to get |the book we bought and sold|
;; so instead we take advantage of conjoined S's being stamped as CASE non_nom,
;; and require the dtr here to be CASE no_case.
;; DPF 2020-04-10 - Use XARG.SORT entity-or-event to block WH-S subjects, as in
;; |candidate [[who we should hire] bothers]|
;; DPF 2020-08-26 - Re 10-aug-09: This [NORM norm_rel] was blocking that-less
;; relative modifying singular deictic, to get contrast between
;; "*This he bought was nice" but "Those he bought were nice". FIX.
;;
basic_basic_fin_non_wh_rel_cl := basic_non_wh_rel_cl &
[ SYNSEM.LOCAL.CAT.HEAD
[ PRD -,
MOD < [ MODIFD.RPERIPH - ] >,
MINORS [ ALTMIN #altmin ] ],
ARGS < [ SYNSEM.LOCAL [ CAT [ HEAD verb &
[ VFORM fin,
MINORS.ALTMIN #altmin,
MOD < [ LOCAL.CAT nbar_cat_min,
NONLOC.QUE.LIST < > ] >,
CASE no_case ],
VAL.SUBJ < anti_synsem_min >,
MC - ],
CONT.HOOK [ LTOP #ltop,
INDEX #event &
[ E.TENSE real_tense ],
XARG.SORT entity-or-event ] ] ] >,
C-CONT [ HOOK [ LTOP #ltop,
INDEX #event ],
HCONS <! !>,
ICONS <! !> ] ].
basic_fin_non_wh_rel_cl := basic_basic_fin_non_wh_rel_cl &
[ SYNSEM.LOCAL.CAT.HEAD.MOD.FIRST.PUNCT.RPUNCT dq_or_sq_or_no_punct ].
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_clause &
[ SYNSEM.LOCAL.CAT.HEAD.MINORS.ALTMIN no_rel,