Knowledge-based expert systems, or simply expert systems, use human knowledge to solve problems that normally would require human intelligence. These expert systems represent the expertise knowledge as data or rules within the computer. These rules and data can be called upon when needed to solve problems.
Books and manuals have a tremendous amount of knowledge, but a human has to read and interpret the knowledge for it to be used.
Conventional computer programs perform tasks using conventional decision-making logic, containing lithe knowledge other than the basic algorithm for solving that specific problem and the necessary boundary conditions.
This program knowledge is often embedded as part of the programming code, so that as the knowledge changes, the program has to be changed and then rebuilt.
Knowledge-based systems collect the small fragments of human know-how into a knowledgebase which is used to reason through a problem, using the knowledge that is appropriate. A different problem within the domain of the knowledge-base can be solved using the same program without reprogramming.
The ability of these systems to explain the reasoning process through back-traces and to handle levels of confidence and uncertainty provides an additional feature that conventional programming does not handle.