Dynamic Logic Programming with Multiple Dimensions João Alexandre Leite José Júlio Alferes Luís Moniz Pereira CENTRIA – Universidade Nova de Lisboa AGP’2000 Universidad de la Habana, Cuba, 4 Dec. 2000 Overview Introduction and Motivation (Overview of Dynamic Logic Programming) Multi-dimensional Dynamic Logic Programming Framework Semantics Syntactical Transformation Application to Multi-agent Systems Conclusions and Future Work Motivation In Dynamic Logic Programming (DLP) knowledge is given by a sequence of Programs Each program represents a different state of our knowledge, where different states may be: different time points, different hierarchical instances, different viewpoints, etc. Different states may have mutually contradictory or overlapping information. DLP, using the relations between states, determines the semantics at each one. Motivation (2) LUPS was presented as a language to build DLPs It can been used to: model evolution of knowledge in time reason about actions reason about hierarchies, … But how to combine several of these aspects in a single system? Motivation Example The parliament issues law L1 at time t1. The local authorithy issues law L2 at t2 > t1 Parliament laws override local laws, but not vice-versa. L2 L1 More recent laws have precendence over older ones L1 L2 How to combine these two dimensions of knowledge precedence? DLP with Multiple Dimensions (MDLP) DLP with Multiple dimensions In MDLP knowledge is given by a set of programs Each program represents a different state of our knowledge. States are connected by a DAG MDLP, using the relations between states and their precedence in the DAG, determines the semantics at each state. Allows for combining knowledge which evolve in various dimensions. P1 1 P2 1 P3 1 d2 d1 2 Dimensional Lattice P1 2 P2 2 P3 2 P1 3 P2 3 P3 3 Acyclic Digraph (DAG) Pa Pb Pc Pe Pd Pi Pf Pg Ph Generalized Logic Programs To represent negative information in LP and their updates, we need LPs with not in heads Object formulae are generalized LP rules: A B1,…, Bk, not C1,…,not Cm not A B1,…, Bk, not C1,…,not Cm The semantics is a generalization of SMs MDLPs definition Definition: A Multi-dimensional Dynamic Logic Program, P, is a pair (PD,D) where D=(V,E) is an acyclic digraph and PD={PV : v V} is a set of generalized logic programs indexed by the vertices v V of D. MDLP - Semantics Definition: Let P=(PD,D) be a Multi-dimensional Dynamic Logic Program, where PD={PV : v V} and D=(V,E). An interpretation Ms is a stable model of the multi-dimensional update at state sV iff: Ms=least([Ps – Reject(s, Ms)] Defaults (Ps, Ms)) Ps= is Pi MDLP - Semantics Ms=least([Ps – Reject(s, Ms)] Defaults (Ps, Ms)) where: Reject(s, Ms)= {r Pi | r’ Pj , ijs, head(r)=not head(r’) Ms |= body(r’)} Defaults (Ps, Ms)={not A | r Ps : head(r)=A Ms |= body(r)} Example 1 {a c} Ps1 {b} P r1 Ps2 {} Pr2 {c} {not a c} Psr Semantics at sr: M = {b, not a, c} Reject(sr,M) = {a c} Default(P,M) = {} Semantics at r1: M = {b, not a, not c} Reject(r1,M) = {} Default(P,M) = {not a, not c} Semantics at s1: M = {not a, not b, not c} Reject(s1,M) = {} Default(P,M) = M Example 1 (cont) {a c} Ps1 {b} P r1 Ps2 {} Pr2 {c} {not a c} Psr Semantics at sr: M = {not a, not b, not c} Reject(sr,M) = {} Default(P,M) = M Semantics at r1: M = {b, not a, not c} Reject(r1,M) = {} Default(P,M) = {not a, not c} Semantics at s1: M = {a, b, c} Reject(s1,M) = {not a c} Default(P,M) = {} Example 2 Semantics at t2a1: {p q} P t1a1 {not p q} Pt1a2 Pt2a1 {q} Pt2a2 {} Semantics at t2a2: M = {q, not p} Reject(t2a2,M) = {p q} Default(P,M) = {} M = {p, q} Reject(t2a1,M) = {} Default(P,M) = {} Semantics at t1a2: M = {not p, not q} Reject(t1a2,M) = {} Default(P,M) = M Towards an implementation of MDLP How to implement MDLP? Pre-process a MDLP at a state s into a single generalized program, where the stable models at s are the stable models of the single program. Query-answering is reduced to that at single programs. MDLP – Syntactical Transformation Definition: Let P=(PD,D) be a Multi-dimensional Dynamic Logic Program, where PD={PV : v V} and D=(V,E), including a special empty source s0. The dynamic program update over P at the state s S is a logic program s P with: (RP) Rewritten program rules (IR) Inheritance rules (UR) Update Rules (RR) Rejection Rules (DR) Default Rules (CRS) Current State Rules (GR) Graph Rules Syntactical Transformation (RP) Rewritten program rules APv B1 , … , Bm , C’1, … , C’n A´Pv B1 , … , Bm , C’1, … , C’n for any rule A B1 , … , Bm , not C1, … , not Cn not A B1 , … , Bm , not C1, … , not Cn in Pv Syntactical Transformation (GR) Graph rules edge(u,v) (for every u < v E ) path(X,Y) edge(X,Y). path(X,Y) edge(X,Z), path(Z,Y). Syntactical Transformation (IR) Inheritance rules Av Au , not reject(Au), edge(u,v) A´v A´u , not reject(A´u ), edge(u,v) (RR) Rejection rules reject(Au) A´Pu , path(u,v) reject(A´u) APu , path(u,v) Syntactical Transformation (UP) Update rules Av APv A’v A’Pv (DR) Default rules A’s0 (CSR) Current state rules A As not A A’s MDLP - Results Theorem: The generalized stable models of the program s P coincide with the generalized stable models of the multi-dimensional update at state s according to the semantical characterization. Theorem: Multi-dimensional Dynamic Logic Programming generalizes Dynamic Logic Programming. MDLP applications Combining agents’ knowledge Distributed KBs Program composition Evolution of hierarchical knowledge Legal reasoning e-commerce policy integration and evolution Organizational decision making Multiple inheritance Individual agents’ views Future Work A (LUPS-like) language for building MDLPs allowing updatable DAGs (new edges and nodes) allowing for conditions on new edges Societies of MDLPs Observation points (public and private) Inter-MDLP updates and communication Integration of MDLPs with common Ps Hypothetical reasoning over MDLPs Remove the acyclicity condition (??) Applications and relationships