Intelligent assistant for using and operating computer system capabilities to solve problems
First Claim
1. A computer system comprising, in combination,means for receiving a specification of a problem from a user,a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing certain capabilities of a target computer system to solve problems relating to said problem area, andmeans for using said predefined knowledge to determine whether it is impractical to design a computer program for said target computer system that uses said capabilities of said target computer system to solve the problem specified by said user, so that said problem specified by said user is rejected as inappropriate when it is impractical to design a computer program for using the capabilities of said target computer system to solve said problem.
5 Assignments
0 Petitions
Accused Products
Abstract
To help a user program a computer target system to solve problems, the computer system is provided with predefined capabilities and the user is provided with a knowledge system that includes knowledge about applying the capabilities to effectively and efficiently solve the user'"'"'s problems. The knowledge system provides automatic programming for solving problems within a particular domain, rejects problems that cannot be solved using the available capabilities of the target computer, and explains how and why a certain program was generated or why a program cannot be generated to solve a given problem. The knowledge system preferably collects information about the user'"'"'s problem, designs a program that exploits the capabilities of the target computer system effectively to address the user'"'"'s problem, encodes the program into a form suitable for execution on the computer system, conveys the program to the computer system, explains to the user why particular elements of the program are included, and justifies its reasoning to the user. A specific embodiment pertaining to reflection seismology is described for advising a user on how to apply a set of program modules for performing static corrections on seismic data, and for generating a job deck for execution on a general-purpose digital computer.
243 Citations
70 Claims
-
1. A computer system comprising, in combination,
means for receiving a specification of a problem from a user, a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing certain capabilities of a target computer system to solve problems relating to said problem area, and means for using said predefined knowledge to determine whether it is impractical to design a computer program for said target computer system that uses said capabilities of said target computer system to solve the problem specified by said user, so that said problem specified by said user is rejected as inappropriate when it is impractical to design a computer program for using the capabilities of said target computer system to solve said problem.
- 10. The system as claimed in 9, further comprising means for generating a description of said coded computer program.
-
20. A system comprising, in combination,
means for receiving a specification of a problem from a user, a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing certain capabilities of a target computer system to solve problems relating to said problem area, and means for generating a design for a program for using said capabilities of said target computer system to solve said problem.
- 24. The system as claimed in 23, further comprising means for generating a description of said coded computer program.
-
34. A computer system comprising, in combination,
a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing certain capabilities of a target computer system to solve problems relating to said problem area, means for storing and retrieving a design for a computer program for said target computer system that uses said capabilities of said target computer system to solve a problem relating to said problem area, and means for applying said knowledge stored in said memory to generate an explanation of reasons why said design is appropriate for using said capabilities of said target computer system to solve said problem.
-
38. An automatic programming system for designing a computer program for a target computer system having certain capabilities, said automatic programming system comprising, in combination,
means for receiving a specification of a problem, a memory having stored therein predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about methods of employing said capabilities of said target computer system to solve problems relating to said problem area, means for using said predefined knowledge to determine whether it is impractical to generate a computer program for said target computer system that uses said capabilities of said target computer system to solve the specified problem, so that the specified problem is rejected as inappropriate when it is impractical to generate a computer program for using the capabilities of said target computer system to solve the specified problem, means for generating a computer program for using said capabilities of said target computer system to solve the specified problem when said means for using said predefined knowledge does not determine that it is impractical to generate a computer program for said target computer system that uses said capabilities of said target computer system to solve the specified problem, and means for generating an explanation of reasons why said computer program is appropriate for using said capabilities of said target computer system to solve said problem when said means for using said predefined knowledge does not determine that it is impractical to generate a computer program for said target computer system that uses said capabilities of said target computer system to solve the specified problem.
-
40. The system as claimed in 38, wherein said means for generating a computer program further comprises means for generating a description of said coded computer program and incorporating at least a portion of said description into the computer program as comments.
-
47. A method of operating a digital computer for designing a computer program to be executed on a target computer for using predefined capabilities of the target computer to solve a specified problem, said digital computer having a memory storing predefined knowledge about methods of solving problems relating to a certain problem area including knowledge about employing said capabilities of said target computer system to solve problems relating to said problem area, said method comprising the steps of:
-
(1) receiving a definition of the specified problem; (2) applying said knowledge stored in said memory to said definition of the specified problem to generate an indication of whether it is practical to design a computer program for said target computer system that uses said capabilities of said target computer system to solve the specified problem, and (3) when step (2) indicates that it is practical to design such a computer program, applying said knowledge stored in said memory to generate a design for such a computer program. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A process of operating a general purpose data processor having a storage area, to generate a computer job to be executed on a target computer to perform static corrections to seismic data, said computer job comprising an ordered list of predefined component programs having respective arguments which are selected to specify the operation of the component programs, said process comprising the steps of
(a) loading into the storage area of the data processor (1) a predetermined data base including a set of inference rules encoding knowledge about applying static corrections to seismic data and concluding a sequence of appropriate ones of the predefined component programs and appropriate arguments in said sequence of programs in response to information about the seismic data including geological and geophysical data about the area in which the seismic data were collected, how the seismic data were collected, and information obtained by earlier processing steps performed on the seismic data, and (2) rule interpreter means for chaining together a subset of the inference rules to establish an inference from specified information about the seismic data and concluding an appropriate sequence of programs and appropriate arguments for the programs, (b) inputting said specified information about the seismic data, (c) executing the rule interpreter to chain together a corresponding subset of the inference rules to establish an inference from said specified information about the seismic data and conclude an appropriate sequence of programs and appropriate arguments for the programs in said sequence, and (d) outputting from said data processor the concluded sequence of programs and their arguments.
Specification