As work on artificial intelligence has made increasingly clear, intelligent behaviour depends more on an organised knowledge of the real world than on problem-solving mechanisms. This has led in artificial intelligence research to an increasing preoccupation with techniques for representing such knowledge, and recently to a view of programming as itself a form of knowledge representation.