next up previous
Next: Explanation Up: NeoClassic User's GuideVersion 1.0 Previous: Incompleteness in NEOCLASSIC

Error Handling

 

There appear to be three kinds of errors that can occur in NEOCLASSIC: syntax errors in NEOCLASSIC input, such as mismatched parentheses; evaluator errors, such as providing the wrong kind of argument to a function; and knowledge errors, such as creating an inconsistent individual. However, the first two kinds of errors are really errors in the interface to NEOCLASSIC and not really NEOCLASSIC errors at all. These errors are discussed along with the interface.

Real NEOCLASSIC errors result from syntactically valid calls to NEOCLASSIC functions that attempt to perform illegal knowledge operations. There are three main kinds of illegal operations in NEOCLASSIC: incorrect uses of names, attempts to create incoherent concepts, and attempts to make a knowledge base inconsistent.

Incorrect uses of names include attempts to look up objects by name, when no object of that type with that name exists; and attempts to create a second object of a given type with a given name. For example, if a concept with the name Person already exists in a knowledge base, a call of the form

would be illegal. Functions calls that use names incorrectly do not perform the intended operation. Instead they return a ``null'' pointer of the type normally returned.

Attempts to create incoherent concepts do create a concept, but the concept is not actually added to the knowledge base. An incoherent concept is created and returned, but this concept is not part of any knowledge base. An example of this kind of knowledge error is

Attempts to make a knowledge base inconsistent include attempts to create or modify an individual that would result in some individual inconsistent, and attempts to create a rule that would make an individual inconsistent. The creation functions do create an individual or rule, but this individual or rule is not added to the knowledge base. The individual or rule returned from attempts to make the knowledge base inconsistent encodes the (inconsistent) state of the knowledge base that would have resulted if the operation would have been performed, but the knowledge base ends up effectively unchanged. An example of this kind of knowledge error is (assuming the son role has already been defined).

Incoherent concepts and inconsistent individuals have associated with them the inference that caused the concept to become incoherent or the individual to become inconsistent. Inconsistent rules have associated with them an inconsistent individual that caused the rule to become inconsistent. The inference can be examined and printed in the same manner that any other inference resulting from explanation can be examined and printed.


next up previous
Next: Explanation Up: NeoClassic User's GuideVersion 1.0 Previous: Incompleteness in NEOCLASSIC
Peter F. Patel-Schneider
7/15/1998