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 it's represented in human mind, which is the only known working intelligence so far. Other people say that because we don't really know how knowledge is represented in the human mind, any kind of solutions should be tried what is actually done at the moment.
Techniques of knowledge representation
Semantic networks may be used to represent knowlege. Each node represents a concept and the arcs are used to define relations between the concepts.
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: someone 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.
First-order predicate calculus may be used as a tool for implementing the above mentioned methods.