10.07.2015 Aufrufe

Defaults in deduktiven Datenbanken

Defaults in deduktiven Datenbanken

Defaults in deduktiven Datenbanken

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

152 KAPITEL 6. BERECHNUNG VON ANTWORTENAnfrage <strong>in</strong>itialisiert und kann als Konkatenation der noch abzuarbeitenden Unteranfragenverstanden werden.Während die e<strong>in</strong>zelne Ableitung von der Anfrage bis zur leeren Klausel also l<strong>in</strong>earist, gilt dies nicht für den Suchraum: Im allgeme<strong>in</strong>en können verschiedene Axiome alsSeitenklausel verwendet werden, die nache<strong>in</strong>ander ausprobiert werden müssen (z.B. mit” Backtrack<strong>in</strong>g“).Die wesentliche Struktur e<strong>in</strong>es l<strong>in</strong>earen Resolventenbeweisers ist also folgende:prove(Φ, ψ) :-refute(Φ, ψ, ¬ψ).refute(Φ, ψ, Γ) :-empty(Γ).refute(Φ, ψ, Γ) :-ϕ ∈ Φ ∪ {¬ψ},resolve(Γ, ϕ, Γ ′ , θ),refute(Φ, ψ, Γ ′ ).Es wird hier e<strong>in</strong>e Art Prolog-Pseudocode verwendet, um die Algorithmen zu notieren,weil dadurch das Backtrack<strong>in</strong>g nicht explizit programmiert werden muß.Dieses Programm dient im folgenden als Grundlage für die Entwicklung des topdown“-Verfahrenszur Anfrage-Auswertung. Der eigentliche Ableitungsschritt ist dabei ”<strong>in</strong> der Prozedur resolve verborgen, die aus der Zielklausel Γ und der Seitenklausel ϕdie neue Zielklausel Γ ′ ableitet (die dabei verwendete Substitution θ wird erst späterbenötigt). Die Prozedur resolve soll hier nur <strong>in</strong>formell erklärt werden. E<strong>in</strong>e formaleDef<strong>in</strong>ition f<strong>in</strong>det sich <strong>in</strong> [CL73].Tatsächlich gibt es verschiedene Arten von Ableitungsschritten, der wichtigste ist derResolutionsschritt. Er besteht <strong>in</strong> der Anwendung der Axiome als Regeln, d.h. ist dieaktuelle Zielklausel← λ 1 ∧ λ 2 ∧ · · · ∧ λ nund gibt es e<strong>in</strong> Axiom der Formλ ′ 1 ← λ ′ 2 ∧ · · · ∧ λ ′ m,so daß λ 1 θ = λ ′ 1θ für e<strong>in</strong>e Substitution θ gilt, so kann man zu folgender Zielklauselübergehen:← λ ′ 2θ ∧ · · · ∧ λ ′ mθ ∧ λ 2 θ ∧ · · · ∧ λ n θ.E<strong>in</strong>e Substitution θ mit dieser Eigenschaft heißt e<strong>in</strong> Vere<strong>in</strong>heitlicher ( unifier“) der beiden”Klauseln. Es reicht aus, nur allgeme<strong>in</strong>ste“ Vere<strong>in</strong>heitlicher zu betrachten, die ke<strong>in</strong>e”unnötigen Variablenb<strong>in</strong>dungen vornehmen.Die OL-Resolution ist sehr ähnlich zur SLD-Resolution [Llo87] von Prolog. Da es sichaber nicht um Hornklauseln handelt, kann e<strong>in</strong> Axiom auf verschiedene Arten als Regelgelesen werden, p ← q ∧ ¬r kann zum Beispiel auch <strong>in</strong> der Form r ← q ∧ ¬p angewendet

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!