A knowledge-based system is a computer program that reasons and uses knowledge to solve complex problems. Traditionally, computers have solved complex problems using arithmetic algorithms created by programmers. With knowledge-based systems, human knowledge is captured and embedded explicitly within a program in a symbolic format.
Expressing knowledge as rules and heuristics has two particular advantages over previous software development technology. Not only can explicit knowledge be trapped in the computer, but so can implicit knowledge, which is useful and potentially very profitable. The other advantage is that knowledge that exists in the form of rules can be captured in that form, without having to be converted by teams of analysts and programmers into data definitions and procedures.
Types of Systems
One way that knowledge-based systems can be classified is by the kind of conclusions they produce. Some interpret the available evidence and produce diagnoses—for example, to explain the reason for a machine breakdown. Others interpret the available evidence but offer a prediction, such as the likelihood of a particular applicant for a loan becoming a slow-payer or a defaulter. Some systems address design questions, proposing the form or layout of a product or the configuration of components. Some are related to industrial engineering matters such as the procedure for assembling the components.
However, not all knowledge-based systems are so ambitious. Many merely use the captured rules to determine to which class a particular example belongs. For example, a system might determine whether a particular person is, or is not, entitled to a particular government benefit, an entry visa, or permanent residence.
During the development of a knowledge-based system, knowledge is extracted from one or more domain specialists, or people who have specialized knowledge in the relevant domain. The knowledge is commonly expressed in the form of antecedent-consequent (IF THEN) rules. In some cases it may be possible for the domain specialist to feed the knowledge directly into the system, but usually an intermediary knowledge engineer captures it using supporting software.
Once the system is developed, a user consults it to find information about some event or situation within a problem domain. The software draws inferences by applying the explicit rules elicited by the expert and the more general implicit rules derived by the system. A result is provided to the user in the form of a diagnosis, prognosis, recommendation, or decision, depending on the nature of the application. In addition, the user may request an explanation of the argument the software used to reach its conclusion.
Knowledge-based systems usually contain three components: a human-computer interface , a knowledge base, and an inference engine program. The human-computer interface is where the user formulates queries, which the knowledge-based system uses to solicit further information from the user and explain to the user the reasoning process employed to arrive at an answer. The knowledge of one or more human experts in a specific field or task is stored in the knowledge base. The knowledge base is set up as an intelligent database—it can usually manipulate the stored information in a logical, natural, or easy-to-find way. It can conduct searches based on predetermined rules of defined associations and relationships, as well as by the more traditional data search techniques.
The knowledge base is usually made up of factual knowledge, and sometimes even heuristic knowledge. Factual knowledge consists of information that is commonly shared, found in textbooks or journals, or agreed upon by humans knowledgeable in a specific field or task. Heuristic knowledge, on the other hand, is experiential knowledge of performance; it is the knowledge behind an educated guess.
The inference engine of an expert system is usually set up to mimic the reasoning, or problem-solving ability, that the human expert would use to arrive at a conclusion. The inference engine simulates the evaluation process of relating the information and rules in the knowledge base to the answers to a series of questions given by the operator. Following this model, an expert system will receive propositions, or answers to a certain line of questions, and then try to use its inference engine to process the information into rules. It will compare the propositions to the facts and rules registered in its knowledge base.
Current and Future Uses
The primary goal of knowledge-based systems is to make expertise available to decision-makers who need answers quickly. Expertise is often unavailable at the right place and the right time. Portable computers loaded with in-depth knowledge of specific subjects can bring years' worth of knowledge to a specific problem. The first knowledge-based or expert system, Dendral, was developed in 1965 by Edward Feigenbaum (1936–) and Joshua Lederberg of Stanford University in California and was used to analyze chemical compounds. Since 1965, knowledge-based systems have enhanced productivity in business, science, engineering, and the military. They also attempt to predict the weather, stock market values, and mineral deposit locations; give a medical diagnosis; dispense medication; and evaluate applications and transaction patterns.
Knowledge-based systems appear to have a great deal of potential, but they also face some challenges. These include the shortage of knowledge engineers with necessary skills; the relative immaturity of many of the available tools; and overly specific problem domains. Most knowledge-based systems deal with very specific problem domains, and therefore do not undertake or support a complete activity, but rather one or two tasks within a sequence or cluster of tasks. The benefit that such software offers is not necessarily to automate the process completely and cut costs drastically, but to assist the user to complete the activity faster, somewhat more cheaply, and probably more accurately.
see also Artificial Intelligence; Neural Networks.
William J. Yurcik
Gonzalez, Avelino J., and Douglas D. Dankel. The Engineering of Knowledge-Based Systems: Theory and Practice. Englewood Cliffs, NJ: Prentice Hall, 2000.
Ignizio, James P. An Introduction to Expert Systems: The Development and Implementation of Rule-based Expert Systems. New York: McGraw-Hill, 1991.
Jackson, Peter. Introduction to Expert Systems, 3rd ed. Reading, MA: Addison Wesley International Computer Science Series, 1999.
Stefik, Mark J. Introduction to Knowledge Systems. San Francisco: Morgan Kaufmann, 1995.