Long time no see. I have no excuse and will not try to find any.
About a month ago I went on the bank of the Hudson river. Along the river, there are pedestrian roads and cycle lanes with lawn and it is really nice to have a walk. The sun was shining and was really hot, the kind of summer day I miss today when it is either raining or freezing. On the other side of the river, you can see Hoboken, a neighborhood I have not seen yet but will probably.
Here is a panorama I made using Hugin along with its plugins Enblend and Enfuse. These are free software that should work on most platforms. The stitching algorithm is quite automatic and easy to use as long as you take pictures with 25% overlap between shots. I used 8 for this landscape.
As a concept program, it aims to define a new kind of HCI, maybe in order to design the future of Mozilla Firefox. You can try it. Today, it sounds more like a tool, an extension to avoid clicking everywhere and copy/pasting everything — I actually use it when linking to Wikipedia or Last.fm.
Let’s start from the beginning. Web browsing is a technique commonly used to get information, it does not directly provide a way to use information. As you would read a magazine, cut out a page that pointed out the address for a restaurant and open your map to get the directions, you often read a web page, copy the address, go to Google Map (or equivalent) and paste the address. We need to simplify these steps. They involve too much technical knowledge such as the well-known “copy/paste” and the “go to a website”. In a natural language, you would say « I want to get directions for this address ». There is no specific vocabulary in this sentence: everybody can understand what you meant.
Ubiquity tries to understand natural language, but it is like an empty dictionary, we need to fill it up by giving it definitions, in particular, verbs. In the current Ubiquity implementation, we would ubiq the last sentence by writing « map this ». map is the verb and this a context-dependent object (what you have highlighted). Writing a command in Ubiquity means scripting the verb (which requires limited programming skills) to operate on the objects. In the previous example, this would simply open a tab in the browser which queries the map service using the highlighted address and display the resulting map. Intuitive and obvious. High level abstraction is the key to a wider public usage. From Boileau:
Ce qui se conçoit bien s’énonce clairement.
Et les mots pour le dire arrivent aisément.
Nevertheless, it does not exactly fit for the end-user at this time and may even never. Natural language is not a simple interface. If users do not want to type in an URL, they will not hit a key combination each time they want to communicate with the application. It may require a complete redesign of web browsers. It could be the only way to interact with your browser. Bye bye hot keys, location bars, “save as” actions… I am dreaming of a « What do you want to do? » operating system. One prompt to rule them all.
Nowadays, web browsers can do everything. News, mails, games, chat, music. You will not find any desktop application that you can not replace with a RIA. This is not a bad thing since it simplifies lots of actions. However, we are reaching a point where the OS is useless, where everything depends on the browser you use. But the browser is not the OS! If Mozilla feels this way, then they should try releasing a standalone system based on their technologies. In my humble opinion, any operating system should natively provide a natural language interpreter, a kind of inter-process communication working with local and web applications. Some launchers such as Gnome Do are looking in the right direction, but still needs a real language analysis and a better context awareness.