I have tried with two chat-bots "clever bot" and "http://www.a-i.com/alan1/" and i got disappointing results.

me: Socrates is a man

bot: blah blah (common bot nonsense instead of an "ok")

me: Who is a man?

alan1: The people that write my answers haven't provided an answer for this.

Another example of the mediocre "clever bot"

me: Socrates is the name of my dog.

clever bot: I don't know!

me: What is the name of my dog?

clever bot: That's a nice name.


me: Socrates is a man.

clever bot: When does the narwhal bacon?

me: Who is a man?

clever bot: Men are man.

And they dare name this thing "clever"...

So is there any chat bot that can actually answer this straightforward question?

  • $\begingroup$ What would be a satisfying answer? "Socrates was" isn't a great one. $\endgroup$ – John Dvorak Mar 31 '17 at 20:37
  • $\begingroup$ @ Jan Dvorak check my edit The answer in this context is "Socrates" or "Socrates is" $\endgroup$ – user5977 Mar 31 '17 at 20:38
  • $\begingroup$ Then they're providing an example instead of a definition when the asker presumably asked for the latter. $\endgroup$ – John Dvorak Mar 31 '17 at 20:39
  • $\begingroup$ CleverBot is doing a pretty good job here, actually (although not as good as your proposed solution) $\endgroup$ – John Dvorak Mar 31 '17 at 20:39
  • $\begingroup$ What example? I don't care about an example, otherwise i would have asked about an example. I care to see if the bot is able to do basic usage of language like assigning names to categories and retrieving names according to context $\endgroup$ – user5977 Mar 31 '17 at 20:40

I think the issue here is that the chatbots you're using aren't very good at "short-term memory". What I mean by is that the bots construct responses that are slowly and incrementally tuned according to the overall usage of the chat bot, from every user. The bots are responding to each message based on how a new user would expect them to. As Alan1 notes, "Men are Man". It's making this response based solely off your single most recent message.

Instead, you are looking for a bot who focuses moreso on persistent memory of the individual conversation. The problem here becomes you're now almost asking for a Natural Language Parser, a big problem many people are working on and something that's years away from existing as robustly as you suggest.

The chat bot not only has to recognize the words 'Socrates', 'Name', and 'Dog'; but that in this sentence, it's the dog's name that is Socrates. That's a lot of information to gain beyond just the words. Which is why from a server / implementation standpoint, the above method is also a lot easier to program (every message just query your server, no need to maintain state - that is, memory of the conversation).

The chat bots can't possibly get enough information from one person to train how to speak and respond, so they 'crowd-source' that information for training. But that means that Clever Bot (or any similar caliber chat bot) won't respond in terms of parsing the meaning of what you're asking.

Taking this even further, one can consider the notion of such a program being Turing-Complete. Supposing we had a chat bot like you're suggesting, we could perhaps show equivalence to a Turing-Machine, or even perhaps show we can do something like decide the halting problem. Off the top of my head I imagine the procedure being basically showing you would be able to decide halting given initial conditions. E.g. Given "Socrates is a man" and "All men die" can we decide if the chat bot will ever be able to deduce if Socrates dies?

I'll work on a formal proof from the latter and post it if it works out.

|improve this answer|||||
  • $\begingroup$ My opinion is that this type of algorithms can not even be called "artificial stupidity" because stupidity requires a tiny amount of intelligence to be present, and there is none in them. $\endgroup$ – user5977 Mar 31 '17 at 22:31
  • $\begingroup$ Um I think I agree but are you sure this is the right thread @johnAm $\endgroup$ – Avik Mohan Mar 31 '17 at 22:48
  • $\begingroup$ I'm not sure I understand your last comment. Anyway I'm reading now the essay "Understanding natural language" by Terry Winograd. It's a great work... Thanks for your answer. $\endgroup$ – user5977 Mar 31 '17 at 23:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy