|
 |

Filling in those little boxes
| |
If the Web had a theme song, it would be "Little Boxes." It seems every time you visit a site, there're more little boxes to fill out. Now, a nifty little program born in IBM Research is ready to do most of that grunt work.
CoScripter is an extension to the Firefox browser that captures commands and entries as a person uses the Internet, a process called programming by demonstration. The resulting script appears in a pane of the browser window. In some respects, CoScripter works like the macro recording function of Microsoft Word, but there is a critical difference. Unlike Word macros, CoScripter results can be edited easily because they're written in understandable language. They can also be shared through CoScripter wiki, which minimizes re-invention of internet "wheels."
The program is available free on IBM’s alphaWorks site, and should appeal especially to small businesses that need to streamline some of their processes. For example, an HR rep at a small firm looking for developers with certain skills constantly has to query job search sites. Using CoScripter, the rep can specify criteria and then run the script, automating all the regular steps required for the search, including clicking through various pages and forms. And, in a few months when the firm is looking for a new stock supervisor, the script need only be modified in a few places.
CoScripter is also useful for repetitive common daily processes on the Web such as checking email, checking flight arrival times and status, or searching for WI-FI hotspots in an area.
“We also have seen CoScripter being used to test websites,” says Tessa Lau, one of the CoScripter researchers. The team will automate a process with CoScripter to make the testing easier, with CoScripter automatically filling in requested information.
“But the use I'm most excited about is teaching people how to do things on the web. Using CoScripter, I can show my mom (who is on the other side of the country) how to log in to NetFlix and change her mailing address,” says Lau. In the same vein, scientists can show each other how they have used web-based tools to look for patterns in DNA sequences. And Web site owners can teach users how to use the site’s features.
Key to CoScripter is what the researchers dubbed "sloppy programming." This means the script is readable both by humans and machines.
"It's no more difficult than following instructions that maybe a friend or your IT department sends you on how to do something on the Web," says Lau. "The program can understand or interpret a more relaxed form of the grammar."
And CoScripter customizes itself for each user, reaching into a personal database for information like full name and address or a credit card number. That data is stored on the user's computer and is not part of any publicly shared script. A script that created an online business card, therefore, would automatically insert the current user's name, title and other information.
Work on CoScripter began early in 2006 at the Almaden Research Center with Tessa Lau, Allen Cypher, James Lin, Eben Haber and Eser Kandogan of IBM and Greg Little of MIT.
IBM’s emerging technology web site alphaWorks lets early adopter developers from around the world experience the company’s latest innovations. The technologies are available for download at the earliest stages of research and development, enabling developers to evaluate and influence IBM research and development. Developers can collaborate with developers from inside IBM and outside IBM about individual technologies and the emerging technology topics that are having an impact in the world of information technology.
|
|
How does it work?
CoScripter runs scripts by trying to interpret each command (e.g., click the "Search" button) on the current web page. It looks through all elements of the specified type (e.g., buttons) on the page and returns the first element that has a label matching the command. Well-designed web pages have labels specified by the page designer, making those pages more CoScript-friendly (and, at the same time, more accessible for users with disabilities).
But the underlying programming of other pages is not so clear. A box asking for your name, for example, might not be labeled “name” in the code that defines the page. When the labels are not specified, CoScripter tries to guess an appropriate label using what programmers called “heuristics.” So if CoScripter can’t find an element called “Name,” it would look for text near an web page element, or use the filename of an image. With these heuristics, CoScripter generates and interprets natural-sounding instructions that even we humans can read and edit easily.
Related links

|