the drew system for nonmonotonic dl programs
play

The DReW System for Nonmonotonic DL-Programs Guohui Xiao 1 Thomas - PowerPoint PPT Presentation

The DReW System for Nonmonotonic DL-Programs Guohui Xiao 1 Thomas Eiter 1 Stijn Heymans 2 1 Institute of Information Systems Vienna University of Technology, Austria 2 Artificial Intelligence Center, SRI International, United States CSWS 2012


  1. The DReW System for Nonmonotonic DL-Programs Guohui Xiao 1 Thomas Eiter 1 Stijn Heymans 2 1 Institute of Information Systems Vienna University of Technology, Austria 2 Artificial Intelligence Center, SRI International, United States CSWS 2012 & CWSC 2012, Shenzhen, 29 Nov 2012

  2. Background: Semantic Web (W3C) ◮ RDF (Resource Description Framework) is the data model ◮ RDFS (Schema) enriches RDF by simple taxonomies and hierarchies ◮ More expressive: OWL (Web Ontology Language) (2004; 2009) ◮ strongly builds on Description Logics ◮ Rule languages: Rule Interchange Format (RIF) (2010) 2/14

  3. dl-Programs ◮ An extension of answer set programs with queries to DL knowledge bases (KBs) (through dl -atoms ) ◮ dl-atoms allow to query a DL knowledge base differently bidirectional flow of information , with clean technical separation of DL engine and ASP solver (“loose coupling”) ? ASP Solver DL Engine ◮ Use DL-programs as “glue” for combining inferences on a DL KB. ◮ System Prototypes ◮ NLP-DL http://www.kr.tuwien.ac.at/research/systems/semweblp/ ◮ dlvhex http://www.kr.tuwien.ac.at/research/systems/dlvhex/ ◮ #F-Logic programs (Ontoprise, extension to F-logic programs) 3/14

  4. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 4/14

  5. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 ≥ 4 . wired ⊑ HighTrafficNode 4/14

  6. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P 4/14

  7. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P overloaded ( X ) ← DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . ◮ DL atom: DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . ◮ Intuition: extend DL predicate wired by connect , then query HighTrafficNode ◮ E.g. Suppose { connect ( x 1 , n 3 ) , connect ( x 2 , n 3 ) } ⊆ I ◮ Then I | = DL[ wired ⊎ connect ; HighTrafficNode ]( n 3 ) ◮ Thus I | = overloaded ( n 3 ) 4/14

  8. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P overloaded ( X ) ← DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . connect ( X , Y ) ← newnode ( X ) , DL[ Node ]( Y ) , not overloaded ( Y ) , not excl ( X , Y ) . 4/14

  9. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P overloaded ( X ) ← DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . connect ( X , Y ) ← newnode ( X ) , DL[ Node ]( Y ) , not overloaded ( Y ) , not excl ( X , Y ) . excl ( X , Y ) ← connect ( X , Z ) , DL[ Node ]( Y ) , Y � = Z . 4/14

  10. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P overloaded ( X ) ← DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . connect ( X , Y ) ← newnode ( X ) , DL[ Node ]( Y ) , not overloaded ( Y ) , not excl ( X , Y ) . excl ( X , Y ) ← connect ( X , Z ) , DL[ Node ]( Y ) , Y � = Z . excl ( X , Y ) ← connect ( Z , Y ) , newnode ( Z ) , newnode ( X ) , Z � = X . 4/14

  11. DL-Programs: Network Example KB = ( L , P ) Ontology L ≥ 1 . wired ⊑ Node ⊤ ⊑ ∀ wired . Node x 1 ? n 1 n 5 wired = wired − ; X n 2 n 1 � = n 2 � = n 3 � = n 4 � = n 5 wired ( n 1 , n 2 ) wired ( n 2 , n 3 ) wired ( n 2 , n 4 ) n 4 wired ( n 2 , n 5 ) wired ( n 3 , n 4 ) wired ( n 3 , n 5 ) . n 3 x 2 ? ≥ 4 . wired ⊑ HighTrafficNode Program newnode ( x 1 ) . newnode ( x 2 ) P overloaded ( X ) ← DL[ wired ⊎ connect ; HighTrafficNode ]( X ) . connect ( X , Y ) ← newnode ( X ) , DL[ Node ]( Y ) , not overloaded ( Y ) , not excl ( X , Y ) . excl ( X , Y ) ← connect ( X , Z ) , DL[ Node ]( Y ) , Y � = Z . excl ( X , Y ) ← connect ( Z , Y ) , newnode ( Z ) , newnode ( X ) , Z � = X . excl ( x 1 , n 4 ) . 4/14

  12. Semantics of DL-Programs x 1 ? n 1 ◮ Answer set semantics (Stable n 5 X model semantics) n 2 ◮ Extension of answer set semantics for normal logical programming n 4 ◮ Multi models n 3 x 2 ? 5/14

  13. Semantics of DL-Programs x 1 ? n 1 ◮ Answer set semantics (Stable n 5 X model semantics) n 2 ◮ Extension of answer set semantics for normal logical programming n 4 ◮ Multi models n 3 x 2 ? ◮ M 1 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 4 ) , . . . } , 5/14

  14. Semantics of DL-Programs x 1 ? n 1 ◮ Answer set semantics (Stable n 5 X model semantics) n 2 ◮ Extension of answer set semantics for normal logical programming n 4 ◮ Multi models n 3 x 2 ? ◮ M 1 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 4 ) , . . . } , ◮ M 2 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 5 ) , . . . } , 5/14

  15. Semantics of DL-Programs x 1 ? n 1 ◮ Answer set semantics (Stable n 5 X model semantics) n 2 ◮ Extension of answer set semantics for normal logical programming n 4 ◮ Multi models n 3 x 2 ? ◮ M 1 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 4 ) , . . . } , ◮ M 2 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 5 ) , . . . } , ◮ M 3 = { connect ( x 1 , n 5 ) , connect ( x 2 , n 1 ) , . . . } , 5/14

  16. Semantics of DL-Programs x 1 ? n 1 ◮ Answer set semantics (Stable n 5 X model semantics) n 2 ◮ Extension of answer set semantics for normal logical programming n 4 ◮ Multi models n 3 x 2 ? ◮ M 1 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 4 ) , . . . } , ◮ M 2 = { connect ( x 1 , n 1 ) , connect ( x 2 , n 5 ) , . . . } , ◮ M 3 = { connect ( x 1 , n 5 ) , connect ( x 2 , n 1 ) , . . . } , ◮ M 4 = { connect ( x 1 , n 5 ) , connect ( x 2 , n 4 ) , . . . } . 5/14

  17. x 1 ? n 1 ◮ Well-founded semantics n 5 X ◮ Extension of well-founded n 2 semantics for normal logical programming ◮ Single model n 4 n 3 x 2 ? ◮ M 0 = { overloaded ( n 2 ) , . . . } 6/14

  18. Loose Coupling - Features ◮ Advantage: ◮ Clean semantics, can use legacy systems dl-atom 1 Ontology ◮ Fairly easy to incorporate further knowledge Rules formats (e.g. RDF) dl-atom 2 ◮ Privacy, information hiding Rule Ontology Reasoner Reasoner Hybrid Reasoner 7/14

  19. Loose Coupling - Features ◮ Advantage: ◮ Clean semantics, can use legacy systems dl-atom 1 Ontology ◮ Fairly easy to incorporate further knowledge Rules formats (e.g. RDF) dl-atom 2 ◮ Privacy, information hiding Rule Ontology Reasoner Reasoner Hybrid Reasoner ◮ Drawback : impedance mismatch, performance ◮ Evaluation of DL-program needs multiple calls of a DL-reasoner ◮ Calls are expensive ◮ optimizations (caching, pruning ...) ◮ In some case, exponentially many calls might be unavoidable ◮ Even polynomially many calls might be too costly 7/14

  20. Uniform Evaluation Convert the evaluation problem into one for a single reasoning engine Logic L L -formulas Reasoner ◮ This means to transform a dl-program into an (equivalent) knowledge base in one formalism L for evaluation ( uniform evaluation ) ◮ In this talk, L = Datalog ¬ 8/14

  21. Reasoning with DL-Programs by Datalog ¬ rewriting 1. Rewriting Ontology to Datalog 2. Duplicating rewritten ontologies according to the dl-inputs 3. Rewriting DL-rules to Datalog ¬ rules 4. Rewriting DL-atoms to Datalog rules 5. Calling Datalog reasoner 9/14

  22. DReW Reasoner ◮ DReW is a reasoner for DL-Programs over Datalog-rewritable Description Logics ◮ homepage: http://www.kr.tuwien.ac.at/research/systems/drew/ ◮ open sourced: https://github.com/ghxiao/drew OWL 2 ontology Parse DL-Rules Choose a DL to DL profile (OWL 2 RL / EL) Datalog rewriter Translate to Datalog Datalog ¬ Reasoner Figure : Control Flow of DReW with DL-programs 10/14

Recommend


More recommend