At the recent Denver Dev Days conference, on June 24th, 2016, I explored the topic of whether "Conversation is the New UI"? The presentation came about as a reaction to the announcment of Microsoft's Bot Framework - https://dev.botframework.com. Initially, when I watched a few of the sessions from the Microsoft Build conference (https://build.microsoft.com), my thoughts were that using messaging systems such as SMS, Skype, and Facebook Messenger seemed to be a tedious way for a user to go about achieving a particular task that they wish to perform with a computer. Much better and more familiar to work within a traditional forms based interface that the user was accustomed to than introducing some new paradigm that is unlikely to stick. However, as I dug deeper, I quickly realized that I was completely missing the point. The end game for this technology is clearly not the interface, in this case a Messaging system, but the idea of conversation and computerized Natural Language Understanding. Conversation is a familar way that human beings interact. In fact, it has been the holy grail of human computer interaction for many years.
Are we there yet? I think we still have a way to go, but I have to say that the process of building my Bot, "TripleD", which I billed as a personal concierge for the Dev Day event, opened my eyes to the possibility that we are much closer to interacting with computers through natural language than I originally thought.
First there is LUIS, Language Understanding Intelligent Service, which is well baked into the BotFramework. In less than 30 minutes, an ordinary (but somewhat thoughtful) programmer or designer could train a machine learning model that will parse an "Utterance" or short phrase, give the computer an indicator of the user's intent, and the entities that the user hopes to fulfill that intent on. For example, consider the following "utterance":
Are there any sessions on C# around 1:30 PM today?
With the LUIS application that I trained, LUIS can determine that I am a) trying to find a session at the conference, b) I'm interested in sessions on C#, and c). I'm looking for a session around 1:30 PM. With this key information behind the meaning of the request, as a developer, I can easily construct a database query or search and find the relevant information.
Next, the Bot Framework, Bot Builder SDK makes it very simple to design "dialogs" that interface with LUIS. As a developer, the resulting code looks like event handlers for each "intent" your application supports.
Finally, the Bot Connector's ability to provide your Bot with a semblance of the conversation's state enables the developer to not only understand a more comprehensive intent of the conversation based on past intents and linking that information together with the current intent and entities. It is this later ability that I need to more fully explore and I'm postulating needs more comprehensive support in the Bot Builder Dialog SDK.
I hope that my session left attendees with the conclusion that I quickly drew by building a working example of a Bot with the Bot Framework and LUIS, that it is possible that "Conversation is the New UI" and we are on the cusp of a long held dream in computer science, interacting with computers and software as easily as we do with each other.
For the sample code that I developed for the presentation, please visit my GitHub Repository: https://github.com/cmchenry/DenverDevDay I welcome your feedback and comments!