Expert systems are a sub-discipline within artificial intelligence concerned with creating problem solving programs based on machine-encoded human domain expertise. An expert system typically consists of a knowledge base, consisting of human-defined rules, and an inference engine that can run a problem through the rules. Expert systems were a very popular and successful area of AI research in the 1970s and 1980s, but fell out of favor in the 1990s during the so-called "AI winter." Today, most of the excitement in AI is around machine learning based systems, but expert systems still have a place thanks to their ability to explain their conclusions.