OK, I’ll chip in.
EDIT: I only read the first post initially, wrote a lot, went away, came back, finished post, posted. Then read your next post about what you actually required. Felt that what I had already written may informative and insightful anyway, so I left it and modified a little
What you are asking is massive in your original post! So I’m glad that you revealed more details in your second That said, you mention initially abilities of an AI that we are working on, and have been working on for the past 5 years.
Due to the scale of such a thing, nobody is going to develop it unless there is a significant amount of money involved for development costs. Just the chat aspects alone would get you into the history books, and you’d pass the turing test, get a medal, probably a Nobel prize to boot
But, I shall offer some advice on what you would need (should you wish to persue your original post )
1. Natural Language Parser which will take any sentence and create whats known as a POS tree. This converts that sentence into nouns, verbs, noun phrases, verb phrases and more.
2. Grammatical Relationship construction, this takes your sentence and POS trees and constructs high level relationships between the words, you need this for the next step of identifying entities, elements, actions and properties in the next step.
3. “Rationalizer”...Ive not seen one of these anywhere, and I believe we are the first to develop such a thing. This uses the previous 2 steps, some semantic relationship algorithms and constructions a rationale of the sentence. You end up with a list of entities, actions and properties and the relationships between them….basically, who/what is performing what actions in the sentence. A simple example….
“Dan is going to the cinema” resolves to this
{
"actions": {"going-3": {
"word": "going",
"base": "go",
"lextype": "verb.motion",
"type": "action",
"tense": "present",
"subjects": ["Dan-1"],
"prepositions": ["to-4"],
}},
“objects”: {"cinema-6": {
"word": "cinema",
"base": "cinema",
"lextype": "noun.communication",
"actions": [],
"properties": [],
"prepositions": [],
"conjunctions": [],
"classification": "OTHER",
"gender": "NEUTRAL"
}},
“objid”: 2,
“subjects”: {"Dan-1": {
"word": "Dan",
"base": "dan",
"pos": "NNP",
"deptype": "nsubj",
"type": "subject",
"actions": ["going-3"],
"classification": "PERSON",
"gender": "MALE"
}},
“subid”: 0,
“prepositions”: {"to-4": {
"word": "to",
"base": "to",
"type": "preposition",
"pos": "TO",
"govenors": ["going-3"],
"entities": ["cinema-6"],
}},
}
I’ve left out some required “secret” fields of the dataset, but you get the idea and can see how this takes a simple sentence and creates a structed form.
This has taken a LOT of effort, and requires a deep understanding of the english language to be able to handle pre-positions, external compliments, possesive, verb modifiers and more….NOT easy let me tell you especially co-reference (pronouns).
This step also performs entitiy recognition (identifying people, gender, organisations, locations etc), and co-reference resolution.
4. Once you’ve got your rationale, the next step is disambiguation, inference and deduction. Disambiguation resolves elements of the rationale that you may not be certain about and uses inference to help it along
For example, Football could mean the sport, the ball itself or other things. You can resolve a large number of these once you have the rational, as in “Dan kicked the football”....kick is an action, and using inference rules, it can determine that I couldn’t kick the sport itself, as football the sport is an abstract object, and I am physical, so I must mean the actual physical ball.
5. At this point, you finally have a rationale, that you can be sure about is pretty correct. The final step is to analyse that rational to ensure that it makes sense, and if there is any missing information. At this point, this is quite easy, providing you have the correct foundations (which is another thread unto itself).
“Dan is going now”.....resolves to Dan is going to a different location, but the location isn’t known, so Caesar may prompt for location information such as “Where is he going?” unless you had already given the location information earlier by way of “Dan is going to the cinema soon”.
That’s all I’m giving away for now but as you can see a lot of work, and you haven’t even got to data retreival, training, logic processing, sentence refactoring, data storage, recall and more before you can even consider a real, smart, “true AI” chat bot.
Now, to actually perform what you require, “intelligent” command processing and simple conversation at an advanced level, you would still need a lot of the above (including some form of speech - text processor) but should be a lot easier to accomplish.