440 likes | 550 Views
Logic Program Semantics Background. Luís Moniz Pereira. AI Centre, Universidade Nova de Lisboa. U.I. at Jakarta, Jan/Feb 2006. Language. A Normal Logic Programs P is a set of rules: H ¬ A 1 , …, A n , not B 1 , … not B m (n,m ³ 0) where H, A i and B j are atoms
E N D
Logic Program Semantics Background Luís Moniz Pereira AI Centre, Universidade Nova de Lisboa U.I. at Jakarta, Jan/Feb 2006
Language • A Normal Logic Programs P is a set of rules: H ¬A1, …, An, not B1, … not Bm (n,m ³ 0) where H, Ai and Bj are atoms • Literal not Bj are called default literals • When no rule in P has default literal, P is called definite • The Herbrand base HP is the set of all instantiated atoms from program P. • We will consider programs as possibly infinite sets of instantiated rules.
Declarative Programming • A logic program can be an executable specification of a problem member(X,[X|Y]). member(X,[Y|L])¬ member(X,L). • Easier to program, compact code • Adequate for building prototypes • Given efficient implementations, why not use it to “program” directly?
LP and Deductive Databases • In a database, tables are viewed as sets of facts: • Other relations are represented with rules:
LP and Deductive DBs (cont) • LP allows to store, besides relations, rules for deducing other relations • Note that default negation cannot be classical negation in: • A form of Closed World Assumption (CWA) is needed for inferring non-availability of connections
Default Rules • The representation of default rules, such as “All birds fly” can be done via the non-monotonic operator not
The need for a semantics • In all the previous examples, classical logic is not an appropriate semantics • In the 1st, it does not derive not member(3,[1,2]) • In the 2nd, it never concludes choosing another company • In the 3rd, all abnormalities must be expressed • The precise definition of a declarative semantics for LPs is recognized as an important issue for its use in KRR.
2-valued Interpretations • A 2-valued interpretation I of P is a subset of HP • A is true in I (ie. I(A) = 1) iff AÎ I • Otherwise, A is false in I (ie. I(A) = 0) • Interpretations can be viewed as representing possible states of knowledge. • If knowledge is incomplete, there might be in some states atoms that are neither true nor false
3-valued Interpretations • A 3-valued interpretation I of P is a set I = T U not F where T and F are disjoint subsets of HP • A is true in I iff A Î T • A is false in I iff AÎ F • Otherwise, A is undefined (I(A) = 1/2) • 2-valued interpretations are a special case, where: HP = T U F
Models • Models can be defined via an evaluation function Î: • For an atom A, Î(A) = I(A) • For a formula F, Î(not F) = 1 - Î(F) • For formulas F and G: • Î((F,G)) = min(Î(F), Î(G)) • Î(F ¬ G)= 1 if Î(G) £ Î(F), and = 0 otherwise • I is a model of P iff, for all rule H ¬ B of P: Î(H ¬ B) = 1
Minimal Models Semantics • The idea of this semantics is to minimize positive information. What is implied as true by the program is true; everything else is false. • {pr(s),pr(e),ph(s),ph(e),aM(s),aM(e)}is a model • Lack of information that sampaio is a physicist, should indicate that he isn’t • The minimal model is: {pr(s),ph(e),aM(e)}
Minimal Models Semantics • [Truth ordering] For interpretations I and J, I £ J iff for all atom A, I(A) £ J(A), i.e. TIÍ TJ and FIÊ FJ • Every definite logic program has a least (truth ordering) model. • [minimal models semantics] An atom A is true in (definite) P iff A belongs to its least model. Otherwise, A is false in P.
TP operator • The minimal models of a definite P can be computed (bottom-up) via operator TP • [TP] Let I be an interpretation of definite P. TP(I) = {H: (H ¬ Body) Î P and Body Í I} • If P is definite, TP is monotone and continuous. Its minimal fixpoint can be built by: • I0 = {} and In = TP(In-1) • The least model of definite P is TPw({})
Stable Models Idea • The identification of models can be done by guessing a possible model, processing it into P and checking if its least model coincides with the guess. • This can be applied to non-stratified programs.
Stable Models Idea (cont) • “Guessing a model” corresponds to “assuming default negations not”. This type of reasoning is usual in NMR • Assume some default literals • Check in P the consequences of such assumptions • If the consequences completely corroborate the assumptions, they form a stable model • The stable models semantics is defined as the intersection of all the stable models (i.e. what follows, no matter what stable assumptions)
SMs: preliminary example a ¬ not b c ¬ a p ¬ not q b ¬ not a c ¬ b q ¬ not r r • Assume, e.g., not r and not p as true, and all others as false. By processing this into P: a ¬false c ¬ a p ¬false b ¬false c ¬ b q ¬true r • Its least model is {not a, not b, not c, not p, q, r} • So, it isn’t a stable model: • By assuming not r, r becomes true • not a is not assumed and a becomes false
SMs example (cont) a ¬ not b c ¬ a p ¬ not q b ¬ not a c ¬ b q ¬ not r r • Now assume, e.g., not b and not q as true, and all others as false. By processing this into P: a ¬true c ¬ a p ¬true b ¬false c ¬ b q ¬false r • Its least model is {a, not b, c, p, not q, r} • I is a stable model • The other one is {not a, b, c, p, not q, r} • According to Stable Model Semantics: • c, r and p are true and q is false. • a and b are undefined
Stable Models definition • Let I be a (2-valued) interpretation of P. The definite program P/I is obtained from P by: • deleting all rules whose body has not A, and AÎ I • deleting from the body all the remaining default literals GP(I) = least(P/I) • M is a stable model of P iff M = GP(M). • A is true in P iff A belongs to all SMs of P • A is false in P iff A doesn’t belongs to any SMs of P (i.e. not A “belongs” to all SMs of P).
Properties of SMs • Stable models are minimal models • Stable models are supported • If P is locally stratified then its single stable model is the perfect model • Stable models semantics assign meaning to (some) non-stratified programs • E.g. the one in the example before
Importance of Stable Models Stable Models were an important contribution: • Introduced the notion of default negation (versus negation as failure) • Allowed important connections to NMR. Started the area of LP&NMR • Allowed for a better understanding of the use of LPs in Knowledge Representation It is considered as THE semantics of LPs by a significant part of the community.
LP representing a static world • The work on LP allows the (non-monotonic) addition of new knowledge. • But: • Much of the work does not consider this evolution of knowledge • LPs represent a static knowledge of a given world in a given situation. • The issues of how to add new information to a logic program are less studied.
Knowledge Evolution • In real situations knowledge evolves by: • completing it with new information (revision) • changing it according to the changes in the world itself (updates) • I know that I have a flight booked for London (either for Heathrow or for Gatwick). • I learn that it is not for Heathrow (revision) • I conclude my flight is for Gatwick • I learn that flights for Heathrow were canceled (update) • Either I have a flight for Gatwick or no flight at all
Model Updates • Updates are usually performed model by model. • Marek and Truszczynski defined a language for defining updates: in(A0) | out(A0) in(A1), …, out(An) • Given an update program and a model of the current situation, produce model(s) of the new situation. • If several models of the current situation exist, one has to proceed model by model.
M1,1 U ? ... M1 M1,n1 ... Pu Mn Mn,1 ... Mn,nn U Updates of Logic Programs • We’ve defined a program transformation to directly obtain Pu P • We’ve generalized MT’s approach to the 3-valued case
Updates of LPs by LPs • When updating LPs, doing it model by model is not desired. It loses the directional information of the LP arrow. P: sleep not tv_on. watch tv_on. tv_on. M = {tv,w} Mu = {pf,w} vs {pf,s} U: not tv_on p_failure. p_failure. U2: not p_failure. Mu2 = {w} vs {tv,w} • Bodies are evaluated in the last state.
Generalized LPs • A generalized logic program P is a set of propositional Horn clauses L L1 ,…, Ln where L and Liare atoms from LK , i.e. of the form A or ´not A´. • Program P is normal if no head of the clause in P has form not A.
Generalized LP semantics • A set M is an interpretation of LK if for every atom A in K exactly one of A and not A is in M. • Definition: An interpretation M of LK is a stable model of a generalized logic program P if M is the least model of the Horn theory P {not A: A M}.
Generalized LPs example • Example: K = { a,b,c,d,e} P : a not b c b e not d not d a, not c d not e this program has exactly one stable model: M = Least(Pnot {b, c, d}) = {a, e, not b, not c, not d} N = {not a, not e, b, c, d} is not a stable model since N Least(P {not a, not e})
Relation to stable models • Proposition: An interpretation M of LK is a stable model of a generalized logic program P iff for every ALK • if P/M |- A then A M • if A K M then P/M |- A whereP/M denotes Gelfond-Lifschitz transform of P wrt M • Conclusion: The class of stable models of generalized logic programs extends the class of stable models of normal programs.
Drawbacks of Interpretation Updates • How to update a logic program P by a logic program U obtaining as a result a new, updated logic program P U. • Interpretation update approach (H.Katsuno and A.Mendelzon, M.Winslett) :models ofDB’ = updated models ofDB • Drawbacks of this approach: • all the models of DB have to be computed and updated separately • no natural way to compute DB’ (DB’ may not exist) • produces counter-intuitive results when intensional part of DB is allowed to be updated.
Update Example • Example: P : sleep not tv_on watch_tv tv_on tv_on • the only stable model is M = {tv_on, watch_tv} U : not tv_on power_failure power_failure • the only update is MU = {power_failure, watch_tv} • the intended model is MI = {power_failure, sleep} U2 : notpower_failure
Update Example (2) • Example: P : innocent not found_guilty • the only stable model is M = {innocent} U : found_guilty • the only update is MU = {innocent, found_guilty} • the intended model is MI = {found_guilty}
Dynamic Program Updates • Program P is semantically equivalent to the program P’ : innocent the model MU = {innocent, found_guilty} is the only reasonable model of the update of P’ by U. • DB’ depends not only on semantics of DB and update U (interpretation updates) but also on their syntax. • We propose a new approach to the problem of updating knowledge bases represented by logic programs that attempts to eliminate the drawbacks of the previous approaches
Dynamic Program Updates • How to update a logic program with another: A B1 , … , Bm , not C1, … , not Cn not A B1 , … , Bm , not C1, … , not Cn
Program Update • Definition: Let P and U be generalized logic programs in the language L. By the update of P by U we mean the generalized logic program P U, consisting of the clauses: • (RP) Rewritten original program clauses: AP B1 , … , Bm , C’1, … , C’n A´P B1 , … , Bm , C’1, … , C’n • (RU) Rewritten updating program clauses: AU B1 , … , Bm , C’1, … , C’n A´U B1 , … , Bm , C’1, … , C’n
Translation into LP • (UR) Update rules: A AUand not A A´U • (IR) Inheritance rules: A AP , not A´U and A´ A´P , not AU • (DR) Default rules: A´ not AP , not AU and not A A´
Example • Example: P : sleep not tv_on watch_tv tv_on tv_on U : not tv_on power_failure power_failure • P U = (RP) (RU) (UR) (IR) (DR) RP : sleepP tv_on´ RU : tv_on´U power_failure watch_tvP tv_on power_failureU tv_onP • M = {power_failure, sleep}is the only stable model of P U
Semantic characterization • Definition: Let M be a model of the program U in the language L. • Def [M] = {not A : M |= Body, (A Body) P U} • Rej [M] = {A Body P : (not A Body’) U and M |= Body’} {not A Body P : (A Body’) U and M|= Body’} • Res [M] = P U – Rej [M].
Equivalence to LP translation • Theorem: An interpretation N is a stable model of the update program P U iff N is an extension of a model M of U such that: M = Least(Res [M] Def [M]) • Conclusion: If N is a stable model of P U then its restriction M to the language L is a stable model of Res [M].
Properties • Proposition: If M is a stable model of the union P U of programs P and U , then its extension N is a stable model of the update program P U. Thus, the semantics of the program P U is always weaker than or equal to the semantics of P U. • If either P or U is empty, or if both P and U are normal programs, then semantics of P U and P U coincide.
Dynamic Program Updates • Definition: Let P = { Ps :s S } be a finite or infinite sequence of generalized logic programs. The dynamic program update over the sequence of programs P and at the state s S is a logic program s P resulting from the successive updates.
Dynamic LP example • Example: P = { P1, P2, P3} P1 : sleep not tv_on watch_tv tv_on tv_on P2 : not tv_on power_failure power_failure P3: notpower_failure • M1 = {tv_on, watch_tv} is the unique stable model of program 1 P
Dynamic LP example (2) • M2 = {sleep, power_failure} is the unique stable model of the program 2P. • M3 = {tv_on, watch_tv} is the unique stable model of the program 3P. • Program 2P is semantically equivalent to P1 P2.
Dynamic LP example (3) • Example: P = { P1, P2, P3, P4} P1 : not fly(X) animal(X) P4 : animal(X) bird(X) P2 : fly(X) bird(X) bird(X) penguin(X) P3 : not fly(X) penguin(X) animal(pluto) bird(duffy) penguin(tweety) • Program 4 P has a unique stable model in which fly(duffy) is true and both fly(pluto) and fly(tweety) are false.