![]() | This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Aknowledge-based system (KBS) is acomputer program thatreasons and uses aknowledge base tosolvecomplex problems. Knowledge-based systems were the focus of earlyartificial intelligence researchers in the 1980s. The term can refer to a broad range of systems. However, all knowledge-based systems have two defining components: an attempt to represent knowledge explicitly, called aknowledge base, and areasoning system that allows them to derive new knowledge, known as aninference engine.
The knowledge base contains domain-specific facts and rules[1] about a problem domain (rather than knowledge implicitly embedded in procedural code, as in a conventional computer program). In addition, the knowledge may be structured by means of asubsumptionontology,frames,conceptual graph, or logical assertions.[2]
The inference engine uses general-purpose reasoning methods to infer new knowledge and to solve problems in the problem domain. Most commonly, it employsforward chaining orbackward chaining. Other approaches include the use ofautomated theorem proving,logic programming,blackboard systems, andterm rewriting systems such asConstraint Handling Rules (CHR). These more formal approaches are covered in detail in the Wikipedia article onknowledge representation and reasoning.
The term "knowledge-based system" was often used interchangeably with "expert system", possibly because almost all of the earliest knowledge-based systems were designed for expert tasks. However, these terms tell us about different aspects of a system:
Today, virtually all expert systems are knowledge-based, whereas knowledge-based system architecture is used in a wide range of types of system designed for a variety of tasks.
The first knowledge-based systems were primarily rule-based expert systems. These represented facts about the world as simple assertions in a flatdatabase and used domain-specific rules to reason about these assertions, and then to add to them. One of the most famous of these early systems wasMycin, a program for medical diagnosis.
Representing knowledge explicitly via rules had several advantages:
Later[when?] architectures for knowledge-based reasoning, such as the BB1 blackboard architecture (ablackboard system),[4] allowed the reasoning process itself to be affected by new inferences, providing meta-level reasoning. BB1 allowed the problem-solving process itself to be monitored. Different kinds of problem-solving (e.g., top-down, bottom-up, and opportunistic problem-solving) could be selectively mixed based on the current state of problem solving. Essentially, the problem-solver was being used both to solve a domain-level problem along with its own control problem, which could depend on the former.
Other examples of knowledge-based system architectures supporting meta-level reasoning are MRS[5] andSOAR.
In the 1980s and 1990s, in addition to expert systems, other applications of knowledge-based systems included real-time process control,[6] intelligent tutoring systems,[7] and problem-solvers for specific domains such as protein structure analysis,[8] construction-site layout,[9] and computer system fault diagnosis.[10]
As knowledge-based systems became more complex, the techniques used to represent the knowledge base became more sophisticated and included logic, term-rewriting systems, conceptual graphs, andframes.
Frames, for example, are a way representing world knowledge using techniques that can be seen as analogous toobject-oriented programming, specifically classes and subclasses, hierarchies and relations between classes, and behavior[clarification needed] of objects. With the knowledge base more structured, reasoning could now occur not only by independent rules and logical inference, but also based on interactions within the knowledge base itself. For example, procedures stored asdaemons on[clarification needed] objects could fire and could replicate the chaining behavior of rules.[11]
Another advancement in the 1990s was the development of special purpose automated reasoning systems calledclassifiers. Rather than statically declare the subsumption relations in a knowledge-base, a classifier allows the developer to simply declare facts about the world and let the classifier deduce the relations. In this way a classifier also can play the role of an inference engine.[12]
The most recent[as of?] advancement of knowledge-based systems was to adopt the technologies, especially a kind of logic calleddescription logic, for the development of systems that use the internet. The internet often has to deal with complex,unstructured data that cannot be relied on to fit a specific data model. The technology of knowledge-based systems, and especially the ability to classify objects on demand, is ideal for such systems. The model for these kinds of knowledge-based internet systems is known as theSemantic Web.[13]