Expert systems have 2 main components, a knowledgebase and an inference engine. In addition, there are a couple of interfaces to allow data input and user interaction with the system. This is where the expertise is stored. The software we use stores knowledge in the form of production rules which contain IF-THEN statements. The knowledge can be either factual or heuristic.
Heuristic knowledge is rules of thumb learned from experience.
This separation makes it much easier to store heuristic knowledge in expert systems than with conventional programming. Inference engines are classified according to the type of search strategy they use. One type is backward chaining, which is goal driven. The other is forward chaining, which is data driven. There are also hybrid systems that use a combination of both strategies.