`Knowledge' is extremely important in today's society, and we hear
about it in different contexts such as `knowledge based economy',
`knowledge management', and `knowledge based intelligence'. This
book is about representing knowledge and reasoning with it and
otherwise exploiting it to intelligently solve problems using a
computer. In other words if we were to write programs that behave
intelligently, then those programs need to have the ability to
express knowledge and reason with them. This book presents a
language for representing knowledge, together with building block
results that help in systematically building up the knowledge and
analyzing the knowledge. In addition it has a large number of
small knowledge representation and problem solving modules and
several applications that are built-up using the smaller modules.

[In a way the material of this book is analogous to a calculus
book. Just as an engineer need to master calculus to be able to do
any real engineering; similarly a knowledge engineer must master a
knowledge representation language to create large knowledge bases.
This book is the first book to amass a significant and varied body
of results (support structure) around any known knowledge
representation language.]