Knowledge level
In artificial intelligence, knowledge-based agents draw on a pool of logical sentences to infer conclusions about the world. At the knowledge level, we only need to specify what the agent knows and what its goals are; a logical abstraction separate from details of implementation. This notion of knowledge level was first introduced by Allen Newell in the 1980s, to have a way to rationalize an agent's behavior. The agent takes actions based on knowledge it possesses, in an attempt to reach specific goals. It chooses actions according to the principle of rationality. Beneath the knowledge level  resides the symbol level. Whereas the knowledge level is "world" oriented, namely that it concerns the environment in which the agent operates, the symbol level is "system" oriented, in that it includes the mechanisms the agent has available to operate. The knowledge level "rationalizes" the agent's behavior, while the symbol level "mechanizes" the agent's behavior. For example, in a computer program, the knowledge level consists of the information contained in its data structures that it uses to perform certain actions. The symbol level consists of the program's algorithms, the data structures themselves, and so on. Knowledge level