Apply today for a FREE subscription to CIO Magazine!
Tue, May 29, 2007 13:19 EDT

|
Posted by: Fred Hapgood in Best Practices Topic: ApplicationsBlog: CIO Research Update
Current Rating: |
You know that curvy red line that some programs (like Word) draw under the words it thinks you have misspelled?
Imagine how cool it would be to have
a similar sort of error-checking for all the other areas of our life. Every time we got a name wrong, or forgot a birthday, or gave a chafing dish to a couple that never cooks, a wavy line would pop up in our field of vision, warning us that we just fumbled the ball.
One sphere of life that needs error-checking in the worst way is spreadsheets. It is very easy to make mistakes in spreadsheets since almost any value (in theory) can be entered into almost any cell, and almost any formula (again, in theory) could be associated with that or any other cell. The structure of a spreadsheet looks much the same everywhere. Thus it is very hard to pick out implausible entries at a glance.
The result is that spreadsheets are rife with errors. Indeed, some experts have claimed never to have seen a moderately complex spreadsheet without one or more, often many more, errors in it.
Given how important spreadsheets are to society this is obviously a situation crying out for redress. But computers are even worse at perceiving deviations from patterns than humans are. With all these degrees of freedom, how do you begin teaching an error checker the difference between right and wrong?
Recently a group of computer scientists at Oregon State University found an ingenious and possibly quite generalizable approach to the problem. While the program (called GoalDebug; for "Goal Directed Debugging of Spreadsheets") cannot pick up raw errors -- we still have to rely on humans to do that -- it optimizes correction of those errors.
GoalDebug is what is called an inference system -- in this case you flag an entry as an error and it infers how the error was made and therefore what the right value probably is.
More specifically, suppose you spot an entry in a spreadsheet you think looks weird. You feed the entry to GoalDebug and enter the kind of value you would have expected to see. The program then lists the kinds of human errors that would have yielded this particular mistake (not the corrections, the categories of errors).
You pick the category of error that you suspect might have been made. The program then calculates what the right value should have been if that error was indeed the one made, and (in some cases) points out other values that might have been generated by the same error. "This approach allows people with comparatively little training in computer programming to identify and repair errors," says Martin Erwig, one of the developers, "by looking at a short list of possible problems instead
of combing through hundreds or thousands of cells."
The OSU researchers are part of a multi-university consortium called EUSES that is dedicated to helping nontechies write and debug programs.
While so far as I can see no one is developing a version that works on relationships, surely that is not far off.