001 package ch.uzh.ifi.attempto.acewiki.core.grammar;
002
003 import java.util.ArrayList;
004 import java.util.HashMap;
005
006 import ch.uzh.ifi.attempto.chartparser.Nonterminal;
007 import ch.uzh.ifi.attempto.chartparser.Rule;
008 import ch.uzh.ifi.attempto.chartparser.StringRef;
009 import ch.uzh.ifi.attempto.chartparser.Terminal;
010 import ch.uzh.ifi.attempto.chartparser.Category;
011
012 /**
013 * This grammar class is automatically generated by the SWI Prolog program "generate_java.pl".
014 */
015 @SuppressWarnings("all")
016 public class StandardGrammar extends ch.uzh.ifi.attempto.chartparser.Grammar {
017
018 /**
019 * Creates a new grammar object.
020 */
021 public StandardGrammar() {
022 super("text");
023 ArrayList<Category> l = new ArrayList<Category>();
024 Category c;
025 HashMap<Integer, StringRef> featureHash = new HashMap<Integer, StringRef>();
026
027 l.clear();
028 featureHash.clear();
029 c = new Nonterminal("text");
030 l.add(c);
031 addRule(new Rule(l, false));
032 l.clear();
033 featureHash.clear();
034 c = new Nonterminal("text");
035 l.add(c);
036 c = new Nonterminal("textelement");
037 l.add(c);
038 c = new Nonterminal("text");
039 l.add(c);
040 addRule(new Rule(l, false));
041 l.clear();
042 featureHash.clear();
043 c = new Nonterminal("textelement");
044 l.add(c);
045 c = new Nonterminal("declaration");
046 l.add(c);
047 addRule(new Rule(l, false));
048 l.clear();
049 featureHash.clear();
050 c = new Nonterminal("textelement");
051 l.add(c);
052 c = new Nonterminal("question");
053 l.add(c);
054 addRule(new Rule(l, false));
055 l.clear();
056 featureHash.clear();
057 c = new Nonterminal("declaration");
058 l.add(c);
059 c = new Nonterminal("sentence");
060 l.add(c);
061 c = new Terminal(".");
062 l.add(c);
063 addRule(new Rule(l, false));
064 l.clear();
065 featureHash.clear();
066 c = new Nonterminal("question");
067 l.add(c);
068 c = new Nonterminal("simple_sentence_2");
069 c.setFeature("whin", new StringRef("right"));
070 c.setFeature("whout", new StringRef("left"));
071 l.add(c);
072 c = new Terminal("?");
073 l.add(c);
074 addRule(new Rule(l, false));
075 l.clear();
076 featureHash.clear();
077 c = new Nonterminal("sentence");
078 l.add(c);
079 c = new Nonterminal("sentence_coord_1");
080 l.add(c);
081 addRule(new Rule(l, true));
082 l.clear();
083 featureHash.clear();
084 c = new Nonterminal("sentence");
085 l.add(c);
086 c = new Terminal("for every");
087 l.add(c);
088 c = new Nonterminal("noun_constr");
089 l.add(c);
090 c = new Nonterminal("sentence_coord_1");
091 l.add(c);
092 addRule(new Rule(l, false));
093 l.clear();
094 featureHash.clear();
095 c = new Nonterminal("sentence");
096 l.add(c);
097 c = new Terminal("if");
098 l.add(c);
099 c = new Nonterminal("sentence_coord_1");
100 l.add(c);
101 c = new Terminal("then");
102 l.add(c);
103 c = new Nonterminal("sentence_coord_1");
104 l.add(c);
105 addRule(new Rule(l, false));
106 l.clear();
107 featureHash.clear();
108 c = new Nonterminal("sentence_coord_1");
109 l.add(c);
110 c = new Nonterminal("sentence_coord_2");
111 l.add(c);
112 addRule(new Rule(l, true));
113 l.clear();
114 featureHash.clear();
115 c = new Nonterminal("sentence_coord_1");
116 l.add(c);
117 c = new Nonterminal("sentence_coord_2");
118 l.add(c);
119 c = new Terminal("or");
120 l.add(c);
121 c = new Nonterminal("sentence_coord_1");
122 l.add(c);
123 addRule(new Rule(l, false));
124 l.clear();
125 featureHash.clear();
126 c = new Nonterminal("sentence_coord_2");
127 l.add(c);
128 c = new Nonterminal("simple_sentence");
129 l.add(c);
130 addRule(new Rule(l, true));
131 l.clear();
132 featureHash.clear();
133 c = new Nonterminal("sentence_coord_2");
134 l.add(c);
135 c = new Nonterminal("simple_sentence");
136 l.add(c);
137 c = new Terminal("and");
138 l.add(c);
139 c = new Nonterminal("sentence_coord_2");
140 l.add(c);
141 addRule(new Rule(l, true));
142 l.clear();
143 featureHash.clear();
144 c = new Nonterminal("simple_sentence");
145 l.add(c);
146 c = new Terminal("it is false that");
147 l.add(c);
148 c = new Nonterminal("simple_sentence_2");
149 c.setFeature("whin", new StringRef("minus"));
150 c.setFeature("whout", new StringRef("minus"));
151 l.add(c);
152 addRule(new Rule(l, false));
153 l.clear();
154 featureHash.clear();
155 c = new Nonterminal("simple_sentence");
156 l.add(c);
157 c = new Terminal("there is");
158 l.add(c);
159 c = new Nonterminal("nounphrase");
160 c.setFeature("exist", new StringRef("plus"));
161 c.setFeature("def", new StringRef("minus"));
162 c.setFeature("pl", new StringRef("minus"));
163 c.setFeature("verb", new StringRef("be"));
164 c.setFeature("whin", new StringRef("minus"));
165 c.setFeature("whout", new StringRef("minus"));
166 l.add(c);
167 addRule(new Rule(l, true));
168 l.clear();
169 featureHash.clear();
170 c = new Nonterminal("simple_sentence");
171 l.add(c);
172 c = new Terminal("there is");
173 l.add(c);
174 c = new Nonterminal("nounphrase");
175 c.setFeature("exist", new StringRef("plus"));
176 c.setFeature("def", new StringRef("minus"));
177 c.setFeature("pl", new StringRef("minus"));
178 c.setFeature("verb", new StringRef("be"));
179 c.setFeature("whin", new StringRef("minus"));
180 c.setFeature("whout", new StringRef("minus"));
181 l.add(c);
182 c = new Terminal("such that");
183 l.add(c);
184 c = new Nonterminal("simple_sentence");
185 l.add(c);
186 addRule(new Rule(l, true));
187 l.clear();
188 featureHash.clear();
189 c = new Nonterminal("simple_sentence");
190 l.add(c);
191 c = new Terminal("there are");
192 l.add(c);
193 c = new Nonterminal("nounphrase");
194 c.setFeature("exist", new StringRef("plus"));
195 c.setFeature("def", new StringRef("minus"));
196 c.setFeature("pl", new StringRef("plus"));
197 c.setFeature("whin", new StringRef("minus"));
198 c.setFeature("whout", new StringRef("minus"));
199 l.add(c);
200 addRule(new Rule(l, true));
201 l.clear();
202 featureHash.clear();
203 c = new Nonterminal("simple_sentence");
204 l.add(c);
205 c = new Nonterminal("simple_sentence_2");
206 c.setFeature("whin", new StringRef("minus"));
207 c.setFeature("whout", new StringRef("minus"));
208 l.add(c);
209 addRule(new Rule(l, true));
210 l.clear();
211 featureHash.clear();
212 c = new Nonterminal("simple_sentence_2");
213 setFeature(c, "whin", 0, featureHash);
214 setFeature(c, "whout", 1, featureHash);
215 l.add(c);
216 c = new Nonterminal("nounphrase");
217 c.setFeature("exist", new StringRef("plus"));
218 setFeature(c, "pl", 2, featureHash);
219 setFeature(c, "whin", 0, featureHash);
220 setFeature(c, "whout", 3, featureHash);
221 l.add(c);
222 c = new Nonterminal("verbphrase_coord_1");
223 setFeature(c, "pl", 2, featureHash);
224 setFeature(c, "whin", 3, featureHash);
225 setFeature(c, "whout", 1, featureHash);
226 l.add(c);
227 addRule(new Rule(l, true));
228 l.clear();
229 featureHash.clear();
230 c = new Nonterminal("simple_sentence_2");
231 c.setFeature("whin", new StringRef("minus"));
232 c.setFeature("whout", new StringRef("minus"));
233 l.add(c);
234 c = new Nonterminal("nounphrase");
235 c.setFeature("exist", new StringRef("minus"));
236 l.add(c);
237 c = new Nonterminal("verbphrase_coord_1");
238 c.setFeature("pl", new StringRef("minus"));
239 c.setFeature("whin", new StringRef("minus"));
240 c.setFeature("whout", new StringRef("minus"));
241 l.add(c);
242 addRule(new Rule(l, false));
243 l.clear();
244 featureHash.clear();
245 c = new Nonterminal("verbphrase_coord_1");
246 setFeature(c, "pl", 0, featureHash);
247 setFeature(c, "whin", 1, featureHash);
248 setFeature(c, "whout", 2, featureHash);
249 l.add(c);
250 c = new Nonterminal("verbphrase_coord_2");
251 setFeature(c, "pl", 0, featureHash);
252 setFeature(c, "whin", 1, featureHash);
253 setFeature(c, "whout", 2, featureHash);
254 l.add(c);
255 addRule(new Rule(l, true));
256 l.clear();
257 featureHash.clear();
258 c = new Nonterminal("verbphrase_coord_1");
259 setFeature(c, "pl", 0, featureHash);
260 setFeature(c, "whin", 1, featureHash);
261 setFeature(c, "whout", 1, featureHash);
262 l.add(c);
263 c = new Nonterminal("verbphrase_coord_2");
264 setFeature(c, "pl", 0, featureHash);
265 setFeature(c, "whin", 1, featureHash);
266 setFeature(c, "whout", 1, featureHash);
267 l.add(c);
268 c = new Terminal("or");
269 l.add(c);
270 c = new Nonterminal("verbphrase_coord_1");
271 setFeature(c, "pl", 0, featureHash);
272 setFeature(c, "whin", 1, featureHash);
273 setFeature(c, "whout", 1, featureHash);
274 l.add(c);
275 addRule(new Rule(l, false));
276 l.clear();
277 featureHash.clear();
278 c = new Nonterminal("verbphrase_coord_2");
279 setFeature(c, "pl", 0, featureHash);
280 setFeature(c, "whin", 1, featureHash);
281 setFeature(c, "whout", 2, featureHash);
282 l.add(c);
283 c = new Nonterminal("verbphrase_cut");
284 setFeature(c, "pl", 0, featureHash);
285 setFeature(c, "whin", 1, featureHash);
286 setFeature(c, "whout", 2, featureHash);
287 l.add(c);
288 addRule(new Rule(l, true));
289 l.clear();
290 featureHash.clear();
291 c = new Nonterminal("verbphrase_coord_2");
292 setFeature(c, "pl", 0, featureHash);
293 setFeature(c, "whin", 1, featureHash);
294 setFeature(c, "whout", 1, featureHash);
295 l.add(c);
296 c = new Nonterminal("verbphrase_cut");
297 setFeature(c, "pl", 0, featureHash);
298 setFeature(c, "whin", 1, featureHash);
299 setFeature(c, "whout", 1, featureHash);
300 l.add(c);
301 c = new Terminal("and");
302 l.add(c);
303 c = new Nonterminal("verbphrase_coord_2");
304 setFeature(c, "pl", 0, featureHash);
305 setFeature(c, "whin", 1, featureHash);
306 setFeature(c, "whout", 1, featureHash);
307 l.add(c);
308 addRule(new Rule(l, true));
309 l.clear();
310 featureHash.clear();
311 c = new Nonterminal("verbphrase_cut");
312 setFeature(c, "that", 0, featureHash);
313 setFeature(c, "pl", 1, featureHash);
314 setFeature(c, "whin", 2, featureHash);
315 setFeature(c, "whout", 3, featureHash);
316 l.add(c);
317 c = new Nonterminal("verbphrase");
318 c.setFeature("neg", new StringRef("minus"));
319 setFeature(c, "that", 0, featureHash);
320 setFeature(c, "pl", 1, featureHash);
321 setFeature(c, "whin", 2, featureHash);
322 setFeature(c, "whout", 3, featureHash);
323 l.add(c);
324 addRule(new Rule(l, true));
325 l.clear();
326 featureHash.clear();
327 c = new Nonterminal("verbphrase_cut");
328 setFeature(c, "that", 0, featureHash);
329 setFeature(c, "pl", 1, featureHash);
330 setFeature(c, "whin", 2, featureHash);
331 setFeature(c, "whout", 3, featureHash);
332 l.add(c);
333 c = new Nonterminal("verbphrase");
334 c.setFeature("neg", new StringRef("plus"));
335 setFeature(c, "that", 0, featureHash);
336 setFeature(c, "pl", 1, featureHash);
337 setFeature(c, "whin", 2, featureHash);
338 setFeature(c, "whout", 3, featureHash);
339 l.add(c);
340 addRule(new Rule(l, false));
341 l.clear();
342 featureHash.clear();
343 c = new Nonterminal("verbphrase");
344 setFeature(c, "neg", 0, featureHash);
345 setFeature(c, "that", 1, featureHash);
346 setFeature(c, "pl", 2, featureHash);
347 setFeature(c, "whin", 3, featureHash);
348 setFeature(c, "whout", 4, featureHash);
349 l.add(c);
350 c = new Nonterminal("verb");
351 c.setFeature("verb", new StringRef("full"));
352 setFeature(c, "pl", 2, featureHash);
353 setFeature(c, "neg", 0, featureHash);
354 l.add(c);
355 c = new Nonterminal("nounphrase_cut");
356 setFeature(c, "that", 1, featureHash);
357 c.setFeature("verb", new StringRef("full"));
358 setFeature(c, "whin", 3, featureHash);
359 setFeature(c, "whout", 4, featureHash);
360 l.add(c);
361 addRule(new Rule(l, true));
362 l.clear();
363 featureHash.clear();
364 c = new Nonterminal("verbphrase");
365 setFeature(c, "neg", 0, featureHash);
366 setFeature(c, "that", 1, featureHash);
367 setFeature(c, "pl", 2, featureHash);
368 setFeature(c, "whin", 3, featureHash);
369 setFeature(c, "whout", 4, featureHash);
370 l.add(c);
371 c = new Nonterminal("verb");
372 c.setFeature("verb", new StringRef("be"));
373 setFeature(c, "pl", 2, featureHash);
374 setFeature(c, "neg", 0, featureHash);
375 l.add(c);
376 c = new Nonterminal("nounphrase_cut");
377 c.setFeature("of", new StringRef("plus"));
378 setFeature(c, "that", 1, featureHash);
379 c.setFeature("pl", new StringRef("minus"));
380 c.setFeature("verb", new StringRef("be"));
381 setFeature(c, "whin", 3, featureHash);
382 setFeature(c, "whout", 4, featureHash);
383 l.add(c);
384 addRule(new Rule(l, true));
385 l.clear();
386 featureHash.clear();
387 c = new Nonterminal("verbphrase");
388 setFeature(c, "neg", 0, featureHash);
389 setFeature(c, "that", 1, featureHash);
390 c.setFeature("pl", new StringRef("minus"));
391 setFeature(c, "whin", 2, featureHash);
392 setFeature(c, "whout", 3, featureHash);
393 l.add(c);
394 c = new Nonterminal("verb");
395 c.setFeature("verb", new StringRef("be"));
396 c.setFeature("pl", new StringRef("minus"));
397 setFeature(c, "neg", 0, featureHash);
398 l.add(c);
399 c = new Nonterminal("nounphrase_cut");
400 c.setFeature("of", new StringRef("minus"));
401 setFeature(c, "that", 1, featureHash);
402 c.setFeature("pl", new StringRef("minus"));
403 c.setFeature("verb", new StringRef("be"));
404 setFeature(c, "whin", 2, featureHash);
405 setFeature(c, "whout", 3, featureHash);
406 l.add(c);
407 addRule(new Rule(l, true));
408 l.clear();
409 featureHash.clear();
410 c = new Nonterminal("verbphrase");
411 setFeature(c, "neg", 0, featureHash);
412 setFeature(c, "that", 1, featureHash);
413 setFeature(c, "pl", 2, featureHash);
414 setFeature(c, "whin", 3, featureHash);
415 setFeature(c, "whout", 4, featureHash);
416 l.add(c);
417 c = new Nonterminal("verb");
418 c.setFeature("verb", new StringRef("be"));
419 setFeature(c, "pl", 2, featureHash);
420 setFeature(c, "neg", 0, featureHash);
421 l.add(c);
422 c = new Terminal("TRADJ");
423 l.add(c);
424 c = new Nonterminal("nounphrase_cut");
425 setFeature(c, "that", 1, featureHash);
426 c.setFeature("verb", new StringRef("full"));
427 setFeature(c, "whin", 3, featureHash);
428 setFeature(c, "whout", 4, featureHash);
429 l.add(c);
430 addRule(new Rule(l, true));
431 l.clear();
432 featureHash.clear();
433 c = new Nonterminal("verbphrase");
434 setFeature(c, "neg", 0, featureHash);
435 setFeature(c, "that", 1, featureHash);
436 setFeature(c, "pl", 2, featureHash);
437 setFeature(c, "whin", 3, featureHash);
438 setFeature(c, "whout", 4, featureHash);
439 l.add(c);
440 c = new Nonterminal("verb");
441 c.setFeature("verb", new StringRef("be"));
442 setFeature(c, "pl", 2, featureHash);
443 setFeature(c, "neg", 0, featureHash);
444 l.add(c);
445 c = new Terminal("PVERB");
446 l.add(c);
447 c = new Nonterminal("nounphrase_cut");
448 setFeature(c, "that", 1, featureHash);
449 c.setFeature("verb", new StringRef("full"));
450 setFeature(c, "whin", 3, featureHash);
451 setFeature(c, "whout", 4, featureHash);
452 l.add(c);
453 addRule(new Rule(l, true));
454 l.clear();
455 featureHash.clear();
456 c = new Nonterminal("nounphrase_cut");
457 c.setFeature("exist", new StringRef("plus"));
458 setFeature(c, "that", 0, featureHash);
459 setFeature(c, "of", 1, featureHash);
460 setFeature(c, "def", 2, featureHash);
461 setFeature(c, "pl", 3, featureHash);
462 setFeature(c, "verb", 4, featureHash);
463 setFeature(c, "whin", 5, featureHash);
464 setFeature(c, "whout", 6, featureHash);
465 l.add(c);
466 c = new Nonterminal("nounphrase");
467 c.setFeature("exist", new StringRef("plus"));
468 setFeature(c, "that", 0, featureHash);
469 setFeature(c, "of", 1, featureHash);
470 setFeature(c, "def", 2, featureHash);
471 setFeature(c, "pl", 3, featureHash);
472 setFeature(c, "verb", 4, featureHash);
473 setFeature(c, "whin", 5, featureHash);
474 setFeature(c, "whout", 6, featureHash);
475 l.add(c);
476 addRule(new Rule(l, true));
477 l.clear();
478 featureHash.clear();
479 c = new Nonterminal("nounphrase_cut");
480 c.setFeature("exist", new StringRef("minus"));
481 setFeature(c, "that", 0, featureHash);
482 setFeature(c, "of", 1, featureHash);
483 setFeature(c, "def", 2, featureHash);
484 setFeature(c, "pl", 3, featureHash);
485 setFeature(c, "verb", 4, featureHash);
486 setFeature(c, "whin", 5, featureHash);
487 setFeature(c, "whout", 6, featureHash);
488 l.add(c);
489 c = new Nonterminal("nounphrase");
490 c.setFeature("exist", new StringRef("minus"));
491 setFeature(c, "that", 0, featureHash);
492 setFeature(c, "of", 1, featureHash);
493 setFeature(c, "def", 2, featureHash);
494 setFeature(c, "pl", 3, featureHash);
495 setFeature(c, "verb", 4, featureHash);
496 setFeature(c, "whin", 5, featureHash);
497 setFeature(c, "whout", 6, featureHash);
498 l.add(c);
499 addRule(new Rule(l, false));
500 l.clear();
501 featureHash.clear();
502 c = new Nonterminal("nounphrase");
503 c.setFeature("exist", new StringRef("plus"));
504 setFeature(c, "that", 0, featureHash);
505 c.setFeature("of", new StringRef("minus"));
506 c.setFeature("def", new StringRef("plus"));
507 c.setFeature("pl", new StringRef("minus"));
508 setFeature(c, "whin", 1, featureHash);
509 setFeature(c, "whout", 2, featureHash);
510 l.add(c);
511 c = new Terminal("PROPERNAME");
512 l.add(c);
513 c = new Nonterminal("that_phrase");
514 setFeature(c, "that", 0, featureHash);
515 setFeature(c, "whin", 1, featureHash);
516 setFeature(c, "whout", 2, featureHash);
517 l.add(c);
518 addRule(new Rule(l, true));
519 l.clear();
520 featureHash.clear();
521 c = new Nonterminal("nounphrase");
522 c.setFeature("exist", new StringRef("plus"));
523 c.setFeature("that", new StringRef("minus"));
524 c.setFeature("of", new StringRef("minus"));
525 c.setFeature("def", new StringRef("plus"));
526 c.setFeature("pl", new StringRef("minus"));
527 setFeature(c, "whin", 0, featureHash);
528 setFeature(c, "whout", 0, featureHash);
529 l.add(c);
530 c = new Terminal("VARIABLE");
531 l.add(c);
532 addRule(new Rule(l, true));
533 l.clear();
534 featureHash.clear();
535 c = new Nonterminal("nounphrase");
536 c.setFeature("exist", new StringRef("plus"));
537 c.setFeature("that", new StringRef("minus"));
538 c.setFeature("of", new StringRef("minus"));
539 c.setFeature("def", new StringRef("plus"));
540 c.setFeature("pl", new StringRef("minus"));
541 setFeature(c, "whin", 0, featureHash);
542 setFeature(c, "whout", 0, featureHash);
543 l.add(c);
544 c = new Terminal("REFERENCE");
545 l.add(c);
546 addRule(new Rule(l, true));
547 l.clear();
548 featureHash.clear();
549 c = new Nonterminal("nounphrase");
550 c.setFeature("exist", new StringRef("plus"));
551 setFeature(c, "that", 0, featureHash);
552 setFeature(c, "of", 1, featureHash);
553 c.setFeature("pl", new StringRef("minus"));
554 setFeature(c, "whin", 2, featureHash);
555 setFeature(c, "whout", 3, featureHash);
556 l.add(c);
557 c = new Terminal("a");
558 l.add(c);
559 c = new Nonterminal("noun_constr");
560 setFeature(c, "that", 0, featureHash);
561 setFeature(c, "of", 1, featureHash);
562 setFeature(c, "whin", 2, featureHash);
563 setFeature(c, "whout", 3, featureHash);
564 l.add(c);
565 addRule(new Rule(l, true));
566 l.clear();
567 featureHash.clear();
568 c = new Nonterminal("nounphrase");
569 c.setFeature("exist", new StringRef("plus"));
570 setFeature(c, "that", 0, featureHash);
571 setFeature(c, "of", 1, featureHash);
572 c.setFeature("pl", new StringRef("minus"));
573 setFeature(c, "whin", 2, featureHash);
574 setFeature(c, "whout", 3, featureHash);
575 l.add(c);
576 c = new Terminal("an");
577 l.add(c);
578 c = new Nonterminal("noun_constr");
579 setFeature(c, "that", 0, featureHash);
580 setFeature(c, "of", 1, featureHash);
581 setFeature(c, "whin", 2, featureHash);
582 setFeature(c, "whout", 3, featureHash);
583 l.add(c);
584 addRule(new Rule(l, true));
585 l.clear();
586 featureHash.clear();
587 c = new Nonterminal("nounphrase");
588 c.setFeature("exist", new StringRef("plus"));
589 setFeature(c, "that", 0, featureHash);
590 c.setFeature("of", new StringRef("minus"));
591 c.setFeature("pl", new StringRef("minus"));
592 setFeature(c, "whin", 1, featureHash);
593 setFeature(c, "whout", 2, featureHash);
594 l.add(c);
595 c = new Nonterminal("exist_anon");
596 l.add(c);
597 c = new Terminal("VARIABLE");
598 l.add(c);
599 c = new Nonterminal("that_phrase");
600 setFeature(c, "that", 0, featureHash);
601 setFeature(c, "whin", 1, featureHash);
602 setFeature(c, "whout", 2, featureHash);
603 l.add(c);
604 addRule(new Rule(l, true));
605 l.clear();
606 featureHash.clear();
607 c = new Nonterminal("nounphrase");
608 c.setFeature("exist", new StringRef("plus"));
609 setFeature(c, "that", 0, featureHash);
610 c.setFeature("of", new StringRef("minus"));
611 c.setFeature("pl", new StringRef("minus"));
612 setFeature(c, "whin", 1, featureHash);
613 setFeature(c, "whout", 2, featureHash);
614 l.add(c);
615 c = new Nonterminal("exist_anon");
616 l.add(c);
617 c = new Nonterminal("that_phrase");
618 setFeature(c, "that", 0, featureHash);
619 setFeature(c, "whin", 1, featureHash);
620 setFeature(c, "whout", 2, featureHash);
621 l.add(c);
622 addRule(new Rule(l, true));
623 l.clear();
624 featureHash.clear();
625 c = new Nonterminal("nounphrase");
626 c.setFeature("exist", new StringRef("plus"));
627 c.setFeature("that", new StringRef("minus"));
628 c.setFeature("of", new StringRef("minus"));
629 c.setFeature("pl", new StringRef("plus"));
630 c.setFeature("verb", new StringRef("full"));
631 setFeature(c, "whin", 0, featureHash);
632 setFeature(c, "whout", 0, featureHash);
633 l.add(c);
634 c = new Nonterminal("num_quant");
635 l.add(c);
636 c = new Terminal("NUMBER");
637 l.add(c);
638 c = new Terminal("NOUNPL");
639 l.add(c);
640 addRule(new Rule(l, true));
641 l.clear();
642 featureHash.clear();
643 c = new Nonterminal("nounphrase");
644 c.setFeature("exist", new StringRef("plus"));
645 c.setFeature("that", new StringRef("minus"));
646 c.setFeature("of", new StringRef("minus"));
647 c.setFeature("pl", new StringRef("minus"));
648 c.setFeature("verb", new StringRef("full"));
649 setFeature(c, "whin", 0, featureHash);
650 setFeature(c, "whout", 0, featureHash);
651 l.add(c);
652 c = new Nonterminal("num_quant");
653 l.add(c);
654 c = new Terminal("1");
655 l.add(c);
656 c = new Terminal("NOUN");
657 l.add(c);
658 addRule(new Rule(l, true));
659 l.clear();
660 featureHash.clear();
661 c = new Nonterminal("nounphrase");
662 c.setFeature("exist", new StringRef("plus"));
663 c.setFeature("that", new StringRef("minus"));
664 c.setFeature("of", new StringRef("minus"));
665 c.setFeature("pl", new StringRef("minus"));
666 c.setFeature("whin", new StringRef("right"));
667 c.setFeature("whout", new StringRef("left"));
668 l.add(c);
669 c = new Terminal("what");
670 l.add(c);
671 addRule(new Rule(l, true));
672 l.clear();
673 featureHash.clear();
674 c = new Nonterminal("nounphrase");
675 c.setFeature("exist", new StringRef("plus"));
676 c.setFeature("that", new StringRef("minus"));
677 c.setFeature("of", new StringRef("minus"));
678 c.setFeature("pl", new StringRef("minus"));
679 c.setFeature("whin", new StringRef("right"));
680 c.setFeature("whout", new StringRef("left"));
681 l.add(c);
682 c = new Terminal("who");
683 l.add(c);
684 addRule(new Rule(l, true));
685 l.clear();
686 featureHash.clear();
687 c = new Nonterminal("nounphrase");
688 c.setFeature("exist", new StringRef("plus"));
689 setFeature(c, "that", 0, featureHash);
690 setFeature(c, "of", 1, featureHash);
691 c.setFeature("pl", new StringRef("minus"));
692 c.setFeature("whin", new StringRef("right"));
693 c.setFeature("whout", new StringRef("left"));
694 l.add(c);
695 c = new Terminal("which");
696 l.add(c);
697 c = new Nonterminal("noun_constr");
698 setFeature(c, "that", 0, featureHash);
699 setFeature(c, "of", 1, featureHash);
700 c.setFeature("whin", new StringRef("left"));
701 c.setFeature("whout", new StringRef("left"));
702 l.add(c);
703 addRule(new Rule(l, true));
704 l.clear();
705 featureHash.clear();
706 c = new Nonterminal("nounphrase");
707 c.setFeature("exist", new StringRef("plus"));
708 c.setFeature("that", new StringRef("minus"));
709 c.setFeature("of", new StringRef("minus"));
710 c.setFeature("pl", new StringRef("plus"));
711 c.setFeature("whin", new StringRef("right"));
712 c.setFeature("whout", new StringRef("left"));
713 l.add(c);
714 c = new Terminal("which");
715 l.add(c);
716 c = new Terminal("NOUNPL");
717 l.add(c);
718 addRule(new Rule(l, true));
719 l.clear();
720 featureHash.clear();
721 c = new Nonterminal("nounphrase");
722 c.setFeature("exist", new StringRef("minus"));
723 setFeature(c, "that", 0, featureHash);
724 setFeature(c, "of", 1, featureHash);
725 c.setFeature("pl", new StringRef("minus"));
726 c.setFeature("whin", new StringRef("minus"));
727 c.setFeature("whout", new StringRef("minus"));
728 l.add(c);
729 c = new Terminal("every");
730 l.add(c);
731 c = new Nonterminal("noun_constr");
732 setFeature(c, "that", 0, featureHash);
733 setFeature(c, "of", 1, featureHash);
734 c.setFeature("whin", new StringRef("minus"));
735 c.setFeature("whout", new StringRef("minus"));
736 l.add(c);
737 addRule(new Rule(l, true));
738 l.clear();
739 featureHash.clear();
740 c = new Nonterminal("nounphrase");
741 c.setFeature("exist", new StringRef("minus"));
742 setFeature(c, "that", 0, featureHash);
743 c.setFeature("of", new StringRef("minus"));
744 c.setFeature("pl", new StringRef("minus"));
745 c.setFeature("whin", new StringRef("minus"));
746 c.setFeature("whout", new StringRef("minus"));
747 l.add(c);
748 c = new Nonterminal("univ_anon");
749 l.add(c);
750 c = new Terminal("VARIABLE");
751 l.add(c);
752 c = new Nonterminal("that_phrase");
753 setFeature(c, "that", 0, featureHash);
754 c.setFeature("whin", new StringRef("minus"));
755 c.setFeature("whout", new StringRef("minus"));
756 l.add(c);
757 addRule(new Rule(l, true));
758 l.clear();
759 featureHash.clear();
760 c = new Nonterminal("nounphrase");
761 c.setFeature("exist", new StringRef("minus"));
762 setFeature(c, "that", 0, featureHash);
763 c.setFeature("of", new StringRef("minus"));
764 c.setFeature("pl", new StringRef("minus"));
765 c.setFeature("whin", new StringRef("minus"));
766 c.setFeature("whout", new StringRef("minus"));
767 l.add(c);
768 c = new Nonterminal("univ_anon");
769 l.add(c);
770 c = new Nonterminal("that_phrase");
771 setFeature(c, "that", 0, featureHash);
772 c.setFeature("whin", new StringRef("minus"));
773 c.setFeature("whout", new StringRef("minus"));
774 l.add(c);
775 addRule(new Rule(l, true));
776 l.clear();
777 featureHash.clear();
778 c = new Nonterminal("nounphrase");
779 c.setFeature("exist", new StringRef("minus"));
780 setFeature(c, "that", 0, featureHash);
781 setFeature(c, "of", 1, featureHash);
782 c.setFeature("pl", new StringRef("minus"));
783 c.setFeature("whin", new StringRef("minus"));
784 c.setFeature("whout", new StringRef("minus"));
785 l.add(c);
786 c = new Terminal("no");
787 l.add(c);
788 c = new Nonterminal("noun_constr");
789 setFeature(c, "that", 0, featureHash);
790 setFeature(c, "of", 1, featureHash);
791 c.setFeature("whin", new StringRef("minus"));
792 c.setFeature("whout", new StringRef("minus"));
793 l.add(c);
794 addRule(new Rule(l, true));
795 l.clear();
796 featureHash.clear();
797 c = new Nonterminal("nounphrase");
798 c.setFeature("exist", new StringRef("minus"));
799 setFeature(c, "that", 0, featureHash);
800 c.setFeature("of", new StringRef("minus"));
801 c.setFeature("pl", new StringRef("minus"));
802 c.setFeature("whin", new StringRef("minus"));
803 c.setFeature("whout", new StringRef("minus"));
804 l.add(c);
805 c = new Nonterminal("neg_anon");
806 l.add(c);
807 c = new Terminal("VARIABLE");
808 l.add(c);
809 c = new Nonterminal("that_phrase");
810 setFeature(c, "that", 0, featureHash);
811 c.setFeature("whin", new StringRef("minus"));
812 c.setFeature("whout", new StringRef("minus"));
813 l.add(c);
814 addRule(new Rule(l, true));
815 l.clear();
816 featureHash.clear();
817 c = new Nonterminal("nounphrase");
818 c.setFeature("exist", new StringRef("minus"));
819 setFeature(c, "that", 0, featureHash);
820 c.setFeature("of", new StringRef("minus"));
821 c.setFeature("pl", new StringRef("minus"));
822 c.setFeature("whin", new StringRef("minus"));
823 c.setFeature("whout", new StringRef("minus"));
824 l.add(c);
825 c = new Nonterminal("neg_anon");
826 l.add(c);
827 c = new Nonterminal("that_phrase");
828 setFeature(c, "that", 0, featureHash);
829 c.setFeature("whin", new StringRef("minus"));
830 c.setFeature("whout", new StringRef("minus"));
831 l.add(c);
832 addRule(new Rule(l, true));
833 l.clear();
834 featureHash.clear();
835 c = new Nonterminal("noun_constr");
836 setFeature(c, "that", 0, featureHash);
837 c.setFeature("of", new StringRef("minus"));
838 setFeature(c, "whin", 1, featureHash);
839 setFeature(c, "whout", 2, featureHash);
840 l.add(c);
841 c = new Terminal("NOUN");
842 l.add(c);
843 c = new Terminal("VARIABLE");
844 l.add(c);
845 c = new Nonterminal("that_phrase");
846 setFeature(c, "that", 0, featureHash);
847 setFeature(c, "whin", 1, featureHash);
848 setFeature(c, "whout", 2, featureHash);
849 l.add(c);
850 addRule(new Rule(l, true));
851 l.clear();
852 featureHash.clear();
853 c = new Nonterminal("noun_constr");
854 setFeature(c, "that", 0, featureHash);
855 c.setFeature("of", new StringRef("minus"));
856 setFeature(c, "whin", 1, featureHash);
857 setFeature(c, "whout", 2, featureHash);
858 l.add(c);
859 c = new Terminal("NOUN");
860 l.add(c);
861 c = new Nonterminal("that_phrase");
862 setFeature(c, "that", 0, featureHash);
863 setFeature(c, "whin", 1, featureHash);
864 setFeature(c, "whout", 2, featureHash);
865 l.add(c);
866 addRule(new Rule(l, true));
867 l.clear();
868 featureHash.clear();
869 c = new Nonterminal("noun_constr");
870 setFeature(c, "that", 0, featureHash);
871 c.setFeature("of", new StringRef("plus"));
872 setFeature(c, "whin", 1, featureHash);
873 setFeature(c, "whout", 2, featureHash);
874 l.add(c);
875 c = new Terminal("NOUNOF");
876 l.add(c);
877 c = new Nonterminal("nounphrase_cut");
878 setFeature(c, "that", 0, featureHash);
879 setFeature(c, "whin", 1, featureHash);
880 setFeature(c, "whout", 2, featureHash);
881 l.add(c);
882 addRule(new Rule(l, true));
883 l.clear();
884 featureHash.clear();
885 c = new Nonterminal("verb");
886 c.setFeature("verb", new StringRef("be"));
887 c.setFeature("neg", new StringRef("minus"));
888 c.setFeature("pl", new StringRef("minus"));
889 l.add(c);
890 c = new Terminal("is");
891 l.add(c);
892 addRule(new Rule(l, true));
893 l.clear();
894 featureHash.clear();
895 c = new Nonterminal("verb");
896 c.setFeature("verb", new StringRef("be"));
897 c.setFeature("neg", new StringRef("plus"));
898 c.setFeature("pl", new StringRef("minus"));
899 l.add(c);
900 c = new Terminal("is not");
901 l.add(c);
902 addRule(new Rule(l, true));
903 l.clear();
904 featureHash.clear();
905 c = new Nonterminal("verb");
906 c.setFeature("verb", new StringRef("be"));
907 c.setFeature("neg", new StringRef("plus"));
908 c.setFeature("pl", new StringRef("minus"));
909 l.add(c);
910 c = new Terminal("is");
911 l.add(c);
912 c = new Terminal("not");
913 l.add(c);
914 addRule(new Rule(l, true));
915 l.clear();
916 featureHash.clear();
917 c = new Nonterminal("verb");
918 c.setFeature("verb", new StringRef("be"));
919 c.setFeature("neg", new StringRef("minus"));
920 c.setFeature("pl", new StringRef("plus"));
921 l.add(c);
922 c = new Terminal("are");
923 l.add(c);
924 addRule(new Rule(l, true));
925 l.clear();
926 featureHash.clear();
927 c = new Nonterminal("verb");
928 c.setFeature("verb", new StringRef("be"));
929 c.setFeature("neg", new StringRef("plus"));
930 c.setFeature("pl", new StringRef("plus"));
931 l.add(c);
932 c = new Terminal("are not");
933 l.add(c);
934 addRule(new Rule(l, true));
935 l.clear();
936 featureHash.clear();
937 c = new Nonterminal("verb");
938 c.setFeature("verb", new StringRef("be"));
939 c.setFeature("neg", new StringRef("plus"));
940 c.setFeature("pl", new StringRef("plus"));
941 l.add(c);
942 c = new Terminal("are");
943 l.add(c);
944 c = new Terminal("not");
945 l.add(c);
946 addRule(new Rule(l, true));
947 l.clear();
948 featureHash.clear();
949 c = new Nonterminal("verb");
950 c.setFeature("verb", new StringRef("full"));
951 c.setFeature("neg", new StringRef("minus"));
952 c.setFeature("pl", new StringRef("minus"));
953 l.add(c);
954 c = new Terminal("VERB");
955 l.add(c);
956 addRule(new Rule(l, true));
957 l.clear();
958 featureHash.clear();
959 c = new Nonterminal("verb");
960 c.setFeature("verb", new StringRef("full"));
961 c.setFeature("neg", new StringRef("plus"));
962 c.setFeature("pl", new StringRef("minus"));
963 l.add(c);
964 c = new Terminal("does not");
965 l.add(c);
966 c = new Terminal("VERBINF");
967 l.add(c);
968 addRule(new Rule(l, true));
969 l.clear();
970 featureHash.clear();
971 c = new Nonterminal("verb");
972 c.setFeature("verb", new StringRef("full"));
973 c.setFeature("neg", new StringRef("minus"));
974 c.setFeature("pl", new StringRef("plus"));
975 l.add(c);
976 c = new Terminal("VERBINF");
977 l.add(c);
978 addRule(new Rule(l, true));
979 l.clear();
980 featureHash.clear();
981 c = new Nonterminal("verb");
982 c.setFeature("verb", new StringRef("full"));
983 c.setFeature("neg", new StringRef("plus"));
984 c.setFeature("pl", new StringRef("plus"));
985 l.add(c);
986 c = new Terminal("do not");
987 l.add(c);
988 c = new Terminal("VERBINF");
989 l.add(c);
990 addRule(new Rule(l, true));
991 l.clear();
992 featureHash.clear();
993 c = new Nonterminal("that_phrase");
994 c.setFeature("that", new StringRef("minus"));
995 setFeature(c, "whin", 0, featureHash);
996 setFeature(c, "whout", 0, featureHash);
997 l.add(c);
998 addRule(new Rule(l, true));
999 l.clear();
1000 featureHash.clear();
1001 c = new Nonterminal("that_phrase");
1002 c.setFeature("that", new StringRef("plus"));
1003 setFeature(c, "whin", 0, featureHash);
1004 setFeature(c, "whout", 1, featureHash);
1005 l.add(c);
1006 c = new Nonterminal("rel_pron");
1007 l.add(c);
1008 c = new Nonterminal("that_phrase_1");
1009 setFeature(c, "whin", 0, featureHash);
1010 setFeature(c, "whout", 1, featureHash);
1011 l.add(c);
1012 addRule(new Rule(l, true));
1013 l.clear();
1014 featureHash.clear();
1015 c = new Nonterminal("that_phrase_1");
1016 setFeature(c, "whin", 0, featureHash);
1017 setFeature(c, "whout", 1, featureHash);
1018 l.add(c);
1019 c = new Nonterminal("that_phrase_2");
1020 setFeature(c, "whin", 0, featureHash);
1021 setFeature(c, "whout", 1, featureHash);
1022 l.add(c);
1023 addRule(new Rule(l, true));
1024 l.clear();
1025 featureHash.clear();
1026 c = new Nonterminal("that_phrase_1");
1027 setFeature(c, "whin", 0, featureHash);
1028 setFeature(c, "whout", 0, featureHash);
1029 l.add(c);
1030 c = new Nonterminal("that_phrase_2");
1031 setFeature(c, "whin", 0, featureHash);
1032 setFeature(c, "whout", 0, featureHash);
1033 l.add(c);
1034 c = new Nonterminal("or_rel_pron");
1035 l.add(c);
1036 c = new Nonterminal("that_phrase_1");
1037 setFeature(c, "whin", 0, featureHash);
1038 setFeature(c, "whout", 0, featureHash);
1039 l.add(c);
1040 addRule(new Rule(l, false));
1041 l.clear();
1042 featureHash.clear();
1043 c = new Nonterminal("that_phrase_2");
1044 setFeature(c, "whin", 0, featureHash);
1045 setFeature(c, "whout", 1, featureHash);
1046 l.add(c);
1047 c = new Nonterminal("verbphrase_cut");
1048 c.setFeature("pl", new StringRef("minus"));
1049 setFeature(c, "whin", 0, featureHash);
1050 setFeature(c, "whout", 1, featureHash);
1051 l.add(c);
1052 addRule(new Rule(l, true));
1053 l.clear();
1054 featureHash.clear();
1055 c = new Nonterminal("that_phrase_2");
1056 setFeature(c, "whin", 0, featureHash);
1057 setFeature(c, "whout", 1, featureHash);
1058 l.add(c);
1059 c = new Nonterminal("nounphrase_cut");
1060 c.setFeature("that", new StringRef("minus"));
1061 c.setFeature("verb", new StringRef("full"));
1062 setFeature(c, "pl", 2, featureHash);
1063 setFeature(c, "whin", 0, featureHash);
1064 setFeature(c, "whout", 1, featureHash);
1065 l.add(c);
1066 c = new Nonterminal("verb");
1067 c.setFeature("verb", new StringRef("full"));
1068 setFeature(c, "pl", 2, featureHash);
1069 l.add(c);
1070 addRule(new Rule(l, true));
1071 l.clear();
1072 featureHash.clear();
1073 c = new Nonterminal("that_phrase_2");
1074 setFeature(c, "whin", 0, featureHash);
1075 setFeature(c, "whout", 0, featureHash);
1076 l.add(c);
1077 c = new Nonterminal("verbphrase_cut");
1078 c.setFeature("that", new StringRef("minus"));
1079 c.setFeature("pl", new StringRef("minus"));
1080 setFeature(c, "whin", 0, featureHash);
1081 setFeature(c, "whout", 0, featureHash);
1082 l.add(c);
1083 c = new Nonterminal("and_rel_pron");
1084 l.add(c);
1085 c = new Nonterminal("that_phrase_2");
1086 setFeature(c, "whin", 0, featureHash);
1087 setFeature(c, "whout", 0, featureHash);
1088 l.add(c);
1089 addRule(new Rule(l, true));
1090 l.clear();
1091 featureHash.clear();
1092 c = new Nonterminal("rel_pron");
1093 l.add(c);
1094 c = new Terminal("that");
1095 l.add(c);
1096 addRule(new Rule(l, true));
1097 l.clear();
1098 featureHash.clear();
1099 c = new Nonterminal("or_rel_pron");
1100 l.add(c);
1101 c = new Terminal("or");
1102 l.add(c);
1103 c = new Nonterminal("rel_pron");
1104 l.add(c);
1105 addRule(new Rule(l, true));
1106 l.clear();
1107 featureHash.clear();
1108 c = new Nonterminal("or_rel_pron");
1109 l.add(c);
1110 c = new Terminal("or that");
1111 l.add(c);
1112 addRule(new Rule(l, true));
1113 l.clear();
1114 featureHash.clear();
1115 c = new Nonterminal("and_rel_pron");
1116 l.add(c);
1117 c = new Terminal("and");
1118 l.add(c);
1119 c = new Nonterminal("rel_pron");
1120 l.add(c);
1121 addRule(new Rule(l, true));
1122 l.clear();
1123 featureHash.clear();
1124 c = new Nonterminal("and_rel_pron");
1125 l.add(c);
1126 c = new Terminal("and that");
1127 l.add(c);
1128 addRule(new Rule(l, true));
1129 l.clear();
1130 featureHash.clear();
1131 c = new Nonterminal("exist_anon");
1132 l.add(c);
1133 c = new Terminal("something");
1134 l.add(c);
1135 addRule(new Rule(l, true));
1136 l.clear();
1137 featureHash.clear();
1138 c = new Nonterminal("exist_anon");
1139 l.add(c);
1140 c = new Terminal("somebody");
1141 l.add(c);
1142 addRule(new Rule(l, true));
1143 l.clear();
1144 featureHash.clear();
1145 c = new Nonterminal("univ_anon");
1146 l.add(c);
1147 c = new Terminal("everything");
1148 l.add(c);
1149 addRule(new Rule(l, true));
1150 l.clear();
1151 featureHash.clear();
1152 c = new Nonterminal("univ_anon");
1153 l.add(c);
1154 c = new Terminal("everybody");
1155 l.add(c);
1156 addRule(new Rule(l, true));
1157 l.clear();
1158 featureHash.clear();
1159 c = new Nonterminal("neg_anon");
1160 l.add(c);
1161 c = new Terminal("nothing");
1162 l.add(c);
1163 addRule(new Rule(l, true));
1164 l.clear();
1165 featureHash.clear();
1166 c = new Nonterminal("neg_anon");
1167 l.add(c);
1168 c = new Terminal("nobody");
1169 l.add(c);
1170 addRule(new Rule(l, true));
1171 l.clear();
1172 featureHash.clear();
1173 c = new Nonterminal("num_quant");
1174 l.add(c);
1175 c = new Terminal("at least");
1176 l.add(c);
1177 addRule(new Rule(l, true));
1178 l.clear();
1179 featureHash.clear();
1180 c = new Nonterminal("num_quant");
1181 l.add(c);
1182 c = new Terminal("at most");
1183 l.add(c);
1184 addRule(new Rule(l, true));
1185 l.clear();
1186 featureHash.clear();
1187 c = new Nonterminal("num_quant");
1188 l.add(c);
1189 c = new Terminal("less than");
1190 l.add(c);
1191 addRule(new Rule(l, true));
1192 l.clear();
1193 featureHash.clear();
1194 c = new Nonterminal("num_quant");
1195 l.add(c);
1196 c = new Terminal("more than");
1197 l.add(c);
1198 addRule(new Rule(l, true));
1199 l.clear();
1200 featureHash.clear();
1201 c = new Nonterminal("num_quant");
1202 l.add(c);
1203 c = new Terminal("exactly");
1204 l.add(c);
1205 addRule(new Rule(l, true));
1206
1207 }
1208
1209 private void setFeature(Category c, String featureName, int varID, HashMap<Integer, StringRef> featureHash) {
1210 if (featureHash.get(varID) == null) {
1211 StringRef stringRef = new StringRef();
1212 c.setFeature(featureName, stringRef);
1213 featureHash.put(varID, stringRef);
1214 } else {
1215 c.setFeature(featureName, featureHash.get(varID));
1216 }
1217 }
1218
1219 }