What is Knowledge Representation?

Knowledge representation concerns the way in which we can store, or represent, information about a situation and its parts in a program, and to store it in such a way that the program can 'learn' to manipulate it. It therefore involves writing the information in a computer-friendly way; for example, in a program dealing with a game of chess, how exactly would you represent the board in a way that the computer can manipulate it? Questions such as these are where knowledge representation is needed, such that a program can 'know' about objects, and the relations between those objects, in order to use them.

Applications of Knowledge Representation

Let us imagine that you decide to create a program that will deal with chess. How will you represent the board? How will you represent the pieces? How will you represent if a square is occupied, or black or white? For this, we need a more formal definition of knowledge representation. We can define it to be: "A set of syntactic and semantic conventions that make it possible for us to describe things" (Bench-Capon, 1990). In other words, we need to create a set of rules so that the program can make use of the data we give to it. So how can we represent a chessboard, and the objects inside it?

One way to do this is by the Forsyth notation, whereby:

So in this way, you could represent any chessboard using no more than 64 characters - and it is possible to manipulate it accordingly in a routine way that the program can understand.