Patent US4658370A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4658370A Expired / Lapsed US ⏱️ 0.0 years remaining

Knowledge engineering tool

Assignee: TEKNOWLEDGE Inc
•
Filing: 1984-06-07
•
Granted: 1987-04-14
•
Expires: 2004-06-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Lee D. Erman
  • 👤 William J. Clancey
  • 👤 Philip E. London
  • 👤 A. Carlisle Scott
  • 👤 James S. Bennett
  • 👤 Jay S. Lark

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 20:44
CPC Classifications
G; G06; G06N; G06N5/00; G06N5/02; G06N5/022; Y; Y10; Y10S; Y10S706/00; Y10S706/902; Y10S706/903

Claims Analysis

Total Claims: 74
Claim 1
Independent Claim 176 words
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.
Claim 2
Dependent Claim 176 words
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.
Claim 3
Dependent Claim 21 words
A knowledge engineering tool as set forth in claim 1 which includes means for creating, editing and augmenting said knowledge base.
Claim 4
Dependent Claim 62 words
A knowledge engineering tool as set forth in claim 1 wherein said knowledge base includes, certainty factors for said values of attributes and rules, predicates responsive to the certainty factor of the values of attributes, declarations defining whether attributes are single-valued or multi-valued, declarations defining legal values for attributes, declarations defining that certain values of said attributes are of a prescribed type.
Claim 5
Dependent Claim 38 words
A knowledge engineering tool as set forth in claim 1 which includes 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.
Claim 6
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 1 which includes means for displaying to the user conclusions of the rules applied.
Claim 7
Dependent Claim 39 words
A knowledge engineering tool as set forth in claim 1 which includes means for declaring classes of objects, means for declaring a vector of said classes for each of said attributes, and means for creating instances of said classes.
Claim 8
Dependent Claim 48 words
A knowledge engineering tool as set forth in claim 6 wherein said means for creating instances of said classes includes means for implicitly creating instances of a class when a rule is applied having a premise including an attribute defined on a vector of classes including said class.
Claim 9
Dependent Claim 34 words
A knowledge engineering tool as set forth in claim 6 wherein said knowledge base includes judgmental rules having premises including quantified conditions determining whether a specified condition succeeds for a specified set of instances.
Claim 10
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 6 which includes means for producing information as to why an instance was created.
Claim 11
Dependent Claim 42 words
A knowledge engineering tool as set forth in claim 1 wherein said knowledge base includes declarations describing phrases to use when translating into conventional humanly readable language, knowledge base declarations of classes, class types, instances, control blocks, functions, value hierarchies, and attributes.
Claim 12
Dependent Claim 25 words
A knowledge engineering tool as set forth in claim 1 wherein said knowledge base includes declarations defining questions to ask a user to determine values.
Claim 13
Dependent Claim 22 words
A knowledge engineering tool as set forth in claim 1 which includes means for receiving values from the user for specified attributes.
Claim 14
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 1 which includes means for receiving uncertain values from the user for specified attributes.
Claim 15
Dependent Claim 26 words
A knowledge engineering tool as set forth in claim 1 which includes means for checking values for an attribute against predefined legal values for that attribute.
Claim 16
Dependent Claim 24 words
A knowledge engineering tool as set forth in claim 1 which includes means for translating said control knowledge into a conventional humanly readable language.
Claim 17
Dependent Claim 33 words
A knowledge engineering tool as set forth in claim 1 which includes means for explaining why and how said control knowledge was used at particular points during a particular consultation with a user.
Claim 18
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 1 which includes means defining a precise language having syntax for said control knowledge.
Claim 19
Dependent Claim 26 words
A knowledge engineering tool as set forth in claim 1 wherein said control knowledge is encoded in an imperative procedural language defining a sequence of steps.
Claim 20
Dependent Claim 17 words
A knowledge engineering tool as set forth in claim 18 wherein the imperative control language is applicative.
Claim 21
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 1 wherein said control knowledge is expressed as a number of discrete control blocks.
Claim 22
Dependent Claim 20 words
A knowledge engineering tool as set forth in claim 20 wherein a control block includes statements in a control language.
Claim 23
Dependent Claim 19 words
A knowledge engineering tool as set forth in claim 21 wherein said control language is an imperative procedural language.
Claim 24
Dependent Claim 21 words
A knowledge engineering tool as set forth in claim 21 wherein some of said statements request that particular attributes be determined.
Claim 25
Dependent Claim 24 words
A knowledge engineering tool as set forth in claim 21 wherein some of said statements attempt to reach conclusions about attributes using prescribed means.
Claim 26
Dependent Claim 28 words
A knowledge engineering tool as set forth in claim 21 wherein some of said statements attempt to reach conclusions about attributes by applying specified sets of judgmental rules.
Claim 27
Dependent Claim 21 words
A knowledge engineering tool as set forth in claim 21 wherein some of said statements display arbitrary text to the user.
Claim 28
Dependent Claim 20 words
A knowledge engineering tool as set forth in claim 21 wherein some of said statements execute other specified control blocks.
Claim 29
Dependent Claim 33 words
A knowledge engineering tool as set forth in claim 21 wherein said attributes are defined on predetermined vectors of classes of objects, and some of said statements cause explicit instantiation of specified classes.
Claim 30
Dependent Claim 34 words
A knowledge engineering tool as set forth in claim 1 which includes means for indicating that the execution of said control knowledge to run a consultation is to commence in a prescribed control block.
Claim 31
Dependent Claim 35 words
A knowledge engineering tool as set forth in claim 1 wherein said attributes are defined on predetermined vectors of classes of objects, and further including means for causing instances of a class to be created.
Claim 32
Dependent Claim 34 words
A knowledge engineering tool as set forth in claim 30 wherein said control knowledge comprises a plurality of discrete control blocks, and means for associating selected post-instantiation control blocks with selected classes of objects.
Claim 33
Dependent Claim 22 words
A knowledge engineering tool as set forth in claim 30 wherein said instances of a class are implicitly caused to be created.
Claim 34
Dependent Claim 59 words
A knowledge engineering tool as set forth in claim 32 wherein said control knowledge comprises a plurality of discrete control blocks and said interpreter comprises means for interrupting the execution of said control language to execute the control knowledge statements in selected post-instantiation control blocks associated with a selected class when an instance of said class has been created.
Claim 35
Dependent Claim 26 words
A knowledge engineering tool as set forth in claim 1 wherein said control knowledge includes control blocks specifying methods for determining the values of prescribed attributes.
Claim 36
Dependent Claim 40 words
A knowledge engineering tool as set forth in claim 34 which includes means for interrupting the application of a rule in order to execute said control block to determine the value of an attribute in the premise of said rule.
Claim 37
Dependent Claim 39 words
A knowledge engineering tool as set forth in claim 34 which includes means for interrupting the execution of a control block in response to an explicit request within the control block for determination of one of said prescribed attributes.
Claim 38
Dependent Claim 31 words
A knowledge engineering tool as set forth in claim 1 wherein said control knowledge includes a plurality of control blocks, some of which are post-determination control blocks associated with selected attributes.
Claim 39
Dependent Claim 25 words
A knowledge engineering tool as set forth in claim 37 which includes post-determination control blocks for accessing and using concluded values of said associated attributes.
Claim 40
Dependent Claim 33 words
A knowledge engineering tool as set forth in claim 37 which includes means for executing a post-determination control block after a value has been determined for an attribute associated with said control block.
Claim 41
Dependent Claim 28 words
A knowledge engineering tool as set forth in claim 1 wherein said knowledge base includes user-defined functions and said judgmental rules include calls to said user defined functions.
Claim 42
Dependent Claim 46 words
A knowledge engineering tool as set forth in claim 1 wherein said attributes are defined on predetermined vectors of classes of objects, and said knowledge base includes attributes declared to be subsumed by a Boolean attribute defined on the same vector of classes and class types.
Claim 43
Dependent Claim 31 words
A knowledge engineering tool as set forth in claim 41 wherein each subsumed Boolean attribute is concluded to be definitely false when a subsuming attribute is determined to be definitely false.
Claim 44
Dependent Claim 43 words
A knowledge engineering tool as set forth in claim 41 wherein each subsumed attribute that is non-Boolean but that takes on enumerable values is concluded to be definitely not each of those values when its subsuming attribute is determined to be definitely false.
Claim 45
Dependent Claim 48 words
A knowledge engineering tool as set forth in claim 41 wherein each subsumed attribute that is non-Boolean but that takes on non-enumerable values is designated as being determined, with no conclusions being made for any of its values, when a subsuming attribute is determined to be definitely false.
Claim 46
Dependent Claim 30 words
A knowledge engineering tool as set forth in claim 41 wherein a subsuming attribute is concluded to be definitely true when a definite value is concluded for a subsumed attribute.
Claim 47
Dependent Claim 31 words
A knowledge engineering tool as set forth in claim 41 which includes means for attempting to first determine a subsuming attribute whenever an attempt is made to determine a subsumed attribute.
Claim 48
Dependent Claim 41 words
A knowledge engineering tool as set forth in claim 1 which includes means for specifying a finite set of legal values of a declared type for any attribute, and means for constraining that attribute to take on values from that set.
Claim 49
Dependent Claim 22 words
A knowledge engineering tool as set forth in claim 47 wherein said finite set of legal values is a hierarchy of values.
Claim 50
Dependent Claim 35 words
A knowledge engineering tool as set forth in claim 1 which includes means for designating selected system states as points of articulation for interruption of the built-in control procedure for execution of said control knowledge.
Claim 51
Dependent Claim 153 words
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.
Claim 52
Dependent Claim 153 words
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.
Claim 53
Dependent Claim 23 words
A knowledge engineering tool as set forth in claim 50 further comprising means for permitting a user to define said points of articulation.
Claim 54
Dependent Claim 39 words
A knowledge engineering tool as set forth in claim 51 further comprising means for permitting the user to define a prescribed action sequence to be effected in response to prescribed conditions existing when said points of articulation are reached.
Claim 55
Dependent Claim 24 words
A knowledge engineering tool as set forth in claim 50 wherein said points of articulation include a point where a consultation has just begun.
Claim 56
Dependent Claim 41 words
A knowledge engineering tool as set forth in claim 50 wherein the built-in control procedure includes means for defining prescribed conditions that must exist for specified portions of the control knowledge to be executed when respective points of articulation are reached.
Claim 57
Dependent Claim 35 words
A knowledge engineering tool as set forth in claim 50 wherein said factual knowledge includes definitions of classes and said points of articulation include at least one point where an instance of class is created.
Claim 58
Dependent Claim 40 words
A knowledge engineering tool as set forth in claim 50 wherein said factual knowledge includes definitions of attributes that can take on particular values and said points of articulation include at least one point where an attribute has been determined.
Claim 59
Dependent Claim 41 words
A knowledge engineering tool as set forth in claim 50, wherein said factual knowledge includes definitions of atrributes that can take on particular values and said points of articulation include at least one point where an attribute needs to be determined.
Claim 60
Dependent Claim 403 words
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.
Claim 61
Dependent Claim 403 words
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.
Claim 62
Dependent Claim 188 words
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.
Claim 63
Dependent Claim 188 words
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.
Claim 64
Dependent Claim 78 words
The computer as claimed in claim 59, wherein 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 procedural language including separate statements to ask the user a question and obtain a responsive answer, apply a specified set of said judgmental rules, display to the user the conclusions of the rules applied, and to execute another specified control block.
Claim 65
Dependent Claim 103 words
The computer as claimed in claim 60, wherein said factual knowledge includes means for declaring at least one class of objects, said knowledge base includes means for causing distinct instances of said class to be created when the knowledge base is interpreted during a consultation, wherein said plurality of discrete control blocks includes at least one post-instantiation control block associated with said class, 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 associated with said class when an instance of said class has been created.
Claim 66
Dependent Claim 120 words
The computer as claimed in claim 60 wherein said factual knowledge includes means for defining at least one attribute capable of having a respective value, one of the judgmental rules has a premise conditioned on the value of said attribute so that said inference engine requires the value of said attribute to apply said rule, said plurality of discrete control blocks includes at least one determination control block defining a predetermined method for determining a value for said attribute, and said language interpreter includes means for interrupting execution of said procedural language to execute the procedural langauge statements in the determination control block when said inference engine applies said rule and requires the determination of a value for said attribute.
Claim 67
Dependent Claim 98 words
The computer as claimed in claim 60, wherein said factual knowledge includes means for defining at least one attribute capable of having a respective value, one of the judgmental rules concludes a value for said attribute when it is applied by said inference engine, said plurality of discrete control blocks includes a post-determination control block using the concluded value for said 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 a value for said attribute.
Claim 68
Dependent Claim 122 words
The computer as claimed in claim 59, wherein said factual knowledge base includes means for defining attributes capable of having respective values, and means for defining designated ones of the attributes as Boolean attributes having values from the set of values including true and false, and means for defining designated ones of the attributes as subsumed by designated respective ones of said Boolean attributes, and wherein said inference engine includes means for determining the value of an attribute by testing whether the attribute is subsumed by one of said Boolean attributes determining the value of any such Boolean attribute, and determining that the value of the subsumed attribute is known to be irrelevant when the value of such Boolean attribute is false.
Claim 69
Dependent Claim 55 words
The computer as claimed in claim 64, wherein said inference engine comprises post-determination means, operative when a value for an attribute is determined, for testing whether the attribute is subsumed by one of said Boolean attributes, and determining any such Boolean attribute to be true when the subsumed attribute is known to have a value.
Claim 70
Dependent Claim 461 words
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.
Claim 71
Dependent Claim 461 words
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.
Claim 72
Dependent Claim 112 words
The computer as claimed in claim 66, wherein said factual knowledge base includes means for defining designated ones of the attributes as Boolean attributes having values from the set of values including true and false, and means for defining designated ones of the attributes as subsumed by designated respective ones of said Boolean attributes, and wherein said inference engine includes means for determining the value of an attribute by testing whether the attribute is subsumed by one of said Boolean attributes determining the value of any such Boolean attribute, and determining that the value of the subsumed attribute is known to be irrelevant when the value of such Boolean attribute is false.
Claim 73
Dependent Claim 54 words
The computer as claimed in claim 67, wherein said inference engine comprises post-determination means, operative when a value for an attribute is determined, for testing whether the attribute is subsumed by one of said Boolean attributes, and determining any such Boolean attribute to be true when a value is known for the subsumed attribute.
Claim 74
Dependent Claim 72 words
The computer as claimed in claim 66, wherein said factual knowledge base includes means for defining at least one of said attributes as multivalued, means for defining hierarchies of legal values for said multivalued attribute, and wherein said inference engine comprises means for determining certainty factors for concluded legal values of said attribute, and said knowledge base interpreter includes means for propagating the determined certainty factors through said hierarchy of legal values.

References Cited (Backward Citations)

US3697957A Cited
US3716840A Cited
US4286330A Cited
US4368509A Cited
US4326259A Cited
US4479176A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-04-13 1990-10-13 1991-04-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-04-13 1994-10-13 1995-04-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-04-13 1998-10-13 1999-04-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag