- Knowledge representation is an explicit, symbolic encoding of propositions believed by some agent. This encoding is in a formal language and is logical.
- Knowledge reasoning is manipulation of symbols encoding propositions to produce new propositions believed by an agent but not explicitly stated.
Premise
The core premise of representing knowledge (instead of using a statistical technique) is that
- It’s sometimes more useful/efficient to specify some of the fundamental properties/behaviour of the system. This is especially relevant for formal verification.
- There isn’t sufficient data or time for learning.
- In addition, there are useful benefits:
- We can extend existing behaviour by adding new beliefs.
- We can debug faulty behaviour by locating erroneous beliefs.
- We can explain and justify the behaviour of the system.
Why are we doing reasoning with the knowledge? The reasoning allows us to compress the amount of knowledge we need to store. For example, if , then if is true for a given case, then is true for the case. No need to explicitly store that is true if we know is true.
Definitions
In a knowledge-based system, we have two defining components:
- A knowledge base, which attempts to represent the knowledge explicitly. It contains domain-specific facts and rules about a problem domain.
- An inference engine (a reasoning system) that allows them to derive new knowledge. It uses general-purpose reasoning methods to infer new knowledge and to solve problems in the problem domain.
Representations use logic.