Basic expert system tool
First Claim
1. A knowledge engineering tool comprising a computer having memory for storing a knowledge base,means for interpreting the knowledge base to run an advisory consultation to determine the value of any selected goal expression requested by the user and the value of any subsidiary goal expression implicitly required to determine the value of said selected goal expression,wherein said knowledge base includesfacts expressed as expressions equivalenced to corresponding values,rules including premises having logical operations and corresponding conclusions concluding at least one value for a selected expression,meta-facts equivalent in form to facts but prescribing the manner in which facts and rules should be used, anddeclarations defining whether certain of said expressions are single-valued or multiple-valued, andwherein said means for interpreting said knowledqe base includesmeans for determining the value of any selected goal expression,means for searching the knowledge base for occurrences of the selected expression,means for invoking and chaining said rules concluding a value for the selected goal expression,means for evaluating said logical operations in the premises of the invoked rules,means for terminating the searching of the knowledge base for a single-valued expression when a substantially certain value is found, and for a multiple-valued expression when all values for the expression are determined, andmeans for conveying to the user said value of said goal expression.
5 Assignments
0 Petitions
Accused Products
Abstract
A tool for building a knowledge system and running a consultation on a computer is easily mastered by people with little computer experience yet also provides advanced capabilities for the experienced knowledge engineer. The knowledge system includes a knowledge base in an easily understood English-like language expressing facts, rules, and meta-facts for specifying how the rules are to be applied to solve a specific problem. The tool includes interactive knowledge base debugging, question generation, legal response checking, explanation, certainty factors, and the use of variables. The knowledge base language permits recursion and is extensible. Preferably, control during a consultation is goal directed in depth-first fashion as specified by rule order. The tool is easily embodied in assembly language, or in PROLOG to allow user-defined PROLOG functions.
-
Citations
40 Claims
-
1. A knowledge engineering tool comprising a computer having memory for storing a knowledge base,
means for interpreting the knowledge base to run an advisory consultation to determine the value of any selected goal expression requested by the user and the value of any subsidiary goal expression implicitly required to determine the value of said selected goal expression, wherein said knowledge base includes facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for a selected expression, meta-facts equivalent in form to facts but prescribing the manner in which facts and rules should be used, and declarations defining whether certain of said expressions are single-valued or multiple-valued, and wherein said means for interpreting said knowledqe base includes means for determining the value of any selected goal expression, means for searching the knowledge base for occurrences of the selected expression, means for invoking and chaining said rules concluding a value for the selected goal expression, means for evaluating said logical operations in the premises of the invoked rules, means for terminating the searching of the knowledge base for a single-valued expression when a substantially certain value is found, and for a multiple-valued expression when all values for the expression are determined, and means for conveying to the user said value of said goal expression.
-
15. A knowledge engineering tool comprising a computer having memory for storing a knowledge base and memory for storing predetermined instructions including
means to augment and edit the knowledge base, and means for interpreting the knowledge base to run an interactive consultation with the user to determine the value of at least one predetermined goal expression, wherein said knowledge base includes facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for said goal expression, said rules including recursive rules and rules having universally quantified variables, propositions including arithmetic operations, declarations defining whether selected expressions are single valued or multiple-valued, declarations defining questions to be asked to determine the values of selected expressions, and declarations defining legal values of selected expressions, and wherein said means for interpreting the knowledge base includes means for determining the value of said goal expression including means for searching the knowledge base for occurrences of the goal expression, means for invoking and chaining said rules to conclude a value for said goal expression, means for evaluating the logical operations in the premises of the invoked rules, means for evaluating said propositions, means for terminating the searching of the knowledge base for a single-valued expression when a certain value is found and for a multiple-valued expression when all values for the expression are determined, means for instantiating and de-instantiating the universally quantified variables in said rules, means for asking the user said questions to determine the values of their corresponding expressions, means for receiving from the user and checking values of said corresponding expressions against the corresponding declared legal values, and means for explaining to the user why the user is asked for the values of said corresponding expressions, means for conveying to the user said value of said goal expression, means for explaining to the user how said value of said goal expression was determined, and means for generating a record of said consultation including a list of the rules invoked during a test consultation.
-
16. A knowledge engineering tool comprising
a computer having memory for storing a knowledge base and memory for storing predetermined instructions including means to augment and edit the knowledge base, and means for interpreting the knowledge base to run an interactive consultation with the user to determine the value of at least one predetermined goal expression, wherein said knowledge base includes facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for said goal expression, said rules including recursive rules and rules having universally quantified variables, certainty factors associated with said facts and rules for encoding uncertain as well as certain knowledge, propositions including arithmetic operations, propositions responsive to whether a value of a predetermined expression has been determined with a predetermined degree of certainty, and declarations defining whether selected expressions are single-valued or multiple-valued, and wherein said means for interpreting the knowledge base includes means for determining the value of said goal expression including means for searching the knowledge base for occurrences of the goal expression, means for invoking and chaining said rules to conclude a value for said goal expression, means for evaluating the logical operations of the premises of the invoked rules and selecting certainty factors for the concluded values based on the certainty factors of the rules and the certainty factors of the premises, means for updating the certainty factor of a value of an expression by combining certainty factors, means for evaluating said propositions, means for terminating the searching of the knowledge base for a single-valued expression when a certain value is found and for a multiple-valued expression when all values for the expression are determined, and means for instantiating and de-instantiating the universally quantified variables in said rules, and means for conveying to the user said value of said goal expression and its certainty factor.
-
17. A knowledge engineering tool comprising
a computer having memory for storing a knowledge base and memory for storing predetermined instructions including means to augment and edit the knowledge base, and means for interpreting the knowledge base to run an interactive consultation with the user to determine the value of at least one predetermined goal expression, wherein said knowledge base includes facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for said goal expression, said rules including recursive rules and rules having universally quantified variables, and declarations defining whether selected expressions are single-valued or multiple-valued, and wherein said means for interpreting the knowledge base includes means for determining the value of said goal expression including means for searching the knowledge base for occurrences of the goal expression, means for invoking and chaining said rules to conclude a value for said goal expression, means for evaluating the logical operations in the premises of the invoked rules, means for terminating the searching of the knowledge base for a single-valued expression when a certain value is found and for a multiple-valued expression when all values for the expression are determined, and means for instantiating and de-instantiating the universally quantified variables in said rules, and means for conveying to the user said value of said goal expression.
-
18. A knowledge engineering tool comprising
a computer having memory for storing a knowledge base and memory for storing predetermined instructions including means to augment and edit the knowledge base, and means for interpreting the knowledge base to run an interactive consultation with the user to determine the value of at least one predetermined goal expression, wherein said knowledge base includes facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for said goal expression, said rules including recursive rules and rules having universally quantified variables, certainty factors associated with said facts and rules for encoding uncertain as well as certain knowledge, propositions including arithmetic operations, propositions responsive to whether a value of a predetermined expression has been determined with a predetermined degree of certainty, declarations defining whether selected expressions are single-valued or multiple-valued, declarations defining questions to be asked to determine the values of selected expressions, and declarations defining legal values of selected expressions, and wherein said means for interpreting the knowledge base includes means for determining the value of said goal expression including means for searching the knowledge base for occurrences of the goal expression, means for invoking and chaining said rules to conclude a value for said goal expression, means for evaluating the logical operations of the premises of the invoked rules and selecting certainty factors for the concluded values based on the certainty factors of the rules and the certainty factors of the premises, means for updating the certainty factor of a value of an expression by combining certainty factors, means for evaluating said propositions, means for terminating the searching of the knowledge base for a single-valued expression when a certain value is found and for a multiple-valued expression when all values for the expression are determined, means for instantiating and de-instantiating the universally quantified variables in said rules, means for asking the user said questions when the values of their corresponding expressions are not known with a predetermined certainty, means for receiving from the user and checking values of said corresponding expressions against the corresponding declared legal values, and means for explaining to the user why the user is asked for the values of said corresponding expressions, means for conveying to the user said value of said goal expression and its certainty factor, means for explaining to the user how said value of said goal expression was determined, and means for generating a record of said consultation including a list of the rules invoked during a test consultation.
-
29. A process of operating a computer having a memory to execute a knowledge base stored in the memory to run an advisory consultation about a predefined goal expression included in the knowledge base, said knowledge base comprising entries including
facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for a corresponding expression, said rules including recursive rules and rules having universally quantified variables, meta-facts equivalent in form to facts but prescribing the manner in which facts and rules should be used, and declarations defining whether certain of said expressions are single-valued or multiple-valued, said process comprising the steps of: -
searching the knowledge base for occurrences of said goal expression, and determining the value of said goal expression by invoking said rules concluding a value for said goal expression, searching the knowledge base for entries concluding values for subsidiary goal expressions found in the premises of said invoked rules, invoking said rules concluding values for said subsidiary goal expressions including evaluating said logical operations in said premise of said rules and instantiating and de-instantiating said logical variables to said subsidiary goal expressions, chaining said rules concluding values for said subsidiary goal expressions with said rules concluding a value for said goal expression, terminating the searching of the knowledge base for a single-valued expression when a substantially certain value is found, and for a multiple-valued expression when all values for the expression are determined, and transmitting to the user said determined value for said goal expression along with an explanation of how said value was determined for said goal expression. - View Dependent Claims (30, 31, 32, 33)
-
-
34. A knowledge system comprising a computer having memory for storing a knowledge base including expressions, and
means for interpreting the knowledge base to determine the value of a selected one of said expressions, wherein said knowledge base includes a plurality of entries including facts expressed as expressions equivalenced to corresponding values, rules including premises having logical operations and corresponding conclusions concluding at least one value for respective expressions, said facts and rules including respective certainty factors for encoding certain as well as uncertain knowledge, and declarations defining questions to be asked of a user to determine the values of certain of said expressions, and wherein said means for interpreting said knowledge base to determine the value of selected expression includes means for sequentially searching the knowledge base to find occurrences of the selected expression, means for determining whether an occurrence of the selected expression is found in a fact equivalencing a value for the selected expression and thereupon determining the equivalenced value and certainty factor for said expression, means for determining whether an occurrence of the selected expression is found in a rule concluding a value for the selected expression and thereupon evaluating the premise of the rule by evaluating the logical operations in the premise and recursively searching the knowledge base to determine values for expressions that are arguments of said logical operations, and upon evaluation of the premise of the rule conditionally concluding a value and certainty factor for the selected expression responsive to the respective certainty factor of the rule and the evaluation of the premise, and means for determining whether an occurrence of the selected expression is found in a declaration defining a question to be asked the user, and thereupon asking the user for a value and certainty factor for the selected expression.
Specification