For those who remember dialing in to the internet @ 56k with a PSTN modem will also recall that in the late 90’s and early 2000’s one of the popular social uses for the internet for many people were chat rooms. Many will remember the breath of chat room service providers; everything ranging from MSN, Yahoo, ICQ, AOL and IRC (still widely used today).
I remember back to that time; teaching myself how to write code using the PHP language and finding lots of sample scripts on how to create a chatroom-type applications or the like. Everyone wanted to run their own chat service back then. Even then, the concept of writing a piece of code that could reference a pre-defined text file or database table with some common ‘online chat’ conversational constructs was pretty cool. You often found these chatroom bots being setup as moderators to filter out bad language or programmed to kick/ban users out of a room if they were found to have committed multiple offences.
Fast-forward to 2016. I have just recently watched the day 1 keynote from Build; Microsoft’s premier developer conference that happens every year at the beginning of April. This year’s conference covered many new technologies and talked about the immense opportunities available to software developers. One of the topics Satya Nadella covered in his keynote this year was Microsoft’s new Conversational platform or Conversation as a Service (CaaS).
The first thing I thought was; this is not a new idea. Why would I want to develop apps using a chat bot using Microsoft’s Bot framework? Isn’t this old tech?
Not at all; hence this post’s title – The Bot Revolution. Let me un-rap this concept a bit further to help explain why conversational platforms and frameworks are now the talk of 2016 and will be for some time to come.
Bot’s are a simplified way to explain the code that is written by a developer to leverage the API’s (Application Programming Interfaces) offered by these frameworks to either directly integrate into existing platforms such as Skype or Facebook Messenger; or to enhance one’s own application to have speech and natural contextual understanding of the end-user.
The main problems associated with chat bots back in the chatroom era was that they were inherently un-intelligent and lacked understanding or context. Today, the compute power has increased significantly and so has the data warehouse (AI) capability that can be leveraged at a platform/framework level to enhance a bot’s understanding or context about a conversation a human might be having with the bot directly or indirectly via another bot (bot-to-bot).
Following Microsoft’s announcement about launching the Conversational Platform and Bot Framework. Facebook at F8 – their own developer conference held earlier this week; have also just launched a new Bot framework for Messenger (the chat app for Facebook). The new opportunities this presents to the existing developer community around the Facebook platform is significant.
So what are some of the possibilities that these bot frameworks could potentially offer us?
If you’re using a Digital Personal Assistant (PDA) such as Microsoft’s Cortana, you will begin to notice how Cortana can become even more useful once integrated into the conversational platform API’s. One such example presented at the BUILD conference last week was the ability for Cortana to realise an upcoming appointment on your calendar that might involve travelling interstate and requiring accommodation whilst away. Using the Bot framework and some development done by an airline and hotel chain – Cortana was able, with the user’s permission negotiate and book each component of the travel and accommodation in a very automated fashion. Similarly, this type of Bot interaction can be achieved by initiating a Skype chat conversation with Cortana and for Cortana to bring in the relevant bot’s into the conversation when required to get tasks done on your demand.
The intelligence of these new conversational platforms is the result of years in telemetry collection and data warehousing by software companies such as Facebook, Google and Microsoft to now give back to the software development community, API’s that are more powerful and will extend the possibilities of tomorrow’s applications.
Some might think this is becoming all too much and they would rather not have software pry on their schedules and so forth. However, if there is any assurance in that trusted-platform offerings from some companies such as Microsoft’s offering ensures that the end-user is always in control of what data is shared with the application and in-turn limits what a software developer can do with that data. If you’re looking to learn more or make use of apps that provide functionality discussed in the article, my advice to you – is please make sure you read-up on who the application developer is and what platform frameworks they are using to make their app come to life. Some knowledge on the backend workings of an application can give you some piece of mind that the correct intentions are there and the developer is not miss-using the technology and taking your privacy for granted.
Generally speaking, consider the price of free before using any vendor’s software.