An Efficient Tableau Prover Using Global Caching for the Description Logic ALC Linh Anh Nguyen University of Warsaw CS&P’2008
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC2 Overview The description logic ALC Motivation Our prover TGC for ALC Optimization techniques of TGC
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC3 Syntax and Semantics of ALC Semantics given by an interpretation I = ( I, I ): SyntaxExampleSemantics A Human AI IAI I R has-child R I I x I C D Human Male CI DICI DI C D Mother Father C I D I CC Male I - C I R.C has-child.Human {x | y.(x,y)R I yC I } R.C has-child.Blond {x | y.(x,y)R I yC I }
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC4 The Satisfiability Checking Problem A TBox is a set of concepts treated as global assumptions, e.g. {Human, Male Female} An interpretation I = ( I, I ) is a model of TBox Γ if C I = I for all C Γ. A concept C is satisfiable w.r.t. a TBox Γ if there exists a model I of Γ such that C I . Problem: Check whether C is satisfiable w.r.t. Γ.
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC5 Naive Tableau Algorithm... or and Search space is an „or”-tree A node is a pre-model of the form „and”-tree
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC6 Naive Tableau Algorithm Simple blocking: if v.content = u.content then v is blocked... or u v
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC7 Provers like FaCT or DLP Anywhere blocking: if v.content = u.content then v is blocked... or u v
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC8 Provers like FaCT or DLP Caching nodes with known status if v.content = u.content and u.status = sat or unsat then v.status = u.status... or v u
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC9 Provers like FaCT or DLP Not exploited: the case when v.content = u.content and v.status = unknown Many optimizations 2ExpTime (instead of ExpTime)... or v u
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC10 Global Caching Goré & Nguyen, DL’07 Search space: an and-or graph (instead of an „or”-tree of „and”-trees) For each possible (node) content: only one node of that content is expanded such an expansion is done only once optimal (ExpTime)
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC11 Motivation Can global caching be implemented to give an efficient prover for ALC? What optimization techniques can be implemented together with global caching to obtain an efficient prover for ALC?
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC12 Our Prover TGC (version 1.2) checks whether a given concept C is satisfiable w.r.t. a TBox Γ in logic ALC Γ is given as Γ’ {D}, where: Γ’ is a TBox of acyclic concept definitions D is a concept Implemented in C++ Tested on the test sets T98-sat and T98- kb of DL'98 Systems Comparison
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC13 Comparison with FaCT and DLP FaCT (Horrocks) and DLP (Patel-Schneider): the best provers from DL'98 Systems Comparison Test results of FaCT and DLP: taken from DL'98 Systems Comparison FaCT used PC with 200MHz CPU and 64MB RAM DLP used SPARC with 150MHz CPU and 132 MB RAM Time limit for each single test: 100s Test results of TGC: TGC used PC with 2.13GHz CPU and 2GB RAM TGC uses < 30 MB RAM for most tests from DL’98 Time limit for each single test: 7s (and 1s)
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC14 Comparison with FaCT and DLP FaCT’98TGC(1s)DLP’98TGC(7s) npnpnpnp k_branch k_d4821 k_dum21 k_grz21 k_lin21 k_path6821 k_ph k_poly k_t4p21
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC15 TGC: The Algorithm Problem: Is C satisfiable w.r.t. TBox Γ? Build an and-or graph: The initial node τ contains Γ {C} ...
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC16 TGC: The Algorithm Expanding a node: The rule (): w {C, C,...} status := unsat
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC17 TGC: The Algorithm Expanding a node: The implicit rule (): w {C D,...} Replace C D by C and D
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC18 TGC: The Algorithm Expanding a node: The rule (): w {C D,...} {C,...}{D,...} or
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC19 TGC: The Algorithm Expanding a node: The transitional rule (R): w {has-child.Male, has-child.Female, has-child.Happy, Human} {Male, Happy, Human} and Γ = {Human} {Female, Happy, Human}
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC20 TGC: The Algorithm Global Caching: Before creating a new node check whether there is an existing node of the same content. If so, use that node as a proxy. If no rule is applicable to a node w: w receives status sat. When a node receives status sat/unsat: propagate the status backward appropriately treating sat = true, unsat = false
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC21 TGC: The Algorithm Stop when τ receives status sat or unsat When all nodes have been expanded Assign τ status sat (if its status is unknown) Return the status of τ.
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC22 TGC: Optimization Techniques Normalizing formulas Fast detection of Sat and UnSat Simplification Semantic branching Propagations Cutoffs Search strategies Efficient memory management
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC23 Normalizing Formulas Formulas are: normalized normalized negation normal form represented by the normal form referred to via a pointer Normalization rules: next page cached
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC24 Normalizing Formulas Normalization rules C 1 ... C k {C 1,..., C k } {{C 1,..., C i }, C i+1, C k }{C 1,..., C i, C i+1, C k } R.{C 1,..., C k }{R.C 1,..., R.C k } R.T T {T, C 1,..., C k }{C 1,..., C k } {, C 1,..., C k } {C} C plus dual rules for and
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC25 Fast Detection of Sat and UnSat C : the normal form of C general clashes : C, C Negations of formulas are cached. For each node with status unknown: Record the number of successors with status unknown. When the number is reduced to 0: and-node status := sat or-node status := unsat Detect looping sat nodes see the paper
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC26 Simplification Pure classical literal deletion Classical unit clause elimination Modal unit clause elimination Normalize the formula after those operations Example: next page
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC27 Simplification: Example {A,R.C,{{A,B},{B,R.C,S.D}},{A,S.D,R.C}} At the object level (not under quantifiers): B is a pure classical literal Assign B value true (for the object level) A is a classical unit clause Assign A value true (for the object level) R.C is a modal unit clause Keep the clause, but replace the other occurrence of R.C by true, and replace R.C by false (for the object level) The formula is simplified to: {R.C,S.D}
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC28 Semantic Branching on a classical literal if A and A occur in X „several times” at the object level X X” X’ A := T A := or-node for the object level
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC29 Semantic Branching on a modal literal if C and C occur in X „several times” at the object level X X” C X’ C C := T, C := or-node for the object level
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC30 Some Definitions unsat-core of a node is: a subset of the content that causes the node unsat computed via (backward) propagation Example 1: {...,C,C} unsat-core = {C,C} Example 2: Subset-checking: X Y, X is unsat Y is unsat Superset-checking: X Y, Y is sat X is sat w { C D, E1, E2, E3, E4 } {C, E1, E2, E3, E4} or {D, E1, E2, E3, E4} u v
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC31 Propagations Backward propagations: Basic propagation of sat and unsat to parents Propagation of unsat to parent/brother nodes via subset-checking and using unsat-core Propagation of sat to brother nodes via superset-checking Global propagation: Propagation of unsat via subset-checking
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC32 Cutoffs A node is expanded only when it could affect the status of the initial node. Keep a skeleton tree of the graph. When a node becomes sat or unsat cutoff its subtree. Rebuild a new skeleton tree when necessary.
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC33 Search Strategies Various search strategies: DFS (FIFO) the best at the moment Heuristic search (priority queue) BFS (LIFO): performs poorly Preferences of rules: Simplification Semantic-branching Choose a literal that occurs most often at the object level Syntatic-branching Choose a heaviest disjunction Transitional rule DFS: successor nodes are considered in the increasing order of weights
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC34 Efficient Memory Management Minimize the graph whenever possible Delete sat nodes from the graph But keep their contents and status in the formula catalog Sometimes delete unsat nodes from the graph When not needed for computing unsat-cores of the parents But keep their contents and status in the formula catalog Replace the content of a unsat node by its unsat-core Merge nodes of the same content Reduce the formula catalogue occasionally
Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC35 Conclusions and Future Work TGC: optimal (ExpTime) and efficient We have established a set of optimizations that co-operates very well with global caching and various search strategies on search spaces of the form and-or graph. Propagation of unsat via subset-checking using unsat-core for parent and brother nodes as well as cutoffs are specific to that kind of search spaces. There remains lots of work to do with TGC: to directly and efficiently handle general TBoxes, to deal with ABoxes. Extend TGC for other modal/description logics