Update 2016-12-01: We have a second version of our bot and a landing page at http://www.traindelaybot.ch. It now supports Facebook Messenger, Skype und Slack.
The title of this blog post may seem hyperbolic, but during the last few months there has been an increasing
buzz on personal assistants and bots like Amazon’s Echo, Apple’s Siri or Facebook’s „M“ – the latter being a shopping assistant in Facebook’s Messenger app. Some people proclaim that we experience a new generation of user interfaces: The conversational UX where users interact with a system by „simply saying“ what they want. Last week, [Microsoft introduced developer frameworks for conversational bots](Microsoft introduced conversational frameworks) as a core part of their cloud strategy. And just yesterday, Facebook announced their Bot API for their Messenger.
When new concepts and trends in technology occur, it is a good idea to get first-hand practical experience before adding to that first rising slope in the hype cycle. So, during the last months I made some experiments that I now want to share with you.
First, let’s talk about Swiss trains: Everybody loves Swiss trains, panoramic rides through the alps, a smoothly working infrastructure… And they are always on time – except when they’re not. Sometimes, even in Switzerland (!), trains are running late. And to residents of Switzerland, a delay of 6 minutes can be quite stressful! When such a thing happens, at least I want to get notified about it at the right time. Read: I want notifications probably on my mobile or smartwatch.
But I’d argue delay notifications are not an ideal use cases for mobile apps: First, you have to find the app in your favorite app store, install the app, get to know it’s UI, configure it, give a bunch of permissions and finally you (or your mobile OS) has to update the app regularly. All that only to be notified of train delays. It may sound crazy, but dealing with (new) mobile apps can be quite cumbersome these days and there are stats proving this point: According to Comscore, the typical American downloads a total of zero new apps a month. This phenomenon even has a name: „App Fatigue„.
So, no more apps. But what’s the alternative? Maybe a personal virtual assistant, like Apple’s Siri or Amazon’s Echo. Siri is not open to developers and Amazon’s Echo is not (yet) available in Europe. But as a first step, let’s have a closer look at chat bots and messaging: Messaging is a huge platform – just look at WhatsApp which has a billion monthly active users! Telegram is a contender with only 10% of that user base, but still: 100 million monthly active users! Thus, a huge number of people already have the app installed and configured to theri liking. Now with bots being able to take part in a conversation, one can argue that the chatroom is the next big thing – the new App Store. Already today, you can order a ride, send money or read your newspaper content via a chat.
This was enough motivation to get me started experimenting with bots. My platform of choice was Telegram, simply because they have a very simple and well-documented REST API (which was updated recently). Using this API and without much ado: May I introduce the «TrainDelayBot»!
The idea of the TrainDelayBot was conceived on our last company hack day and is rather simple: Tell the bot your location with two taps and it looks for stations within walking distance. Then, for the next hour or so, it monitors these stations for possible delays. If a delay occurs or there is new information on existing delays, the bot will send a message to you. Otherwise it stays quiet. You can ask for the current status or just stop the bot’s monitoring at anytime.
You can try it out immediately on the web, on your phone, on your desktop and even on your watch. The only requirement is a Telegram account. Currently, this is more a show case than useful as there is no official API or feed for realtime public transportation data in Switzerland. But we can be hopeful that this will change in the not-so-far future. Until now, the bot uses the same data sources as the „Time for Coffee“ app. At this point, I’d like to thank transport.opendata.ch for making the data available to the world.
Even if official data was available, it can be hard to demo the TrainDelayBot – here is a tip for simulating fake delays with TrainDelayBot: Just turn on the secret demo mode by sending
/demo to the bot. You can turn the demo mode off by sending
True, at the moment, this technology is in its infancy: for example you have to use special commands to interact with the bot. But natural language processing is already here and will become a commodity for developers to use. In the meatime, I invite you to try TrainDelayBot.
Having introduced you to our little bot, I finally want to come back to the title of the blog post: Why the heck is this the future of geo? Very easy, even in this simple bot, there are a number of functions used from our beloved geographic information systems (GIS):
- Geocoding for getting from addresses to points on the map
- Nearby search for finding nearby train stations (actually, here we use our own Walkalytics API).
- Maps to show the area around you (on a mobile phone).
There could be even more GIS functionality built in, like routing or geofencing. Looking at the potential use cases, I think that bots will be as relevant to GIS as apps have become relevant in the last 5 years: They indicate a transformational change in the way users will interact with our spatial data and analysis. To put it simply: Conversational UI (i.e. bots) is the upcoming interface to expose GIS to the world. We as a geo community should open our minds and welcome our new technology overlords!
P.S.: The TrainDelayBot was introduced to the world in March at Esri’s DevSummit.