KnowledgeWright Support Introduction


Introduction

KnowledgeWright Support is a KnowledgeWright Jig that is specifically designed to find a solution that matches the user's problem. It is ideal for a wide range of support problems including software support, hardware problem diagnosis and common problem resolution..

KnowledgeWright Support includes all the powerful features of KnowledgeWright Basic. This provides a variety of ways to specify multiple levels of rules, access data from internal or external tables, use sophisticated document formatting and much more. Please see the Support Tutorial Introduction for a more information on these capabilities.

When looking at any knowledgebase or expert system tool, there are two key factors that tell a lot about the system.

    1. The way data used by the system is represented, and
    2. The reasoning strategy used to apply the rules to the data.

The Support Jig extends the data representations available in the Basic Jig by adding solution and external_action objects, and changes the reasoning strategy by focusing on finding a matching soltuion object as a goal.

Solution Objects

The foundation of the Support Jig are solution objects. Each solution consists of:

External_Action Objects

Since support systems can rarely answer every user's problem, most systems need to forward unsolved problems to human technical support personnel. The external_action object provides the ability to do this. External actions are implemented by the calling program, whether it be a CGI interface, JSP/ASP or Java, Delphi or Visual Basic application. The CGI interface implements an external action to send an email.

Reasoning

KnowledgeWright Support uses what is called goal-driven reasoning. This means it starts with the goal of finding a solution object that matches the user's environment and problem conditions.

The reasoning engine starts by making a list of all the solutions in the knowledgebase and puts them in priority order, with the ones with the lowest priority coming first and those with the highest priority coming last.

Starting with the first solution, it first tries to determine if the environment conditions are true. So the goal of the system is to prove the first environment condition. For example, if the environment condition is printer_type = "inkjet", now the first sub-goal of the system is to determine a value for printer_type.

First it looks to see if there is a fact named printer_type. If not, then it would look for rule_sets or rules_tables that can provide a value for printer_type. If not, then it would look for a question named printer_type that it can ask the user.

(In the case of rule_sets or rules_tables, additional sub-goals may need to be proven. This can lead to a very sophisticated reasoning process. See the Basic Jig for details on this.)

Provided there is a question for printer_type, and the user enters "inkjet" then the reasoning engine goes on to the next environment condition until all of them have been proven. Once the environment matches, the reasoning process works its way through all the conditions. If at any time an environment or condition does not match, that solution is removed from the list of possible solutions, and the reasoning process starts again with the next solution.

The Web

Of course, the text objects can all contain HTML for deployment on the Web. But this is enough talk, its time to start playing with the system.




Copyright ©1995-2006 Amzi! inc. All Rights Reserved. Privacy Policy.
Amzi!, KnowledgeWright and WebLS are registered trademarks and Adventure in Prolog, Logic Server, Logic Explorer, Adventure in Prolog and Subscription Plus are trademarks of Amzi! inc.