Combining Numeric and Symbolic Reasoning in SNePS Stuart C. Shapiro Department of Computer Science & Engineering Center for MultiSource Information Fusion Center for Cognitive Science University at Buffalo, The State University of New York
IF Workshop 2006S. C. Shapiro2 SNePS SNePS is a Logic-Based Frame-Based Network-Based knowledge representation, reasoning, and acting system.
IF Workshop 2006S. C. Shapiro3 This Talk The logic-based view of SNePS The SNePSLOG user interface. The recently added procedural attachment to combine numeric with symbolic reasoning.
IF Workshop 2006S. C. Shapiro4 Some SNePSLOG Syntax P(a,b) The proposition that P is true of a and b. P({a1, …, an}, {b1, …, bm}) The proposition that P is true of each ai and bj. andor(i,j){P1, …, Pn} The proposition that at least i and at most j of the Pi are true. andor(1,1){P1, …, Pn} The proposition that exactly 1 of the Pi are true. andor(0,0){P1, …, Pn} The proposition that none of the Pi are true. ~P The proposition that P is false, abbreviation of andor(0,0){P}. all(x,y,)(P(x,y) => Q(x,y)) The proposition that for every x and y, if P(x,y) then Q(x,y). all(x,y,)(P(x,y) => {Q1(x,y), … Qn(x,y)}) The proposition that for every x and y, if P(x,y) then Qi(x,y), for each i. {P1, …, Pn} &=> Q The conjunction of the Pi (solved in parallel) implies Q. P1 => (… (Pn => Q)…) The conjunction of the Pi (solved in serial) implies Q.
IF Workshop 2006S. C. Shapiro5 Procedural Attachment A predicate (proposition-forming function) symbol may be attached to a procedure so instances may be computed in the underlying programming language.
IF Workshop 2006S. C. Shapiro6 Example of Procedural Attachment : Diff(7,3,?x)? wff24!: Diff(7,3,4) : Diff(10,?x,7)? wff25!: Diff(10,3,7) : Diff(?x,5,7)? wff26!: Diff(12,5,7) : Diff(15,8,7)? wff314!: Diff(15,8,7) : Diff(15,8,9)? wff316!: ~Diff(15,8,9)
IF Workshop 2006S. C. Shapiro7 Illustration Implementing a Bayesian Network in SNePS using combined symbolic and numeric reasoning
IF Workshop 2006S. C. Shapiro8 Some Facts of Bayesian Probability in SNePSLOG P(x,p): The prior probability of x is p. Bel(x,p); The posterior probability of x is p. calculatedBel(x,p):The calculated posterior probability of x is p. all(x,p)(P(x,p) => Bel(x,p)). all(x,p)(Bel(~x,p) => all(q)(Diff(1,p,q) => Bel(x,q))). all(x,y)(andor(1,1){x,y} => all(p)(Bel(x,p) => all(q)(Diff(1,p,q) => Bel(y,q)))). all(x,p)(calculatedBel(x,p) => Bel(x,p)).
IF Workshop 2006S. C. Shapiro9 An Example Bayesian Network P(P=L) 0.90 CP(X=pos|C) T0.90 F0.20 Pollution Smoker Cancer XRay Dyspnoea From: Kevin B. Korb & Ann E. Nicholson, Bayesian Artificial Intelligence, Chapman & Hall/CRC, 2004, p. 31 ff. P(S=T) Joe: 0.30 Jane: 0.50 CP(D=T|C) T0.65 F0.30 P SP(C=T|P,S) H T0.05 H F0.02 L T0.03 L F0.001
IF Workshop 2006S. C. Shapiro10 The Patient-Independent CPTs CP(x,y,p): The conditional probability of x given y is p. JCP(x,y,z,p):The conditional probability of x given y and z is p. ExposedTo(x,v,f): x has been exposed to a v level of factor f. Does(x,a):x engages in the activity a. Has(x,d): x has the disease d. Positive(x): The procedure x gave a positive result all(x)(andor(1,1){ExposedTo(x,low,pollution), ExposedTo(x,high,pollution)}). all(x)(Patient(x) => {JCP(Has(x,cancer), ExposedTo(x,high,pollution), Does(x,smoke), 0.05), JCP(Has(x,cancer), ExposedTo(x,high,pollution), ~Does(x,smoke), 0.02), JCP(Has(x,cancer), ExposedTo(x,low,pollution), Does(x,smoke), 0.03), JCP(Has(x,cancer), ExposedTo(x,low,pollution), ~Does(x,smoke), 0.001), CP(Positive(X-ray(x)), Has(x,cancer), 0.90), CP(Positive(X-ray(x)), ~Has(x,cancer), 0.20), CP(Has(x,dyspnoea), Has(x,cancer), 0.65), CP(Has(x,dyspnoea), ~Has(x,cancer), 0.30)}).
IF Workshop 2006S. C. Shapiro11 Algorithm for calculatedBel Given an X, To find the p such that calculatedBel(X,p): Infer from the KB all Ei, pi s.t. CP(X,Ei,pi). Infer from the KB the qi s.t. Bel(Ei,qi). Set pcp to Σ i (pi * qi). Infer from the KB all E1i, E2i, pi s.t. JCP(X,E1i,E2i,pi). Infer from the KB the q1i s.t. Bel(E1i,q1i). and the q2i s.t. Bel(E2i,q2i). Set pjcp to Σ i (pi * q1i * q2i). Set p to pcp + pjcp.
IF Workshop 2006S. C. Shapiro12 The Patients and Their Priors Patient(x):x is a patient. Patient({Joe,Jane}). P(ExposedTo(Joe,low,pollution), 0.90). P(Does(Joe,smoke), 0.30). P(ExposedTo(Jane,low,pollution), 0.90). P(Does(Jane,smoke), 0.50).
IF Workshop 2006S. C. Shapiro13 Inferring Posteriors : Bel(ExposedTo(Joe,low,pollution), ?p)?; should be 0.9 wff12!: Bel(ExposedTo(Joe,low,pollution),0.9) : Bel(~Does(Joe,smoke), ?p)?; should be 0.7 wff32!: Bel(~Does(Joe,smoke),0.7) : Bel(ExposedTo(Joe,high,pollution), ?p)?; should be 0.1 wff46!: Bel(ExposedTo(Joe,high,pollution),0.1) : Bel(Has(Joe,cancer), ?p)?; should be wff90!: Bel(Has(Joe,cancer),0.011) : Bel(Positive(X-ray(Joe)), ?p)?; should be wff104!: Bel(Positive(X-ray(Joe)),0.208) : Bel(Has(Joe, dyspnoea), ?p)?; should be wff126!: Bel(Has(Joe,dyspnoea),0.304) : Bel(Has(Jane,cancer), ?p)?; should be wff280!: Bel(Has(Jane,cancer),0.017) : Bel(Positive(X-ray(Jane)), ?p)? ; should be wff294!: Bel(Positive(X-ray(Jane)),0.212) : Bel(Has(Jane, dyspnoea), ?p)?; should be wff377!: Bel(Has(Jane,dyspnoea),0.306)
IF Workshop 2006S. C. Shapiro14 Conclusions SNePS uses procedural attachment to combine numeric with symbolic reasoning. –New attached procedures may be added by the KE. Strengths of symbolic reasoning: –Representation of, and reasoning about general cases. –Instantiating multiple specific cases. –Clarity of declarative statements. Strengths of numerical reasoning: –Complicated numerical calculations. –Especially sums and products of series. –Sometimes faster than logical deduction.