An expert system is problem solving software that uses rules and a knowledge base to reason through problems in a specific domain, similar to how a human expert would. It consists of a knowledge base containing data and rules, an inference engine that uses the rules to solve problems, and a user interface for humans to input questions. Examples of expert systems include medical diagnosis systems that can identify potential illnesses based on entered symptoms, and animal/plant identification systems that ask questions to narrow down possible results. Advantages are reducing time on common issues and leveraging collective expert knowledge, while disadvantages include high setup costs and need for ongoing updates to stay current.