Based on a number of sample systems of varying complexity, this book illustrates the practical aspects of developing expert systems and knowledge-based applications software. The programming language used is Prolog (Clocksin-Mellish standard). The examples deal with such topics as techniques for heuristic optimization, the implementation of "e;frames"e;, the construction of explanatory components, etc. The complete, functional code for the sample systems is provided in the appendix and can be used as a basis for further development. This book is not only suitable for self-study, seminars or lectures, but also as a valuable reference and guide for software developers in both commercial and academic environments.