zenlish 0.1.15 → 0.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,6 +49,7 @@ module Zenlish
49
49
  def before ; Lex::Literal.new('before', get_lexeme('before', WClasses::SubordinatingConjunction), 0) ; end
50
50
  literal2var('big', 'big')
51
51
  literal2var('big', 'bigger')
52
+ literal2var('body', 'body')
52
53
  literal2var('can', 'can')
53
54
  def did ; Lex::Literal.new('did', get_lexeme('do', WClasses::IrregularVerbDo), 0) ; end
54
55
  def do_ ; Lex::Literal.new('do', get_lexeme('do', WClasses::IrregularVerbDo), 0) ; end
@@ -100,7 +101,8 @@ module Zenlish
100
101
  literal2var('now', 'now')
101
102
  literal2var('of', 'of')
102
103
  literal2var('on', 'on')
103
- literal2var('one', 'one')
104
+ def one ; Lex::Literal.new('one', get_lexeme('one', WClasses::Cardinal), 0) ; end
105
+ def one_as_pronoun ; Lex::Literal.new('one', get_lexeme('one', WClasses::IndefinitePronoun), 0) ; end
104
106
  literal2var('other', 'other')
105
107
  literal2var('part', 'part')
106
108
  literal2var('part', 'parts')
@@ -126,6 +128,7 @@ module Zenlish
126
128
  literal2var('thing', 'thing')
127
129
  literal2var('thing', 'things')
128
130
  literal2var('think', 'think')
131
+ literal2var('think', 'thinking')
129
132
  literal2var('think', 'thinks')
130
133
  def these ; Lex::Literal.new('these', get_lexeme('this', WClasses::DemonstrativeDeterminer), 0) ; end
131
134
  def these_as_pronoun ; Lex::Literal.new('these', get_lexeme('this', WClasses::DemonstrativePronoun), 0) ; end
@@ -137,7 +140,8 @@ module Zenlish
137
140
  literal2var('Tony', 'Tony')
138
141
  literal2var('touch', 'touching')
139
142
  literal2var('true', 'true', '_')
140
- literal2var('two', 'two')
143
+ def two ; Lex::Literal.new('two', get_lexeme('two', WClasses::Cardinal), 0) ; end
144
+ def two_as_pronoun ; Lex::Literal.new('two', get_lexeme('two', WClasses::IndefinitePronoun), 0) ; end
141
145
  literal2var('very', 'very')
142
146
  literal2var('want', 'want')
143
147
  literal2var('want', 'wants')
@@ -170,659 +174,701 @@ module Zenlish
170
174
  end
171
175
  end
172
176
 
177
+ context 'Producing parse tree or forest:' do
178
+ it 'should produce trees (for non ambiguous input)' do
179
+ # OK, non-ambiguous sentence: "Lisa sees Tony."
180
+ literals = [lisa, sees, tony, dot]
181
+ result_type = Rley::PTree::ParseTree
182
+ expect(subject.to_ptree(literals)).to be_kind_of(result_type)
183
+ end
184
+
185
+ it 'should produce forest' do
186
+ # Sentence: "Lisa sees Tony."
187
+ literals = [lisa, sees, tony, dot]
188
+ result_type = Rley::SPPF::ParseForest
189
+ expect(subject.to_pforest(literals)).to be_kind_of(result_type)
190
+ end
191
+ end # context
192
+
173
193
  context 'Parsing lessons:' do
174
194
  it 'should parse sample sentences from lesson 1-A' do
175
195
  # Sentence 1-01: "Tony sees Lisa."
176
196
  # in absence of a tokenizer, we create a sequence of literals by hand...
177
197
  # prox_tony = ZProxy.new(tony)
178
198
  literals = [tony, sees, lisa, dot]
179
- expect { subject.parse(literals) }.not_to raise_error
199
+ expect { subject.to_ptree(literals) }.not_to raise_error
180
200
 
181
201
  # Sentence 1-02a: "Tony sees something."
182
202
  sentence_literals = [tony, sees, something, dot]
183
- expect { subject.parse(sentence_literals) }.not_to raise_error
203
+ expect { subject.to_ptree(sentence_literals) }.not_to raise_error
184
204
 
185
205
  # Sentence 1-02b: "Lisa sees something."
186
206
  sentence_literals = [lisa, sees, something, dot]
187
- expect { subject.parse(sentence_literals) }.not_to raise_error
207
+ expect { subject.to_ptree(sentence_literals) }.not_to raise_error
188
208
 
189
209
  # Sentence 1-03: "Tony sees this thing."
190
210
  sentence_literals = [tony, sees, this, thing, dot]
191
- expect { subject.parse(sentence_literals) }.not_to raise_error
211
+ expect { subject.to_ptree(sentence_literals) }.not_to raise_error
192
212
 
193
213
  # Sentence 1-04: "Lisa sees the other thing."
194
214
  sentence_literals = [lisa, sees, the, other, thing, dot]
195
- expect { subject.parse(sentence_literals) }.not_to raise_error
215
+ expect { subject.to_ptree(sentence_literals) }.not_to raise_error
196
216
  end
197
217
 
198
218
  it 'should parse sample sentences from lesson 1-B' do
199
219
  # Sentence 1-05a: "Lisa sees the same thing."
200
220
  literals = [lisa, sees, the, same, thing, dot]
201
- expect { subject.parse(literals) }.not_to raise_error
221
+ expect { subject.to_ptree(literals) }.not_to raise_error
202
222
 
203
223
  # Sentence 1-05b: "Lisa sees the same thing as Tony sees."
204
224
  literals = [lisa, sees, the, same, thing, as, tony, sees, dot]
205
225
  # same is an adjective of equality comparison
206
226
  # as is part of same ... as combination
207
227
  # it introduces a comparative clause
208
- expect { subject.parse(literals) }.not_to raise_error
228
+ expect { subject.to_pforest(literals) }.not_to raise_error
209
229
 
210
230
  # Sentence 1-06: "Tony sees one thing."
211
231
  literals = [tony, sees, one, thing, dot]
212
- expect { subject.parse(literals) }.not_to raise_error
232
+ expect { subject.to_pforest(literals) }.not_to raise_error
213
233
 
214
234
  # Sentence 1-07: "Lisa sees two things."
215
235
  literals = [lisa, sees, two, things, dot]
216
- expect { subject.parse(literals) }.not_to raise_error
236
+ expect { subject.to_pforest(literals) }.not_to raise_error
217
237
 
218
238
  # Sentence 1-08a: "Tony sees one person."
219
239
  literals = [tony, sees, one, person, dot]
220
- expect { subject.parse(literals) }.not_to raise_error
240
+ expect { subject.to_pforest(literals) }.not_to raise_error
221
241
 
222
242
  # Sentence 1-08b: "Lisa sees two people."
223
243
  literals = [lisa, sees, two, people, dot]
224
- expect { subject.parse(literals) }.not_to raise_error
244
+ expect { subject.to_pforest(literals) }.not_to raise_error
225
245
 
226
246
  # Sentence 1-05b: "Tony sees the same person as Lisa sees."
227
247
  literals = [tony, sees, the, same, person, as, lisa, sees, dot]
228
248
  # same is an adjective of equality comparison
229
249
  # as is part of same ... as combination
230
250
  # it introduces a comparative clause
231
- expect { subject.parse(literals) }.not_to raise_error
251
+ expect { subject.to_pforest(literals) }.not_to raise_error
232
252
  end
233
253
 
234
254
  it 'should parse sample sentences from lesson 1-C' do
235
255
  # Sentence 1-09a: "Tony sees many things."
236
256
  literals = [tony, sees, many, things, dot]
237
- expect { subject.parse(literals) }.not_to raise_error
257
+ expect { subject.to_pforest(literals) }.not_to raise_error
238
258
 
239
259
  # Sentence 1-09b: "Lisa sees many people."
240
260
  literals = [lisa, sees, many, people, dot]
241
- expect { subject.parse(literals) }.not_to raise_error
261
+ expect { subject.to_pforest(literals) }.not_to raise_error
242
262
 
243
263
  # Sentence 1-10: "Tony is inside this thing."
244
264
  literals = [tony, is, inside, this, thing, dot]
245
- expect { subject.parse(literals) }.not_to raise_error
265
+ expect { subject.to_pforest(literals) }.not_to raise_error
246
266
 
247
267
  # Sentence 1-11: "Lisa is not inside this thing."
248
268
  literals = [lisa, is, not_, inside, this, thing, dot]
249
- expect { subject.parse(literals) }.not_to raise_error
269
+ expect { subject.to_pforest(literals) }.not_to raise_error
250
270
 
251
271
  # Sentence: "Lisa does not see people inside the other thing."
252
272
  literals = [lisa, does_aux, not_, see, people, inside, the, other, thing, dot]
253
- expect { subject.parse(literals) }.not_to raise_error
273
+ # Ambiguous parse...
274
+ expect { subject.to_pforest(literals) }.not_to raise_error
254
275
  end
255
276
 
256
277
  it 'should parse sample sentences from lesson 1-D' do
257
278
  # Sentence 1-12a: "Some of these people are inside this thing."
258
279
  literals = [some, of, these, people, are, inside, this, thing, dot]
259
- expect { subject.parse(literals) }.not_to raise_error
280
+ expect { subject.to_pforest(literals) }.not_to raise_error
260
281
 
261
282
  # Sentence 1-12b: "Some of these people are not inside this thing."
262
283
  literals = [some, of, these, people, are, not_, inside, this, thing, dot]
263
- expect { subject.parse(literals) }.not_to raise_error
284
+ expect { subject.to_pforest(literals) }.not_to raise_error
264
285
 
265
286
  # Sentence 1-13: "All of these people are inside this thing."
266
287
  literals = [all, of, these, people, are, not_, inside, this, thing, dot]
267
- expect { subject.parse(literals) }.not_to raise_error
288
+ expect { subject.to_pforest(literals) }.not_to raise_error
268
289
 
269
290
  # Sentence 1-14a: "There are two people inside one of these things."
270
291
  literals = [there, are, two, people, inside, one, of, these, things, dot]
271
- expect { subject.parse(literals) }.not_to raise_error
292
+ expect { subject.to_pforest(literals) }.not_to raise_error
272
293
 
273
294
  # Sentence 1-14b: "There are not people inside the other thing."
274
295
  literals = [there, are, not_, people, inside, the, other, thing, dot]
275
- expect { subject.parse(literals) }.not_to raise_error
296
+ expect { subject.to_pforest(literals) }.not_to raise_error
276
297
 
277
298
  # Sentence 1-15a: "There are many people inside this thing."
278
299
  literals = [there, are, many, people, inside, this, thing, dot]
279
- expect { subject.parse(literals) }.not_to raise_error
300
+ expect { subject.to_pforest(literals) }.not_to raise_error
280
301
 
281
302
  # Sentence 1-15b: "There are more people inside this thing."
282
303
  literals = [there, are, more, people, inside, this, thing, dot]
283
- expect { subject.parse(literals) }.not_to raise_error
284
-
285
- # Sentence 1-15c: "There are more people inside the other thing than there are inside this thing."
286
- literals = [there, are, more, people, inside, the, other, thing, than, there, are, inside, this, thing, dot]
287
- expect { subject.parse(literals) }.not_to raise_error
304
+ expect { subject.to_pforest(literals) }.not_to raise_error
305
+
306
+ # Sentence 1-15c: "There are more people inside the other thing
307
+ # than there are inside this thing."
308
+ literals = [there, are, more, people, inside, the, other, thing,
309
+ than, there, are, inside, this, thing, dot]
310
+ # Ambiguous parse
311
+ expect { subject.to_pforest(literals) }.not_to raise_error
288
312
  end
289
313
 
290
314
  it 'should parse sample sentences from lesson 1-E' do
291
315
  # Sentence 1-16a: "Two of these things are alive."
292
316
  literals = [two, of, these, things, are, alive, dot]
293
- expect { subject.parse(literals) }.not_to raise_error
317
+ expect { subject.to_pforest(literals) }.not_to raise_error
294
318
 
295
319
  # Sentence 1-16b: "One of these things is not alive."
296
320
  literals = [one, of, these, things, is, not_, alive, dot]
297
- expect { subject.parse(literals) }.not_to raise_error
321
+ expect { subject.to_pforest(literals) }.not_to raise_error
298
322
 
299
323
  # Sentence 1-17a: "Tony sees some living things."
300
324
  literals = [tony, sees, some, living, things, dot]
301
- expect { subject.parse(literals) }.not_to raise_error
325
+ expect { subject.to_pforest(literals) }.not_to raise_error
302
326
 
303
327
  # Sentence 1-17b: "Two of these things are big."
304
328
  literals = [two, of, these, things, are, big, dot]
305
- expect { subject.parse(literals) }.not_to raise_error
329
+ expect { subject.to_pforest(literals) }.not_to raise_error
306
330
 
307
331
  # Sentence 1-17c: "One of these things is not big."
308
332
  literals = [one, of, these, things, is, not_, big, dot]
309
- expect { subject.parse(literals) }.not_to raise_error
333
+ expect { subject.to_pforest(literals) }.not_to raise_error
310
334
 
311
335
  # Sentence 1-18a: "Tony sees some living things."
312
336
  literals = [tony, sees, some, living, things, dot]
313
- expect { subject.parse(literals) }.not_to raise_error
337
+ expect { subject.to_pforest(literals) }.not_to raise_error
314
338
 
315
339
  # Sentence 1-18b: "One of these is big."
316
- literals = [one, of, these, is, big, dot]
317
- expect { subject.parse(literals) }.not_to raise_error
340
+ literals = [one, of, these_as_pronoun, is, big, dot]
341
+ expect { subject.to_pforest(literals) }.not_to raise_error
318
342
 
319
343
  # Sentence 1-18c: "Two of these are small."
320
- literals = [two, of, these, are, small, dot]
321
- expect { subject.parse(literals) }.not_to raise_error
344
+ literals = [two, of, these_as_pronoun, are, small, dot]
345
+ expect { subject.to_pforest(literals) }.not_to raise_error
322
346
 
323
347
  # Sentence 1-19a: "Tony sees one living thing."
324
348
  literals = [tony, sees, one, living, thing, dot]
325
- expect { subject.parse(literals) }.not_to raise_error
349
+ expect { subject.to_pforest(literals) }.not_to raise_error
326
350
 
327
351
  # Sentence 1-19b: "This one is very big."
328
352
  literals = [this_one, is, very, big, dot]
329
- expect { subject.parse(literals) }.not_to raise_error
353
+ expect { subject.to_pforest(literals) }.not_to raise_error
330
354
 
331
355
  # Sentence: "This thing is bigger than the other thing."
332
356
  literals = [this, thing, is, bigger, than, the, other, thing, dot]
333
- expect { subject.parse(literals) }.not_to raise_error
357
+ expect { subject.to_pforest(literals) }.not_to raise_error
334
358
 
335
359
  # Sentence: "This thing is smaller than the other thing."
336
360
  literals = [this, thing, is, smaller, than, the, other, thing, dot]
337
- expect { subject.parse(literals) }.not_to raise_error
361
+ expect { subject.to_pforest(literals) }.not_to raise_error
338
362
  end
339
363
 
340
364
  it 'should parse sample sentences from lesson 1-F' do
341
365
  # Sentence 1-20a: "Tony sees some living things."
342
366
  literals = [tony, sees, some, living, things, dot]
343
- expect { subject.parse(literals) }.not_to raise_error
367
+ expect { subject.to_pforest(literals) }.not_to raise_error
344
368
 
345
369
  # Sentence 1-20b: "Two of these are the same kind of living thing."
346
370
  literals = [these_as_pronoun, are, the, same, kind, of, living, thing, dot]
347
- expect { subject.parse(literals) }.not_to raise_error
371
+ expect { subject.to_pforest(literals) }.not_to raise_error
348
372
 
349
373
  # Sentence 1-20c: "One of these is not the same kind as the other two."
350
- literals = [one, of, these, is, not_, the, same, kind, as, the, other, two, dot]
351
- expect { subject.parse(literals) }.not_to raise_error
374
+ literals = [one, of, these_as_pronoun, is, not_, the, same, kind,
375
+ as, the, other, two_as_pronoun, dot]
376
+ expect { subject.to_pforest(literals) }.not_to raise_error
352
377
 
353
378
  # Sentence 1-21a: "There is one person inside this thing."
354
379
  literals = [there, is, one, person, inside, this, thing, dot]
355
- expect { subject.parse(literals) }.not_to raise_error
380
+ expect { subject.to_pforest(literals) }.not_to raise_error
356
381
 
357
382
  # Sentence 1-21b: "If Tony is not inside this thing, then another person is inside."
358
383
  literals = [if_, tony, is, not_, inside, this, thing, comma, then_,
359
384
  another, person, is, inside, dot]
360
- expect { subject.parse(literals) }.not_to raise_error
385
+ # Ambiguous parse
386
+ expect { subject.to_pforest(literals) }.not_to raise_error
361
387
 
362
388
  # Sentence 1-22a: "Tony is touching something."
363
389
  literals = [tony, is_aux, touching, something, dot]
364
- expect { subject.parse(literals) }.not_to raise_error
390
+ expect { subject.to_pforest(literals) }.not_to raise_error
365
391
 
366
392
  # Sentence 1-22b: "Lisa is touching Tony."
367
393
  literals = [lisa, is_aux, touching, tony, dot]
368
- expect { subject.parse(literals) }.not_to raise_error
394
+ expect { subject.to_pforest(literals) }.not_to raise_error
369
395
 
370
396
  # Sentence 1-23a: "Tony is far from Lisa."
371
397
  literals = [tony, is, far, from, lisa, dot]
372
- expect { subject.parse(literals) }.not_to raise_error
398
+ expect { subject.to_pforest(literals) }.not_to raise_error
373
399
 
374
400
  # Sentence 1-23b: "Lisa is far from Tony."
375
401
  literals = [lisa, is, far, from, tony, dot]
376
- expect { subject.parse(literals) }.not_to raise_error
402
+ expect { subject.to_pforest(literals) }.not_to raise_error
377
403
 
378
404
  # Sentence 1-23c: "Tony is not far from Lisa."
379
405
  literals = [tony, is, far, from, lisa, dot]
380
- expect { subject.parse(literals) }.not_to raise_error
406
+ expect { subject.to_pforest(literals) }.not_to raise_error
381
407
 
382
408
  # Sentence 1-24: "Tony is near to Lisa."
383
409
  literals = [tony, is, near_to, lisa, dot]
384
- expect { subject.parse(literals) }.not_to raise_error
410
+ expect { subject.to_pforest(literals) }.not_to raise_error
385
411
  end
386
412
 
387
413
  it 'should parse sample sentences from lesson 1-G' do
388
414
  # Sentence 1-25a: "Lisa is in this place."
389
415
  literals = [lisa, is, in_, this, place, dot]
390
- expect { subject.parse(literals) }.not_to raise_error
416
+ expect { subject.to_pforest(literals) }.not_to raise_error
391
417
 
392
418
  # Sentence 1-25b: "There are two other things in this place."
393
419
  literals = [there, are, two, other, things, in_, this, place, dot]
394
- expect { subject.parse(literals) }.not_to raise_error
420
+ expect { subject.to_pforest(literals) }.not_to raise_error
395
421
 
396
422
  # Sentence 1-25c: "Lisa is in the same place as these two other things."
397
423
  literals = [lisa, is, in_, the, same, place, as, these, two, other, things, dot]
398
- expect { subject.parse(literals) }.not_to raise_error
424
+ expect { subject.to_pforest(literals) }.not_to raise_error
399
425
 
400
426
  # Sentence 1-25d: "Tony is not in this place."
401
427
  literals = [tony, is, not_, in_, this, place, dot]
402
- expect { subject.parse(literals) }.not_to raise_error
428
+ expect { subject.to_pforest(literals) }.not_to raise_error
403
429
 
404
430
  # Sentence 1-25e: "Tony is in another place."
405
431
  literals = [tony, is, in_, another, place, dot]
406
- expect { subject.parse(literals) }.not_to raise_error
432
+ expect { subject.to_pforest(literals) }.not_to raise_error
407
433
 
408
434
  # Sentence 1-26a: "Lisa is inside this thing."
409
435
  literals = [lisa, is, inside, this, thing, dot]
410
- expect { subject.parse(literals) }.not_to raise_error
436
+ expect { subject.to_pforest(literals) }.not_to raise_error
411
437
 
412
438
  # Sentence 1-26b: "Tony is above this thing."
413
439
  literals = [tony, is, above, this, thing, dot]
414
- expect { subject.parse(literals) }.not_to raise_error
440
+ expect { subject.to_pforest(literals) }.not_to raise_error
415
441
 
416
442
  # Sentence 1-26c: "Tony is above lisa."
417
443
  literals = [tony, is, above, lisa, dot]
418
- expect { subject.parse(literals) }.not_to raise_error
444
+ expect { subject.to_pforest(literals) }.not_to raise_error
419
445
 
420
446
  # Sentence 1-27a: "Tony is on one side of this thing."
421
447
  literals = [tony, is, on, one, side, of, this, thing, dot]
422
- expect { subject.parse(literals) }.not_to raise_error
448
+ expect { subject.to_pforest(literals) }.not_to raise_error
423
449
 
424
450
  # Sentence 1-27b: "Lisa is on the other side."
425
451
  literals = [lisa, is, on, the, other, side, dot]
426
- expect { subject.parse(literals) }.not_to raise_error
452
+ expect { subject.to_pforest(literals) }.not_to raise_error
427
453
 
428
454
  # Sentence 1-27c: "Tony is touching one side of this thing."
429
455
  literals = [tony, is_aux, touching, one, side, of, this, thing, dot]
430
- expect { subject.parse(literals) }.not_to raise_error
456
+ # Ambiguous parse
457
+ expect { subject.to_pforest(literals) }.not_to raise_error
431
458
  end
432
459
 
433
460
  it 'should parse sample sentences from lesson 1-H' do
434
461
  # Sentence 1-28: "Tony hears something."
435
462
  literals = [tony, hears, something, dot]
436
- expect { subject.parse(literals) }.not_to raise_error
463
+ expect { subject.to_pforest(literals) }.not_to raise_error
437
464
 
438
465
  # Sentence 1-29a: "Tony says something."
439
466
  literals = [tony, says, something, dot]
440
- expect { subject.parse(literals) }.not_to raise_error
467
+ expect { subject.to_pforest(literals) }.not_to raise_error
441
468
 
442
469
  # Sentence 1-29b: "Tony says something to Lisa."
443
470
  literals = [tony, says, something, to, lisa, dot]
444
- expect { subject.parse(literals) }.not_to raise_error
471
+ # Ambiguous parse
472
+ expect { subject.to_pforest(literals) }.not_to raise_error
445
473
 
446
474
  # Sentence 1-29c: "Tony says something about this living thing."
447
475
  literals = [tony, says, something, about, this, living, thing, dot]
448
- expect { subject.parse(literals) }.not_to raise_error
476
+ expect { subject.to_pforest(literals) }.not_to raise_error
449
477
 
450
478
  # Sentence 1-29d: 'Tony says: "This living thing is small."'
451
479
  literals = [tony, says, colon, quote, this, living, thing, is, small, dot, quote, dot]
452
- expect { subject.parse(literals) }.not_to raise_error
480
+ expect { subject.to_pforest(literals) }.not_to raise_error
453
481
 
454
482
  # Sentence 1-30a: "Tony says some words."
455
483
  literals = [tony, says, some, words, dot]
456
- expect { subject.parse(literals) }.not_to raise_error
484
+ expect { subject.to_pforest(literals) }.not_to raise_error
457
485
 
458
486
  # Sentence 1-30b: "Lisa says more words."
459
487
  literals = [lisa, says, more, words, dot]
460
- expect { subject.parse(literals) }.not_to raise_error
488
+ expect { subject.to_pforest(literals) }.not_to raise_error
461
489
 
462
490
  # Sentence 1-31a: 'Tony says: "There are two people inside this thing."'
463
491
  literals = [tony, says, colon, quote, there, are, two, people, inside,
464
492
  this, thing, dot, quote, dot]
465
- expect { subject.parse(literals) }.not_to raise_error
493
+ expect { subject.to_pforest(literals) }.not_to raise_error
466
494
 
467
495
  # Sentence 1-31b: 'Lisa says: "There is one person inside this thing."'
468
496
  literals = [lisa, says, colon, quote, there, is, one, person, inside,
469
497
  this, thing, dot, quote, dot]
470
- expect { subject.parse(literals) }.not_to raise_error
498
+ expect { subject.to_pforest(literals) }.not_to raise_error
471
499
 
472
500
  # Sentence 1-31c: "What Tony says is not true."
473
501
  literals = [what, tony, says, is, not_, true_, dot]
474
- expect { subject.parse(literals) }.not_to raise_error
502
+ expect { subject.to_pforest(literals) }.not_to raise_error
475
503
 
476
504
  # Sentence 1-31d: "What Lisa says is true."
477
505
  literals = [what, lisa, says, is, true_, dot]
478
- expect { subject.parse(literals) }.not_to raise_error
506
+ expect { subject.to_pforest(literals) }.not_to raise_error
479
507
  end
480
508
 
481
509
  it 'should parse sample sentences from lesson 2-A' do
482
510
  # Sentence 2-01a: "This thing is like two of the other things."
483
511
  literals = [this, thing, is, like, two, of, the, other, things, dot]
484
- expect { subject.parse(literals) }.not_to raise_error
512
+ expect { subject.to_pforest(literals) }.not_to raise_error
485
513
 
486
514
  # Sentence 2-01b: "One of these things is not like the other things."
487
515
  literals = [one, of, these, things, is, not_, like, the, other, things, dot]
488
- expect { subject.parse(literals) }.not_to raise_error
516
+ expect { subject.to_pforest(literals) }.not_to raise_error
489
517
 
490
518
  # Sentence 2-02a: "Lisa has something."
491
519
  literals = [lisa, has, something, dot]
492
- expect { subject.parse(literals) }.not_to raise_error
520
+ expect { subject.to_pforest(literals) }.not_to raise_error
493
521
 
494
522
  # Sentence 2-02b: "Tony has another thing."
495
523
  literals = [tony, has, another, thing, dot]
496
- expect { subject.parse(literals) }.not_to raise_error
524
+ expect { subject.to_pforest(literals) }.not_to raise_error
497
525
 
498
526
  # Sentence 2-02c: "Lisa does not have the same kind of thing as Tony has."
499
527
  literals = [lisa, does_aux, not_, have, the, same, kind, of, thing, as, tony, has, dot]
500
- expect { subject.parse(literals) }.not_to raise_error
528
+ # Ambiguous parse
529
+ expect { subject.to_pforest(literals) }.not_to raise_error
501
530
 
502
531
  # Sentence 2-03a: "Lisa is touching part of this thing."
503
532
  literals = [lisa, is_aux, touching, part, of, this, thing, dot]
504
- expect { subject.parse(literals) }.not_to raise_error
533
+ # Ambiguous parse
534
+ expect { subject.to_pforest(literals) }.not_to raise_error
505
535
 
506
536
  # Sentence 2-03b: "Tony is touching the other part."
507
537
  literals = [tony, is_aux, touching, the, other, part, dot]
508
- expect { subject.parse(literals) }.not_to raise_error
538
+ expect { subject.to_pforest(literals) }.not_to raise_error
509
539
 
510
540
  # Sentence 2-Ax: "What Tony has is like what Lisa has."
511
541
  literals = [what, tony, has, is, like, what, lisa, has, dot]
512
- expect { subject.parse(literals) }.not_to raise_error
542
+ expect { subject.to_pforest(literals) }.not_to raise_error
513
543
  end
514
544
 
515
545
  it 'should parse sample sentences from lesson 2-B' do
516
546
  # Sentence 2-04a: "Lisa does something."
517
547
  literals = [lisa, does, something, dot]
518
- expect { subject.parse(literals) }.not_to raise_error
548
+ expect { subject.to_pforest(literals) }.not_to raise_error
519
549
 
520
550
  # Sentence 2-04b: "Lisa does something with this thing."
521
551
  literals = [lisa, does, something, with, this, thing, dot]
522
- expect { subject.parse(literals) }.not_to raise_error
552
+ # Ambiguous parse
553
+ expect { subject.to_pforest(literals) }.not_to raise_error
523
554
 
524
555
  # Sentence 2-04c: "Lisa does something to Tony."
525
556
  literals = [lisa, does, something, to, tony, dot]
526
- expect { subject.parse(literals) }.not_to raise_error
557
+ # Ambiguous parse
558
+ expect { subject.to_pforest(literals) }.not_to raise_error
527
559
 
528
560
  # Sentence 2-04d: "Lisa does something to Tony with this thing."
529
561
  literals = [lisa, does, something, to, tony, with, this, thing, dot]
530
- expect { subject.parse(literals) }.not_to raise_error
562
+ # Ambiguous parse
563
+ expect { subject.to_pforest(literals) }.not_to raise_error
531
564
 
532
565
  # Sentence 2-05a: "Something happens."
533
566
  literals = [something, happens, dot]
534
- expect { subject.parse(literals) }.not_to raise_error
567
+ expect { subject.to_pforest(literals) }.not_to raise_error
535
568
 
536
569
  # Sentence 2-05b: "Something happens to Lisa."
537
570
  literals = [something, happens, to, lisa, dot]
538
- expect { subject.parse(literals) }.not_to raise_error
571
+ expect { subject.to_pforest(literals) }.not_to raise_error
539
572
 
540
573
  # Sentence 2-06a: "Tony does something."
541
574
  literals = [tony, does, something, dot]
542
- expect { subject.parse(literals) }.not_to raise_error
575
+ expect { subject.to_pforest(literals) }.not_to raise_error
543
576
 
544
577
  # Sentence 2-06b: "Something happens to Lisa because of this."
545
578
  literals = [something, happens, to, lisa, because, of, this_as_pronoun, dot]
546
- expect { subject.parse(literals) }.not_to raise_error
579
+ expect { subject.to_pforest(literals) }.not_to raise_error
547
580
 
548
581
  # Sentence 2-06c: "Something happens to Lisa because Tony does this."
549
582
  literals = [something, happens, to, lisa, because, tony, does, this_as_pronoun, dot]
550
- expect { subject.parse(literals) }.not_to raise_error
583
+ expect { subject.to_pforest(literals) }.not_to raise_error
551
584
 
552
585
  # Sentence 2-06: "Something happens to this living thing."
553
586
  literals = [something, happens, to, this, living, thing, dot]
554
- expect { subject.parse(literals) }.not_to raise_error
587
+ expect { subject.to_pforest(literals) }.not_to raise_error
555
588
  end
556
589
 
557
590
  it 'should parse sample sentences from lesson 2-C' do
558
591
  # Sentence 2-07a: "Lisa thinks Tony is inside this thing."
559
592
  literals = [lisa, thinks, tony, is, inside, this, thing, dot]
560
- expect { subject.parse(literals) }.not_to raise_error
593
+ # Ambiguous parse
594
+ expect { subject.to_pforest(literals) }.not_to raise_error
561
595
 
562
596
  # Sentence 2-07b: "Lisa thinks something about Tony."
563
597
  literals = [lisa, thinks, something, about, tony, dot]
564
- expect { subject.parse(literals) }.not_to raise_error
598
+ # Ambiguous parse
599
+ expect { subject.to_pforest(literals) }.not_to raise_error
565
600
 
566
601
  # Sentence 2-08a: "Tony knows Lisa is inside this thing, because Tony sees Lisa inside."
567
602
  literals = [tony, knows, lisa, is, inside, this, thing, comma,
568
603
  because, tony, sees, lisa, inside, dot]
569
- expect { subject.parse(literals) }.not_to raise_error
604
+ # Ambiguous parse
605
+ expect { subject.to_pforest(literals) }.not_to raise_error
570
606
 
571
607
  # Sentence 2-08b: "Tony knows something about Lisa."
572
608
  literals = [tony, knows, something, about, lisa, dot]
573
- expect { subject.parse(literals) }.not_to raise_error
609
+ # Ambiguous parse
610
+ expect { subject.to_pforest(literals) }.not_to raise_error
574
611
 
575
612
  # Sentence 2-09a: "Tony wants this thing."
576
613
  literals = [tony, wants, this, thing, dot]
577
- expect { subject.parse(literals) }.not_to raise_error
614
+ expect { subject.to_pforest(literals) }.not_to raise_error
578
615
 
579
616
  # Sentence 2-09b: "Tony wants to have this thing."
580
617
  literals = [tony, wants, to, have, this, thing, dot]
581
- expect { subject.parse(literals) }.not_to raise_error
618
+ # Ambiguous parse
619
+ expect { subject.to_pforest(literals) }.not_to raise_error
582
620
 
583
621
  # Sentence 2-10a: "Tony wants to do something."
584
622
  literals = [tony, wants, to, do_, something, dot]
585
- expect { subject.parse(literals) }.not_to raise_error
623
+ # Ambiguous parse
624
+ expect { subject.to_pforest(literals) }.not_to raise_error
586
625
 
587
626
  # Sentence 2-10b: "Lisa wants to do the same thing."
588
627
  literals = [lisa, wants, to, do_, the, same, thing, dot]
589
- expect { subject.parse(literals) }.not_to raise_error
628
+ # Ambiguous parse
629
+ expect { subject.to_pforest(literals) }.not_to raise_error
590
630
 
591
631
  # Sentence 2-10c: "Tony can do this."
592
632
  literals = [tony, can, do_, this_as_pronoun, dot]
593
- expect { subject.parse(literals) }.not_to raise_error
633
+ expect { subject.to_pforest(literals) }.not_to raise_error
594
634
 
595
635
  # Sentence 2-10d: "This is not something Lisa can do."
596
636
  literals = [this_as_pronoun, is, not_, something, lisa, can, do_, dot]
597
- expect { subject.parse(literals) }.not_to raise_error
637
+ expect { subject.to_pforest(literals) }.not_to raise_error
598
638
 
599
639
  # Sentence 2-10e: "Lisa cannot do this."
600
640
  literals = [lisa, can, not_, do_, this_as_pronoun, dot]
601
- expect { subject.parse(literals) }.not_to raise_error
641
+ expect { subject.to_pforest(literals) }.not_to raise_error
602
642
  end
603
643
 
604
644
  it 'should parse sample sentences from lesson 2-D' do
605
645
  # Sentence 2-11a: "This person does something bad."
606
646
  literals = [this, person, does, something, bad, dot]
607
- expect { subject.parse(literals) }.not_to raise_error
647
+ # Ambiguous parse
648
+ expect { subject.to_pforest(literals) }.not_to raise_error
608
649
 
609
650
  # Sentence 2-11b: "This person does something bad for Tony."
610
651
  literals = [this, person, does, something, bad, for_, tony, dot]
611
- expect { subject.parse(literals) }.not_to raise_error
652
+ # Ambiguous parse
653
+ expect { subject.to_pforest(literals) }.not_to raise_error
612
654
 
613
655
  # Sentence 2-12a: "Tony does something good."
614
656
  literals = [tony, does, something, good, dot]
615
- expect { subject.parse(literals) }.not_to raise_error
657
+ expect { subject.to_pforest(literals) }.not_to raise_error
616
658
 
617
659
  # Sentence 2-12b: "Tony does something good for Lisa."
618
660
  literals = [tony, does, something, good, for_, lisa, dot]
619
- expect { subject.parse(literals) }.not_to raise_error
661
+ expect { subject.to_pforest(literals) }.not_to raise_error
620
662
 
621
663
  # Sentence 2-13a: "Tony feels something."
622
664
  literals = [tony, feels, something, dot]
623
- expect { subject.parse(literals) }.not_to raise_error
665
+ expect { subject.to_pforest(literals) }.not_to raise_error
624
666
 
625
667
  # Sentence 2-13b: "This does not feel good for Tony."
626
668
  literals = [this_as_pronoun, does_aux, not_, feel, good, for_, tony, dot]
627
- expect { subject.parse(literals) }.not_to raise_error
669
+ expect { subject.to_pforest(literals) }.not_to raise_error
628
670
 
629
671
  # Sentence 2-13b: "This feels bad for Tony."
630
672
  literals = [this_as_pronoun, feels, bad, for_, tony, dot]
631
- expect { subject.parse(literals) }.not_to raise_error
673
+ expect { subject.to_pforest(literals) }.not_to raise_error
632
674
 
633
675
  # Sentence 2-Dx: "Lisa thinks about something bad happening to this
634
676
  # living thing. Thinking about this feels bad for Lisa."
635
- # literals = [lisa, thinks, about, something, bad, happening, to, this,
636
- # living, thing, dot]
637
- # expect { subject.parse(literals) }.not_to raise_error
677
+ literals = [lisa, thinks, about, something, bad, happening, to, this,
678
+ living, thing, dot,
679
+ #thinking, about, this_as_pronoun, feels, bad,
680
+ #for_, lisa, dot
681
+ ]
682
+ expect { subject.to_pforest(literals) }.not_to raise_error
638
683
  end
639
684
 
640
685
  it 'should parse sample sentences from lesson 2-E' do
641
686
  # Sentence 2-14a: "Lisa says something at this time."
642
687
  literals = [lisa, says, something, at, this, time, dot]
643
- expect { subject.parse(literals) }.not_to raise_error
688
+ # Ambiguous parse
689
+ expect { subject.to_pforest(literals) }.not_to raise_error
644
690
 
645
691
  # Sentence 2-14b: "Tony is not in this place at this time."
646
692
  literals = [tony, is, not_, in_, this, place, at, this, time, dot]
647
- expect { subject.parse(literals) }.not_to raise_error
693
+ expect { subject.to_pforest(literals) }.not_to raise_error
648
694
 
649
695
  # Sentence 2-15a: "At one time, Tony does something to this thing."
650
696
  literals = [at, one, time, comma, tony, does, something, to, this, thing, dot]
651
- expect { subject.parse(literals) }.not_to raise_error
697
+ expect { subject.to_pforest(literals) }.not_to raise_error
652
698
 
653
699
  # Sentence 2-15b: "At another time, Lisa says something."
654
700
  literals = [at, another, time, comma, lisa, says, something, dot]
655
- expect { subject.parse(literals) }.not_to raise_error
701
+ expect { subject.to_pforest(literals) }.not_to raise_error
656
702
 
657
703
  # Sentence 2-15c: "Tony does something to this thing before Lisa says something."
658
704
  literals = [tony, does, something, to, this, thing, before, lisa, says, something, dot]
659
- expect { subject.parse(literals) }.not_to raise_error
705
+ expect { subject.to_pforest(literals) }.not_to raise_error
660
706
 
661
707
  # Sentence 2-16a: "Lisa does something for a long time."
662
708
  literals = [lisa, does, something, for_, a_as_art, long, time, dot]
663
- expect { subject.parse(literals) }.not_to raise_error
709
+ expect { subject.to_pforest(literals) }.not_to raise_error
664
710
 
665
711
  # Sentence 2-17a: "Tony does something for a short time."
666
712
  literals = [tony, does, something, for_, a_as_art, short, time, dot]
667
- expect { subject.parse(literals) }.not_to raise_error
713
+ expect { subject.to_pforest(literals) }.not_to raise_error
668
714
 
669
715
  # Sentence 2-17a: "Tony does not do this for a long time."
670
716
  literals = [tony, does_aux, not_, do_, this_as_pronoun, for_, a_as_art, long, time, dot]
671
- expect { subject.parse(literals) }.not_to raise_error
717
+ expect { subject.to_pforest(literals) }.not_to raise_error
672
718
 
673
719
  # Sentence 2-18a: "Lisa sees something move."
674
720
  literals = [lisa, sees, something, move, dot]
675
- expect { subject.parse(literals) }.not_to raise_error
721
+ expect { subject.to_pforest(literals) }.not_to raise_error
676
722
 
677
723
  # Sentence 2-18a: "Lisa moves near to this thing."
678
724
  literals = [lisa, moves, near_to, this, thing, dot]
679
- expect { subject.parse(literals) }.not_to raise_error
725
+ expect { subject.to_pforest(literals) }.not_to raise_error
680
726
 
681
727
  # Sentence 2-E-Xa: "A short time before, Tony was far from Lisa."
682
728
  # Case of a time adverbial adjunct that is put in front position.
683
729
  literals = [a_as_art, short, time, before_adverb, comma, tony, was, far, from, lisa, dot]
684
- expect { subject.parse(literals) }.not_to raise_error
730
+ expect { subject.to_pforest(literals) }.not_to raise_error
685
731
 
686
732
  # Sentence 2-E-Xa: "At this time, Tony is near to Lisa"
687
733
  literals = [at, this, time, comma, tony, is, near_to, lisa, dot]
688
- expect { subject.parse(literals) }.not_to raise_error
734
+ expect { subject.to_pforest(literals) }.not_to raise_error
689
735
 
690
736
  # Sentence 2-E-Xa: "Tony is near to Lisa because Tony moved"
691
737
  # Case of a time adverbial adjunct that is put in front position.
692
738
  literals = [tony, is, near_to, lisa, because, tony, moved, dot]
693
- expect { subject.parse(literals) }.not_to raise_error
739
+ expect { subject.to_pforest(literals) }.not_to raise_error
694
740
  end
695
741
 
696
- it 'should parse sample sentences from lesson 2-F' do
742
+ it 'should parse sample sentences from lesson 2-F' do
697
743
  # Sentence 2-19a: 'Tony says: "I did X.".'
698
744
  literals = [tony, says, colon, quote, i_pronoun, did, x_as_noun, dot, quote, dot]
699
- expect { subject.parse(literals) }.not_to raise_error
745
+ expect { subject.to_pforest(literals) }.not_to raise_error
700
746
 
701
747
  # Sentence 2-19a definiendum: 'Tony says: "I did X.".'
702
748
  literals = [tony, says, colon, quote, i_pronoun, did, x_as_noun, dot, quote, dot]
703
- expect { subject.parse(literals) }.not_to raise_error
749
+ expect { subject.to_pforest(literals) }.not_to raise_error
704
750
 
705
751
  # Sentence 2-19a definiens: 'Tony says something about Tony. Tony says: Tony did X.'
706
752
  literals = [tony, says, something, about, tony, dot,
707
753
  tony, says, colon, tony, did, x_as_noun, dot]
708
- expect { subject.parse(literals) }.not_to raise_error
754
+ expect { subject.to_pforest(literals) }.not_to raise_error
709
755
 
710
756
  # Sentence 2-19a: 'Tony says: "I see Lisa.".'
711
757
  literals = [tony, says, colon, quote, i_pronoun, see, lisa, dot, quote, dot]
712
- expect { subject.parse(literals) }.not_to raise_error
758
+ expect { subject.to_pforest(literals) }.not_to raise_error
713
759
 
714
760
  # Sentence 2-19b definiendum: 'Lisa says: "X happened to me.".'
715
761
  literals = [lisa, says, colon, quote, x_as_noun, happened, to, me, dot, quote, dot]
716
- expect { subject.parse(literals) }.not_to raise_error
762
+ expect { subject.to_pforest(literals) }.not_to raise_error
717
763
 
718
764
  # Sentence 2-19b definiens: 'Lisa says something about Lisa. Lisa says: X happened to Lisa.'
719
765
  literals = [lisa, says, something, about, lisa, dot,
720
766
  lisa, says, colon, x_as_noun, happened, to, lisa, dot]
721
- expect { subject.parse(literals) }.not_to raise_error
767
+ expect { subject.to_pforest(literals) }.not_to raise_error
722
768
 
723
769
  # Sentence 2-19c: 'Lisa says: "Tony sees me."'
724
770
  literals = [lisa, says, colon, quote, tony, sees, me, dot, quote, dot]
725
- expect { subject.parse(literals) }.not_to raise_error
771
+ expect { subject.to_pforest(literals) }.not_to raise_error
726
772
 
727
773
  # Sentence 2-20a definiendum: 'Tony says to Lisa: "I can see you.".'
728
774
  literals = [tony, says, to, lisa, colon, quote, i_pronoun, can, see, you, dot, quote, dot]
729
- expect { subject.parse(literals) }.not_to raise_error
775
+ expect { subject.to_pforest(literals) }.not_to raise_error
730
776
 
731
777
  # Sentence 2-20a definiens: 'Tony says something about Lisa.
732
778
  # Tony says this to Lisa. Tony says: Tony can see Lisa.'
733
779
  literals = [tony, says, something, about, lisa, dot,
734
780
  tony, says, this_as_pronoun, to, lisa, dot,
735
781
  tony, says, colon, tony, can, see, lisa, dot]
736
- expect { subject.parse(literals) }.not_to raise_error
782
+ expect { subject.to_pforest(literals) }.not_to raise_error
737
783
 
738
784
  # Sentence 2-20b: "I know you have something good."
739
785
  literals = [i_pronoun, know, you, have, something, good, dot]
740
- expect { subject.parse(literals) }.not_to raise_error
786
+ expect { subject.to_pforest(literals) }.not_to raise_error
741
787
 
742
788
  # Sentence 2-20c: "I want you to do something good for me."
743
789
  literals = [i_pronoun, want, you, to, do_, something, good, for_, me, dot]
744
- expect { subject.parse(literals) }.not_to raise_error
790
+ expect { subject.to_pforest(literals) }.not_to raise_error
745
791
 
746
792
  # Sentence 2-21a definiendum: 'Tony says: "X happens here.".'
747
793
  literals = [tony, says, colon, quote, x_as_noun, happens, here, dot, quote, dot]
748
- expect { subject.parse(literals) }.not_to raise_error
794
+ expect { subject.to_pforest(literals) }.not_to raise_error
749
795
 
750
796
  # Sentence 2-21a definiens: "Tony is in a place. Tony says: X happens in this place."
751
797
  literals = [tony, is, in_, a_as_art, place, dot,
752
798
  tony, says, colon, x_as_noun, happens, in_, this, place, dot]
753
- expect { subject.parse(literals) }.not_to raise_error
799
+ expect { subject.to_pforest(literals) }.not_to raise_error
754
800
 
755
801
  # Sentence 2-21b: "Many people were here at one time."
756
802
  literals = [many, people, were, here, at, one, time, dot]
757
- expect { subject.parse(literals) }.not_to raise_error
803
+ expect { subject.to_pforest(literals) }.not_to raise_error
758
804
 
759
805
  # Sentence 2-22a definiendum: 'Lisa says: "X happens now.".'
760
806
  literals = [lisa, says, colon, quote, x_as_noun, happens, now, dot, quote, dot]
761
- expect { subject.parse(literals) }.not_to raise_error
807
+ expect { subject.to_pforest(literals) }.not_to raise_error
762
808
 
763
809
  # Sentence 2-22a definiens: 'Lisa says something at a time.
764
810
  # Lisa says: X happens at this same time.'
765
811
  literals = [lisa, says, something, at, a_as_art, time, dot,
766
812
  lisa, says, colon, x_as_noun, happens, at, this, time, dot]
767
- expect { subject.parse(literals) }.not_to raise_error
813
+ expect { subject.to_pforest(literals) }.not_to raise_error
768
814
 
769
815
  # Sentence 2-22b: "There are not many people here now."
770
816
  literals = [there, are, not_, many, people, here, now , dot]
771
- expect { subject.parse(literals) }.not_to raise_error
817
+ expect { subject.to_pforest(literals) }.not_to raise_error
772
818
 
773
819
  # Sentence 2-Fa: "Lisa says to Tony: "I can see many living things here."."
774
820
  literals = [lisa, says, to, tony, colon, quote, i_pronoun,
775
821
  can, see, many, living, things, here, dot, quote, dot]
776
- expect { subject.parse(literals) }.not_to raise_error
822
+ expect { subject.to_pforest(literals) }.not_to raise_error
777
823
  end
778
824
 
779
825
  it 'should parse sample sentences from lesson 2-G' do
780
826
  # Sentence 2-23a definiendum: 'Someone does X.'
781
827
  literals = [someone, does, x_as_noun, dot]
782
- expect { subject.parse(literals) }.not_to raise_error
828
+ expect { subject.to_pforest(literals) }.not_to raise_error
783
829
 
784
830
  # Sentence 2-23a definiens: 'Something does X. This something can
785
831
  # think like people think. This something can be one person.'
786
832
  literals = [something, does, x_as_noun, dot,
787
833
  this, something, can, think, like, people, think, dot,
788
834
  this, something, can, be_, a_as_art, person, dot]
789
- expect { subject.parse(literals) }.not_to raise_error
835
+ expect { subject.to_pforest(literals) }.not_to raise_error
790
836
 
791
837
  # Sentence 2-23b: Someone said something to Tony.
792
838
  literals = [someone, said, something, to, tony, dot]
793
- expect { subject.parse(literals) }.not_to raise_error
839
+ expect { subject.to_pforest(literals) }.not_to raise_error
794
840
 
795
841
  # Sentence 2-23c definiendum: 'J knows who did K.'
796
842
  literals = [j_, knows, who, did, k_, dot]
797
- expect { subject.parse(literals) }.not_to raise_error
843
+ expect { subject.to_pforest(literals) }.not_to raise_error
798
844
 
799
845
  # Sentence 2-23c definiens: J thinks about someone.
800
846
  # J knows this someone did K.
801
847
  literals = [j_, thinks, about, someone, dot,
802
848
  j_, knows, this, someone, did, k_, dot]
803
- expect { subject.parse(literals) }.not_to raise_error
849
+ expect { subject.to_pforest(literals) }.not_to raise_error
804
850
 
805
851
  # Sentence 2-23d: Tony knows who said something.
806
852
  literals = [tony, knows, who, said, something, dot]
807
- expect { subject.parse(literals) }.not_to raise_error
853
+ expect { subject.to_pforest(literals) }.not_to raise_error
808
854
 
809
855
  # Sentence 2-24a definiendum: 'J happens after K happens.'
810
856
  literals = [j_, happens, after_, k_, happens, dot]
811
- expect { subject.parse(literals) }.not_to raise_error
857
+ expect { subject.to_pforest(literals) }.not_to raise_error
812
858
 
813
859
  # Sentence 2-24a definiens: K happens before J happens.
814
860
  literals = [k_, happens, before, j_, happens, dot]
815
- expect { subject.parse(literals) }.not_to raise_error
861
+ expect { subject.to_pforest(literals) }.not_to raise_error
816
862
 
817
863
  # Sentence 2-24b: After you do something for a long time,
818
864
  # you can know much more about this.
819
865
  literals = [after_, you, do_, something, for_, a_as_art, long, time,
820
866
  comma, you, can, know, much, more_as_adverb, about, this_as_pronoun, dot]
821
- expect { subject.parse(literals) }.not_to raise_error
867
+ expect { subject.to_pforest(literals) }.not_to raise_error
822
868
 
823
869
  # Sentence 2-25a definiendum: 'X is true for some time.'
824
870
  literals = [x_as_noun, is, true_, for_, some, time, dot]
825
- expect { subject.parse(literals) }.not_to raise_error
871
+ expect { subject.to_pforest(literals) }.not_to raise_error
826
872
 
827
873
  # Sentence 2-25a definiens: X is true at a time.
828
874
  # Some parts of this one time happen before other parts.
@@ -832,17 +878,17 @@ module Zenlish
832
878
  some, parts, of, this, one, time, happen, before_adverb, other, parts, dot,
833
879
  some, parts, of, this, one, time, happen, after_adverb, other, parts, dot,
834
880
  x_as_noun, is, true_, at, all, parts, of, this, one, time, dot]
835
- expect { subject.parse(literals) }.not_to raise_error
881
+ expect { subject.to_pforest(literals) }.not_to raise_error
836
882
 
837
883
  # Sentence 2-25b: After I moved for some time,
838
884
  # I was near the other side of this place.
839
885
  literals = [after_, i_pronoun, moved, for_, some, time,
840
886
  comma, i_pronoun, was, near, the, other, side, of, this, place, dot]
841
- expect { subject.parse(literals) }.not_to raise_error
887
+ expect { subject.to_pforest(literals) }.not_to raise_error
842
888
 
843
889
  # Sentence 2-26a definiendum: 'X happens in a moment.'
844
890
  literals = [x_as_noun, happens, in_, a_as_art, moment, dot]
845
- expect { subject.parse(literals) }.not_to raise_error
891
+ expect { subject.to_pforest(literals) }.not_to raise_error
846
892
 
847
893
  # Sentence 2-26a definiens: X happens for one very short time.
848
894
  # There are not parts of this very short time when one part
@@ -850,13 +896,13 @@ module Zenlish
850
896
  literals = [x_as_noun, happens, for_, one, very, short, time, dot,
851
897
  there, are, not_, parts, of, this, very, short, time, when_,
852
898
  one, part, happens, before_adverb, other, part, dot]
853
- expect { subject.parse(literals) }.not_to raise_error
899
+ expect { subject.to_pforest(literals) }.not_to raise_error
854
900
 
855
901
  # Sentence 2-26b: In a moment, I knew something here was not good.
856
902
  # 'here' is adverb that modifies the 'knew' verb
857
903
  literals = [in_, a_as_art, moment, comma, i_pronoun, knew, something,
858
904
  here, was, not_, good, dot ]
859
- expect { subject.parse(literals) }.not_to raise_error
905
+ expect { subject.to_pforest(literals) }.not_to raise_error
860
906
 
861
907
  # Sentence 2-Gx: Tony is inside this thing for some time.
862
908
  # Lisa says: "I want to know who is inside this thing.".
@@ -868,10 +914,37 @@ module Zenlish
868
914
  because, of, this_as_pronoun, comma, tony, says, colon,
869
915
  quote, i_pronoun, am, inside, dot, quote, dot,
870
916
  tony, says, this_as_pronoun, after_, tony, hears, lisa, dot]
871
- expect { subject.parse(literals) }.not_to raise_error
917
+ expect { subject.to_pforest(literals) }.not_to raise_error
918
+ end
919
+
920
+ it 'should parse sample sentences from lesson 2-H' do
921
+ # Sentence 2-27a definiendum: 'X is the body of this person.'
922
+ literals = [x_as_noun, is, the, body, of, this, person, dot]
923
+ expect { subject.to_pforest(literals) }.not_to raise_error
872
924
  end
873
925
  =begin
874
926
  TODO
927
+ Lesson 2-H
928
+ 2-27. body, bodies, the body of, the bodies of.
929
+ [X is the body of this person.] = Parts of this person can touch other things. Parts of this person can touch other parts inside this person. X is all of these parts of this person.
930
+ [One part of the body of this person felt very bad.]
931
+
932
+ 2-28. die, dies, to die, dying, died, dead, is dead.
933
+ [X dies.] = Something happens to X in a moment. X is alive before this moment. X is not alive after this moment.
934
+ [After this person lived for a long time, this person died.]
935
+
936
+ 2-29. maybe.
937
+ [You think maybe X is true.] = You think something like X can be true. You do not know X is true. You do not know X is not true.
938
+ [Maybe some people far from here can see me.]
939
+
940
+ 2-30. below, is below.
941
+ [J is below K.] = K is above J.
942
+ [I am touching this thing below me.]
943
+
944
+ Someone sees this thing.
945
+ The body of this thing is not moving.
946
+ Maybe this thing __________.
947
+ is far below this person
875
948
 
876
949
  Lesson 2.C
877
950