Knowledge representation is a central problem in artificial intelligence. The question is how to store and manipulate knowledge in an information system in a formal way so that it may be used by mechanisms to accomplish a given task. Examples of applications are expert systems, machine translation systems, computer-aided maintenance systems and information retrieval systems (including database front-ends).
Some people think it would be best to represent knowledge in the same way that it is represented in human mind, which is the only known working intelligence so far, or to represent knowledge in the form of human language. Unfortunately, we don't know how knowledge is represented in the human mind, or how to manipulate human languages in the same way as the human mind.
For this reason, various artificial languages and notations have been proposed for representing knowledge. They are typically based on logic and mathematics, and have an easily parsed grammar to ease machine processing.
Recent fashion in knowledge representation languages is to use XML as the low-level syntax. This tends to make the output of these KR languages easy for machines to parse, at the expense of human readability.
First-order predicate calculus is commonly used as a mathematical basis for these systems, to avoid excessive complexity. However, even simple systems based on this simple logic can be used to represent data which is well beyond the processing capability of current computer systems: see computability for reasons.
Examples of notations:
From earliest times, the knowledge frame or just frame has been used. A frame consists of slots which contain values; for instance, the frame for house might contain a color slot, number of floors slot, etc.
Frames can behave something like object-oriented programming languages, with inheritance of features described by the "is-a" link. However, there has been no small amount of inconsistency in the usage of the "is-a" link: Richard P. Gabriel wrote a paper titled "What IS-A is and isn't", wherein 29 different semantics were found in projects whose knowledge representation schemes involved an "is-a" link. Other links include the "has-part" link.
Frames suffer from the frame problem of knowledge linking.
Scripts are a type of frame that describes what happens temporally; the usual example given is that describing going to a restaurant. The steps include waiting to be seated, receiving a menu, ordering, etc.