Some kind of knowledge are hard to represent in predicate logic. For example the degree of hotness in the statement “ It is very hot today” can not be represented in predicate logic. A good deal of the reasoning people do involves manipulating beliefs. (eg: “I think it may rain today because it is cloudy ”). The “belied system “ is mostly incomplete and inconsistent (One may believe in something now and in something else later). consider the following situation.
A, B and C are suspects in a murder case. A has an alibi, in the register of a respectable hotel. B also has an alibi since his friend says that B was with him all the time. C pleads alibi too saying that he was watching a cricket match in the town. These make one believe that
1. A did not commit the crime
2. B did not
3. A or B or C did
fortunately for c, he was caught on the TV while watching the match. Now we have a new belief that
4. C did not commit the crime
All the above four beliefs are inconsistent, so we must reject the weaker one or add new beliefs.
The above example illustrates some of the problems posed by uncertain and fuzzy knowledge. A variety of techniques for handling such problems with in computer programs have been proposed. They include
Non monotonic logic: This allows for addition and deletion of statements in the database. This also allows the belief in one statement to rest on the lack of belief in another.
Probabilistic Reasoning: This makes it possible to represent likely but uncertain inferences.
Fuzzy logic: This provides a way of representing fuzzy or continuous properties of objects.
The concept of belief spaces, which allows for the representation of nested models of sets of beliefs.