22
23sentence(B,C,D,E,F) :-
24 declarative(B,C,G,E,H),
25 terminator(.,G,D,H,F).
26sentence(B,C,D,E,F) :-
27 wh_question(B,C,G,E,H),
28 terminator(?,G,D,H,F).
29sentence(B,C,D,E,F) :-
30 topic(C,G,E,H),
31 wh_question(B,G,I,H,J),
32 terminator(?,I,D,J,F).
33sentence(B,C,D,E,F) :-
34 yn_question(B,C,G,E,H),
35 terminator(?,G,D,H,F).
36sentence(B,C,D,E,F) :-
37 imperative(B,C,G,E,H),
38 terminator(!,G,D,H,F).
39
40
41pp(B,C,D,E,F,F,G,H) :-
42 virtual(pp(B,C,D,E),G,H).
43pp(pp(B,C),D,E,F,G,H,I,J) :-
44 prep(B,G,K,I,L),
45 prep_case(M),
46 np(C,N,M,O,D,E,F,K,H,L,J).
47
48
49topic(B,C,D,x(gap,nonterminal,pp(E,compl,F,G),H)) :-
50 pp(E,compl,F,G,B,I,D,J),
51 opt_comma(I,C,J,H).
52
53
54opt_comma(B,C,D,E) :-
55 ~(',',B,C,D,E).
56opt_comma(B,B,C,C).
57
58
59declarative(decl(B),C,D,E,F) :-
60 s(B,G,C,D,E,F).
61
62
63wh_question(whq(B,C),D,E,F,G) :-
64 variable_q(B,H,I,J,D,K,F,L),
65 question(I,J,C,K,E,L,G).
66
67
68np(B,C,D,E,F,G,H,I,I,J,K) :-
69 virtual(np(B,C,D,E,F,G,H),J,K).
70np(np(B,C,[]),B,D,def,E,F,G,H,I,J,K) :-
71 is_pp(F),
72 pers_pron(C,B,L,H,I,J,K),
73 empty(G),
74 role(L,decl,D).
75np(np(B,C,D),B,E,F,G,H,I,J,K,L,M) :-
76 is_pp(H),
77 np_head(C,B,F+N,O,D,J,P,L,Q),
78 np_all(R),
79 np_compls(N,B,G,O,R,I,P,K,Q,M).
80np(part(B,C),3+D,E,indef,F,G,H,I,J,K,L) :-
81 is_pp(G),
82 determiner(B,D,indef,I,M,K,N),
83 ~(of,M,O,N,P),
84 s_all(Q),
85 prep_case(R),
86 np(C,3+plu,R,def,F,Q,H,O,J,P,L).
87
88
89variable_q(B,C,D,E,F,G,H,x(gap,nonterminal,np(I,C,E,J,K,L,M),N)) :-
90 whq(B,C,I,D,F,G,H,N),
91 do_trace(L,M).
92variable_q(B,C,compl,D,E,F,G,x(gap,nonterminal,pp(pp(H,I),compl,J,K),L)) :-
93 prep(H,E,M,G,N),
94 whq(B,C,I,O,M,F,N,L),
95 do_trace(J,K),
96 compl_case(D).
97variable_q(B,C,compl,D,E,F,G,x(gap,nonterminal,adv_phrase(pp(H,np(C,np_head(int_det(B),[],I),[])),J,K),L)) :-
98 context_pron(H,I,E,F,G,L),
99 do_trace(J,K),
100 verb_case(D).
101variable_q(B,C,compl,D,E,F,G,x(gap,nonterminal,pred(adj,value(H,wh(B)),I),J)) :-
102 ~(how,E,K,G,L),
103 adj(quant,H,K,F,L,J),
104 empty(I),
105 verb_case(D).
106
107
108adv_phrase(B,C,D,E,E,F,G) :-
109 virtual(adv_phrase(B,C,D),F,G).
110adv_phrase(pp(B,C),D,E,F,G,H,I) :-
111 loc_pred(B,F,J,H,K),
112 pp(pp(prep(of),C),compl,D,E,J,G,K,I).
113
114
115pred(B,C,D,E,E,F,G) :-
116 virtual(pred(B,C,D),F,G).
117pred(B,C,D,E,F,G,H) :-
118 adj_phrase(C,D,E,F,G,H).
119pred(neg,B,C,D,E,F,G) :-
120 s_all(H),
121 pp(B,compl,H,C,D,E,F,G).
122pred(B,C,D,E,F,G,H) :-
123 s_all(I),
124 adv_phrase(C,I,D,E,F,G,H).
125
126
127whq(B,C,D,undef,E,F,G,H) :-
128 int_det(B,C,E,I,G,J),
129 s_all(K),
130 np(D,C,L,M,subj,K,N,I,F,J,H).
131whq(B,3+C,np(3+C,wh(B),[]),D,E,F,G,H) :-
132 int_pron(D,E,F,G,H).
133
134
135int_det(B,3+C,D,E,F,G) :-
136 whose(B,C,D,E,F,G).
137int_det(B,3+C,D,E,F,G) :-
138 int_art(B,C,D,E,F,G).
139
140
141np_head0(B,C,D,E,E,F,G) :-
142 virtual(np_head0(B,C,D),F,G).
143np_head0(name(B),3+sin,def+proper,C,D,E,F) :-
144 name(B,C,D,E,F).
145np_head0(np_head(B,C,D),3+E,F+common,G,H,I,J) :-
146 determiner(B,E,F,G,K,I,L),
147 adjs(C,K,M,L,N),
148 noun(D,E,M,H,N,J).
149np_head0(B,C,def+proper,D,E,F,x(nogap,nonterminal,gen_marker,G)) :-
150 poss_pron(B,C,D,E,F,G).
151np_head0(np_head(B,[],C),3+sin,indef+common,D,E,F,G) :-
152 quantifier_pron(B,C,D,E,F,G).
153
154
155gen_marker(B,B,C,D) :-
156 virtual(gen_marker,C,D).
157gen_marker(B,C,D,E) :-
158 ~('''',B,F,D,G),
159 an_s(F,C,G,E).
160
161
162whose(B,C,D,E,F,x(nogap,nonterminal,np_head0(wh(B),C,proper),x(nogap,nonterminal,gen_marker,G))) :-
163 ~(whose,D,E,F,G).
164
165
166question(B,C,D,E,F,G,H) :-
167 subj_question(B),
168 role(subj,I,C),
169 s(D,J,E,F,G,H).
170question(B,C,D,E,F,G,H) :-
171 fronted_verb(B,C,E,I,G,J),
172 s(D,K,I,F,J,H).
173
174
175det(B,C,D,E,E,F,G) :-
176 virtual(det(B,C,D),F,G).
177det(det(B),C,D,E,F,G,H) :-
178 terminal(I,E,F,G,H),
179 det(I,C,B,D).
180det(generic,B,generic,C,C,D,D).
181
182
183int_art(B,C,D,E,F,x(nogap,nonterminal,det(G,C,def),H)) :-
184 int_art(B,C,G,D,E,F,H).
185
186
187subj_question(subj).
188
189
190subj_question(undef).
191
192
193yn_question(q(B),C,D,E,F) :-
194 fronted_verb(nil,G,C,H,E,I),
195 s(B,J,H,D,I,F).
196
197
198verb_form(B,C,D,E,F,F,G,H) :-
199 virtual(verb_form(B,C,D,E),G,H).
200verb_form(B,C,D,E,F,G,H,I) :-
201 terminal(J,F,G,H,I),
202 verb_form(J,B,C,D).
203
204
205neg(B,C,D,D,E,F) :-
206 virtual(neg(B,C),E,F).
207neg(aux+B,neg,C,D,E,F) :-
208 ~(not,C,D,E,F).
209neg(B,pos,C,C,D,D).
210
211
212fronted_verb(B,C,D,E,F,x(gap,nonterminal,verb_form(G,H,I,J),x(nogap,nonterminal,neg(K,L),M))) :-
213 verb_form(G,H,I,N,D,O,F,P),
214 verb_type(G,aux+Q),
215 role(B,J,C),
216 neg(R,L,O,E,P,M).
217
218
219imperative(imp(B),C,D,E,F) :-
220 imperative_verb(C,G,E,H),
221 s(B,I,G,D,H,F).
222
223
224imperative_verb(B,C,D,x(nogap,terminal,you,x(nogap,nonterminal,verb_form(E,imp+fin,2+sin,main),F))) :-
225 verb_form(E,inf,G,H,B,C,D,F).
226
227
228s(s(B,C,D,E),F,G,H,I,J) :-
229 subj(B,K,L,G,M,I,N),
230 verb(C,K,L,O,M,P,N,Q),
231 empty(R),
232 s_all(S),
233 verb_args(L,O,D,R,T,P,U,Q,V),
234 minus(S,T,W),
235 my_plus(S,T,X),
236 verb_mods(E,W,X,F,U,H,V,J).
237
238
239subj(there,B,C+be,D,E,F,G) :-
240 ~(there,D,E,F,G).
241subj(B,C,D,E,F,G,H) :-
242 s_all(I),
243 subj_case(J),
244 np(B,C,J,K,subj,I,L,E,F,G,H).
245
246
247np_head(B,C,D,E,F,G,H,I,J) :-
248 np_head0(K,L,M,G,N,I,O),
249 possessive(K,L,M,P,P,B,C,D,E,F,N,H,O,J).
250
251
252np_compls(proper,B,C,[],D,E,F,F,G,G) :-
253 empty(E).
254np_compls(common,B,C,D,E,F,G,H,I,J) :-
255 np_all(K),
256 np_mods(B,C,L,D,E,M,K,N,G,O,I,P),
257 relative(B,L,M,N,F,O,H,P,J).
258
259
260possessive(B,C,D,[],E,F,G,H,I,J,K,L,M,N) :-
261 gen_case(K,O,M,P),
262 np_head0(Q,R,S,O,T,P,U),
263 possessive(Q,R,S,V,[pp(poss,np(C,B,E))|V],F,G,H,I,J,T,L,U,N).
264possessive(B,C,D,E,F,B,C,D,E,F,G,G,H,H).
265
266
267gen_case(B,C,D,x(nogap,terminal,the,E)) :-
268 gen_marker(B,C,D,E).
269
270
271an_s(B,C,D,E) :-
272 ~(s,B,C,D,E).
273an_s(B,B,C,C).
274
275
276determiner(B,C,D,E,F,G,H) :-
277 det(B,C,D,E,F,G,H).
278determiner(B,C,D,E,F,G,H) :-
279 quant_phrase(B,C,D,E,F,G,H).
280
281
282quant_phrase(quant(B,C),D,E,F,G,H,I) :-
283 quant(B,E,F,J,H,K),
284 number(C,D,J,G,K,I).
285
286
287quant(B,indef,C,D,E,F) :-
288 neg_adv(G,B,C,H,E,I),
289 comp_adv(G,H,J,I,K),
290 ~(than,J,D,K,F).
291quant(B,indef,C,D,E,F) :-
292 ~(at,C,G,E,H),
293 sup_adv(I,G,D,H,F),
294 sup_op(I,B).
295quant(the,def,B,C,D,E) :-
296 ~(the,B,C,D,E).
297quant(same,indef,B,B,C,C).
298
299
300neg_adv(B,not+B,C,D,E,F) :-
301 ~(not,C,D,E,F).
302neg_adv(B,B,C,C,D,D).
303
304
305sup_op(least,not+less).
306sup_op(most,not+more).
307
308
309np_mods(B,C,D,[E|F],G,H,I,J,K,L,M,N) :-
310 np_mod(B,C,E,G,O,K,P,M,Q),
311 do_trace(R),
312 my_plus(R,O,S),
313 minus(G,S,T),
314 my_plus(O,G,U),
315 np_mods(B,C,D,F,T,H,U,J,P,L,Q,N).
316np_mods(B,C,D,D,E,E,F,F,G,G,H,H).
317
318
319np_mod(B,C,D,E,F,G,H,I,J) :-
320 pp(D,C,E,F,G,H,I,J).
321np_mod(B,C,D,E,F,G,H,I,J) :-
322 reduced_relative(B,D,E,F,G,H,I,J).
323
324
325verb_mods([B|C],D,E,F,G,H,I,J) :-
326 verb_mod(B,D,K,G,L,I,M),
327 do_trace(N),
328 my_plus(N,K,O),
329 minus(D,O,P),
330 my_plus(K,D,Q),
331 verb_mods(C,P,Q,F,L,H,M,J).
332verb_mods([],B,C,C,D,D,E,E).
333
334
335verb_mod(B,C,D,E,F,G,H) :-
336 adv_phrase(B,C,D,E,F,G,H).
337verb_mod(B,C,D,E,F,G,H) :-
338 is_adv(C),
339 adverb(B,E,F,G,H),
340 empty(D).
341verb_mod(B,C,D,E,F,G,H) :-
342 pp(B,compl,C,D,E,F,G,H).
343
344
345adjs([B|C],D,E,F,G) :-
346 pre_adj(B,D,H,F,I),
347 adjs(C,H,E,I,G).
348adjs([],B,B,C,C).
349
350
351pre_adj(B,C,D,E,F) :-
352 adj(G,B,C,D,E,F).
353pre_adj(B,C,D,E,F) :-
354 sup_phrase(B,C,D,E,F).
355
356
357sup_phrase(sup(most,B),C,D,E,F) :-
358 sup_adj(B,C,D,E,F).
359sup_phrase(sup(B,C),D,E,F,G) :-
360 sup_adv(B,D,I,F,J),
361 adj(quant,C,I,E,J,G).
362
363
364comp_phrase(comp(B,C,D),E,F,G,H,I) :-
365 comp(B,C,F,J,H,K),
367 prep_case(M),
368 np(D,N,M,O,compl,L,E,J,G,K,I).
369
370
371comp(B,C,D,E,F,G) :-
372 comp_adv(B,D,H,F,I),
373 adj(quant,C,H,J,I,K),
374 ~(than,J,E,K,G).
375comp(more,B,C,D,E,F) :-
376 rel_adj(B,C,G,E,H),
377 ~(than,G,D,H,F).
378comp(same,B,C,D,E,F) :-
379 ~(as,C,G,E,H),
380 adj(quant,B,G,I,H,J),
381 ~(as,I,D,J,F).
382
383
384relative(B,[C],D,E,F,G,H,I,J) :-
385 is_pred(D),
386 rel_conj(B,K,C,F,G,H,I,J).
387relative(B,[],C,D,D,E,E,F,F).
388
389
390rel_conj(B,C,D,E,F,G,H,I) :-
391 rel(B,J,K,F,L,H,M),
392 rel_rest(B,C,J,D,K,E,L,G,M,I).
393
394
395rel_rest(B,C,D,E,F,G,H,I,J,K) :-
396 conj(C,L,D,M,E,H,N,J,O),
397 rel_conj(B,L,M,G,N,I,O,K).
398rel_rest(B,C,D,D,E,E,F,F,G,G).
399
400
401rel(B,rel(C,D),E,F,G,H,I) :-
402 xopen(F,J,H,K),
403 variable(B,C,J,L,K,M),
404 s(D,N,L,O,M,P),
405 do_trace(Q),
406 minus(N,Q,E),
407 close(O,G,P,I).
408
409
410variable(B,C,D,E,F,x(gap,nonterminal,np(np(B,wh(C),[]),B,G,H,I,J,K),L)) :-
411 ~(that,D,E,F,L),
412 do_trace(J,K).
413variable(B,C,D,E,F,x(gap,nonterminal,np(G,H,I,J,K,L,M),N)) :-
414 wh(C,B,G,H,I,D,E,F,N),
415 do_trace(L,M).
416variable(B,C,D,E,F,x(gap,nonterminal,pp(pp(G,H),compl,I,J),K)) :-
417 prep(G,D,L,F,M),
418 wh(C,B,H,N,O,L,E,M,K),
419 do_trace(I,J),
420 compl_case(O).
421
422
423wh(B,C,np(C,wh(B),[]),C,D,E,F,G,H) :-
424 rel_pron(I,E,F,G,H),
425 role(I,decl,D).
426wh(B,C,np(D,E,[pp(F,G)]),D,H,I,J,K,L) :-
427 np_head0(E,D,M+common,I,N,K,O),
428 prep(F,N,P,O,Q),
429 wh(B,C,G,R,S,P,J,Q,L).
430wh(B,C,D,E,F,G,H,I,J) :-
431 whose(B,C,G,K,I,L),
432 s_all(M),
433 np(D,E,F,def,subj,M,N,K,H,L,J).
434
435
436reduced_relative(B,C,D,E,F,G,H,I) :-
437 is_pred(D),
438 reduced_rel_conj(B,J,C,E,F,G,H,I).
439
440
441reduced_rel_conj(B,C,D,E,F,G,H,I) :-
442 reduced_rel(B,J,K,F,L,H,M),
443 reduced_rel_rest(B,C,J,D,K,E,L,G,M,I).
444
445
446reduced_rel_rest(B,C,D,E,F,G,H,I,J,K) :-
447 conj(C,L,D,M,E,H,N,J,O),
448 reduced_rel_conj(B,L,M,G,N,I,O,K).
449reduced_rel_rest(B,C,D,D,E,E,F,F,G,G).
450
451
452reduced_rel(B,reduced_rel(C,D),E,F,G,H,I) :-
453 xopen(F,J,H,K),
454 reduced_wh(B,C,J,L,K,M),
455 s(D,N,L,O,M,P),
456 do_trace(Q),
457 minus(N,Q,E),
458 close(O,G,P,I).
459
460
461reduced_wh(B,C,D,E,F,x(nogap,nonterminal,np(np(B,wh(C),[]),B,G,H,I,J,K),x(nogap,nonterminal,verb_form(be,pres+fin,B,main),x(nogap,nonterminal,neg(L,M),x(nogap,nonterminal,pred(M,N,O),P))))) :-
462 neg(Q,M,D,R,F,S),
463 pred(M,N,O,R,E,S,P),
464 do_trace(J,K),
465 subj_case(G).
466reduced_wh(B,C,D,E,F,x(nogap,nonterminal,np(np(B,wh(C),[]),B,G,H,I,J,K),x(nogap,nonterminal,verb(L,M,N,O),P))) :-
467 participle(L,N,O,D,E,F,P),
468 do_trace(J,K),
469 subj_case(G).
470reduced_wh(B,C,D,E,F,x(nogap,nonterminal,np(G,H,I,J,K,L,M),x(gap,nonterminal,np(np(B,wh(C),[]),B,N,O,P,Q,R),S))) :-
471 s_all(T),
472 subj_case(I),
473 verb_case(N),
474 np(G,H,U,J,subj,T,V,D,E,F,S),
475 do_trace(L,M),
476 do_trace(Q,R).
477
478
479verb(B,C,D,E,F,F,G,H) :-
480 virtual(verb(B,C,D,E),G,H).
481verb(verb(B,C,D+fin,E,F),G,H,C,I,J,K,L) :-
482 verb_form(M,D+fin,G,N,I,O,K,P),
483 verb_type(M,Q),
484 neg(Q,F,O,R,P,S),
485 rest_verb(N,M,B,C,E,R,J,S,L),
486 verb_type(B,H).
487
488
489rest_verb(aux,have,B,C,[perf|D],E,F,G,H) :-
490 verb_form(I,past+part,J,K,E,L,G,M),
491 have(I,B,C,D,L,F,M,H).
492rest_verb(aux,be,B,C,D,E,F,G,H) :-
493 verb_form(I,J,K,L,E,M,G,N),
494 be(J,I,B,C,D,M,F,N,H).
495rest_verb(aux,do,B,active,[],C,D,E,F) :-
496 verb_form(B,inf,G,H,C,D,E,F).
497rest_verb(main,B,B,active,[],C,C,D,D).
498
499
500have(be,B,C,D,E,F,G,H) :-
501 verb_form(I,J,K,L,E,M,G,N),
502 be(J,I,B,C,D,M,F,N,H).
503have(B,B,active,[],C,C,D,D).
504
505
506be(past+part,B,B,passive,[],C,C,D,D).
507be(pres+part,B,C,D,[prog],E,F,G,H) :-
508 passive(B,C,D,E,F,G,H).
509
510
511passive(be,B,passive,C,D,E,F) :-
512 verb_form(B,past+part,G,H,C,D,E,F),
513 verb_type(B,I),
514 passive(I).
515passive(B,B,active,C,C,D,D).
516
517
518participle(verb(B,C,inf,D,E),F,C,G,H,I,J) :-
519 neg(K,E,G,L,I,M),
520 verb_form(B,N,O,P,L,H,M,J),
521 participle(N,C,D),
522 verb_type(B,F).
523
524
525passive(B+trans).
526passive(B+ditrans).
527
528
529participle(pres+part,active,[prog]).
530participle(past+part,passive,[]).
531
532
533close(B,B,C,D) :-
534 virtual(close,C,D).
535
536
537xopen(B,B,C,x(gap,nonterminal,close,C)).
538
539
540verb_args(B+C,D,E,F,G,H,I,J,K) :-
541 advs(E,L,M,H,N,J,O),
542 verb_args(C,D,L,F,G,N,I,O,K).
543verb_args(trans,active,[arg(dir,B)],C,D,E,F,G,H) :-
544 verb_arg(np,B,D,E,F,G,H).
545verb_args(ditrans,B,[arg(C,D)|E],F,G,H,I,J,K) :-
546 verb_arg(np,D,L,H,M,J,N),
547 object(C,E,L,G,M,I,N,K).
548verb_args(be,B,[void],C,C,D,E,F,G) :-
549 terminal(there,D,E,F,G).
550verb_args(be,B,[arg(pred,C)],D,E,F,G,H,I) :-
551 pred_conj(J,C,E,F,G,H,I).
552verb_args(be,B,[arg(dir,C)],D,E,F,G,H,I) :-
553 verb_arg(np,C,E,F,G,H,I).
554verb_args(have,active,[arg(dir,B)],C,D,E,F,G,H) :-
555 verb_arg(np,B,D,E,F,G,H).
556verb_args(B,C,[],D,D,E,E,F,F) :-
557 no_args(B).
558
559
560object(B,C,D,E,F,G,H,I) :-
561 adv(J),
562 minus(J,D,K),
563 advs(C,L,K,F,M,H,N),
564 obj(B,L,D,E,M,G,N,I).
565
566
567obj(ind,[arg(dir,B)],C,D,E,F,G,H) :-
568 verb_arg(np,B,D,E,F,G,H).
569obj(dir,[],B,B,C,C,D,D).
570
571
572pred_conj(B,C,D,E,F,G,H) :-
573 pred(I,J,K,E,L,G,M),
574 pred_rest(B,J,C,K,D,L,F,M,H).
575
576
577pred_rest(B,C,D,E,F,G,H,I,J) :-
578 conj(B,K,C,L,D,G,M,I,N),
579 pred_conj(K,L,F,M,H,N,J).
580pred_rest(B,C,C,D,D,E,E,F,F).
581
582
583verb_arg(np,B,C,D,E,F,G) :-
584 s_all(H),
585 verb_case(I),
586 np(B,J,I,K,compl,H,C,D,E,F,G).
587
588
589advs([B|C],D,E,F,G,H,I) :-
590 is_adv(E),
591 adverb(B,F,J,H,K),
592 advs(C,D,E,J,G,K,I).
593advs(B,B,C,D,D,E,E).
594
595
596adj_phrase(B,C,D,E,F,G) :-
597 adj(H,B,D,E,F,G),
598 empty(C).
599adj_phrase(B,C,D,E,F,G) :-
600 comp_phrase(B,C,D,E,F,G).
601
602
603no_args(trans).
604no_args(ditrans).
605no_args(intrans).
606
607
608conj(conj(B,C),conj(B,D),E,F,conj(B,E,F),G,H,I,J) :-
609 conj(B,C,D,G,H,I,J).
610
611
612noun(B,C,D,E,F,G) :-
613 terminal(H,D,E,F,G),
614 noun_form(H,B,C).
615
616
617adj(B,adj(C),D,E,F,G) :-
618 terminal(C,D,E,F,G),
619 adj(C,B).
620
621
622prep(prep(B),C,D,E,F) :-
623 terminal(B,C,D,E,F),
624 prep(B).
625
626
627rel_adj(adj(B),C,D,E,F) :-
628 terminal(G,C,D,E,F),
629 rel_adj(G,B).
630
631
632sup_adj(adj(B),C,D,E,F) :-
633 terminal(G,C,D,E,F),
634 sup_adj(G,B).
635
636
637comp_adv(less,B,C,D,E) :-
638 ~(less,B,C,D,E).
639comp_adv(more,B,C,D,E) :-
640 ~(more,B,C,D,E).
641
642
643sup_adv(least,B,C,D,E) :-
644 ~(least,B,C,D,E).
645sup_adv(most,B,C,D,E) :-
646 ~(most,B,C,D,E).
647
648
649rel_pron(B,C,D,E,F) :-
650 terminal(G,C,D,E,F),
651 rel_pron(G,B).
652
653
654name(B,C,D,E,F) :-
655 opt_the(C,G,E,H),
656 terminal(B,G,D,H,F),
657 name(B).
658
659
660int_art(B,plu,quant(same,wh(B)),C,D,E,F) :-
661 ~(how,C,G,E,H),
662 ~(many,G,D,H,F).
663int_art(B,C,D,E,F,G,H) :-
664 terminal(I,E,F,G,H),
665 int_art(I,B,C,D).
666
667
668int_pron(B,C,D,E,F) :-
669 terminal(G,C,D,E,F),
670 int_pron(G,B).
671
672
673adverb(adv(B),C,D,E,F) :-
674 terminal(B,C,D,E,F),
675 adverb(B).
676
677
678poss_pron(pronoun(B),C+D,E,F,G,H) :-
679 terminal(I,E,F,G,H),
680 poss_pron(I,B,C,D).
681
682
683pers_pron(pronoun(B),C+D,E,F,G,H,I) :-
684 terminal(J,F,G,H,I),
685 pers_pron(J,B,C,D,E).
686
687
688quantifier_pron(B,C,D,E,F,G) :-
689 terminal(H,D,E,F,G),
690 quantifier_pron(H,B,C).
691
692
693context_pron(prep(in),place,B,C,D,E) :-
694 ~(where,B,C,D,E).
695context_pron(prep(at),time,B,C,D,E) :-
696 ~(when,B,C,D,E).
697
698
699number(nb(B),C,D,E,F,G) :-
700 terminal(H,D,E,F,G),
701 number(H,B,C).
702
703
704terminator(B,C,D,E,F) :-
705 terminal(G,C,D,E,F),
706 terminator(G,B).
707
708
709opt_the(B,B,C,C).
710opt_the(B,C,D,E) :-
711 ~(the,B,C,D,E).
712
713
714conj(B,list,list,C,D,E,F) :-
715 terminal(',',C,D,E,F).
716conj(B,list,end,C,D,E,F) :-
717 terminal(B,C,D,E,F),
718 conj(B).
719
720
721loc_pred(B,C,D,E,F) :-
722 terminal(G,C,D,E,F),
723 loc_pred(G,B).
724
725
726~(B,C,D,E,F) :-
727 terminal(B,C,D,E,F),
728 ~