So you fire up your browser, you type "Book a flight to Chicago next Monday to Thursday, no red-eyes, the cheapest. Then, email my friends the itinerary and add it to my calendar". Your browser responds with:
This is the aim of the Ubiquity project at Mozilla, which aims to parse natural language queries to create on-the-fly mashups. In the words of the Mozilla team, it’s about "connecting the Web with language in an attempt to find new user interfaces that could make it possible for everyone to do common Web tasks more quickly and easily." This is a tremendously exciting idea.
In Web 2.0, the idea of a "mashup" is very static…though we can create services that are themselves compositions of micro-services available over the web, our final service is somewhat static, in the sense that our mashup is specific to the intent of the developer that created the mashup.
Projects like Yahoo! Pipes have tried to make it easier to create mashups more "on the fly", by creating a way of graphically orchestrating disparate web-service calls. This is a very similar approach to the "enterprise orchestrations" that can be created with LiveCycle Process Management ES which allows us to graphically orchestrate pre-supplied and custom services into enterprise business processes.
However, as much as Yahoo Pipes may make it easier to create a mashup, the resulting service, despite being a composition of several disparate services, is still static, in the sense that it is only fit for its single intended purpose ("Fetch me the New York Times business stories from the RSS feed, and show me Flickr images alongside each story, with links to Forbes.com profiles for any companies or people mentioned in the story.")
What I love about the vision behind Ubiquity, is that it aspires to offer the most simple, easy and effective of user-experiences – a natural language query or imperative – while "behind the glass" have the most complex of dynamic orchestrations from a catalogue of known or discoverable web-services. Much like Tivo, or purchasing music while sat in your sofa with your wireless iPod, this has all the opportunities of seeming like the easiest transaction to offer, truly hiding the end-user from the smarts, the intelligence and the complexity required in silicon and code to make it happen.
Get this project working effectively, put speech to text on the natural language query, and this gets even more exciting…
Check out the project at http://labs.mozilla.com/2008/08/introducing-ubiquity/