Software that tries to build up a view of the world by asking questions and using the answers to navigate a tree of knowledge. I think...
'Nother way to think about it: a programming style that emphasizes a "knowledge base" and "inference engine" which acts on that base. Forward and backward (inferential) chaining are typical components.
CLIPS is an open-source expert-system development environment in widespread use.
FuzzyCLIPS is a version of CLIPS extended for fuzzy reasoning, and designed for use with Tcl
[ Arjen Markus is working on a Tcl-coded ES in 2003.]
Naive enthusiasts for ESs (CL does not regard AM as among these) underestimate, sometimes grossly, the importance and difficulty of validation of rule sets. A good ES development system must have powerful introspection capabilities, specifically the opportunity to ask the system how it reached a particular conclusion.