In order to answer a wide range of questions, to plan a sequence of actions, or to reason about the world, an AI program needs internal representations of knowledge. Human knowledge comes in many forms -- for example, it may be factual or practical, general or specific, logical or informal -- and different AI formalisms have been developed to model different types of knowledge. The main ones are predicate logic, semantic networks, production systems, frames, and scripts. To carry out a command such as ``Put a red block on the big blue one,'' an AI program needs knowledge about the structure and meaning of English, the objects in its `world' (coloured blocks of different sizes), the current relationships between the objects, the possible actions it can perform, and the constraints on these actions. It must (at the very least) convert the English command into an internal representation of its meaning, relate this to its stored knowledge of the objects, form a plan in the form of a sequence of actions, and then carry out these actions. To carry out more everyday actions (like tidying a room) or answer questions like ``What would happen if I tilted this glass full of water?'' may require an understanding of a wide range of objects and their possible interactions.