Merlin - Feb 7, 2011:
Although the bot would know ‘what’ the word modifies, it would not know ‘how’ it is being modified.
To answer a “when” question the bot needs to have the concept of “Time” and you need to be able to also tell it something like:
Yesterday is a date calculated as now minus one day.
This would assume the bot understands the concepts of Time (date, now, day) and Math (calculated, minus, one).
Grace knows how it is being modified.
Because in addition to knowing that yesterday is an adverb, she also knows that there are different types of adverbs :
~~~~~~~~~~~~~~~~~~~~~~~~
Adverbs of Time: Adverbs of time provide information on when something happens.
For example: We’ll let you know our decision next week.
Adverbs of Frequency: Adverbs of frequency provide information on how often something happens.
For example: They usually get to work at eight o’clock.
Adverbs of Degree: Adverbs of degree provide information concerning how much of something is done. For example: They like playing golf a lot.
Adverbs of Comment: Adverbs of comment provide a comment, or opinion about a situation.
For example: Fortunately, there were enough seats left for the concert.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When Grace considers generating a parse tree where there is an adverb X modifying the predicate verb, she then checks if X is an adverb of time (or any of the above types).
So she knows
“I went to your house last Friday night” (group of words like “last Friday night” being adverb)
“I went to your house this morning”
“I went to your house yesterday”
EVEN…
“I went to your house when your uncle tom was visiting”
where the entire subordinate clause “your uncle tom was visiting” functions as an adverb OF TIME.
Now I would have to tell her:
yesterday is an adverb of time
for that to work.
So the conversation really would be: (again, assuming she knows all words except ‘yesterday’):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
me: I went to your house yesterday
grace: I did not understand the entirety of your input. The parts I did understand are: “I went to your house”
me: yesterday is an adverb
grace: thank you, what type of adverb?
me: adverb of time
me: OK, updated WORDDATA Directory
me: when did I go to your house?
me: yesterday
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OR . ..
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
me: I went to your house yesterday
grace: I did not understand the entirety of your input. The parts I did understand are: “I went to your house”
me: yesterday is an adverb of time
me: OK, updated WORDDATA Directory
me: when did I go to your house?
me: yesterday
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Right now, I have a perl script (‘new.pl’) which I run to enter new words. Anytime I enter an adverb, the script asks me to specify the type of adverb (any of the ones listed above).
Thus, when I add the functionality to input part of speech learning via NLP, the IFLO (formerly called a reactor), will generate a response asking for the type of adverb) *OR* if the parse tree indicates the user HAS specified the adverb type, it won’t of course ask, but go right ahead and update WORDDATA directory (where Grace keeps track of the parts of speech of words).
I can’t wait to complete my grammar rules, so I can start making the IFLOs to accept learning new parts of speech (and sub-types of speech) via NLP.
I don’t want to hijack this thread regarding my own project, but it IS basically on topic of bot understanding