Many companies maintain computer databases containing descriptions of problems solved by customer engineers of the company. Each record or object of the database contains information about one of the problems that have been solved by persons who have worked for the company. This information may include a description of each problem in the database, as well as a description of the solution of that problem.
When a customer engineer wishes to use the computer database to solve a problem, the customer engineer enters a description of the problem that will allow the database to rank each solved problem stored in the database in the order of probability of matching the problem to be solved. For example, the solutions database for a company that sells computer networking products may contain 10 fields, which are used to enter a description of a problem. The first field may contain a description of the type of problem. The second field contains the description of the type of network. The third field contains a list of the model numbers of the one or more products that are either in the system that is not properly functioning, or themselves suspected of not functioning properly. The fourth field contains a list of software versions relevant to the problem. The fifth field contains a list of the interfaces pertinent to the problem. The sixth field contains a list of the protocols pertinent to the problem. The seventh field contains a list of the wide area networking protocols pertinent to the problem. The eighth field contains a textual description of the symptom of the problem. The ninth field contains a textual description of any error messages provided by any of the products in the third field. The 10th field contains a description of any interoperability issues.
To use the database to solve a problem, a customer engineer fills out as many of the above fields describing the problem as possible, and tells the database to locate solutions to similar problems. The database then ranks its stored, solved problems according to the similarity to the engineer's current problem. The database then displays titles and descriptions of the solved problems in rank order. The customer engineer can the review the solved problems and solutions in the order of similarity, select one, and apply it to the problem. If the application of the selected solution to the problem does not solve the problem, the customer engineer can continue scanning the solutions and continue selecting and applying solutions until the problem is solved or the customer engineer determines the solution to his problem is not in the database.
If the customer engineer determines that the solution to the problem is not in the database, the customer engineer may solve the problem without the use of the database. Once this solution is identified, the customer engineer may enter the description of the problem and its solution into the database so that subsequent similar problems may be more easily solved.
To rank each of the solved problems stored in the database, the database maintains a function and a weight for each of the ten fields described above. The function identifies field similarities between the problem to be solved and the solved problems stored in the database. For example, if one product is similar to another product, the function can identify the similarity between the product field of the problem to be solved to the product fields of the solved problems stored in the database. The function returns a similarity value for the field. The similarity values for all fields are programmed so that a perfect match between the field of the problem to be solved and any solved problem stored in the database produces a function result of a value of 1, and unrelated values produce a function result of less than 1, such as zero, although any range of values may be used. There is one such function for each field used to identify similarities.
Although each function uses the same 0-1 point scale, some fields may have more of an effect on the probability that a potential problem will match a solved problem stored in the database. To adjust for the differences in the effect of a match of a field, weights are assigned to each field. The weight of each field is determined using conventional knowledge engineering methods based on the importance of a match in that field to the solution of the problem. A field for which a match is more important to the solution of problems will have a higher weight than other fields for which a match is less likely to indicate the solution.
The function result for each field is multiplied by the weight of that field to produce an interim result. The interim results for each field of a solution stored in the database are added together to produce a score for each solution stored in the database.
The database may then sort the solutions stored in the database in descending order of the score of each solution. The database then displays the sorted solutions in sorted order along with the score. The customer engineer may then use the score and the order of the displayed solution to select a solution to apply to the problem.
It is possible that the actual solution to the problem is ranked below the first ranked solution, indicating that the scoring mechanism could be improved. When this situation occurs, there is presently no feedback mechanism to allow the database system to adjust the manner in which the solutions stored in the database are scored so that the actual solution can receive a higher score in the event that the identical problem is subsequently encountered. Therefore, a system and method are needed which can modify the manner in which the solutions stored by the database are ranked based on the rank of an actual solution relative to solutions the system identified as most similar.