An knowledge based system (KBS) is a type of artificial intelligence program that uses a knowledge base to solve problems within a specialized domain that normally requires human expertise. A KBS consists of a knowledge base containing facts, rules, and heuristics about its domain, an inference engine that applies reasoning to the knowledge base, and a user interface. The knowledge base is developed by a knowledge engineer working with a domain expert to capture their expertise. A KBS can perform tasks like classification, diagnosis and planning by drawing on the captured knowledge through its inference engine.