AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

GRACE/CLUES
 
 
  [ # 16 ]

Awesome.  I use google blogger.

I can’t wait to see some of your sample IO - and how it converts input sentence into database objects.  It is an interesting approach.

 

 
  [ # 17 ]
Victor Shulist - Feb 8, 2011:
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 smile

I did want to highlight the difference in understanding between:
yesterday is an adverb
yesterday is an adverb of time
yesterday is an adverb of time and a date calculated as now minus one day

In Skynet-AI I believe that I will end up resolving “yesterday” to an actual date. Do you think you will be doing the same in Grace? All bots have the potential to do math and dates but they may not end up doing it by design.

 

 
  [ # 18 ]

I will and I won’t smile

That is, if you enter:

“yesterday is an adverb”

I don’t want that to be converted to (since Today is Feb 7, 2011):

“Feb 6th, 2011 is an adverb”  !!!!!

But I *DO* want it to be converted in a case like:

“yesterday was a very bad day for me” >>  “Feb 6th, 2011 was a very bad day for me”

SO - Grace will store both the ‘untouched’ input, exactly as it was entered by the user, along with the chosen parse tree, into her ‘KEPT’ (knowledge entry parse trees) Knowledge Base.

So, regardless, the parse tree is stored in her KB (where ‘yesterday’ remains the literal string ‘yesterday’), *but* that parse tree will have a date/time stamp pasted to it, so when she reads that parse tree later, she will see the associated time stamp to know what yesterday meant.

Now, depending on what the sentence really means, an IFLO (formerly reactor), may update another database where yesterday will be converted to actual date.

Example:  “yesterday was my mom’s birthday”, in that case (in addition to storing the literal parse tree as described above), Grace will create the appropriate SQL INSERT statement to update the “birthdays” database table.

That SQL database has nothing to do with Grace’s core - it is just a task that she would be programmed to do.
And of course ‘yesterday’ would be converted to ‘2/6/2011’ for the SQL INSERT.

 

 
  [ # 19 ]

This weekend, its all about :

http://www.chatbots.org/ai_zone/viewthread/363/

 

 
  [ # 20 ]

Bot developer’s log entry:

It is becoming very clear that I can’t just ignore BOOLEAN LOGIC in processing of natural language.

Example:

F: “Joe and Henry went to the bar”
Q: did Joe go to the bar?
A: yeah, along with Henry

F: “Joe or Henry went to the bar”
Q: did Joe go to the bar?
A: Not sure, you said one of them did though

F: “Joe or Henry went to the bar”
Q: did Joe and Henry go to the bar?
A: Not sure, you said one of them did

F: “Joe, Henry but not Bob, went to the bar”
Q: Did Joe or Henry go to the bar?
A: both

F: “Joe and Henry went to the bar?”
Q: Did Joe or Henry go to the bar?
A: they both did

So, lots of things to worry about….

a) if subject has one or more nouns [for the fact]
b) if those nouns are connected by “and”, or “or” [for the fact]
c) if one or more of those nouns are modified by “not” [for the fact]
d) if subject has one or more nouns [for the follow up question]
e) if those nouns are connected by “and”, or “or” [for the follow up question]
f) if one or more of those nouns are modified by “not” [for the follow up question]

so the above, plus anaphoric references, is what this bot developer was tackling so far this weekend smile

 

 
  [ # 21 ]

Victor, again I get a very valuable trigger from you; this starts me thinking if boolean logic needs to be in my core-concepts.

Thanks for this insight.

 

 
  [ # 22 ]

No problem.  Yes, I don’t of course no the intricate details of your system, but from what I read so far, I think very much so that boolean logic should probably be part of it.  Not from a formal (syntax) point of view, but from a conceptual view anyway.

Perhaps the bot considers “well, if (experience_a OR experience_b) AND (not experience_c)” happens, in context (context_a and context_b or not context_c), then .....”

Now I don’t mean to give those rules explicitly - more like, the bot could realize or learn that the conditions/experiences are actually a complex boolean than simple rule.

 

 
  [ # 23 ]
Hans Peter Willems - Feb 13, 2011:

Victor, again I get a very valuable trigger from you; this starts me thinking if boolean logic needs to be in my core-concepts.

Thanks for this insight.

Also, yesterday I was puzzled on how (and even IF I should) handle OR between subject nouns of a sentence, or tell the user to please re-word.  But now I realize, I am going to need full support for things like

“Tom or John will do the work tomorrow, depending on who is available”.

....later….

“John is not available tomorrow”

....then test question….

“So who is doing the work tomorrow?”

 

 

 
  [ # 24 ]
Victor Shulist - Feb 13, 2011:

“Tom or John will do the work tomorrow, depending on who is available”.

....later….

“John is not available tomorrow”

....then test question….

“So who is doing the work tomorrow?”

I’m curious how you are going to handle this from a grammatical angle. I’m sure that your solution will give some pointers for my own model as well.

 

 
  [ # 25 ]

Well, grammar plays a big role in my system.  But there are other components that play huge roles as well.

The purpose of grammar is to give the bot the ability to brain storm.  My grammar production system is exactly that - it is a source of options.

User input string is X, ok, let’s see all the possible ways that could be thought of.  So that is the job of the grammar production sub-system.

Then, semantics.  Ok, of all these parse trees, which ones are “out to lunch”, which ones makes sense, from knowledge of the world.

So all this happens just to *understand* the facts above, and the question.

Then, after all that, grammar and semantics, huge huge task, we know what the user is talking about.

Then… pure logic engine.  I’m awhile away from that.  So cannot comment much now, but i imagine it will be 1) generate possible solutions, 2) rule out possibilities, then see what is left.

I can’t see the pure logic being hard to code.  Theorem provers and the like have been coded long ago.

My concern now is understanding the complex statements.

That’s what is missing in AI - taking boolean logic and algorithms into the larger world of language and semantics.    For me, boolean logic is simply a subset of natural language.

Except CLUES can think 4 things of a statement or proposition:

a) unknown
b) known true
c) known false
d) ambiguous

So “Is bob here?”—if we never heard of bob at all, haven’t heard either way, then it is (a) unknown.

“bob is here”, “is bob here?” then it is (b) true

“bob is not here”—we have been told that bob is NOT here, thus “is bob here” is (c)

fact 1 “bob is here”, fact 2 “bob is not here”, “is bob here?”—(d) ambiguous (proof of both true and false exists).

thus bot knows , in state (d), to ask: “I have proof that bob is and is not here! What’s up?”

“bob is here during the day, and not here at night”—ok, resolved.

 

 
  [ # 26 ]

So in ““Tom or John will do the work tomorrow, depending on who is available”

both

“Tom is doing the work tomorrow”
“John is doing the work tomorrow”

is considered unknown.

Yes, they are considered as “maybe”, but internally as unknown.  However, the “maybe” aspect of it tells CLUES to pursue it.  (that is, it at least knows that there may be a possible way to deduce one of those statements).

 

 
  [ # 27 ]

Also, yesterday I was puzzled on how (and even IF I should) handle OR between subject nouns of a sentence, or tell the user to please re-word.

‘or’ has puzzled me also for a while, though I think I found a good solution now. I’m simply storing it as a list, with the logical operator as a tag on the list.

 

 
  [ # 28 ]

Exactly how I handle it!  only difference between

‘bob and joe’
‘bob or joe’

both are lists, noun1 = bob, noun 2 = joe

only difference, is

list-type = ‘and’

or

list-type = ‘or’

 

 
  [ # 29 ]

yep, I’m doing it also like that. I first thought of many different things, but this seems to be the simplest: you actually capture what was said + you can still work with it. 
In fact, I’m also doing this trick at the sentence level (like: I have an apple and you have an orange. or, I have an apple or you have an orange).
Search algorithms become somewhat more complex through.

 

 
  [ # 30 ]

Cool

I’m doing the ‘list-type’ thing between every possible part of speech, from adverbs, auxiliary verbs, adjectives, nouns, verbs, predicates, sentences, complex-sentences ( = main-clause + one or more subordinate clauses), and even lists of subordinate clauses of a complex sentence.

 

 < 1 2 3 4 >  Last ›
2 of 7
 
  login or register to react