Defaults in deduktiven Datenbanken
Defaults in deduktiven Datenbanken
Defaults in deduktiven Datenbanken
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.