Users often go to a website in order to perform a specific action they already have in mind. For example, visitors to a travel website would know what kind of reservation they wanted to make, what times they want to travel, and where they wanted to go. Having been to such sites before, they also already know what information the site needs in order to provide the service the users want.
Under these conditions, the fastest way a user could convey this information would be to simply type it out for the website. Unfortunately, most websites only offer a menu or form based interface to access those services. As a result, even expert users are forced to parse the website's UI and painstakingly fill in each field.
One way to alleviate this problem is to provide a command language for those websites. A command language interface increases efficiency since users don't have to scan for input fields. It also lets users save commands easily and string commands together into a script. Although command languages force users to recall what to type, this limitation is mitigated by the implementation we chose and the fact that the target users already have a good idea of what they need to do.
In order to give people easy access to website functionality, we inject a special textbox into the top of chosen websites. This textbox interprets keywords the user types and matches them to known website functionality.
As one types in this textbox, it will also attempt to determine what function the user is trying to call and will display what arguments are still needed for the command to execute. This feedback is displayed in regular English and not in terms of code.
For some websites, this box will make calling the services much easier. For example, if users are at a room reservation website, they could simply type "Make reservation May 9 G925" instead of having to navigate through the calendar or various drop down boxes.
This approach is also better than simply searching or scanning through a webpage since it can support synonyms for similar functions or data and infer what a user is trying to do. It can also present functionality that doesn't appear in a text search (such as functions executed by buttons with image labels) and help users locate functionality that is usually deeper in a website's structure.
We have implemented a prototype of this for the CSAIL Reservations Website using the Keyword Command system . In order to do this, we had to manually specify what functionality and data types were present in the website.
Our next step is to find a way to either automate the specification step or to make it very easy for a website owner to specify what services his or her website provides. We also hope to improve the algorithm that matches the keyword commands to the specified website functionality.
 Greg Little, Robert C. Miller. Translating Keyword Commands into Executable Code. UIST 2006