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.

3.3. FORMALISIERUNG VON ÄNDERUNGSOPERATIONEN 67Man muß jetzt noch die Abfolge der Züge spezifizieren:succ(1, 2).. . .succ(9, 10).Dies ist ebenso wie die Maximallänge nur aufgrund der Bereichsbeschränkung nötig, sonstkönnte man natürlich e<strong>in</strong> e<strong>in</strong>gebautes Prädikat verwenden. Man braucht schließlich nochfolgende Schlüssel-Deklarationen:<strong>in</strong>(X 1 , X 2 , Y ) ∧ <strong>in</strong>(X 1 , X 2 , Y ′ ) → Y = Y ′ .zug(X, Y ) ∧ zug(X, Y ′ ) → Y = Y ′ .succ(X, Y ) ∧ succ(X, Y ′ ) → Y = Y ′ .Am <strong>in</strong>teressantesten ist nun natürlich die Spezifikation der Auswirkung der Züge:<strong>in</strong>(X, spieler, wald) ∧ zug(X, gehe nördlich) ∧ succ(X, X ′ ) →<strong>in</strong>(X ′ , spieler, höhle).<strong>in</strong>(X, spieler, höhle) ∧ zug(X, gehe südlich) ∧ succ(X, X ′ ) →<strong>in</strong>(X ′ , spieler, wald).<strong>in</strong>(X, honig, Y ) ∧ <strong>in</strong>(X, spieler, Y ) ∧ zug(X, nimm honig) ∧ succ(X, X ′ ) →<strong>in</strong>(X ′ , honig, tasche).<strong>in</strong>(X, honig, tasche) ∧ <strong>in</strong>(X, spieler, höhle) ∧ zug(X, gib honig) ∧ succ(X, X ′ ) →¬hungrig(X ′ , bär) ∧ <strong>in</strong>(X ′ , honig, bär).In der Prädikatenlogik ist dies recht mühsam aufzuschreiben, übersichtlicher geht ist <strong>in</strong>e<strong>in</strong>er dynamischen Logik:<strong>in</strong>(spieler, wald) → [gehe nördlich]<strong>in</strong>(spieler, höhle).<strong>in</strong>(spieler, höhle) → [gehe südlich]<strong>in</strong>(spieler, wald).<strong>in</strong>(honig, Y ) ∧ <strong>in</strong>(X, spieler, Y ) → [nimm honig]<strong>in</strong>(honig, tasche).<strong>in</strong>(honig, tasche) ∧ <strong>in</strong>(spieler, höhle) →[gib honig] ( ¬hungrig(bär) ∧ <strong>in</strong>(honig, bär) ) .Natürlich braucht man wieder <strong>Defaults</strong>, die e<strong>in</strong>e m<strong>in</strong>imale Änderung erzw<strong>in</strong>gen. Da dasPrädikat <strong>in</strong> aufgrund der Schlüsseldeklaration im wesentlichen e<strong>in</strong>e Funktion ist, brauchtman hierfür nur zu fordern, daß sich der alte Wert auf den neuen Zustand fortschreibt:succ(X, X ′ ) ∧ <strong>in</strong>(X, Y 1 , Y 2 ) → <strong>in</strong>(X ′ , Y 1 , Y 2 ).Bei dem echten Prädikat hungrig müssen entsprechend die beiden Wahrheitswerte trueund false andauern:succ(X, X ′ ) ∧ hungrig(X, Y ) → hungrig(X ′ , Y ).succ(X, X ′ ) ∧ ¬hungrig(X, Y ) → ¬hungrig(X ′ , Y ).Überraschenderweise ist diese Spezifikation so noch nicht korrekt, <strong>in</strong>sbesondere folgt nichtdie Formel ¬hungrig(4, bär). Um dies zu verstehen, muß man die maximalen Mengenvon Default-Ausprägungen betrachten, die angenommen werden können. Dies entsprichtalso e<strong>in</strong>er möglichst kle<strong>in</strong>en Menge von Ausnahmen, d.h. nicht geltenden <strong>Defaults</strong>. Bei

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!