Knowledge Representation

 Welcome to the Group Six presentation on Knowledge Representation.  Our group consists of the following people:  

Luke Ferdinand
Ivy Gentile
Bryan McDowell
Dave Salopek
Sergey Sosnovsky

The subject of our tutorial will be Knowledge Representation, its uses and some of its implementations.

What is Knowledge Representation?

Simply put, Knowledge Representation has to do with writing down, in some language or communications medium, descriptions or pictures that correspond in some salient way to the world or a state of the world.  
As in other areas of computer science, it is also necessary to consider the ways in which the representation is to be manipulated and the uses to which it is to be put.  The primary reason for wanting to represent knowledge is so that a machine can come to new conclusions about its environment by manipulating the representation. (Duce and Ringland, 1988)

The Knowledge Representation Problem

The K.R. problem consists of three components:
  1. One must find a knowledge representation language, that is some formal language in which domains of knowledge can be described.  
  2. One must have a component of the knowledge representation that can perform automatic inferences for the user.  Most systems of practical interest need to be able to provide their users with access to the facts implicit in the knowledge base as well as those stored explicitly.
  3. One must capture the detailed knowledge base that represents the system's understanding of its domain.
(Duce and Ringland, 1988)

Knowledge representation is not a simple problem.  The following example by M Minsky from Duce and Ringland is a good example of how quickly it can become a complicated situation:

The only time when you can say something like, "if a and b are integers, then a plus b always equals  b plus a", is in mathematics.  Consider a fact like "Birds can fly".  If you think that common-sense reasoning is like logical reasoning, then you believe there are general principles that state, "If Joe is a bird and birds can fly, then Joe can fly".  Suppose Joe is an ostrich or penguin?  Well we can axiomatize and say if Joe is a bird and Joe is not an ostrich or a penguin, Joe can fly.  But suppose Joe is dead?  Or suppose Joe has his feet set in concrete?

Some domains of knowledge, such as mathematical knowledge, are well-behaved in a certain sense, and are relatively straightforward to deal with.  Others, as shown above, are not always so well-behaved.  The problem is that a natural kind may have abnormal members, as birds who can not fly are still birds and bats who can fly are in fact not birds.  

It is important when choosing a knowledge representation scheme or language for a particular domain of knowledge, to consider the types of objects in the domain.

Some issues that arise in K.R. are summarized below:
  1. Expressive adequacy.  Is a particular knowledge rep. scheme sufficiently powerful?  What knowledge can and cannot particular schemes represent?
  2. Reasoning efficiency.  Like all representation problems in cs, a scheme that represents all knowledge of interest and is sufficient to allow any fact of interest to be inferred by no means guarantees that it will be possible to perform the inference in an acceptable time.  There is generally a tradeoff between expressive adequacy and reasoning efficiency.
  3. Primitives.  What are the primitives in knowledge representation?  What primitives should be provided in a system and at what level?
  4. Meta-representation.  How do we structure the knowledge in a knowledge base and how do we represent knowledge about this structure in the knowledge base?
  5. Incompleteness.  What can be left unsaid about a domain and how do you perform inferencing over incomplete knowledge and revise earlier inferences in the light of later, more complete, knowledge?
  6. Real-world knowledge.  How can we deal with the attitudes such as beliefs, desires and intentions?  How do we avoid the paradoxes that accompany self-referential propositions?

Approaches to Knowledge Representation

Now that we have discussed the problems of knowledge representation, we would like to introduce a few of the many approaches to it.  Please click on the following links or the links on the sidebar to proceed to the tutorials for each approach to knowledge representation.