Quote: "write a program that will hold a conversation with the user, and if it doesn't know how to respont, it asks and you tell it, and it remembers.
"
This question is complex indeed. In fact this one question, speaks to so many disciplines in computer science that I am not sure if all of them could even be answered. But that is no reson not to give it a shot and see what we can come up with. Let's disect the question and build from there. I honestly think that this could be an excellent thread if we give it a chance. And perhaps we will all gain something. I have thought a little about the process of discovery that we can follow.
I. write a simple command processor (reference Compute!'s Guide Gary McGath)
a. First an imperative sentence handler aka Command handler(ie. Go,Run,Stop)
b. Add ability to handle a subject and predicate (ie. I go, You run, They stop)
c. build upon predicate of sentence; verbs, direct objects, indirect object, (ie. Give me the disc) Give=verb; disc=direct object; me=indirect object.
d. include ability to handle prepsotional phrases. ie. (give your disc to me). the preposition 'to' relates 'me' to 'give'
e. add Ajective modifiers to Objects (direct or indirect) or prepositional phrases that have nouns. (ie. Give me the 'scratched' disc)
f. add multiple objects (ie. Give me the disc, the manual, and the lighter) or incorperate words like all or every quantifiers (ie. take all of the rings) or (take everything).
g. add the verb/adverb modifers. (ie. Give me the disc quietly).
h. add nouns of address. (ie. Computer, give me the access code)
i. develope on the grammatical framework by using Backus Normal Form (BNF)
j. Design a huge decision tree (later this will be modified with learning algorithms, neural networks, fuzzy logic sets, memory etc..) but we need to give our program a decent starting point.
Well there's enough there already to get started with... I hope this topic takes off. It really is a great way to learn AI.