It all began countless millennia ago with a Cognitive revolution when people adopted gestures and the spoken language to collaborate with each other. The pleasures of writing followed, what with pictographs and language characters, changing the course of civilization and bring us to where we are. However, for a long time in history now, a conversation is only with other people. From spears to a television set, handling the inanimate with our limbs. Commanding a TV to mute cannot pass itself off as a conversation, as there is no understanding on the part of the receiving device - simply keywords converted to electrical signals. Matter of fact, isn't that how a chatbot works too?
The purpose of language is to share needs and thoughts. One can share simple needs relatively easily with a shared understanding of a language. Even in a foreign land and tongue, empathetic understanding of basic human needs happens naturally.
Sharing thoughts is another matter. Communicating simpler thoughts is easy - that's how the world is running. More complicate thoughts take endless amounts of time, as anyone in a relationship can confirm! Those less verbally challenged even write books expounding their views.
Interacting with a computer
Let's talk about what matters to businesses. Who cares if a computer can understand something or not? Just take care of some of what my customer needs!
Sure, that's a view, and a chatbot is a enough in that situation. A user may express eloquently what's in her mind, however a chatbot will simply pick up keywords it knows, and spit out a few buttons as choices. These buttons can once again lead the user through a familiar forms-based approach to solving the users problem.
For example, you want to book a flight? For a chatbot that can handle travel requests, try something like Flight to Bangalore from Vienna first Monday next month. A smart chatbot will extract as much information from the given text. Most chatbots will just catch the word flight and start with a workflow.
But then, this too is not a conversational application.
Conversing with a computer
I am using the term conversational application to mean a virtual agent/assistant plus the backend workflows that get stuff done for someone.
The "conversational" behavior of a Conversational Application is what sets it apart from a Chatbot, some of which I have listed here:
Take the time to understand: A conversation is a flow where a user is communicating intangible thoughts in ones head using words, so that the listener can grasp
When responding, expect rejoinders: A conversation is not just a one-way flow of thoughts. One thought leads to another. Respond one way, and there is a smiling face wanting to talk more. Respond another way, and they prefer not to talk to you again! So not only does a conversation flow, the virtual agent can respond in a way that channelizes the discussion in a particular direction
Must remember the context. Today, a Virtual Agent (or Assistant) follows the script with no deviations. It doesn't know how to respond to something said earlier, or what it itself said in response to the user
Going off-track is okay, but do come back: Should be able to handle interjections. And come back to a previous conversation
And finally, after the intent is correctly understood in its entirety, respond to the user, or indeed take any action on behalf of the user.
Of course, engineering something like this is a non-trivial exercise.
Qualyon is a Virtual Agent
Qualyon has been able to handle some of these successfully. With sufficient training, it can engage in a long conversation that would be good enough for business conversations. However, it has some way to go before it can get into a real human conversation. Some really interesting problems to solve!