Conventional programming languages, such as C++ and Java, are designed and optimized for the procedural manipulation of data. Humans, however, often solve complex problems using very abstract, symbolic approaches which are not well suited for implementation in conventional languages.
One of the results of research in the area of artificial intelligence has been the development of techniques which allow the modeling of information at higher levels of abstraction. These techniques are embodied in languages or tools which allow programs to be built that closely resemble human logic in their implementation and are therefore easier to develop and maintain. These programs, which emulate human expertise in well defined problem domains, are called expert systems. Rule-based programming is one of the most commonly used techniques for developing expert systems. In this programming paradigm, rules are used to represent heuristics which specify a set of actions to be performed for a given situation.
CLIPS is a programming language that can be used for the construction of expert systems. The CLIPS User’s Guide provides an introduction to CLIPS rule-based and object-oriented programming and is intended for people with little or no expert system experience.