A knowledge-based system (KBS) is a computer program that reasons and uses a knowledge base to solve complex problems. The term is broad and refers to many different kinds of systems. The one common theme that unites all knowledge-based systems is an attempt to represent knowledge explicitly and a reasoning system that allows it to derive new knowledge. Thus, a knowledge-based system has two distinguishing features: a knowledge base and an inference engine.
The first part, the knowledge base, represents facts about the world, often in some form of subsumption ontology (rather than implicitly embedded in procedural code, in the way a conventional computer program does). Other common approaches in addition to a subsumption ontology include frames, conceptual graphs, and logical assertions.
The second part, the inference engine, allows new knowledge to be inferred. Most commonly, it can take the form of IF-THEN rules coupled with forward or backward chaining approaches. Other approaches include the use of automated theorem provers, logic programming, blackboard systems, and term rewriting systems such as CHR (Constraint Handling Rules). These more formal approaches are covered in detail in the Wikipedia article on knowledge representation and reasoning.
knowledge-based system (KBS) is a form of artificial intelligence (AI) that aims to capture the knowledge of human experts to support decision-making. Examples of knowledge-based systems include expert systems, which are so called because of their reliance on human expertise.
The typical architecture of a knowledge-based system, which informs its problem-solving method, includes a knowledge base and an inference engine. The knowledge base contains a collection of information in a given field medical diagnosis, for example. The inference engine deduces insights from the information housed in the knowledge base. Knowledge-based systems also include an interface through which users query the system and interact with it.
A knowledge-based system may vary with respect to its problem-solving method or approach. Some systems encode expert knowledge as rules and are therefore referred to as rule-based systems. Another approach, case-based reasoning, substitutes cases for rules. Cases are essentially solutions to existing problems that a case-based system will attempt to apply to a new problem.
The first knowledge-based systems were rule based expert systems. One of the most famous was Mycin, a program for medical diagnosis. These early expert systems represented facts about the world as simple assertions in a flat database, and used rules to reason about (and as a result add to) these assertions. Representing knowledge explicitly via rules had several advantages:
- Acquisition and maintenance. Using rules meant that domain experts could often define and maintain the rules themselves rather than via a programmer.
- Representing. knowledge explicitly allowed systems to reason about how they came to a conclusion and use this information to explain results to users. For example, to follow the chain of inferences that led to a diagnosis and use these facts to explain the diagnosis.
- Decoupling. the knowledge from the processing of that knowledge enabled general purpose inference engines to be developed. These systems could develop conclusions that followed from a data set that the initial developers may not have even been aware of.