Presentation is loading. Please wait.

Presentation is loading. Please wait.

An Efficient Tableau Prover Using Global Caching for the Description Logic ALC Linh Anh Nguyen University of Warsaw CS&P’2008.

Similar presentations


Presentation on theme: "An Efficient Tableau Prover Using Global Caching for the Description Logic ALC Linh Anh Nguyen University of Warsaw CS&P’2008."— Presentation transcript:

1 An Efficient Tableau Prover Using Global Caching for the Description Logic ALC Linh Anh Nguyen University of Warsaw CS&P’2008

2 Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC2 Overview  The description logic ALC  Motivation  Our prover TGC for ALC  Optimization techniques of TGC

3 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 CC Male  I - C I R.C has-child.Human {x | y.(x,y)R I  yC I } R.C has-child.Blond {x | y.(x,y)R I  yC I }

4 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. Γ.

5 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

6 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

7 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

8 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

9 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

10 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)

11 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?

12 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

13 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)

14 Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC14 Comparison with FaCT and DLP FaCT’98TGC(1s)DLP’98TGC(7s) npnpnpnp k_branch4682112181021 k_d4821 k_dum21 k_grz21 k_lin21 k_path6821 k_ph76166137217 k_poly21 1521 k_t4p21

15 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} ...

16 Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC16 TGC: The Algorithm Expanding a node:  The rule (): w {C, C,...} status := unsat

17 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

18 Linh Anh NguyenTGC: An Efficient Tableau Prover for ALC18 TGC: The Algorithm Expanding a node:  The rule (): w {C  D,...} {C,...}{D,...} or

19 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}

20 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

21 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 τ.

22 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

23 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

24 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 

25 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

26 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

27 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}

28 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

29 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

30 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

31 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

32 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.

33 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

34 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

35 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


Download ppt "An Efficient Tableau Prover Using Global Caching for the Description Logic ALC Linh Anh Nguyen University of Warsaw CS&P’2008."

Similar presentations


Ads by Google