720 likes | 819 Views
Reasoning Services: Tableau-Beweiser für Beschreibungslogiken – ein Zwischenbericht –. Projekt im Hauptstudium Wintersemester 2006/07 Carola Eschenbach Özgür Özçep. Niels Beuck Oliver Gries Roland Illig Felix Lindner Arved Solth Jens Wächter. Gliederung. Einleitung (Oliver)
E N D
Reasoning Services: Tableau-Beweiser für Beschreibungslogiken– ein Zwischenbericht – Projekt im Hauptstudium Wintersemester 2006/07 Carola EschenbachÖzgür Özçep Niels Beuck Oliver GriesRoland IlligFelix LindnerArved SolthJens Wächter
Gliederung • Einleitung (Oliver) • Expressions und Prover (Jens) • Reasoning Services (Felix) • Optimierungen (Arved) • Dependency directed backtracking (Niels) • Testumgebung und Ergebnisse (Roland)
Einführung Reasoning-Services: Tableau-Beweiser für Beschreibungslogiken Oliver Gries
Tableau-Beweiser • Verfahren zur Erkennung von logischen Widersprüchen • Eine Formel gilt nach dem Tableau-Verfahren als unerfüllbar, wenn alle Zweige widersprüchlich sind A ∩ (A→B) ∩ ¬B A (A→B) ¬B ¬A B
Beschreibungslogiken • DL (Description Logic) • sind ein (meist) entscheidbares Fragment der Prädikatenlogik • Sprache besteht aus Konzepten, Konstanten und Rollen • Beispiele für die Ausdrucksmächtigkeit: • „Alle Menschen sind Lebewesen.“ • „Harry hat nur Töchter.“ • „Ein Stuhl ist ein Möbelstück mit vier Beinen.“ • Beschreibungslogiken (Axiome) • C ⊆ D Konzept C wird von Konzept D subsummiert • C ≡ D Äquivalenz von C und D • C(a) a ist Instanz von Konzept C • R(a, b) a steht mit b in Relation R
Beschreibungslogiken:TBox, ABox und Inferenzen TBox ABox Woman ≡ Person ∩ Female Man ≡ Person ∩ ¬Woman Mother ≡ Woman ∩ ∃hasChild.Person Father ≡ Man ∩ ∃hasChild.Person Parent ≡ Mother ∪ Father Grandmother ≡ Mother ∩ ∃hasChild.Parent Wife ≡ Woman ∩ ∃hasHusband.Man MotherWith ManyChildren ≡ Mother ∩ ≥3 hasChild MotherWithout Daughter ≡ Mother ∩ ∀hasChild.¬Woman MotherWithoutDaughter(MARY) Father(PETER) hasChild(MARY, PETER) hasChild(MARY, PAUL) hasChild(PETER, HARRY) example Inference: Grandmother(MARY). Woman(MARY), Man(MARY) ergibt Inkonsistenz
Reasoning-Services • TBox • Satisfiability – Ist ein Konzept erfüllbar ? • Subsumption – gilt C ⊆ D für alle Belegungen ? • Equivalence – gilt C ≡ D für alle Belegungen ? • Disjointness – sind C und D disjunkt ? • Classification – erstelle eine Taxonomie (Subsumptionshierarchie) aller Konzepte • ABox + TBox • InstanceCheck – gilt C(a) ? • Retrieval – nenne alle Instanzen eines Konzeptes • Realization – nenne speziellste Konzepte einer Instanz
Inhalte des Projekts • Sprache • Wir haben die Sprache ALC gewählt. Sie enthält (im Wesentlichen) die Konzeptkonstruktoren AND, OR, NOT, ∃R.C und ∀R.C • Tableau-Beweiser • Unser Beweiser benutzt markierte Tableaux. Sie lassen sich leichter implementieren, eine NNF muss nicht erstellt werden und es können auch nicht atomare Abschlüsse gefunden werden • Reasoning-Services • Wir haben den (TBox-)Satisfiability, Subsumption, Equivalence und Disjointness-Service implementiert (InstanceCheck, Retrieval folgen)
Markiertes Tableau (Beispiel für die Sprache ALC) T ((∃R.A) ∩ (∃R.B) ∩ ¬(∃R.(A ∩ B))) (a) T (∃R.A) (a) T (∃R.B) (a) T ¬(∃R.(A ∩ B)) (a) T R(a,b), T A(b) T R(a,c), T B(c) F (∃R.(A ∩ B)) (a) F (A ∩ B) (b), F (A ∩ B) (c) F A(b) F B(b) F A(c) F B(c)
Phasen des Projektes • theoretische Grundlagen • Aufsatz von Ian Horrocks über (markierte) Tableaux • Kapitel 2 aus dem „Description Logics Handbook“ • Erweiteurng des AL-Beweisers zu einem DL-Beweiser mit Reasoning-Services • Gruppe Parser • Gruppe Prover (Jens Wächter) • Gruppe Reasoning Services (Felix Lindner) • Optimierungen und Testumgebung • Optimierungen: Normalisierung der Konzepte, Semantic Branching, Simplification (Arved Solth) • Dependancy Directed Backtracking-Optimierung (Niels Beuck) • Testumgebung mit ersten Ergebnissen (Roland Illig)
Prover und Expressions Reasoning-Services: Tableau-Beweiser für Beschreibungslogiken Jens Wächter
Expressions • Frühe Grundsatzentscheidung : Orientierung an LISP • Eine Klasse, die alle Ausdrücke abdeckt statt individuelle Klassen für jeden Ausdruck • Klasse ‚DLExpression‘ enthält Operator, Name, Subkonzepte • Wir unterscheiden zwischen atomaren und nicht atomaren Konzepten • Beispiel : (all R C) : op = DLOperator.All subexpressions[0] = R subexpressions[1] = C name = null
Übersicht über den Prover Tableau benutzt Prover besteht aus Zweig Expansion erzeugt/ wird erzeugt besitzt erstellt für besteht aus Expansionsregeln Eintrag wird angewendet auf
Tableau - Eintrag • Ein Tableaueintrag(TEntry) besteht aus einem Ausdruck, einer Markierung und einer Konstante, auf die sich der Ausdruck bezieht • T:(all R C)(x) • F:R(x, y)
Tableau-Zweig • Das Tableau wird nicht als Baumstruktur sondern als Liste realisiert • Der Tableauzweig(TBranch) unterteilt dabei die Liste der Einträge in Teillisten von expandierten, nicht expandierten und atomaren Einträgen • Die Abschlussbedingungen von Zweigen werden ebenfalls in TBranch geprüft. Standard : atomarer Abschluss, optional : nicht atomarer
Tableau - Tableau • reine Datenstruktur aus Zweigen und statistischen Daten • es gibt einen aktiven Zweig • aktueller Zweig lässt sich ersetzen durch Menge an neuen Zweigen aktiver Zweig
Prover • Der Prover stellt den Reasoning Services Methoden zum Erfüllbarkeitstest bereit • Der Prover steuert die Expansion der Tableaustruktur • Dazu benutzt er einen Satz an Expansionsregeln, die priorisiert werden können • Ablauf des Beweisvorgangs : für aktuellen Tableauzweig wird die Anwendbarkeit der Regeln für jeden Eintrag getestet. Wenn eine Regel auf einen Eintrag angewendet werden kann, dann wird eine Expansion erstellt und diese auf den aktuellen Tableauzweig angewendet. • Mit dem resultierendem Zweig wird fortgefahren (Tiefensuche)
Expansionsregeln • In Expansionsregeln wird spezifiziert, wenn diese angewendet werden können • Expansionsregeln erstellen Expansionen • Problem bei Regeln mit mehr als einer Vorbedingung
Expansionen • resultieren aus der Anwendung einer Expansionsregel auf einen Eintrag • enthalten „Anleitung“ wie ein Zweig der Regel entsprechend umgeformt werden muss, bzw. neue Zweige erstellt werden müssen • Anwendung von Expansion auf Zweig setzt Eintrag, auf den die Regel angewendet wurde, auf Liste von bereits expandierten Einträge
Sonderfall Allquantorexpansion • Mehrere Vorbedingungen - Expansionsregel prüft, ob Eintrag der Form (all R C) ist • Als Expansion wird ein „Muster“ erstellt, wie das Ergebnis aussehen könnte • Für jede Relation, die ins Muster passt, wird bei Anwendung der Expansionsregel in resultierendem Zweig ein Konzept erstellt : test der anderen Vorbedingungen in Expansion • Dieses Verfahren lässt sich bei Simplification nicht benutzen
Reasoning Services Reasoning-Services: Tableau-Beweiser für Beschreibungslogiken Felix Lindner
Reasoning Services • Vorverarbeitung • evtl. Normalisierung der beschreibungslogischen Ausdrücke • evtl. T-Box Expansion
Initiale Tableaus Konzept-Erfüllbarkeit T C(a) Mit TBox Expansion der TBox Axiome Ai ≡ Di' ,Di' enthält nur Basissymbole Ersetzung aller Vorkommen von Ai in C durch Di' TBox-Erfüllbarkeit Ai ≡ Ci CTBox ≡ (¬Ai ∪ Ci) ∩ (Ai ∪ ¬Ci) ∩... T CTBox (a) Reasoning Services Bei Abschluss: unerfüllbar
Initiale Tableaus Subsumption Wird C von D subsumiert? Rückführung auf Unerfüllbarkeit T C(a) F D(a) Bei Abschluss gilt Sumbsumptionsbeziehung Äquivalenz Konzepte C und D äquivalent? Rückführung auf Subsumption Subsumiert(C,D) und Subsumiert(D, C) Reasoning Services
Reasoning Services • Initiale Tableaus • Disjunktheit • Sind C und D disjunkt? • Rückführung auf Unerfüllbarkeit T C(a) T D(a) • Bei Abschluss gilt Disjunktheit
Optimierungen Reasoning-Services: Tableau-Beweiser für Beschreibungslogiken Arved Solth
Optimierungen • Semantic Branching • Simplification • Normalisierung • Dependency Directed Backtracking
Semantic Branching • Syntactic Branching: jedes Disjunkt einer Verzweigung führt zu einem einzelnen Zweig
Semantic Branching • Syntactic Branching: jedes Disjunkt einer Verzweigung führt zu einem einzelnen Zweig • Semantic Branching: ein Disjunkt D aus einer unexpandierten Verzweigung führt zu zwei disjunkten Zweigen mit T:D und F:D
Semantic Branching • Syntactic Branching: jedes Disjunkt einer Verzweigung führt zu einem einzelnen Zweig • Semantic Branching: ein Disjunkt D aus einer unexpandierten Verzweigung führt zu zwei disjunkten Zweigen mit T:D und F:D • Vorteil: die beiden Zweige sind strikt disjunkt und können dadurch mehrfaches, unnötiges und redundantes Expandieren von weiteren Formeln verhindern, wie es bei Syntactic Branching vorkommen kann
Semantic Branching • Beispiel: Formel (A ν B) (A ν ¬B) X, einmal mit Syntactic Branching und einmal mit Semantic Branching expandiert
Semantic Branching • Beispiel: Formel (A ν B) (A ν ¬B) X, einmal mit Syntactic Branching und einmal mit Semantic Branching expandiert • Annahme: Formel X enthält aufwendig zu expandierende, evtl. wieder verzweigende Teilformeln
Semantic Branching • Beispiel: Formel (A ν B) (A ν ¬B) X, einmal mit Syntactic Branching und einmal mit Semantic Branching expandiert • Annahme: Formel X enthält aufwendig zu expandierende, evtl. wieder verzweigende Teilformeln • Ziel: erforderliche Anzahl von Expansionen der Teilformel X reduzieren und redundante Expansionen vermeiden
X X X Semantic Branching T: (A νB) (A ν¬B) X Mit Syntactic Branching: T: (A νB) T: (A ν¬B) T: X T: B T: A T: A T: ¬B T: A T: ¬B F: B F: B X muss 3mal expandiert werden
X Semantic Branching T: (A νB) (A ν¬B) X Mit Semantic Branching: T: (A νB) T: (A ν¬B) T: X F: A T: A T: B T: A F: A T: ¬B T: A T: ¬A T: ¬B F: B X muss nur 1mal expandiert werden!
Simplification • Motivation: Versucht, Verzweigungen vor ihrer Expansion zu vereinfachen
Simplification • Motivation: Versucht, Verzweigungen vor ihrer Expansion zu vereinfachen • Vorgehen: • suche nach Einträgen im aktuellen Zweig, deren Ausdrücke durch Regelanwendungen zu Verzweigungen führen können;
Simplification • Motivation: Versucht, Verzweigungen vor ihrer Expansion zu vereinfachen • Vorgehen: • suche nach Einträgen im aktuellen Zweig, deren Ausdrücke durch Regelanwendungen zu Verzweigungen führen können; • durchsuche nun den Zweig nach allen Teilausdrücken einer solchen Verzweigung;
Simplification • Motivation: Versucht, Verzweigungen vor ihrer Expansion zu vereinfachen • Vorgehen: • suche nach Einträgen im aktuellen Zweig, deren Ausdrücke durch Regelanwendungen zu Verzweigungen führen können; • durchsuche nun den Zweig nach allen Teilausdrücken einer solchen Verzweigung; • falls ein Teilausdruck gefunden wurde und sich nur durch sein Label von dem Teilausdruck der Verzweigung unterscheidet, wird er aus dieser gestrichen
Simplification • Vorteil: Durch streichen dieser Teilformeln können Verzweigungen vereinfacht oder sogar vermieden werden