Knowledge engineering tool
First Claim
1. A knowledge engineering tool comprising a computer having a stored program and memory for storing a knowledge base,said knowledge base including factual knowledge and judgmental knowledge, said judgmental knowledge including judgmental rules having premises for limiting the conditions in which the rules are applicable and conclusions for indicating the actions to perform when the rules are successfully applied,said factual knowledge including definitions of attributes that can take on values,said judgmental rules including rules having premises referring to attributes and rules concluding values for attributes,means for executing a built-in control procedure includingmeans for interpreting the knowledge base,means for invoking and chaining said rules, andmeans for terminating the knowledge base search for a value,said knowledge base also including control knowledge supplied by a knowledge engineer to modify the built-in control procedure, anda language interpreter for executing the control knowledge to modify the built-in control procedure, whereby the control knowledge can be separated from the factual knowledge and judgmental knowledge and stored as a distinct portion of the knowledge base.
5 Assignments
0 Petitions
Accused Products
Abstract
A tool is used for knowledge engineers for building and interpreting a knowledge base having separate portions encoding control knowledge, factual knowledge, and judgmental rules. The tool has an inference engine applying the judgmental rules according to a built-in control procedure defining discrete states or control steps during a consultation with a user. The control knowledge is encoded in an applicative and imperative language defining control actions to be executed during interruption of the built-in control procedure at specified control steps. Since the control knowledge is explicit and results in the modification of data only in a precisely defined fashion, the tool can be used to build knowledge systems that can always explain their conclusions and reasoning, and that are intelligible and modifiable. To provide transparent representation of control knowledge as well as factual knowledge, the knowledge base is preferably organized into distinct frames which include the rules; control blocks separately encoding the control knowledge; and classes which become instantiated, attributes which take on values describing the class instances, class types, legal value hierarchies, and user-defined functions, which all encode factual knowledge. The knowledge engineer may provide control blocks to be executed at the start of the consultation, after the instantiation of specified classes, when a value for a specified attribute is to be determined, after a specified attribute is determined, and upon explicit invocation by another control block. The tool can also implicitly determine subsumed attributes.
-
Citations
69 Claims
-
1. A knowledge engineering tool comprising a computer having a stored program and memory for storing a knowledge base,
said knowledge base including factual knowledge and judgmental knowledge, said judgmental knowledge including judgmental rules having premises for limiting the conditions in which the rules are applicable and conclusions for indicating the actions to perform when the rules are successfully applied, said factual knowledge including definitions of attributes that can take on values, said judgmental rules including rules having premises referring to attributes and rules concluding values for attributes, means for executing a built-in control procedure including means for interpreting the knowledge base, means for invoking and chaining said rules, and means for terminating the knowledge base search for a value, said knowledge base also including control knowledge supplied by a knowledge engineer to modify the built-in control procedure, and a language interpreter for executing the control knowledge to modify the built-in control procedure, whereby the control knowledge can be separated from the factual knowledge and judgmental knowledge and stored as a distinct portion of the knowledge base.
-
50. A knowledge engineering tool comprising a computer system having a stored program and memory for storing a knowledge base,
said knowledge base including control knowledge, factual knowledge and judgmental knowledge, said judgmental knowledge including judgmental rules having premises for limiting the conditions in which the rules are applicable and conclusions for indicating the actions to perform when the rules are successfully applied, a built-in control procedure providing a base-level of control of the system, points of articulation in said built-in control procedure to allow the execution of specified portions of the control knowledge when said points are reached, and a control program for producing system activities in accordance with said built-in control procedure and said control knowledge by interpreting and executing said built-in control procedure and said control knowledge, whereby said control knowledge can be separated from said factual knowledge and judgmental knowledge and stored as a distinct portion of the knowledge base.
-
58. A knowledge engineering tool comprising a computer having a stored program and memory for storing a knowledge base,
means for creating, editing and augmenting a knowledge base that includes control knowledge, factual knowledge and judgmental rules about a particular problem domain, said knowledge base specifically including, facts and rules having certainty factors, declarations defining attributes that can take on values and respective certainty factors, predicates for attributes responsive to their respective certainty factors, judgmental rules concluding values for attributes, declarations defining whether attributes are single-valued or multivalued, declarations defining legal values for attributes, judgmental rules having premises referring to attributes not yet determined, means for interpreting the knowledge base to run an interactive advisory consultation with a user to advise the user on a selected aspect of said problem, interface means with predefined commands for a user to load said knowledge base, start said consultation, end said consultation, and save the results of said consultation, interface means for a user to ask questions and to receive responsive information, including the contents of the knowledge base, the current values of an attribute, why an attribute was determined, conclusions reached by said interpreting means, how an attribute was determined, and why a query was posed, means for generating a record of a consultation, including an ordered list of rules applied and blocks of control knowledge invoked during the consultation, means for determining the value and certainty factor of any atrribute, means for invoking and chaining said rules, means for selecting certainty factors for concluded values by combining certainty factors of attributes in the premises of said rules with the certainty factors of said rules, means for terminating the knowledge base search for determining a single-valued attribute when a value is found with a certainty factor above a prescribed level, and for determining a multivalued attribute when all values are determined, means for generating a query of the user for values of an attribute and for receiving values from the user in response to such a query, means for displaying to the user conclusions of the rules applied, means for declaring classes of objects and implicitly causing instances of a class to be created, and a language interpreter for executing imperative procedural language and providing a corresponding interpretation for the control knowledge, whereby the control knowledge can be separated from the factual knowledge and judgmental rules and stored as a distinct portion of the knowledge base.
-
59. A computer operating under control of a stored program for (a) enabling a knowledge engineer to generate a knowledge base in the memory of the computer including control knowledge, factual knowledge, and judgmental rules for encoding knowledge about a particular problem domain, and for (b) interpreting the knowledge base to conduct a consultation with a user regarding a specified problem in said problem domain, said stored program including a user interface for recognizing a predefined set of control commands, a question and answer facility recognizing questions from the user and formatting responsive answers including an explanation of the basis for the answers, and an inference engine for applying said judgmental rules to determine the responsive answers to said questions and for resolving conflicting conclusions of said judgmental rules,
wherein the improvement comprises: said knowledge base has a separate portion encoding said control knowledge separate from said factual knowledge and said judgmental rules, said control knowledge being encoded in an applicative and imperative procedural language defining a sequence of steps for conduting said consultation with the user, and further comprising language interpreter means for executing said imperative procedural language. - View Dependent Claims (60, 61, 62, 63, 64, 65)
-
66. A computer having a memory storing a predefined knowledge base including control knowledge, factual knowledge, and judgmental rules for encoding knowledge about a particular problem domain, said factual knowledge including definitions of classes of objects, attributes defining characteristics of said objects, and structures of said classes and attributes, said computer operating under control of a stored program interpreting the knowledge base to conduct a consultation with a user regarding a specified problem in said problem domain, said stored program including means for creating instances of said classes representing particular objects, a question and answer facility for recognizing questions from the user and formatting responsive answers including an explanation of the basis for the answers, and means for determining values for said attributes and said instances of said classes describing said characteristics of said particular objects, an inference engine for applying said judgmental rules to determine the responsive answers to said questions and for resolving conflicting conclusions of said judgmental rules,
wherein the improvement comprises: said knowledge base has a separate portion encoding said control knowledge separate from said factual knowledge and said judgmental rules, said control knowledge being encoded in an imperative procedural language defining a sequence of steps for conducting said consultation with the user, and further comprising language interpreter means for executing said imperative procedural language, said separate portion of said knowledge base encoding said control knowledge comprises a plurality of discrete control blocks, each control block including statements in said imperative procedural language, said statements including separate statements to ask the user a question and obtain a responsive answer, apply a specific set of said judgmental rules, display to the user the conclusions of the rules applied, and to execute another specified control block, said plurality of control blocks including at least one post-instantiation control block associated with at least one of said classes, at least one determination control block defining a predetermined method for determining a value for at least one of said attributes being undetermined and being included in the premise of one of said judgmental rules, and at least one post-determination control block using a determined value for a determined attribute, and wherein said procedural language interpreter comprises means for interrupting the execution of said procedural language to execute the procedural language statements in the post-instantiation control block when an instance of the associated class is created, means for interrupting execution of said procedural language to execute the procedural language statements in the determination control block when said inference engine applies said judgmental rule including said undetermined attribute, and said language interpreter means includes means for interrupting the execution of said procedural language to execute the procedural language statements in the post-determination control block when said judgmental rule determines the value for said undetermined attribute. - View Dependent Claims (67, 68, 69)
Specification