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 is used to refer to many different kinds of systems. The one common theme that unites all knowledge based systems is an attempt to represent knowledge explicitly via tools such as ontologies and rules rather than implicitly via code the way a conventional computer program does. A knowledge based system has two types of sub-systems: a
knowledge base and an
inference engine. The knowledge base represents facts about the world, often in some form of
subsumption ontology. The inference engine represents logical assertions and conditions about the world, usually represented via IF-THEN rules.