3203. Introduction to Artificial Intelligence

Knowledge-Based System


Beside what have been covered, there are other AI techniques that use reasoning and search on domain-specific knowledge, where the focus is more on the domain knowledge than on the (domain-independent) inference rules or search algorithms. Such systems are often called knowledge-based systems, and each usually consists of a knowledge-base and an inference engine.


1. Production system

Production systems, also called "rule-based systems", solve problems using "production rules".

A production rule has the format

C1, ..., Cm → A1, ..., An
which means that if conditions C1, ..., Cm are satisfied, then the action sequence A1, ..., An can be performed. In this way, declarative knowledge (condition) and procedural knowledge (action) are related to each other. Please notice its relation to implication propositions and inference rules in propositional/predicate logic, as well as to the rules in Prolog and the operations defined in STRIPS-like planning systems.

At a given moment, if there are several rules whose conditions are satisfied, a control mechanism in the system decides which one to "fire", i.e., to perform the actions.

When a rule is fired, it will cause some internal and external changes, which may trigger other rules. This process continues until certain ending condition is satisfied.

In summary, a typical production system consists of

Example: 8-puzzle revisited

The following are some representative production systems:


2. Case-based reasoning

While rule-based systems represent domain knowledge mainly as rules that can be applied to various situations whenever certain conditions are satisfied, Case-based reasoning (CBR) treats domain knowledge as consists of concrete cases, which are records of typical problems and their solutions collected in the past. When a new problem shows up, it is compared with the solved problems. After the most similar case is located, the corresponding solution is adapted to the new problem.

Crucial issues in CBR include how to represent and index a case, how to measure the similarity between cases, how to adapt a solution to a new situation, and so on.

Compared to rule-based systems, case-based systems use experience with more details, though at the price of losing generality. A suitable domain for CBR typically has the following properties:


3. Expert systems

An "expert system" is a computer program that represents and reasons with the knowledge of some specialists for solving problems and giving advice. An expert system can be rule-based, case-based, or their combination.

As a well-known example, MYCIN is an interactive program that diagnoses certain infectious diseases, prescribes antimicrobial therapy, and can explain its reasoning in detail. In a controlled test, its performance equaled that of specialists. The system represented its knowledge as a set of IF-THEN rules with certainty factors. The following is an English version of one of MYCIN's rules:

    IF the infection is primary-bacteremia
      AND the site of the culture is one of the sterile sites
      AND the suspected portal of entry is the gastrointestinal tract
        THEN there is suggestive evidence (0.7) that infection is bacteroid.
Here the 0.7 is the "certainty factor" of the conclusion.

Another example: Insurance product recommendation. The system contains rules for

The development of an expert system is often referred to as "knowledge engineering", and in the process expert knowledge is collected, and turned into rules or cases that can be used for problem solving in the future. One major difficulty in this process is that the domain experts usually have problem to accurately describe their own decision-making process.

Various expert systems have been developed for a wide range of practical problems. Different from conventional systems (of procedural programs), expert systems typically represent domain knowledge declaratively, and relatively separate knowledge content (in the knowledge-base) and knowledge usage (by the inference engine). Such systems have the following advantages:

The difficulties of this technique include complexity and efficiency.

Here is an eBook on Building Expert Systems in Prolog.