EP0245925A2

Method for using a knowledge system in a conventional programming environment.

Abstract

A knowledge base processor is callable by an application program to access a knowledge base and to govern the execution or interpretation of the knowledge base to find the values of selected objects or expressions defined in the knowledge base. The application program is written in a conventional computer language which specifies control by the ordering of program steps. The application program provides a user interface for input/output and provides top level control for calling the knowledge base processor to find values for goal expressions. During its search for the values of goal expressions, the knowledge base processor calls the application program to determine values of expressions which are not -concluded by the knowledge base, and to signal important events during the execution of the knowledge base. Preferably the knowledge base processor and the application program each include a library of subroutines which are linked-loaded to provide a complete knowledge system for a specific application ortask. Therefore, the knowledge base processor provides the essential functions for symbolic reasoning, and establishes a framework for building the knowledge system which permits application program developers to exploit the best available conventional data processing capabilities. The application programmer is free to exercise his or her knowledge and skill regarding the use of conventional programming languages and their support facilities such as utility libraries, optimizing compilers and user interfaces.

EP0245925A2, drawing sheet 1
Sheet 1 of 370

Term

Term ended

Projected expiry passed 6 March 2007, 19.6 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

46 claims: 5 independent, 41 dependent

  1. 1
    A knowledge base processor characterized by a computer having a memory storing a knowledge base encoding knowledge about a certain subject domain, said knowledge base storing a set of rules which in combination are successfully applied to conclude values for certain expressions, said computer executing a control procedure including callable subroutine entry points for accessing the knowledge base and finding the value of a specified expression by invoking combinations of said rules, wherein said control procedure initiates calls to at..least one application supplied subroutine in response to certain designated steps being executed in said control procedure during said invoking of said.rules, said application supplied subroutine being written for and dependent upon said subject domain.
  2. 15
    A knowledge system characterized in that a computer having a memory storing a knowledge base encoding knowledge about a particular subject domain, said knowledge base including rules for determining symbolic values for expressions representing objects in the subject domain, said computer executing an application program for said subject domain, said application program being written in a conventional computer programming language that specifies control by the ordering of program steps that are executed by said computer, said application program including subroutine calls to a knowledge base processor for accessing the knowledge base and finding the value of a specified expression by invoking said rules.
  3. 29
    A knowledge system characterized by a digital computer having a memory storing a knowledge base encoding knowledge about a particular subject domain, said knowledge base including rules for conditionally concluding symbolic values for expressions representing objects in the subject domain, facts for concluding symbolic values for said expressions, and meta-facts for controlling the interpretation of said rules and facts when being invoked for concluding said expressions, a domain-independent knowledge base processor including a set of subroutines executed by said computer for interpreting said knowledge base to find the value of a goal expression by searching the knowledge base for the rules, facts, and meta-facts for concluding said goal expression and invoking said rules, facts, and meta-facts for concluding said goal expression, the invocation of certain rules being conditioned on certain other expressions having certain values which are in turn sought by searching the knowledge base, and a domain-dependent application program written in a computer programming language that specifies control by the ordering of program steps that are executed by said computer so that said domain-dependent application program calls a subroutine in said knowledge base processor for finding the value of a specified goal expression, and said knowledge base processor calls at least one application supplied subroutine for finding the values of certain expressions that are not concluded by the rules and facts in said knowledge base.
  4. 39
    The knowledge system as claimed in 29, characterized in that the knowledge base processor calls an application supplied subroutine in the application program to signal the occurrence of an error.
  5. 41
    A knowledge system characterized by a computer having a memory storing a knowledge base encoding knowledge about a particular subject domain, said knowledge base including rules for determining symbolic values for expressions representing objects in the subject domain, said computer executing an application program for said subject domain to conduct a consultation with a user about a certain problem in said domain, said application program being written in a conventional computer programming language that specifies control by the ordering of program steps that are executed by said computer, said application program having steps for asking the user certain questions about said problem and receiving responsive answers, wherein said application program calls a domain-independent subroutine library for symbolic inference which includes subroutines for back-chaining said rules to find the values of specified goal expressions and for changing the language of the knowledge base by adding specified application defined meta-propositions to the syntax recognized by the domain-independent subroutine library, said domain-independent subroutine library calling back certain application supplied subroutines in the application program during operation of the knowledge system, including at least one application supplied subroutine for evaluating said application defined meta-propositions when they are found in said rules.