Information technological devices such as personal computers, handheld devices such as mobile phones and portable media players, and processors embedded in various kinds of equipment are becoming ubiquitous in our everyday environment. At the same time, these devices and their associated software are continually increasing in complexity, leading to an increased need for resolution of complex support issues.
Most computer support today is provided through telephone support. Telephone support is very labor intensive, and the cost per support call is unavoidably high. As a consequence the purchase price of a personal computer is only a small fraction of the total cost of ownership for most organizations.
Also, support incidents not only generate direct costs—they also cause indirect cost, both because of the productive time lost for the user with a computer problem, and because other employees may need to spend their time in helping out. Thus there are very significant economic gains to be made if the process of computer support could be automated to a larger extent within companies. Since many users encounter similar problems, in particular in more homogenous software environments such as those often found within large corporations, such automated solutions could be advantageous even if they handle only a subset of all possible problems.
Furthermore, telephone support is a less than ideal solution from a working environment perspective. Telephone support is often carried out at large call centers which mostly handle simple repetitive tasks, since many users encounter identical problems. Organizations can thus gain an advantage by providing more rewarding tasks for their employees and letting common repetitive tasks be solved by an automated system.
Several systems have been proposed where both problem diagnosis and problem resolution is automated in computer systems. Such systems have often been based on well-known methods from artificial intelligence, such as expert systems or case-based reasoning. Some examples are U.S. Pat. No. 5,107,500, U.S. Pat. No. 5,944,839, U.S. Pat. No. 5,678,002, U.S. Pat. No. 5,983,364, U.S. Pat. No. 6,742,141 B1, U.S. Pat. No. 6,145,096, and U.S. Pat. No. 6,785,834.
Another approach towards more cost-effective computer support is to let the end user take an active role in the diagnosis and resolution of problems, so called self-help. Self-help may for take the form of web-based support databases, where the user is provided with a large number of alternative diagnoses and solutions to a technical problem, and has to choose between these himself.
Self-help could also involve communicating with a computer program which attempts to interpret information provided by the user, and also analyzes the state of the user's system, in order to guide the user to a solution of the problem. The user may also automatically be connected to a human support technician in cases where the system fails to resolve the problem at hand. Such systems have previously been described, e.g., in U.S. Pat. No. 6,615,240.
However, it can be very difficult for an ordinary computer user to find relevant technical information in a large database, even with the assistance of a self-help system. A large database of computer support information could today consist of 105 to 106 technical articles (an example is Microsoft Technet, which currently contains at least 150,000 articles). This number is likely to increase significantly in the future as systems become more complex, making the task of navigating a comprehensive support database even more difficult.
It is therefore essential to minimize the number of questions asked of the user and the number of alternatives presented in a self-help system. This will serve to increase user acceptance of self-help systems, and increase productivity in the support process.
One way of addressing this need is to use information from automated diagnosis tools that determine various aspects of the state of the user's system. This information can be used to guide the search process and to reduce information overload by filtering out alternatives that are irrelevant to the current support context. Such systems have been described, e.g., in U.S. Pat. No. 6,658,598.
However, the amount of support information remaining after filtering may still be very large, making search difficult for the user. This is particularly likely to occur when the support interaction involves limited knowledge of the system on the user's part rather than an actual system fault that could be detected automatically. In these cases, an understanding of typical user behavior is also needed to provide an effective guided search process.
It would therefore be beneficial to provide a system and a method for assisting the user in the search process so that the effort in finding a solution to a support problem is minimized.