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 SNePS SNePS is a Logic-Based Frame-Based Network-Based knowledge representation, reasoning, and acting system. IF Workshop 2006 S. C. Shapiro 2 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 2006 S. C. Shapiro 3 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 2006 S. C. Shapiro 4 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 2006 S. C. Shapiro 5 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 2006 S. C. Shapiro 6 Illustration Implementing a Bayesian Network in SNePS using combined symbolic and numeric reasoning IF Workshop 2006 S. C. Shapiro 7 Some Facts of Bayesian Probability in SNePSLOG P(x,p): Bel(x,p); calculatedBel(x,p): The prior probability of x is p. The posterior probability of x is 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 2006 S. C. Shapiro 8 An Example Bayesian Network Pollution P(P=L) P(S=T) Smoker Joe: 0.30 Jane: 0.50 0.90 Cancer C P(X=pos|C) T 0.90 F 0.20 PS P(C=T|P,S) HT 0.05 HF 0.02 LT 0.03 LF 0.001 Dyspnoea XRay C P(D=T|C) T 0.65 F 0.30 From: Kevin B. Korb & Ann E. Nicholson, Bayesian Artificial Intelligence, Chapman & Hall/CRC, 2004, p. 31 ff. IF Workshop 2006 S. C. Shapiro 9 The Patient-Independent CPTs CP(x,y,p): JCP(x,y,z,p): ExposedTo(x,v,f): Does(x,a): Has(x,d): Positive(x): The conditional probability of x given y is p. The conditional probability of x given y and z is p. x has been exposed to a v level of factor f. x engages in the activity a. x has the disease d. 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 2006 S. C. Shapiro 10 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 2006 S. C. Shapiro 11 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 2006 S. C. Shapiro 12 Inferring Posteriors : Bel(ExposedTo(Joe,low,pollution), ?p)? wff12!: Bel(ExposedTo(Joe,low,pollution),0.9) : Bel(~Does(Joe,smoke), ?p)? wff32!: Bel(~Does(Joe,smoke),0.7) : Bel(ExposedTo(Joe,high,pollution), ?p)? wff46!: Bel(ExposedTo(Joe,high,pollution),0.1) : Bel(Has(Joe,cancer), ?p)? wff90!: Bel(Has(Joe,cancer),0.011) : Bel(Positive(X-ray(Joe)), ?p)? wff104!: Bel(Positive(X-ray(Joe)),0.208) : Bel(Has(Joe, dyspnoea), ?p)? wff126!: Bel(Has(Joe,dyspnoea),0.304) ; should be 0.9 : Bel(Has(Jane,cancer), ?p)? wff280!: Bel(Has(Jane,cancer),0.017) : Bel(Positive(X-ray(Jane)), ?p)? wff294!: Bel(Positive(X-ray(Jane)),0.212) : Bel(Has(Jane, dyspnoea), ?p)? wff377!: Bel(Has(Jane,dyspnoea),0.306) ; should be 0.017 IF Workshop 2006 S. C. Shapiro ; should be 0.7 ; should be 0.1 ; should be 0.011 ; should be 0.208 ; should be 0.304 ; should be 0.212 ; should be 0.306 13 Conclusions • SNePS uses procedural attachment combine numeric with symbolic reasoning. to – 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. IF Workshop 2006 S. C. Shapiro 14