(5th-August-2020)
Kowledge-level debugging is the act of finding errors in knowledge bases with reference only to what the symbols mean. One of the goals of building knowledge-based systems that are usable by a range of domain experts is that a discussion about the correctness of a knowledge base should be a discussion about the knowledge domain. For example, debugging a medical knowledge base should be a question of medicine that medical experts, who are not experts in AI, can answer. Similarly, debugging a knowledge base about house wiring should be with reference to the particular house, not about the internals of the system reasoning with the knowledge base.
Four types of non-syntactic errors can arise in rule-based systems:
An incorrect answer is produced; that is, some atom that is false in the intended interpretation was derived.
Some answer was not produced; that is, the proof failed when it should have succeeded (some particular true atom was not derived).
The program gets into an infinite loop.
The system asks irrelevant questions.
Ways to debug the first three types of error are examined below. Irrelevant questions can be investigated using the why questions as described earlier.
Comments