-
Notifications
You must be signed in to change notification settings - Fork 4
/
english.gram
369 lines (313 loc) · 18.2 KB
/
english.gram
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
# This grammar aims to capture a good chunk of English.
SQ nonterminal {has_function_answer, first_predicate, second_predicate, third_predicate} {10000000.0, 10.0, 10.0, 100.0, 100.0} {1.0, 1.0, 0.1, 1.0, 1.0} {} 10 1.0 {}
SQ -> HOW:null ADJ:select_left_delete_answer VPQ:delete_left_answer_head QUESTION:null
SQ -> HOW_MANY:null NP:select_left_delete_count_answer VPQ:delete_left_count_answer QUESTION:null # TODO: the first NP must be plural
SQ -> HOW_MANY:null NP:select_left2_delete_count_answer VPQ:delete_left2_count_answer QUESTION:null # TODO: the first NP must be plural
SQ -> HOW_MANY:null NP:select_left_delete_answer VPQ:delete_answer QUESTION:null # TODO: the first NP must be plural
# TODO: add rule for "could you tell me...", "can you tell me...", and "count..."
SQ -> DP:select_left_delete_answer_head VP:delete_left_keep_answer QUESTION:null
SQ -> WHAT:null IS:null DP:delete_answer QUESTION:null
SQ -> WHAT:null NP:select_left_delete_function_answer VPQ:delete_left_answer_keep_function QUESTION:null
SQ -> WHAT:null NP:select_left2_delete_function_answer VPQ:delete_left2_answer_keep_function QUESTION:null
SQ -> WHAT:null NP:select_left3_delete_function_answer VPQ:delete_left3_answer_keep_function QUESTION:null
SQ -> WHAT:null NP:select_left3_delete_function_answer VPQ:delete_left3_answer_head_keep_function QUESTION:null
SQ -> WHAT:null NP_MOD:select_left3_delete_function_answer VPQ:delete_left3_answer_keep_function QUESTION:null
SQ -> WHAT:null NP:select_left_delete_answer VPQ:delete_left_answer QUESTION:null
SQ -> WHAT:null NP:select_left_delete_answer VPQ:delete_left_answer_head QUESTION:null
SQ -> WHAT:null NP:select_left2_delete_answer VPQ:delete_left2_answer QUESTION:null
SQ -> WHAT:null NP:select_left3_delete_answer VPQ:delete_left3_answer QUESTION:null
SQ -> WHAT:null NP:select_left3_delete_answer_disjoint VPQ:delete_left3_answer_disjoint QUESTION:null
SQ -> WHAT:null NP:select_left5_delete_answer_disjoint VPQ:delete_left5_answer_disjoint QUESTION:null
SQ -> WHERE_IS:loc DP:delete_left_answer_head QUESTION:null
SQ -> WHERE_IS:null DP:delete_answer_has_loc QUESTION:null
SQ -> ARE:null THERE:null DP:delete_answer QUESTION:null
SQ -> ARE:null THERE:null DP:delete_answer ADJ:null QUESTION:null # for movement
SQ -> NAME:null DP:delete_answer QUESTION:null
SQ -> NAME:null DP:delete_answer PERIOD:null
SQ -> GIVE:null DP:delete_answer QUESTION:null
SQ -> GIVE:null ME:null DP:delete_answer QUESTION:null
SQ -> GIVE:null ME:null DP:delete_answer PERIOD:null
SQ -> SHOW:null DP:delete_answer QUESTION:null
SQ -> SHOW:null ME:null DP:delete_answer QUESTION:null
SQ -> COUNT:null DP:delete_count_answer QUESTION:null
SQ -> DP:delete_answer QUESTION:null
SQ -> FIND:null DP:delete_answer QUESTION:null
SQ -> LIST:null DP:delete_answer QUESTION:null
SQ -> TELL:null ME:null SQ:identity
SQ -> MD:null YOU:null SQ:identity
# TODO: add rules for questions that begin with prepositional phrases
DP nonterminal {has_function_not, first_predicate, second_predicate} {1000.0, 0.1, 10000.0, 1.0} {1.0, 1.0, 1.0, 1.0} {} 10 1.0 {}
DP -> ALL:null OF:null DP:identity
DP -> DEFINITE:null NP:identity
DP -> A:null NP:identity
DP -> AT_LEAST:null A:null NP:identity
DP -> ANY:null NP:identity
DP -> SOME:null NP:identity
DP -> NO:null NP:delete_not
DP -> NP:identity
DP -> DP:select_left_disjoint CNJ:null DP:delete_left_disjoint
DP -> DP:select_left2_disjoint CNJ:null DP:delete_left2_disjoint
DP -> DP:select_left_delete_head_disjoint CNJ:null DP:delete_left_disjoint
NP nonterminal {has_function_count_not, first_predicate, second_predicate, arg3} {10000000.0, 100.0, 100.0, 100.0, 0.01} {1.0, 1.0, 1.0, 1.0, 1.0} {} 10 1.0 {}
NP -> NP_ADJ:identity
NP -> NP:identity NP_MOD:null
NP -> NP_N:empty_tuple NP_MOD:identity 0.0000001
NP -> NOT:null NP:delete_not
NP -> NP:select_left NP_MOD:identity
NP -> NP:select_left_delete_function NP_MOD:identity
NP -> NP:select_left NP_MOD:delete_left
NP -> NP:select_left NP_MOD:delete_left_head
NP -> NP:select_left_delete_head_disjoint NP_MOD:delete_left_disjoint
NP -> NP:select_left2 NP_MOD:delete_left2
NP -> NP:select_left2 NP_MOD:delete_left2_head
NP -> NP:select_left3_disjoint NP_MOD:delete_left3_disjoint
NP -> NP:select_left4_disjoint NP_MOD:delete_left4_disjoint
NP -> NP:select_left_keep_function NP_MOD:delete_function_head
NP -> NP:select_left_keep_function NP_MOD:delete_left_function
NP -> NP:select_left_keep_function_disjoint NP_MOD:delete_left_function_disjoint
NP -> NP:select_left_keep_function NP_MOD:delete_left_function_head
NP -> NP:select_left2_keep_function NP_MOD:delete_left2_function
NP -> NP:select_left2_keep_function_disjoint NP_MOD:delete_left2_function_disjoint
NP -> NP:select_left_delete_function NP_MOD:delete_left_keep_function
NP -> NP:select_function NP_MOD:delete_function
NP -> NP:select_function_delete_head NP_MOD:delete_function
NP -> NP:select_left2_disjoint CNJ:null NP:delete_left2_disjoint
NP -> NUMBER_OF:null DP:delete_count_head
NP -> NUMBER_OF:null DP:identity
NP -> NP:identity CNJ:null NP:identity
NP -> NP:delete_args NP:identity
NP -> NP:delete_args NP_MOD:identity
NP -> NP:delete_arg3
NP -> NP:delete_arg3 FREQ:select_arg3
NP -> QP:identity
NP -> QP:identity N_PREDICATE:delete_args
NP_MOD nonterminal {function, last_predicate, first_predicate} {100000000.0, 1.0, 1.0, 1.0} {1.0, 1.0, 1.0, 1.0} {} 10 1.0 {}
NP_MOD -> P:null DP:identity
NP_MOD -> P:select_left DP:delete_left
NP_MOD -> P:select_left DP:delete_left_head
NP_MOD -> NOT:null NP_MOD:delete_not
NP_MOD -> P:select_left_delete_function DP:delete_left_keep_function
NP_MOD -> P:select_left_delete_function DP:delete_left_head_keep_function
NP_MOD -> P:delete_function DP:identity
NP_MOD -> OUTSIDE:select_left_delete_not DP:delete_function
NP_MOD -> COMP:null VP:identity
#NP_MOD -> COMP:null DP:identity VP:identity
NP_MOD -> COMP:null DP:delete_right_head VP:select_right # for movement (TODO: this could add a flag to the VP)
NP_MOD -> COMP:null DP:select_right_delete_head VP:delete_right # for movement (TODO: this could add a flag to the VP)
NP_MOD -> P:select_left COMP:null DP:delete_left_head V:select_left
NP_MOD -> P:select_right COMP:null DP:delete_right_head V:select_right
NP_MOD -> P:select_right_delete_function COMP:null DP:delete_right_head_keep_function V:select_right_delete_function
NP_MOD -> VP:identity # TODO: restrict to present participle or past participle if in passive voice (though Jobs has some grammatically dubious conjugations)
NP_MOD -> ADJP:identity
NP_MOD -> NP_MOD:select_left_disjoint CNJ:null NP_MOD:delete_left_disjoint
NP_MOD -> NP_MOD:select_left2_disjoint CNJ:null NP_MOD:delete_left2_disjoint
NP_MOD -> P:identity # for movement (TODO: this should depend on a flag)
# TODO: should we allow verbs to serve as adjectives (such as "neighboring states")?
# or should we just treat them as adjectives and add a direction feature to ADJ?
NP_ADJ nonterminal {function, second_predicate, first_predicate} {100000000.0, 0.01, 1.0, 0.001} {1.0, 1.0, 1.0, 1.0} {} 10 1.0 {}
NP_ADJ -> ADJ:identity N_PREDICATE:identity
NP_ADJ -> ADJ:select_left NP_ADJ:delete_left
NP_ADJ -> QP:null NP_ADJ:identity
NP_ADJ -> ADJ:select_function NP_ADJ:delete_function
NP_ADJ -> ADJ:select_function NP_ADJ:delete_function_head
NP_ADJ -> ADJ:select_function_delete_head NP_ADJ:delete_function
NP_ADJ -> NP_ADJ:select_left NP_ADJ:delete_left
NP_ADJ -> NP_ADJ:select_left NP_ADJ:delete_left_head
NP_ADJ -> NP_ADJ:select_left_delete_head NP_ADJ:delete_left
NP_ADJ -> NP_ADJ:select_left2_disjoint NP_ADJ:delete_left2_disjoint
#NP_ADJ -> NP_ADJ:select_right2 NP_ADJ:delete_right2
NP_ADJ -> NP_ADJ_DUAL:two_predicates
NP_ADJ -> NP_N:head_arg1_select_arg2_only
NP_ADJ -> N_CONSTANT:head_arg1_select_arg2_only
NP_ADJ -> NP_N:identity
NP_ADJ -> ADJ:identity 0.00001
NP_ADJ -> NP_ADJ:select_left_delete_head P:delete_left # for movement (TODO: this should depend on a flag)
NP_ADJ_DUAL nonterminal {first_predicate, direction_root} {100000000.0, 100.0, 0.01} {1.0, 1.0, 1.0} {} 10 1.0 {}
NP_ADJ_DUAL -> NP_ADJ:delete_left_head
NP_N nonterminal {first_predicate, arity} {100000000.0, 100.0, 0.01} {1.0, 1.0, 1.0} {} 10 1.0 {}
NP_N -> N_CONSTANT:select_arg1
NP_N -> N_CONSTANT:select_arg1 N_CONSTANT_ARG2:select_arg2
NP_N -> NUMBER:head_arg1_select_arg2
NP_N -> N_PREDICATE:select_left NP_ADJ:delete_left
NP_N -> N_PREDICATE:select_left_delete_head NP_ADJ:delete_left
NP_N -> N_PREDICATE:identity
NP_N -> THERE:empty_tuple_only
NP_N -> ONE:empty_tuple_only
NP_N -> ALL:empty_tuple_only
# for subject-auxiliary inversion
VPQ nonterminal {last_predicate} {1000.0, 1.0} {1.0, 1.0} {} 10 1.0 {}
VPQ -> VP:identity
# there should be agreement with respect to grammatical number and tense, and the verb phrase cannot use the auxiliary 'do'
VPQ -> DO:null DP:delete_right_head VP:select_right
VPQ -> DO:null DP:delete_left_head VP:select_left
VPQ -> DO:null DP:identity VP:null
VPQ -> IS:null DP:select_left_delete_head P:delete_left # for movement
VPQ -> IS:null DP:select_left_delete_head DP:delete_left # for movement (TODO: add a flag to the DP indicating movement)
VP nonterminal {function, first_predicate, second_predicate} {10000000.0, 1.0, 10.0, 100.0} {1.0, 1.0, 1.0, 1.0} {} 10 1.0 {}
VP -> DONOT:null VP:delete_not
VP -> V:select_left_delete_not DP:delete_left_head_keep_not
VP -> V:null DP:identity
VP -> V:identity DP:identity
VP -> V:identity ME:null DP:identity
VP -> V:select_left DP:delete_left
VP -> V:select_left DP:delete_left_head
VP -> ONLY:null V:select_left DP:delete_left
VP -> V:select_left ONLY:null DP:delete_left_head
VP -> V:select_left_delete_function DP:delete_left_keep_function
VP -> V:select_left_delete_function DP:delete_left_head_keep_function
VP -> V:null NOT:null DP:delete_not
VP -> VP:identity P:identity DP:identity
VP -> VP:select_left_delete_function P:select_left_delete_function DP:delete_left_keep_function
VP -> VP:select_left P:select_left DP:delete_left
VP -> VP:select_left P:select_left DP:delete_left_head
VP -> ARE:null P:null DP:identity
VP -> ARE:null NOT:null P:select_left_delete_not DP:delete_left_not_head
VP -> V:identity 0.001
VP -> IS:null ADJP:identity
VP -> VP:select_left_disjoint CNJ:null VP:delete_left_disjoint
VP -> VP:select_left2_disjoint CNJ:null VP:delete_left2_disjoint
VP -> VP:select_left4_disjoint CNJ:null VP:delete_left4_disjoint
VP -> VP:identity P:identity # for movement (TODO: this should depend on a flag)
ADJP nonterminal {first_predicate} {1000.0, 1.0} {1.0, 1.0} {} 10 1.0 {}
ADJP -> RELATIVE_ADJ:select_left THAN:null DP:delete_left_head
ADJP -> ADJ:select_left P:select_left DP:delete_left_head
ADJP -> ADJ:select_function P:select_left_delete_function DP:delete_left_function_head
FREQ nonterminal {constant} {10000000.0, 0.0001} {1.0, 1.0} {} 10 1.0 {}
FREQ -> A:null N_CONSTANT:identity
FREQ -> PER:null N_CONSTANT:identity
QP nonterminal {predicate_only} {1000000.0, 0.01} {1.0, 1.0} {} 1 1.0 {}
QP -> NUMBER:head_arg1_select_arg2_only
QP -> OVER:null NUMBER:head_arg1_select_arg2_only
QP -> RELATIVE_ADJ:delete_arg2 THAN:null NUMBER:head_arg1_select_arg2_only
QP -> AT_LEAST:null NUMBER:head_arg1_select_arg2_only
QP -> AT_LEAST:empty_tuple_only ONE:null
# TODO: use a proper model of phrasal verbs and exclude prepositions as constituents of verbs
V preterminal {predicate_only, direction} {1000000.0, 0.01, 0.0001} {1.0, 1.0, 1.0} {"than", "that", "those", "of", "in", "with", "whose", "who", "to", "on", "for", "by", "over", "at", "per", "outside", "from", "within", "as", "?", ".", "a", "an", "any", "all", "the", "what", "which", "how", "many", "much", "where", "bigger", "smaller", "longer", "shorter", "taller", "lower", "higher", "greater", "less", "more", "highest", "lowest", "longest", "shortest", "largest", "smallest", "biggest", "most", "least", "greatest", "fewest", "maximum", "minimum", "next", "not", "number", "and", "but", "or", "no", "it", "there", "name", "one", "me", "dont", "only", "some", "can", "could", "you"} 10000 0.95 {"through"}
N_PREDICATE preterminal {predicate_only, direction} {10000000.0, 0.01, 0.0001} {1.0, 100.0, 1.0} {"is", "are", "do", "does", "did", "has", "have", "than", "that", "of", "in", "through", "with", "whose", "who", "to", "on", "for", "by", "over", "at", "per", "outside", "from", "within", "as", "?", ".", "a", "an", "any", "all", "the", "what", "which", "how", "many", "much", "where", "bigger", "smaller", "longer", "shorter", "taller", "lower", "higher", "greater", "less", "more", "highest", "lowest", "longest", "shortest", "largest", "smallest", "biggest", "most", "least", "greatest", "fewest", "maximum", "minimum", "next", "not", "number", "and", "but", "or", "no", "there", "tell", "give", "show", "one", "me", "dont", "find", "only", "some", "can", "could"} 10000 0.95 {}
N_CONSTANT preterminal {constant} {10000000.0, 0.0001} {1.0, 1.0} {"is", "are", "do", "does", "did", "has", "have", "than", "that", "of", "in", "through", "with", "whose", "who", "to", "on", "for", "by", "over", "at", "per", "outside", "from", "within", "as", "?", ".", "a", "an", "any", "all", "the", "what", "which", "how", "many", "much", "where", "bigger", "smaller", "longer", "shorter", "taller", "lower", "higher", "greater", "less", "more", "highest", "lowest", "longest", "shortest", "largest", "smallest", "biggest", "most", "least", "greatest", "fewest", "maximum", "minimum", "next", "not", "number", "and", "but", "or", "no", "there", "name", "tell", "give", "show", "one", "count", "me", "dont", "find", "only", "list", "some", "can", "could", "you"} 10000 0.9995 {}
N_CONSTANT_ARG2 preterminal {constant} {10000000.0, 0.0001} {1.0, 1.0} {"is", "are", "do", "does", "did", "has", "have", "than", "that", "of", "in", "through", "with", "whose", "who", "to", "on", "for", "by", "over", "at", "per", "outside", "from", "within", "as", "?", ".", "a", "an", "any", "all", "the", "what", "which", "how", "many", "much", "where", "bigger", "smaller", "longer", "shorter", "taller", "lower", "higher", "greater", "less", "more", "highest", "lowest", "longest", "shortest", "largest", "smallest", "biggest", "most", "least", "greatest", "fewest", "maximum", "minimum", "next", "not", "number", "and", "but", "or", "no", "there", "name", "tell", "give", "show", "one", "count", "me", "dont", "find", "only", "list", "some", "can", "could", "you"} 10000 0.99 {}
ADJ preterminal {function_only, predicate, direction} {10000000.0, 10.0, 0.0001, 1000.0} {1.0, 0.1, 100.0, 1.0} {"is", "are", "do", "does", "did", "has", "have", "than", "that", "of", "in", "through", "with", "whose", "who", "to", "on", "for", "by", "over", "at", "per", "outside", "from", "within", "as", "?", ".", "a", "an", "any", "all", "the", "what", "which", "how", "many", "much", "where", "bigger", "smaller", "longer", "shorter", "taller", "lower", "higher", "greater", "less", "more", "number", "and", "but", "or", "no", "not", "it", "there", "name", "tell", "give", "show", "one", "count", "me", "dont", "find", "only", "list", "some", "can", "could", "you"} 10000 1.0 {}
NUMBER number_preterminal {} {100.0} {1.0} {} 1 1.0 {}
P preterminal {predicate_only, direction} {0.001, 0.01, 0.0001} {1.0, 1.0, 1.0} {} 10000 1.0 {}
P -> "of"
P -> "in"
P -> "through"
P -> "with"
P -> "to"
P -> "on"
P -> "for"
P -> "by"
P -> "over"
P -> "at"
P -> "from"
P -> "within"
P -> "as"
PER preterminal {} {100.0} {1.0} {} 1 1.0 {}
PER -> "per"
OUTSIDE preterminal {predicate_only, direction} {1000.0, 0.1, 0.1} {1.0, 1.0, 1.0} {} 1 1.0 {}
OUTSIDE -> "outside"
RELATIVE_ADJ preterminal {predicate_only, direction} {1000.0, 0.1, 0.1} {1.0, 1.0, 1.0} {} 10 1.0 {}
RELATIVE_ADJ -> "bigger"
RELATIVE_ADJ -> "smaller"
RELATIVE_ADJ -> "longer"
RELATIVE_ADJ -> "shorter"
RELATIVE_ADJ -> "taller"
RELATIVE_ADJ -> "lower"
RELATIVE_ADJ -> "higher"
RELATIVE_ADJ -> "greater"
RELATIVE_ADJ -> "less"
RELATIVE_ADJ -> "more"
QUESTION preterminal {} {100.0} {1.0} {} 1 1.0 {}
QUESTION -> "?"
PERIOD preterminal {} {100.0} {1.0} {} 1 1.0 {}
PERIOD -> "."
WHAT preterminal {} {100.0} {1.0} {} 2 1.0 {}
WHAT -> "what"
WHAT -> "which"
COMP preterminal {} {100.0} {1.0} {} 1 1.0 {}
COMP -> "which"
COMP -> "that"
COMP -> "whose"
COMP -> "who"
# TODO: 'much' and 'many' need to agree with the subject
HOW_MANY preterminal {} {100.0} {1.0} {} 1 1.0 {}
HOW_MANY -> "how many"
HOW_MANY -> "how much"
HOW preterminal {} {100.0} {1.0} {} 1 1.0 {}
HOW -> "how"
# TODO: this needs to agree with the grammatical number of the subject
WHERE_IS preterminal {} {100.0} {1.0} {} 1 1.0 {}
WHERE_IS -> "where is"
WHERE_IS -> "where are"
DO preterminal {} {100.0} {1.0} {} 1 1.0 {}
DO -> "do"
DO -> "does"
A preterminal {} {100.0} {1.0} {} 2 1.0 {}
A -> "a"
A -> "an"
ANY preterminal {} {100.0} {1.0} {} 2 1.0 {}
ANY -> "any"
ALL preterminal {} {100.0} {1.0} {} 1 1.0 {}
ALL -> "all"
THE preterminal {} {100.0} {1.0} {} 1 1.0 {}
THE -> "the"
DEFINITE preterminal {} {100.0} {1.0} {} 1 1.0 {}
DEFINITE -> "the"
DEFINITE -> "all"
DEFINITE -> "all the"
NO preterminal {} {100.0} {1.0} {} 1 1.0 {}
NO -> "no"
NUMBER_OF preterminal {} {100.0} {1.0} {} 1 1.0 {}
NUMBER_OF -> "number of"
THAN preterminal {} {100.0} {1.0} {} 1 1.0 {}
THAN -> "than"
IS preterminal {} {100.0} {1.0} {} 1 1.0 {}
IS -> "is"
IS -> "are"
ARE preterminal {} {100.0} {1.0} {} 1 1.0 {}
ARE -> "are"
NOT preterminal {} {100.0} {1.0} {} 1 1.0 {}
NOT -> "not"
# TODO: 'and' and 'or' obviously have distinct semantic behavior
CNJ preterminal {} {100.0} {1.0} {} 1 1.0 {}
CNJ -> "and"
CNJ -> "but"
CNJ -> "or"
AT_LEAST preterminal {} {100.0} {1.0} {} 1 1.0 {}
AT_LEAST -> "at least"
ONE preterminal {} {100.0} {1.0} {} 1 1.0 {}
ONE -> "one"
THERE preterminal {} {100.0} {1.0} {} 1 1.0 {}
THERE -> "there"
NAME preterminal {} {100.0} {1.0} {} 1 1.0 {}
NAME -> "name"
GIVE preterminal {} {100.0} {1.0} {} 1 1.0 {}
GIVE -> "give"
SHOW preterminal {} {100.0} {1.0} {} 1 1.0 {}
SHOW -> "show"
TELL preterminal {} {100.0} {1.0} {} 1 1.0 {}
TELL -> "tell"
COUNT preterminal {} {100.0} {1.0} {} 1 1.0 {}
COUNT -> "count"
ME preterminal {} {100.0} {1.0} {} 1 1.0 {}
ME -> "me"
DONOT preterminal {} {100.0} {1.0} {} 1 1.0 {}
DONOT -> "dont"
DONOT -> "do not"
FIND preterminal {} {100.0} {1.0} {} 1 1.0 {}
FIND -> "find"
ONLY preterminal {} {100.0} {1.0} {} 1 1.0 {}
ONLY -> "only"
LIST preterminal {} {100.0} {1.0} {} 1 1.0 {}
LIST -> "list"
SOME preterminal {} {100.0} {1.0} {} 1 1.0 {}
SOME -> "some"
OF preterminal {} {100.0} {1.0} {} 1 1.0 {}
OF -> "of"
MD preterminal {} {100.0} {1.0} {} 1 1.0 {}
MD -> "can"
MD -> "could"
YOU preterminal {} {100.0} {1.0} {} 1 1.0 {}
YOU -> "you"
OVER preterminal {} {100.0} {1.0} {} 1 1.0 {}
OVER -> "over"