When would I use :inference-level?


You use inference-level when you want to control the inferences that should be performed while executing OKBC operations. For example, while retrieving the values of a slot, a user may wish to receive directly asserted values and perhaps inherited values as well.

To provide such control, many OKBC operations support an inference-level argument that can take the following three values.

A value of :direct for inference-level is guaranteed to return at least directly asserted values, because in some systems, such as, forward chaining systems -- values in addition to the directly asserted values may also be returned. Some OKBC operations, for example, an operation returning superclasses of a class may eliminate redundant values from the result. To help an application determine when exactly the directly asserted values are returned, all operations taking an :inference-level argument will return a second value (the first value being the result of the operation), exact-p, which is true if it is known that exactly the :direct or :taxonomic values is returned. A OKBC implementation that always returns false as the value of exact-p is compliant, but implementors are encouraged to return true whenever possible.


Next: What does decontextualize mean?
Top: OKBC FAQ Table of Contents