An expert system is an intelligent computer program that uses knowledge and inference procedures to solve problems that require significant human expertise. It emulates the decision-making ability of a human expert in a restricted problem domain. The basic concept of an expert system is that the user supplies facts to the system and receives expert advice in response. Internally, the expert system consists of a knowledge-base containing the expert knowledge and an inference engine that draws conclusions from the knowledge-base.