The time is now for inference engines in user interfaces
I've been thinking the last couple of days about the future of phone user interfaces, and I suppose the future of interfaces in general. At the moment we have fairly static interfaces, with a scrolling list of applications with the occasional widget to tell us the weather forecast or what not. We set it up how we like it and thats it. Some user interfaces (in particular, I'm thinking of Android's pages) provide different screens to cater for different use cases, but it is still a manual affair.
What I'm looking forward to is the day when my phone can infer things about what I'm doing. Our phones (and our extended computer networks) know an incredible amount of information about us. They know where we are, and if we are moving or not, and they can remember where we have been before and at what times. They have our calendar, they know what time it is now. That there is enough information to begin to infer things.
For example, I tend to finish work at roughly the same time every day. When I finish, I walk to Flinders St train station and catch a train home. During the day, I couldn't give a tinkers cuss what the train timetables look like, but when I walk out the door, all of a sudden I'm keen. My phone, based upon my previous history of movement, detecting when I start moving from the building I've been in for the last few hours, could easily infer that I am leaving, and that my most likely destination is home. Wouldn't it be cool if it could alter its home page to show timetable information because thats where it thinks I'm going.
We can get more sophisticated here by adding in additional information too. If I throw my calendar into the equation, the destination guesser has more information available to it. If I have an appointment at 5:30pm in a different part of town, it can logically infer that I'm not going home, but rather that I'm going to this location. Instead of showing me the train timetables for my home line, it could show me a tram route to my meeting, or the location of the nearest taxi rank. It could even choose which option to show me based upon the time until my meeting. If I've left myself lots of time then I can take public transport, but if time is running short perhaps I should take a taxi. My phone becomes a true digital assistant, rather than a window on to information that I have to instruct how to operate.
I want my phone to do this now, and there's no reason it couldn't be done. I'm sorely tempted to get venture capital funding and go do this. Its where the action is going to be in the near future, in my opinion. I've got a whole bunch of ideas about what sorts of information could be fed into an inference engine.
We do need be careful to remember the lesson of Microsoft's clippy however. In order for an inference engine to work, it needs to be accurate. It needs to provide value to the user. It should also be unobtrusive. if the user simply wants to get to his email, or his web browser, it should be no more difficult to get to than it is on today's interfaces. Clippy failed on both counts here, and was widely lampooned and hated for it. The amount of information that the clippy inference engine had to work with was limited, so therefore the assistance it could provide was worthless.
No inference engine will be perfect. If I walk out the door and start walking towards the train station, I might not actually be going home. Instead, I might be going to a bar on the way to the train station to meet a friend that just phoned me up. There's no way my phone is going to be able to guess that (unless it monitors my phone conversation, and understands what we are talking about. We can't do that yet...). The secret here is to be unobtrusive. The phone should offer information on what it thinks I'm doing, but in such a way that if I want to do something completely different it doesn't get in the way. Phone user interfaces are getting sophisticated now(e.g. SlideScreen) so I see no reason why inferred information can not be incorporated.
One final thought about this is privacy. In order for this to work properly, our computer/phone needs to collect, store (for pattern analysis) and cross-check a lot of really private information. Where does this information get stored and analysed? at Google/Yahoo/Facebook? The inference engine will then construct a model of my behaviour to predict what I'm doing. I'm not sure I want a big corporation like Google to be able to make these sorts of inferences for me... but thats naive. Big corporations like Google already construct models of our behaviour, and every time we sign up to a new service like Google calendar or gmail we give them more information to model us. I'd prefer to run such a service on my own hardware, but that isn't the way that the industry is going.
But as I ranted recently, perhaps that isn't an issue any more. Are we willing to give up fundamental privacy in order to get the advantages? I'm not sure...