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.

6.2. TOP-DOWN 155Man könnte die Term<strong>in</strong>ierung sicherstellen, <strong>in</strong>dem man die früheren Zielklauseln aufbewahrtund bei e<strong>in</strong>er gleichen Zielklausel diesen Zweig der Ableitung abbricht. Da es <strong>in</strong>der Aussagenlogik nur endlich viele Zielklauseln gibt, müssen die Ableitungen also endlichse<strong>in</strong>.Allerd<strong>in</strong>gs war e<strong>in</strong> Vorteil der OL-Resolution ja gerade, daß man frühere Zielklauselnnicht abspeichern mußte. Es geht tatsächlich auch wesentlich effizienter mit folgendemTrick:Ist das erste Literal der Zielklausel gleich e<strong>in</strong>em ihrer gerahmten Literale, so kannman die Ableitung abbrechen. Dann ist nämlich die entsprechende frühere Zielklausele<strong>in</strong>e Teilklausel der aktuellen Klausel.Man muß sich nun natürlich noch davon überzeugen, daß die Term<strong>in</strong>ierung hierdurchgewährleistet ist (<strong>in</strong> der Aussagenlogik). Dazu betrachtet man <strong>in</strong> e<strong>in</strong>er unendlichen Ableitungdas am weitesten l<strong>in</strong>ks stehende Literal, das nie wegresolviert wird (so e<strong>in</strong> Literalmuß es geben, sonst hätte man die leere Klausel). Vor diesem Literal müssen sich nununendlich viele gerahmte Literale ansammeln, denn an der nächsten Position f<strong>in</strong>den jaimmer wieder Resolutionsschritte statt. Es gibt aber nur endlich viele gerahmte Literale,und ke<strong>in</strong>es kann doppelt h<strong>in</strong>e<strong>in</strong>kommen, denn sonst hätte man die Ableitung abbrechenmüssen.Wenn man den Fall der Aussagenlogik verläßt, kann man dieses Verfahren natürlichverallgeme<strong>in</strong>ern, so daß es e<strong>in</strong>em etwas abgeschwächten Test auf ”Subsumption“ entspricht.E<strong>in</strong>e Klausel Γ subsumiert e<strong>in</strong>e Klausel Γ ′ genau dann, wenn es e<strong>in</strong>e Substitutionθ gibt mit Γθ ⊆ Γ ′ . Dann ist Γ also allgeme<strong>in</strong>er als Γ ′ und man braucht Ableitungenmit Γ ′ nicht mehr zu betrachten.Überraschenderweise kann aber auch e<strong>in</strong> voller Subsumptionstest die Term<strong>in</strong>ierungnicht garantieren:Beispiel 6.2.3:Enthalte Φ Regeln zur Berechnung der transitiven Hülle:p(X, X ′ ) ← p(X, Y ) ∧ p(Y, X ′ ).p(X, X ′ ) ← q(X, X ′ ).Sei die Anfrage nun p(a, b). Es ergibt sich dann folgende Ableitung (ohne die gerahmtenLiterale, sie spielen für die Subsumption ja ke<strong>in</strong>e Rolle):← p(a, b)← p(a, Y 1 ) ∧ p(Y 1 , b)← p(a, Y 2 ) ∧ p(Y 2 , Y 1 ) ∧ p(Y 1 , b). . .← p(a, Y n ) ∧ p(Y n , Y n−1 ) ∧ p(Y n−1 , Y n−2 ) ∧ · · · ∧ p(Y 1 , b). . .Von diesen Klauseln subsumiert ke<strong>in</strong>e e<strong>in</strong>e andere. Man braucht dazu nur e<strong>in</strong> Modellbetrachten, das aus e<strong>in</strong>em Pfad der Länge n von a nach b besteht: In diesem Beispiel istdie Klausel mit n − 1 Variablen falsch, während alle anderen wahr s<strong>in</strong>d.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!