Independence Based Deduction Formula

From OpenCog

The Deduction formula for strength sAC requires five inputs: sA, sB, sC, sAB, and sBC. These values must satisfy consistency conditions to yield non-zero strength values for sAC.

IF: [IF: sA=0, THEN 0, ELSE max((sA+sB-1)/sA, 0)] <= sAB <= [IF: sA=0, THEN 1, ELSE min(1, sB/sA)] AND [IF: sB=0, THEN 0, ELSE max((sB+sC-1)/sB, 0)] <= sBC <= [IF: sB=0, THEN 1, ELSE min(1, sC/sB)],


  sAC = [sAB*sBC + ((1-sAB)(sC - sB*sBC))/(1-sB)]

ELSEIF: sB = 1 AND sC = sBC

  sAC = sAB*sBC


  sAC = 0


  nAC = IndependenceAssumptionDiscount * nA * nBC / max(nB, min_count);

where, IndependenceAssumptionDiscount reflects the notion that some error exists in a truth value produced by the deduction formula, due to the approximate nature of the deduction formula (which includes an independence assumption that is approximate rather than exact). Due to this error, the confidence of a conclusion produced by the deduction formula is less than it would be if the formula were exact. Assuming a random universe(what is meant by random universe?) we can derive it from the variance of the hypergeometric distribution (see the proof of the deduction formula in the PLN Book). Alternate derivations could be made based on more realistic models of the universe. Since this is lot of work, for now we just use 0.987654321 .

min_count is set to 1 so as to avoid division by 0 (That is the only justifiable reason for having min_count at all)

Formulas can be implemented in Atomese using the PredicateFormulaLink.