1:- module(lexicon,[semlex/5]). 2:- multifile semlex/5. 3
4:- use_module(boxer(slashes)). 5:- use_module(boxer(string2digit),[string2digit/2,string2score/2]). 6:- use_module(boxer(categories),[category/3,att/3,sense/4,roles/4,rel/3,role/3]). 7:- use_module(semlib(options),[option/2]). 8:- use_module(knowledge(ne),[neClass/2,neClassType/3,neClassType/4]). 9:- use_module(knowledge(dates),[month/2,dofm/2,decade/2,year/2]). 10:- use_module(knowledge(punctuation),[punctuation/2]). 15:- use_module(lex(determiners),[semlex_det/4]). 16:- use_module(lex(verbs),[semlex_verb/5]). 17:- use_module(boxer(closure),[closing/1,plosing/1]). 18:- use_module(library(lists),[member/2]). 19:- use_module(boxer(coordination),[coordMacro/2,argCard/2]). 20:- use_module(boxer(resolveDRT),[goldAntecedent/2]). 21
22:- [lex/pp]. 23:- [lex/n]. 26
27
31
32cat(X1/Y1,X2|Y2):- !, cat(X1,X2), cat(Y1,Y2).
33cat(X1\Y1,X2|Y2):- !, cat(X1,X2), cat(Y1,Y2).
34cat(X,X).
35
36
40
41semlex(t:_\s:_,_,_,Att-[sem:'NIL'|Att],Sem):- !,
42 closing(CC),
43 Sem = lam(S,app(S,CC)).
44
45semlex(s:X\s:X,'?',Index,Att-[sem:'QUE'|Att],Sem):-
46 option('--semantics',amr), !,
47 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([],[B:Index:pred(E,interrogative,r,1)]),app(F,E)))))).
48
49semlex(Cat,_,_,Att-[sem:'NIL'|Att],Sem):-
50 att(Att,pos,POS),
51 punctuation(POS,_),
52 member(Cat,[C\C, C/C,
53 (s:X/s:X)/(s:Y/s:Y), (s:X/s:X)/(s:Y\s:Y),
54 (s:X/s:X)\(s:Y/s:Y), (s:X/s:X)\(s:Y\s:Y),
55 (s:X\s:X)/(s:Y\s:Y), (s:X\s:X)/(s:Y/s:Y),
56 (s:X\s:X)\(s:Y/s:Y), (s:X\s:X)\(s:Y\s:Y)]), !,
57 Sem = lam(P,P).
58
59semlex(Cat,_,_,Att-[sem:'NIL'|Att],Sem):-
60 att(Att,pos,POS),
61 punctuation(POS,_),
62 member(Cat,[(((s:X\np)/(s:X\np))\(s:Y/s:Y)),
63 (((s:X\np)\(s:X\np))\(s:Y/s:Y))]), !,
64 Sem = lam(SMOD,lam(VP,lam(NP,app(SMOD,app(VP,NP))))).
65
66semlex(Cat,_,Index,Att-[sem:'SUB'|Att],Sem):-
67 att(Att,pos,POS),
68 punctuation(POS,left),
69 member(Cat,[(np\np)/np,(np\np)\np,(np/np)/np,(np/np)\np]), !,
70 Sem = lam(Q1,lam(Q2,lam(P,app(Q2,lam(X,app(Q1,lam(Y,merge(B:drs([],[B:Index:rel(X,Y,rel,0)]),app(P,X))))))))).
71
72semlex(Cat,_,Index,Att-[sem:'SUB'|Att],Sem):-
73 att(Att,pos,POS),
74 punctuation(POS,_),
75 member(Cat,[(s:X\s:X)/np,(s:X\s:X)\np,(s:X/s:X)/np,(s:X/s:X)\np]), !,
76 Sem = lam(Q1,lam(Q2,lam(P,app(Q2,lam(Z,app(Q1,lam(Y,merge(B:drs([],[B:Index:rel(Z,Y,rel,0)]),app(P,Z))))))))).
77
78semlex(Cat,_,Index,Att-[sem:'SUB'|Att],Sem):-
79 att(Att,pos,POS),
80 punctuation(POS,left),
81 member(Cat,[(n\n)/n,(n/n)/n]), !,
82 Sem = lam(N,lam(P,lam(X,merge(merge(B:drs([B:[]:Y],[B:Index:rel(X,Y,rel,0)]),app(N,Y)),app(P,X))))).
83
84semlex(Cat,_,Index,Att-[sem:'SUB'|Att],Sem):-
85 att(Att,pos,POS),
86 punctuation(POS,_),
87 member(Cat,[((s:X\np)\(s:X\np))/np,
88 ((s:X\np)/(s:X\np))/np,
89 ((s:X\np)\(s:X\np))\np,
90 ((s:X\np)/(s:X\np))\np]), !,
91 Sem = lam(Q2,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,app(Q2,lam(Y,merge(B:drs([],[B:Index:rel(E,Y,rel,0)]),app(F,E)))))))))).
92
93
97
98semlex(conj:n,Sym,Index,Att-[sem:'DIS'|Att],Sem):-
99 Sym = or,
100 option('--semantics',drg), !,
101 Sem = lam(P2,lam(P1,lam(X,B:drs([],[B:Index:pred(X,Sym,s,1),
102 B:[]:or(app(P1,X),app(P2,X))])))).
103
104semlex(conj:Cat,Lemma,Index,Att-[sem:'DIS'|Att],Sem):-
105 member(Lemma,[either,or]), !,
106 argCard(Cat,N),
107 coordMacro(N,Coord),
108 Sem = app(Coord,lam(K2,lam(K1,B:drs([],[B:Index:or(K1,K2)])))).
109
110semlex(conj:Cat,Lemma,Index,Att-[sem:'NOT'|Att],Sem):-
111 member(Lemma,[neither,nor,not,of,than]), !,
112 argCard(Cat,N),
113 coordMacro(N,Coord),
114 Sem = app(Coord,lam(K2,lam(K1,merge(K1,B:drs([],[B:Index:not(K2)]))))).
115
116
120
121semlex(conj:(s:_\np),but,Index,Att-[sem:'BUT'|Att],Sem):-
122 option('--theory',sdrt),
123 option('--semantics',amr), !,
124 Sem = lam(V1,lam(V2,lam(X,lam(E,sdrs([lab(K1,app(app(V2,X),E)),
125 lab(K2,app(app(V1,X),E))],
126 [Index:rel(K1,K2,'contrast-01')]))))).
127
128semlex(conj:(s:_\np),but,Index,Att-[sem:'BUT'|Att],Sem):-
129 option('--theory',sdrt), !,
130 Sem = lam(V1,lam(V2,lam(X,lam(E,sdrs([lab(K1,app(app(V2,X),E)),
131 lab(K2,app(app(V1,X),E))],
132 [Index:rel(K1,K2,continuation),
133 []:rel(K1,K2,contrast)]))))).
134
135semlex(conj:(s:_),but,Index,Att-[sem:'BUT'|Att],Sem):-
136 option('--theory',sdrt),
137 option('--semantics',amr), !,
138 Sem = lam(S1,lam(S2,lam(E,sdrs([lab(K1,app(S2,E)),
139 lab(K2,app(S1,E))],
140 [Index:rel(K1,K2,'contrast-01')])))).
141
142semlex(conj:(s:_),but,Index,Att-[sem:'BUT'|Att],Sem):-
143 option('--theory',sdrt), !,
144 Sem = lam(S1,lam(S2,lam(E,sdrs([lab(K1,app(S2,E)),
145 lab(K2,app(S1,E))],
146 [Index:rel(K1,K2,continuation),
147 []:rel(K1,K2,contrast)])))).
148
149
150
154
155semlex(conj:n,Sym,Index,Att-[sem:'AND'|Att],Sem):-
156 option('--semantics',amr), !,
157 Sem = lam(P2,lam(P1,lam(X,merge(B:drs([B:[]:Y,B:[]:Z],
158 [B:Index:pred(X,Sym,n,1),
159 B:[]:rel(X,Y,op1,1),
160 B:[]:rel(X,Z,op2,1)]),
161 merge(app(P1,Y),
162 app(P2,Z)))))).
163
164semlex(conj:n,Sym,Index,Att-[sem:'AND'|Att],Sem):-
165 option('--semantics',drg), !,
166 Sem = lam(P2,lam(P1,lam(X,merge(B:drs([B:[]:Y,B:[]:Z],
167 [B:Index:pred(X,Sym,s,1),
168 B:[]:rel(Y,X,subset_of,1),
169 B:[]:rel(Z,X,subset_of,1)]),
170 merge(app(P1,Y),
171 app(P2,Z)))))).
172
173semlex(conj:n,_Sym,_,Att-[sem:'AND'|Att],Sem):- !,
174 Sem = lam(P2,lam(P1,lam(X,merge(B:drs([B:[]:Y,B:[]:Z],
175 [B:[]:rel(Y,X,subset_of,1),
176 B:[]:rel(Z,X,subset_of,1)]),
177 merge(app(P1,Y),
178 app(P2,Z)))))).
179
180
184
185semlex(conj:(n/n),_,_,Att-[sem:'AND'|Att],Sem):- !,
186 Sem = lam(A2,lam(A1,lam(P,lam(X,app(app(A1,lam(Y,app(app(A2,P),Y))),X))))).
187
189semlex(conj:(n/n),_,_,Att-[sem:'AND'|Att],Sem):- !,
190 Sem = lam(A2,lam(A1,lam(P,lam(X,merge(B:drs([B:[]:Y,B:[]:Z],
191 [B:[]:rel(Y,X,subset_of,1),
192 B:[]:rel(Z,X,subset_of,1)]),
193 merge(app(app(A1,P),Y),
194 app(app(A2,P),Z))))))).
195
196
200
201semlex(conj:np,Sym,Index,Att-[sem:'AND'|Att],Sem):-
202 option('--semantics',amr), !,
203 Sem = lam(X2,lam(X1,lam(P,merge(merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,0)]),
204 merge(app(X1,lam(Y,B1:drs([],[B1:[]:rel(X,Y,op1,1)]))),
205 app(X2,lam(Z,B2:drs([],[B2:[]:rel(X,Z,op2,1)]))))),
206 app(P,X))))).
207
208semlex(conj:np,_,Index,Att-[sem:'AND'|Att],Sem):- !, 209 Sem = lam(X2,lam(X1,lam(P,merge(merge(B:drs([B:Index:X],[]),
210 merge(app(X1,lam(Y,B1:drs([],[B1:[]:rel(Y,X,subset_of,1)]))),
211 app(X2,lam(Z,B2:drs([],[B2:[]:rel(Z,X,subset_of,1)]))))),
212 app(P,X))))).
213
214semlex(conj:app,_,Index,Att-[sem:'APP'|Att],Sem):- !,
215 Sem = lam(X1,lam(X2,lam(P,app(X2,
216 lam(Y,merge(app(X1,lam(X,B:drs([],[B:Index:rel(Y,X,rel,2)]))),
217 app(P,Y))))))).
218
219
223
224semlex(conj:(s:_\np),Sym,Index,Att-[sem:'COO'|Att],Sem):-
225 option('--semantics',amr),
226 option('--theory',sdrt), !,
227 Sem = lam(V1,lam(V2,lam(N,lam(E,app(N,lam(X,sdrs([lab(K1,app(app(V2,lam(P,app(P,X))),E)),
228 lab(K2,app(app(V1,lam(P,app(P,X))),E))],
229 [Index:rel(K1,K2,Sym)]))))))).
230
231semlex(conj:(s:_\np),Sym,Index,Att-[sem:'COO'|Att],Sem):-
232 option('--semantics',amr),
233 option('--theory',sdrt), !,
234 Sem = lam(V1,lam(V2,lam(X,lam(E,sdrs([lab(K1,app(app(V2,X),E)),
235 lab(K2,app(app(V1,X),E))],
236 [Index:rel(K1,K2,Sym)]))))).
237
238
239semlex(conj:(s:_\np),_Sym,Index,Att-[sem:'COO'|Att],Sem):-
240 option('--theory',sdrt), !,
241 Sem = lam(V1,lam(V2,lam(N,lam(E,app(N,lam(X,sdrs([lab(K1,app(app(V2,lam(P,app(P,X))),E)),
242 lab(K2,app(app(V1,lam(P,app(P,X))),E))],
243 [Index:rel(K1,K2,continuation),
244 []:rel(K1,K2,parallel)]))))))).
245
246semlex(conj:(s:_\np),_Sym,Index,Att-[sem:'COO'|Att],Sem):- 247 option('--theory',sdrt), !,
248 Sem = lam(V1,lam(V2,lam(X,lam(E,sdrs([lab(K1,app(app(V2,X),E)),
249 lab(K2,app(app(V1,X),E))],
250 [Index:rel(K1,K2,continuation),
251 []:rel(K1,K2,parallel)]))))).
252
253
257
258semlex(conj:(s:_),Sym,Index,Att-[sem:'COO'|Att],Sem):-
259 option('--semantics',amr),
260 option('--theory',sdrt), !,
261 Sem = lam(S1,lam(S2,lam(E,sdrs([lab(K1,app(S2,E)),
262 lab(K2,app(S1,E))],
263 [Index:rel(K1,K2,Sym)])))).
264
265semlex(conj:(s:_),_Sym,Index,Att-[sem:'COO'|Att],Sem):- 266 option('--theory',sdrt), !,
267 Sem = lam(S1,lam(S2,lam(E,sdrs([lab(K1,app(S2,E)),
268 lab(K2,app(S1,E))],
269 [Index:rel(K1,K2,continuation),
270 []:rel(K1,K2,parallel)])))).
271
272
276
277semlex(conj:CCat,_,_,Att-[sem:'AND'|Att],Sem):- !,
278 argCard(CCat,N),
279 coordMacro(N,Coord),
280 Sem = app(Coord,lam(K2,lam(K1,merge(K1,K2)))).
281
282
286
289
292
293semlex(conj:F/conj:F,_,_,Att-[sem:'NIL'|Att],lam(U,U)):- !.
294semlex(conj:F\conj:F,_,_,Att-[sem:'NIL'|Att],lam(U,U)):- !.
295
296
300
301semlex(q,_,Index,Att-[sem:'UNK'|Att],Sem):- !,
302 Sem = lam(X,B:drs([],[B:Index:pred(X,quotation,n,2)])).
303
304semlex((n/q)/n,_,Index,Att-[sem:'UNK'|Att],Sem):- !,
305 Sem = lam(N,lam(Q,lam(X,merge(B:drs([],[B:Index:pred(X,quotation,n,2)]),
306 merge(app(N,X),app(Q,X)))))).
307
308semlex((np/q)/np,_,Index,Att-[sem:'UNK'|Att],Sem):- !,
309 Sem = lam(NP,lam(Q,lam(P,app(NP,lam(X,merge(B:drs([],[B:Index:pred(X,quotation,n,2)]),
310 merge(app(Q,X),app(P,X)))))))).
311
312semlex((s:dcl/q)/s:dcl,_,Index,Att-[sem:'UNK'|Att],Sem):- !,
313 Sem = lam(S,lam(Q,lam(F,app(S,lam(E,merge(B:drs([],[B:Index:pred(E,quotation,n,2)]),
314 merge(app(Q,E),app(F,E)))))))).
315
316
320
321semlex(np/n,Token,Index,Att,Sem):- !, semlex_det(Token,Index,Att,Sem).
322
323
327
328semlex(np/(n/pp),_,Index,Att-[sem:'HAS'|Att],Sem):- !,
329 Sem = lam(RN,lam(P,alfa(pro,B1:drs([B1:[]:Y],[B1:[]:pred(Y,male,n,2)]),
330 alfa(def,merge(B2:drs([B2:[]:X],[]),
331 app(app(RN,lam(U,B3:drs([],[B3:Index:rel(U,Y,of,1)]))),X)),
332 app(P,X))))).
333
334
338
339semlex(((np/n)/pp)/(s:adj\np),_,Index,Att-[sem:'EQA'|Att],Sem):- !,
340 closing(CC),
341 Sem = lam(AP,lam(PP,lam(N,lam(P,merge(merge(B:drs([B:Index:X],[]),
342 merge(app(N,X),
343 merge(app(PP,X),
344 app(app(AP,lam(Q,app(Q,X))),CC)))),
345 app(P,X)))))).
346
347
351
352semlex(np,many,Index,Att-[sem:'QUA'|Att],Sem):- !,
353 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,quantity,n,1)]),app(P,X))).
354
355semlex(np,much,Index,Att-[sem:'QUA'|Att],Sem):- !,
356 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,amount,n,3)]),app(P,X))).
357
358
362
363semlex(np,'there',Index,Att-[sem:'UNK'|Att],Sem):-
364 option('--semantics',amr),
365 att(Att,pos,'EX'), !,
366 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,there,n,1)]),app(P,X))).
367
368semlex(np,'there',Index,Att-[sem:'NIL'|Att],Sem):-
369 att(Att,pos,'EX'), !,
370 Sem = lam(P,merge(B:drs([B:Index:X],[]),app(P,X))).
371
372
376
377semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
378 option('--semantics',amr),
379 member(Lemma,['I',i,me,mine]), !,
380 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,i,n,1)]),app(P,X))).
381
382semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
383 member(Lemma,['I',i,me,mine]), !,
385 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,person,n,1)]),app(P,X))).
386
387semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
388 option('--semantics',amr),
389 member(Lemma,['we','us','\'s','ours']), !,
390 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,we,n,1)]),app(P,X))).
391
392semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
393 member(Lemma,['we','us','\'s','ours']), !,
395 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,person,n,1)]),app(P,X))).
396
397semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
398 member(Lemma,['we','us','\'s','ours']), !,
400 Sem = lam(P,alfa(pro,B1:drs([B1:[]:G],[B1:Index:pred(G,group,n,1)]),
401 B2:drs([],[B2:[]:imp(B3:drs([B3:[]:X],[B3:[]:rel(X,G,member_of,0)]),
402 merge(B4:drs([],[B4:[]:pred(X,person,n,1)]),
403 app(P,X)))]))).
404
405semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
406 option('--semantics',amr),
407 member(Lemma,[whom,you,thou,yours]), !,
408 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,you,n,1)]),app(P,X))).
409
410semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
411 member(Lemma,[whom,you,thou,yours]), !,
413 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,person,n,1)]),app(P,X))).
414
415semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
416 option('--semantics',amr),
417 member(Lemma,['he','his','him']), !,
418 goldAntecedent(Index,Att),
419 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,he,n,1)]),app(P,X))).
420
421semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
422 member(Lemma,['he','his','him']), !,
423 goldAntecedent(Index,Att),
424 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,male,n,2)]),app(P,X))).
425
426semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
427 option('--semantics',amr),
428 member(Lemma,['she','hers','her']), !,
429 goldAntecedent(Index,Att),
430 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,she,n,1)]),app(P,X))).
431
432semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
433 member(Lemma,['she','hers','her']), !,
434 goldAntecedent(Index,Att),
435 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,female,n,2)]),app(P,X))).
436
437semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
438 option('--semantics',amr),
439 member(Lemma,[it,'\'t']), !,
440 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,it,n,1)]),app(P,X))).
441
442semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
443 member(Lemma,[it,'\'t']), !,
445 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
446
447semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
448 option('--semantics',amr),
449 member(Lemma,['they','them','theirs']), !,
450 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,they,n,1)]),app(P,X))).
451
452semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
453 member(Lemma,['they','them','theirs']), !,
455 Sem = lam(P,alfa(pro,B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
456
457semlex( np, Lemma,Index,Att-[sem:'PRO'|Att],Sem):-
458 member(Lemma,['they','them','theirs']), !,
460 Sem = lam(P,alfa(pro,B1:drs([B1:[]:G],[B1:Index:pred(G,group,n,1)]),
461 B2:drs([],[B2:[]:imp(B2:drs([B2:[]:X],[B2:[]:rel(X,G,member_of,0)]),
462 app(P,X))]))).
463
464
468
469semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
470 option('--semantics',amr),
471 member(Lemma,[myself,yourself,thyself,ourselves]), !,
472 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,i,n,1)]),app(P,X))).
473
474semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
475 member(Lemma,[myself,yourself,thyself,ourselves]), !,
476 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,person,n,1)]),app(P,X))).
477
478semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
479 option('--semantics',amr),
480 member(Lemma,['himself']), !,
481 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,he,n,1)]),app(P,X))).
482
483semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
484 member(Lemma,['himself']), !,
485 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,male,n,2)]),app(P,X))).
486
487semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
488 option('--semantics',amr),
489 member(Lemma,['herself']), !,
490 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,she,n,1)]),app(P,X))).
491
492semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
493 member(Lemma,['herself']), !,
494 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,female,n,2)]),app(P,X))).
495
496semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
497 member(Lemma,['itself']), !,
498 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
499
500semlex( np, Lemma,Index,Att-[sem:'REF'|Att],Sem):-
501 member(Lemma,['themselves']), !,
502 Sem = lam(P,alfa(ref,B:drs([B:[]:X],[B:Index:pred(X,group,n,1)]),app(P,X))).
503
504
508
509semlex( np, Lemma,Index,Att-[sem:'NOT'|Att],Sem):-
510 \+ option('--semantics',amr),
511 member(Lemma,['none','neither',nothing]), !,
512 Sem = lam(P,B1:drs([],[B1:Index:not(merge(B2:drs([B2:[]:X],[B2:Index:pred(X,thing,n,12)]),app(P,X)))])).
513
514semlex( np, Lemma,Index,Att-[sem:'DIS'|Att],Sem):-
515 \+ option('--semantics',amr),
516 member(Lemma,[something,some,'both','most','more','many','less','half','another']), !,
517 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
518
519semlex( np, Lemma,Index,Att-[sem:'PRX'|Att],Sem):-
520 option('--semantics',amr),
521 member(Lemma,['this','these']), !,
522 Sem = lam(P,alfa(def,B:drs([B:[]:X],[B:Index:pred(X,this,n,1)]),app(P,X))).
523
524semlex( np, Lemma,Index,Att-[sem:'DST'|Att],Sem):-
525 option('--semantics',amr),
526 member(Lemma,['that','those']), !,
527 Sem = lam(P,alfa(def,B:drs([B:[]:X],[B:Index:pred(X,that,n,1)]),app(P,X))).
528
529semlex( np, Lemma,Index,Att-[sem:'PRX'|Att],Sem):-
530 member(Lemma,['this','these']), !,
531 Sem = lam(P,alfa(def,B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
532
533semlex( np, Lemma,Index,Att-[sem:'DST'|Att],Sem):-
534 member(Lemma,['that','those']), !,
535 Sem = lam(P,alfa(def,B:drs([B:[]:X],[B:Index:pred(X,thing,n,12)]),app(P,X))).
536
537semlex( np, Lemma,Index,Att-[sem:'AND'|Att],Sem):-
538 \+ option('--semantics',amr),
539 member(Lemma,['all','any','each','either',everything,anything]), !,
540 Sem = lam(P,B1:drs([],[B1:[]:imp(B2:drs([B2:[]:X],[B2:Index:pred(X,thing,n,12)]),app(P,X))])).
541
542semlex( np, Lemma,Index,Att-[sem:'AND'|Att],Sem):-
543 \+ option('--semantics',amr),
544 member(Lemma,[everybody,everyone,anybody,anyone]), !,
545 Sem = lam(P,B1:drs([],[B1:[]:imp(B2:drs([B2:[]:X],[B2:Index:pred(X,person,n,1)]),app(P,X))])).
546
547semlex( np, Lemma,Index,Att-[sem:'NOT'|Att],Sem):-
548 \+ option('--semantics',amr),
549 member(Lemma,[nobody,noone,'no-one']), !,
551 Sem = lam(P,B1:drs([],[B1:Index:not(merge(B2:drs([B2:[]:X],[B2:Index:pred(X,person,n,1)]),app(P,X)))])).
552
553semlex( np, Lemma,Index,Att-[sem:'DIS'|Att],Sem):-
554 \+ option('--semantics',amr),
555 member(Lemma,[someone,somebody]), !,
556 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,person,n,1)]),app(P,X))).
557
558
562
563semlex( np, Lemma,Index,Att-[sem:'QUE'|Att],Sem):-
564 Lemma = 'why', !,
565 Sem = lam(P,B1:drs([],[B1:[]:duplex(whq,
566 B2:drs([B2:[]:X],[B2:Index:pred(X,reason,n,2)]),
567 X,
568 app(P,X))])).
569
570
574
575semlex(np,Sym,Index,Att-[sem:Tag|Att],Sem):-
576 att(Att,pos,Pos), member(Pos,['NNP','NNPS']), !,
577 att(Att,namex,Ne), neClassType(Ne,Class,Type,Tag),
578 Sem = lam(P,alfa(nam,B:drs([B:[]:X],[B:Index:named(X,Sym,Class,Type)]),app(P,X))).
579
580semlex(np,Sym,Index,Att-[sem:'CON'|Att],Sem):- !,
581 att(Att,sense,Sense),
582 Sem = lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,Sense)]),app(P,X))).
583
584
588
589semlex(np/pp, Sym,Index,Att-[sem:'ROL'|Att],Sem):- !,
590 att(Att,sense,Sense),
591 Sem = lam(PP,lam(P,merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,Sense)]),
592 merge(app(P,X),app(PP,X))))).
593
594
595
599
600semlex(Cat,whose,Index,Att-[sem:'QUE'|Att],Sem):-
601 member(Cat,[(s:wq/(s:dcl\np))/n,
602 (s:wq/(s:q/np))/n,
603 (s:wq\(s:dcl/np))/n]), !,
604 Sem = lam(N,lam(V,app(V,lam(P,B1:drs([],[B1:[]:duplex(whq,
605 merge(merge(B2:drs([B2:[]:Y],[]),app(N,Y)),
606 B3:drs([B3:[]:X],[B3:Index:pred(X,person,n,1),B3:[]:rel(Y,X,of,1)])),
607 X,
608 app(P,Y))]))))).
609
610
614
615semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
616 member(Cat,[(s:wq/(s:dcl\np))/n,
617 (s:wq/(s:q/np))/n,
618 (s:qem/(s:dcl\np))/n,
619 (s:qem/(s:dcl/np))/n,
620 (s:wq\(s:dcl/np))/n]), !,
621 Sem = lam(P1,lam(V2,app(V2,lam(P3,B1:drs([],[B1:[]:duplex(whq,
622 merge(B2:drs([B2:Index:X4],[]),app(P1,X4)),
623 X4,
624 app(P3,X4))]))))).
625
626semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
627 Cat = (s:wq/(s:q/pp))/n, !, 628 Sem = lam(N,lam(V,lam(E,B1:drs([],[B1:[]:duplex(whq,
629 merge(B2:drs([B2:[]:X],[]),app(N,X)),
630 X,
631 app(app(V,lam(Y,B3:drs([],[B3:Index:rel(Y,X,rel,0)]))),E))])))).
632
633
637
638semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
639 member(Cat,[(s:wq/(s:q/np))/np,
640 (s:wq/(s:dcl\np))/np]), !,
641 Sem = lam(NP,lam(VP,lam(E,B1:drs([],[B1:[]:duplex(whq,
642 merge(B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:card(X,Y,eq)]),
643 app(NP,lam(U,B3:drs([],[B3:[]:eq(U,X)])))),
644 Y,
645 app(app(VP,lam(P,app(P,X))),E))])))).
646
647
648
652
653semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
654 member(Cat,[((s:wq/(s:q/np))/n)/(np/n),
655 ((s:wq/(s:dcl\np))/n)/(np/n)]), !,
656 Sem = lam(D,lam(N,lam(VP,lam(E,B1:drs([],[B1:[]:duplex(whq,
657 merge(B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:card(X,Y,eq)]),
658 app(app(D,N),lam(Z,B3:drs([],[B3:[]:eq(X,Z)])))),
659 Y,
660 app(app(VP,lam(P,app(P,X))),E))]))))).
661
662semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
663 member(Cat,[((s:wq/(s:q/pp))/n)/(np/n),
664 ((s:wq/(s:dcl\pp))/n)/(np/n)]), !,
665 Sem = lam(D,lam(N,lam(VP,lam(E,B1:drs([],[B1:[]:duplex(whq,
666 merge(B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:card(X,Y,eq)]),
667 app(app(D,N),lam(Z,B3:drs([],[B3:[]:eq(X,Z)])))),
668 Y,
669 app(app(VP,lam(Y,B4:drs([],[B4:[]:rel(Y,X,rel,0)]))),E))]))))).
670
671semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
672 member(Cat,[(((s:wq/pp)/((s:q/pp)/np))/n)/(np/n)]), !,
673 Sem = lam(D,lam(N,lam(TV,lam(PP,lam(E,B1:drs([],[B1:[]:duplex(whq,
674 merge(B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:card(X,Y,eq)]),
675 app(app(D,N),lam(Z,B3:drs([],[B3:[]:eq(X,Z)])))),
676 Y,
677 app(app(app(TV,lam(P,app(P,X))),PP),E))])))))).
678
679
680semlex(((s:wq/pp)/n)/(np/n),_Sym,Index,Att-[sem:'QUE'|Att],Sem):- !, 681 Sem = lam(D,lam(N,lam(PP,lam(_,B1:drs([],[B1:[]:duplex(whq,
682 merge(B2:drs([B2:[]:X,B2:[]:Y],[Index:card(X,Y,eq)]),
683 app(app(D,N),lam(Z,B3:drs([],[B3:[]:eq(X,Z)])))),
684 Y,
685 app(PP,X))]))))).
686
687
688semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
689 member(Cat,[(((s:wq/(s:pss\np))/((s:q/(s:pss\np))/np))/n)/(np/n)]),
690 Sem = lam(D,lam(N,lam(_,lam(VP,lam(E,B1:drs([],[B1:[]:duplex(whq,
691 merge(B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:card(X,Y,eq)]),
692 app(app(D,N),lam(Z,B3:drs([],[B3:[]:eq(X,Z)])))),
693 Y,
694 app(app(VP,lam(P,app(P,X))),E))])))))).
695
696
697
701
702semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
703 member(Cat,[(s:wq/(s:q/(s:adj\np)))/(s:adj\np),
704 ((s:wq/pp)/((s:q/pp)/(s:adj\np)))/(s:adj\np),
705 (s:qem/(s:dcl/(s:adj\np)))/(s:adj\np)]), !, 706 Sem = lam(A,lam(U,app(U,lam(NP,lam(E,app(NP,lam(X,B1:drs([],[B1:[]:duplex(whq,
707 merge(B2:drs([B2:Index:Y],[]),
708 app(app(A,lam(P,app(P,Y))),E)),
709 Y,
710 B3:drs([],[B3:[]:rel(Y,X,of,1)]))])))))))).
711
712
713semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
714 Cat = (s:wq/(s:q/pp))/(s:adj\np), !, 715 closing(CC),
716 Sem = lam(A,lam(VP,lam(F,B1:drs([],[B1:[]:duplex(whq,
717 merge(B2:drs([B2:Index:X],[]),
718 app(app(A,lam(P,app(P,X))),CC)),
719 X,
720 app(app(VP,lam(Y,B3:drs([],[B3:[]:rel(Y,X,rel,0)]))),F))])))).
721
722
723/* -------------------------------------------------------------------------
724 Question words: basic question words
725------------------------------------------------------------------------- */
726
727semlex(Cat,Sym,Index,Att-[sem:'QUE'|Att],Sem):-
728 member(Cat,[s:wq/(s:dcl\np),
729 s:wq/(s:q/np),
730 s:wq\(s:dcl/np)]),
731 ( Sym = what, Pred = thing, Sense=12;
732 Sym = whatever, Pred = thing, Sense=12;
733 Sym = which, Pred = thing, Sense=12;
734 Sym = whichever, Pred = thing, Sense=12;
735 Sym = where, Pred = location, Sense=1;
736 Sym = why, Pred = reason, Sense=2;
737 Sym = how, Pred = manner, Sense=2;
738 Sym = who, Pred = person, Sense=1;
739 Sym = whoever, Pred = person, Sense=1;
740 Sym = whom, Pred = person, Sense=1;
741 Sym = when, Pred = unit_of_time, Sense=1
742 ), !,
743 Sem = lam(VP,lam(F,B1:drs([],[B1:[]:duplex(whq,
744 B2:drs([B2:[]:X],[B2:Index:pred(X,Pred,n,Sense)]),
745 X,
746 app(app(VP,lam(P,app(P,X))),F))]))).
747
748
749semlex(Cat,Sym,Index,Att-[sem:'QUE'|Att],Sem):-
750 Cat = s:wq/(s:q/pp),
751 ( Sym=where, Pred=location, Rel=loc_rel, Sense=1;
752 Sym=why, Pred=reason, Rel=rel, Sense=2;
753 Sym=how, Pred=manner, Rel=rel, Sense=2;
754 Sym=when, Pred=unit_of_time, Rel=temp_rel, Sense=1
755 ), !,
756 Sem = lam(VP,lam(F,B1:drs([],[B1:[]:duplex(whq,
757 B2:drs([B2:[]:X],[B2:Index:pred(X,Pred,n,Sense)]),
758 X,
759 app(app(VP,lam(E,B3:drs([],[B3:[]:rel(E,X,Rel,0)]))),F))]))).
760
761semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
762 member(Cat,[np/(s:dcl\np),
763 np/(s:dcl/np)]), !,
764 closing(CC),
765 Sem = lam(VP,lam(P,B1:drs([],[B1:[]:duplex(whq,
766 B2:drs([B2:[]:X],[B2:Index:pred(X,thing,n,12)]),
767 X,
768 merge(app(app(VP,lam(R,app(R,X))),CC),app(P,X)))]))).
769
770semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
771 member(Cat,[np/((s:to\np)/np)]), !,
772 closing(CC),
773 Sem = lam(TV,lam(P,B1:drs([],[B1:[]:duplex(whq,
774 B2:drs([B2:[]:X],[B2:Index:pred(X,thing,n,12)]),
775 X,
776 merge(app(app(app(TV,lam(R,app(R,X))),lam(Q,merge(B3:drs([B3:[]:Z],[B3:[]:pred(Z,thing,n,12)]),
777 app(Q,Z)))),CC),app(P,X)))]))).
778
779semlex(Cat,_Sym,Index,Att-[sem:'QUE'|Att],Sem):-
780 member(Cat,[(np/(s:dcl\np))/n,
781 (np/(s:dcl/np))/n]), !,
782 closing(CC),
783 Sem = lam(N,lam(VP,lam(P,B1:drs([],[B1:[]:duplex(whq,
784 merge(B2:drs([B2:Index:X],[]),app(N,X)),
785 X,
786 merge(app(app(VP,lam(R,app(R,X))),CC),app(P,X)))])))).
787
788
789semlex(s:wq/s:q,Sym,Index,Att-[sem:'QUE'|Att],Sem):-
790 ( Sym=how, Pred=manner, Sense=2 ;
791 Sym=where, Pred=location, Sense=1 ;
792 Sym=when, Pred=unit_of_time, Sense=1 ;
793 Sym=why, Pred=reason, Sense=2 ;
794 Sym=what, Pred=thing, Sense=12
795 ), !,
796 Sem = lam(YNQ,lam(E,app(YNQ,lam(F,B1:drs([],[B1:[]:duplex(whq,
797 B2:drs([B2:[]:X],[B2:Index:pred(X,Pred,n,Sense)]),
798 X,
799 merge(B3:drs([],[B3:[]:rel(F,X,rel,0)]),app(E,F)))]))))).
800
801semlex(s:qem/(s:to\np),_,Index,Att-[sem:'QUE'|Att],Sem):- !,
802 Sem = lam(VP,lam(E,app(app(VP,lam(P,merge(B1:drs([B1:[]:X],[]),app(P,X)))),lam(F,merge(B2:drs([],[B2:Index:pred(F,manner,n,2)]),app(E,F)))))). 803
805semlex(Cat,whose,Index,Att-[sem:'QUE'|Att],Sem):-
806 member(Cat,[s:wq/(s:q/np),
807 s:wq\(s:dcl/np),
808 s:wq/(s:dcl\np)]), !,
809 Sem = lam(VP,app(VP,lam(P,B1:drs([],[B1:[]:duplex(whq,
810 B2:drs([B2:[]:X,B2:[]:Y],[B2:Index:pred(X,thing,n,12),
811 B2:[]:pred(Y,person,n,1),
812 B2:[]:rel(X,Y,of,1)]),
813 X,
814 app(P,X))])))).
815
816semlex(Cat,_,Index,Att-[sem:'QUE'|Att],Sem):-
817 member(Cat,[s:qem/(s:dcl\np),
818 s:_/(s:dcl\np),
819 s:qem/(s:dcl/np)]), !,
820 Sem = lam(VP,app(VP,lam(P,B1:drs([],[B1:[]:duplex(whq,
821 B2:drs([B2:[]:X],[B2:Index:pred(X,thing,n,12)]),
822 X,
823 app(P,X))])))).
824
826semlex((s:qem/s:dcl)/(s:adj\np),_,Index,Att-[sem:'QUE'|Att],Sem):- !,
827 Sem = lam(VP,lam(S,app(VP,lam(P,B1:drs([],[B1:[]:duplex(whq,
828 merge(B2:drs([B2:[]:X],[B2:Index:pred(X,manner,n,2)]),app(P,X)),
829 X,
830 app(S,lam(E,B3:drs([],[B3:[]:rel(E,X,rel,0)]))))]))))).
831
834semlex(Cat,_,Index,Att-[sem:'QUE'|Att],Sem):-
835 member(Cat,[((s:qem/(s:dcl\np))/n)/(s:adj\np),
836 ((s:qem/(s:dcl/np))/n)/(s:adj\np)]), !,
837 closing(CC),
838 Sem = lam(VPADJ,lam(N,lam(VPDCL,lam(E,app(app(VPADJ,lam(P,B1:drs([],[B1:[]:duplex(whq,
839 merge(B2:drs([B2:Index:X],[]),
840 merge(app(N,X),
841 app(P,X))),
842 X,
843 app(app(VPDCL,lam(P,app(P,X))),E))]))),CC))))).
844
846semlex((s:X\s:X)/s:q,_,Index,Att-[sem:'QUE'|Att],Sem):- !,
847 Sem = lam(W,lam(S,lam(F,app(S,lam(E,merge(B1:drs([B1:[]:Y],[B1:[]:prop(Y,B2:drs([],[B2:[]:duplex(whq,
848 B3:drs([B3:[]:Z],[B3:Index:pred(Z,reason,n,2)]),
849 Z,
850 app(W,lam(E,B4:drs([],[B4:[]:rel(E,Z,rel,0)]))))])),
851 B1:[]:rel(E,Y,rel,0)]),
852 app(F,E))))))).
853
854
858
859semlex(((np\np)/s:dcl)\((s:F\s:F)/np),_Sym,_Index,Att-[sem:'PRO'|Att],Sem):- !,
860 closing(CC),
861 Sem = lam(Prep,lam(S,lam(NP,lam(Q,app(app(app(Prep,lam(P,app(NP,lam(X,merge(app(P,X),app(Q,X)))))),S),CC))))).
862
863semlex(((np\np)/s:dcl)\((np\np)/np),_Sym,_Index,Att-[sem:'PRO'|Att],Sem):- !,
864 closing(CC),
865 Sem = lam(Prep,lam(S,lam(NP,lam(Q,app(app(app(Prep,lam(P,app(NP,lam(X,merge(app(P,X),app(Q,X)))))),S),CC))))).
866
867semlex(((n\n)/s:dcl)\((n\n)/np),_Sym,_Index,Att-[sem:'PRO'|Att],Sem):- !,
868 Sem = lam(Prep,lam(S,lam(N,app(app(Prep,S),N)))).
869
870semlex(((np\np)/s:dcl)\((n\n)/np),_Sym,_Index,Att-[sem:'PRO'|Att],Sem):- !,
871 Sem = lam(Prep,lam(S,lam(NP,lam(P,app(NP,app(app(Prep,S),P)))))).
872
873
874
878
879semlex(Cat,Sym,Index,Att,Sem):- semlex_verb(Cat,Sym,Index,Att,Sem), !.
880
881
882
886
890
891semlex(Cat,Sym,Index,Att-[sem:'TOP'|Att],Sem):-
892 member(Cat,[(s:_/s:_)/(s:asup\np),(np/np)/(s:asup\np)]), !,
893 Sem = lam(VP,lam(NP,lam(P,app(app(VP,NP),lam(X,merge(B:drs([],[B:Index:pred(X,Sym,a,0)]),app(P,X))))))).
894
895semlex(Cat,_Sym,_Index,Att-[sem:'NIL'|Att],Sem):-
896 member(Cat,[(C/C)/(s:asup\np),
897 (C\C)/(s:asup\np),
898 (C\C)\(s:asup\np),
899 (C/C)\(s:asup\np)]), !,
900 Sem = lam(_,lam(N,N)).
901
902
906
907semlex(Cat,Sym,Index,Att-[sem:'MOR'|Att],Sem):-
908 member(Cat,[(np/np)\(s:adj\np),
909 (np/np)/(s:adj\np)]), !,
910 att(Att,sense,Sense),
911 Sem = lam(VP,lam(NP,lam(P,app(app(VP,NP),lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,Sense)]),app(P,X))))))).
912
913semlex(Cat,Sym,Index,Att-[sem:'MOR'|Att],Sem):-
914 member(Cat,[((np/np)/(np/np))\(s:adj\np),
915 ((np\np)\(np\np))/(s:dcl\np)]), !,
916 att(Att,sense,Sense),
917 Sem = lam(VP,lam(NPNP,lam(NP,lam(P,app(app(VP,app(NPNP,NP)),lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,Sense)]),app(P,X)))))))).
918
919semlex(Cat,Sym,Index,Att-[sem:'MOR'|Att],Sem):-
920 Cat = ((((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))))\(s:adj\np), !,
921 att(Att,sense,Sense),
922 Sem = lam(_AP,lam(MM,lam(M,lam(VP,app(app(MM,M),lam(Q,lam(F,app(app(VP,Q),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),app(F,E))))))))))).
923
924
925
926/* -------------------------------------------------------------------------
927 Complementizers (Wh)
928------------------------------------------------------------------------- */
929
930semlex(s:qem/s:dcl,Sym,Index,Att-[sem:'QUE'|Att],Sem):-
931 ( Sym=how, Pred=manner, Sense=2, Rel=manner_rel;
932 Sym=where, Pred=location, Sense=1, Rel=loc_rel;
933 Sym=when, Pred=unit_of_time, Sense=1, Rel=time_rel;
934 Sym=why, Pred=reason, Sense=2, Rel=reason_rel), !,
935 Sem = lam(S,lam(F,B1:drs([],[B1:[]:duplex(whq,
936 B2:drs([B2:[]:X],[B2:Index:pred(X,Pred,n,Sense)]),
937 X,
938 app(S,lam(E,merge(B3:drs([],[B3:[]:rel(E,X,Rel,0)]),
939 app(F,E)))))]))).
940
941
945
946semlex(Cat,_Sym,Index,Att-[sem:'SUB'|Att],Sem):-
947 member(Cat,[s:em/s:dcl,s:bem/s:b,s:em/s:b,s:qem/s:dcl]), !,
948 plosing(CC),
949 Sem = lam(S,lam(E,merge(B:drs([B:Index:K],
950 [B:[]:prop(K,app(S,CC))]),
951 app(E,K)))).
952
955semlex(Cat,_,_Index,Att-[sem:'SUB'|Att],Sem):-
956 Cat = (s:for/(s:to\np))/np, !,
957 Sem = lam(NP,lam(VP,app(VP,NP))).
958
965
966semlex(Cat,_Sym,_Index,Att-[sem:'NIL'|Att],Sem):-
967 category(comp,Cat,_), !,
968 Sem = lam(S,lam(F,app(S,F))).
969
970semlex(Cat,_,Index,Att-[sem:'SUB'|Att],Sem):-
971 Cat = np/s:dcl, !,
972 plosing(CC),
973 Sem = lam(S,lam(P,merge(B:drs([B:Index:X],
974 [B:[]:prop(X,app(S,CC))]),
975 app(P,X)))).
976
977
981
982semlex(Cat,Sym,Index,Att1-[sem:'DIS'|Att2],Sem):-
983 category(vpadv,Cat,_),
984 member(Sym,[somewhere]), !,
985 role(['Location'],Att1-Att2,[Role]),
986 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:Z],[B:Index:pred(Z,location,n,1),
987 B:[]:role(E,Z,Role,1)]),app(F,E))))))).
988
989semlex(Cat,Sym,Index,Att1-[sem:'AND'|Att2],Sem):-
990 category(vpadv,Cat,_),
991 member(Sym,[anywhere,everywhere]), !,
992 role(['Location'],Att1-Att2,[Role]),
993 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,B1:drs([],[B1:[]:imp(B2:drs([B2:[]:Z],[B2:Index:pred(Z,location,n,1)]),
994 merge(B3:drs([],[B3:[]:role(E,Z,Role,1)]),app(F,E)))])))))).
995
996semlex(Cat,Sym,Index,Att1-[sem:'NOT'|Att2],Sem):-
997 category(vpadv,Cat,_),
998 member(Sym,[nowhere]), !,
999 role(['Location'],Att1-Att2,[Role]),
1000 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,B1:drs([],[B1:Index:not(merge(B2:drs([B2:[]:Z],[B2:[]:pred(Z,location,n,1),
1001 B2:[]:role(E,Z,Role,1)]),app(F,E)))])))))).
1002
1003
1007
1008semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1009 category(vpadv,Cat,_),
1010 option('--semantics',drg),
1011 notSymbol(Sym), !,
1012 Sem = lam(X,lam(Q,lam(F,B1:drs([],[B1:[]:not(app(app(X,Q),lam(E,merge(B2:drs([],[B2:Index:pred(E,Sym,s,1)]),app(F,E)))))])))).
1013
1014semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1015 category(vpadv,Cat,_),
1016 notSymbol(Sym),
1017 option('--x',true), !,
1019 Sem = lam(X,lam(Q,lam(F,B:drs([],[B:Index:not(app(app(X,Q),F))])))). 1020
1021semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1022 category(vpadv,Cat,_),
1023 notSymbol(Sym), !,
1024 Sem = lam(V,lam(Q,lam(F,app(Q,lam(X,B:drs([],[B:Index:not(app(app(V,lam(P,app(P,X))),F))])))))). 1026
1027semlex(Cat,Sym,Index,Att-[sem:'POS'|Att],Sem):-
1028 category(vpadv,Cat,_),
1029 member(Sym,[perhaps,maybe,possibly]),
1030 option('--modal',true), !,
1031 Sem = lam(V,lam(Q,lam(F,app(Q,lam(X,B:drs([],[B:Index:pos(app(app(V,lam(P,app(P,X))),F))])))))). 1033
1034
1038
1039semlex(Cat,Sym,Index,Att1-[sem:'QUA'|Att2],Sem):-
1040 att(Att1,pos,'CD'),
1041 category(vpadv,Cat,_),
1042 string2digit(Sym,Digit), !,
1043 rel(for,Att1-Att2,Relation),
1044 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:X],[B:Index:card(X,Digit,eq),
1045 B:[]:rel(E,X,Relation,0)]),app(F,E))))))).
1046
1050
1051semlex((s:adj\np)/(s:adj\np),Sym,Index,Att-[sem:'INT'|Att],Sem):- !,
1052 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,0)]),app(F,E))))))).
1053
1054
1058
1059semlex(Cat,Sym,Index,Att1-[sem:Tag|Att2],Sem):-
1060 category(vpadv,Cat,_),
1061 att(Att1,pos,Pos),
1062 member(Pos,['NNP','NNPS']), !,
1063 att(Att1,namex,NE), neClassType(NE,Class,Type,Tag),
1064 rel(on,Att1-Att2,Relation),
1065 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:X],[B:Index:named(X,Sym,Class,Type),
1066 B:[]:rel(E,X,Relation,0)]),app(F,E))))))).
1067
1068semlex(Cat,Sym,Index,Att1-[sem:'CON'|Att2],Sem):-
1069 category(vpadv,Cat,_),
1070 att(Att1,pos,Pos),
1071 member(Pos,['NN','NNS']), !,
1072 att(Att1,sense,Sense),
1073 role(['Time'],Att1-Att2,[Role]),
1074 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,Sense),
1075 B:[]:role(E,X,Role,1)]),app(F,E))))))).
1076
1077
1086
1087
1091
1097
1103
1104semlex(Cat,Sym,Index,Att1-[sem:'QUA'|Att2],Sem):-
1105 category(vpadv,Cat,_),
1106 member(Sym:Card,[once:1,twice:2,thrice:3]), !,
1107 role(['Frequency'],Att1-Att2,[Role]),
1108 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:M],[B:[]:role(E,M,Role,1),
1109 B:Index:pred(M,time,n,1),
1110 B:[]:card(M,Card,eq)]),app(F,E))))))).
1111
1112semlex(Cat,Sym,Index,Att1-[sem:'IST'|Att2],Sem):-
1113 category(vpadv,Cat,_), !,
1114 att(Att1,sense,Sense),
1115 role(['Manner'],Att1-Att2,[Role]),
1116 Sem = lam(X,lam(Q,lam(F,app(app(X,Q),lam(E,merge(B:drs([B:[]:M],[B:[]:role(E,M,Role,1),
1117 B:Index:pred(M,Sym,a,Sense)]),app(F,E))))))).
1119
1120
1124
1127semlex(Cat,the,Index,Att-[sem:'APP'|Att],Sem):-
1128 Cat = (np\np)/n, !,
1129 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:eq(X,Y)]),
1130 merge(app(N,Y),app(P,X)))))))).
1131
1134semlex(Cat,Sym,Index,Att1-[sem:'PRX'|Att2],Sem):-
1135 option('--semantics',amr),
1136 member(Sym,[this,those]),
1137 Cat = (np\np)/n, !,
1138 role(['Time'],Att1-Att2,[Role]),
1139 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:pred(Y,this,r,2),B:[]:role(X,Y,Role,1)]),
1140 merge(app(N,Y),app(P,X)))))))).
1141
1142semlex(Cat,Sym,Index,Att1-[sem:'DST'|Att2],Sem):-
1143 option('--semantics',amr),
1144 member(Sym,[that,these]),
1145 Cat = (np\np)/n, !,
1146 role(['Time'],Att1-Att2,[Role]),
1147 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:pred(Y,that,r,2),B:[]:role(X,Y,Role,1)]),
1148 merge(app(N,Y),app(P,X)))))))).
1149
1150semlex(Cat,Sym,Index,Att1-[sem:'PRX'|Att2],Sem):-
1151 member(Sym,[this,these]),
1152 Cat = (np\np)/n, !,
1153 role(['Time'],Att1-Att2,[Role]),
1154 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:role(X,Y,Role,1)]),
1155 merge(app(N,Y),app(P,X)))))))).
1156
1157semlex(Cat,Sym,Index,Att1-[sem:'DST'|Att2],Sem):-
1158 member(Sym,[this,that,those,these]),
1159 Cat = (np\np)/n, !,
1160 role(['Time'],Att1-Att2,[Role]),
1161 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:role(X,Y,Role,1)]),
1162 merge(app(N,Y),app(P,X)))))))).
1163
1166semlex(Cat,Sym,Index,Att1-[sem:'AND'|Att2],Sem):-
1167 member(Sym,[a,an,each]),
1168 Cat = (np\np)/n, !,
1169 rel(for,Att1-Att2,Relation),
1170 Sem = lam(N,lam(Q,lam(P,B1:drs([],[B1:[]:imp(merge(B2:drs([B2:[]:Y],[]),
1171 app(N,Y)),
1172 app(Q,lam(X,merge(B3:drs([],[B3:Index:rel(X,Y,Relation,0)]),
1173 app(P,X)))))])))).
1174
1177semlex(Cat,Sym,Index,Att1-[sem:'MOY'|Att2],Sem):-
1178 Cat = (np\np)/n,
1179 att(Att1,pos,'NNP'),
1180 att(Att1,namex,NE), neClass(NE,tim),
1181 role(['Time'],Att1-Att2,[Role]),
1182 month(Sym,MID), !,
1183 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(merge(B:drs([B:[]:Y],[B:[]:role(X,Y,Role,1)]),
1184 merge(B:drs([],[B:Index:timex(Y,date([]:'+',[]:'XXXX',Index:MID,[]:'XX'))]),app(N,Y))),
1185 app(P,X))))))).
1186
1189semlex(Cat,_Sym,Index,Att-[sem:'NIL'|Att],Sem):-
1190 Cat = (np\np)/n, !,
1191 Sem = lam(N,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:rel(X,Y,rel,0)]),
1192 merge(app(N,Y),app(P,X)))))))).
1193
1194
1198
1199semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1200 member(Cat,[((np\np)\(np\np))/np,
1201 ((np\np)/(np\np))/np]), !,
1202 Sem = lam(Q1,lam(R,lam(Q2,lam(P,merge(app(Q1,lam(X,app(Q2,lam(Y,B:drs([],[B:Index:rel(Y,X,Sym,0)]))))),app(app(R,Q2),P)))))).
1203
1204semlex(Cat,_Sym,Index,Att-[sem:'REL'|Att],Sem):-
1205 Cat = (np/np)/n, !,
1206 Sem = lam(N,lam(Q,lam(P,merge(merge(B1:drs([B1:[]:Y],[]),app(N,Y)),app(Q,lam(X,merge(B2:drs([],[B2:Index:rel(X,Y,rel,0)]),app(P,X)))))))).
1207
1210semlex(Cat,except,Index,Att-[sem:'NOT'|Att],Sem):-
1211 Cat = (np\np)/pp, !,
1212 Sem = lam(PP,lam(NP,lam(P,app(NP,lam(X,merge(B:drs([],[B:Index:not(app(PP,X))]),app(P,X))))))).
1213
1216semlex(Cat,Sym,Index,Att1-[sem:'EXG'|Att2],Sem):-
1217 Cat = (np\np)/pp,
1218 att(Att1,sense,Sense),
1219 att(Att1,pos,'VBG'),
1220 roles(Sym,s:dcl\np,[Role],Att1-Att2), !,
1221 Sem = lam(PP,lam(NP,lam(P,app(NP,lam(X,merge(B:drs([B:[]:E],[B:Index:pred(E,Sym,v,Sense),
1222 B:[]:role(X,E,Role,-1)]),merge(app(PP,E),app(P,X)))))))).
1223
1226semlex(Cat,Sym,Index,Att1-[sem:'EXT'|Att2],Sem):-
1227 Cat = (np\np)/pp,
1228 att(Att1,sense,Sense),
1229 att(Att1,pos,'VBN'),
1230 roles(Sym,s:pss\np,[Role],Att1-Att2), !,
1231 Sem = lam(PP,lam(NP,lam(P,app(NP,lam(X,merge(B:drs([B:[]:E],[B:Index:pred(E,Sym,v,Sense),
1232 B:[]:role(X,E,Role,-1)]),merge(app(PP,E),app(P,X)))))))).
1233
1236semlex(Cat,Sym,Index,Att-[sem:'ROL'|Att],Sem):-
1237 Cat = (np\np)/pp, !,
1238 att(Att,sense,Sense),
1239 Sem = lam(PP,lam(NP,lam(P,app(NP,lam(X,merge(B:drs([B:[]:Y],[B:[]:pred(Y,thing,n,12),
1240 B:Index:rel(X,Y,Sym,Sense)]),merge(app(PP,Y),app(P,X)))))))).
1241
1242semlex(Cat,Tok,Index,Att-[sem:'NOT'|Att],Sem):-
1243 \+ option('--semantics',amr),
1244 Tok = without, Sym = with,
1245 member(Cat,[(np\np)/np,(np/np)/np]), !,
1246 Sem = lam(Q1,lam(Q2,lam(P,app(Q2,lam(X,merge(B1:drs([],[B1:Index:not(app(Q1,lam(Y,B2:drs([],[B2:Index:rel(X,Y,Sym,0)]))))]),app(P,X))))))).
1247
1248semlex(Cat,Sym,Index,Att-[sem:'RLI'|Att],Sem):-
1249 member(Cat,[(np\np)/np,(np\np)\np,(np/np)/np]),
1250 att(Att,scope,inv), !,
1251 Sem = lam(Q1,lam(Q2,lam(P,app(Q1,lam(Y,app(Q2,lam(X,merge(B:drs([],[B:Index:rel(X,Y,Sym,0)]),app(P,X))))))))).
1252
1253semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1254 member(Cat,[(np\np)/np,(np\np)\np,(np/np)/np]), !,
1255 Sem = lam(Q1,lam(Q2,lam(P,app(Q2,lam(X,app(Q1,lam(Y,merge(B:drs([],[B:Index:rel(X,Y,Sym,0)]),app(P,X))))))))).
1256
1258semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1259 Cat = ((np\np)\np)/np, !,
1260 Sem = lam(Q1,lam(Q2,lam(Q3,lam(P,app(Q3,lam(X,app(Q2,lam(Y,app(Q1,lam(Z,merge(B:drs([],[B:[]:rel(X,Y,rel,0),
1261 B:Index:rel(Y,Z,Sym,0)]),
1262 app(P,X)))))))))))).
1263
1266semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1267 Cat = ((np\np)/(s:to\np))/np, !,
1268 Sem = lam(NP1,lam(VP,lam(NP2,lam(P,app(NP2,lam(X,merge(app(app(VP,NP1),
1269 lam(Y,B:drs([],[B:Index:rel(X,Y,Sym,0)]))),
1270 app(P,X)))))))).
1271
1272semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1273 Cat = ((np\np)/(s:ng\np))/np, !,
1274 plosing(CC),
1275 Sem = lam(NP1,lam(VP,lam(NP2,lam(P,app(NP2,lam(X,merge(B:drs([B:[]:Y],[B:Index:rel(X,Y,Sym,0),
1276 B:[]:prop(Y,app(app(VP,NP1),CC))]),
1277 app(P,X)))))))).
1278
1279semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1280 member(Cat,[((np\np)/pp)/np]), !,
1281 Sem = lam(Q1,lam(PP,lam(Q2,lam(P,app(Q2,lam(X,app(Q1,lam(Y,merge(B:drs([],[B:Index:rel(X,Y,Sym,0)]),
1282 merge(app(PP,X),app(P,X))))))))))).
1283
1284semlex((n/pp)/(s:adj\np),Sym,Index,Att-[sem:'REL'|Att],Sem):-
1285 Sem = lam(VP,lam(PP,lam(X,app(app(VP,lam(P,app(P,X))),lam(E,merge(B:drs([],[B:Index:rel(X,E,Sym,0)]),app(PP,E))))))).
1286
1287semlex(((s:wq/s:q)\(s:wq/s:q))/np,Sym,Index,Att-[sem:'UNK'|Att],Sem):- !,
1288 Sem = lam(NP,lam(U,lam(YNQ,lam(F,app(app(U,YNQ),lam(E,merge(app(NP,lam(X,B:drs([],[B:Index:rel(E,X,Sym,0)]))),app(F,E)))))))).
1289
1291
1292semlex(Cat,_,Index,Att-[sem:'INT'|Att],Sem):-
1293 member(Cat,[((s:adj\np)/(s:adj\np))/n]), !, 1294 Sem = lam(N,lam(A,lam(Q,lam(F,app(app(A,Q),lam(E,merge(merge(B:drs([B:[]:X],[B:Index:rel(E,X,rel,0)]),
1295 app(N,X)),
1296 app(F,E)))))))).
1297
1300semlex(Cat,by,Index,Att1-[sem:'REL'|Att2],Sem):-
1301 Cat = ((s:pss\np)\(s:pss\np))/np,
1302 roles(by,Cat,[Role],Att1-Att2), !,
1303 Sem = lam(Q2,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,app(Q2,lam(Y,merge(B:drs([],[B:Index:role(E,Y,Role,1)]),app(F,E)))))))))).
1304
1305
1306semlex(Cat,Tok,Index,Att-[sem:'NOT'|Att],Sem):-
1307 \+ option('--semantics',amr),
1308 Tok = without, Sym = with,
1309 member(Cat,[((s:X\np)\(s:X\np))/np,
1310 ((s:X\np)/(s:X\np))/np]), !,
1311 Sem = lam(Q2,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B1:drs([],[B1:Index:not(app(Q2,lam(Y,B2:drs([],[B2:Index:rel(E,Y,Sym,0)]))))]),
1312 app(F,E)))))))).
1313
1314semlex(Cat,Sym,Index,Att-[sem:'RLI'|Att],Sem):-
1315 member(Cat,[((s:X\np)\(s:X\np))/np,
1316 ((s:X\np)/(s:X\np))/np,
1317 ((s:X\np)\(s:X\np))\np,
1318 ((s:X\np)/(s:X\np))\np]),
1319 att(Att,scope,inv), !,
1320 Sem = lam(Q2,lam(V,lam(Q,lam(F,app(Q2,lam(Y,app(app(V,Q),lam(E,merge(B:drs([],[B:Index:rel(E,Y,Sym,0)]),app(F,E)))))))))).
1321
1322semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1323 member(Cat,[((s:X\np)\(s:X\np))/np,
1324 ((s:X\np)/(s:X\np))/np,
1325 ((s:X\np)\(s:X\np))\np,
1326 ((s:X\np)/(s:X\np))\np]), !,
1327 Sem = lam(Q2,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,app(Q2,lam(Y,merge(B:drs([],[B:Index:rel(E,Y,Sym,0)]),app(F,E)))))))))).
1328
1330semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1331 member(Cat,[(((s:X\np)\(s:X\np))\np)/np,
1332 (((s:X\np)\(s:X\np))/np)/np]), !,
1333 Sem = lam(Q3,lam(Q2,lam(V,lam(Q1,lam(F,app(app(V,Q1),lam(E,app(Q3,lam(Z,merge(B1:drs([],[B1:Index:rel(E,Z,Sym,0)]),
1334 app(Q2,lam(Y,merge(B2:drs([],[B2:[]:rel(E,Y,rel,0)]),
1335 app(F,E)))))))))))))).
1336
1337semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1338 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/np,
1339 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/np,
1340 (((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)))/np,
1341 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))\np]), !,
1342 Sem = lam(Q,lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(app(Q,lam(Z,B:drs([],[B:Index:rel(E,Z,Sym,0)]))),
1343 app(F,E))))))))).
1344
1345semlex(Cat,_Sym,Index,Att1-[sem:'REL'|Att2],Sem):-
1346 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/n,
1347 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/n,
1348 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))\n,
1349 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/pp]), !,
1350 role(['Time'],Att1-Att2,[Role]),
1351 Sem = lam(N,lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(merge(B:drs([B:[]:Z],[B:Index:role(E,Z,Role,1)]),
1352 app(N,Z)),
1353 app(F,E))))))))).
1354
1355semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1356 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/s:dcl,
1357 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/s:dcl,
1358 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))\s:dcl]), !,
1359 Sem = lam(S,lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(app(S,lam(Z,B:drs([],[B:Index:rel(E,Z,Sym,0)]))),
1360 app(F,E))))))))).
1361
1362semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1363 member(Cat,[(((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/(s:pss\np),
1364 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/(s:adj\np)]), !,
1365 Sem = lam(VP1,lam(AV,lam(VP2,lam(NP,lam(F,app(app(app(AV,VP2),NP),lam(E,merge(app(app(VP1,lam(P,merge(B1:drs([B1:[]:Z],[B1:[]:pred(Z,thing,n,12)]),
1366 app(P,Z)))),lam(Z,B2:drs([],[B2:Index:rel(E,Z,Sym,0)]))),
1367 app(F,E))))))))).
1368
1372
1373semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1374 option('--semantics',amr),
1375 member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !,
1376 Sem = lam(S,lam(VP,lam(Q,lam(F,app(app(VP,Q),lam(Y,merge(app(F,Y),app(S,lam(E,B2:drs([],[B2:Index:rel(Y,E,condition,1)])))))))))).
1377
1378semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1379 member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !,
1380 plosing(CC),
1381 Sem = lam(S,lam(VP,lam(Q,lam(F,B:drs([],[B:Index:imp(app(S,CC),app(app(VP,Q),F))]))))).
1382
1383
1387
1388semlex(Cat,where,Index,Att1-[symbol:'location',sem:'SUB'|Att2],Sem):-
1389 member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !,
1390 role(['Time'],Att1-Att2,[Role]),
1391 Sem = lam(S,lam(V,lam(Q,lam(F,merge(merge(B1:drs([B1:[]:T],[B1:Index:pred(T,location,n,1)]),
1392 app(app(V,Q),lam(E,merge(B2:drs([],[B2:[]:role(E,T,Role,1)]),app(F,E))))),
1393 app(S,lam(E2,B3:drs([],[B3:[]:role(E2,T,Role,1)])))))))).
1394
1395
1399
1400semlex(Cat,when,Index,Att-[sem:'SUB'|Att],Sem):-
1401 option('--tense',true),
1402 option('--theory',drt),
1403 member(Cat,[((s:X\np)\(s:X\np))/s:dcl]), !,
1404 Sem = lam(S,lam(V,lam(Q,lam(F,merge(merge(B1:drs([B1:[]:T],[B1:Index:pred(T,time,n,1)]),
1405 app(S,lam(E,B2:drs([],[B2:[]:rel(E,T,temp_included,1)])))),
1406 app(app(V,Q),lam(E,merge(B3:drs([],[B3:[]:rel(E,T,temp_included,1)]),app(F,E))))))))).
1407
1408
1412
1413semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1414 option('--theory',drt),
1415 Cat = ((s:X\np)\(s:X\np))/s:inv, !,
1416 att(Att,sense,Sense),
1417 Sem = lam(S,lam(V,lam(Q,lam(F,merge(app(app(V,Q),lam(E,app(F,E))),
1418 app(S,lam(E,B:drs([],[B:Index:pred(E,Sym,r,Sense)])))))))).
1419
1420semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1421 option('--theory',sdrt),
1422 Cat = ((s:X\np)\(s:X\np))/s:inv, !,
1423 plosing(CC),
1424 Sem = lam(S,lam(V,lam(Q,lam(F,sdrs([sub(lab(K1,B1),lab(K2,B2))],[Index:rel(K1,K2,Sym)]))))),
1425 B1 = app(app(V,Q),lam(E,app(F,E))),
1426 B2 = app(S,CC).
1427
1428
1432
1433semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1434 option('--theory',sdrt),
1435 member(Cat,[((s:X\np)\(s:X\np))/s:_,
1436 ((s:X\np)/(s:X\np))/s:_]), !,
1437 plosing(CC),
1438 Sem = lam(S,lam(V,lam(Q,lam(F,sdrs([sub(lab(K1,B1),lab(K2,B2))],[Index:rel(K1,K2,Sym)]))))),
1439 B1 = app(app(V,Q),F),
1440 B2 = app(S,CC).
1441
1442semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1443 member(Cat,[((s:X\np)\(s:X\np))/s,
1444 ((s:X\np)/(s:X\np))/s,
1445 ((s:X\np)\(s:X\np))/s:_,
1446 ((s:X\np)/(s:X\np))/s:_]), !,
1447 plosing(CC),
1448 Sem = lam(S,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Z],
1449 [B:Index:rel(E,Z,Sym,0),
1450 B:[]:prop(Z,app(S,CC))]),
1451 app(F,E)))))))).
1452
1453semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1454 member(Cat,[(((s:X\np)\(s:X\np))\np)/s:dcl ]), !,
1455 plosing(CC),
1456 Sem = lam(S,lam(NP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Z],
1457 [B:Index:rel(E,Z,Sym,0),
1458 B:[]:prop(Z,app(S,CC))]),
1459 merge(app(NP,lam(U,B2:drs([],[B2:[]:rel(E,U,rel,0)]))),
1460 app(F,E)))))))))).
1461
1462semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1463 member(Cat,[((s:X\np)/s:_)/(s:X\np)]), !,
1464 plosing(CC),
1465 Sem = lam(V,lam(S,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Z],
1466 [B:Index:rel(E,Z,Sym,0),
1467 B:[]:prop(Z,app(S,CC))]),
1468 app(F,E)))))))).
1469
1470
1474
1475semlex(Cat,without,Index,Att-[sem:'NOT'|Att],Sem):-
1476 \+ option('--semantics',amr),
1477 member(Cat,[((s:X\np)\(s:X\np))/(s:ng\np),
1478 ((s:X\np)/(s:X\np))/(s:ng\np)]), !,
1479 CC=lam(Y,B2:drs([],[B2:Index:rel(E,Y,manner,1)])),
1480 Sem = lam(VA,lam(VM,lam(Q,lam(F,app(Q,
1481 lam(Z,app(app(VM,lam(P,app(P,Z))),
1482 lam(E,merge(app(F,E),
1483 B:drs([],[B:Index:not(app(app(VA,lam(P,app(P,Z))),
1484 CC))])))))))))).
1485
1486semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1487 option('--semantics',amr),
1488 member(Cat,[((s:X\np)\(s:X\np))/(s:adj\np),((s:X\np)/(s:X\np))/(s:adj\np),
1489 ((s:X\np)\(s:X\np))/(s:pss\np),((s:X\np)/(s:X\np))/(s:pss\np)]), !,
1490 Sem = lam(VA,lam(VM,lam(Q,lam(F,app(Q,
1491 lam(Z,app(app(VM,lam(P,app(P,Z))),
1492 lam(E,merge(app(F,E),
1493 app(app(VA,lam(P,app(P,Z))),
1494 lam(G,B:drs([],[B:Index:rel(E,G,condition,1)])))))))))))).
1495
1496semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1497 member(Cat,[((s:X\np)\(s:X\np))/(s:adj\np),((s:X\np)/(s:X\np))/(s:adj\np),
1498 ((s:X\np)\(s:X\np))/(s:pss\np),((s:X\np)/(s:X\np))/(s:pss\np)]), !,
1499 plosing(CC),
1500 Sem = lam(VA,lam(VM,lam(Q,lam(F,app(Q,lam(Z,B:drs([],[B:Index:imp(app(app(VA,lam(P,app(P,Z))),CC),
1501 app(app(VM,lam(P,app(P,Z))),F))]))))))).
1502
1503
1504semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1505 member(Cat,[((s:X\np)\(s:X\np))/(s:ng\np),((s:X\np)/(s:X\np))/(s:ng\np),
1506 ((s:X\np)\(s:X\np))/(s:adj\np),((s:X\np)/(s:X\np))/(s:adj\np),
1507 ((s:X\np)\(s:X\np))/(s:pss\np),((s:X\np)/(s:X\np))/(s:pss\np)]), !,
1508 Sem = lam(VA,lam(VM,lam(Q,lam(F,app(Q,
1509 lam(Z,app(app(VM,lam(P,app(P,Z))),
1510 lam(E,merge(app(F,E),
1511 app(app(VA,lam(P,app(P,Z))),
1512 lam(G,B:drs([],[B:Index:rel(E,G,Sym,0)])))))))))))).
1513
1516semlex(Cat,Sym,Index,Att1-[sem:'REL'|Att2],Sem):-
1517 member(Cat,[((s:X\np)\(s:X\np))/(s:to\np),
1518 ((s:X\np)/(s:X\np))/(s:to\np)]), !,
1519 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1520 Sem = lam(VP,lam(V,lam(Q,lam(F,app(Q,lam(Z,app(app(V,Q),
1521 lam(E,app(app(VP,lam(P,app(P,Z))),
1522 lam(Y,merge(B2:drs([],[B2:Index:role(E,Y,Role,1)]),app(F,E)))))))))))).
1523
1526semlex(Cat,Sym,Index,Att1-[sem:'QUE'|Att2],Sem):-
1527 Sym = who,
1528 member(Cat,[
1529 ((s:X\np)\(s:X\np))/(s:dcl\np), 1530 ((s:X\np)\(s:X\np))/(s:dcl/np), 1531 ((s:X\np)/(s:X\np))/(s:dcl\np)]), !,
1532 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1533 NP = lam(R,merge(B1:drs([B1:[]:W],[B1:Index:pred(W,person,n,1)]),app(R,W))),
1534 Sem = lam(VP,lam(V,lam(Q,lam(F,app(Q,lam(Z,app(app(V,lam(P,app(P,Z))),
1535 lam(E,app(app(VP,NP),
1536 lam(Y,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))))))).
1537
1540semlex(Cat,Sym,Index,Att1-[sem:'QUE'|Att2],Sem):-
1541 Sym = which,
1542 member(Cat,[((s:X\np)\(s:X\np))/(s:dcl\np),
1543 ((s:X\np)\(s:X\np))/(s:dcl/np),
1544 ((s:X\np)/(s:X\np))/(s:dcl\np)]), !,
1545 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1546 NP = lam(R,merge(B1:drs([B1:[]:W],[B1:Index:pred(W,thing,n,12)]),app(R,W))),
1547 Sem = lam(VP,lam(V,lam(Q,lam(F,app(Q,lam(Z,app(app(V,lam(P,app(P,Z))),
1548 lam(E,app(app(VP,NP),
1549 lam(Y,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))))))).
1550
1553semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1554 member(Cat,[((s:X\np)\(s:X\np))/(s:_\np),
1555 ((s:X\np)\(s:X\np))/(s:_/np)]), !,
1556 NP = lam(R,merge(B1:drs([B1:[]:W],[B1:Index:pred(W,thing,n,12)]),app(R,W))),
1557 Sem = lam(VP,lam(V,lam(Q,lam(F,app(Q,lam(Z,app(app(V,lam(P,app(P,Z))),
1558 lam(E,app(app(VP,NP),
1559 lam(Y,merge(B2:drs([],[B2:[]:rel(E,Y,Sym,0)]),app(F,E)))))))))))).
1560
1563semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1564 member(Cat,[
1565 ((s:adj\np)/(s:to\np))/(s:adj\np),
1566 ((s:adj\np)/(s:for\np))/(s:adj\np),
1567 ((s:b\np)/(s:ng\np))/(s:adj\np),
1568 ((s:b\np)/(s:dcl\np))/(s:adj\np),
1569 ((s:pt\np)/(s:ng\np))/(s:adj\np),
1570 ((s:dcl\np)/(s:b\np))/(s:adj\np),
1571 ((s:dcl\np)/(s:adj\np))/(s:adj\np)]), !,
1572 Sem = lam(VP,lam(V,lam(Q,lam(F,app(app(V,Q),
1573 lam(E,app(app(VP,
1574 lam(P,merge(B1:drs([B1:[]:Z],[B1:[]:pred(Z,thing,n,12)]),app(P,Z)))),
1575 lam(Y,merge(B2:drs([],[B2:Index:rel(E,Y,Sym,0)]),app(F,E)))))))))).
1576
1577
1581
1582semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1583 member(Cat,[(((s:X\np)\(s:X\np))/(s:ng\np))/np,
1584 (((s:X\np)\(s:X\np))/(s:pt\np))/np,
1585 (((s:X\np)\(s:X\np))/(s:pss\np))/np,
1586 (((s:X\np)\(s:X\np))/(s:b\np))/np,
1587 (((s:X\np)\(s:X\np))/(s:to\np))/np]), !,
1588 Sem = lam(NP,lam(VP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,app(app(VP,lam(P,app(NP,lam(Y,merge(B:drs([],[B:Index:rel(E,Y,Sym,0)]),
1589 app(P,Y)))))),F)))))))).
1590
1595
1596semlex(Cat,Sym,Index,Att1-[sem:'REL'|Att2],Sem):-
1597 member(Cat,[(((s:X\np)\(s:X\np))/(s:ng\np))/n,
1598 (((s:X\np)\(s:X\np))/(s:pt\np))/n,
1599 (((s:X\np)\(s:X\np))/(s:pss\np))/n,
1600 (((s:X\np)\(s:X\np))/(s:b\np))/n,
1601 (((s:X\np)\(s:X\np))/(s:to\np))/n]), !,
1602 plosing(CC),
1603 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1604 Sem = lam(N,lam(VP,lam(Y,lam(Q,lam(F,app(Q,lam(U,app(app(Y,lam(P,app(P,U))),lam(E,merge(B:drs([B:[]:Z,B:[]:K],
1605 [B:Index:rel(E,Z,Sym,0),
1606 B:[]:prop(K,app(app(VP,lam(P,app(P,U))),CC)),
1607 B:[]:rel(E,K,Role,0)]),
1608 merge(app(N,Z),app(F,E)))))))))))).
1609
1610
1611semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1612 Cat = (((s:X\np)\(s:X\np))/pp)/np, !,
1613 Sem = lam(NP,lam(PP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(app(NP,lam(Y,B:drs([],[B:Index:rel(E,Y,Sym,0)]))),
1614 merge(app(PP,E),app(F,E)))))))))).
1615
1616semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1617 member(Cat,[((s:_\s:_)/pp)/np,
1618 ((s:_/s:_)/pp)/np]), !,
1619 Sem = lam(Q,lam(PP,lam(S,lam(F,app(S,lam(E,merge(app(Q,lam(Y,B:drs([],[B:Index:rel(E,Y,Sym,0)]))),
1620 merge(app(PP,E),app(F,E))))))))).
1621
1622semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1623 member(Cat,[(s:wq\s:wq)/np,
1624 (s:X/s:X)\np,
1625 (s:X/s:X)/np,
1626 (s:X\s:X)/np]), !,
1627 Sem = lam(Q,lam(S,lam(F,app(S,lam(E,merge(app(Q,lam(Y,B:drs([],[B:Index:rel(E,Y,Sym,0)]))),app(F,E))))))).
1628
1629
1633
1634semlex(Cat,Lemma,Index,Att1-[sem:'PRX'|Att2],Sem):-
1635 option('--semantics',amr),
1636 member(Lemma,[this,these]),
1637 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1638 role(['Time'],Att1-Att2,[Role]),
1639 Sem = lam(P,lam(S,lam(F,alfa(def,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,this,r,2)]),app(P,Y)),
1640 app(S,lam(E,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))).
1641
1642semlex(Cat,Lemma,Index,Att1-[sem:'DST'|Att2],Sem):-
1643 option('--semantics',amr),
1644 member(Lemma,[that,those]),
1645 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1646 role(['Time'],Att1-Att2,[Role]),
1647 Sem = lam(P,lam(S,lam(F,alfa(def,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,that,r,2)]),app(P,Y)),
1648 app(S,lam(E,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))).
1649
1650semlex(Cat,Lemma,Index,Att1-[sem:'PRX'|Att2],Sem):-
1651 member(Lemma,[this,these]),
1652 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1653 role(['Time'],Att1-Att2,[Role]),
1654 Sem = lam(P,lam(S,lam(F,alfa(def,merge(B1:drs([B1:Index:Y],[]),app(P,Y)),
1655 app(S,lam(E,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))).
1656
1657semlex(Cat,Lemma,Index,Att1-[sem:'DST'|Att2],Sem):-
1658 member(Lemma,[the,that,those]),
1659 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1660 role(['Time'],Att1-Att2,[Role]),
1661 Sem = lam(P,lam(S,lam(F,alfa(def,merge(B1:drs([B1:Index:Y],[]),app(P,Y)),
1662 app(S,lam(E,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))).
1663
1664semlex(Cat,Lemma,Index,Att1-[sem:'DEF'|Att2],Sem):-
1665 member(Lemma,[the]),
1666 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1667 role(['Time'],Att1-Att2,[Role]),
1668 Sem = lam(P,lam(S,lam(F,alfa(def,merge(B1:drs([B1:Index:Y],[]),app(P,Y)),
1669 app(S,lam(E,merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),app(F,E)))))))).
1670
1671semlex(Cat,Lemma,Index,Att1-[sem:'AND'|Att2],Sem):-
1672 member(Lemma,[all,every,each,any]),
1673 member(Cat,[(s:X/s:X)/n,(s:X\s:X)/n]), !,
1674 role(['Time'],Att1-Att2,[Role]),
1675 Sem = lam(P,lam(S,lam(F,B1:drs([],[B1:[]:imp(merge(B2:drs([B2:Index:Y],[]),app(P,Y)),
1676 app(S,lam(E,merge(B3:drs([],[B3:[]:role(E,Y,Role,1)]),app(F,E)))))])))).
1677
1678semlex(Cat,_Sym,Index,Att1-[sem:'DIS'|Att2],Sem):-
1679 member(Cat,[(s:X/s:X)/n,
1680 (s:X\s:X)/n]), !,
1681 rel(for,Att1-Att2,Relation),
1682 Sem = lam(P,lam(S,lam(F,merge(merge(B1:drs([B1:Index:Y],[]),app(P,Y)),
1683 app(S,lam(E,merge(B2:drs([],[B2:[]:rel(E,Y,Relation,0)]),app(F,E)))))))).
1684
1685
1689
1690semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1691 member(Cat,[((s:X/s:X)/(s:ng\np))/np,
1692 ((s:X/s:X)/(s:pt\np))/np,
1693 ((s:X/s:X)/(s:b\np))/np,
1694 ((s:X/s:X)/(s:adj\np))/np]), !,
1695 closing(CC),
1696 Sem = lam(Q,lam(VP,lam(S,lam(F,app(S,lam(E,app(app(VP,lam(P,app(Q,lam(Y,merge(B:drs([],[B:Index:rel(E,Y,Sym,0)]),merge(app(P,Y),app(F,E))))))),CC))))))).
1697
1698semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1699 member(Cat,[((s:X/s:X)\np)/np]), !,
1700 Sem = lam(Q1,lam(Q2,lam(S,lam(F,app(S,lam(E,app(Q2,lam(Y,app(Q1,lam(Z,merge(B:drs([],[B:Index:rel(Y,Z,Sym,0)]),app(F,E)))))))))))).
1701
1702semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1703 member(Cat,[((s:X/s:X)\np)/s:dcl]), !,
1704 Sem = lam(S1,lam(Q2,lam(S,lam(F,app(S,lam(E,app(Q2,lam(Y,app(S1,lam(E,merge(B:drs([],[B:Index:rel(E,Y,Sym,0)]),app(F,E)))))))))))).
1705
1707semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
1708 Cat = ((s:wq/(s:q/pp))\(s:wq/(s:q/pp)))/np,
1709 Sem = lam(NP,lam(Q,lam(VP,lam(F,app(app(Q,VP),lam(E,merge(app(NP,lam(X,B:drs([],[B:Index:rel(E,X,Sym,0)]))),
1710 app(F,E)))))))).
1711
1712
1716
1717semlex(Cat,instead,Index,Att-[sem:'NOT'|Att],Sem):-
1718 member(Cat,[((s:X\np)\(s:X\np))/pp,
1719 ((s:X\np)/(s:X\np))/pp,
1720 ((s:adj\np)\(s:adj\np))/pp]), !,
1721 Sem = lam(PP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,B:drs([],[B:Index:not(merge(app(PP,E),app(F,E)))]))))))).
1722
1723
1727
1728semlex(Cat,Sym,Index,Att1-[sem:'EXG'|Att2],Sem):-
1729 att(Att1,pos,'VBG'),
1730 member(Cat,[((s:X\np)\(s:X\np))/pp,
1731 ((s:X\np)/(s:X\np))/pp,
1732 ((s:adj\np)\(s:adj\np))/pp]), !,
1733 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1734 Sem = lam(PP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Y],[B:Index:pred(Y,Sym,v,0),
1735 B:[]:role(Y,E,Role,1)]),
1736 merge(app(PP,Y),app(F,E))))))))).
1737
1738semlex(Cat,Sym,Index,Att1-[sem:'EXT'|Att2],Sem):-
1739 att(Att1,pos,'VBN'),
1740 member(Cat,[((s:X\np)\(s:X\np))/pp,
1741 ((s:X\np)/(s:X\np))/pp,
1742 ((s:adj\np)\(s:adj\np))/pp]), !,
1743 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1744 Sem = lam(PP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Y],[B:Index:pred(Y,Sym,v,0),
1745 B:[]:role(Y,E,Role,1)]),
1746 merge(app(PP,Y),app(F,E))))))))).
1747
1748
1752
1753semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1754 member(Cat,[((s:X\np)\(s:X\np))/pp,
1755 ((s:X\np)/(s:X\np))/pp,
1756 ((s:adj\np)\(s:adj\np))/pp]), !,
1757 Sem = lam(PP,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,0)]),merge(app(PP,E),app(F,E))))))))).
1758
1759
1765
1766semlex(Cat,Sym,Index,Att1-[sem:'EXG'|Att2],Sem):-
1767 att(Att1,pos,'VBG'),
1768 member(Cat,[(s:X/s:X)/pp,(s:X\s:X)/pp]), !,
1769 plosing(CC),
1770 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1771 Sem = lam(PP,lam(S,lam(F,merge(B:drs([B:[]:E,B:[]:P],[B:Index:pred(E,Sym,v,0),
1772 B:[]:role(E,P,Role,1),
1773 B:[]:prop(P,app(S,CC))]),
1774 merge(app(PP,E),app(F,E)))))).
1775
1776semlex(Cat,Sym,Index,Att1-[sem:'EXN'|Att2],Sem):-
1777 att(Att1,pos,'VBN'),
1778 member(Cat,[(s:X/s:X)/pp,(s:X\s:X)/pp]), !,
1779 plosing(CC),
1780 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
1781 Sem = lam(PP,lam(S,lam(F,merge(B:drs([B:[]:E,B:[]:P],[B:Index:pred(E,Sym,v,0),
1782 B:[]:role(E,P,Role,1),
1783 B:[]:prop(P,app(S,CC))]),
1784 merge(app(PP,E),app(F,E)))))).
1785
1786semlex(Cat,Sym,Index,Att1-[sem:'NOT'|Att2],Sem):-
1787 Sym = nowhere,
1788 member(Cat,[(s:X/s:X)/pp,
1789 (s:X\s:X)/pp]), !,
1790 role(['Location'],Att1-Att2,[Role]),
1791 Sem = lam(PP,lam(S,lam(F,app(S,lam(E,B:drs([],[B:Index:not(merge(B:drs([B:Index:Y],[B:[]:pred(Y,location,n,1),
1792 B:[]:role(E,Y,Role,1)]),
1793 merge(app(PP,Y),app(F,E))))])))))).
1794
1795semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1796 member(Cat,[(s:X/s:X)/pp,
1797 (s:X\s:X)/pp]), !,
1798 att(Att,sense,Sense),
1799 Sem = lam(PP,lam(S,lam(F,app(S,lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),
1800 merge(app(PP,E),
1801 app(F,E)))))))).
1802
1803
1807
1808semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1809 notSymbol(Sym),
1810 option('--semantics',drg),
1811 member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)),
1812 ((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)),
1813 ((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)),
1814 ((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))]), !,
1815 Sem = lam(AV,lam(VP,lam(NP,lam(F,B1:drs([],[B1:[]:not(app(app(app(AV,VP),NP),lam(E,merge(B2:drs([],[B2:Index:pred(E,Sym,s,1)]),app(F,E)))))]))))).
1816
1817
1818semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1819 notSymbol(Sym),
1820 member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)),
1821 ((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)),
1822 ((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)),
1823 ((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))]), !,
1824 Sem = lam(AV,lam(VP,lam(NP,lam(F,B:drs([],[B:Index:not(app(app(app(AV,VP),NP),lam(E,app(F,E))))]))))).
1825
1826
1830
1831semlex(Cat,Sym,Index,Att1-[sem:'QUA'|Att2],Sem):-
1832 att(Att1,pos,'CD'),
1833 member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)),
1834 ((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)),
1835 ((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)),
1836 ((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))]),
1837 string2digit(Sym,Digit), !,
1838 role(['Time'],Att1-Att2,[Role]),
1839 Sem = lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(B:drs([B:[]:Y],[B:Index:card(Y,Digit,eq),
1840 B:[]:role(E,Y,Role,1)]),
1841 app(F,E)))))))).
1842
1846
1847semlex(Cat,Sym,Index,Att1-[sem:'CON'|Att2],Sem):-
1848 member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)),
1849 ((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)),
1850 ((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)),
1851 ((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))]),
1852 att(Att1,pos,Pos),
1853 member(Pos,['NN','NNS','NNP','NNPS']), !,
1854 att(Att1,sense,Sense),
1855 role(['Time'],Att1-Att2,[Role]),
1856 Sem = lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(B:drs([B:[]:Y],[B:Index:pred(Y,Sym,n,Sense),
1857 B:[]:role(E,Y,Role,1)]),
1858 app(F,E)))))))).
1859
1860
1864
1865semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1866 member(Cat,[((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)),
1867 ((s:X\np)/(s:X\np))\((s:X\np)/(s:X\np)),
1868 ((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)),
1869 ((s:adj\np)\(s:adj\np))/((s:adj\np)\(s:adj\np)),
1870 ((s:adj\np)/(s:adj\np))/((s:adj\np)/(s:adj\np)),
1871 ((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))]), !,
1872 att(Att,sense,Sense),
1873 Sem = lam(AV,lam(VP,lam(NP,lam(F,app(app(app(AV,VP),NP),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),app(F,E)))))))).
1874
1876
1877semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1878 option('--semantics',drg),
1879 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))),
1880 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np))),
1881 (((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)))/(((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)))]),
1882 notSymbol(Sym), !,
1883 Sem = lam(M,lam(AV,lam(VP,lam(NP,lam(F,B1:drs([],[B1:Index:not(app(app(app(app(M,AV),VP),NP),lam(E,merge(B2:drs([],[B2:Index:pred(E,Sym,s,1)]),app(F,E)))))])))))).
1884
1885semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
1886 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))),
1887 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np))),
1888 (((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)))/(((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)))]),
1889 notSymbol(Sym), !,
1890 Sem = lam(M,lam(AV,lam(VP,lam(NP,lam(F,B:drs([],[B:Index:not(app(app(app(app(M,AV),VP),NP),lam(E,app(F,E))))])))))).
1891
1892semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1893 member(Cat,[(((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/((s:X\np)\(s:X\np))]), !,
1894 att(Att,sense,Sense),
1895 Sem = lam(AV1,lam(AV2,lam(VP,lam(NP,lam(F,app(app(app(AV2,app(AV1,VP)),NP),
1896 lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),app(F,E))))))))).
1897
1899semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
1900 member(Cat,[(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))/((s:X\np)\(s:X\np))),
1901 (((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np)))/(((s:X\np)/(s:X\np))/((s:X\np)/(s:X\np))),
1902 (((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))/(((s:X\np)\(s:X\np))\((s:X\np)\(s:X\np)))]), !,
1903 att(Att,sense,Sense),
1904 Sem = lam(M,lam(AV,lam(VP,lam(NP,lam(F,app(app(app(app(M,AV),VP),NP),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),app(F,E))))))))).
1905
1909
1910semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1911 option('--semantics',amr),
1912 member(Cat,[(s:X/s:X)/(s:_\np),(s:X\s:X)/(s:_\np)]), !,
1913 Sem = lam(VP,lam(S,lam(G,app(app(VP,lam(P,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,thing,n,12)]),app(P,Y)))),
1914 lam(F,merge(app(G,F),app(S,lam(E,B2:drs([],[B2:[]:rel(E,F,condition,0)]))))))))).
1915
1916semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
1917 member(Cat,[(s:X/s:X)/(s:_\np),(s:X\s:X)/(s:_\np)]), !,
1918 plosing(CC),
1919 Sem = lam(VP,lam(S,lam(F,B:drs([],[B:Index:imp(app(app(VP,lam(P,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,thing,n,12)]),app(P,Y)))),CC),
1920 app(S,F))])))).
1921
1922semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
1923 member(Cat,[(s:X/s:X)/(s:_\np),(s:X\s:X)/(s:_\np)]), !,
1924 Sem = lam(VP,lam(S,lam(G,app(app(VP,lam(P,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,thing,n,12)]),app(P,Y)))),
1925 lam(F,merge(app(G,F),app(S,lam(E,B2:drs([],[B2:[]:rel(E,F,Sym,0)]))))))))).
1926
1927
1931
1932semlex((s:wq/(s:q/pp))/(s:wq/(s:q/np)),Sym,Index,Att-[sem:'REL'|Att],Sem):-
1933 Sem = lam(Q,lam(W,lam(F,app(app(Q,V),F)))),
1934 V = lam(N,lam(E,app(N,lam(X,app(app(W,lam(Y,B:drs([],[B:Index:rel(Y,X,Sym,0)]))),E))))).
1935
1936semlex((s:wq/(s:q/np))/(s:wq/(s:q/np)),_Sym,_Index,Att-[sem:'NIL'|Att],Sem):-
1937 Sem = lam(X,X).
1938
1939
1943
1944semlex(Cat,_Lemma,Index,Att-[sem:'HAS'|Att],Sem):-
1945 member(Cat,[(np:nb/n)/(n/n),
1946 (np/n)/(n/n)]), !,
1947 Sem = lam(S,lam(P,lam(Q,merge(B:drs([B:[]:U],[]),
1948 merge(app(app(S,lam(X,merge(app(P,X),B1:drs([B1:[]:Y],[B1:Index:rel(X,Y,of,1)])))),U),
1949 app(Q,U)))))).
1950
1951
1952
1953semlex(Cat,_,Index,Att1-[sem:'HAS'|Att2],Sem):-
1954 member(Cat,[(np/n)\np,
1955 (np:nb/n)\np]), !,
1956 rel(of,Att1-Att2,Relation),
1957 Sem = lam(NP,lam(N,lam(P,app(NP,lam(Y,alfa(def,merge(B:drs([B:[]:X],[B:Index:rel(X,Y,Relation,1)]),
1958 app(N,X)),
1959 app(P,X))))))).
1960
1961semlex(Cat,_,Index,Att-[sem:'HAS'|Att],Sem):-
1962 member(Cat,[(np/(n/pp))\np,
1963 (np:nb/(n/pp))\np]), !,
1964 Sem = lam(NP,lam(RN,lam(P,app(NP,lam(Y,alfa(def,merge(B:drs([B:[]:X],[]),
1965 app(app(RN,lam(Z,B2:drs([],[B2:Index:rel(Z,Y,of,1)]))),X)),
1966 app(P,X))))))).
1967
1968
1969semlex(Cat,_,Index,Att-[sem:'HAS'|Att],Sem):-
1970 member(Cat,[((np:nb/n)/(n/n))\np,
1971 ((np/n)/(n/n))\np]), !,
1972 Sem = lam(N,lam(S,lam(P,lam(Q,merge(B1:drs([B1:[]:U],[]),
1973 merge(app(app(S,lam(X,merge(app(P,X),
1974 app(N,lam(Y,B2:drs([],[B2:Index:rel(X,Y,of,1)])))))),U),
1975 app(Q,U))))))).
1976
1977semlex((n/n)\n,_,Index,Att-[sem:'HAS'|Att],Sem):- !,
1978 Sem = lam(N1,lam(N2,lam(X,merge(B1:drs([B1:[]:Y],[]),
1979 merge(app(N1,Y),
1980 merge(app(N2,X),
1981 B2:drs([],[B2:Index:rel(X,Y,of,1)]))))))).
1982semlex(Cat,_,Index,Att-[sem:'HAS'|Att],Sem):-
1983 member(Cat,[((s:wq/(s:q/np))/n)\(s:wq/(s:q/np)),
1984 ((s:wq\(s:dcl/np))/n)\(s:wq\(s:dcl/np)),
1985 ((s:wq/(s:dcl\np))/n)\(s:wq/(s:dcl\np))]), !,
1986 XXX = lam(U,lam(E,app(U,lam(Y,alfa(def,merge(B:drs([B:[]:X],[B:Index:rel(X,Y,of,1)]),
1987 app(N,X)),
1988 app(app(V,lam(Q,app(Q,X))),E)))))),
1989 Sem = lam(NP,lam(N,lam(V,lam(P,app(app(NP,XXX),P))))).
1990
1992
1993
1997
1998semlex(np\np, himself,Index,Att-[sem:'EMP'|Att],Sem):-
1999 option('--semantics',amr), !,
2000 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,he,n,1)]),app(P,X)))))).
2001
2002semlex(np\np, himself,Index,Att-[sem:'EMP'|Att],Sem):- !,
2003 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,male,n,2)]),app(P,X)))))).
2004
2005semlex(np\np, herself,Index,Att-[sem:'EMP'|Att],Sem):-
2006 option('--semantics',amr), !,
2007 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,she,n,1)]),app(P,X)))))).
2008
2009semlex(np\np, herself,Index,Att-[sem:'EMP'|Att],Sem):- !,
2010 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,female,n,2)]),app(P,X)))))).
2011
2012semlex(np\np, itself,Index,Att-[sem:'EMP'|Att],Sem):-
2013 option('--semantics',amr), !,
2014 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,it,n,1)]),app(P,X)))))).
2015
2016semlex(np\np, itself,Index,Att-[sem:'EMP'|Att],Sem):- !,
2017 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,thing,n,12)]),app(P,X)))))).
2018
2019semlex(np\np, Sym,Index,Att-[sem:'EMP'|Att],Sem):-
2020 option('--semantics',amr),
2021 member(Sym,[myself,yourself,thyself,ourselves,themselves]), !,
2022 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,we,n,1)]),app(P,X)))))).
2023
2024semlex(np\np, Sym,Index,Att-[sem:'EMP'|Att],Sem):-
2025 member(Sym,[myself,yourself,thyself,ourselves,themselves]), !,
2026 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,person,n,1)]),app(P,X)))))).
2027
2028
2032
2033semlex(Cat,Sym,Index,Att-[sem:'AND'|Att],Sem):-
2034 option('--semantics',amr),
2035 member(Cat,[np\np, np/np]),
2036 member(Sym,[all,each]), !,
2037 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,2)]),app(P,X)))))).
2038
2039semlex(Cat,Sym,Index,Att-[sem:'EXC'|Att],Sem):-
2040 option('--semantics',amr),
2041 member(Cat,[np\np, np/np]),
2042 member(Sym,[only]), !,
2043 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,2)]),app(P,X)))))).
2044
2045
2046semlex(Cat,Sym,Index,Att-[sem:'AND'|Att],Sem):-
2047 member(Cat,[np\np, np/np]),
2048 member(Sym,[all,each]), !,
2049 Sem = lam(Q,lam(P,B1:drs([],[B1:[]:imp(merge(B2:drs([B2:Index:X],[]),app(Q,lam(Y,B3:drs([],[B3:[]:eq(X,Y)])))),app(P,X))]))).
2050
2051
2055
2056semlex(Cat,only,Index,Att-[sem:'EXC'|Att],Sem):-
2057 \+ option('--semantics',amr),
2058 member(Cat,[np\np, np/np]), !,
2059 Sem = lam(NP,lam(P,alfa(fac,merge(B1:drs([B1:Index:Z],[]),
2060 app(NP,lam(X,merge(app(P,X),
2061 B2:drs([],[B2:[]:eq(Z,X)]))))),
2062 B3:drs([],[B3:[]:imp(merge(B4:drs([B4:[]:Y],[]),app(P,Y)),
2063 B5:drs([],[B5:[]:eq(Z,Y)]))])))).
2064
2065
2069
2070semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
2071 member(Cat,[np\np, np/np]),
2072 notSymbol(Sym), !,
2073 Sem = lam(NP,lam(P,B:drs([],[B:Index:not(app(NP,P))]))).
2074
2075semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
2076 Cat = (((np\np)/(np\np))/((np\np)/(np\np))),
2077 notSymbol(Sym), !,
2078 Sem = lam(A1,lam(A2,lam(NP,lam(P,B:drs([],[B:Index:not(app(app(app(A1,A2),NP),P))]))))).
2079
2080
2084
2085semlex(Cat,Sym,Index,Att1-[sem:'DOW'|Att2],Sem):-
2086 att(Att1,pos,Pos),
2087 member(Pos,['NNP','NNPS']),
2088 att(Att1,namex,NE), neClassType(NE,tim,Type),
2089 member(Cat,[np\np, np/np]), !,
2090 rel(on,Att1-Att2,Relation),
2091 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:named(Y,Sym,tim,Type),B:[]:rel(X,Y,Relation,0)]),
2092 app(P,X)))))).
2093
2094semlex(Cat,Sym,Index,Att-[sem:Tag|Att],Sem):-
2095 att(Att,pos,Pos),
2096 member(Pos,['NNP','NNPS']),
2097 member(Cat,[np\np, np/np]), !,
2098 att(Att,namex,Ne), neClassType(Ne,Class,Type,Tag),
2099 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:named(X,Sym,Class,Type)]),
2100 app(P,X)))))).
2101
2102semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
2103 att(Att,pos,Pos),
2104 member(Pos,['IN','RB','JJ']),
2105 member(Cat,[np\np, np/np]), !,
2106 att(Att,sense,Sense),
2107 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,Sense)]),
2108 app(P,X)))))).
2109
2110semlex(Cat,Sym,Index,Att-[sem:'MOR'|Att],Sem):-
2111 att(Att,pos,Pos),
2112 member(Pos,['JJR','RBR']),
2113 member(Cat,[np\np, np/np]), !,
2114 att(Att,sense,Sense),
2115 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([],[B:Index:pred(X,Sym,r,Sense)]),
2116 app(P,X)))))).
2117
2118
2119semlex(Cat,Sym,Index,Att1-[sem:'SCO'|Att2],Sem):-
2120 member(Cat,[np\np, np/np]),
2121 att(Att1,pos,'CD'),
2122 string2score(Sym,Score), !,
2123 rel(with,Att1-Att2,Relation),
2124 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:named(Y,Score,sco,num),
2125 B:[]:rel(X,Y,Relation,0)]),
2126 app(P,X)))))).
2127
2128semlex(Cat,Sym,Index,Att1-[sem:'CON'|Att2],Sem):-
2129 member(Cat,[np\np, np/np]), !,
2130 att(Att1,sense,Sense),
2131 role(['Time'],Att1-Att2,[Role]),
2132 Sem = lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Y],[B:Index:pred(Y,Sym,n,Sense),
2133 B:[]:role(X,Y,Role,1)]),
2134 app(P,X)))))).
2135
2136
2140
2141semlex(Cat,Sym,Index,Att-[sem:'TOP'|Att],Sem):-
2142 member(Cat,[d/np]), !,
2143 Sem = lam(X,lam(Y,B:drs([],[B:Index:rel(Y,X,Sym,0)]))).
2144
2145
2156
2157
2161
2162semlex(Cat,Sym,Index,Att-[sem:Tag|Att],Sem):-
2163 att(Att,pos,Pos),
2164 member(Pos,['NNP','NNPS']),
2165 member(Cat,[(np\np)/(np\np),
2166 (np\np)\(np\np),
2167 (np/np)/(np/np)]), !,
2168 att(Att,namex,Ne), neClassType(Ne,Class,Type,Tag),
2169 Sem = lam(M,lam(Q,lam(P,app(app(M,Q),lam(X,merge(B:drs([],[B:Index:named(X,Sym,Class,Type)]),
2170 app(P,X))))))).
2171
2175
2176semlex(Cat,not,Index,Att-[sem:'NOT'|Att],Sem):-
2177 member(Cat,[(np\np)/(np\np),
2178 (np\np)\(np\np),
2179 (np/np)/(np/np)]), !,
2181 Sem = lam(M,lam(Q,lam(P,B:drs([],[B:Index:not(app(app(M,Q),lam(X,app(P,X))))])))).
2182
2183
2187
2188semlex(Cat,Sym,Index,Att-[sem:'CON'|Att],Sem):-
2189 member(Cat,[(np\np)/(np\np),
2190 (np\np)\(np\np),
2191 (np/np)/(np/np)]), !,
2192 att(Att,sense,Sense),
2193 Sem = lam(M,lam(Q,lam(P,app(app(M,Q),lam(X,merge(B:drs([],[B:Index:pred(X,Sym,n,Sense)]),
2194 app(P,X))))))).
2195
2196
2197
2201
2202semlex(Cat,_Sym,Index,Att-[sem:'TOP'|Att],Sem):-
2203 member(Cat,[(np/np)/(d/np)]), !,
2204 Sem = lam(R,lam(Q,lam(P,app(Q,lam(X,merge(B1:drs([],[B1:Index:imp(B2:drs([B2:[]:Y],[B2:[]:not(B3:drs([],[B3:[]:eq(X,Y)]))]),
2205 app(app(R,X),Y))]),
2206 app(P,X))))))).
2207
2208
2212
2213semlex(Cat,Sym,Index,Att1-[sem:Tag|Att2],Sem):-
2214 category(smod,Cat,Sym),
2215 att(Att1,pos,Pos),
2216 member(Pos,['NNP','NNPS']), !,
2217 att(Att1,namex,Ne), neClassType(Ne,Class,Type,Tag),
2218 role(['Time'],Att1-Att2,[Role]),
2219 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([B:[]:X],[B:Index:named(X,Sym,Class,Type),
2220 B:[]:role(E,X,Role,1)]),app(F,E)))))).
2221
2222semlex(Cat,Sym,Index,Att1-[sem:'DOW'|Att2],Sem):-
2223 category(smod,Cat,Sym),
2224 att(Att1,pos,Pos),
2225 member(Pos,['NN','NNS']), !,
2226 att(Att1,sense,Sense),
2227 role(['Time'],Att1-Att2,[Role]),
2228 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,Sense),
2229 B:[]:role(E,X,Role,1)]),app(F,E)))))).
2230
2231semlex(Cat,Sym,Index,Att1-[sem:'NOT'|Att2],Sem):-
2232 category(smod,Cat,Sym),
2233 member(Sym,[nowhere]), !,
2234 role(['Location'],Att1-Att2,[Role]),
2235 Sem = lam(S,lam(F,app(S,lam(E,B1:drs([],[B1:Index:not(merge(B2:drs([B2:Index:X],[B2:[]:pred(X,location,n,1),
2236 B2:[]:role(E,X,Role,1)]),app(F,E)))]))))).
2237
2238semlex(Cat,Sym,Index,Att1-[sem:'AND'|Att2],Sem):-
2239 category(smod,Cat,Sym),
2240 member(Sym,[everywhere,anywhere]), !,
2241 role(['Location'],Att1-Att2,[Role]),
2242 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([B:[]:X],[B:Index:pred(X,location,n,1),
2243 B:[]:role(E,X,Role,1)]),app(F,E)))))).
2244
2245semlex(Cat,Sym,Index,Att1-[sem:'DIS'|Att2],Sem):-
2246 category(smod,Cat,Sym),
2247 member(Sym,[somewhere]), !,
2248 role(['Location'],Att1-Att2,[Role]),
2249 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([B:[]:X],[B:Index:pred(X,location,n,1),
2250 B:[]:role(E,X,Role,1)]),app(F,E)))))).
2251
2252
2256
2257semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
2258 notSymbol(Sym),
2259 category(smod,Cat,Sym), !,
2260 Sem = lam(S,lam(F,B:drs([],[B:Index:not(app(S,F))]))).
2261
2262semlex(Cat,Sym,Index,Att-[sem:'POS'|Att],Sem):-
2263 member(Sym,[perhaps,maybe,possibly]),
2264 option('--modal',true),
2265 category(smod,Cat,Sym), !,
2266 Sem = lam(S,lam(F,B:drs([],[B:Index:pos(app(S,F))]))).
2267
2268semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
2269 category(smod,Cat,Sym), !,
2270 att(Att,sense,Sense),
2271 Sem = lam(S,lam(F,app(S,lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),app(F,E)))))).
2272
2273
2277
2278semlex(Cat,Sym,Index,Att-[sem:'NOT'|Att],Sem):-
2279 notSymbol(Sym),
2280 member(Cat,[(s:X/s:X)/(s:X/s:X),
2281 (s:X/s:X)\(s:X/s:X),
2282 (s:X\s:X)/(s:X\s:X),
2283 (s:X\s:X)\(s:X\s:X)]), !,
2284 Sem = lam(M,lam(S,lam(F,B:drs([],[B:Index:not(app(app(M,S),F))])))).
2285
2286semlex(Cat,Sym,Index,Att-[sem:'IST'|Att],Sem):-
2287 member(Cat,[(s:X/s:X)/(s:X/s:X),
2288 (s:X/s:X)\(s:X/s:X),
2289 (s:X\s:X)/(s:X\s:X),
2290 (s:X\s:X)\(s:X\s:X)]), !,
2291 att(Att,sense,Sense),
2292 Sem = lam(M,lam(Q,lam(P,app(app(M,Q),lam(E,merge(B:drs([],[B:Index:pred(E,Sym,r,Sense)]),
2293 app(P,E))))))).
2294
2295semlex(Cat,Sym,Index,Att-[sem:'REL'|Att],Sem):-
2296 member(Cat,[((s:X/s:X)/(s:X/s:X))/np,
2297 ((s:X/s:X)\(s:X/s:X))/np,
2298 ((s:X\s:X)/(s:X\s:X))/np,
2299 ((s:X\s:X)\(s:X\s:X))/np]), !,
2300 Sem = lam(Q,lam(M,lam(S,lam(F,app(app(M,S),lam(E,merge(app(Q,lam(Y,B:drs([],[B:Index:rel(E,Y,Sym,0)]))),app(F,E)))))))).
2301
2302semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
2303 member(Cat,[((s:X/s:X)/(s:X/s:X))/s:dcl,
2304 ((s:X/s:X)\(s:X/s:X))/s:dcl,
2305 ((s:X\s:X)/(s:X\s:X))/s:dcl,
2306 ((s:X\s:X)\(s:X\s:X))/s:dcl]), !,
2307 plosing(CC),
2308 Sem = lam(S1,lam(M,lam(S2,lam(F,merge(B1:drs([B1:[]:E,B1:[]:Z,B1:[]:Y],
2309 [B1:[]:prop(E,B2:drs([],[B2:Index:rel(Z,Y,Sym,0)])),
2310 B1:[]:prop(Z,app(S1,CC)),
2311 B1:[]:prop(Y,app(app(M,S2),CC))]),
2312 app(F,E)))))).
2313
2314
2318
2319semlex(Cat,Sym,Index,Att-[sem:'UOM'|Att],Sem):-
2320 att(Att,pos,'$'), !,
2321 member(Cat,[((s:X\np)\(s:X\np))/n,((s:X\np)/(s:X\np))/n]), !,
2322 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],
2323 [B1:[]:pred(Y,Sym,n,1)]),
2324 app(N,Y)),
2325 merge(B2:drs([],[B2:Index:rel(E,Y,rel,0)]),
2326 app(F,E))))))))).
2327
2328semlex(Cat,Sym,Index,Att1-[sem:'PRX'|Att2],Sem):-
2329 option('--semantics',amr),
2330 member(Cat,[((s:X\np)\(s:X\np))/n,
2331 ((s:X\np)/(s:X\np))/n]),
2332 member(Sym,[this,these]), !,
2333 role(['Time'],Att1-Att2,[Role]),
2334 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,this,r,2)]),
2335 app(N,Y)),
2336 merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),
2337 app(F,E))))))))).
2338
2339semlex(Cat,Sym,Index,Att1-[sem:'DST'|Att2],Sem):-
2340 option('--semantics',amr),
2341 member(Cat,[((s:X\np)\(s:X\np))/n,
2342 ((s:X\np)/(s:X\np))/n]),
2343 member(Sym,[that,those]), !,
2344 role(['Time'],Att1-Att2,Role),
2345 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],[B1:Index:pred(Y,that,r,2)]),
2346 app(N,Y)),
2347 merge(B2:drs([],[B2:[]:role(E,Y,Role,1)]),
2348 app(F,E))))))))).
2349
2350semlex(Cat,Sym,Index,Att1-[sem:'PRX'|Att2],Sem):-
2351 member(Cat,[((s:X\np)\(s:X\np))/n,
2352 ((s:X\np)/(s:X\np))/n]),
2353 member(Sym,[this,these]), !,
2354 role(['Time'],Att1-Att2,[Role]),
2355 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],[]),
2356 app(N,Y)),
2357 merge(B2:drs([],[B2:Index:role(E,Y,Role,1)]),
2358 app(F,E))))))))).
2359
2360semlex(Cat,Sym,Index,Att1-[sem:'DST'|Att2],Sem):-
2361 member(Cat,[((s:X\np)\(s:X\np))/n,
2362 ((s:X\np)/(s:X\np))/n]),
2363 member(Sym,[that,those]), !,
2364 role(['Time'],Att1-Att2,[Role]),
2365 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],[]),
2366 app(N,Y)),
2367 merge(B2:drs([],[B2:Index:role(E,Y,Role,1)]),
2368 app(F,E))))))))).
2369
2370semlex(Cat,Sym,Index,Att1-[sem:'DEF'|Att2],Sem):-
2371 member(Cat,[((s:X\np)\(s:X\np))/n,
2372 ((s:X\np)/(s:X\np))/n]),
2373 member(Sym,[the,that,those]), !,
2374 role(['Time'],Att1-Att2,[Role]),
2375 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,alfa(def,merge(B1:drs([B1:[]:Y],[]),
2376 app(N,Y)),
2377 merge(B2:drs([],[B2:Index:role(E,Y,Role,1)]),
2378 app(F,E))))))))).
2379
2380semlex(Cat,Sym,Index,Att1-[sem:'AND'|Att2],Sem):-
2381 member(Cat,[((s:X\np)\(s:X\np))/n,
2382 ((s:X\np)/(s:X\np))/n]),
2383 member(Sym,[every,each,all,any,either]), !,
2384 role(['Time'],Att1-Att2,[Role]),
2385 Sem = lam(N,lam(V,lam(Q,lam(F,B1:drs([],[B1:[]:imp(merge(B2:drs([B2:Index:Y],[]),app(N,Y)),
2386 app(app(V,Q),lam(E,merge(B3:drs([],[B3:[]:role(E,Y,Role,1)]),
2387 app(F,E)))))]))))).
2388
2389semlex(Cat,Sym,Index,Att1-[sem:'DIS'|Att2],Sem):-
2390 member(Cat,[((s:X\np)\(s:X\np))/n,
2391 ((s:X\np)/(s:X\np))/n]),
2392 member(Sym,[a,an,some]), !,
2393 role(['Time'],Att1-Att2,[Role]),
2394 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:Index:Y],[B:[]:role(E,Y,Role,1)]),
2395 merge(app(N,Y),app(F,E))))))))).
2396
2397semlex(Cat,no,Index,Att1-[sem:'NOT'|Att2],Sem):-
2398 member(Cat,[((s:X\np)\(s:X\np))/n,
2399 ((s:X\np)/(s:X\np))/n]), !,
2400 rel(for,Att1-Att2,Relation),
2401 Sem = lam(N,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,B1:drs([],[B1:Index:not(merge(B2:drs([B2:Index:Y],[B2:[]:rel(E,Y,Relation,0)]),
2402 merge(app(N,Y),app(F,E))))]))))))).
2403
2404semlex(Cat,Sym,Index,Att1-[sem:'MOY'|Att2],Sem):-
2405 att(Att1,pos,'NNP'),
2406 att(Att1,namex,NE), neClass(NE,tim),
2407 member(Cat,[((s:X\np)\(s:X\np))/n, ((s:X\np)/(s:X\np))/n]),
2408 month(Sym,MID), !,
2409 role(['Time'],Att1-Att2,[Role]),
2410 Sem = lam(P,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B1:drs([B1:[]:Y],[B1:Index:timex(Y,date([]:'+',[]:'XXXX',Index:MID,[]:'XX')),
2411 B1:[]:role(E,Y,Role,1)]),
2412 merge(app(P,Y),app(F,E))))))))).
2413
2414semlex(Cat,Sym,Index,Att1-[sem:'REL'|Att2],Sem):-
2415 member(Cat,[((s:X\np)\(s:X\np))/n,
2416 ((s:X\np)/(s:X\np))/n]), !,
2417 att(Att1,sense,Sense),
2418 role(['Time'],Att1-Att2,[Role]),
2419 Sem = lam(P,lam(V,lam(Q,lam(F,app(app(V,Q),lam(E,merge(B:drs([B:[]:Y],[B:Index:pred(Y,Sym,n,Sense),
2420 B:[]:role(E,Y,Role,1)]),
2421 merge(app(P,Y),app(F,E))))))))).
2422
2423
2427
2428semlex(Cat,when,Index,Att-[sem:'SUB'|Att],Sem):-
2429 option('--tense',true),
2430 option('--theory',drt),
2431 member(Cat,[(s:X/s:X)/s:dcl,
2432 (s:wq/s:wq)/s:dcl]), !,
2433 Sem = lam(S1,lam(S2,lam(F,merge(merge(B1:drs([B1:[]:T],[B1:[]:pred(T,time,n,1)]),
2434 app(S1,lam(E,B2:drs([],[B2:Index:rel(E,T,temp_included,1)])))),
2435 app(S2,lam(E,merge(B3:drs([],[B3:[]:rel(E,T,temp_included,1)]),app(F,E)))))))).
2436
2437semlex(Cat,when,Index,Att-[sem:'SUB'|Att],Sem):-
2438 option('--tense',true),
2439 option('--theory',drt),
2440 member(Cat,[(s:X\s:X)/s:dcl,
2441 (s:wq\s:wq)/s:dcl]), !,
2442 Sem = lam(S2,lam(S1,lam(F,merge(merge(B1:drs([B1:[]:T],[[]:pred(T,time,n,1)]),
2443 app(S1,lam(E,B2:drs([],[B2:Index:rel(E,T,temp_included,1)])))),
2444 app(S2,lam(E,merge(B3:drs([],[B3:[]:rel(E,T,temp_included,1)]),app(F,E)))))))).
2445
2446
2450
2451semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
2452 option('--semantics',amr),
2453 member(Cat,[(s:X/s:X)/s:dcl,(s:wq/s:wq)/s:dcl,
2454 (s:X\s:X)/s:dcl,(s:wq\s:wq)/s:dcl]), !,
2455 Sem = lam(S1,lam(S2,lam(F,app(S2,lam(Y,merge(app(F,Y),app(S1,lam(E,B2:drs([],[B2:Index:rel(Y,E,condition,1)]))))))))).
2456
2457semlex(Cat,if,Index,Att-[sem:'IMP'|Att],Sem):-
2458 member(Cat,[(s:X/s:X)/s:dcl,(s:wq/s:wq)/s:dcl,
2459 (s:X\s:X)/s:dcl,(s:wq\s:wq)/s:dcl]), !,
2460 plosing(CC),
2461 Sem = lam(S1,lam(S2,lam(F,B:drs([],[B:Index:imp(app(S1,CC),app(S2,F))])))).
2462
2463
2467
2468semlex((s:X\s:X)/s:dcl,and,_Index,Att-[sem:'IMP'|Att],Sem):-
2469 option('--theory',drt), !,
2470 plosing(CC),
2471 Sem = lam(S2,lam(S1,lam(F,merge(app(S1,CC),app(S2,F))))).
2472
2473
2477
2478semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
2479 option('--theory',sdrt),
2480 Cat = (s:X/s:X)/s:_, !,
2481 plosing(CC),
2483 Sem = lam(S2,lam(S1,lam(F,sdrs([sub(lab(K1,B1),lab(K2,B2))],[Index:rel(K1,K2,Sym)])))),
2484 B1 = app(S1,CC),
2485 B2 = app(S2,F).
2486
2487semlex(Cat,Sym,Index,Att-[sem:'COO'|Att],Sem):-
2488 option('--theory',sdrt),
2489 Cat = (s:X\s:X)/s:_, !,
2490 plosing(CC),
2491 Sem = lam(S2,lam(S1,lam(F,sdrs([lab(K1,B1),lab(K2,B2)],[Index:rel(K1,K2,Sym)])))),
2492 B1 = app(S1,CC),
2493 B2 = app(S2,F).
2494
2495semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
2496 member(Cat,[(s:X/s:X)/s:dcl,
2497 (s:X/s:X)/s:inv,
2498 (s:wq/s:wq)/s:dcl]), !,
2499 plosing(CC),
2500 Sem = lam(S1,lam(S2,lam(F,merge(B1:drs([B1:[]:E,B1:[]:Z,B1:[]:Y],
2501 [B1:[]:prop(E,B2:drs([],[B2:Index:rel(Z,Y,Sym,0)])),
2502 B1:[]:prop(Z,app(S1,CC)),
2503 B1:[]:prop(Y,app(S2,CC))]),
2504 app(F,E))))).
2505
2506semlex(Cat,Sym,Index,Att-[sem:'SUB'|Att],Sem):-
2507 member(Cat,[(s:X\s:X)/s:dcl,
2508 (s:wq\s:wq)/s:dcl]), !,
2509 plosing(CC),
2510 Sem = lam(S2,lam(S1,lam(F,merge(B1:drs([B1:[]:E,B1:[]:Z,B1:[]:Y],
2511 [B1:[]:prop(E,B2:drs([],[B2:Index:rel(Z,Y,Sym,0)])),
2512 B1:[]:prop(Z,app(S1,CC)),
2513 B1:[]:prop(Y,app(S2,CC))]),
2514 app(F,E))))).
2515
2516
2520
2521semlex(Cat,Sym,_,Att1-[sem:'PRO'|Att2],Sem):-
2522 Cat = (np\np)/((s:to\np)/np), !,
2523 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
2524 NP = lam(R,merge(B:drs([B:[]:Y],[B:[]:pred(Y,thing,n,12)]),app(R,Y))),
2525 Sem = lam(TV,lam(Q,lam(P,app(Q,lam(X,merge(app(app(app(TV,NP),
2526 lam(P,app(P,X))),
2527 lam(Z,B2:drs([],[B2:[]:role(X,Z,Role,1)]))),
2528 app(P,X))))))).
2529
2530semlex(Cat,Sym,_,Att1-[sem:'PRO'|Att2],Sem):-
2531 Cat = (np\np)/(s:to\np), !,
2532 roles(Sym,(s:dcl\np)/s:_,[Role,_],Att1-Att2),
2533 Sem = lam(VP,lam(Q,lam(P,app(Q,lam(X,merge(app(app(VP,lam(P,app(P,X))),
2534 lam(Y,B:drs([],[B:[]:role(X,Y,Role,1)]))),
2535 app(P,X))))))).
2536
2537semlex(Cat,_Sym,_,Att-[sem:'PRO'|Att],Sem):-
2538 member(Cat,[(np\np)/(s:_\np),(np\np)/(s:_/np)]),
2539 option('--elimeq',true), !,
2540 closing(CC),
2541 Sem = lam(VP,lam(Q,lam(P,app(Q,lam(X,merge(app(app(VP,
2542 lam(P,app(P,X))),
2543 CC),
2544 app(P,X))))))).
2545
2546semlex(Cat,_Sym,Index,Att-[sem:'PRO'|Att],Sem):-
2547 member(Cat,[(np\np)/(s:_\np), (np\np)/(s:_/np)]),
2548 option('--elimeq',false), !,
2549 closing(CC),
2550 Sem = lam(VP,lam(Q,lam(P,app(Q,lam(X,merge(app(app(VP,
2551 lam(P,merge(B:drs([B:Index:Y],[B:[]:eq(X,Y)]),app(P,Y)))),
2552 CC),
2553 app(P,X))))))).
2554
2555
2556
2560
2561semlex(Cat,_Sym,Index,Att-[sem:'PRO'|Att],Sem):-
2562 Cat=((np\np)/(s:dcl\np))\(np/np), !,
2563 closing(CC),
2564 Sem = lam(M,lam(VP,lam(NP,lam(P,app(NP,lam(Y,merge(B:drs([B:[]:Z],[B:Index:eq(Y,Z)]),
2565 merge(app(P,Y),
2566 app(app(VP,app(M,lam(Q,app(Q,Z)))),CC))))))))).
2567
2568
2572
2573semlex(((np\np)/(s:dcl\np))/n,_,Index,Att1-[sem:'HAS'|Att2],Sem):- !,
2574 closing(CC),
2575 rel(of,Att1-Att2,Relation),
2576 Sem = lam(N,lam(VP,lam(Q,lam(P,app(Q,lam(X,merge(app(app(VP,lam(P,merge(B:drs([B:[]:Y],[B:Index:rel(Y,X,Relation,1)]),
2577 merge(app(N,Y),app(P,Y))))),CC),
2578 app(P,X)))))))).
2579
2580
2584
2585semlex((np\np)/s:_,Sym,Index,Att-[sem:'PRO'|Att],Sem):- !,
2586 plosing(CC),
2587 Sem = lam(S,lam(Q,lam(P,app(Q,lam(X,merge(B:drs([B:[]:Z],[B:Index:rel(X,Z,Sym,0),
2588 B:[]:prop(Z,app(S,CC))]),
2589 app(P,X))))))).
2590
2591
2592semlex(Cat,Sym,Index,Att-[sem:'PRO'|Att],Sem):-
2593 member(Cat,[((np\np)\(np\np))/s:dcl]), !,
2594 Sem = lam(S,lam(M,lam(NP,lam(Q,app(app(M,NP),
2595 lam(X,merge(app(S,lam(E,B:drs([],[B:Index:rel(E,X,Sym,0)]))),
2596 app(Q,X)))))))).
2597
2598
2602
2609
2610semlex(Cat,Sym,Index,Att-[sem:'ITJ'|Att],Sem):-
2611 category(s,Cat,_), !,
2612 att(Att,sense,Sense),
2613 Sem = lam(E,merge(B:drs([B:[]:X],[B:Index:pred(X,Sym,n,Sense)]),app(E,X))).
2614
2615
2619
2620notSymbol(not).
2621notSymbol(nor)