Adaptive Rule Selection

From OpenCog

(see also Noisy Smokes Example: Experiments for discussion of ECAN-based PLN guidance, a simpler topic in the same direction.)

Ultimately we want to do rule selection for PLN via pattern-mining on an “inference history Atomspace”

As a first step in that direction, I suggest we could model “rule n-gram probabilities” from an inference history Atomspace.

That is, suppose we have an Atomspace containing a record of many different PLN inferences…

Define a “rule n-gram” as a series of n PLN rules; e.g. (Deduction, Inversion, IntensionalSimilarityEvaluation) would be a rule 3-gram

We would then data-mine the inference history Atomspace to determine, for each rule n-gram, the average quality of the inference conclusions obtained via inference subtrees using that n-gram. (This is best done in the context of backward-chaining, where we can quantitatively measure the quality of an inference subtree at satisfying the target of the backward chaining).

While doing inference, then, at each point P in the inference chain, one can consider the candidate rules R1, R2, … Rk that could be executed next. Next, consider each of the inference (n-1)-grams G that terminates at P. One can then look at the rule n-grams G+R1, G+R2, …, G+Rk … and look up the inferred quality values associated with the different rule n-grams. Combining these values together, one gets an estimate of the likelihood that each of R1, …, Rk is a good idea…

This is simpler than applying the pattern miner, and probably worse, but it’s a little simpler; and implementation-wise, doing this would get you 75% of the way to using the pattern miner for the same purpose…