Defaults in deduktiven Datenbanken vom Fachbereich Mathematik der Universität Hannover zur Erlangung des Grades Doktor der Naturwissenschaften Dr. rer. nat. genehmigte Dissertation von Dipl.-Inform. Stefan Braß geboren am 09.08.1964 in Hannover 1992 Referent: Korreferent: Prof. Dr. U. W. Lipeck Prof. Dr. H.-D. Ehrich Tag der Promotion: 06.07.1992 Datum der Veröffentlichung: August 1992 i Zusammenfassung Ziel dieser Arbeit ist eine systematische Entwicklung der Theorie von Defaults in deduktiven Datenbanken. Deduktive Datenbanken sind dadurch gekennzeichnet, daß sie Mengen logischer Formeln verwalten: Fakten, Regeln und unvollständige Information (z.B. Disjunktionen). Die Anfragebearbeitung besteht dann in der Berechnung von Folgerungen aus dieser Formelmenge. Dabei können bestimmte Formeln als Default angenommen werden, sofern keine gegenteilige Information vorliegt. Üblicherweise werden Defaults zur Auswertung negierter Anfragen verwendet. Aber auch die Vererbung in objektorientierten Ansätzen und andere Wissensrepräsentations-Formalismen können mit Defaults beschrieben werden. Diese Arbeit hat zwei Hauptgegenstände: Einerseits ist die genaue Semantik der Defaults zu klären, die keineswegs selbstverständlich ist. Andererseits soll gezeigt werden, daß eine Anfragebearbeitung mit Defaults auch praktisch durchführbar ist. Hinsichtlich der Semantik wird ein allgemeiner Begriffsrahmen eingeführt, der dann als Grundlage für die Diskussion verschiedener Vorschläge dient. Insbesondere wird die Ausdrucksfähigkeit der minimale Modelle“-Semantik charakterisiert, die vorsichtige CWA“ ” ” als Verallgemeinerung der Annahmen der geschlossenen Welt eingeführt, und gezeigt, daß beide Semantiken extremal mit bestimmten Eigenschaften sind. Außerdem wird auf bisher unbekannte Mängel der konstruktiven Semantik für partiell geordnete Defaults hingewiesen. Als Grundlage für eine effiziente Anfrage-Auswertung werden ein top-down“ und ein ” bottom-up“ Verfahren vorgestellt. Das top-down“ Verfahren hat gegenüber bisherigen ” ” Vorschlägen den Vorteil, die Anwendbarkeit von Defaults so früh wie möglich zu testen. Bottom-up“-Verfahren mit allgemeinen Klauseln und Defaults gibt es in der Literatur ” offenbar noch gar nicht. ii Abstract The goal of this thesis is a theory of defaults in deductive databases. Deductive databases store formulae which describe facts corresponding to conventional database information, rules for deducing further information, and indefinite information. In the proof-theoretic view, the query evaluation consists of computing consequences of the stored formulae. During this process, certain formulae can be assumed as defaults, if no contradicting information is explicitly given. Usually defaults are used to evaluate negated literals. But also inheritance in object-oriented approaches and other knowledge representation formalisms can be described by means of defaults. This thesis is concerned with two problem areas: First, we try to clarify the semantics of defaults, and second, we contribute to the algorithmic foundations of query evaluation. Concerning the semantics, we introduce a general and abstract framework, and discuss various alternatives in this setting. Especially, we characterize the expressiveness of the “minimal model” approach, introduce the “careful closed world assumption”, show that both are extremal semantics with certain properties, and demonstrate previously unknown defects of the constructive semantics of partially ordered defaults. With respect to the algorithmic foundations, we give a bottom-up and a top-down procedure for reasoning with explicit defaults. There seems to be no such bottom-up algorithm in the literature, and the top-down approach has the advantage over previous proposals that it is able to test the applicability of defaults as soon as possible. iii Danksagung Ich möchte Herrn Prof. Dr. Udo W. Lipeck für viele hilfreiche Hinweise und fruchtbare Diskussionen während der letzten dreieinhalb Jahre danken. Herrn Prof. Dr. Hans-Dieter Ehrich möchte ich für die Übernahme des Zweitgutachtens danken, sowie für die Betreuung meiner Diplomarbeit, durch die ich zu einer intensiveren Beschäftigung mit dem Themenkreis Logik und Datenbanken“ gefunden habe. ” Kommentare zu Vorversionen und andere nützliche Hinweise habe ich bekommen von: Dr. Gerhard Brewka, Arno Brinkmann, Dr. François Bry, Dr. Bernhard Convent, Dr. Hendrik Decker, Francisco Miguel Dionisio, Jürgen Dix, Dr. Klaus Drosten, Michael Gertz, Prof. Dr. Ralf Hartmut Güting, Gerhard Koschorreck, Prof. Dr. Georg Lausen, Prof. Dr. Wiktor Marek, Dr. Mark Ryan, Prof. Dr. Yehoshua Sagiv, Prof. Dr. Peter H. Schmitt, Prof. Dr. Bernhard Thalheim und Heinz Uphoff. Dafür möchte ich an dieser Stelle noch einmal herzlich danken. Nützlich waren auch die Kontakte in der Forschungsgruppe IS-CORE ( Information ” Systems — COrrectness and REusability“, koordiniert von Prof. Dr. Amı́lcar Sernadas). iv Inhaltsverzeichnis 1 Einführung 1 2 Deduktive Datenbanken 11 2.1 Die verwendete Logik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Intendierte Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3 Anfragen und Antworten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3 Anwendungsbeispiele 3.1 Implizite Negation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Vererbung in objekt-orientierten Ansätzen . . . . . . . . . . . . . . . . . . 3.3 Formalisierung von Änderungsoperationen . . . . . . . . . . . . . . . . . . 49 49 59 64 4 Eigenschaften von Vervollständigungen 4.1 Folgerungsregeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Modelltheoretische Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . 4.3 Vervollständigungen als Semantik von Defaults . . . . . . . . . . . . . . . . 71 72 81 83 5 Semantik von Defaults 5.1 Minimale Modelle . . 5.2 Die vorsichtige CWA 5.3 Weitere Semantiken . 5.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 89 101 111 120 6 Berechnung von Antworten 125 6.1 Bottom-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 6.2 Top-Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 7 Ausblick 167 Symbolverzeichnis 171 Literaturverzeichnis 175 Index 193 v vi Kapitel 1 Einführung Ziel dieser Arbeit ist es, deduktive Datenbanken um Defaults zu erweitern. Damit ist sie im Zwischenfeld der Theorie von Datenbanken, der logischen Programmierung und der künstlichen Intelligenz einzuordnen. Deduktive Datenbanken [Rei78, GMN84, Rei85, Ull88, Ull89] dienen dazu, logische Formeln abzuspeichern. Die Anfragebeantwortung geschieht dann mit Techniken des automatischen Beweisens. Typischerweise läßt man nur eingeschränkte Formeln zu (etwa Hornklauseln), so daß die Anfragebeantwortung hinreichend effizient möglich ist. Defaults [Rei80, Bes88, Bre91] erlauben die Annahme von Formeln, sofern nichts Gegenteiliges bekannt ist. So ist es etwa üblich, bei der Anfragebeantwortung davon auszugehen, daß nicht ableitbare Fakten falsch sind [Rei78, Cla78]. Daher muß man nur die positive Information explizit repräsentieren, die im allgemeinen wesentlich kürzer und einfacher zu notieren ist als die gesamte, bei der Anfragebeantwortung zu verwendende Information. Außerdem kann man nur so die bewährten relationalen Datenbanken als auf atomare Formeln beschränkte deduktive Datenbanken verstehen. Defaults wurden also schon immer in deduktiven Datenbanken verwendet. Dabei waren die zu verwendenden Defaults aber fest in die Anfragebeantwortung eingebaut, und es handelte sich um die klassische Annahme von Negationen. Ziel dieser Arbeit ist es, die explizite Angabe beliebiger Defaults zu erlauben, und sowohl ihre Semantik zu untersuchen (was ist eine korrekte Antwort?) als auch passende Antwortalgorithmen anzugeben (wie berechnet man korrekte Antworten?). Damit einher geht die Erweiterung deduktiver Datenbanken auf beliebige Klauseln (anstelle der eingeschränkten Hornklauseln); denn gerade hier sind explizite Defaults besonders wichtig. Läßt man nämlich auch Disjunktionen zu, etwa um unvollständige Information darzustellen, so ist die Semantik der impliziten Negation keineswegs mehr klar [Min82, MP84, YH85, GP86, GPP86, BH86, RT88, Dec91]. Defaults erlauben dem Datenbankentwerfer nun, die gewünschte Art der Negation zu spezifizieren [BL89]. Defaults sind aber nicht nur für die implizite Negation nützlich, wenn dies auch bisher ihre wichtigste Anwendung war. In letzter Zeit wird aber eine Integration von deduktiven und objekt-orientierten Datenbanken angestrebt [KNN90, KLW90]. Hier kann die Vererbung von Informationen ganz direkt mit Defaults formalisiert werden [BL91]. 1 2 KAPITEL 1. EINFÜHRUNG Natürlich sind allgemeine Defaults an sich keine neue Erfindung. Sie wurden auch schon in der künstlichen Intelligenz untersucht bei dem Versuch, Schlußweisen des gesunden Menschenverstandes zu formalisieren [McC80, Rei80, Moo85, McC86]. Allerdings werden dort meist recht komplizierte Arten von Defaults betrachtet oder neue Logiken, was zu zahlreichen Problemen führt. Im Datenbankbereich scheinen dagegen einfache prädikatenlogische Formeln als Defaults auszureichen [Poo88, BL89], und durch diese Beschränkung wird alles wesentlich einfacher und übersichtlicher. Dagegen haben sich Prioritäten zwischen den Defaults als sehr nützlich erwiesen. Sie erlauben, zu spezifizieren, welcher Default vorgezogen werden soll, wenn ein Konflikt zwischen zwei Defaults besteht. Ein Ziel der vorliegenden Arbeit ist es nun, für solche einfachen Defaults mit Prioritäten eine Semantik zu entwickeln. Dazu werden mehrere Vorschläge untersucht und verglichen: In der Hauptsache sind dies die minimale Modelle“-Semantik [McC80] ver” allgemeinert auf partiell geordnete Defaults, und eine neue vorsichtige CWA“, die die ” GCWA [Min82] als Spezialfall enthält. Außerdem wird gezeigt, daß die konstruktive Semantik [Bre91] bei partiell geordneten Defaults nicht mehr äquivalent zu den minimalen Modellen ist (ein etwas überraschendes Ergebnis). Auch eine passend verallgemeinerte Version der originalen CWA [Rei78] wird zum Vergleich herangezogen. Es sollen aber nicht nur diese vier Semantiken einfacher Defaults untersucht werden, sondern es soll ein Überblick über alle denkbaren Semantiken gewonnen werden. Der semantische Bereich für Defaults sind Vervollständigungen, die das explizit aufgeschriebene Wissen um implizite Annahmen erweitern. Sie können auf drei Arten formalisiert werden: als Auswahlfunktion auf den Modellen, als syntaktische Erweiterung der Formelmenge, oder als neue Folgerungsrelation. Auch dieser allgemeine Rahmen für die Untersuchung von Default-Semantiken ist ein wesentlicher Beitrag der vorliegenden Arbeit. Natürlich gibt es in der künstlichen Intelligenz schon Untersuchungen über abstrakte, nicht-monotone Folgerungsrelationen, etwa [Gab85, Mak89, KLM90, Dix91]. Der dieser Arbeit zugrunde liegende Ansatz [Bra90a] unterscheidet sich davon hauptsächlich in der Betonung des modelltheoretischen Aspektes. Die hier betrachteten Folgerungsrelationen sind gegenüber denen in der Literatur so eingeschränkt, daß es möglich ist, sie äquivalent durch Auswahlfunktionen auf prädikatenlogischen Modellen zu beschreiben. Dies ist einerseits wesentlich übersichtlicher, da im Datenbankbereich modelltheoretische Sichtweisen ja ohnehin üblicher sind (etwa beim relationalen Datenmodell). Andererseits sind solche Auswahlfunktionen aber auch in der mathematischen Theorie der Wahlverfahren ausführlich untersucht worden (eine Übersicht gibt [Mou85]). Es ist überraschend, daß trotz des gänzlich anderen intuitiven Hintergrunds in den beiden Gebieten viele äquivalente Eigenschaften untersucht worden sind. Durch den hier angegebenen allgemeinen Rahmen ist es möglich, zwischen beiden Formulierungen umzurechnen, und es wird auf diesem Wege insbesondere eine Charakterisierung der minimale Modelle“” Vervollständigungen gewonnen [Bra90a]. In der Literatur sind bisher Resultate aus der Theorie der Wahlverfahren nur sehr vereinzelt herangezogen worden [DW91]. Neben den speziellen Default-Semantiken und dem allgemeinen Rahmen ist der dritte 3 Beitrag dieser Arbeit eine Untersuchung der Grundlagen von Antwortalgorithmen. Denn natürlich sollen Defaults auch praktisch bei der Anfragebearbeitung in deduktiven Datenbanken verwendet werden. Hierfür werden zwei Algorithmen vorgeschlagen: Einerseits ein top-down“ Verfahren [Bra92b], das im Unterschied zu Beweisern für die Circumscrip” tion [Prz89, Gin89, BG89] die Anwendbarkeit von Defaults so früh wie möglich prüft. Damit hat es eine gewisse Ähnlichkeit mit der in der logischen Programmierung bewährten SLDNF-Resolventenmethode [Cla78, Llo87], so daß man auf deutliche Effizienzgewinne hoffen kann. Andererseits wird auch ein bottom-up“ Verfahren vorgeschlagen [BL92], mit ” dem man das bei deduktiven Datenbanken wichtige mengenorientierte Verhalten erhält. Warum sind deduktive Datenbanken wünschenswert? Zunächst einmal sind deduktive Datenbanken eine Verallgemeinerung der relationalen Datenbanken, die sich in der Praxis bewährt haben. Eine relationale Datenbank läßt sich ganz direkt in eine Faktenmenge übersetzen [Rei78, GMN84, Rei85]. Daneben können deduktive Datenbanken aber auch Regeln enthalten. Um die Nützlichkeit von Regeln einzusehen, vergleiche man etwa die Regel der Intercity von Hannover ” nach Dortmund fährt von 701 bis 2101 jede Stunde“ mit einem entsprechenden Fahrplanauszug. Regeln mit Ausnahmen können sehr einfach mit Defaults dargestellt werden. Außerdem hat sich gezeigt, daß die Darstellung von unvollständiger Information (etwa Nullwerten) in relationalen Datenbanken schwierig ist: Es gibt sehr viele unterschiedliche Vorschläge für die Semantik solcher Nullwerte und die Antwortalgorithmen sind so unübersichtlich, daß auch nach einer ganzen Zeit noch Fehler gefunden werden [Kle91]. Die Auffassung des Datenbankzustands als Formelmenge liefert dagegen eine solide theoretische Grundlage für die Behandlung von unvollständiger Information. Ein weiterer Vorteil deduktiver Datenbanken ist, daß man in der Logik eine einheitliche Sprache für Daten, Programme, Anfragen, Sichten und Integritätsbedingungen hat. Damit lösen deduktive Datenbanken in eleganter Weise das bekannte impedance mis” match problem“ beim Übergang von der mengenorientierten, relationalen Darstellung zu einer tupelweisen Verarbeitung in Anwendungsprogrammen. Schließlich sei noch bemerkt, daß die Logik ja ein vergleichsweise sehr alter Formalismus zur Wissensrepräsentation ist. Sie verfügt damit über ein ausgereiftes theoretisches Fundament, so daß es sich anbietet, auch andere Formalismen zur Wissensrepräsentation in die Sprache der Logik zu übersetzen, um einen gemeinsamen Bezugspunkt für einen Vergleich zu haben. Passend verallgemeinerte deduktive Datenbanken können dann auch die Grundlage von Expertensystemen bilden [App85, Pup91]. Warum braucht man Defaults zur Negation? Mit Defaults werden die Formulierungen einfacher und natürlicher, insbesondere auch für 4 KAPITEL 1. EINFÜHRUNG Nicht-Logiker. Es ist etwa naheliegend, eine Tabelle als Menge von Fakten zu notieren: bestellung(meier , taschenlampe). bestellung(schmidt, radio). bestellung(schmidt, batterien). Angenommen, man fragt nun nach den Kunden, die eine Taschenlampe, aber keine Batterien bestellt haben: bestellung(X, taschenlampe) ∧ ¬bestellung(X, batterien). Logisch gesehen würde diese Aussage für X = meier nicht folgen. Dazu müßte man erst spezifizieren, daß die explizit angegebenen Tupel die einzigen sind, also das positive Wissen über die Tabelle vollständig ist. Natürlich kann man das in der Logik formulieren, es ist nur etwas komplizierter: bestellung(X, Y ) ↔ X = meier ∧ Y = taschenlampe ∨ X = schmidt ∧ Y = radio ∨ X = schmidt ∧ Y = batterien. Diese Formulierung ist allerdings tatsächlich noch nicht ausreichend. Man muß erst noch angeben, daß je zwei verschiedene Namen auch verschiedene Objekte bezeichnen, also daß etwa meier 6= schmidt. Dies ist, obwohl prinzipiell möglich, doch praktisch etwas mühsam (die Anzahl der Formeln dieser Art wächst quadratisch in der Anzahl der Konstanten). Natürlich könnte man Abkürzungen verwenden. Die einfachste Abkürzung wäre wohl, für alle nicht explizit genannten Paare von Kunden und Waren die entsprechende Negation zu ergänzen, also z.B. ¬bestellung(meier , batterien). Aber das wäre ja gerade wieder ein Default. Warum sollten Defaults explizit spezifiziert werden? Nachdem man sich von der Nützlichkeit der Negations-Defaults überzeugt hat, könnte man sie natürlich einfach fest in den Antwortalgorithmus einbauen (das ist die momentan übliche Lösung). Allerdings ist die genaue Semantik nicht mehr so klar, wenn man den Bereich der Hornklauseln verläßt. Es reicht dann nämlich nicht mehr aus, einfach die Negation jedes nicht implizierten Faktums anzunehmen. Dies würde zu Widersprüchen führen [Rei78]. Ein Beispiel ist kann fliegen(X) ← vogel (X) ∧ ¬ausnahme(X). vogel (tweety). Hier folgt weder kann fliegen(tweety) (tweety könnte eine Ausnahme sein, beispielsweise ein Pinguin) noch ausnahme(tweety) (darüber ist in der Datenbank nichts gesagt). Trotzdem kann man nicht gleichzeitig ¬kann fliegen(tweety) und ¬ausnahme(tweety) annehmen, denn dies widerspricht der angegebenen Regel. 5 Prolog löst dieses Problem, indem es die Schreibweise der Regel auswertet und dem Negationsdefault für das im Kopf auftretende Prädikat geringere Priorität gibt als denen der Rumpfprädikate. In diesem Fall würde sich also ¬ausnahme(tweety) durchsetzen. Hätte man die Regel dagegen in der logisch äquivalenten Schreibweise ausnahme(X) ← vogel (X) ∧ ¬kann fliegen(X) formuliert, so wäre es gerade umgekehrt, es würde ausnahme(tweety) angenommen. Es findet also auch bisher schon eine Spezifikation der Defaults statt, wenn auch nur ihrer Prioritäten. Diese Spezifikation ist aber implizit und in den Regeln verborgen, redundant und möglicherweise inkonsistent. Dabei ist es doch eher dem Prädikat ausnahme zuzuordnen, daß Ausnahmen eben selten sind. Die zweite Schreibweise sollte dem keinen Abbruch tun. Wesentlich größer sind die Schwierigkeiten bei der Darstellung von unvollständiger Information. Es gibt eine ganze Reihe unterschiedlicher Vorschläge für die Semantik der impliziten Negation. Explizite Defaults helfen nun einerseits, diese Vorschläge zu erklären und miteinander zu vergleichen, und andererseits, dem Benutzer oder Datenbankentwerfer die Wahl zu lassen, welche Vervollständigung er verwenden will (entsprechend der jeweiligen Anwendung). Wozu sind Defaults noch nützlich? Die implizite Negation ist aber keineswegs die einzige Anwendung von Defaults. Defaults können etwa auch ein Mittel zur Erklärung sein. Es ist ja durchaus üblich, erst die allgemeine Regel anzugeben, und dann die Ausnahmen. So sagt man etwa Vögel ” können fliegen“: kann fliegen(X) ← vogel (X). Das ist natürlich eine stark vergröberte Aussage, da es zahlreiche Ausnahmen gibt: ¬kann fliegen(X) ← pinguin(X). ¬kann fliegen(X) ← strauss(X). ¬kann fliegen(X) ← flügel gebrochen(X). Trotzdem ist die Trennung in die allgemeine Regel und in ihre Ausnahmen sehr hilfreich für die Darstellung (vermutlich sind die genannten Ausnahmen ja noch nicht einmal vollständig). Mit Defaults kann man dieses Beispiel so aufschreiben wie hier gezeigt. Man hat nur darauf zu achten, daß eine Ausnahme eine höhere Priorität als die allgemeine Regel hat, so daß sie sich durchsetzt, wenn beide anwendbar sind. Wenn man nun nicht mehr die einzelnen Regeln betrachtet, sondern die spezifizierten Objekte, so entspricht dies einer Spezialisierung. Man geht aus von einer einfachen Spezifikation eines typischen Vogels“ und verfeinert sie schrittweise zu einem typischen ” Pinguin, zu einem typischen Neuseeländischen Goldschopfpinguin, und schließlich zu einem speziellen Exemplar dieser Art. 6 KAPITEL 1. EINFÜHRUNG In objekt-orientierten Sprachen wurde zur Unterstützung solcher Vorgehensweisen der Mechanismus der Vererbung eingeführt. Die Klasse der Pinguine sollte etwa von der Oberklasse der Vögel die Eigenschaft erben, Federn zu haben. Dagegen wird die Eigenschaft, fliegen zu können, überschrieben“. ” Allerdings ist die Programmierung in objekt-orientierten Systemen doch eher operational, und es fehlt eine formale Semantik. Daher besteht der Wunsch, die deklarative Vorgehensweise deduktiver Datenbanken mit den Strukturierungsmöglichkeiten objektorientierter Systeme zu kombinieren. Als formale Semantik für die Vererbung bieten sich dabei Defaults an. Ein weiterer Anwendungsbereich ist die Formalisierung von Änderungs-Operationen. Wenn man die Auswirkung einer Aktion beschreibt, erklärt man natürlich nur die Änderung, und geht davon aus, daß alle nicht erwähnten Dinge unverändert bleiben (Rahmenregel). Eine genaue Formalisierung ist aber überraschend schwierig, und hier können Defaults mit einer präzisen Semantik eine große Hilfe sein. Defaults unterscheiden sich von normalen Formeln darin, daß auch inkonsistente Mengen oder triviale Folgerungen noch einen Informationsgehalt haben. Auf diese Weise kann man Vorkehrungen zur Fehlertoleranz treffen. Ein Beispiel wären die beiden Aussagen Der Zug aus Dortmund kommt in Hannover um 959 an“ und Falls der Zug aus Dortmund ” ” nicht um 959 ankommt, wartet der Anschlußzug nach Braunschweig maximal 10 Minuten“. Logisch gesehen wäre die zweite Aussage redundant. Handelt es sich aber um Defaults, enthält sie eine wesentliche Information für den Fall, daß die erste Aussage überschrieben wird. Auch im Zusammenhang mit unvollständiger Information sind Defaults wichtig. Hier ist es ja häufig nötig, Folgerungen zu ziehen und tätig zu werden, obwohl man sich nicht davon überzeugen kann, daß die Ausnahmen tatsächlich nicht zutreffen. Vielleicht kennt man nicht einmal alle Ausnahmen. Warum sollte man allgemeine Vervollständigungen betrachten? Sobald man mehr als eine Semantik für Defaults kennt, ist die Frage naheliegend, ob es noch weitere gibt, die vielleicht in irgendeinem Sinne besser sind. Die einzige systematische Art, an diese Frage heranzugehen, ist doch offenbar zunächst den ganzen Bereich zu betrachten, aus dem die Semantiken stammen können, eben die Vervollständigungen. Diesen Bereich muß man nun mit Hilfe von Eigenschaften filtern“, ” bis nur noch wenige Vervollständigungen übrig bleiben, oder man zumindest einen gewissen Überblick gewonnen hat. Solche Eigenschaften können darüber hinaus auch nützlich sein, die bekannten Semantiken zu bewerten oder zu vergleichen. Schließlich kann man sich aber auch umgekehrt die Frage stellen, ob die hier betrachteten Defaults überhaupt das geeignete Mittel sind, Vervollständigungen zu beschreiben. Man kann ja auch Vervollständigungen als den grundlegenderen Begriff ansehen, denn sie beschreiben direkt, wie die Anfragen beantwortet werden sollen. In dieser Sichtweise 7 wären die Defaults ein bloßes Mittel, um Vervollständigungen aufzuschreiben. Es stellen sich dann solche Fragen wie Können alle vernünftigen Vervollständigungen durch De” faults beschrieben werden?“ Dies ist insbesondere interessant, weil in der Literatur auch andere Formalismen für nichtmonotones Schließen vorgeschlagen wurden, die nicht auf Defaults in dem hier zugrundegelegten Sinn basieren. Ist diese Theorie auch praktisch einsetzbar? Lange Zeit schien es so, als wäre der praktische Einsatz allgemeiner Formeln und Defaults aufgrund des viel zu hohen Aufwands unmöglich. Auf der anderen Seite haben sich eingeschränkte Formeln und Defaults bei deduktiven Datenbanken und in der logischen Programmierung bewährt. Daraus ergeben sich zwei mögliche Lösungsansätze: Einerseits kann man allgemeine Formeln und Defaults als Mittel der Spezifikation ansehen. Durch die mächtigen Ausdrucksmöglichkeiten werden die Formulierungen wesentlich einfacher, so daß es sich also auszahlt, beim Entwurf deduktiver Datenbanken oder anderer wissensbasierter Systeme mehrstufig vorzugehen: Zuerst entwirft man das System in einer mächtigen Logik. Nachdem die mit dem Anwendungsbereich zusammenhängenden Probleme gelöst sind, kann man sich auf die Implementierung konzentrieren. Die geschieht in einer effizienten Logik. Es ist dabei nur sicherzustellen, daß die Transformation zwischen den beiden Ebenen die Bedeutung erhält. Ein entsprechender Ansatz zur Überwachung temporaler Integritätsbedingungen wurde in [Lip89] vorgeschlagen. Ein erster Versuch, allgemeine Klauseln und eine mächtigere Vervollständigung nach Prolog zu übersetzen, ist [GL89]. Allerdings ist dieser Ansatz noch recht eingeschränkt. Trotzdem ist klar, daß eine solche Transformation prinzipiell möglich sein muß; schlimmstenfalls ist das Transformationsergebnis ein allgemeiner Beweiser, formuliert in Prolog, zusammen mit den unveränderten Klauseln als Eingabedaten. Von hier aus kann man jetzt versuchen, den Beweiser immer weiter auf die tatsächliche Eingabe zu spezialisieren (partielle Auswertung). Der andere Lösungsansatz ist, Antwortalgorithmen zu entwickeln, die den bewährten Ansätzen aus der logischen Programmierung und den deduktiven Datenbanken möglichst ähnlich sind. Tatsächlich werden ja auch in einer Logik mit den erweiterten Möglichkeiten große Teile der Spezifikation aus den Standard-Hornklauseln bestehen. Ziel muß es also sein, daß der Antwortalgorithmus für die eingeschränkte Logik kaum Mehraufwand bedeutet, und eine sparsame Verwendung der neuen Möglichkeiten auch nur geringe Effizienzverluste mit sich bringt ( Stetigkeit“). ” In der vorliegenden Arbeit wird dieser zweite Lösungsansatz angestrebt. Es gibt aber enge Beziehungen zwischen beiden Vorgehensweisen: Hat man einen Algorithmus, der die Anteile der einfachen Logik effizient behandelt, so müßte man nicht die ganze Spezifikation transformieren, sondern könnte sich je nach Effizienzanforderung auf die wichtigsten Teile beschränken. Außerdem bleibt die Spezifikation nach jeder Teiltransformation ausführbar und kann damit gestestet werden. Andererseits wäre eine automatische Transformation nach Prolog natürlich ein Algorithmus im Sinne des zweiten Lösungsansatzes. 8 KAPITEL 1. EINFÜHRUNG Natürlich können hier nur einige Grundlagen entwickelt werden, da es bis zum skizzierten Ziel vermutlich noch ein weiter Weg ist. Konkret werden hier zwei Algorithmen vorgeschlagen: Der erste ist der bottom-up“ ” Methode der Anfrageauswertung in deduktiven Datenbanken recht ähnlich, insbesondere geht er also mengenorientiert vor und vermeidet dadurch Mehrfacharbeit. Im Gegensatz zur klassischen bottom-up“ Methode arbeitet er aber mit allgemeinen Klauseln und ” expliziten Defaults. Der zweite Algorithmus ist ein top-down“ Beweiser, arbeitet also zielgerichtet. Er ” weist gewisse Ähnlichkeiten zur SLDNF-Resolventenmethode von Prolog auf. In der Literatur gibt es schon einige vergleichbare Algorithmen [Prz89, Gin89, BG89]. Der hier vorgeschlagene Ansatz hat den Vorteil, die Anwendbarkeit der Defaults so früh wie möglich zu testen (entsprechend der Auswertung der Negationen in Prolog). Dies ist auch nötig, um disjunktive Antworten berechnen zu können, denn diese Antworten können gerade durch Fallunterscheidungen bei den Defaults zustande kommen. Außerdem ist der hier angegebene Algorithmus auch auf die vorsichtige CWA“ anwendbar, und es wird skiz” ziert, wie er sich auf partiell geordnete Defaults erweitern läßt. Von dem top-down“ Ansatz gibt es schon erste Implementierungen [Ern92, Bra92a], ” eine Implementierung des bottom-up“ Verfahrens ist momentan in der Entstehung be” griffen [Bri92]. Eine Untersuchung anderer nichtmonotoner Beweissysteme [DDFM90] zeigt, daß solche Implementierungen dringend nötig sind, denn bisher scheint die Praxis hinter der Theorie doch deutlich zurück zu sein. Gliederung der Arbeit Im Kapitel 2 werden Grundbegriffe verallgemeinerter deduktiver Datenbanken eingeführt. Es werden dabei häufig auch Alternativen diskutiert, um den hier verfolgten Ansatz in einen größeren Rahmen einzubetten. Für die Semantik der Defaults wird der Begriff der Vervollständigung mit drei äquivalenten Formalisierungen eingeführt. Die Frage, welche Vervollständigungen einer gegebenen Menge von Defaults zugeordnet werden soll, ist gerade der Gegenstand späterer Untersuchungen. Kapitel 3 enthält einige Anwendungsbeispiele für Defaults aus den drei Bereichen implizite Negation, Vererbung in objekt-orientierten Ansätzen und Semantik von Änderungsoperationen. Damit soll motiviert werden, daß Defaults in deduktiven Datenbanken und ihren Erweiterungen nützlich sind. Außerdem wird klar werden, daß es mehr als eine vernünftige Semantik von Defaults gibt, so daß also eine echte Auswahl möglich ist, die einen genaueren Vergleich erfordert. In Kapitel 4 werden zunächst abstrakt alle denkbaren Semantiken von Defaults betrachtet, und einige Anforderungen an vernünftige Semantiken aufgestellt. So wird man etwa wünschen, daß typische Ableitungsregeln der logischen Folgerung gültig bleiben. Auch gibt es einige unstrittige Eigenschaften für die Berücksichtigung von Defaults. In Kapitel 5 werden dann im wesentlichen zwei Semantiken für Defaults vorgeschlagen, die minimale Modelle“-Semantik und die vorsichtige CWA“. Es werden die Eigenschaf” ” 9 ten dieser Semantiken untersucht und ihre Beziehung zueinander geklärt. Zum Vergleich werden schließlich auch noch weitere Semantiken definiert, unter anderem eine Verallgemeinerung der originalen CWA. Im Kapitel 6 werden zwei Antwort-Algorithmen vorgestellt, wobei einer top-down“ ” arbeitet (entsprechend Prolog) und einer bottom-up“ (wie üblich bei deduktiven Daten” banken). Diese Algorithmen sind sowohl auf die minimale Modelle“-Semantik als auch ” die vorsichtige CWA“ anwendbar. ” Schließlich werden in Kapitel 7 einige Perspektiven für die zukünftige Arbeit aufgezeigt. Allgemeine Literaturhinweise Lehrbücher der mathematischen Logik sind etwa [BN77, EFT86, Sch87, BW91]. Grundkenntnisse im automatischen Beweisen werden in [CL73, Sch87, HK89] vermittelt. Übersichtsartikel und Lehrbücher zu deduktiven Datenbanken sind [GMN84, Rei84, Ull88, Ull89, HPRV89, NT89, CGT90, Gog90]. Die Grundlagen des logischen Programmierens finden sich in [Llo87, She88], etwas knapper auch in manchen Prolog-Lehrbüchern, z.B. [NM90]. Die neueren Vorschläge zur Semantik der Negation sind etwa in [VGRS91, Prz91] beschrieben. Zu den verschiedenen Formalismen des nichtmonotonen Schließens gibt es inzwischen eine ganze Reihe von Monographien [Rei85, Bes88, Bra88, Eth88, Luk90, Bre91]. Alle diese Bücher basieren aber nicht auf einem solchen abstrakten Ansatz, wie er hier verfolgt wird. Die Zielsetzung ist auch eine andere: In der vorliegenden Arbeit wird kein Überblick über die bekannten nichtmonotonen Logiken angestrebt, sondern es wird eine Semantik für einfache Defaults gesucht. 10 Kapitel 2 Deduktive Datenbanken Ziel dieses Kapitels ist es, Syntax und Semantik eines erweiterten deduktiven Datenbanksystems zu beschreiben. Im einzelnen sind also Begriffe wie Signatur, Formel, Default, Anfrage und korrekte Antwort zu definieren. Für die Semantik der Defaults wird hier mit dem Begriff der Vervollständigung nur ein allgemeiner Rahmen angegeben, der dann als Grundlage für die Untersuchungen in späteren Kapiteln dient. Es ist ja gerade der Gegenstand dieser Arbeit, verschiedene Semantiken von Defaults zu vergleichen. 2.1 Die verwendete Logik Bei einer deduktiven Datenbank sind fast alles logische Formeln: die Axiome, die Defaults und die Anfragen. Daher muß zunächst geklärt werden, welche Logik diesen Formeln zugrunde liegen soll. Die Auswahl ist hier inzwischen recht groß, insbesondere in den Bereichen komplexe Objekte [NT89, GZC89, HS90, Kos90], Typ-Systeme [KW91, YS91], Dynamik [Lip89, BRL91, Ger91], epistemische Quantoren ( es ist bekannt, . . .“) [Moo85, Rei88] ” und deontische Konstrukte ( es ist erlaubt, . . .“) [MWW89, FM91]. ” Ziel dieser Arbeit ist allerdings die Untersuchung von Defaults, und nicht von besonders mächtigen oder benutzerfreundlichen Logiken. Daher wurde eine weitgehend klassische“ Logik gewählt, nämlich mehrsortige Prädikatenlogik, eingeschränkt auf quan” torenfreie Formeln ohne Funktionssymbole, aber mit eingebauten“ Prädikaten wie =“ ” ” und <“. ” Natürlich sollte langfristig das Ziel sein, die Resultate dieser Arbeit auf andere Logiken zu übertragen. Vermutlich ist das nicht einmal besonders schwer, zumal sich viele der Erweiterungen auch in der Prädikatenlogik simulieren lassen. Man sollte aber bedenken, daß die Erfolge des relationalen Datenmodells oder von Programmiersprachen wie C“ und ” Pascal“ auf ihrer Einfachheit beruhen. Dagegen ist bei den momentan sehr beliebten ” epistemischen Logiken noch keineswegs klar, welches der vielen vorgeschlagenen nichtäquivalenten Axiomensysteme denn benutzt werden soll [Mar91]. Das zeugt doch davon, 11 12 KAPITEL 2. DEDUKTIVE DATENBANKEN daß sie zumindest zum jetzigen Zeitpunkt noch keine stabile Basis für Erweiterungen darstellen. Eine Alternative wäre natürlich gewesen, Defaults unabhängig von der verwendeten Logik zu untersuchen, so wie das etwa in [BRL91] geschehen ist. Diese Allgemeinheit muß aber mit Einschränkungen in anderer Hinsicht erkauft werden: So kann man etwa nicht voraussetzen, daß die Logik über Junktoren wie ∧“ und ∨“ verfügt, die aber für ” ” die Eigenschaften in Kapitel 4 dringend benötigt werden. Außerdem basieren die Deduktionsalgorithmen, die in Kapitel 6 zur Anfrage-Auswertung eingesetzt werden, auf der Prädikatenlogik. Natürlich könnte man versuchen, die Eigenschaften und die Algorithmen entsprechend zu parametrisieren, aber die größere Allgemeinheit würde keineswegs zu einer größeren Übersichtlichkeit beitragen. Der Verzicht auf Funktionssymbole ist im Datenbankbereich nicht unüblich. Das Hauptproblem von Funktionssymbolen ist, daß sie zu unendlichen Bereichen führen. Dann ist aber nicht mehr jede Menge von Interpretationen durch eine Formelmenge zu beschreiben, was zu Schwierigkeiten bei der modelltheoretische Sichtweise einer Vervollständigung führt. Die eigentlich wesentlichen Ergebnisse würden dann durch viele Zusatzannahmen verschleiert. Auch bei der Anfrage-Auswertung käme es zu zahlreichen Schwierigkeiten; so wären etwa die korrekten Antworten ohne weitere Einschränkungen nicht mehr rekursiv aufzählbar. Eine Einschränkung der zulässigen Axiome, Defaults und Anfragen kann sicherlich viele dieser Probleme ausschließen. Für Prolog existieren schon zahlreiche entsprechende Vorschläge, wie z.B. [Plü90]. In einigen Punkten geht die hier verwendete Logik aber auch über das Mindestmaß hinaus. Zunächst sind beliebige Klauseln zugelassen (sogar beliebige quantorenfreie Formeln), nicht nur definite Hornklauseln wie in reinem Prolog. Der Grund hierfür ist, daß Disjunktionen zur Repräsentation von unvollständiger Information nötig sind, außerdem können auch rein negative Klauseln sehr natürlich sein (z.B. Pinguine können nicht flie” gen“). Schließlich sind Defaults nur interessant, wenn sie den Axiomen und anderen Defaults widersprechen können. Eine Menge von definiten Hornklauseln ist aber immer konsistent. Die zweite Erweiterung ist die Mehrsortigkeit, die zumindest im Datenbankbereich üblich ist. Sie erlaubt eine einfache syntaktische Typprüfung, reduziert also das Risiko von Eingabefehlern. Es ist auch möglich, stattdessen Typprädikate“ zu verwenden [Llo87], ” die Mehrsortigkeit ist also keine echte Steigerung der Ausdrucksfähigkeit. Aber es ist einfacher, einen speziellen Mechanismus für die Typprüfung zu verwenden als sich auf die allgemeine Deduktion abstützen zu müssen. Außerdem führt sie zu keinen zusätzlichen Schwierigkeiten. Die dritte Erweiterung ist die Berücksichtigung von Datentypen und eingebauten Prädikaten, insbesondere der Gleichheit. Einerseits sind Datentypen wichtig, wenn man in den deduktiven Datenbanken eine direkte Verallgemeinerung der relationalen sehen will. Standardprädikate wie <“ werden schon in den einfachsten Anfragen verwendet, ” man kann sie also auch bei nur mäßiger Praxisnähe nicht einfach ignorieren. Allerdings erhält man durch die Datentypen wieder unendliche Bereiche (z.B. alle Zeichenketten oder 2.1. DIE VERWENDETE LOGIK 13 Zahlen). Hier hilft eine Einschränkung der zulässigen Anfragen, Axiome und Defaults auf sogenannte bereichsbeschränkte“ Formeln. Dies ist im Datenbankbereich üblich, aber ” dieser Begriff muß hier natürlich an die Erweiterung auf quantorenfreie Formeln und allgemeine Defaults angepaßt werden. Im Endeffekt kann man dann beweisen, daß es genügt, Herbrandmodelle über den aktuell vorkommenden Konstanten zu betrachten. Damit ist die Einführung der Datentypen keine echte Verallgemeinerung, aber doch von großem praktischen Nutzen. Die Gleichheit wird hier als eingebautes Prädikat behandelt. Sie ist wichtig, um Schlüsselbedingungen formulieren zu können. In relationalen Datenbanken ist diese Form von Integritätsbedingungen ja vielfach bewährt, und natürlich sind sie in deduktiven Datenbanken mindestens ebenso nützlich. Man erhält so die Möglichkeit, nicht-generierende Funktionssymbole (etwa vater von“) durch Prädikate zu simulieren. Es sei an dieser ” Stelle noch bemerkt, daß Defaults die Berücksichtigung von Integritätsbedingungen auch bei der Anfrage-Auswertung erfordern, nicht nur bei Änderungsoperationen. Der Grund ist, daß Defaults Integritätsbedingungen widersprechen können, und dann natürlich nicht angenommen werden dürfen. Bisher werden Integritätsbedingungen höchstens im Rahmen der Optimierung [Wüt91] bei der Anfrageauswertung berücksichtigt. Natürlich wäre es auch möglich, ein benutzerdefiniertes Prädikat equal“ einzuführen, ” dem mit Axiomen die Bedeutung der Gleichheit gegeben wird. Dies führt aber zu erheblichem Aufwand bei der Anfrageauswertung, so daß das Gleichheitsprädikat in automatischen Beweisern normalerweise mit einer speziellen Deduktionsregel behandelt wird, der Paramodulation [CL73]. Außerdem vereinfacht es die Spezifikationsarbeit, wenn ein gewisser Grundstock fest interpretiert wird, also nicht durch Formeln unabsichtlich geändert werden kann. Aus demselben Grund ist hier die Sortierung der Prädikate und Konstanten in die Logik eingebaut. Eine Logik hat im allgemeinen vier Komponenten [GB84]: die Signaturen, die Interpretationen, die Formeln, und die erfüllt“-Relation zwischen Interpretationen und ” Formeln. Diese Komponenten sollen nun für die hier verwendete Logik definiert werden, wobei besonders auf die Bedeutung aus Datenbanksicht eingegangen wird. Signaturen In den Formeln einer deduktiven Datenbank kommen Bezeichner wie angestellter“ vor, ” mit denen der Bezug zur Anwendungswelt hergestellt werden soll. Die Deklaration dieser Bezeichner geschieht in Form einer Signatur. Zur Vereinfachung der Definitionen enthalten die Signaturen hier auch die vordefinierten Symbole der Datentypen. Natürlich würden diese in einer praktischen Spezifikationssprache nicht explizit deklariert. In der Prädikatenlogik muß eine Signatur offensichtlich mindestens die Prädikate (Relationssymbole) festlegen, die in den Formeln verwendet werden können. Dies ist auch bei einem relationalen Datenbanksystem erforderlich. Dagegen werden hier keine Attributnamen benötigt, weil die Argumente der Prädikate wie im Bereichskalkül über ihre Position identifiziert werden. 14 KAPITEL 2. DEDUKTIVE DATENBANKEN Natürlich können in den Formeln Konstanten auftreten, wie etwa Zeichenketten oder Zahlen. Neben diesen Datentyp-Konstanten ist es möglich, Konstanten für Objekte der Anwendungswelt einzuführen (etwa für Personen, Waren, usw.). Dies ist im relationalen Modell nicht vorgesehen und entspricht der Möglichkeit des Entity-Relationship“” Modells, über diese Objekte selbst reden zu können und nicht nur über ihre Namen. Solche Konstanten können zu Sorten wie person“ oder ware“ zusammengefaßt wer” ” den. Zusammen mit den für die Prädikate spezifizierten Argumentsorten ist so eine Typprüfung möglich. Zur Vereinfachung ist hier für jedes Prädikat nur eine Sortenangabe zulässig, praktische Implementierungen werden wohl überladene Bezeichner anbieten. Es werden hier nur bereichsbeschränkte“ Formeln (s.u.) zugelassen, um nur endliche ” Modelle betrachten zu müssen. Für ihre Definition ist die Unterscheidung zwischen positiv, negativ oder gar nicht bindenden Prädikaten nötig. Der klassische Fall sind dabei die positiv bindenden Prädikate — sie können so interpretiert werden, daß sie höchstens für die explizit vorkommenden Konstanten wahr sind. Ein Beispiel für ein nicht bindendes Prädikat wäre <“, das immer eine unendliche Relation beschreibt. Negativ bin” dende Prädikate sind aus Symmetriegründen interessant, da man sich jetzt nicht mehr auf Hornklauseln und implizite Negation beschränken will. So ist es etwa möglich, sowohl ein Prädikat ausnahme“ (positiv bindend) zu verwenden als auch seine Negation normal“ ” ” (negativ bindend). Grundlage für eine formale Definition von Signatur“ ist ein Alphabet: ” Definition 2.1.1 (Alphabet): Ein Alphabet A ist eine Menge, deren Elemente Symbole oder Zeichen heißen, und das mindestens Zeichen für die Junktoren (∧, ∨, . . . ), Interpunktionszeichen und Variablen enthält. Die Menge dieser logischen Zeichen“ wird ” mit AL bezeichnet, die Menge der Variablen mit AV (AV ⊆ AL ). Typischerweise sind die Symbole Folgen von Buchstaben und Ziffern oder einzelne Sonderzeichen. Die Variablen werden hier als logische Zeichen aufgefaßt und können etwa alle mit einem Großbuchstaben beginnenden Bezeichner sein. Definition 2.1.2 (Signatur): Eine Signatur Σ = hS, C, P, γ, π, βi besteht aus • S ⊆ A − AL , der Menge der Sorten, • C ⊆ A − (AL ∪ S), der Menge der Konstanten, • P ⊆ A − (AL ∪ S ∪ C), der Menge der Prädikate, • γ: C → S, der Sortierung der Konstanten, • π: P → S ∗ , der Sortierung der Prädikate, • β: P → {+, −, ∗}, der Bindungsangabe für die Prädikate. Es wäre naheliegend, die Signatur mit dem Datenbankschema der deduktiven Datenbank zu identifizieren. Das ist sicherlich zu einem gewissen Grad auch richtig, so ist ja etwa die Menge der Prädikate normalerweise nicht zeitabhängig. Aber bei den Konstanten ist es durchaus vorstellbar, daß Änderungen eintreten, wenn man etwa für jede Ware in einem Angebot eine Konstante eingeführt hat. 2.1. DIE VERWENDETE LOGIK 15 Umgekehrt könnte man die in der Datenbank abgespeicherten Formeln (s.u.) als Datenbankzustand“ ansehen. Aber auch das ist nur bedingt richtig, denn normaler” weise werden sich nur die Fakten ändern, die Regeln für abgeleitete Prädikate bleiben meist konstant. Die Unterscheidung zwischen Schema und Zustand kann also nur vom Datenbankentwerfer vorgenommen werden. Definition 2.1.3 (Teilsignatur): Eine Signatur Σ1 = hS1 , C1 , P1 , γ1 , π1 , β1 i heißt Teilsignatur einer Signatur Σ2 = hS2 , C2 , P2 , γ2 , π2 , β2 i (Σ1 ⊆ Σ2 ) genau dann, wenn • S1 ⊆ S2 , C 1 ⊆ C 2 , P 1 ⊆ P 2 , • γ1 (c) = γ2 (c) für alle c ∈ C1 , • π1 (p) = π2 (p) für alle p ∈ P1 und • β1 (p) = β2 (p) für alle p ∈ P1 . Zwei Signaturen Σ1 und Σ2 heißen kompatibel, wenn es eine gemeinsame Teilsignatur Σ von Σ1 und Σ2 gibt mit (S ∪ C ∪ P ) = (S1 ∪ C1 ∪ P1 ) ∩ (S2 ∪ C2 ∪ P2 ). Dann heißt Σ der Schnitt von Σ1 und Σ2 . Es sei nun eine Signatur ΣD der Datentyp-Konstanten und Prädikate gegeben, wobei alle Prädikate den Bindungstyp ∗“ haben (sie beschreiben ja normalerweise auch unendliche ” Relationen). Im folgenden kann davon ausgegangen werden, daß alle auftretenden Signaturen Σ mit ΣD kompatibel sind (die Resultate gelten sowohl mit dieser Einschränkung als auch ohne sie). Naheliegender wäre die Forderung ΣD ⊆ Σ. Dies ist aber problematisch, da ΣD typischerweise unendlich ist und man insbesondere die endliche Signatur der explizit vorkommenden Konstanten betrachten möchte. Interpretationen Die Semantik einer Signatur Σ ist die Menge der Interpretationen von Σ, die den Zeichen der Signatur eine Bedeutung zuordnen. Dabei werden wie üblich Sorten als Mengen interpretiert, Konstanten als Elemente dieser Mengen und Prädikate als Relationen auf diesen Mengen. Unter den Interpretationen sollten sich auch die Entsprechungen zu Zuständen des Ausschnitts der realen Welt befinden, der mit der Datenbank modelliert werden soll. Interpretationen, die keinem möglichen Zustand der realen Welt entsprechen, können eventuell noch über Integritätsbedingungen ausgeschlossen werden (s.u.). 16 KAPITEL 2. DEDUKTIVE DATENBANKEN Definition 2.1.4 (Interpretation): Eine Σ-Interpretation I bestimmt • eine Menge I[[s]] für jede Sorte s ∈ S, wobei I[[s1 ]] ∩ I[[s2 ]] = ∅ für s1 6= s2 , • ein Element I[[c]] ∈ I[[s]] für jede Konstante c ∈ C mit γ(c) = s — dabei sei für zwei verschiedene Konstanten c1 , c2 ∈ C auch I[[c1 ]] 6= I[[c2 ]] — und • eine Relation I[[p]] ⊆ I[[s1 ]] × · · · × I[[sn ]] für jedes Prädikat p ∈ P mit π(p) = s1 . . . sn . Man beachte, daß nicht (wie sonst in der Logik üblich) gefordert wird, daß die Mengen I[[s]] nichtleer sind. Es ist ja im Datenbankbereich sehr wohl möglich, daß zunächst noch gar keine Personen oder Waren eingetragen sind. Allerdings muß man dann berücksichtigen, daß bestimmte Schlüsse nicht mehr möglich sind. So ist etwa {p(X), ¬p(X)} nicht mehr inkonsistent, sondern kann von einem Modell mit leerem Individuenbereich erfüllt werden. Hier hilft aber die Bereichsbeschränkung (s.u.), die gerade solche Fälle verbietet. Von den Konstanten wird verlangt, daß sie als verschiedene Elemente interpretiert werden, d.h. es werden eindeutige Namen vorausgesetzt (UNA, unique names assumption“). ” Dies ist in erster Linie eine Hilfe bei der Spezifikation, um so bestimmte Überraschungen im Zusammenspiel mit den Defaults auszuschließen. Bei Nullwerten oder Skolemkonstanten gilt diese Annahme allerdings nicht, hier kann man sich mit einem benutzerdefinierten Gleichheitsprädikat helfen. Eine letzte Forderung in der Definition von Interpretation ist schließlich noch, daß die Sorten disjunkt sind. Der Grund hierfür ist, daß man nur so Formeln mit Typfehlern wirklich als sinnlos zurückweisen kann. Da nur Allaussagen betrachtet werden (s.u.), brauchen nur Herbrand-Interpretationen betrachtet werden, bei denen die Interpretation der Sorten und Konstanten fest vorgegeben ist. Es ist jedoch trotzdem nützlich, den allgemeinen Begriff der Interpretation zu kennen, da nur diese direkt den Situationen in der Anwendungswelt entsprechen. Definition 2.1.5 (Herbrand-Interpretation): Eine Interpretation I heißt HerbrandInterpretation, wenn • I[[s]] = {c ∈ C | γ(c) = s} für alle s ∈ S, und • I[[c]] = c für alle c ∈ C. Die Menge aller Herbrand-Interpretationen über Σ wird mit IΣ bezeichnet. Herbrand-Interpretationen lassen also nur die Interpretation der Prädikate offen. Da hier ohnehin eindeutige Namen vorausgesetzt werden, unterscheiden sich allgemeine ΣInterpretation und Herbrand-Interpretation bis auf Isomorphie nur darin, daß allgemeine Interpretationen größere Individuenbereiche I[[s]] haben können. Für die Folgerungsbeziehung und die Konsistenz von Formelmengen reicht es aus, nur Herbrand-Interpretationen zu betrachten. Der Grund hierfür ist die Einschränkung auf quantorenfreie Formeln (also Allaussagen) — schränkt man die Individuenbereiche eines Modells ein, so sind die Allaussagen ja erst recht erfüllt, man erhält also wieder ein Modell. Bei Herbrand-Interpretationen entspricht dies einer Einschränkung der Signatur: 2.1. DIE VERWENDETE LOGIK 17 Definition 2.1.6 (Redukt von Herbrand-Interpretationen): Seien Σ ⊆ Σ 0 zwei Signaturen und I 0 eine Σ0 -Herbrand-Interpretation. Das Σ-Redukt von I 0 ist die ΣHerbrand-Interpretation I mit I[[p]] := (c1 , . . . , cn ) ci ∈ C, γ(ci ) = si , (c1 , . . . , cn ) ∈ I 0 [[p]] für alle p ∈ P und s1 . . . sn = π(p). Bei der Erweiterung der Individuenbereiche bzw. der Signatur werden dagegen nicht unbedingt aus Modellen wieder Modelle. Bei bereichsbeschränkten Formeln (s.u.) gilt dies aber, wenn man die positiv bindenden Prädikate für neue Konstanten als falsch und die negativ bindenden Prädikate als wahr interpretiert. Definition 2.1.7 (Erweiterung von Herbrand-Interpretationen): Seien Σ ⊆ Σ 0 zwei Signaturen und I eine Σ-Herbrand-Interpretation. Ein Σ0 -Herbrand-Interpretation I 0 heißt Σ0 -Erweiterung von I genau dann, wenn das Σ-Redukt von I 0 gerade I ist. Eine Σ0 -Erweiterung I 0 heißt Standard-Erweiterung genau dann, wenn für alle Predikate p0 ∈ P 0 mit β 0 (p) = + und sortengerechte Konstanten c01 , . . . , c0n ∈ C 0 gilt: c0i 6∈ C für mindestens ein i =⇒ (c01 , . . . , c0n ) 6∈ I 0 [[p0 ]] und entsprechend für alle p0 ∈ P 0 mit β 0 (p0 ) = −: c0i 6∈ C für mindestens ein i =⇒ (c01 , . . . , c0n ) ∈ I 0 [[p0 ]]. Natürlich sollten alle Interpretationen die Datentyp-Prädikate richtig interpretieren. Dazu sei eine ΣD -Herbrand-Interpretation ID gegeben, die gerade die übliche Interpretation dieser Symbole beschreibt (bzw. ein isomorphes Bild). Es kann im folgenden von allen Σ-Herbrand-Interpretationen I vorausgesetzt werden, daß das Σ ∩ ΣD -Redukt von I mit dem Σ ∩ ΣD -Redukt von ID übereinstimmt. Formeln Formeln treten in deduktiven Datenbanken als Axiome (Fakten und Regeln), Defaults, Anfragen und Integritätsbedingungen auf. Es werden hier beliebige quantorenfreie Formeln zugelassen. Dies ist einerseits von praktischem Nutzen, andererseits aber auch für die in Kapitel 4 betrachteten Eigenschaften nötig (insbesondere die Umrechnung zwischen modelltheoretischer und syntaktischer Formulierung wäre sonst nicht möglich). Für die Algorithmen wird natürlich wird die übliche Klausel-Darstellung angestrebt, dazu ist allerdings bei Anfragen und Defaults eine Erweiterung der Signatur nötig (s.u.). Die Definitionen von Formeln und Klauseln folgen dem üblichen Aufbau. Dabei wird versucht, zwischen der mathematischen Struktur ( abstrakte Syntax“) und der Repräsen” tation als Zeichenkette ( konkrete Syntax“) zu unterscheiden. ” Definition 2.1.8 (Variablendeklaration): Eine Variablendeklaration für X ⊆ AV ist eine Abbildung Ξ: X → S. Dabei sei X endlich. 18 KAPITEL 2. DEDUKTIVE DATENBANKEN Definition 2.1.9 (Term): Ein (Σ, Ξ)-Term der Sorte s ist entweder • eine Konstante c ∈ C mit γ(c) = s oder • eine Variable X ∈ X mit Ξ(X) = s. Definition 2.1.10 (Atomare Formel): Eine (Σ, Ξ)-atomare Formel besteht aus einem Prädikat p ∈ P und einer Liste t1 . . . tn von (Σ, Ξ)-Termen der Sorten s1 . . . sn = π(p). Atomare Formeln werden meist in der Form p(t1 , . . . , tn ) geschrieben. Bei eingebauten Prädikaten ist eine Infix-Darstellung üblicher, z.B. t1 < t2 oder t1 = t2 + t3 . In objektorientierten Sprachen wird auch die Schreibweise t1 .p(t2 , . . . , tn ) verwendet, wobei der Präfix entfallen kann, wenn er aus dem Kontext bekannt ist. Definition 2.1.11 (Formel): Eine (Σ, Ξ)-Formel (der Stufe i ∈ IN) ist • eine der logischen Konstanten true, false oder • eine atomare (Σ, Ξ)-Formel oder • eine negierte Formel, bestehend aus dem Junktor ¬ und einer (Σ, Ξ)-Formel (einer Stufe < i) oder • eine zusammengesetzte Formel, bestehend aus einem der Junktoren ∧, ∨, →, ←, ↔ und zwei (Σ, Ξ)-Formeln (einer Stufe < i). Eine Σ-Formel besteht aus einer Variablendeklaration Ξ und einer (Σ, Ξ)-Formel (einer Stufe i ∈ IN). Die Menge aller Σ-Formeln wird mit LΣ bezeichnet, die Menge der variablenfreien Σ-Formeln mit L∗Σ . Man beachte, daß keine ∀, ∃-Quantoren zugelassen sind (alle Variablen sind implizit allquantifiziert). Die Stufung dient nur dazu, unendliche Formeln auszuschließen. Formeln werden aufgeschrieben, indem der Junktor bei zusammengesetzten Formeln zwischen die beiden Teilformeln gesetzt wird und sie gegebenenfalls in Klammern eingeschlossen werden. Üblicherweise bindet ¬ am stärksten, danach ∧, anschließend ∨ und zuletzt →, ←, ↔. Die Variablendeklaration wird meist nicht explizit aufgeschrieben, wenn sie sich aus der Verwendung der Variablen ergibt. Modell-Beziehung Die Modell-Beziehung zwischen Interpretationen und Formeln wird wie üblich definiert: Definition 2.1.12 (Variablenbelegung): Eine Variablenbelegung zu einer Variablendeklaration Ξ: X → S und einer Interpretation I ist eine Abbildung α, die jeder Variablen X ∈ X einen Wert α(X) ∈ I[[Ξ(X)]] zuordnet. 2.1. DIE VERWENDETE LOGIK 19 Definition 2.1.13 (Auswertung von Termen): Der Wert (I, α)[[t]] eines (Σ, Ξ)Terms t in einer Interpretation I unter einer Variablenbelegung α ist • I[[c]], falls t eine Konstante c ist, • α(X), falls t eine Variable X ist. Definition 2.1.14 (Modell-Beziehung): Eine Interpretation I erfüllt eine (Σ, Ξ)Formel ϕ unter der Variablenbelegung α ((I, α) |= ϕ) genau dann, wenn • falls ϕ eine logische Konstante ϕ0 ist: (I, α) |= ϕ :⇐⇒ ϕ0 = true, • falls ϕ eine atomare Formel mit Prädikat p und Argumentliste t1 . . . tn ist: (I, α) |= ϕ :⇐⇒ (I, α)[[t1 ]], . . . , (I, α)[[tn ]] ∈ I[[p]], • falls ϕ eine negierte Formel mit Teilformel ϕ0 ist: (I, α) |= ϕ :⇐⇒ (I, α) 6|= ϕ0 , • falls ϕ eine zusammengesetzte Formel mit Teilformeln ϕ1 und ϕ2 ist: ϕ1 — — • • ϕ2 — • — • ϕ1 ∧ ϕ 2 — — — • ϕ1 ∨ ϕ 2 — • • • ϕ1 → ϕ 2 • • — • ϕ1 ← ϕ 2 • — • • ϕ1 ↔ ϕ 2 • — — • ( •“ bedeute, daß die angegebene Formel in I unter α gilt). ” Eine Σ-Formel ϕ gilt in I (I |= ϕ) genau dann, wenn (I, α) |= ϕ für alle Variablenbelegungen α zu der Variablendeklaration von ϕ. Definition 2.1.15 (Modellbeziehung, abgeleitete Begriffe): • I ist Modell einer Formelmenge Φ (I |= Φ) genau dann, wenn I |= ϕ für alle ϕ ∈ Φ. • Mit Mod (Φ) werde die Menge der Herbrand-Modelle von Φ bezeichnet. • Umgekehrt sei für eine Menge I von Herbrand-Interpretationen Th(I) die Menge der variablenfreien Σ-Formeln Φ mit I |= Φ für alle I ∈ I. • Ist Σ endlich, so sei th(I) eine variablenfreie Σ-Formel ϕ mit Mod (ϕ) = I. • Eine variablenfreie Formel ψ folgt logisch aus einer Formelmenge Φ (Φ ` ψ) genau dann, wenn I |= ψ für jedes Herbrand-Modell I von Φ. • Zwei Formeln oder Formelmengen Φ1 und Φ2 sind logisch äquivalent (Φ1 ∼ = Φ2 ) genau dann, wenn I |= Φ1 ⇐⇒ I |= Φ2 für alle Herbrand-Interpretationen I. • Eine Formelmenge Φ heißt konsistent genau dann, wenn Mod (Φ) 6= ∅. Die syntaktische Entsprechung zu Variablenbelegungen sind Substitutionen: 20 KAPITEL 2. DEDUKTIVE DATENBANKEN Definition 2.1.16 (Substitution): Eine Σ-(Grund-)Substitution zu einer Variablen deklaration Ξ: X → S ist eine Abbildung θ: X → C mit γ θ(X) = Ξ(X) für alle X ∈ X . Bei den hier betrachteten Herbrand-Interpretationen besteht zwischen Variablenbelegungen und Substitutionen eigentlich gar kein Unterschied. Allerdings werden Variablenbelegungen bei der Modellbeziehung berücksichtigt, während Substitutionen auf Formeln angewendet werden: Definition 2.1.17 (Anwendung einer Substitution): Sei ϕ eine (Σ, Ξ)-Formel und θ eine Σ-Substitution zu Ξ. Dann ist das Ergebnis der Anwendung von θ auf ϕ, geschrieben ϕθ definiert als: • Ist ϕ eine logische Konstante, so sei ϕθ := ϕ. • Ist ϕ eine atomare Formel mit Prädikat p und Argumentliste t1 , . . . , tn , so sei ϕθ die atomare Formel mit Prädikat p und Argumentliste t01 , . . . , t0n , wobei θ(Xi ) falls ti eine Variable Xi ist 0 ti := ti sonst. • Ist ϕ eine negierte Formel mit Teilformel ϕ0 , so sei ϕθ die negierte Formel mit Teilformel ϕ0 θ. • Ist ϕ eine zusammengesetzte Formel mit Junktor ∗ und Teilformeln ϕ1 und ϕ2 , so sei ϕθ die zusammengesetzte Formel mit Junktor ∗ und Teilformeln ϕ1 θ und ϕ2 θ. Man kann nun zeigen, daß zwischen Variablenbelegungen und Substitutionen auch semantisch kein wesentlicher Unterschied besteht, denn es gilt (I, α) |= ϕ ⇐⇒ I |= ϕθ, wenn α und θ dieselbe Abbildung sind. Bereichsbeschränkte Formeln Es ist aus verschiedenen Gründen nützlich, nur bereichsbeschränkte Formeln zuzulassen. So braucht man nur endliche Modelle zu betrachten, die Menge der korrekten Antworten ist immer endlich und unabhängig von der Signatur, und die Terminierung der Anfragebearbeitung kann sichergestellt werden. Technisch gesehen garantiert die Bereichsbeschränkung gerade, daß die oben angegebene Standard-Erweiterung eines Herbrandmodells auf eine größere Signatur ein Modell bleibt. Die folgende Definition ist relativ aufwendig, weil sie auf beliebige quantorenfreie Formeln anwendbar sein muß. Im Fall von Prolog-Klauseln mit positiv bindenden Prädikaten ist sie aber äquivalent zu der klassischen Definition, daß jede Variable in einem positiven Rumpf-Literal vorkommt (s.u.). 2.1. DIE VERWENDETE LOGIK 21 Definition 2.1.18 (Gebundene und ungebundene Variablen): Die Menge der in einer Formel ϕ gebundenen Variablen, B + (ϕ)/B − (ϕ), und die Menge der in ϕ ungebundenen Variablen, U + (ϕ)/U − (ϕ), werden wie folgt definiert: • Ist ϕ eine logische Konstante, so sei: B + (ϕ) := ∅, B − (ϕ) := ∅, U + (ϕ) := ∅, U − (ϕ) := ∅. • Ist ϕ eine atomare Formel mit Prädikat p und Argumentliste t1 . . . tn : X falls β(p) = − X falls β(p) = + + − B (ϕ) := B (ϕ) := ∅ sonst ∅ sonst ∅ falls β(p) = − ∅ falls β(p) = + U + (ϕ) := U − (ϕ) := X sonst X sonst dabei sei X := {Xi | ti ist eine Variable Xi }. • Ist ϕ eine negierte Formel mit Teilformel ϕ0 : B + (ϕ) := B − (ϕ0 ), U + (ϕ) := U − (ϕ0 ), B − (ϕ) := B + (ϕ0 ), U − (ϕ) := U + (ϕ0 ). • Ist ϕ eine zusammengesetzte Formel mit Junktor ∗ und Teilformeln ϕ1 und ϕ2 : ∗ B + (ϕ)/B − (ϕ) U + (ϕ)/U − (ϕ) ∧ B + (ϕ1 ) ∩ B + (ϕ2 ) B − (ϕ1 ) ∪ B − (ϕ2 ) ∨ B + (ϕ1 ) ∪ B + (ϕ2 ) B − (ϕ1 ) ∩ B − (ϕ2 ) → B − (ϕ1 ) ∪ B + (ϕ2 ) B + (ϕ1 ) ∩ B − (ϕ2 ) ← B + (ϕ1 ) ∪ B − (ϕ2 ) B − (ϕ1 ) ∩ B + (ϕ2 ) U + (ϕ1 ) ∪ U + (ϕ2 ) U − (ϕ1 ) ∪ U − (ϕ2 ) − U + (ϕ1 ) ∪ U + (ϕ2 ) − U − (ϕ1 ) ∪ U − (ϕ2 ) U − (ϕ1 ) ∪ U + (ϕ2 ) − U + (ϕ1 ) ∪ U − (ϕ2 ) U + (ϕ1 ) ∪ U − (ϕ2 ) − U − (ϕ1 ) ∪ U + (ϕ2 ) B − (ϕ1 ) ∪ B − (ϕ2 ) B + (ϕ1 ) ∪ B + (ϕ2 ) B − (ϕ1 ) ∪ B + (ϕ2 ) B + (ϕ1 ) ∪ B − (ϕ2 ) Der Ausdruck für ↔“ ergibt sich aus ϕ1 ↔ ϕ2 ∼ = (ϕ1 → ϕ2 ) ∧ (ϕ1 ← ϕ2 ). ” Definition 2.1.19 (Bereichsbeschränkte Formel): Eine Formel ϕ heißt bereichsbeschränkt genau dann, wenn U + (ϕ) = ∅ ist. Die Menge der bereichsbeschränkten ΣFormeln werde mit L+ Σ bezeichnet. Eine Formel ϕ heißt stark bereichsbeschränkt bzw. negativ stark bereichsbeschränkt genau dann, wenn X ∈ B + (ϕ) bzw. X ∈ B − (ϕ) für jede in ϕ vorkommende Variable X. Der Unterschied zwischen bereichsbeschränkten und stark bereichsbeschränkten Formeln tritt im klassischen Fall (Klauseln) nicht auf. Ein Beispiel ist etwa die Formel ϕ := p1 (X) ← p2 (X) ∧ q1 (Y ) ← q2 (Y ) (alle Prädikate seien positiv bindend). Diese Formel ist bereichsbeschränkt (U + (ϕ) = ∅), aber nicht stark bereichsbeschränkt (B + (ϕ) = ∅). 22 KAPITEL 2. DEDUKTIVE DATENBANKEN Im wesentlichen garantieren bereichsbeschränkte Formeln, daß aus Modellen bei der Standard-Erweiterung wieder Modelle werden, während stark bereichsbeschränkte Formeln für die neuen Konstanten auf jeden Fall gelten: Lemma 2.1.20: Seien Σ ⊆ Σ0 , I eine Σ-Herbrandinterpretation und I 0 eine StandardErweiterung von I auf Σ0 . Dann gilt für alle Σ-Formeln ϕ und I 0 -Variablenbelegungen α0 : • Gibt es X ∈ B + (ϕ) mit α0 (X) ∈ C 0 − C, so gilt (I 0 , α0 ) |= ϕ. • Gibt es X ∈ B − (ϕ) mit α0 (X) ∈ C 0 − C, so gilt (I 0 , α0 ) 6|= ϕ. Beweis: Der Beweis erfolgt durch Induktion über dem Aufbau von ϕ. Es wird jeweils nur der Beweis für den ersten Teil ausgeführt, der zweite Teil kann analog bewiesen werden. • Für logische Konstanten ist B + (ϕ) leer, die Voraussetzung der Behauptung ist also immer falsch. • Für atomare Formeln ist B + (ϕ) nur dann nicht leer, wenn es sich um ein negativ bindendes Prädikat handelt. Dann stellt die Konstruktion von I 0 sicher, daß (I 0 , α0 ) |= ϕ gilt. • Für negierte Formeln folgt die Behauptung direkt aus der Induktionsannahme. • Sei ϕ eine zusammengesetzte Formel mit Junktor ∧ und Teilformeln ϕ1 und ϕ2 . Gelte nun α0 (X) 6∈ C für ein X ∈ B + (ϕ). Wegen B + (ϕ) = B + (ϕ1 ) ∩ B + (ϕ2 ) ist X also in beiden Mengen enthalten, und die Induktionsannahme liefert (I 0 , α0 ) |= ϕ1 und (I 0 , α0 ) |= ϕ2 . Daraus folgt die Behauptung (I 0 , α0 ) |= ϕ. • Sei ϕ eine zusammengesetzte Formel mit Junktor ∨ und Teilformeln ϕ1 und ϕ2 und gelte α0 (X) 6∈ C 0 − C für ein X ∈ B + (ϕ). Da B + (ϕ) = B + (ϕ1 ) ∪ B + (ϕ2 ), ist X in einer der beiden Mengen enthalten; gelte etwa X ∈ B + (ϕ1 ). Dann liefert die Induktionsannahme (I 0 , α0 ) |= ϕ1 . Daraus folgt natürlich sofort (I 0 , α0 ) |= ϕ. • Der Beweis für die anderen Junktoren verläuft analog. 2 Lemma 2.1.21: Seien Σ ⊆ Σ0 , I eine Σ-Herbrandinterpretation und I 0 eine StandardErweiterung von I auf Σ0 . Dann gilt für alle Σ-Formeln ϕ und alle Variablenbelegungen α zu I und α0 zu I 0 : • Gilt für alle X mit α0 (X) 6= α(X), daß X 6∈ U + (ϕ) und α0 (X) ∈ C 0 − C, dann gilt: (I, α) |= ϕ =⇒ (I 0 , α0 ) |= ϕ. • Gilt für alle X mit α0 (X) 6= α(X), daß X 6∈ U − (ϕ) und α0 (X) ∈ C 0 − C, dann gilt: (I, α) 6|= ϕ =⇒ (I 0 , α0 ) 6|= ϕ. Beweis: Die Behauptung wird mit Induktion über den Aufbau von ϕ bewiesen. Es wird jeweils nur der Beweis der ersten Aussage ausgeführt, die zweite kann analog bewiesen werden. • Für logische Konstanten gilt die Behauptung trivialerweise. • Sei ϕ nun eine atomare Formel. Gilt α0 (X) = α(X) für alle vorkommenden Variablen, so folgt (I, α) |= ϕ ⇐⇒ (I 0 , α0 ) |= ϕ. Andernfalls gibt es also eine in ϕ vorkommende Variable X mit α0 (X) = α(X), und daher X 6∈ U + (ϕ). Für atomare Formeln impliziert das X ∈ B + (ϕ), die Folgerung (I 0 , α0 ) |= ϕ gilt also nach Lemma 2.1.20. 2.1. DIE VERWENDETE LOGIK 23 • Ist ϕ eine negierte Formel mit Teilformel ϕ0 , so gilt (I, α) |= ϕ ⇐⇒ (I, α) 6|= ϕ0 =⇒ (I 0 , α0 ) 6|= ϕ0 ⇐⇒ (I 0 , α0 ) |= ϕ, wobei im mittleren Schritt gerade die Induktionsannahme verwendet wurde (es ist ja U − (ϕ0 ) = U + (ϕ)). • Sei ϕ eine zusammengesetzte Formel mit Junktor ∧ und Teilformeln ϕ1 und ϕ2 . Nach Voraussetzung gelten beide Teilformeln in (I, α). Ist X 6∈ U + (ϕ), so ist wegen U + (ϕ) = U + (ϕ1 ) ∪ U + (ϕ2 ) natürlich X 6∈ U + (ϕ1 ) und X 6∈ U + (ϕ2 ). Die Induktionsannahme kann dann ganz direkt verwendet werden. • Sei ϕ nun eine zusammengesetzte Formel mit Junktor ∨ und Teilformeln ϕ1 und ϕ2 . Nach Vorausetzung gilt eine der beiden Teilformeln in (I, α), etwa ϕ1 . Für alle Variablen X mit α0 (X) 6= α(X) gilt nach Voraussetzung α0 (X) ∈ C 0 − C und X 6∈ U + (ϕ). Gilt auch X 6∈ U + (ϕ1 ) für alle solchen X, so kann man direkt die Induktionsannahme anwenden. Falls dies aber nicht gilt, so folgt X ∈ B + (ϕ1 ) ∪ B + (ϕ2 ) (nach der Definition von U + ). Nun liefert aber Lemma 2.1.20, daß die betreffende Teilformel in (I 0 , α0 ) gilt, und damit natürlich auch die Disjunktion. • Der Beweis für die übrigen Junktoren verläuft analog. 2 Satz 2.1.22: Seien Σ ⊆ Σ0 , Φ eine Menge von bereichsbeschränkten Σ-Formeln, I ein Σ-Herbrandmodell von Φ und I 0 eine Standard-Erweiterung von I auf Σ0 . Dann ist I 0 ein Modell von Φ. Beweis: Zu zeigen ist (I 0 , α0 ) |= ϕ für alle ϕ ∈ Φ und alle Variablenbelegungen α0 zu I 0 . Sei α eine Variablenbelegung zu I mit α(X) = α0 (X) für alle X mit α0 (X) ∈ C. Nach Voraussetzung gilt (I, α) |= ϕ und U + (ϕ) = ∅, daher liefert die erste Aussage von Lemma 2.1.21 die Behauptung (I 0 , α0 ) |= ϕ. 2 Korollar 2.1.23: Sei Φ eine konsistente Menge bereichsbeschränkter Formeln und ψ eine negativ stark bereichsbeschränkte Formel. Gilt Φ ` ψ, so ist ψ variablenfrei. Beweis: Angenommen, ψ enthält eine freie Variable X. Dann ist nach Voraussetzung − X ∈ B (ψ). Als konsistente Menge quantorenfreier Formeln hat Φ ein Σ-Herbrandmodell I. Entstehe nun Σ0 aus Σ durch Hinzufügen einer Konstante c. Nach Satz 2.1.22 ist die StandardErweiterung I 0 von I auf Σ0 Modell von Φ. Sei α0 nun eine beliebige Variablenblegung mit α0 (X) := c. Dann gilt nach Lemma 2.1.20: (I 0 , α0 ) 6|= ψ. Vergißt“ man nun die Interpretation ” von c, so hat man ein Σ-Modell von Φ (kein Herbrandmodell), das nicht Modell von ψ ist, und es folgt Φ 6` ψ. 2 Natürlich ist der hier eingeführte Begriff von bereichsbeschränkter Formel“ nicht die ” einzige Möglichkeit, und in mancher Hinsicht ist er noch recht einschränkend. Verbesserungen hinsichtlich der Praxisnähe würden aber wohl zu noch komplizierteren Definitionen führen. In dieser Arbeit werden daher im folgenden nur einige Beispiele aufgelistet, die praktische Systeme behandeln können sollten. 24 KAPITEL 2. DEDUKTIVE DATENBANKEN Ein erstes Beispiel ist die Regel equal (X, Y ) ← X = Y. Hiermit soll equal als Synonym für =“ eingeführt werden (dazu ist natürlich noch der ” Default ¬equal (X, Y ) erforderlich). Natürlich muß equal dann auch als nicht-bindendes Prädikat deklariert werden. Trotzdem ist diese Klausel nicht bereichsbeschränkt, denn nach der Definition muß jede Variable gebunden sein. Man könnte auf die Idee kommen, nur zu verlangen, daß Variablen gebunden werden müssen, die in Literalen mit bindendem Prädikat vorkommen. Dies ist aber nicht mehr hinreichend für die Signatur-Unabhängigkeit, wie in Beispiel 2.3.3 gezeigt wird. Auch die folgende Regel zur Berechnung des Briefportos in Abhängigkeit vom Gewicht ist nicht bereichsbeschränkt (X ist nicht gebunden): porto(X, 100) ← X < 20. Dabei wäre die Verwendung als Makro“ im Kontext einer bereichsbeschränkten Regel ” oder Anfrage problemlos. Zur Fortpflanzung von Variablenbindungen lassen sich Gleichungen wie Y = X leicht ausnutzen (siehe [Ull88]). Schwieriger wird es bei Regeln, die neue Werte bzw. Konstanten generieren: plusMwSt(X, Y ) ← Y = X ∗ 1.14. Dies sollte natürlich zulässig sein, denn entsprechende Anfragen oder Sichten sind in relationalen Datenbanken auch möglich. Andererseits muß man verhindern, daß solche Regeln rekursiv verwendet werden, denn sonst bekommt man sofort wieder unendliche Bereiche. Sind bei Prädikaten wie = ∗ zwei der Argumente schon gebunden, bindet dieses Prädikat das dritte Argument. Die einfache Dreiteilung in positiv, negativ oder überhaupt nicht bindend reicht hier also nicht mehr aus. Eventuell könnte eine Verallgemeinerung des Ansatzes aus [KRS88] helfen. Klausellogik Für automatische Beweiser ist nützlich, Formeln in eine einfache Normalform zu bringen. Bewährt hat sich hier besonders die Darstellung einer Formel als Menge von Klauseln: Definition 2.1.24 (Literal): Ein (Σ, Ξ)-Literal besteht aus einer atomaren Formel und einem Vorzeichen (positives oder negatives Literal). Mit ∼ ϕ wird das Literal umgekehrten Vorzeichens zu ϕ bezeichnet. Ein Grundliteral ist ein Literal, das keine Variablen enthält. Wird die zugehörige atomare Formel ϕ als ϕ0 repräsentiert, so wird das positive Literal ebenfalls als ϕ0 aufgeschrieben, das negative aber als ¬ϕ0 . 2.1. DIE VERWENDETE LOGIK 25 Definition 2.1.25 (Klausel): Eine Σ-Klausel besteht aus einer Variablendeklaration Ξ und einer endlichen Menge von (Σ, Ξ)-Literalen. Die leere Klausel werde mit 2 bezeichnet. Klauseln mit den Literalen ϕ1 , . . . , ϕn werden meist in folgender Form notiert: ϕ01 ∨ · · · ∨ ϕ0m ← ϕ0m+1 ∧ · · · ∧ ϕ0n , dabei sei ϕ0i die Repräsentation von ϕi (1 ≤ i ≤ m) bzw. ∼ ϕi (m + 1 ≤ i ≤ n). Hieran sieht man schon die Entsprechung zwischen Klauseln und Disjunktionen. Beliebige Formeln können daher in eine Konjunktion oder Menge von Klauseln umgerechnet werden: Definition 2.1.26 (Umrechnung von Formeln in Klauselmengen): Die Klauselmenge Cl + (ϕ) zu einer (Σ, Ξ)-Formel ϕ und die Klauselmenge Cl − (ϕ) zu ¬ϕ werden rekursiv entsprechend dem Aufbau von Φ definiert: • Ist ϕ die logische Konstante true, so sei Cl + (ϕ) := ∅, Cl − (ϕ) := {2}. Für die logische Konstante false sei Cl + (ϕ) := {2} und Cl − (ϕ) := ∅. • Ist ϕ eine atomare Formel, so bestehe Cl + (ϕ) aus der Klausel mit dem ϕ entsprechenden positiven Literal und Cl − (ϕ) aus der Klausel mit dem negativen Literal. • Ist ϕ eine negierte Formel mit Teilformel ϕ0 , so sei Cl + (ϕ) := Cl − (ϕ0 ), Cl − (ϕ) := Cl + (ϕ0 ). • Ist ϕ eine zusammengesetzte Formel mit Junktor ∗ und Teilformeln ϕ1 und ϕ2 : ∗ Cl + (ϕ) ∧ ∨ → ← ↔ Cl + (ϕ1 ) ∪ Cl + (ϕ2 ) Cl + (ϕ1 ) ◦ Cl + (ϕ2 ) Cl − (ϕ1 ) ◦ Cl + (ϕ2 ) Cl + (ϕ1 ) ◦ Cl − (ϕ2 ) Cl + (ϕ1 ) ◦ Cl − (ϕ2 ) ∪ Cl − (ϕ1 ) ◦ Cl + (ϕ2 ) Cl − (ϕ) Cl − (ϕ1 ) ◦ Cl − (ϕ2 ) Cl − (ϕ1 ) ∪ Cl − (ϕ2 ) Cl + (ϕ1 ) ∪ Cl − (ϕ2 ) Cl − (ϕ1 ) ∪ Cl + (ϕ2 ) Cl − (ϕ1 ) ∪ Cl + (ϕ2 ) ◦ Cl + (ϕ1 ) ∪ Cl − (ϕ2 ) Dabei sei für zwei Klauselmengen Φ1 und Φ2 : Φ1 ◦ Φ2 := (Ξ, ϕ1 ∪ ϕ2 ) (Ξ, ϕ1 ) ∈ Φ1 , (Ξ, ϕ2 ) ∈ Φ2 . Definition 2.1.27 (Modell-Beziehung für Klauseln): Eine Klausel mit Variablendeklaration Ξ und Literalen {ϕ1 , . . . , ϕn } gilt in (I, α) genau dann, wenn es ϕi gibt mit: • ϕi ist ein positives Literal mit atomarer Formel ϕ0i und es gilt (I, α) |= ϕ0i . • ϕi ist ein negatives Literal mit atomarer Formel ϕ0i und es gilt (I, α) 6|= ϕ0i . Sie gilt in I genau dann, wenn sie für jede Variablenbelegung α zu Ξ in (I, α) gilt. Man kann nun zeigen, daß die Umrechnung zwischen Formeln und Klauseln verträglich mit der Modell-Beziehung ist, d.h. I |= ϕ ⇐⇒ I |= Cl + (ϕ). 26 KAPITEL 2. DEDUKTIVE DATENBANKEN Definition 2.1.28 (Bereichsbeschränkte Klausel): Eine Klausel heißt bereichsbeschränkt genau dann, wenn jede vorkommende Variable auch in einem negativen Literal mit positiv bindendem Prädikat vorkommt oder in einem positiven Literal mit negativ bindendem Prädikat. Auch hier kann man eine Verträglichkeit mit der Umrechnung von Formeln in Klauselmengen zeigen, d.h. eine bereichsbeschränkte Formel liefert eine Menge bereichsbeschränkter Klauseln. 2.2 Intendierte Modelle Das Ziel einer jeden Datenbank ist natürlich, Anfragen zu beantworten. Dazu muß die Datenbank über ein mathematisches Modell des Bereichs verfügen, aus dem die Anfragen stammen können. In dem hier verfolgten Ansatz ist das eine Menge von Interpretationen, die den möglichen Situationen des zu modellierenden Ausschnitts der realen Welt entsprechen. Falls die zur Verfügung stehende Information vollständig ist, wird das bis auf Isomorphie nur eine Interpretation sein; sind dagegen gewisse Fakten unbekannt, kann die Datenbank auch mehrere verschiedene Modelle enthalten. Die Struktur solcher Modelle wird beim Datenbankentwurf über eine Signatur Σ bestimmt; der Inhalt wird mit Axiomen und Defaults festgelegt, wobei die Semantik der Defaults eine Vervollständigung ist. Schließlich gibt es noch Integritätsbedingungen, die dazu dienen, Fehler in den Axiomen und Defaults zu erkennen. Eine deduktive Datenbank besteht also aus den vier Komponenten Signatur, Axiome, Vervollständigung (gegeben durch die Defaults) und Integritätsbedingungen. Diese legen zusammen die Menge der intendierten Modelle fest, die ein möglichst getreues Abbild der realen Welt ist und als Grundlage für die Anfragebearbeitung dient. Axiome Die Fakten und Regeln einer deduktiven Datenbank werden hier als Axiome bezeichnet, um sie von den Defaults abzusetzen (und um den Begriff Datenbankzustand“ zu vermei” den, s.o.). Sie müssen von den intendierten Modellen auf jeden Fall vollständig erfüllt werden, während Defaults nur partiell, soweit wie möglich erfüllt werden. Es ist allerdings teilweise eine Stilfrage, was man als Default und was als Axiom notiert. Im Extremfall könnte man alle angenommenen Defaults als Axiom angeben (sofern diese Menge nicht unendlich ist). Dies wäre natürlich sehr unbequem, zeigt aber, daß es nicht angemessen ist, Axiome als den gesicherten“ Anteil des abzuspeichernden ” Wissens anzusehen, und Defaults nur für unsichere Informationen zu verwenden. Andererseits könnte man auch ganz ohne Axiome auskommen, und die Axiome als Defaults (höchster Priorität) formulieren. Dies schlägt etwa Brewka in seinen Preferred ” Subtheories“ [Bre91] vor. Der Unterschied ist, daß eine Menge von Defaults im Gegensatz 2.2. INTENDIERTE MODELLE 27 zu einer Menge von Axiomen durchaus inkonsistent sein kann; es werden dann eben nicht alle Defaults angenommen. Die Inkonsistenz einer Menge von Axiomen kann also dazu dienen, Fehler zu erkennen. So können einige der klassischen Integritätsbedingungen durchaus als Axiom formuliert werden (s.u.). Es gibt aber noch andere Gründe für die Trennung in Axiome und Defaults: Einerseits wird die Berechnung korrekter Antworten vereinfacht, wenn Axiome ohne zusätzlichen Test angenommen werden können. Andererseits bestehen die typischen Änderungsoperationen im Einfügen und Löschen von Fakten, während die Defaults meist stabil sind. Vor diesem Hintergrund scheint die Zweiteilung in die vorgegebenen Fakten und die sich anpassenden Defaults sinnvoll. Zusammenfassend kann also gesagt werden, daß die Einteilung in Axiome und Defaults Gegenstand des Datenbankentwurfs ist (neben vielen anderen Fragen). Eine Faustregel ist vielleicht, alles was sich einfach als Axiom formulieren läßt, auch als Axiom zu spezifizieren. Definition 2.2.1 (Axiomenmenge): Die Axiomenmenge Φ einer deduktiven Datenbank mit Signatur Σ ist eine endliche und konsistente Menge von bereichsbeschränkten Σ-Formeln. Defaults Defaults haben syntaktisch dieselbe Struktur wie Axiome — es sind Formeln. Nur die Semantik ist anders, sie müssen nicht unbedingt vollständig erfüllt werden, sondern nur, soweit es die Axiome und die anderen Defaults zulassen. Es ist natürlich eine wichtige Entscheidung, nur Defaults dieser Art zu betrachten. Die möglichen Alternativen sind zahlreich: Auf der einen Seite sind viele Ansätze stärker eingeschränkt, indem sie nur Negationen mit diversen Zusatzangaben betrachten. Diese Ansätze sind nahezu alle Spezialfälle der hier betrachteten Defaults, wie in Kapitel 3 näher erläutert wird. Die Vielzahl der verschiedenen Vervollständigungen dieser Art legt es natürlich nahe, nach einer gemeinsamen Verallgemeinerung zu suchen, so daß die einzelne Vervollständigung durch einen Parameter spezifiziert werden kann. Das ist mit dem hier verfolgten Ansatz möglich. Auf der anderen Seite gibt es eine ganze Reihe von Vorschlägen für allgemeinere Defaults. So bestehen etwa Reiter’s Defaults [Rei80] aus drei Komponenten: Der Vorbedingung für die Annahme des Defaults, der konsistent annehmbaren Rechtfertigung, und der Folgerung, die dann tatsächlich angenommen wird. Die hier betrachteten Defaults entsprechen den supernormalen“ Defaults von Reiter, bei denen Rechtfertigung ” und Folgerung übereinstimmen, und die Vorbedingung leer (true) ist. Die größere Ausdrucksfähigkeit hat aber einige unerwünschte Konsequenzen: So kann es etwa passieren, daß die Defaults zu Inkonsistenzen führen, oder Anomalien bei Einfügungen und Löschungen auftreten (Verletzung grundlegender Eigenschaften aus Kapitel 4). Es scheint auch so, als wäre dies kein Mangel in Reiter’s Semantik der Defaults, sondern ein inhärentes 28 KAPITEL 2. DEDUKTIVE DATENBANKEN Problem der großen Ausdrucksfähigkeit. Eine gegensätzliche Meinung wird in [Bre91] vertreten; dort wird aber zur Lösung dieses Problems die zugrundeliegende Logik geändert. Ein anderer momentan viel beachteter Vorschlag, allgemeinere Default-Aussagen zu ermöglichen, ist Moore’s autoepistemische Logik [Moo85]. Die hier betrachteten Defaults würden in dieser Logik formuliert als wenn ich nicht weiß, daß der Default nicht ” gilt, dann gilt er“. Wie Konolige gezeigt hat [Kon88], ist diese Logik aber im wesentlichen äquivalent zu Reiter’s Default Logik (man kann die Formeln in autoepistemischer Logik in eine Normalform überführen, die Reiter’s Defaults entspricht). Daher ist es nicht überraschend, daß die autoepistemische Logik dieselben Probleme wie die DefaultLogik hat. Man muß sich aber fragen, ob man die größere Ausdrucksfähigkeit überhaupt braucht, oder ob die zusätzlichen Probleme den Nutzen nicht überwiegen. Wie in Kapitel 3 belegt wird, kann man zumindest sehr viele Beispiele für die Anwendung von Defaults auch mit den hier betrachteten einfachen Defaults formulieren. Im Gegensatz dazu scheint die zusätzliche Ausdrucksfähigkeit gegenüber Systemen, die nur Negationen als Defaults zulassen, keine prinzipiellen Schwierigkeiten mit sich zu bringen. Definition 2.2.2 (Defaults): Eine Menge von Defaults ∆ einer deduktiven Datenbank mit Signatur Σ ist eine endliche Menge von stark bereichsbeschränkten Σ-Formeln. Dabei darf es nicht δ1 , δ2 ∈ ∆, δ1 6= δ2 und Substitutionen θ1 , θ2 geben, so daß δ1 θ1 = δ2 θ2 (s.u.). Von großem praktischen Nutzen ist schließlich noch die Einführung von Prioritäten zwischen den Defaults. Defaults sind ja im wesentlichen Regeln mit Ausnahmen, und es kommt nun durchaus vor, daß man zu den Ausnahmen nochmals Ausnahmen spezifizieren muß (das ist ja das Grundprinzip von Vererbungs-Hierarchien). Wenn ein Default einem Axiom widerspricht, setzt sich natürlich das Axiom durch. Aber was ist, wenn sich zwei Defaults wiedersprechen? Hier hat man die Gelegenheit, über Prioritäten zu spezifizieren, welcher Default angenommen und welcher verworfen werden soll. Falls keine Prioritäten spezifiziert sind, spielt die genaue Semantik der Defaults (der Vervollständigungsmechanismus) eine Rolle. Manche Vervollständigungen nehmen dann keinen von beiden Defaults an, manche ihre Disjunktion. Die Prioritäten zwischen den Defaults können als partielle Ordnung < spezifiziert werden; dabei bedeute δ1 < δ2 , daß δ1 die höhere Priorität hat. Diese Richtung der Ordnung verlangt wohl noch einen Kommentar, da sie der Intuition zunächst zu widersprechen scheint. Aber sie stimmt mit der Subtypen/klassen-Beziehung in objekt-orientierten Ansätzen überein (der wichtigsten Anwendung für partiell geordnete Defaults): Hier überschreiben die Regeln für Subsorten ja die ererbten Regeln. Häufig ist aber keine allgemeine partielle Ordnung nötig, sondern es reicht, die Defaults in Prioritätsstufen einzuteilen, d.h. jedem Default δ eine natürliche Zahl `(δ) zuzuordnen. Auch hier sollen die kleineren Zahlwerte eine höhere Priorität bedeuten. Da- 2.2. INTENDIERTE MODELLE 29 durch kann man die Stratifizierungsstufen einer stratifizierten Klauselmenge direkt als Prioritätsstufen verwenden (siehe Beispiel 3.1.3 und die anschließende Diskussion). Definition 2.2.3 (Prioritäten): • Eine Prioritätsrelation < auf ∆ ist eine beliebige (strikte) partielle Ordnung (transitiv und irreflexiv). • Eine Stufeneinteilung von ∆ ist eine Abbildung `: ∆ → IN. • Die durch eine Stufeneinteilung ` gegebene Prioritätsrelation < ist δ1 < δ2 :⇐⇒ `(δ1 ) < `(δ2 ). In dieser Arbeit wird davon ausgegangen, daß Defaults höherer Priorität grundsätzlich Vorrang vor beliebig vielen Defaults niedrigerer Priorität haben. Dies muß nicht unbedingt so sein, man könnte auch eher numerische Ansätze wählen. Default-Ausprägungen Bekanntlich können Defaults nicht immer vollständig erfüllt werden, der Default ¬p(X) etwa nicht für alle X, sondern nur für einige. Zum Verständnis von Default-Semantiken ist daher der Begriff der Default-Ausprägungen ( instances“) nützlich. Bei ¬p(X) könnten ” die Ausprägungen etwa ¬p(c1 ), ¬p(c2 ), . . . sein. Diese Ausprägungen sind dann die Einheiten für die Entscheidung, welche Teile einer Default-Regel“ aus ∆ angenommen ” werden und welche nicht. Gewissermaßen legt der Ausprägungs-Mechanismus also die Granularität der DefaultRegeln fest. Im Extremfall wäre p(X) selbst die einzige Ausprägung von p(X), dann könnte der Default nur als Ganzes angenommen werden. Außer dieser Möglichkeit und der Ersetzung der Variablen durch Konstanten gibt es aber noch weitere. So könnte man etwa Disjunktionen der Ausprägungen zulassen. Auch die natural consequences“ ” von [Rya91] lassen sich als Ausprägungsmechanismus mit einer besonders feinen Granularität verstehen. Ausprägungsmechanismen müssen nicht notwendigerweise syntaktisch sein, man kann auch Paare aus Formel und Variablenbelegung als Ausprägung verwenden [BL91]. Dies ist besonders dann wünschenswert, wenn man die Annahme der eindeutigen Namen nicht verwendet oder keine Bereichsbeschränkung der Formeln voraussetzen kann. In dieser Arbeit wird allerdings nur der Ausprägungsmechanismus betrachtet, der die Variablen durch Konstanten ersetzt. Tatsächlich würden aber die Definitionen und fast alle Resultate auch mit einem beliebigen anderen Ausprägungsmechanismus funktionieren, weil sie ohnehin nur auf die Menge der Default-Ausprägungen Bezug nehmen und nicht auf die Menge der Default-Regeln. In dieser Hinsicht kann man die Default-Regeln also als Abkürzung für die Menge ihrer Ausprägungen auffassen. Im folgenden wird das Wort Default“ auch meist als synonym zu Default-Ausprägung“ verwendet. Die Antwortal” ” gorithmen in Kapitel 6 funktionieren jedoch nur mit diesem Ausprägungsmechanismus, denn sie müssen soweit wie möglich mit den Default-Regeln arbeiten. 30 KAPITEL 2. DEDUKTIVE DATENBANKEN Definition 2.2.4 (Default-Ausprägungen): Sei ∆ eine Menge von Defaults einer deduktiven Datenbank mit Signatur Σ. Dann sei ∆∗ die Menge der variablenfreien ΣFormeln, die aus Formeln aus ∆ entstehen, indem die Variablen durch Konstanten passender Sorte ersetzt werden. Die für die Default-Regeln spezifizierten Prioritäten werden auf die Ausprägungen vererbt. Dabei tritt noch das Problem auf, daß eine Default-Ausprägung zu mehreren DefaultRegeln gehören kann, was eventuell die Eigenschaft der partiellen Ordnung zerstört. Der Einfachheit halber wurde dieser Fall hier ausgeschlossen (in Definition 2.2.2). Dies ist keine wesentliche Einschränkung, da man diese Bedingung etwa durch Anhängen von “∨false“ erreichen kann. Definition 2.2.5 (Prioritäten auf Default-Ausprägungen): Eine Prioritätsrela∗ ∗ ∗ tion < auf ∆ wird folgendermaßen auf ∆ erweitert: Sind δ1 und δ2 Ausprägungen von δ1 und δ2 , so gelte δ1∗ < δ2∗ ⇐⇒ δ1 < δ2 . Man beachte, daß δ1∗ und δ2∗ nicht über dieselbe Substitution definiert sein müssen; die Variablen werden also lokal zu den Defaults interpretiert. Es könnte allerdings nützlich sein, für bestimmte Variablen die gleiche Einsetzung auf beiden Seiten zu verlangen. Es ist auch nicht selbstverständlich, daß die Ausprägungen einer Default-Regel alle dieselbe Priorität haben. So sollte die Rahmenregel bei zeitlichen Änderungen im Zweifelsfall eher für frühere Zustandsübergänge angenommen werden (siehe Kapitel 3). Modelltheoretische Vervollständigungen Die Semantik einer Menge von Default-Regeln mit Prioritäten ist eine Vervollständigung. Die Abbildung von einer Default-Spezifikation auf eine bestimmte Vervollständigung ist Gegenstand späterer Kapitel (insbesondere Kapitel 5). In diesem Abschnitt soll nun zunächst der semantische Bereich aller Vervollständigungen untersucht werden. Was ist also eine Vervollständigung? Modelltheoretisch gesehen, beschreibt die Menge der Axiome Φ eine Menge I von Σ-Interpretationen. Davon wählen die Defaults eine Teilmenge aus, die intendierten Modelle, die die Defaults am besten erfüllen. Wenn man die Semantik der Defaults unabhängig von den Axiomen beschreiben will, also die Axiome Φ als variabel ansieht, dann ist eine Vervollständigung eine Auswahlfunktion auf den Σ-Interpretationen: Die Eingabe sind die Modelle I von Φ, die Ausgabe sind die intendierten Modelle: Definition 2.2.6 (Modelltheoretische Vervollständigung): sche Vervollständigung ist eine Abbildung sel : 2IΣ → 2IΣ mit • sel (I) ⊆ I für alle I ⊆ IΣ ( kein Informationsverlust“). ” Eine modelltheoreti- 2.2. INTENDIERTE MODELLE 31 Ein typisches Beispiel für eine modelltheoretische Vervollständigung ist die Auswahl von minimalen Modellen bezüglich einer Präferenzrelation ≺ auf IΣ . Auch hier ist die Ordnung aus historischen Gründen verkehrt herum“: I1 ≺ I2 bedeutet, daß I1 die Defaults ” besser als I2 erfüllt. Die ≺-minimalen Elemente der Modellmenge I von Φ erfüllen die Defaults dann also am besten (unter den durch Φ gegebenen Einschränkungen). Diese Art von Vervollständigungen wird noch ausführlich in Kapitel 5 untersucht. Solche Auswahlfunktionen sind natürlich besonders übersichtlich, wenn IΣ endlich ist, was hier durch die Beschränkung auf Herbrandinterpretationen und die Signatur aus den tatsächlich vorkommenden Symbolen erreicht wird (s.u.). Dann läßt sich jede Vervollständigung als eine Tabelle beschreiben, in der für jede Teilmenge von IΣ die ausgewählten Modelle angegeben werden. Natürlich ist dies nur für sehr kleine Signaturen Σ praktisch durchführbar, denn für eine Signatur mit n Aussagenn variablen hat IΣ schon 2n Elemente (mögliche Interpretationen). Dann gibt es also 22 Teilmengen von IΣ , d.h. Eingaben I für sel (die nicht-äquivalenten Axiomenmengen Φ entsprechen). Wenn die Signatur etwa zwei Aussagenvariablen p und q enthält, so gibt es vier Herbrandmodelle: [pq] (p und q sind wahr), [pq̄] (p wahr, q falsch), [p̄q] (umgekehrt) und [p̄q̄] (beide falsch). In der tabellarischen Darstellung sind nun für jede der 16 Teilmengen I jeweils die intendierten Modelle (sel (I)) mit • und die übrigen Modelle (I − sel (I)) mit ◦ gekennzeichnet. Zur besseren Übersicht sind zusätzlich noch Formelmengen Φ mit Mod (Φ) = I und comp(Φ) mit Mod comp(Φ) = sel (I) angegeben, diese sind natürlich nur bis auf Äquivalenz eindeutig. So könnte man die minimalen Modelle (siehe Kapitel 5) mit den Defaults ¬p und ¬q durch folgende Tabelle beschreiben: Φ false ¬p, ¬q ¬p, q ¬p p, ¬q ¬q p ↔ ¬q ¬p ∨ ¬q p, q p↔q q ¬p ∨ q p p ∨ ¬q p∨q true [pq] [pq̄] [p̄q] [p̄q̄] comp(Φ) false • ¬p, ¬q • ¬p, q ◦ • ¬p, ¬q • p, ¬q ◦ • ¬p, ¬q • • p ↔ ¬q ◦ ◦ • ¬p, ¬q • p, q ◦ • ¬p, ¬q ◦ • ¬p, q ◦ ◦ • ¬p, ¬q ◦ • p, ¬q ◦ ◦ • ¬p, ¬q ◦ • • p ↔ ¬q ◦ ◦ ◦ • ¬p, ¬q A A A [pq] A A A [p̄q] [pq̄] [p̄q̄] 32 KAPITEL 2. DEDUKTIVE DATENBANKEN So hat etwa Φ := {p} die beiden Herbrandmodelle [pq] und [pq̄]. Von diesen beiden Modellen wird [pq̄] ausgewählt, während [pq] nicht intendiert ist; dies entspricht der Formelmenge comp(Φ) := {p, ¬q}. Man kann nun auch einfache Aufzählungsprogramme schreiben, die alle Vervollständigungen zu einer gegebenen (sehr kleinen) Signatur auf bestimmte Eigenschaften prüfen. Wenn man vorher mit vielen einzelnen Vervollständigungen gearbeitet hat, ist es schon begeisternd, plötzlich alle Vervollständigungen in diesem Sinn im Griff zu haben. Natürlich funktioniert das nur bei Spielzeug-Signaturen“, aber wenn man sich für die Eigenschaften ” von Vervollständigungen und die Zusammenhänge dazwischen interessiert, ist das schon eine große Hilfe. n Wie oben erläutert, legen die Vervollständigungen bei n-Aussagenvariablen 22 Funktionswerte fest. Wie viele Vervollständigungen gibt es aber nun? (2n +n−1) Satz 2.2.7: Es gibt 22 verschiedene modelltheoretische Vervollständigungen bei einer Signatur mit n Aussagenvariablen. Davon haben n 2 Y 2k − 1 k=1 (2kn ) die Eigenschaft, daß sel (I) = ∅ nur für I = ∅ gilt (Konsistenzerhaltung). Beweis: Eine Vervollständigung legt zu jeder Teilmenge I der 2n Interpretationen IΣ eine n Teilmenge sel (I) ⊆ I fest. Es gibt 2k Teilmengen I von IΣ der Größe k. Ist so ein I der Größe k gegeben, so hat man 2k Möglichkeiten, sel (I) auszuwählen. Damit ergibt sich: n 2 Y k=0 2 2n k (k) n = 2 Y 2( k=0 k∗2n k 2n P ) = 2k=0 n k∗(2k ) . Der Exponent kann nun vereinfacht werden zu: n −1 n X n 2n 2n 2X X 2n 2 2 −1 2n − 1 n n n k∗ = k∗ ∗ =2 ∗ = 2n ∗ 22 −1 = 22 +n−1 . 0 k k k−1 k 0 k=0 k=1 k =0 Die Behauptung über die Anzahl konsistenzerhaltender Vervollständigungen ergibt sich ganz direkt aus demselben Ansatz, man hat bei k-elementigen I (k > 0) allerdings eine Möglichkeit weniger für sel (I). 2 Diese Zahl ist natürlich auch für Aufzählungsprogramme zu groß, selbst bei sehr kleinem n. Für n = 2 gibt es 232 Vervollständigungen, davon sind 26 254 935 konsistenzerhaltend (diese Zahl liegt zwischen 224 und 225 ). Glücklicherweise ergibt sich eine drastische Reduzierung, wenn man weitere Mindestanforderungen an die Vervollständigungen stellt. So gibt es (für n = 2) nur noch 71 638 kumulierende und konsistenzerhaltende Vervollständigungen (die Kumulation wird in Kapitel 4 erklärt). Davon lassen sich 219 durch Präferenzrelationen auf den Modellen beschreiben und 749 als CWA (diese Zahlen wurden mit einem solchen Aufzählungsprogramm ermittelt). 2.2. INTENDIERTE MODELLE 33 Offene Frage 2.2.8: Kann man einen geschlossenen Ausdruck für die Anzahl der kumulierenden und konsistenzerhaltenen Vervollständigungen angeben? Die gleiche Frage stellt sich natürlich auch für andere Kombinationen von Eigenschaften aus Kapitel 4 oder Repräsentations-Formalismen aus Kapitel 5. Es ist im Prinzip denkbar, solche Aufzählungsprogramme für den Entwurf von Vervollständigungen durch Beispiele einzusetzen. Hat man etwa für einige Axiomenmengen Φ die intendierten Modelle ausgezeichnet, und setzt man darüber hinaus eine gewisse Struktur der Vervollständigung voraus, so führt das zu einer drastischen Einschränkung der möglichen Vervollständigungen. Betrachtet man etwa nur Vervollständigungen vom Typ minimale Modelle“, so ist die obige Vervollständigung eindeutig durch die Angaben ” der folgenden Beispiele bestimmt: Φ ∅ p q p∨q comp(Φ) ¬p, ¬q p, ¬q q, ¬p p ∨ q, ¬p ∨ ¬q Mindestens für besonders kritische Teile des Entwurfs, wo die verwendeten Defaults nicht offensichtlich sind, könnte eine solche Vorgehensweise hilfreich sein. Sie ist also dem Wissenserwerb und dem maschinellen Lernen zuzurechnen. Auch zur Überprüfung einer Vervollständigung, d.h. der Auswahl von Testfällen Φ, könnten solche Überlegungen beitragen. Solche Auswahlfunktionen haben eine einfache mathematische Struktur und treten nicht nur bei Vervollständigungen auf. Insbesondere sind sie schon in der Theorie der Wahlverfahren ( social choice theory“) untersucht worden, einem gemeinsamen Teilgebiet von ” Mathematik, Wirtschafts- und Sozialwissenschaften [Mou85]. Hier wird statt IΣ eine beliebige Menge von möglichen Alternativen betrachtet. Dies könnten etwa Personen sein, die für ein Amt in Frage kommen, oder Rechnermodelle, von denen eines beschafft werden soll (es müssen ja ständig irgendwelche Entscheidungen getroffen werden). Zur Auswahl steht aber jeweils nicht die ganze Menge der möglichen Alternativen, sondern nur eine Teilmenge. In den Beispielen wären das die Menge der Personen, die tatsächlich kandidieren, oder die Menge der Rechnermodelle, die unter einer gewissen Preisgrenze liegen. Zu jeder solchen Kandidatenmenge bestimmt die Auswahlfunktion wieder eine Teilmenge, nämlich die Alternativen, zu deren Gunsten die Entscheidung fällt. Da im allgemeinen nur eine Alternative realisiert werden kann, muß bei Bedarf das Los geworfen werden. Diese Theorie untersucht nun einen speziellen Aspekt solcher Entscheidungsprozesse, nämlich die Abhängigkeit der Entscheidung von der Kandidatenmenge. So wäre es doch etwa unlogisch, wenn dadurch, daß ein Verlierer seine Kandidatur zurückzieht, sich das 34 KAPITEL 2. DEDUKTIVE DATENBANKEN Ergebnis der Wahl ändern würde. In dem Beispiel mit der Rechnerauswahl liegen die genaue Preisgrenze und andere Mindestanforderungen ja auch nicht von vorneherein fest, und trotzdem könnte man sagen wenn ich die Auswahl zwischen den Rechnern A, B ” und C hätte, dann würde ich A oder B wählen, aber nicht C“. Die Ähnlichkeit zu den modelltheoretischen Vervollständigungen ist offensichtlich: die Kandidaten entsprechen den Modellen I der Axiome Φ und die Gewinner den intendierten Modellen sel (I). Obwohl der intuitive Hintergrund zunächst also recht unterschiedlich ist, stimmen die beiden Begriffe formal überein. Und es wird sich zeigen, daß sich tatsächlich viele der Eigenschaften und Ergebnisse der Theorie der Wahlverfahren auch auf Vervollständigungen übertragen lassen. So sind dort etwa Eigenschaften, die der Kumulation entsprechen, schon untersucht worden, bevor sie unabhängig davon für Vervollständigungen entdeckt wurden. In [Bra90a] wurde auf die Ähnlichkeit zwischen beiden Gebieten hingewiesen, und es wurden systematisch Eigenschaften und Ergebnisse umformuliert. Insbesondere konnte dadurch eine Charakterisierung der minimale Modelle“-Vervollständigungen gewonnen ” werden. In [DW91] wurde dieser Zusammenhang auch ausgenutzt, allerdings nur der bekannte Satz von Arrow. Andere Formalisierungen des Begriffs der Vervollständigung Eine Vervollständigung läßt sich aber nicht nur als Auswahlfunktion auf den Modellen beschreiben. Als Alternative zu diesen modelltheoretischen Vervollständigungen“ sollen ” nun die syntaktischen Vervollständigungen“ und die vervollständigten Folgerungsrela” ” tionen“ eingeführt werden. Selbstverständlich sind die drei Formalisierungen äquivalent, d.h. man kann zwischen ihnen umrechnen, ohne daß sich der Begriff der korrekten Antwort (s.u.) ändert. Diese verschiedenen Blickrichtungen auf denselben Gegenstand tragen aber sicher zu einem besseren Verständnis bei. Außerdem lassen sich die bekannten Vervollständigungen in unterschiedlichen Formalismen verschieden gut beschreiben. Obwohl die Umrechnung dazwischen immer möglich ist, führt sie nicht notwendigerweise zu einem einfachen und übersichtlichen Ergebnis. Die Eigenschaften in Kapitel 4 werden auch jeweils für alle drei Arten von Vervollständigungen formuliert. Man kann sich dann die für die betrachtete Vervollständigung passendste Formulierung aussuchen; außerdem gilt auch hier wieder, daß verschiedene äquivalente Beschreibungen hilfreich für das Verständnis sind. Die drei Formalisierungen von Vervollständigungen mit den Umrechnungen dazwischen wurden in [Bra90a] eingeführt; natürlich gab es davor schon Beispiele für jede der drei Arten von Vervollständigungen [Rei78, McC80, Rei80], und auch Versuche einer allgemeinen Theorie von Folgerungsrelationen [Gab85]. Häufig werden Vervollständigungen die Axiomenmenge Φ einfach um die angenommenen Default-Ausprägungen aus ∆∗ erweitern, und so eine Obermenge comp(Φ) ⊇ Φ konstruieren, die als Grundlage der Anfragebearbeitung dient (so wie die intendierten Modelle bei 2.2. INTENDIERTE MODELLE 35 modelltheoretischen Vervollständigungen). Allgemein muß comp(Φ) nicht eine Teilmenge von Φ ∪ ∆∗ sein; schon deswegen nicht, weil die verschiedenen Vervollständigungen unterschiedliche Ausprägungsmechanismen verwenden können. Das Ziel von comp ist jedoch immer gleich, nämlich die impliziten Annahmen bei der Anfrageauswertung explizit zu machen. Beispiele für Vervollständigungen dieser Art sind etwa die CWA-Vervollständigungen [Rei78, Min82, YH85, GP86] und die verschiedenen Versionen der first-order“-Cir” cumscription [McC80, Lif85, McC86]. Definition 2.2.9 (Syntaktische Vervollständigung): ständigung ist eine Abbildung comp: 2LΣ → 2LΣ mit Eine syntaktische Vervoll- • Φ ⊆ comp(Φ) für alle Φ ⊆ LΣ ( kein Informationsverlust“), ” • comp(Φ1 ) und comp(Φ2 ) sind äquivalent für jedes Paar Φ1 , Φ2 von äquivalenten Axiomenmengen ( Äquivalenzerhaltung“). ” Die erste Forderung Φ ⊆ comp(Φ)“ ist wohl unstrittig, sie entspricht gerade sel (I) ⊆ I“ ” ” bei modelltheoretischen Vervollständigungen. Höchstens wenn man von Vervollständigungen erwartet, daß sie inkonsistente Formelmengen reparieren“, könnte man auf diese ” Eigenschaft verzichten. Die zweite Forderung Φ1 ∼ = Φ2 =⇒ comp(Φ1 ) ∼ = comp(Φ2 )“ ist jedoch schon ein” schränkender: Prolog-Semantiken erfüllen diese Forderung nicht, weil dort die Regeln gerichtet sind, also außer ihrem logischen Inhalt noch weitere Informationen tragen. So bedeuten etwa p ← ¬q und q ← ¬p etwas ganz unterschiedliches, obwohl beide Regeln logisch äquivalent zu p ∨ q sind (was man in Prolog nicht aufschreiben kann). Ein anderes Beispiel ist p(X) ← p(X), was logisch äquivalent zu true ist, aber nach der CDB-Semantik [Cla78] verhindert, daß Negationen über p angenommen werden können. Bei Prolog ist das Problem, daß die Vervollständigung über die Schreibweise der Regeln implizit mitspezifiziert wird (zusammen mit anderen Steuerinformationen). Dem hier verfolgten Ansatz liegt jedoch die Annahme zugrunde, daß es besser ist, den logischen Gehalt, die Vervollständigung und die Steuerinformation explizit und getrennt von einander zu spezifizieren. Dann könnte ein intelligenter Optimierer das überflüssige Axiom p(X) ← p(X) weglassen oder beliebige andere logische Umformungen vornehmen. Dies war ja wohl auch der ursprüngliche Sinn einer Verwendung der Logik, von der man sich dann aus Effizienzgesichtspunkten doch recht weit entfernt hat. Allerdings ist auch bei Prolog-Semantiken eine Entwicklung in Richtung des hier verfolgten Ansatzes zu erkennen. Neuere Semantiken behandeln die Regel p(X) ← p(X) tatsächlich wie true, und bei stratifizierten Klauselmengen läßt sich die in den Regeln verborgene Zusatzinformation für die Vervollständigung (die Stratifizierung) leicht mechanisch extrahieren. Falls man also eine entsprechende Umschreibphase vorschaltet, passen Prolog-Semantiken doch in den hier angegebenen allgemeinen Rahmen. Eine Möglichkeit hierzu ist auch, Prädikatsymbole zu verdoppeln, also etwa zu jedem Prädikat p ein Prädikat not p einzuführen [Prz91]. Auf diese Weise können sogar Semantiken behandelt 36 KAPITEL 2. DEDUKTIVE DATENBANKEN werden, die eigentlich auf einer dreiwertigen Logik basieren. Ein technischer Grund für die Forderung nach Äquivalenzerhaltung ist schließlich noch, daß nur so die syntaktischen Vervollständigungen äquivalent zu den modelltheoretischen sind: Die modelltheoretischen Vervollständigungen bekommen die Axiome Φ ja gar nicht mehr zu sehen, sondern nur ihre Modelle. Daher können sie natürlich keinen Unterschied zwischen logisch äquivalenten Formulierungen machen. Die dritte Art von Vervollständigungen sind schließlich die vervollständigten Folgerungsrelationen `c . Ihnen liegt der Gedanke zugrunde, daß Vervollständigungen ja eigentlich nur dazu verwendet werden, die korrekten Antworten zu bestimmen. Für boolesche Anfragen ψ (eine variablenfreie Formel) wird man die Antwort ja“ als logisch korrekt ansehen, ” wenn Φ ` ψ gilt. Nun berücksichtigt dies freilich noch nicht die Defaults, so daß die Antwort ja“ häufig intuitiv korrekt, aber nicht logisch korrekt ist. Da beliebige Anfragen ” auf solche booleschen Anfragen zurückgeführt werden können (s.u.), liegt es nahe, einfach den Begriff der Folgerungsrelation zu verallgemeinern. Dafür gibt es eine ganze Reihe von Vorschlägen [Gab85, KLM90]. Die hier angegebene Definition hat den Vorteil, äquivalent zu den anderen Arten von Vervollständigungen zu sein: Definition 2.2.10 (Vervollständigte Folgerungsrelation): Folgerungsrelation ist eine Relation `c ⊆ 2LΣ × LΣ ∗ mit Eine vervollständigte • Φ ` ψ =⇒ Φ `c ψ ( kein Informationsverlust“), ” • Φ `c ψ1 , Φ `c ψ2 =⇒ Φ `c ψ1 ∧ ψ2 ( Abschluß unter ∧“), ” • Φ `c ψ, {ψ} ` ψ 0 =⇒ Φ `c ψ 0 ( Abschluß unter `“), ” • Φ1 `c ψ, Φ1 ∼ = Φ2 =⇒ Φ2 `c ψ ( Äquivalenzerhaltung“). ” Als Folgerungen sind hier nur Formeln ohne Variablen interessant, da Antworten immer alle Variablen der Anfragen binden sollen (aufgrund der Bereichsbeschränkung könnten andere Antworten zumindest niemals logisch korrekt sein, siehe Korollar 2.1.23). Es würden sich auch wesentliche technische Schwierigkeiten ergeben, da es zur Folgerung von Formeln mit Variablen nicht mehr ausreicht, nur Herbrand-Modelle zu betrachten. Die Forderungen kein Informationsverlust“ und Äquivalenzerhaltung“ wurden oben ” ” schon kommentiert. Die Forderung nach dem Abschluß unter ∧“ ist eigentlich auch sehr naheliegend: ” Wenn ψ1 und ψ2 einzeln mit ja“ beantwortet werden, dann sollte auch ψ1 ∧ ψ2 mit ja“ ” ” beantwortet werden — dies ist schließlich die intuitive Semantik der Konjunktion. Diese Forderung wurde schon in [BS85] aufgestellt. Sie gilt aber nicht für alle in der Literatur vorgeschlagenen Default-Semantiken. So nimmt der leichtgläubige“ ( credulous“) Ansatz einfach eine konsistente Menge von ” ” Default-Ausprägungen an, mit der er die Anfrage herleiten kann. Falls es Konflikte zwischen Defaults gibt, kann es durchaus passieren, daß sowohl p als auch ¬p mit ja“ ” beantwortet wird, aber nicht p ∧ ¬p (d.h. false). Der Abschluß unter logischen Folgerungen impliziert u.a. die Umkehrung: Wenn ψ1 ∧ ψ2 mit ja“ beantwortet wird, sollten natürlich auch ψ1 und ψ2 einzeln mit ja“ ” ” 2.2. INTENDIERTE MODELLE 37 beantwortet werden. Außerdem bewirkt der Abschluß unter logischen Folgerungen auch, daß logisch äquivalente Anfragen gleich beantwortet werden. Falls etwa ψ1 ∧ ψ2 mit ja“ ” beantwortet wird, sollte dies ja wohl auch für ψ2 ∧ ψ1 gelten. Schließlich sei noch bemerkt, daß man den Abschluß unter ∧“ und den unter `“ ” ” zusammenfassen kann als Φ `c ψ1 , . . . , Φ `c ψn , {ψ1 , . . . , ψn } ` ψ =⇒ Φ `c ψ. Dies wurde in der obigen Definition nicht getan, um das Problem beim leichtgläubigen Ansatz genauer herauszuarbeiten (er ist unter ` abgeschlossen, aber nicht unter ∧). Jetzt bleibt noch, die Äquivalenz der drei Formalisierungen zu zeigen. Dazu wird zuerst gezeigt, wie man von modelltheoretischen bzw. syntaktischen Vervollständigungen zu vervollständigten Folgerungsrelationen kommt: Definition 2.2.11 (Folgerungsrelation zu einer Vervollständigung): • Sei sel eine modelltheoretische Vervollständigung. Dann ist `csel definiert durch Φ `csel ψ :⇐⇒ sel Mod (Φ) ⊆ Mod (ψ). • Sei comp eine syntaktische Vervollständigung. Dann ist `ccomp definiert durch Φ `ccomp ψ :⇐⇒ comp(Φ) ` ψ. Lemma 2.2.12: • `csel ist eine vervollständigte Folgerungsrelation. • `ccomp ist eine vervollständigte Folgerungsrelation. Beweis: • • - Wenn Φ ` ψ, gilt Mod (Φ) ⊆ Mod (ψ); zusammen mit sel Mod (Φ) ⊆ Mod (Φ) folgt also sel Mod (Φ) ⊆ Mod (ψ), und damit Φ `csel ψ. - Aus Φ `csel ψ1 und Φ `csel ψ2 , d.h. sel Mod (Φ) ⊆ Mod (ψi ) für i = 1, 2 folgt sel Mod (Φ) ⊆ Mod (ψ1 ) ∩ Mod (ψ2 ), also sel Mod (Φ) ⊆ Mod (ψ1 ∧ ψ2 ) und daher Φ `csel ψ1 ∧ ψ2 . - Beim Abschluß unter `c bedeuten die Voraussetzungen sel Mod (Φ) ⊆ Mod (ψ) und Mod (ψ) ⊆ Mod (ψ 0 ). Hieraus ergibt sich sel Mod (Φ) ⊆ Mod (ψ 0 ), d.h. Φ `csel ψ 0 . - Die Äquivalenzerhaltung folgt direkt aus der Konstruktion, Φ1 ∼ = Φ2 bedeutet ja Mod (Φ1 ) = Mod (Φ2 ). Dann gilt natürlich auch sel Mod (Φ1 ) = sel Mod (Φ2 ) . - Gilt Φ ` ψ, so folgt wegen Φ ⊆ comp(Φ) auch comp(Φ) ` ψ, d.h. Φ `ccomp ψ. - Gilt Φ `ccomp ψ1 und Φ `ccomp ψ2 , d.h. comp(Φ) ` ψ1 und comp(Φ) ` ψ2 , so folgt comp(Φ) ` ψ1 ∧ ψ2 (` ist unter ∧ abgeschlossen) und damit Φ `ccomp ψ1 ∧ ψ2 . - Aus comp(Φ) ` ψ und {ψ} ` ψ 0 folgt comp(Φ) ` ψ 0 (` ist transitiv). - Sind Φ1 und Φ2 äquivalent, so auch comp(Φ1 ) und comp(Φ2 ) (wegen der Äquivalenzerhaltung von comp). Dann haben sie natürlich auch dieselben Folgerungen. 2 38 KAPITEL 2. DEDUKTIVE DATENBANKEN In der anderen Richtung ist noch zu zeigen, daß vervollständigte Folgerungsrelationen nicht allgemeiner sind als die anderen beiden Arten von Vervollständigungen, daß es also zu jeder vervollständigten Folgerungsrelation auch eine passende modelltheoretische bzw. syntaktische Vervollständigung gibt. Lemma 2.2.13: • Für jede vervollständigte Folgerungsrelation `c gibt es eine modelltheoretische Vervollständigung sel mit `csel = `c . • Für jede vervollständigte Folgerungsrelation `c gibt es eine syntaktische Vervollständigung comp mit `ccomp = `c . Beweis: • Sei sel definiert durch: sel (I) := Mod {ψ 0 ∈ LΣ ∗ | Th(I) `c ψ 0 } ∩ I. (Der Schnitt mit I ist nötig, denn solange unendliche Modelle betrachtet werden, kann nicht vorausgesetzt werden, daß Mod Th(I) = I gilt.) Falls Φ `c ψ, folgt aus der Konstruktion von sel sofort Φ `c ψ: Da Th Mod (Φ) ∼ =Φ sel auch bei unendlichen Modellen gilt, damit vereinfacht sich die Definition zu sel Mod (Φ) = Mod {ψ 0 ∈ LΣ ∗ | Φ `c ψ 0 } ∪ Φ , also gilt sel Mod (Φ) ⊆ Mod (ψ). Gilt umgekehrt Φ `csel ψ, so bedeutet das nach der Konstruktion Φ ∪ {ψ 0 ∈ LΣ ∗ | Φ `c ψ 0 } ` ψ. Nach dem Kompaktheitssatz gibt es dann aber schon eine endliche Teilmenge {ψ10 , . . . , ψn0 } ⊆ {ψ 0 ∈ LΣ ∗ | Φ `c ψ 0 } mit {ψ10 , . . . , ψn0 } ` ψ. (Die Formeln aus Φ sind tatsächlich nicht nötig, ihre Grundbeispiele aus LΣ ∗ reichen aus, da ja eine variablenfreie Formel abgeleitet werden soll.) Dann folgt aber aus dem Abschluß von `c unter ∧ und `, daß Φ `c ψ. • Die Konstruktion einer entsprechenden syntaktischen Vervollständigung funktioniert ganz ähnlich: comp(Φ) = {ψ 0 ∈ LΣ ∗ | Φ `c ψ 0 } ∪ Φ. Gilt also Φ `c ψ, so ist ψ ∈ comp(Φ), und daher gilt Φ `ccomp ψ. Der umgekehrte Schluß funktioniert wie oben mit dem Kompaktheitssatz und dem Abschluß von `c unter ∧ und `. 2 Daher muß jetzt nicht mehr zwischen den verschiedenen Formalisierungen des Begriffs der Vervollständigung unterschieden werden, jede ist gleichermaßen als Bedeutung einer Default-Spezifikation (∆, <) geeignet. Gegenstand der Untersuchungen in dieser Arbeit sind jetzt aber nicht so sehr einzelne Vervollständigungen, als vielmehr die Beziehung zwischen Default-Spezifikationen und Vervollständigungen: 2.3. ANFRAGEN UND ANTWORTEN 39 Definition 2.2.14 (Default-Semantik): Eine Default-Semantik ist eine Abbildung, die jeder Default-Spezifikation (∆, <) über einer beliebigen Signatur Σ eine (modelltheoretische oder syntaktische) Σ-Vervollständigung sel bzw. comp oder eine vervollständigte Folgerungsrelation `c zuordnet. 2.3 Anfragen und Antworten Eine deduktive Datenbank besteht also aus den Komponenten Signatur, Axiome und Defaults mit Prioritäten (und Integritätsbedingungen, s.u.). Die Semantik der Signatur ist die Menge aller entsprechend strukturierten Interpretationen, die Semantik der Axiome wählt davon eine Teilmenge aus (die Modelle), und die Semantik der Defaults bestimmt schließlich nochmals eine Teilmenge (die intendierten Modelle). Damit sollte es jetzt auch möglich sein, den Hauptzweck einer Datenbank zu erfüllen, nämlich Anfragen zu beantworten. Definitionen Definition 2.3.1 (Anfrage): Eine Anfrage ist eine Σ-Formel ψ, die negativ stark bereichsbeschränkt ist. Die vorkommenden Variablen heißen die Ergebnisvariablen von ψ. Die häufigste Art von Anfragen sind Konjunktionen von Literalen: p1 (. . .) ∧ · · · ∧ pm (. . .) ∧ ¬q1 (. . .) ∧ · · · ∧ ¬qn (. . .). Die Bereichsbeschränkung bedeutet bei Anfragen dieser Form, daß jede Variable in einem positiven Literal mit positiv bindendem Prädikat vorkommen muß (oder in einem negativen Literal mit negativ bindendem Prädikat). Allgemein bewirkt diese Forderung gerade, daß answer (X1 , . . . , Xn ) ← ψ eine bereichsbeschränkte Formel ist, wenn X1 , . . . , Xn die Ergebnisvariablen von ψ sind und answer ein neues (positiv bindendes) Prädikat. Da man jede Formel äquivalent in disjunktive Normalform bringen kann, besteht die Verallgemeinerung nun darin, daß auch Disjunktionen von solchen konjunktiven Anfragen erlaubt sind. Dies erscheint im Kontext unvollständiger Information angemessen, denn solche Disjunktionen können auch in der Datenbank abspeichert werden. Es ist relativ einfach, auch Existenzquantoren am Anfang der Anfrage zu erlauben [Rei78], dann kann man etwa Projektionen direkt formulieren (ohne die Axiome zu erweitern). Mit Allquantoren ist es dagegen etwas schwieriger, hier sei auf [LT84] verwiesen. Natürlich kann man immer eine Erweiterung von Φ um ein Anfrageprogramm“ vor” nehmen, dann kommt man mit einer festen Anfrage der Form answer (X1 , . . . , Xn ) aus. Aber dann hat man nicht mehr die Ähnlichkeit von Anfragebearbeitung und logischer 40 KAPITEL 2. DEDUKTIVE DATENBANKEN Folgerung; außerdem bräuchte man dazu eigentlich einen Modulbegriff, denn natürlich sollen diese neuen Axiome den Inhalt der Datenbank nicht ändern. Definition 2.3.2 (Korrekte Antwort): Eine nichtleere Menge {θ1 , . . . , θn } von ΣGrundsubstitutionen für die Ergebnisvariablen einer Anfrage ψ heißt korrekte Antwort auf ψ genau dann, wenn Φ `c ψθ1 ∨ · · · ∨ ψθn . Eine korrekte Antwort heißt definit, wenn sie aus genau einem Element besteht. Eine korrekte Antwort heißt minimal, wenn keine echte Teilmenge von ihr ebenfalls eine korrekte Antwort ist. Eine Antwort soll also Werte (Konstanten) für die Ergebnisvariablen der Anfrage bestimmen, derart, daß die entstehende Formel aus den Informationen in der Datenbank folgt. Dabei wird eine vervollständigte Folgerungsbeziehung `c verwendet, um die Defaults zu berücksichtigen. Natürlich kann `c auch durch eine modelltheoretische oder syntaktische Vervollständigung gegeben sein, wie oben beschrieben. Außerdem sind disjunktive Antworten zulässig, die mehr als eine Substitution angeben [Gre69, Rei78]. Dies erlaubt es, disjunktive Informationen in der Datenbank direkt abzufragen. Würde es keine disjunktiven Antworten geben, müßte man entsprechend disjunktive Anfragen aufschreiben und könnte niemals sicher sein, auch ausreichend viele Disjunktionsglieder aufgeschrieben zu haben. Natürlich sind nur minimale disjunktive Antworten interessant. Schließlich beachte man noch, daß Antworten hier alle Variablen mit Konstanten belegen müssen (da es sich um Grundsubstitutionen handelt). Dies ist ein Unterschied zu Prolog, wo die Antworten auch Variablen enthalten können. Tatsächlich ist diese Forderung aber bei bereichsbeschränkten Formeln sehr natürlich, denn solche Antworten könnten niemals logisch korrekt sein (Korollar 2.1.23). Bei Vervollständigungen ist dies dagegen nur eine Festlegung (nicht beweisbar). Natürlich gibt es eine ganze Reihe von Alternativen zu dieser Definition von korrekter Antwort. So kann man etwa den Begriff der Substitution vermeiden, wenn man stattdessen die Gleichheit verwendet (siehe etwa [Bra88]). Interessant ist auch die Definition in [CGS89]: Hier ist eine Antwort auf eine disjunktive Anfrage ψ1 ∨ · · · ∨ ψn eine Disjunktion von Grundbeispielen der ψi , also eine Formel der Art ψi1 θ1 ∨· · ·∨ψim θm . Dies hat den Effekt, daß die Antwort spezifischer sein kann als die Anfrage (m < n), denn man erfährt auch, welche Disjunktionsglieder erfüllt sind. Allerdings dürfte in dem typischen Fall einer nicht-disjunktiven Anfrage diese Art von Antworten länger und unübersichtlicher sein als die oben definierten. Unabhängigkeit von der Signatur Die Korrektheit einer Antwort sollte nicht davon abhängen, ob die Signatur außer den in den Axiomen und Defaults explizit auftretenden Konstanten noch weitere enthält. 2.3. ANFRAGEN UND ANTWORTEN 41 Sonst kann es beim Einfügen und Löschen von Axiomen oder Defaults zu überraschenden Effekten kommen: Beispiel 2.3.3: Sei Φ := {p(X) ∨ q, p(c1 )} und ∆ := {¬p(X), ¬q}, dabei habe der erste Default höhere Priorität. Diese Formeln sind nicht bereichsbeschränkt: Nach den Axiomen könnte p noch ein negativ bindendes Prädikat sein, aber dann wäre der Default ¬p(X) nicht bereichsbeschränkt. Ist c1 nun die einzige Konstante, so ist ¬p(c1 ) die einzige Ausprägung von ¬p(X). Sie kann aber sicherlich nicht angenommen werden, da genau das Gegenteil als Axiom spezifiziert ist. Also hat der Default ¬q keine Konkurrenten, er sollte jedenfalls von jeder vernünftigen Semantik angenommen werden. Daher ist die Antwort ja“ eine korrekte ” Antwort auf die Anfrage ¬q. Die Situation ändert sich, wenn es eine weitere Konstante c2 gibt. Denn nun stehen die Default-Ausprägungen ¬p(c2 ) und ¬q im Konflikt miteinander. Da ¬p(c2 ) höhere Priorität hat, wird dieser Default also angenommen. Die Anfrage ¬q kann jetzt nicht mehr mit ja“ beantwortet werden, tatsächlich folgt ja sogar ihre Negation. 2 ” Zunächst ist es interessant, festzuhalten, daß diese Probleme von der Vervollständigung verursacht werden. Bei der logischen Folgerung ist die Unabhängigkeit von der Signatur immer gegeben, selbst wenn man nicht bereichsbeschränkte Axiome zuläßt: Satz 2.3.4: Seien Σ ⊆ Σ0 Signaturen, die zu jeder Sorte mindestens eine Konstante enthalten, aber keine vordefinierten Prädikate. Sei weiter Φ eine Menge von Σ-Formeln und ψ eine variablenfreie Σ-Formel. Dann gilt Φ `Σ ψ ⇐⇒ Φ `Σ0 ψ (Dabei bedeute Φ `Σ ψ, daß alle Σ-Herbrandmodelle von Φ auch Modelle von ψ sind.) Beweis: • =⇒ “: Gelte nicht Φ `Σ0 ψ. Dann gibt es ein Σ0 -Herbrandmodell I 0 von Φ mit I 0 6|= ψ. ” Sei I das Σ-Redukt von I 0 . Da Φ keine Existenzaussagen enthält, gilt I |= Φ (wäre ein Σ-Grundbeispiel ϕ in I nicht erfüllt, so ist es natürlich auch nicht in I 0 erfüllt). Weil ψ variablenfrei ist, hat es in I denselben Wahrheitswert wie in I 0 , d.h. I 6|= ψ. • ⇐= “: Sei umgekehrt I ein Σ-Herbrandmodell von Φ mit I 6|= ψ. Dieses Herbrandmodell ” muß nun zu einem Σ0 -Herbrandmodell I 0 erweitert werden. Die oben definierte StandardErweiterung eignet sich nur für bereichsbeschränkte Formeln. Hier kann man aber auch einfach die neuen Konstanten als Synonyme für alte interpretieren. Sei also f : C 0 → C eine Abbildung mit f (c) = c für alle c ∈ C (an dieser Stelle wird benötigt, daß es in Σ eine Konstante jeder Sorte gibt, von der es in Σ0 Konstanten gibt). Dann sei I 0 das Σ0 Herbrandmodell mit (c1 , . . . , cn ) ∈ I 0 [ p]] :⇐⇒ f (c1 ), . . . , f (cn ) ∈ I[[p]] (diese Definition ist nur möglich, wenn p kein vordefiniertes Prädikat ist). Würde nun ein Σ0 -Grundbeispiel ϕ einer Formel aus Φ in I 0 nicht erfüllt, so würde es nach Anwendung 42 KAPITEL 2. DEDUKTIVE DATENBANKEN von f in I nicht erfüllt, im Widerspruch zur Voraussetzung. Die variablenfreie Formel ψ wird wieder in I und I 0 gleich ausgewertet, also gilt I 0 6|= ψ. 2 Die beiden Einschränkungen sind auch wirklich nötig, wie man an Φ := {p(X), ¬p(X)} bzw. Φ := {X = c} sieht: In beiden Fällen würde die Erweiterung auf Signaturen mit mehr Konstanten nicht funktionieren. Natürlich treten diese Probleme bei bereichsbeschränkten Formeln nicht auf. Warum ist die Situation im Zusammenhang mit Defaults nun so viel komplizierter? Die einfachste Erklärung ist wohl, daß über die Default-Ausprägungen automatisch eine Abhängigkeit von der Signatur entsteht — ∆∗ enthält ja die Grundbeispiele bezüglich der jeweils betrachteten Signatur. Dadurch gilt nicht mehr, daß das Redukt eines intendierten Modells auch ein intendiertes Modell ist, oder umgekehrt ein intendiertes Modell sich zu einem intendierten Modell erweitern läßt. Das Problem sind hier die Konflikte zwischen neuen und alten Default-Ausprägungen. Bereichsbeschränkte Axiome und Defaults haben nun den Vorteil, daß sie für neue Konstanten auf jeden Fall gelten, sie können also keine Konflikte verursachen. Natürlich kann man aus der obigen Definition von Vervollständigung die SignaturUnabhängigkeit nicht herleiten, schon deshalb nicht, weil dies keine Anforderung an eine einzelne Vervollständigung ist, diese basiert ja auf einer festen Signatur. Vielmehr ist dies eine Anforderung an die Default-Semantik, die also einer Default-Spezifikation (∆, <) eine Vervollständigung zuordnet. Definition 2.3.5 (Unabhängig von der Signatur): Eine Default-Semantik heißt unabhängig von der Signatur, wenn für alle Signaturen Σ ⊆ Σ0 und alle Σ-DefaultSpezifikationen (∆, <) die zugeordneten Vervollständigungen `cΣ und `cΣ0 folgende Eigenschaft haben: Φ `cΣ ψ ⇐⇒ Φ `cΣ0 ψ. Natürlich möchte man diese Eigenschaft auch für syntaktische und modelltheoretische Vervollständigungen formulieren. Hier werden nur hinreichende Kriterien angegeben, weil diese einfacher sind: Lemma 2.3.6: Sei Σ ⊆ Σ0 , sel eine modelltheoretische Σ-Vervollständigung und sel 0 eine Σ0 -Vervollständigung, die folgende Bedingungen erfüllt: • Ist I ∈ sel Mod Σ (Φ) , so gibt es eine Erweiterung I 0 mit I 0 ∈ sel 0 Mod Σ0 (Φ) . • Ist I 0 ∈ sel 0 Mod Σ0 (Φ) , so gilt für das Σ-Redukt I von I 0 : I ∈ sel Mod Σ (Φ) . Dann gilt: Φ `sel ψ ⇐⇒ Φ `sel 0 ψ. Beweis: Gilt Φ 6`sel ψ, so gibt es I ∈ sel Mod Σ (Φ) mit I 6|= ψ. Dazu gibt es nach der ersten Bedingung eine Σ0 -Erweiterung I 0 ∈ sel 0 Mod Σ0 (Φ) , für die dann natürlich auch I 0 6|= ψ gilt. Die umgekehrte Richtung folgt ebenso direkt aus der zweiten Bedingung. 2 2.3. ANFRAGEN UND ANTWORTEN 43 Lemma 2.3.7: Sei Σ ⊆ Σ0 und seien comp/comp 0 syntaktische Σ/Σ0 -Vervollständigungen, die folgende Bedingungen erfüllen: • comp(Φ) = comp 0 (Φ) ∩ L+ Σ, • comp(Φ) ∪ (∆∗Σ0 − ∆∗Σ ) ` comp 0 (Φ). Dann gilt Φ `comp ψ ⇐⇒ Φ `comp 0 ψ. Beweis: Gelte comp(Φ) 6`Σ ψ und sei I ein Σ-Herbrand-Modell von comp(Φ) mit I 6|= ψ. Sei I 0 eine Standard-Erweiterung von I auf Σ0 . Nach Lemma 2.1.20 erfüllt I 0 die Formeln aus ∆∗Σ0 −∆∗Σ , nach der zweiten Bedingung ist I 0 dann Modell von comp 0 (Φ). Also gilt comp 0 (Φ) 6`Σ0 ψ. Gelte umgekehrt comp 0 (Φ) 6`Σ0 ψ und sei I 0 ein Σ0 -Herbrand-Modell von comp 0 (Φ). Nach der ersten Bedingung ist I 0 dann auch Modell von comp(Φ). Da es sich um Allaussagen handelt, ist auch das Σ-Redukt I von I 0 ein Modell von comp(Φ). Damit folgt aber comp(Φ) 6`Σ ψ. 2 Alle in Kapitel 5 vorgeschlagenen Default-Semantiken garantieren die Unabhängigkeit von der Signatur. Der Grund hierfür ist, daß für die Entscheidung, welche Defaults angenommen werden, nur maximale konsistente Mengen von Default-Ausprägungen relevant sind (bei diesen Semantiken). Diese Mengen bezüglich Σ0 sind aber gerade die Mengen bezüglich Σ vereinigt mit den neuen Default-Ausprägungen ∆∗Σ0 − ∆∗Σ . Alle diese Default-Semantiken haben nun die Eigenschaft, daß so ein konstanter Anteil von DefaultAusprägungen keinen Einfluß auf die Auswahl der übrigen hat. Endlichkeit der Antwortmenge Die Menge der korrekten Antworten sollte immer endlich sein, denn von einer Datenbank wird erwartet, daß sie mengenorientiert arbeitet, d.h. insbesondere die Menge der korrekten Antworten als Ganzes ausgibt. Das ist aber offensichtlich unmöglich, wenn diese Menge unendlich ist. Ein Beispiel wären die folgenden (nicht bereichsbeschränkten) Regeln, die die Menge der Zweierpotenzen definieren: zweierPotenz (1). zweierPotenz (X) ← zweierPotenz (Y ) ∧ X = Y + Y. Die zweite Regel ist nicht bereichsbeschränkt, weil X nicht gebunden ist. Bei Prolog tritt dieses Problem nicht auf, da hier immer nur eine Antwort auf einmal ausgegeben wird. Außerdem sollten in den korrekten Antworten nur Konstanten vorkommen, die auch in den Axiomen oder Defaults vorkommen. Dies impliziert natürlich sofort die erste Forderung (in den Axiomen und Defaults können ja nur endlich viele Konstanten vorkommen). Definition 2.3.8 (Beschränkung der Antworten): Eine Σ0 -Vervollständigung `c erzeugt keine Antworten außerhalb von Σ0 , wenn für alle Signaturen Σ mit Σ0 ⊆ Σ ⊆ Σ0 und alle Σ-Axiomenmengen Φ, Σ-Anfragen ψ, Σ0 -Antwortsubstitutionen θ1 , . . . , θn gilt: Φ `c ψθ1 ∨ · · · ∨ ψθn =⇒ Φ `c ψθ1 ∨ · · · ∨ ψθm , dabei seien θ1 , . . . , θm (m < n) die Substitutionen, die nur Σ-Konstanten enthalten. 44 KAPITEL 2. DEDUKTIVE DATENBANKEN Die untere Schranke Σ0 ist nötig, weil auch die in den Defaults vorkommenden Konstanten berücksichtigt werden müssen. So ist der Default p(c) natürlich stark bereichsbeschränkt, denn er enthält ja keine Variablen. Aufgrund dieses Defaults ist aber die Antwort hX/ ci auf die Anfrage p(X) möglich, selbst wenn c nicht in den Axiomen vorkommt. Lemma 2.3.9: Sei sel eine modelltheoretische Σ0 -Vervollständigung, ∆ eine Σ0 ⊆ Σ0 Defaultmenge und gelte: • Ist I1 ∈ sel (I) und I2 ∈ I mit δ ∈ ∆∗Σ0 I1 |= δ ⊆ δ ∈ ∆∗Σ0 I2 |= δ , so ist I2 ∈ sel (I). Dann erzeugt `sel keine Antworten außerhalb von Σ0 . Beweis: Wäre ψθm+1 ∨ · · · ∨ ψθn in der Disjunktion nötig, so müßte es I1 ∈ sel Mod (Φ) geben mit I1 6|= ψθi für i = 1, . . . , m. Sei nun folgende Σ-Formelmenge betrachtet: Φ ∪ δ ∈ ∆∗Σ I1 |= δ (hier wird benötigt, daß ∆ eine Σ0 ⊆ Σ-Formelmenge ist). Natürlich ist I1 ein Σ0 -Modell dieser Formelmenge, und daher ist das Σ-Redukt I von I1 ein Σ-Modell. Sei nun I2 eine StandardErweiterung von I auf Σ0 . Dann gilt δ ∈ ∆∗ 0 I1 |= δ ⊆ δ ∈ ∆∗ 0 I2 |= δ , Σ Σ denn von den Default-Ausprägungen aus ∆∗Σ erfüllt I2 dieselben wie I1 , und die übrigen Default Ausprägungen ∆∗Σ0 − ∆∗Σ erfüllt I2 nach Lemma 2.1.20 alle. Also ist I2 ∈ sel Mod (Φ) . Ebenfalls nach Lemma 2.1.20 gilt aber I2 6|= ψθj für j = m + 1, . . . , n (dies ist ja äquivalent zu (I2 , θj ) 6|= ψ). Da I2 mit I1 auf Σ übereinstimmt gilt natürlich auch I2 6|= ψθi für i = 1, . . . , m. Das bedeutet aber Φ 6`sel ψθ1 ∨ · · · ∨ ψθn . 2 Diese Eigenschaft wird in Kapitel 4 noch gründlicher untersucht (Eigenschaft SCD). Alle in Kapitel 5 definierten Default-Semantiken haben diese Eigenschaft. Lemma 2.3.10: Sei comp eine modelltheoretische Σ0 -Vervollständigung und ∆ eine Σ0 ⊆ Σ0 -Defaultmenge mit: • comp(Φ) − Φ ist äquivalent zu einer Menge von ∧/∨-Verknüpfungen von DefaultAusprägungen ∆∗Σ0 . Dann erzeugt `comp keine Antworten außerhalb von Σ0 . Beweis: Der Beweis verläuft ganz entsprechend zu dem von Lemma 2.3.9. 2 Hat man die Unabhängigkeit von der Signatur und diese Eigenschaft, so reicht es aus, nur die Signatur Σ aus den in Φ und ∆ wirklich vorkommenden Symbolen zu betrachten (anstelle der eigentlich vereinbarten Signatur Σ0 ). Antworten, die Konstanten aus Σ0 − Σ enthalten, sind auf jeden Fall nicht minimal. Die Unabhängigkeit von der Signatur erlaubt es, zur Überprüfung der Korrektheit der übrigen Antworten nur Σ zu betrachten. Da Φ und ∆ endlich sind, ist Σ endlich. Dann ist aber auch die Menge aller HerbrandInterpretationen IΣ endlich. Dies erlaubt es etwa, jede Teilmenge I ⊆ IΣ durch eine Formel th(I) zu beschreiben. Im folgenden (Kapitel 4 und 5) werden daher nur noch endliche Signaturen betrachtet. 2.3. ANFRAGEN UND ANTWORTEN 45 Normalformsätze Die meisten automatische Beweiser basieren auf der Resolutionsmethode und arbeiten nur mit Klauseln. Deswegen ist es wichtig, allgemeine Axiomenmengen, Anfragen und Defaults in eine Klauseldarstellung zu überführen. Bei den Axiomenmengen ist dies kein Problem, die Klauseldarstellung ist ja logisch äquivalent und Vervollständigungen müssen solche Äquivalenzumformungen zulassen. Bei Anfragen und Defaults ist dagegen eine Erweiterung der Signatur erforderlich: Definition 2.3.11 (Normalform): Seien eine Signatur Σ, eine Axiomenmenge Φ, eine Anfrage ψ und eine Default-Spezifikation (∆, <) gegeben. Dann ist die Normalform dieser Datenbank-Anwendung wie folgt bestimmt: • Σ0 sei eine Erweiterung von Σ um neue Prädikate: - answer (positiv bindend) mit Argumentsorten entsprechend den Ergebnisvariablen von ψ, - default δ (negativ bindend) für jeden Default δ ∈ ∆, wobei die Argumentsorten den in δ vorkommenden Variablen entsprechen. • Φ0 sei die Erweiterung von Φ um folgende Formeln: - answer (X1 , . . . , Xn ) ← ψ, dabei seien X1 , . . . , Xn die Ergebnisvariablen von ψ, - δ ← default δ (X1 , . . . , Xn ), dabei seien X1 , . . . , Xn die Variablen in δ. 0 • ψ sei die Anfrage answer (X1 , . . . , Xn ). • ∆0 bestehe aus default δ (X1 , . . . , Xn ) für jeden Default δ ∈ ∆. • <0 sei definiert durch default δ1 (. . .) <0 default δ2 (. . .) :⇐⇒ δ1 < δ2 . Natürlich kann man auch statt den Defaults default δ (X1 , . . . , Xn ) die typischen Negationen ¬blocked δ (X1 , . . . , Xn ) verwenden, die entsprechenden Axiome sind dann: δ ← ¬blocked δ (X1 , . . . , Xn ). In diesem Sinne ist es also keine echte Verallgemeinerung, beliebige Formeln als Defaults zuzulassen und nicht nur Negationen. Allerdings ist diese Normalformbildung hier nur ein Implementierungstrick, für den Benutzer ist es schon übersichtlicher, allgemeine Formeln als Defaults verwenden zu können. Diese Normalformbildung würde von dem Default kann fliegen(X) ← vogel (X) zu dem Axiom kann fliegen(X) ← vogel (X) ← ¬blocked (X) und dem Default ¬blocked (X) führen. Das Axiom ist äquivalent zu kann fliegen(X) ← vogel (X) ∧ ¬blocked (X). Es ist wohl schon eine Hilfe für den Entwerfer, wenn eine solche Umformung automatisch geschieht. 46 KAPITEL 2. DEDUKTIVE DATENBANKEN Außerdem darf man aus der Möglichkeit einer solchen Normalform nicht den voreiligen Schluß ziehen, daß man mit dem hier vorgestellten Ansatz doch nichts gegenüber Prolog gewonnen hat. So können hier die Axiome beliebige Gestalt haben, etwa ¬kann fliegen(X) ← pinguin(X). Bei Prolog müßte man nun Resolutionsschritte vorab berechnen, um etwa auf blocked (X) ← pinguin(X) zu kommen (das ist im allgemeinen nicht so einfach wie in diesem Beispiel, siehe [GL89]). Man muß sich beim Aufschreiben dieser Regel also über den Konflikt zu dem Default bewußt sein, während die Aussage Pinguine können nicht fliegen“ auch unabhängig von ” dem Default Sinn macht. Schließlich beachte man noch, daß diese Normalform nicht für beliebige Prädikate Negationen annimmt. Auch dies ist ein Unterschied zu einfachen Negations-Semantiken. Definition 2.3.12 (Erlaubt Normalformbildung): Eine Default-Semantik erlaubt die Normalformbildung, wenn für alle Σ, Φ, ψ, ∆, < mit Normalform Σ0 , Φ0 , ψ 0 , ∆0 , <0 und alle Σ-Grundsubstitutionen θ1 , . . . , θk (für die Ergebnisvariablen von ψ bzw. ψ 0 ) gilt: Φ `cΣ,∆,< ψθ1 ∨ · · · ∨ ψθk ⇐⇒ Φ0 `cΣ0 ,∆0 ,<0 ψ 0 θ1 ∨ · · · ∨ ψ 0 θk . Alle in Kapitel 5 behandelten Default-Semantiken außer der starken CWA erlauben die Normalformbildung. Der Grund hierfür ist, daß die Default-Semantiken eigentlich gar nicht die Struktur der Axiome und der Defaults betrachten oder gar die Namen der Prädikate. Es ist einzig und allein wichtig, welche Mengen von Default-Ausprägungen konsistent angenommen werden können. Falls diese Mengen nun isomorph sind (wie es die obige Normalformbildung gerade garantiert), dann verhält sich die Default-Semantik im wesentlichen auch gleich. Technisch ist das allerdings ziemlich aufwendig zu formalisieren und wird hier nur für modelltheoretische Vervollständigungen durchgeführt. Für syntaktische Vervollständigungen gilt eine ganz entsprechende Aussage. Definition 2.3.13 (Ähnliche Modellmengen): Seien (∆1 , <1 ) und (∆2 , <2 ) DefaultSpezifikationen über Σ1 und Σ2 und f : ∆∗1 → ∆∗2 eine bijektive Abbildung mit δ <1 δ 0 ⇐⇒ f (δ) <2 f (δ 0 ). Zwei Mengen I1 und I2 von Σ1 - und Σ2 -Interpretation heißen f -ähnlich, wenn • für alle I1 ∈ I1 gibt es I2 ∈ I2 mit f (δ1 ) δ1 ∈ ∆∗1 , I1 |= δ1 ⊆ δ2 δ2 ∈ ∆∗2 , I2 |= δ2 , • für alle I2 ∈ I2 gibt es I1 ∈ I1 mit f (δ1 ) δ1 ∈ ∆∗1 , I1 |= δ1 ⊇ δ2 δ2 ∈ ∆∗2 , I2 |= δ2 . Definition 2.3.14 (rational): Eine Default-Semantik heißt rational, wenn für alle Default-Spezifikationen (∆1 , <1 ) über Σ1 und (∆2 , <2 ) über Σ2 , die zugehörigen modelltheoretischen Vervollständigungen sel 1 und sel 2 , und alle I1 ⊆ IΣ1 und I2 ⊆ IΣ2 folgendes gilt: 2.3. ANFRAGEN UND ANTWORTEN 47 Wenn für ein f die Mengen I1 und I2 f -ähnlich sind, dann gilt für alle I1 ∈ I1 ∗ und I2 ∈ I2 mit f (δ1 ) δ1 ∈ ∆1 , I1 |= δ1 ⊆ δ2 δ2 ∈ ∆∗2 , I2 |= δ2 : I1 ∈ sel 1 (I1 ) =⇒ I2 ∈ sel 2 (I2 ). Satz 2.3.15: Ist eine Default-Semantik rational, so erlaubt sie die Normalformbildung. Beweis: Die bijektive Abbildung zwischen den Default-Ausprägungen sei f (δθ) := default δ (X1 , . . . , Xn )θ. Man kann nun leicht aus jedem Σ-Modell I von Φ eine Σ0 -Modell I 0 von Φ0 machen, das die bezüglich f entsprechenden Default-Ausprägungen erfüllt. Dazu definiert man I 0 [ default δ ] := (c1 , . . . , cn ) I |= δhX1 / c1 , . . . , Xn / cn i , I 0 [ answer ] := (c1 , . . . , cn ) I |= ψhX1 / c1 , . . . , Xn / cn i . Umgekehrt erfüllt das Σ-Redukt I eines Modells I 0 von Φ0 mindestens die bezüglich f −1 entsprechenden Default-Ausprägungen, denn Φ0 enthält die Formeln δ ← default δ (X1 , . . . , Xn ). Damit ist die Voraussetzung der obigen Bedingung erfüllt. Gelte Φ 6`sel ψθ1 ∨ · · · ∨ ψθk . Dann gibt es also I ∈ sel Mod (Φ) mit I 6|= ψθ1 ∨ · · · ∨ ψθk . Das oben konstruierte Modell I 0 von Φ0 erfüllt gerade die f -entsprechenden Defaults, es ist also nach der obigen Bedingung ein intendiertes Modell von Φ0 . Nach der Konstruktion gilt natürlich I 0 6|= ψ 0 θ1 ∨ · · · ∨ ψ 0 θk , damit folgt Φ0 6`sel 0 ψ 0 θ1 ∨ · · · ∨ ψ 0 θk . Gelte umgekehrt Φ0 6`sel 0 ψ 0 θ1 ∨ · · · ∨ ψ 0 θk und sei I 0 das entsprechende intendierte Modell. Das Σ-Redukt I von I 0 erfüllt mindestens dieselben Defaults (unter f −1 ), ist also ein intendiertes Modell von Φ. Außerdem enthält Φ0 die Formel answer (X1 , . . . , Xn ) ← ψ. Wegen I 0 6|= ψθ1 ∨ · · · ∨ ψθk gilt I 6|= ψθ1 ∨ · · · ∨ ψθk und damit Φ 6`sel ψθ1 ∨ · · · ∨ ψθk . 2 Integritätsbedingungen Zum Abschluß dieses Kapitels sollen noch einige informale Bemerkungen zu Integritätsbedingungen gemacht werden, da sie zwar zu deduktiven Datenbanken dazugehören, aber im weiteren Verlauf dieser Arbeit nicht wichtig sind. Integritätsbedingungen sind Formeln, die die zulässigen Axiomenmengen (und Defaults) einschränken sollen, so daß Fehler erkannt werden. Der Maßstab für Fehler sind dabei die möglichen Zustände der realen Welt. Wenn die Datenbank etwa Geburts- und Todesjahr historischer Persönlichkeiten enthält, dann sollte die Differenz nicht-negativ und kleiner als 120 sein. Manche Integritätsbedingungen werden auch erst durch Einschränkungen bei den angebotenen Datenstrukturen nötig. So hat etwa jede Person genau eine Blutgruppe. Dies ließe sich direkt mit einem (nicht-generierenden) Funktionssymbol formulieren. Hier muß man jedoch ein zweistelliges Prädikat und passende Integritätsbedingungen verwenden. 48 KAPITEL 2. DEDUKTIVE DATENBANKEN Für die Erfüllung von Integritätsbedingungen gibt es verschiedene Formalisierungen: Erstens kann man sie einfach in die Axiomenmenge Φ einfügen, deren Konsistenz ja ohnehin als überwacht vorausgesetzt ist. Zweitens kann man fordern, daß die Integritätsbedingungen mit der Axiomenmenge Φ konsistent sind. Dies bewirkt einerseits, daß die Integritätsbedingungen nicht bei der Anfragebearbeitung genutzt werden. Das ist nicht besonders wünschenswert, da es sich ja um zusätzliches Wissen“ in der deduktiven Datenbank handelt, was natürlich auch ” abfragbar sein sollte. Andererseits werden nur die Axiome überwacht, die Defaults können aber durchaus gegen die Bedingungen verstoßen. Aus diesen beiden Gründen ist die erste Lösung vorzuziehen. Drittens kann man verlangen, daß die Integritätsbedingungen mit der Vervollständigung comp(Φ) der Axiomenmenge konsistent sind. Das bedeutet, daß die Menge der korrekten Antworten auf die Negation der Integritätsbedingungen leer sein sollte. So läßt sich etwa eine Fremdschlüsselbedingung aufgrund der Einschränkung auf quantorenfreie Formeln nicht als Axiom formulieren, wohl aber als Anfrage: bestellung(X, Y ) ∧ ¬angebot(X). Dies liefert alle Aufträge über Waren, die gar nicht angeboten werden. Viertens kann man auch fordern, daß die Integritätsbedingungen als Anfrage mit ja“ ” beantwortet werden, also vervollständigt impliziert werden. Das Problem ist dabei, daß Integritätsbedingungen typischerweise Allaussagen sind, als Anfragen aber gerade nur Existenzaussagen zulässig sind. Wäre aber eine Anfrage der Form ∀X, Y bestellung(X, Y ) → angebot(X) erlaubt, so wäre sie im Fall von unvollständiger Information eine strengere Einschränkung als die dritte Formalisierung. Hier wird bei unvollständiger Information angenommen, daß die Integritätsbedingung verletzt ist, während oben im Zweifelsfall davon ausgegangen wird, daß sie erfüllt ist. Mit neuen Prädikaten und entsprechenden Vervollständigungen ist aber wohl eine Umrechnung zwischen beiden Formalisierungen möglich. Der Unterschied zur ersten Lösung ist, daß sich dort die Defaults automatisch an die Integritätsbedingungen anpassen, während sie beim dritten und vierten Vorschlag zu einer Integritäts-Verletzung führen können. Neben den hier betrachteten statischen Integritätsbedingungen, die sich auf jeden einzelnen Zustand der Datenbank beziehen, gibt es auch dynamische oder temporale Integritätsbedingungen, die Zustandsübergänge bzw. Zustandsfolgen einschränken [Lip89]. Dort wird auch auf die Überwachung von Integritätsbedingungen mittels entsprechend angepaßter Transaktionen eingegangen. Für einen Vorschlag zur direkten Überwachung statischer Integritätsbedingungen sei etwa auf [BDM88, GL90] verwiesen. Kapitel 3 Anwendungsbeispiele In diesem Kapitel werden einige Anwendungsbeispiele besprochen. Das Ziel ist, die Brauchbarkeit allgemeiner Defaults zu motivieren, und zu zeigen, wie sie in konkreten Anwendungen gewählt würden. So wird am Beispiel schon die Semantik der Defaults geklärt, die dann in späteren Kapiteln formal definiert wird. Damit hat man einen Maßstab für die Korrektheit dieser Definition — es sollten ja mindestens die Beispiele so behandelt werden, wie es hier intuitiv richtig erscheint. Es wird sich aber auch zeigen, daß die Anforderungen manchmal widersprüchlich sind, es also verschiedene Semantiken für Defaults geben kann. Dies motiviert den hier verfolgten Ansatz, einen Überblick über alle möglichen Semantiken anzustreben. In diesem Kapitel werden auch Anwendungen betrachtet, die üblicherweise in anderen Logiken spezifiziert werden, etwa dynamischen oder objekt-orientierten. Hier wird natürlich eine Fassung in der aus Kapitel 2 bekannten Logik zugrunde gelegt, aber es wird damit zumindest angedeutet, daß sich die Ergebnisse dieser Arbeit auch auf andere Logiken übertragen lassen. Teilweise handelt es sich nur um syntaktischen Zucker“, der ” in praktischen Spezifikationen sehr wichtig ist, aber leicht mechanisch entfernt werden kann. 3.1 Implizite Negation Die klassische Verwendung von Defaults ist die implizite Negation, die also auf Defaults der folgenden Form basiert: ¬p(X1 , . . . , Xn ). Im Datenbankbereich wurden solche Defaults erstmals verwendet, als man feststellte, daß sich bei der Auffassung einer relationalen Datenbank als Menge von Formeln ( Theorie” Ansatz“) Unterschiede zum üblichen Modell-Ansatz ergaben. Hier waren die betrachteten Axiome zunächst Fakten, die dann auf Hornklauseln und Klauseln mit stratifizierter Negation erweitert wurden. In allen diesen Fällen gibt es bis auf Isomorphie nur ein intendiertes Modell, d.h. für jede Formel ψ gilt, daß entweder ψ oder ¬ψ vervollständigt folgen. Die repräsentierte Information ist dann also vollständig. 49 50 KAPITEL 3. ANWENDUNGSBEISPIELE Im Datenbankbereich gibt es aber seit langem den Wunsch, auch unvollständige Information darstellen zu können, etwa mit Hilfe von Nullwerten. Es ist sicher einer der Vorteile des Theorie-Ansatzes, daß sich hier verschiedene Arten von unvollständiger Information auf einfache Weise beschreiben lassen. Natürlich muß die Semantik der NegationsDefaults entsprechend angepaßt werden, und es wird sich zeigen, daß die verschiedenen Beispiele hier unterschiedliche Semantiken verlangen. Faktenmengen und Hornklauseln Beispiel 3.1.1: Eine relationale Datenbank kann als Menge von Fakten verstanden werden. Dies wurde schon in der Einleitung am Beispiel einer Auftrags-Relation gezeigt: bestellung kunde meier schmidt schmidt ware taschenlampe radio batterien Sie entspricht der Menge Φ mit folgenden Axiomen: bestellung(meier , taschenlampe), bestellung(schmidt, radio), bestellung(schmidt, batterien). Es sei nun nach den Kunden gefragt, die eine Taschenlampe ohne die zugehörigen Batterien bestellt haben, d.h. ψ ist folgende Formel: bestellung(X, taschenlampe) ∧ ¬bestellung(X, batterien). Natürlich ist die Antwort hX / meier i intuitiv korrekt. Dazu müßte für die verwendete Vervollständigung insbesondere Φ `c ¬bestellung(meier , batterien) gelten. Da eine Vervollständigung mindestens die logischen Folgerungen liefern muß, gilt natürlich Φ `c bestellung(meier , taschenlampe). Die Formel ψhX/ meier i folgt dann, weil `c unter ∧ abgeschlossen ist. 2 Das in diesem Beispiel gewünschte Verhalten läßt sich natürlich leicht auf beliebige Faktenmengen Φ verallgemeinern: Offenbar ist die Intuition, daß Grundliterale ausgewertet werden sollen, indem in den Tabellen nachgeschaut wird. Die intendierte Vervollständigung ist also: comp(Φ) := Φ ∪ {¬ϕ | ϕ ist ein positives Grundliteral mit ϕ 6∈ Φ}. Dies ist ein Spezialfall der originalen CWA, die 1978 von Raymond Reiter vorgeschlagen wurde: cwa orig (Φ) := Φ ∪ {¬ϕ | ϕ ist ein positives Grundliteral mit Φ 6` ϕ}. Sie funktioniert für Mengen von Hornklauseln: 3.1. IMPLIZITE NEGATION 51 Beispiel 3.1.2: Im obigen Beispiel könnte man etwa die Menge der bestellten Waren folgendermaßen definieren: bestellt(X) ← bestellung(Y, X). Seien außerdem die angebotenen Waren in einer Relation angebot abgespeichert: angebot(taschenlampe), angebot(batterien), angebot(radio), angebot(fernseher ). Man kann nun etwa nach den Waren fragen, die nicht bestellt sind: angebot(X) ∧ ¬bestellt(X). Hier muß die Vervollständigung das negative Grundliteral ¬bestellt(fernseher ) liefern. 2 Man kann die originale CWA leicht auf beliebige Defaults erweitern: cwa naiv (Φ) := Φ ∪ {δ ∈ ∆∗ | Φ 6` ¬δ}. Auf diese Art wird also ganz direkt formalisiert, daß ein Default angenommen werden soll, wenn keine gegenteilige Information vorliegt. Besteht ∆ aus den Formeln der Form ¬p(X1 , . . . , Xn ) für jedes Prädikat p, so erhält man gerade die originale CWA. Diese Default-Semantik ist allerdings noch etwas naiv. Sie zerstört die Konsistenz genau dann, wenn es Konflikte zwischen Defaults gibt, d.h. wenn es δ1 , . . . , δn ∈ ∆∗ gibt mit Φ ` ¬δ1 ∨ · · · ∨ ¬δn , n ≥ 2 und Φ 6` ¬δi für i = 1, . . . , n. Im Fall von Hornklauseln und Negations-Defaults kann dies nicht geschehen, denn der Schnitt“ zweier Herbrandmodelle ” ist wieder ein Modell, d.h. wenn zwei negative Grundliterale einzeln angenommen werden können, so können sie auch gemeinsam angenommen werden. Stratifizierte Negation Beispiel 3.1.3: Es sei das Mittagessen für die Teilnehmer einer Tagung zu planen: teilnehmer (meier ), teilnehmer (schmidt), . . . , vegetarier (schmidt). Natürlich kann man die Anfrage stellen, welche der Teilnehmer keine Vegetarier sind: teilnehmer (X) ∧ ¬vegetarier (X). Wenn man die Negation also in Anfragen verwenden darf, möchte man sie natürlich ganz entsprechend in den Regeln einsetzen können: normalkost(X) ← teilnehmer (X) ∧ ¬vegetarier (X). Das Problem ist nun, daß die Regel logisch äquivalent ist zu normalkost(X) ∨ vegetarier (X) ← teilnehmer (X) und sogar zu vegetarier (X) ← teilnehmer (X) ∧ ¬normalkost(X). Die intendierte Semantik ist dagegen nicht symmetrisch in den beiden Prädikaten. Es soll etwa ¬vegetarier (meier ) angenommen werden und nicht ¬normalkost(meier ), obwohl 52 KAPITEL 3. ANWENDUNGSBEISPIELE beides (einzeln) möglich wäre. Man kann dies auch so verstehen, daß die Intention des Benutzers hier ist, das Prädikat normalkost zu definieren. Dagegen soll die Semantik des Prädikates “vegetarier ” durch diese Regel nicht verändert werden. Dies ist aber eine Entwurfsentscheidung. Würde es mehr Vegetarier geben, so wäre es günstiger, die Teilnehmer mit Normalkost explizit abzuspeichern und die Regel in der anderen Richtung zu benutzen. 2 In Kapitel 2 wurde gefordert, daß Vervollständigungen logisch äquivalente Axiome gleich behandeln sollen. Es genügt daher nicht, diese Entwurfsentscheidung nur durch die Schreibweise der Regel zum Ausdruck zu bringen. Hier hilft die Einführung von Prioritäten zwischen den Defaults: Man möchte ja, daß im Zweifelsfall ¬vegetarier (X) angenommen wird, und nicht ¬normalkost(X). Der erste Default hat also eine höhere Priorität. Man kann dies auch so verstehen, daß die Vervollständigung stufenweise berechnet wird. Zunächst werden die Defaults der Form ¬vegetarier (X) angenommen, soweit dies möglich ist, und erst danach bekommen die Defaults der Form ¬normalkost(X) ihre Chance. Dies entspricht der Vorstellung, daß die Regel normalkost(X) ← teilnehmer (X) ∧ ¬vegetarier (X) das Prädikat vegetarier benutzt, um das Prädikat normalkost zu definieren. Also sollte das benutzte Prädikat zuerst berechnet“ werden (durch Anwendung der Defaults). Wenn ” man also die Prioritäten aus der Schreibweise der Regeln ableiten will, so muß man den benutzten Prädikaten jeweils eine höhere Priorität (kleinerer `-Wert) geben. In dieser strengen Form könnte man nur hierarchische Klauselmengen behandeln, ein rekursiv definiertes Prädikat, das sich also selbst benutzt, wäre verboten. Hier hilft die Erkenntnis, daß es wie bei den Hornklauseln keine Konflikte zwischen Negations-Defaults gibt, solange das Prädikat nicht negativ von sich selbst abhängt. Die allgemeine Regel ist also, daß bei einer Regel der Form p(. . .) ← q1 (. . .) ∧ · · · ∧ qn (. . .) ∧ ¬r1 (. . .) ∧ · · · ∧ rm (. . .) ` ¬qi (. . .) ≤ ` ¬p(. . .) und ` ¬ri (. . .) < ` ¬p(. . .) gelten muß. Falls solche Prioritätsstufen für eine Regelmenge Φ konsistent vergeben werden können, heißt Φ stratifiziert. Für stratifizierte Regelmengen ist eine stufenweise Version der naiven CWA die intendierte Semantik. cwa 0 (Φ) := Φ cwa i (Φ) := cwa i−1 (Φ) ∪ δ ∈ ∆∗ `(δ) = i, cwa i−1 (Φ) 6` ¬δ . Es werden hier also zunächst die Defaults der höchsten Prioritätsstufe 1 angenommen, dann die der Stufe 2 und so weiter. Indem man die Prioritäten auf diese Weise aus der Schreibweise der Regeln ableitet, hat man natürlich die Einschränkung umgangen, daß Vervollständigungen äquivalente Axiomenmengen gleich behandeln müssen: Durch unterschiedliche Schreibweisen bekommt man hier verschiedene Prioritäten, die dann auch verschiedene Vervollständigungen liefern. 3.1. IMPLIZITE NEGATION 53 Es handelt sich dabei aber nicht nur um einen Trick zur Behandlung derartiger Beispiele. Man hat vielmehr jetzt die in den Regeln verborgene Zusatzinformation explizit gemacht, so daß nun wieder beliebige logische Umformungen zulässig sind. Außerdem hat diese Zusatzinformation auch eine natürliche Interpretation als Import“-Beziehung ” zwischen den verschiedenen Prädikat-Definitionen. Beispiel 3.1.4: Es sind allerdings nicht alle Axiomenmengen stratifiziert. Folgende Regel würde etwa beim Nim-Spiel die Spielzustände beschreiben, bei denen der Gewinn erzwungen werden kann: gewinn(X) ← zug(X, Y ) ∧ ¬gewinn(Y ). Bei diesem Spiel nehmen die beiden Spieler abwechselnd 1 oder 2 Streichhölzer aus einem Vorrat von anfangs z.B. 7 Hölzern. Verloren hat, wer keinen Zug mehr machen kann (weil keine Hölzer übrig sind). Bei diesem Beispiel müssen die Default-Instanzen ¬gewinn(n) umso höhere Priorität haben, je kleiner n (die Anzahl noch verbliebener Streichhölzer) ist. Dann kann man also zunächst ¬gewinn(0) annehmen, dies impliziert gewinn(1) und gewinn(2). Als nächsten Default kann man dann ¬gewinn(3) annehmen, und so weiter. Das Problem bei diesem Beispiel ist, daß das Wissen über die richtigen Prioritäten in dem Prädikat zug verborgen ist, also nicht über eine einfache syntaktische Analyse der Regeln ermittelt werden kann. 2 In der logischen Programmierung sind eine ganze Reihe von Negations-Semantiken entwickelt worden, die dieses und ähnliche Beispiele direkt behanden können, etwa [VGRS91]. Allerdings ist bei diesem Beispiel wichtig, daß zug keine Zyklen enthält, sonst zerstören auch diese Semantiken die Konsistenz oder liefern nur ein partielles (dreiwertiges) Modell. Bei deduktiven Datenbanken sind nun Änderungen der Fakten recht häufig. In diesem Beispiel könnte man durch eine Einfügung in zug einen Zustand erreichen, bei dem die Negationssemantik zusammenbricht. Aus diesem Grund scheint es bei deduktiven Datenbanken im Unterschied zu logischen Programmen besser, die Steuerungsinformation getrennt vom logischen Inhalt zu formulieren. Bei deduktiven Datenbanken ist die Einschränkung auf stratifizierte Formelmengen also üblich. Anfragen der Relationenalgebra an Faktenmengen kann man sogar in hierarchische (d.h. nicht-rekursive) Formelmengen übersetzten. Disjunktive Information Beispiel 3.1.5: In einem Expertensystem zur Fehlerdiagnose von Computern könnte man etwa schließen: Wenn die Versorgungsspannung fehlt, sind die Sicherungen durch” gebrannt oder das ist Netzteil defekt“ (möglicherweise auch beides). defekt(sicherung) ∨ defekt(netzteil ) ← symptom(keine versorgungsspannung). 54 KAPITEL 3. ANWENDUNGSBEISPIELE Die originale CWA würde hier ¬defekt(sicherung) und ¬defekt(netzteil ) annehmen (denn es folgt ja weder defekt(sicherung) noch defekt(netzteil )). Damit wird natürlich die Konsistenz zerstört. Zunächst kann man es natürlich als zu optimistisch ansehen, überhaupt NegationsDefaults für defekt anzunehmen. Das bestärkt natürlich den hier verfolgten Ansatz, daß Defaults Gegenstand des Datenbankentwurfs sein sollten, und nicht fest in die Anfragebeantwortung eingebaut. In diesem Beispiel wäre es allerdings sehr unökonomisch, jedes Teil prüfen zu wollen, wenn man den Fehler schon soweit lokalisiert hat, daß die Versorgungsspannung ausgefallen ist. Weiß man dagegen nur, daß der Computer defekt ist, so hat man eine große Disjunktion defekt(cpu) ∨ defekt(hauptspeicher ) ∨ · · · ∨ defekt(tastatur ). Diese Disjunktion sollte die Anwendung der betreffenden Negations-Defaults verhindern, aber nur, solange man nicht gleichzeitig spezifischere Informationen hat. Dies ist ein wesentlicher Unterschied zu Semantiken disjunktiver logischer Programme [RT88], die einfach alle entsprechenden Negations-Defaults blockieren, wenn syntaktisch eine solche Disjunktion aufgeschrieben ist. Natürlich wäre es in diesem Beispiel wohl noch realistischer, wenn man auch typische Folgefehler berücksichtigen würde. Wenn man etwa erzwingen möchte, daß die Sicherungen überprüft werden, wenn das Netzteil defekt war, so könnte man folgenden Default verwenden: defekt(sicherung) ← defekt(netzteil ). Dies ist natürlich nur ein Default, es ist auch möglich, daß das Netzteil defekt ist, ohne daß die Sicherungen in Mitleidenschaft gezogen wurden. Aber dieser Default steht im Konflikt mit ¬defekt(sicherung), so daß sich die beiden Defaults gegenseitig blockieren (falls das Netzteil defekt ist). Damit wurde jetzt erstmals der Bereich der reinen Negations-Defaults verlassen. Bei der Fehler-Diagnose gibt es noch viele weitere solcher Faustregeln, die sich sehr natürlich als Defaults formulieren lassen. 2 In diesem Beispiel möchte man also diejenigen Negations-Defaults annehmen, die nicht an einer minimalen positiven Grundklausel beteiligt sind, die aus den Axiomen Φ folgt (minimal in dem Sinne, daß keine Teilklausel auch aus Φ folgt). Dies liefert gerade die GCWA [Min82]. Die Verallgemeinerung der GCWA auf beliebige Defaults ist die vorsichtige CWA, die in Kapitel 5 behandelt wird. Dies ist aber nicht die einzige mögliche Negations-Semantik bei disjunktiver Information: Beispiel 3.1.6: Disjunktive Information entsteht auch bei Regeln über (biologische) Vererbung, etwa bei Blutgruppen: blutgruppe(X, a) ∨ blutgruppe(X, 0 ) ← eltern(X, Y1 , Y2 ) ∧ blutgruppe(Y1 , a) ∧ blutgruppe(Y2 , 0 ). 3.1. IMPLIZITE NEGATION 55 Haben die Eltern die Blutgruppen a und 0 , so kann auch das Kind nur eine dieser Blutgruppen haben. Falls für eine Person X, etwa anton, die Voraussetzungen erfüllt sind, so können natürlich die beiden Negations-Defaults ¬blutgruppe(anton, a) und ¬blutgruppe(anton, 0 ) nicht angenommen werden (es sei denn, man hätte genauere Information über die Blutgruppe von anton). Es ist aber durchaus möglich und wünschenswert, ihre Disjunktion anzunehmen: ¬blutgruppe(anton, a) ∨ ¬blutgruppe(anton, 0 ). Damit wird aus dem oder“ also ein exklusives oder“. ” ” 2 Bei diesem Beispiel könnte man natürlich anstelle der Defaults einfach die Schlüsselbedingung blutgruppe(X, Y1 ) ∧ blutgruppe(X, Y2 ) → Y1 = Y2 verwenden (jede Person hat genau eine Blutgruppe). Bei dem nächsten Beispiel ist dies anders: Beispiel 3.1.7: Auch Vorschriften enthalten häufig disjunktive Information. Wenn man etwa abspeichert, welche Übungsscheine welche Studenten gemacht haben, so ist ein Negations-Default angemessen: schein(anton, programmieren 1 ), schein(anton, algebra), . . . Hier würde eine Schlüssel-Bedingung also schon nicht mehr anwendbar sein. Die Vordiploms-Ordnung kann jetzt verlangen, daß ein Schein für das Programmierpraktikum in Modula oder das in Assembler erworben wird: schein(X, prakt modula) ∨ schein(X, prakt assembler ) ← vordiplom(X). Hier ist die Disjunktion ¬schein(anton, prakt modula) ∨ ¬schein(anton, prakt assembler ) natürlich sehr wahrscheinlich. 2 Natürlich könnte man zunächst auf die Idee kommen, daß der Datenbankentwerfer eben entsprechende disjunktive Defaults explizit aufschreiben sollte. Dies wäre jedoch mindestens sehr umständlich, im allgemeinen kann man die Länge der benötigten Disjunktionen auch gar nicht vorhersehen (weil sie abhängig von später eingefügten Fakten ist). Daher erscheint es sinnvoll, daß die Default-Semantik dem Entwerfer diese Arbeit abnimmt. Tatsächlich gibt es auch eine sehr natürliche Semantik mit dieser Eigenschaft, und zwar die minimalen Modelle“ [McC80]. Ziel der Negations-Defaults ist ja, daß die In” terpretation der Prädikate keine überflüssigen Tupel enthalten, also minimal sind in dem Sinn, daß ohne Verletzung der Axiome keine Tupel herausgenommen werden können. Die minimalen Modelle und ihre Verallgemeinerung auf beliebige Defaults werden noch ausführlich in Kapitel 5 untersucht. 56 KAPITEL 3. ANWENDUNGSBEISPIELE Unvollständige Relationen und unsichere Information Eine Tabelle (d.h. eine Menge von Fakten) kann auch so unvollständig sein, daß man sich auf rein logische Folgerungen beschränken möchte (im Gegensatz zu der obigen Annahme, daß jedes nicht explizit aufgeführte Faktum auch nicht gilt): Beispiel 3.1.8: auftreten: Dieser Fall kann etwa bei einem unvollständigen Telefonverzeichnis Φ := {telefon(anton, 1111), telefon(berta, 2222)}. Hier sollte natürlich nicht ¬telefon(cäsar, 3333) folgen, denn es kann nicht ausgeschlossen werden, daß cäsar wirklich diese Telefonnummer hat. Allerdings ist auch bei einer so unvollständigen Telefonliste die rein logische Folgerung nicht unbedingt die beste Vervollständigung. So wäre bei der Anfrage telefon(anton, 3333) die Antwort nein“ intuitiv korrekt, die logische Folgerung würde aber unbekannt“ lie” ” fern. Der Grund ist, daß man nicht explizit vermerkt hat, daß eine Person nur eine Telefonnummer hat. Natürlich könnte man eine solche Schlüsselbedingung hinzufügen, dann wäre es aber unmöglich, mehrere Telefonnummern für eine Person einzutragen (etwa dienstlich/privat). Die Lösung ist, daß man die Schlüsselbedingung nicht als Axiom, sondern als Default formuliert: telefon(X, Y1 ) ∧ telefon(X, Y2 ) → Y1 = Y2 . Umgekehrt gehört zu einer Telefonnummer meist auch nur eine Person, obwohl es auch hier Ausnahmen gibt (Angehörige derselben Familie). 2 Beispiel 3.1.9: Wenn man über ein Prädikat nur logische Folgerungen zulassen möchte, ergeben sich manchmal Schwierigkeiten im Zusammenspiel mit Defaults über andere Prädikate. Angenommen, man erweitert das Telefonverzeichnis um Vorwahlnummern telefon(anton, 011, 1111), telefon(berta, 022, 2222) und definiert dann, wer außerhalb wohnt: außerhalb(X) ← telefon(X, Y1 , Y2 ) ∧ Y1 6= 011. Nimmt man nun Negations-Defaults über außerhalb an, so folgt mit dieser Regel ¬telefon(cäsar, 022, 3333). Abhilfe verschaffen hier die zunächst vielleicht sinnlos erscheinenden Defaults telefon(X, Y1 , Y2 ), ¬telefon(X, Y1 , Y2 ). Diese Defaults blockieren sich natürlich gegenseitig, aber sie blockieren auch jeden anderen Default, der neue Information über telefon liefern würde. 2 Diese Technik kann man allgemein benutzen, um eine Art Modularisierung zu erreichen. Wenn etwa ein Modul A das Modul B benutzt, so kann man den Defaults über B höchste Priorität geben, dann eine Schicht von solchen blockierenden Defaults einziehen, und anschließend die Defaults von A verwenden. Auf diese Art wird verhindert, daß die 3.1. IMPLIZITE NEGATION 57 Defaults von A irgendwelche Rückwirkungen auf die Prädikate von B haben können, das benutzende und das definierende Vorkommen ist hier klar getrennt. Natürlich kann man mit dieser Technik nicht verhindern, daß Axiome in A neue Information über die Prädikate von B liefern. Das kann man aber durch entsprechende syntaktische Einschränkungen erreichen, wie etwa, daß jedes Axiom in A ein positives Literal mit einem Prädikat aus A enthalten muß. Dann kann jedes Modell der Prädikate aus B zu einem Modell aller Prädikate erweitert werden. Diese syntaktische Einschränkung ist ganz üblich. Typischerweise sind es nur die Negations-Defaults, die die Anwendung der Kontraposition einer Regel gestatten. Beispiel 3.1.10: Es kommt auch vor, daß man zwar Negations-Defaults über eine Relation annehmen möchte, sie aber für bestimmte Ausnahmetupel blockieren muß. So könnte etwa dora früher die Telefonnummer 4444 gehabt haben, aber sie hat immer davon gesprochen, daß sie ihr Telefon eigentlich abmelden wollte. Also sollte man die Anfrage telefon(dora, 4444) mit unbekannt“ beantworten, für jede andere Telefonnummer ” sollte jedoch ein Negations-Default angenommen werden. Hat man nur diese eine Ausnahme, so kann man einfach den Default telefon(dora, 4444) verwenden, um die Ausprägung ¬telefon(dora, 4444) des allgemeinen Negations-Defaults ¬telefon(X, Y ) zu neutralisieren. Gibt es mehr Ausnahmen, so kann man sie in einer Relation unsichere nummer abspeichern und dann die Default-Regel telefon(X, Y ) ← unsichere nummer (X, Y ) verwenden. Wieder blockieren sich die Defaults gegenseitig. 2 Mit dieser Technik kann man auch die in [RT88] vorgeschlagene Semantik für disjunktive logische Programme simulieren. Das Problem ist hier, daß bei einer Regel der Form p1 (X) ∨ p2 (X) ← q(X) die Negations-Defaults ¬p1 (X) und ¬p2 (X) für alle X mit q(X) blockiert sind, selbst dann, wenn etwa p1 (X) mit einer anderen Regel beweisbar wäre. Beispielsweise würde bei Φ1 := {p(a) ∨ p(b), p(a)} der Negations-Default ¬p(b) nicht angenommen werden, bei der logisch äquivalententen Formelmenge Φ2 := {p(a)} aber schon. Der Trick besteht nun darin, alle Prädikate zu verdoppeln und die obige Regel (automatisch) umzuschreiben in folgende Regeln: p1 (X) ∨ p2 (X) ← q(X). möglich p1 (X) ← q(X). möglich p2 (X) ← q(X). Mit den Negations-Defaults für alle Prädikate und den Default-Regeln pi (X) ← möglich pi (X) erhält man nun das gewünschte Verhalten. 58 KAPITEL 3. ANWENDUNGSBEISPIELE Nullwerte Relationale Datenbanken bieten häufig Nullwerte an, um unvollständige Information abzuspeichern. Nullwerte können allerdings sehr unterschiedliche Bedeutungen haben, etwa unbekannt“, keine Information vorhanden“, nicht anwendbar“, beliebig“ oder kein ” ” ” ” ” Wert vorhanden“. Relationale Datenbanken bieten meist nur Nullwerte mit einer festen Bedeutung, die allerdings nicht immer völlig klar ist (insbesondere wird dabei von einer dreiwertigen Logik Gebrauch gemacht, hauptsächlich um eine effiziente Auswertung der Anfragen zu erlauben). Beispiel 3.1.11: Es sei wieder eine Liste von Telefonnummern abzuspeichern in der Form Φ := telefon(anton, 1111), telefon(berta, 2222) . Falls die Telefonliste so unvollständig ist, daß man über nicht eingetragene Personen keine Aussage machen möchte, muß man explizit eintragen, wenn bekannt ist, daß eine bestimmte Person kein Telefon hat. Dies könnte mit einem Nullwert geschehen in der Form telefon(cäsar, —). Gemeint ist aber die Aussage ¬telefon(cäsar, X), die logisch gesehen wesentlich klarer ist. Der Nullwert in der Bedeutung kein Wert ” vorhanden“ ist also nur dann nötig, wenn solche Formeln in der zugrundeliegenden Logik nicht zulässig sind. Allgemein ist die Vielzahl verschiedener Nullwerte wohl nur aus dem Zwang entstanden, in einem relationalen System alles als Tabelle notieren zu müssen. 2 Beispiel 3.1.12: Das Telefonverzeichnis sei im folgenden so vollständig, daß man die üblichen Negations-Defaults annehmen kann. Dann muß man natürlich mögliche Lücken im Wissen explizit vermerken. Wenn man etwa nicht weiß, ob cäsar ein Telefon hat, so kann man das mit einem Nullwert in der Bedeutung von keine Information vorhanden“ ” tun: telefon(cäsar, —). Solche Nullwerte kann man mit der in Beispiel 3.1.10 gezeigten Technik behandeln, man hat ja hier nur alle Negations-Defaults der Form ¬telefon(cäsar, X) zu blockieren. 2 Beispiel 3.1.13: Am interessantesten sind natürlich Nullwerte in der Bedeutung un” bekannt“. Es handelt sich hier um eine Existenzaussage ∃X telefon(cäsar, X) . Allerdings kann man in der Logik aus Kapitel 2 keine Existenzaussagen formulieren. Die Standard-Lösung ist, eine neue Konstante ( Skolemkonstante“) für diesen Wert ein” zuführen: telefon(cäsar, c). Aber auch dies funktioniert so noch nicht, weil hier generell angenommen wird, daß verschiedene Konstanten auch verschiedene Werte bezeichnen. Aus diesem Grund kann etwa 3.2. VERERBUNG IN OBJEKT-ORIENTIERTEN ANSÄTZEN 59 der Default ¬telefon(cäsar, 3333) angenommen werden, obwohl cäsar ja eventuell gerade diese Telefonnummer hat. Eine Annäherung an die Bedeutung des Nullwerts wäre es, die entsprechenden Negations-Defaults wie oben gezeigt zu blockieren, etwa mit Hilfe der Default-Regel telefon(X, Y ) ← telefon(X, c). Dies bringt natürlich noch nicht zum Ausdruck, daß c und 3333 möglicherweise gleich sind. Eine etwas aufwendige, aber korrekte Lösung wäre es, die Annahme eindeutiger Namen wieder aufzuheben, indem man ein eigenes Gleichheitsprädikat equal einführt. Insbesondere müßte man die Verträglichkeit mit den Prädikaten fordern: telefon(X, Y 0 ) ← telefon(X, Y ) ∧ equal (Y, Y 0 ). Ohne weitere Defaults wirkt sich das noch nicht aus, weil weiterhin Negationsdefaults über telefon angenommen werden können, sie implizieren dann einfach neue Information über equal . Im Extremfall kann man dies völlig ausschließen mit den nun schon bekannten Defaults equal (X, Y ), ¬equal (X, Y ). Dann müßte man aber die Axiome der eindeutigen Namen für die normalen Konstanten explizit aufschreiben, etwa ¬equal (1111, 2222). Geschickter ist es, neue Information über das Gleichheitsprädikat nur für die Nullwerte wie c zu verbieten. Wenn man equal nur dazu verwendet, in konsistenter Weise Negations-Defaults zu blockieren, so braucht man es auch nicht ganz als Gleichheitsprädikat zu spezifizieren. Insbesondere ist die Reflexivität überflüssig, die ja einen enormen Aufwand erzeugen würde. 2 3.2 Vererbung in objekt-orientierten Ansätzen Wie in der Einleitung schon erwähnt wurde, ist es wünschenswert, objekt-orientierte Strukturierungsmöglichkeiten in deduktive Datenbanken zu integrieren. Einer der Ursprünge der Objekt-Orientierung ist das Modul-Konzept in Programmiersprachen. Daher erscheint es recht offensichtlich, daß bei einer solchen Integration jedes Objekt eine eigene kleine deduktive Datenbank enthalten sollte. Insbesondere sollte es also möglich sein, Regeln in den Objekten abzuspeichern. Momentan sind viele Ansätze dagegen zweistufig: Auf der unteren Ebene hat man eine Objekt-Datenbank und auf der oberen Ebene Regeln über diese Objekte. Ein anderer Ursprung der Objekt-Orientierung ist der Wunsch, Programmcode wiederzuverwenden, also Software auf eine differentielle Art zu entwickeln, indem ein Modul aus einer Bibliothek ausgewählt wird, einige neue Funktionen hinzugefügt und einige alte überschrieben werden. Dies führte zu den bekannten Vererbungs-Hierarchien in objektorientierten Spezifikationen. 60 KAPITEL 3. ANWENDUNGSBEISPIELE Es gibt verschiedene Möglichkeiten, einen solchen Vererbungs-Mechanismus in deduktive Datenbanken zu integrieren. Ein offensichtlicher syntaktischer Weg wäre es, dem Benutzer zu erlauben, die Vererbung von Regeln gezielt zu unterdrücken. Dies wäre natürlich einerseits etwas unbequem, weil man häufig genau angeben muß, welche Regeln man ausschließen will (automatisch könnte man ja wohl nur alle Regeln über ein Prädikat eliminieren). Andererseits ist die Ebene der Regeln meist auch schon zu hoch, denn typischerweise will man nur einige wenige, möglicherweise bedingte Ausnahmen zu den Regeln angeben, und sie nicht völlig neu formulieren. In dieser Situation ist es naheliegend, die vererbten Regeln als Defaults anzusehen, die von spezifischerer Information überschrieben werden können. Beispiel 3.2.1: Ein einfaches Beispiel sind die unterschiedlichen Rabatte, die verschiedene Klassen von Kunden bekommen. So bekommen allgemeine Kunden typischerweise 0% auf alle Produkte. Der Subtyp der Universitäts-Kunden bekommt dagegen 30% auf Hardware und 50% auf Software. Diesen Kunden wird vermutlich erst später klar, daß es außer Hardware und Software auch noch den Bereich der Dienstleistungen (z.B. Wartungsverträge) gibt, auf den sie die ererbten 0% bekommen. Für einen speziellen Kunden mit ausreichendem Verhandlungsgeschick können natürlich alle Rabatte noch einmal überschrieben werden. kunde rabatt(X, 0) ← produkt(X) uni kunde rabatt(X, 30) ← hardware(X) rabatt(X, 50) ← software(X) uni hannover rabatt(risc500 , 40) Formulierungen wie die obigen sind noch objekt-lokal, man möchte natürlich mehrere Kunden in der Datenbank haben. Wenn man keine spezielle Logik einsetzt, muß man zunächst das Prädikat rabatt um ein zusätzliches Argument für das aktuelle Objekt (den Kunden) erweitern. Außerdem hat die in Kapitel 2 eingeführte Logik keine Subtypen, man kann sie aber mit Prädikaten wie etwa uni kunde simulieren. Die betrachteten Defaults lauten also rabatt(X, Y, 0) ← produkt(Y ) ∧ kunde(X). rabatt(X, Y, 30) ← hardware(Y ) ∧ uni kunde(X). rabatt(X, Y, 50) ← software(Y ) ∧ uni kunde(X). 3.2. VERERBUNG IN OBJEKT-ORIENTIERTEN ANSÄTZEN 61 Dabei hat der erste niedrigere Priorität (also einen höheren `-Wert), weil er aus dem Supertyp stammt und daher weniger spezifisch ist. Die in den Objekten spezifizierten Fakten werden in Axiome übersetzt: rabatt(uni hannover , risc500 , 40). Hinzu kommt noch die Typisierungs-Information: kunde(X) ← uni kunde(X). uni kunde(uni hannover ). Außerdem ist eine Schlüssel-Bedingung für rabatt nötig: rabatt(X1 , X2 , Y ) ∧ rabatt(X1 , X2 , Y 0 ) → Y = Y 0 . Trägt man nun noch Fakten über die Produkte ein, so hat diese Spezifikation unter der stufenweisen CWA das gewünschte Verhalten. Zur objekt-lokalen Notation ist schließlich noch zu bemerken, daß mit einer Schreibweise wie X.software auf ein anderes Objekt Bezug genommen werden kann. Dies wird mit einer analogen Transformation wie für rabatt in software(X) übersetzt. Oben wurde zur Vereinfachung bereits dieses Ergebnis eingesetzt. 2 Man kann jetzt natürlich auch mehrfache Vererbung“ betrachten, also Objekttypen mit ” mehr als einem Obertyp. Hier werden erstmals partiell geordnete Defaults nötig, wie man sich leicht an folgender Typ-Struktur klar machen kann: C2 C1 B @ @ A Hier soll keine Priorität zwischen den in B und C1 spezifizierten Defaults bestehen, und auch keine Priorität zwischen denjenigen aus B und C2 . Alle diese Defaults müßten also denselben `-Wert haben. Andererseits sollen die Defaults aus C1 die Defaults aus C2 überschreiben, müssen also einen echt kleineren `-Wert haben. Daher gibt es keine Stufeneinteilung ` der Defaults, die die gewünschten Prioritäten zum Ausdruck bringt. Es ist nun naheliegend, die Subtyp-Beziehung direkt als Prioritätsrelation einzusetzen. Dies ist auch möglich, weil Prioritätsrelationen beliebige partielle Ordnungen sein können (ebenso wie die Subtyp-Beziehung). Beispiel 3.2.2: Mehrfache Vererbung führt natürlich zu unvollständiger Information, wenn die ererbten Formeln sich widersprechen. Es gibt dann wieder die oben erwähnten unterschiedlichen Möglichkeiten: Sei in Beispiel 3.2.1 noch der Objekttyp Großkunde“ eingeführt, der auf Hard” ware 30%, auf Software 40% und auf Dienstleistungen 20% Rabatt bekommt. Es kann dann natürlich auch Universitäten geben, die Großkunden sind. 62 KAPITEL 3. ANWENDUNGSBEISPIELE kunde rabatt(X, 0) ← produkt(X) @ @ uni kunde groß kunde rabatt(X, 30) ← hardware(X) rabatt(X, 50) ← software(X) rabatt(X, 30) ← hardware(X) rabatt(X, 40) ← software(X) rabatt(X, 20) ← dienstleistungen(X) @ @ uni hannover rabatt(risc500 , 40) Da man Rabatte im allgemeinen nicht addieren kann, werden solche Kunden wohl 20% auf Dienstleistungen, 30% auf Hardware und 50% auf Software bekommen. Natürlich kann man von der Default-Semantik nicht erwarten, daß sie dies völlig automatisch erkennt. Klar ist, daß jede vernünftige Default-Semantik die 30% auf Hardware liefern sollte, denn hier unterscheiden sich die geerbten Werte nicht. Wählt man nun die mini” male Modelle“-Semantik, so erhält man für Software wenigstens die Disjunktion, also 40% oder 50%. Für Dienstleistungen erhält man dagegen die 20% von den Großkunden, denn Universitäten haben ihre 0% von den allgemeinen Kunden geerbt, diese sind aber ein Obertyp von Großkunden. An dieser Stelle könnten andere Vererbungssemantiken natürlich auch eine Disjunktion 0% oder 20% liefern. Man könnte natürlich auch eine stärkere Auslöschung wünschen, falls man die Disjunktion 40% oder 50% auf Software für zu unsicher hält. Die in Kapitel 5 vorgestellte vorsichtige CWA“ würde gerade alle Informationen über den Rabatt auf Software löschen. ” Die Rabatte auf Hardware und Dienstleistungen bleiben dabei erhalten. 2 Beispiel 3.2.3: Es ist noch interessant, festzuhalten, daß bei der Default-Semantik der Vererbung einmal überschriebene Regeln später wieder zum Zuge kommen können. Angenommen, man hat ein einstelliges Prädikat p mit einer Schlüsseldeklaration p(X) ∧ p(X 0 ) → X = X 0 . Dieses Prädikat kann also nur einen Wert annehmen. Sei nun folgende Spezifikation mit drei Objekttypen A, B, C betrachtet: A: p(a) B: p(b) C: p(a) ∨ p(c) 3.2. VERERBUNG IN OBJEKT-ORIENTIERTEN ANSÄTZEN 63 Da sich die in A und B spezifizierten Formeln widersprechen, wird p(a) überschrieben. Die in C spezifizierte Disjunktion überschreibt wiederum p(b). Da es nun aber möglich ist, p(a) anzunehmen, wird diese Formel aus A wieder wirksam: Für Objekte des Typs C gilt p(a) und ¬p(c). 2 Beispiel 3.2.4: Bei der Vererbung werden aus den Regeln Defaults. Wenn man aber zuläßt, daß außerdem noch Defaults explizit angegeben werden, so sind die Prioritäten nicht mehr so klar. Beispielsweise könnte man in einem Obertyp die Prädikate p und q durch Aufzählung von Fakten definiert haben: p(a), q(a), q(b). Hinzu kommen natürlich noch die üblichen Negations-Defaults: ¬p(X), ¬q(X). In einem Untertyp definiert man nun ein zusätzliches Prädikat r durch folgende Regel: r(X) ← ¬p(X) ∧ q(X) zusammen mit dem Negations-Default ¬r(X). Gibt man nun diesem Default höhere Priorität als dem entsprechenden Default ¬p(X) aus dem Obertyp, so verändert man in vermutlich nicht beabsichtigter Weise das Prädikat p: Der Default ¬r(b) wird hier dem Default ¬p(b) vorgezogen, es folgt also plötzlich p(b). Das Problem ist hier, daß die von der Vererbungshierarchie und die von der Stratifizierung stammenden Prioritäten sich widersprechen. Man kommt hier nicht ohne Hilfe vom Datenbankentwerfer aus, denn in anderen Situationen wäre es sehr wohl denkbar, daß das ererbte Prädikat p überschrieben werden soll, und zwar unter Verwendung des neu eingeführten Prädikates r. Man muß vom Datenbankentwerfer also wohl verlangen, daß er relative Prioritäten zu den ererbten Prioritäten spezifiziert. Alternativ könnte er auch angeben, daß bestimmte Prädikate bei der Vererbung nicht überschrieben werden sollen. 2 Die Semantik der Vererbung logischer Formeln ist ein interessantes Forschungsthema. In dem Vorschlag aus [KLW90] werden im wesentlichen Werte vererbt und nicht Formeln; spezifiziert man in einer Objektklasse“ etwa eine (exklusive) Disjunktion, so haben ent” weder alle Instanzen den einen Wert, oder alle haben den anderen Wert (sofern keine spezifischere Information vorliegt). In [LU92] wird diese Semantik weiter untersucht, insbesondere auch ihre algorithmische Seite. Der Ansatz von [LV91] berücksichtigt sehr stark die Schreibweise der Formeln als Implikationen, dadurch werden unter Umständen Formeln vorgezogen, die wesentlich höher in der Objekthierarchie spezifiziert sind. Schließlich sei noch auf die Theorie der Vererbungsnetze verwiesen, eine Beziehung zum nichtmonotonen Schließen wird etwa in [Eth88, Mak92] hergestellt. Es gibt natürlich noch viele weitere Aspekte einer Integration von Objekt-Orientierung und Logik. Zum einen ist das Lokalitätsprinzip zu nennen: Kein Objekt sollte Aussagen über andere Objekte enthalten. Einige erste Untersuchungen hierzu finden sich in [BL91]. 64 KAPITEL 3. ANWENDUNGSBEISPIELE Andererseits ist wohl eine wesentlich reichere Typstruktur wünschenswert, wie sie insbesondere von der F-Logik [KLW90] geboten wird. Schließlich haben Objekte auch noch einen inneren Zustand, der über Änderungsoperationen modifiziert werden kann. 3.3 Formalisierung von Änderungsoperationen Eine wichtige Anwendung von Defaults ist auch die Formalisierung der Rahmenregel bei Änderungsoperationen. Normalerweise wird nur explizit angegeben, was sich bei der Ausführung einer Aktion ändert. Man geht dann davon aus, daß alles andere unverändert bleibt. Oft läßt sich aber nicht einfach syntaktisch feststellen, was genau alles andere“ ” ist. Zusätzliche Schwierigkeiten treten bei nichtdeterministischen Aktionen auf, deren Nachbedingung also Disjunktionen enthält. Die naheliegende Lösung ist nun, einen Default der Art alles bleibt, wie es ist“ zu verwenden. Auf diese Weise erzwingt man, daß ” nur eine minimale Änderung durchgeführt wird, um die Aktions-Spezifikation zu erfüllen. Zustandsübergänge Beispiel 3.3.1: Als Beispiel sei ein rudimentäres Abenteuerspiel betrachtet. Dieses Spiel hat nur zwei Räume“: einen Wald und eine Höhle (richtige Spiele haben etwa ” 100 Räume). Die Aufgabe ist nun, im Wald den Honig zu nehmen und damit den Bären in der Höhle zu füttern. Ein Zustand des Spiels ist also durch die Information beschrieben, • in welchem Raum sich der Spieler befindet (Wald oder Höhle), • wo sich der Honig befindet (möglicherweise in der Tasche des Spielers), • ob der Bär noch hungrig ist. Der Spieler kann den Zustand nun durch seine Züge verändern, so kann er etwa mit den Kommandos gehe nach Norden“ und gehe nach Süden“ zwischen den beiden Räumen ” ” wechseln, er kann den Honig nehmen und den Bär füttern (gute Abenteuerspiele haben einen Wortschatz von über 1000 Worten). Beispielsweise sei die Operation nimm den Honig“ zu spezifizieren. Die Vorbedingung ” ist, daß sich der Spieler im selben Raum wie der Honig befindet: in(spieler , X) ∧ in(honig, X). Die Nachbedingung ist, daß der Spieler den Honig in seiner Tasche hat: in(honig, tasche). Solche Vor- und Nachbedingungen lassen sich einfach in die Prädikatenlogik übersetzen, wenn man jedes Prädikat verdoppelt (eine Version für den Vorzustand und eine für den Nachzustand, siehe auch [Ger91]). Das Kommando nimm den Honig“ hat also folgende ” Auswirkung: in old (spieler , X) ∧ in old (honig, X) → in new (honig, tasche). 3.3. FORMALISIERUNG VON ÄNDERUNGSOPERATIONEN 65 Es sei nun folgender Vorzustand betrachtet: in old (spieler , wald ). in old (honig, wald ). hungrig old (bär). Außerdem kann sich jeder Gegenstand immer nur an einem Ort befinden, d.h. man braucht eine Schlüsselbedingung, die natürlich für beide Zustände gelten soll: in old (X, Y ) ∧ in old (X, Y 0 ) → Y = Y 0 . in new (X, Y ) ∧ in new (X, Y 0 ) → Y = Y 0 . Über die Vor- und Nachbedingungen wird nur angegeben, was sich ändert. Daher sind noch Defaults nötig, die eine minimale Änderung erzwingen ( Rahmenregel“): ” in old (X, Y ) ↔ in new (X, Y ). hungrig old (X) ↔ hungrig new (X). Intuitiv sollten folgende Formeln aus dieser Spezifikation folgen: in new (spieler , wald ). in new (honig, tasche). hungrig new (bär). Tatsächlich gilt dies auch für jede vernünftige Default-Semantik, denn in diesem Fall wäre schon die naive CWA konsistent. Sie enthält insbesondere folgende Formeln: in old (spieler , wald ) ↔ in new (spieler , wald ). hungrig old (bär) ↔ hungrig new (bär). Die einzige Default-Ausprägung, die nicht angenommen werden kann, wird schon von den Axiomen widerlegt: in old (honig, wald ) ↔ in new (honig, wald ). Weil also keine Konflikte zwischen Defaults auftreten, ist dieses Beispiel recht einfach. 2 Beispiel 3.3.2: Angenommen, man möchte das Spiel nun etwas interessanter gestalten und den Honig an unterschiedlichen Orten verstecken (über einen Zufallszahlengenerator bestimmt). Die Spezifikation enthält dann nur die Disjunktion in old (honig, wald 1 ) ∨ in old (honig, wald 2 ). Der Spieler befinde sich in wald 1 . Natürlich kann er den Honig nur dann nehmen, wenn dieser auch in wald 1 ist (sonst gibt es eine Fehlermeldung und der Zustand bleibt unverändert). Ansonsten seien dieselben Regeln und Defaults wie in Beispiel 3.3.1 verwendet. Überraschenderweise folgt aus dieser Spezifikation nun, daß der Honig im Vorzustand in Raum wald 2 ist: in old (honig, wald 2 ). Der Grund ist, daß diesem Fall alle DefaultAusprägungen angenommen werden können, denn wenn die Vorbedingung nicht erfüllt ist, sind auch keine Änderungen nötig. Hat man nun die folgende Default-Ausprägung in old (honig, tasche) ↔ in new (honig, tasche), 66 KAPITEL 3. ANWENDUNGSBEISPIELE so erhält man aus der Disjunktion und der Schlüsselbedingung ¬in old (honig, tasche), hiermit also ¬in new (honig, tasche). Daher folgt aus in old (spieler , wald 1 ) ∧ in old (honig, wald 1 ) → in new (honig, tasche), daß ¬in old (honig, wald 1 ) und damit schließlich in old (honig, wald 2 ). Natürlich wird man von jeder korrekten Formalisierung der Änderungsoperation erwarten, daß die Redukte auf den old -Anteil gerade die Modelle der Beschreibung des Vorzustandes liefern. Das ist hier nicht der Fall. Man kann dieses Problem mit Hilfe folgender Defaults lösen: in old (X, Y ), ¬in old (X, Y ), hungrig old (X), ¬hungrig old (X). Diese Defaults blockieren sich gegenseitig, aber auch jeden anderen Default, der neue Informationen über den Vorzustand liefern würde. Man kann dies auch so verstehen, daß die minimale Änderung von jedem möglichen Vorzustand aus einzeln ausgeführt werden soll. Diese Defaults selektieren nun jeweils einen Vorzustand und halten ihn während der Anwendung der übrigen Defaults fest. 2 Es ist nun noch interessant, festzuhalten, daß auch umgekehrt eine Änderungs-Semantik eine Default-Semantik bestimmt. Man kann als Vorzustand einfach die Menge der Defaults verwenden (sofern sie konsistent ist), als Vorbedingung true und als Nachbedingung die Konjunktion der Formeln aus Φ. Die minimale Änderung bedeutet nun, daß nur möglichst wenig von den Defaults zurückgenommen wird, um die Axiome zu erfüllen. Anfragen an den Nachzustand entsprechen dann Folgerungen aus der Vervollständigung. Zustandsfolgen Beispiel 3.3.3: Natürlich möchte man nicht nur einzelne Zustandsübergänge betrachten, sondern den ganzen Verlauf des Spiels. Dann reicht es also nicht mehr aus, zwei Versionen der Prädikate zu haben, sondern man muß sie um ein zusätzliches Argument für den Zustand erweitern. Die Zustände seien mit den Zahlen 1 bis 10 benannt (nach 10 Zügen ist der Bär so hungrig, daß er den Spieler auffrißt). Die Startsituation ist dann: in(1, spieler , wald ). in(1, honig, wald ). hungrig(1, bär). Der Spieler kann nun mit den Kommandos gehe nördlich und gehe südlich zwischen den beiden Räumen wechseln, mit dem Kommando nimm honig den Honig nehmen und mit dem Kommando gib honig den Bären füttern. Die Züge werden in einem Prädikat zug abgespeichert, eine direkte Lösung des Spiels braucht nur drei Züge: zug(1, nimm honig). zug(2, gehe nördlich). zug(3, gib honig). 3.3. FORMALISIERUNG VON ÄNDERUNGSOPERATIONEN 67 Man 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, sonst könnte man natürlich ein eingebautes Prädikat verwenden. Man braucht schließlich noch folgende Schlüssel-Deklarationen: in(X1 , X2 , Y ) ∧ in(X1 , X2 , Y 0 ) → Y = Y 0 . zug(X, Y ) ∧ zug(X, Y 0 ) → Y = Y 0 . succ(X, Y ) ∧ succ(X, Y 0 ) → Y = Y 0 . Am interessantesten ist nun natürlich die Spezifikation der Auswirkung der Züge: in(X, spieler , wald ) ∧ zug(X, gehe nördlich) ∧ succ(X, X 0 ) → in(X 0 , spieler , höhle). in(X, spieler , höhle) ∧ zug(X, gehe südlich) ∧ succ(X, X 0 ) → in(X 0 , spieler , wald ). in(X, honig, Y ) ∧ in(X, spieler , Y ) ∧ zug(X, nimm honig) ∧ succ(X, X 0 ) → in(X 0 , honig, tasche). in(X, honig, tasche) ∧ in(X, spieler , höhle) ∧ zug(X, gib honig) ∧ succ(X, X 0 ) → ¬hungrig(X 0 , bär) ∧ in(X 0 , honig, bär). In der Prädikatenlogik ist dies recht mühsam aufzuschreiben, übersichtlicher geht ist in einer dynamischen Logik: in(spieler , wald ) → [gehe nördlich]in(spieler , höhle). in(spieler , höhle) → [gehe südlich]in(spieler , wald ). in(honig, Y ) ∧ in(X, spieler , Y ) → [nimm honig]in(honig, tasche). in(honig, tasche) ∧ in(spieler , höhle) → [gib honig] ¬hungrig(bär) ∧ in(honig, bär) . Natürlich braucht man wieder Defaults, die eine minimale Änderung erzwingen. Da das Prädikat in aufgrund der Schlüsseldeklaration im wesentlichen eine Funktion ist, braucht man hierfür nur zu fordern, daß sich der alte Wert auf den neuen Zustand fortschreibt: succ(X, X 0 ) ∧ in(X, Y1 , Y2 ) → in(X 0 , Y1 , Y2 ). Bei dem echten Prädikat hungrig müssen entsprechend die beiden Wahrheitswerte true und false andauern: succ(X, X 0 ) ∧ hungrig(X, Y ) → hungrig(X 0 , Y ). succ(X, X 0 ) ∧ ¬hungrig(X, Y ) → ¬hungrig(X 0 , Y ). Überraschenderweise ist diese Spezifikation so noch nicht korrekt, insbesondere folgt nicht die Formel ¬hungrig(4, bär). Um dies zu verstehen, muß man die maximalen Mengen von Default-Ausprägungen betrachten, die angenommen werden können. Dies entspricht also einer möglichst kleinen Menge von Ausnahmen, d.h. nicht geltenden Defaults. Bei 68 KAPITEL 3. ANWENDUNGSBEISPIELE der intendierten Zustandsabfolge werden alle außer den folgenden Default-Ausprägungen angenommen: succ(1, 2) ∧ in(1, honig, wald ) → in(2, honig, wald ). succ(2, 3) ∧ in(2, spieler , wald ) → in(3, spieler , wald ). succ(3, 4) ∧ in(3, honig, tasche) → in(4, honig, tasche). succ(3, 4) ∧ hungrig(3, bär) → hungrig(4, bär). Es gibt aber auch die Möglichkeit, vorausschauend Änderungen durchzuführen, die bewirken, daß später die Vorbedingungen nicht erfüllt sind, so daß dann Änderungen eingespart werden. Der Spieler könnte etwa bei dem Fußmarsch vom Wald zur Höhle den Honig verlieren, dadurch kann er den Bären später nicht füttern: succ(1, 2) ∧ in(1, honig, wald ) → in(2, honig, wald ). succ(2, 3) ∧ in(2, spieler , wald ) → in(3, spieler , wald ). succ(2, 3) ∧ in(2, honig, tasche) → in(3, honig, tasche). Natürlich steht von dieser Möglichkeit nichts in der Spezifikation, aber es ist auch nicht explizit ausgeschlossen. Das Problem ist hier, daß die Änderungen global minimiert werden (über die ganze Zustandsfolge gesehen). Dadurch geht die Kausalität der Änderungen verloren. Man möchte natürlich, daß die Änderungen bei jedem Zustandsübergang einzeln minimiert werden, insbesondere sollen nicht spätere Zustandsübergänge Rückwirkungen auf frühere haben. Es liegt daher nahe, den Defaults für frühere Zustandsübergänge höhere Priorität zu geben, also notwendige Änderungen so spät wie möglich auszuführen. 2 Dies ist eine Variante des bekannten Yale Shooting“ Problems [HM87]. (Dort sind die drei ” Aktionen laden“, warten“, schießen“. Beispiel 3.3.3 ist etwas tierfreundlicher, obwohl ” ” ” ja auch beim originalen Beispiel das Ergebnis gerade ist, daß sich die Flinte möglicherweise während des Wartens auf magische Art entladen hat.) Man beachte noch, daß die in Beispiel 3.3.2 aufgezeigten Probleme mit unvollständiger Information natürlich auch hier auftreten, man muß also die entsprechenden Defaults noch hinzunehmen. Allerdings funktioniert das Prinzip, Änderungen so spät wie möglich durchzuführen, nur bei Anfragen nach der Gültigkeit einer Aussage in einem bestimmten Zustand ( tem” porale Projektion“). Angenommen, man gibt stattdessen den Zielzustand vor und fragt, welche Aktionen dorthin geführt haben können (eine Planungsaufgabe). Nach dem Prinzip, Änderungen so spät wie möglich durchzuführen, geschieht die ganze Zeit gar nichts, nur bei dem letzten Zustandsübergang wird der Zielzustand erreicht, ohne daß es eine Erklärung dafür geben würde. Angesichts dieser Probleme muß man sich natürlich fragen, ob man es nicht ohne Defaults leichter hätte, indem man also nur die Logik erster Stufe benutzt. Ein solcher Ansatz wird von Raymond Reiter [Rei92] vertreten. Man müßte dann also Formeln der Art aufschreiben, daß sich der Ort eines Gegenstandes nur dann ändern kann, wenn 3.3. FORMALISIERUNG VON ÄNDERUNGSOPERATIONEN 69 eine entsprechende Aktion ausgeführt wird und deren Vorbedingungen erfüllt sind. Dies ist natürlich gerade bei einer größeren Anzahl von Aktionen recht mühsam. Vor allem aber können auf diese Art nur Spezialfälle behandelt werden, denn im allgemeinen Fall könnte man ja gerade Defaults simulieren, so daß dies einfach nur ein spezieller Vervollständigungs-Mechanismus wäre. Beispiel 3.3.4: Da man mit einfachen Zustandsübergängen unpriorisierte Defaults simulieren kann, liegt es nahe, daß man mit Zustandsfolgen gerade die Prioritäten erhält. Das ist aber nicht richtig: Hat man etwa die Defaults ¬p und ¬q, wobei der erste höhere Priorität hat, und das Axiom p∨q, so würde man erst ¬q einfügen, dann ¬p und schließlich das Axiom. Bei priorisierten Defaults sollte sich natürlich ¬p durchsetzen. ÄnderungsSemantiken sind dagegen im allgemeinen geschichtslos: Wenn das Axiom eingefügt wird, ist der vorliegende Zustand {¬p, ¬q}, die minimale Änderung liefert dann {¬p∨¬q, p∨q}. (Beobachtung von Mark Ryan.) 2 70 Kapitel 4 Eigenschaften von Vervollständigungen In diesem Kapitel wird die Menge der Vervollständigungen betrachtet, um einen Überblick über alle möglichen Semantiken für Defaults zu gewinnen. Eigenschaften von Vervollständigungen dienen dazu, diese Menge zu strukturieren und die interessanten Defaultsemantiken herauszufiltern. Sie werden hier definiert und motiviert, und es werden die Beziehungen zwischen ihnen untersucht. Solche Eigenschaften können ein Maß für die Strukturiertheit“ oder Gutartigkeit“ ” ” einer Vervollständigung sein. Umgekehrt können Anwendungen erfordern, daß bestimmte Eigenschaften verletzt werden. Auch dann sind die Eigenschaften eine Hilfe für die Auswahl der richtigen“ Vervollständigung. ” Schließlich können die Eigenschaften auch als Rechenregeln“ für die Vervollständi” gungen gesehen werden, mit dem man also Paare (Φ, ψ) mit Φ `c ψ ableiten kann. Im Gegensatz zu den Resolutions-Algorithmen in Kapitel 6 ähnelt dies eher einem System ” des natürlichen Schließens“. Daher sollte zuerst überprüft werden, inwieweit man die Erfüllung von Folgerungsregeln der klassischen Prädikatenlogik fordern kann (Abschnitt 4.1). Falls man alle Folgerungsregeln fordert, bekommt man natürlich nur die logische Folgerung. Aus diesem Grund müssen häufig Abschwächungen der klassischen Regeln betrachtet werden. Solche Folgerungsregeln wurden auch in der Literatur zum nicht-monotonen Schließen betrachtet [Gab85, Mak89, KLM90, Dix91, Mak92]. Hier wird aber eine modelltheoretische Formulierung angegeben, die häufig zusätzliche Einsichten vermittelt (und die Beziehung zur Theorie der Wahlverfahren aufzeigt). Als nächstes werden weitere Struktureigenschaften betrachtet, die nicht direkt im Zusammenhang mit Folgerungsregeln stehen, aber modelltheoretisch gesehen sehr einleuchtend sind (Abschnitt 4.2). Auch Begriffe für den Vergleich von Vervollständigungen werden eingeführt. Im Abschnitt 4.3 werden dann Eigenschaften untersucht, die sich auf Defaults beziehen. Ein Ziel dieser Arbeit ist ja, eine Abbildung von Defaults auf Vervollständigungen auszuzeichnen. 71 72 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN 4.1 Folgerungsregeln Folgerungsregeln für beliebige Vervollständigungen Da die vervollständigte Folgerungsrelation `c eine Verallgemeinerung der logischen Folgerung ` ist, kann man sich fragen, welche der bekannten Ableitungsregeln noch gelten. Zunächst gelten eine ganze Reihe von Regeln für beliebige Vervollständigungen `c , und zwar sind dies die linksstabilen“ Folgerungsregeln, die sich nur auf eine feste Axio” menmenge Φ beziehen, also die folgende Form haben: Φ `c ψ1 , . . . , Φ `c ψn =⇒ Φ `c ψ. Gilt eine solche Regel für die logische Folgerung, so erhält man für Φ := {ψ1 ∧ · · · ∧ ψn } (die Voraussetzungen sind trivialerweise erfüllt): {ψ1 ∧ · · · ∧ ψn } ` ψ. Dann überträgt sich die Regel aber sofort auf beliebige Vervollständigungen `c , denn `c ist definitionsgemäß unter ∧ und ` abgeschlossen. Satz 4.1.1: Jede vervollständigte Folgerungsrelation `c erfüllt • Φ `c ψ1 , Φ `c ψ2 =⇒ Φ `c ψ1 ∧ ψ2 ( Einführung der Konjunktion“), ” • Φ `c ψ1 ∧ ψ2 =⇒ Φ `c ψ1 , Φ `c ψ2 . ( Eliminierung der Konjunktion“), ” • Φ `c ψ1 oder Φ `c ψ2 =⇒ Φ `c ψ1 ∨ ψ2 ( Einführung der Disjunktion“), ” • Φ `c ψ1 → ψ2 , Φ `c ψ1 =⇒ Φ `c ψ2 ( Eliminierung der Implikation“, modus ” ” ponens“). Beweis: Diese Regeln folgen direkt aus dem Abschluß unter ∧ und `. 2 Konsistenzerhaltung Die Folgerungsregel von der Eliminierung der Negation, d.h. das Prinzip des indirekten Beweises, gilt dagegen nicht für beliebige Vervollständigungen: Φ ∪ {¬ψ} `c false =⇒ Φ `c ψ. Das ist eigentlich auch nicht überraschend, da die Definition von `c keine Anforderungen enthält, die zwei verschiedene (nicht-äquivalente) Mengen von Voraussetzungen Φ und Φ0 in Beziehung setzen. Beispiel 4.1.2: Negationen: Folgende Vervollständigung erlaubt nicht die die Eliminierung von Φ [p] [p̄] comp(Φ) false false ¬p ◦ false p ◦ false true • • true 4.1. FOLGERUNGSREGELN 73 Diese Tabelle definiert eine Vervollständigung über einer Signatur mit einer einzigen Aussage (d.h. argumentlosen Prädikat) p. Im mittleren Teil ist die Vervollständigung modelltheoretisch beschrieben, d.h. für jede Axiomenmenge (gegeben durch ihre Modelle [p] und [p̄]) sind die intendierten Modelle mit • gekennzeichnet und die nicht intendierten mit ◦. In linken Teil ist ein Repräsentant Φ der jeweiligen Äquivalenzklasse von Axiomenmengen angegeben, im rechten Teil ihre syntaktische Vervollständigung (bis auf Äquivalenz). Sei nun Φ = {true}. Die Vervollständigung zerstört für Φ0 = Φ ∪ {¬p} die Konsistenz, da sie das einzige vorhandene Modell [p̄] nicht auswählt. Es gilt also Φ ∪ {¬p} `c false. Nach der Regel von der Eliminierung der Negation müßte nun Φ `c p gelten. Das ist aber nicht der Fall. 2 Die Vervollständigung aus dem Beispiel ist natürlich sehr merkwürdig, eine solche Vervollständigung möchte man auf keinen Fall als Semantik einer Default-Spezifikation haben. Ein Grund, diese Vervollständigung auszuschließen, ist die Zerstörung der Konsistenz: Die Axiomenmenge {¬p} enthält ja durchaus noch Information, aber bei der Vervollständigung false ist diese Information verloren gegangen — beliebige Anfragen werden mit ja“ ” beantwortet. Definition 4.1.3 (konsistenzerhaltend): Eine Vervollständigung comp/`c /sel ist konsistenzerhaltend (CON) genau dann, wenn • Φ konsistent =⇒ comp(Φ) konsistent, • Φ konsistent, Φ `c ψ =⇒ Φ 6`c ¬ψ, • I 6= ∅ =⇒ sel (I) 6= ∅. Diese Definition ist so zu lesen, daß für jede der drei Formalisierungen von Vervollständigung getrennt definiert wird, was konsistenzerhaltend bedeutet. Die Festlegungen sind verträglich mit der Umrechnung zwischen den verschiedenen Arten von Vervollständigungen, wie in dem nächsten Lemma bewiesen wird. Bei dieser wie bei allen weiteren Eigenschaften sollen die Bedingungen für alle Φ ⊆ L+ Σ, ∗ alle ψ ∈ LΣ und alle I ⊆ IΣ gelten. Lemma 4.1.4: • Eine syntaktische Vervollständigung comp ist genau dann konsistenzerhaltend, wenn `comp konsistenzerhaltend ist. • Eine semantische Vervollständigung sel ist genau dann konsistenzerhaltend, wenn `sel konsistenzerhaltend ist. Beweis: • Die syntaktisch vervollständigte Menge der Axiome comp(Φ) ist genau dann inkonsistent, wenn comp(Φ) ` ψ und comp(Φ) ` ¬ψ für ein ψ gilt. Das ist aber die Definition für Φ `comp ψ und Φ `comp ¬ψ. 74 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN • Eine modelltheoretische Vervollständigung verletzt die Konsistenzerhaltung für I (I 6= ∅, sel (I) = ∅) genau dann, wenn `sel sie für Th(I) verletzt: Th(I) ist konsistent, aber sel (I) ⊆ Mod (ψ) und sel (I) ⊆ Mod (ψ), d.h. Th(I) `sel ψ und Th(I) `sel ¬ψ. 2 Eine ganze Reihe der in der Literatur vorgeschlagenen Vervollständigungen ist im allgemeinen nicht konsistenzerhaltend, so etwa die originale CWA [Rei78], die Circumscription bei unendlichen Bereichen [EMR85] und die Default-Logik [Rei80]. Offensichtlich ist dieses Verhalten aber nicht beabsichtigt. Die einzige Lösung ist, daß man die betreffenden Mengen von Axiomen und Defaults ausschließt, wobei aber häufig nur hinreichende Kriterien für die Konsistenzerhaltung bekannt sind. Hat man eine konsistenzerhaltende Vervollständigung, so kann man sofort die Regel zur Eliminierung von Negationen anwenden: Satz 4.1.5: Für eine konsistenzerhaltende Vervollständigung `c gilt: Φ ∪ {¬ψ} `c false =⇒ Φ `c ψ. Beweis: Da `c konsistenzerhaltend ist, muß Φ ∪ {¬ψ} inkonsistent sein. Dann gilt aber Φ ` ψ, folglich auch Φ `c ψ. 2 Daß die Umkehrung dieses Satzes nicht gilt, sieht man an der Vervollständigung ohne intendierte Modelle, d.h. es gilt Φ `c ψ für beliebige Φ und ψ. Diese Vervollständigung erfüllt natürlich die Regel von der Eliminierung der Negation, aber sie ist nicht konsistenzerhaltend. Kumulierung Eine Folgerungsregel, von der man nicht erwarten kann, daß sie für Vervollständigungen gilt, ist die Monotonie: Φ `c ψ =⇒ Φ ∪ {ϕ} `c ψ. Vervollständigungen sind ja gerade bekannt als nichtmonotone Logiken. So könnte ψ etwa ein Default sein, der angenommen wird, da Φ keine gegenteilige Information enthält. Die hinzugenommene Formel ϕ könnte nun gerade diese gegenteilige Information liefern, also z.B. ϕ := ¬ψ. Würde jetzt noch ψ folgen, so wäre die Konsistenz zerstört. Dies gilt auch ganz allgemein: Satz 4.1.6: Die einzige konsistenzerhaltende Vervollständigung mit Φ `c ψ =⇒ Φ ∪ {ϕ} `c ψ (Monotonie) ist die logische Folgerung `. Beweis: Angenommen, es gäbe eine monotone und konsistenzerhaltende Vervollständigung `c verschieden von der logischen Folgerung. Da Φ ` ψ =⇒ Φ `c ψ nach Definition, muß es also Φ und ψ geben mit Φ 6` ψ, aber Φ `c ψ. Nun müßte Φ ∪ {¬ψ} `c ψ nach der Monotonie gelten, andererseits gilt natürlich auch Φ ∪ {¬ψ} `c ¬ψ. Damit ist aber die Konsistenzerhaltung verletzt, denn Φ ∪ {¬ψ} ist wegen Φ 6` ψ konsistent. 2 4.1. FOLGERUNGSREGELN 75 Es ist dagegen möglich und sehr sinnvoll, die folgende beschränkte Version der Monotonie zu fordern: Definition 4.1.7 (beschränkt monoton): Eine Vervollständigung comp/`c /sel ist beschränkt monoton (RMON) genau dann, wenn • comp(Φ) ` ϕ, comp(Φ) ` ψ =⇒ comp(Φ ∪ {ϕ}) ` ψ, • Φ `c ϕ, Φ `c ψ =⇒ Φ ∪ {ϕ} `c ψ, • sel (I1 ) ⊆ I2 ⊆ I1 =⇒ sel (I1 ) ⊇ sel (I2 ). Die Beschränkung besteht hier also darin, daß nur solche Formeln zu den Voraussetzungen Φ hinzugenommen werden dürfen, die ohnehin schon vervollständigt aus ihnen folgen. Lemma 4.1.8: Eine syntaktische bzw. modelltheoretische Vervollständigung ist genau dann beschränkt monoton, wenn die zugehörige vervollständigte Folgerungsrelation beschränkt monoton ist. Beweis: Im Falle der syntaktischen Vervollständigung ist die Übereinstimmung offensichtlich. Zu zeigen ist also nur noch: sel beschränkt monoton ⇐⇒ `sel beschränkt monoton“. ” • =⇒ “: Gelte also Φ `sel ϕ und Φ `sel ψ, und sei zur Abkürzung IΦ := Mod (Φ), ” Iϕ := Mod (ϕ) und Iψ := Mod (ψ). Dann gilt sel (IΦ ) ⊆ IΦ ∩Iϕ ⊆ IΦ (wegen sel (IΦ ) ⊆ Iϕ ). Also folgt sel (IΦ ) ⊇ sel (IΦ ∩ Iϕ ). Nun gilt aber nach Voraussetzung sel (IΦ ) ⊆ Iψ , damit gilt erst recht sel (IΦ ∩ Iϕ ) ⊆ Iψ , d.h. Φ ∪ {ϕ} `sel ψ. • ⇐= “: Gelte sel (I1 ) ⊆ I2 ⊆ I1 . Für Φ := Th(I1 ), ϕ := th(I2 ) und ψ := th sel (I1 ) gilt ” dann gerade Φ `sel ϕ und Φ `sel ψ, also Φ ∪ {ϕ} `sel ψ, d.h. sel (I1 ∩ I2 ) ⊆ sel (I1 ), also schließlich sel (I2 ) ⊆ sel (I1 ). 2 Die teilweise Umkehrung der beschränkten Monotonie ist folgende Schlußregel: Φ `c ϕ, Φ ∪ {ϕ} `c ψ =⇒ Φ `c ψ. Sie ist ein Spezialfall der bekannten Schnittregel: Φ1 `c ϕ0 ∨ ϕ, Φ2 ∪ {ϕ} `c ψ =⇒ Φ1 ∪ Φ2 `c ϕ0 ∨ ψ (für Φ1 := Φ2 := Φ und ϕ0 := false). Die allgemeine Schnittregel kann man nicht erwarten, denn sie impliziert die Monotonie (für ϕ := false und ψ := false) Φ1 `c ϕ0 =⇒ Φ1 ∪ Φ2 `c ϕ0 , gilt also nach Satz 4.1.6 nur für die logische Folgerung `. Die beschränkte Schnittregel ist dagegen eine sinnvolle Eigenschaft von Vervollständigungen: Definition 4.1.9 (Beschränkte Schnittregel): Eine Vervollständigung comp/`c /sel erfüllt die beschränkte Schnittregel (RCUT) genau dann, wenn • comp(Φ) ` ϕ, comp(Φ ∪ {ϕ}) ` ψ =⇒ comp(Φ) ` ψ, • Φ `c ϕ, Φ ∪ {ϕ} `c ψ =⇒ Φ `c ψ, • sel (I1 ) ⊆ I2 ⊆ I1 =⇒ sel (I1 ) ⊆ sel (I2 ). 76 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN Lemma 4.1.10: Eine syntaktische bzw. modelltheoretische Vervollständigung erfüllt die beschränkte Schnittregel genau dann, wenn die zugehörige vervollständigte Folgerungsrelation sie erfüllt. Beweis: Im Falle der syntaktischen Vervollständigung ist die Übereinstimmung wieder offensichtlich. Zu zeigen ist also nur noch: sel erfüllt RCUT ⇐⇒ `sel erfüllt RCUT“. ” • =⇒ “: Aus Φ `sel ϕ folgt mit den üblichen Abkürzungen wieder sel (IΦ ) ⊆ IΦ ∩ Iϕ ⊆ IΦ . ” Da sel die Eigenschaft RCUT nach Voraussetzung erfüllt, gilt also sel (IΦ ) ⊆ IΦ ∩ Iϕ . Zusammen mit Φ ∪ {ϕ} `sel ψ, d.h. sel (IΦ ∩ Iϕ ) ⊆ Iψ , folgt sel (IΦ ) ⊆ Iψ , d.h. Φ `sel ψ. • ⇐= “: Gelte sel (I1 ) ⊆ I2 ⊆ I1 und sei Φ := Th(I1 ), ϕ := th(I2 ) und ψ := th sel (I2 ) . ” Dann folgt Φ `sel ϕ. Außerdem gilt wegen I1 ∩ I2 = I2 trivialerweise Φ ∪ {ϕ} `sel ψ. Da `sel die Eigenschaft RCUT hat, folgt Φ `sel ψ, d.h. sel (I1 ) ⊆ sel (I2 ). 2 Die beschränkte Schnittregel impliziert übrigens die Idempotenz von sel , d.h. sel sel (I) = sel (I) (man setze I2 := sel (I1 )). Es ist ja auch sehr naheliegend, zu fordern, daß nach Auswahl der intendierten Modelle eine weitere Anwendung von sel wirkungslos bleiben sollte. Eine Verallgemeinerung davon, die Zusammenfassung der beschränkten Monotonie und der beschränkten Schnittregel ergibt nun die Kumulierung. Sie ist eine grundlegende und sehr nützliche Eigenschaft von Vervollständigungen: Definition 4.1.11 (kumulierend): Eine Vervollständigung comp/`c /sel ist kumulierend (CUM) genau dann, wenn • comp(Φ) ` ϕ =⇒ comp(Φ ∪ {ϕ}) ∼ = comp(Φ), • Φ `c ϕ =⇒ Φ ∪ {ϕ} `c ψ ⇐⇒ Φ `c ψ , • sel (I1 ) ⊆ I2 ⊆ I1 =⇒ sel (I1 ) = sel (I2 ). Aus der modelltheoretischen Sicht bedeutet diese Eigenschaft, daß sich die Menge der intendierten Modelle nicht dadurch ändern sollte, daß ohnehin nicht intendierte Modelle explizit ausgeschlossen werden. Bei Datenbanken entspricht das der Materialisierung einer Sicht“: Wenn einige Fol” gerungen aus der vervollständigten Axiomenmenge sehr häufig berechnet werden, bietet es sich an, sie in der Datenbank explizit abzuspeichern. Die Kumulation besagt nun, daß dies möglich ist, ohne das Antwortverhalten der Datenbank zu ändern. Die Kumulation ist also ähnlich wie die Konsistenzerhaltung eine Eigenschaft, die eine gute Vervollständigung unbedingt haben sollte. Lemma 4.1.12: Eine syntaktische bzw. modelltheoretische Vervollständigung ist genau dann kumulierend, wenn die zugehörige vervollständigte Folgerungsrelation kumulierend ist. Beweis: Da die Kumulation eine offensichtliche Zusammensetzung der Eigenschaften RMON und RCUT ist, folgt die Behauptung direkt aus Lemma 4.1.8 und Lemma 4.1.10. 2 4.1. FOLGERUNGSREGELN 77 Die Folgerungsregeln beschränkte Monotonie und beschränkte Schnittregel wurden in [Gab85] eingeführt, die Kumulierung in [Mak89]. Dort wurde auch gezeigt, daß etwa die Default-Logik nicht immer kumulierend ist. In [Bra90b] wurde gezeigt, daß auch die Circumscription erster Stufe diese Regel verletzen kann. In der Theorie der Wahlverfahren ist eine Eigenschaft, die der beschränkten Monotonie entspricht, schon seit mindestens 1975 bekannt [Mou85] ( Aizerman-Eigenschaft“). ” Die Deduktions-Eigenschaft Als nächstes sei die Regel von der Einführung der Implikation →“ untersucht: ” c c Φ ∪ {ψ1 } ` ψ2 =⇒ Φ ` ψ1 → ψ2 . Dies ist auch das Deduktionstheorems [BN77] (bzw. die eine Richtung davon [BW91]). Da diese Regel nicht linksstabil ist, ist es auch nicht überraschend, daß sie nicht für beliebige Vervollständigungen gilt. Es wird sich aber herausstellen, daß es sowohl vernünftige Vervollständigungen gibt, für die sie gilt (nämlich die minimalen Modelle), als auch solche, für die sie nicht gilt (z.B. die GCWA). Damit kann diese Regel also zur Klassifikation von Vervollständigungen dienen, und nicht (wie Konsistenzerhaltung und Kumulierung) zur Ausscheidung ungeeigneter Vervollständigungen. Beispiel 4.1.13: Wie oben schon erwähnt, verletzt die GCWA [Min82] diese Regel. Die zugrundeliegenden Defaults sind hier ¬p und ¬q. Die einzige Besonderheit tritt bei Φ := {p ∨ q} auf, dort stehen die beiden Defaults im Konflikt miteinander und es wird keiner von beiden angenommen. Φ false ¬p, ¬q ¬p, q ¬p p, ¬q ¬q p ↔ ¬q ¬p ∨ ¬q p, q p↔q q ¬p ∨ q p p ∨ ¬q p∨q true [pq] [pq̄] [p̄q] [p̄q̄] comp(Φ) false • ¬p, ¬q • ¬p, q ◦ • ¬p, ¬q • p, ¬q ◦ • ¬p, ¬q • • p ↔ ¬q ◦ ◦ • ¬p, ¬q • p, q ◦ • ¬p, ¬q ◦ • ¬p, q ◦ ◦ • ¬p, ¬q ◦ • p, ¬q ◦ ◦ • ¬p, ¬q • • • p∨q ◦ ◦ ◦ • ¬p, ¬q Wie in Beispiel 4.1.2 wird hier die Vervollständigung durch Auflisten der Selektionsfunk- 78 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN tion auf den Modellen definiert: Für jede Menge von Modellen sind die intendierten Modelle mit • gekennzeichnet und die übrigen mit ◦. Für diese Vervollständigung (die GCWA) gilt {p ∨ q} ∪ {p} `c ¬q ({p ∨ q} ∪ {p} ∼ = {p}), aber es gilt nicht {p ∨ q} `c p → ¬q (p → ¬q ∼ = ¬p ∨ ¬q), was nach dieser Regel gefolgert werden könnte. Man beachte, daß das Verhalten für {p ∨ q} notwendig ist, wenn man echte Disjunktionen wünscht (und kein exklusiv oder“). Andererseits ist das Verhalten für {p} gerade ” die Annahme von negativen Grundliteralen als Default, die ja auch sehr natürlich ist. Und die Gleichbehandlung äquivalenter Datenbanken {p ∨ q, p} und {p} ist für logische Vervollständigungen unbedingt wünschenswert, wie in Kapitel 2 erläutert wurde. 2 Definition 4.1.14 (Deduktions-Eigenschaft): Eine Vervollständigung comp/`c /sel hat die Deduktions-Eigenschaft (DED) genau dann, wenn (ϕ sei hier eine variablenfreie Formel) • comp Φ ∪ {ϕ} ` ψ =⇒ comp(Φ) ` ϕ → ψ. • Φ ∪ {ϕ} `c ψ =⇒ Φ `c ϕ → ψ. • sel (I1 ) ∩ I2 ⊆ sel (I1 ∩ I2 ). Aus modelltheoretischer Sicht bedeutet diese Eigenschaft also, daß Modelle, die auch bei einer größeren Menge von Konkurrenten“ (I1 ) als intendierte Modelle ausgewählt ” werden, erst recht in einer kleineren Menge (I1 ∩ I2 ) ausgewählt werden. Für Datenbanken wird durch diese Eigenschaft die Information eingeschränkt, die bei einer Einfügung hinzukommen bzw. bei einer Löschung verloren gehen kann: Wenn nach der Einfügung von ϕ die Anfrage ψ mit Ja“ beantwortet wird, dann muß vor der ” Einfügung schon ϕ → ψ mit Ja“ beantwortet worden sein. ” Wie immer ist noch die Äquivalenz der verschiedenen Formalisierungen zu zeigen: Lemma 4.1.15: Eine syntaktische bzw. modelltheoretische Vervollständigung hat die Deduktions-Eigenschaft genau dann, wenn die zugehörige vervollständigte Folgerungsrelation sie hat. Beweis: Die Äquivalenz der Forderungen für syntaktische und abstrakte Vervollständigungen ist offensichtlich. Ebenso offensichtlich ist die Äquivalenz zu der Forderung sel (I1 ∩ I2 ) ⊆ I =⇒ sel (I1 ) ⊆ I2 ∪ I für modelltheoretische Vervollständigungen (I2 ist hier das Komplement von I2 bezüglich IΣ , d.h. IΣ − I2 ). Diese Forderung kann sofort äquivalent umgeformt werden in sel (I1 ∩ I2 ) ⊆ I =⇒ sel (I1 ) ∩ I2 ⊆ I. Wenn dies für alle I gilt, gilt es natürlich insbesondere auch für I := sel (I1 ∩ I2 ) und man erhält (da die Voraussetzung trivialerweise erfüllt ist): sel (I1 ) ∩ I2 ⊆ sel (I1 ∩ I2 ). 4.1. FOLGERUNGSREGELN 79 Hat man umgekehrt diese Eigenschaft und die Voraussetzung sel (I1 ∩I2 ) ⊆ I, dann folgt daraus direkt sel (I1 ) ∩ I2 ⊆ I. 2 Die logische Folgerung erfüllt auch die Umkehrung der Deduktions-Eigenschaft. Für andere Vervollständigungen kann man diese Umkehrung aber nicht verlangen: Satz 4.1.16: Die einzige konsistenzerhaltende Vervollständigung `c mit Φ `c ϕ → ψ =⇒ Φ ∪ {ϕ} `c ψ ist die logische Folgerung `. Beweis: Sei `c verschieden von `. Dann gibt es also Φ und ϕ0 mit Φ `c ϕ0 , aber Φ 6` ϕ0 . Für ϕ := ¬ϕ0 gilt dann also Φ `c ¬ϕ, und daher Φ `c ϕ → false. Nach der geforderten Eigenschaft gilt dann Φ ∪ {ϕ} `c false. Andererseits ist Φ ∪ {ϕ} aber konsistent wegen Φ 6` ¬ϕ. Also ist `c nicht konsistenzerhaltend. 2 Die Deduktions-Eigenschaft selbst ist dagegen sehr nützlich. So läßt sie etwa eine ganze Reihe unterschiedlicher Formulierungen zu, die allesamt äquivalent sind. Ein Beispiel ist die Folgerungsregel von der Eliminierung der Disjunktionen: Satz 4.1.17: Eine Vervollständigung comp/`c /sel hat die Deduktions-Eigenschaft genau dann, wenn gilt (Eigenschaft DIS, ϕ1 und ϕ2 seien variablenfreie Formeln): • comp(Φ) ` ϕ1 ∨ ϕ2 , comp(Φ ∪ {ϕ1 }) ` ψ, comp(Φ) ∪ {ϕ2 } ` ψ =⇒ comp(Φ) ` ψ. • Φ `c ϕ1 ∨ ϕ2 , Φ ∪ {ϕ1 } `c ψ, Φ ∪ {ϕ2 } `c ψ =⇒ Φ `c ψ. • sel (I1 ∪ I2 ) ⊆ sel (I1 ) ∪ sel (I2 ). Beweis: Die Äquivalenz der Formulierung für vervollständigte Folgerungsrelationen und syntaktische Folgerungsrelationen ist in beiden Fällen offensichtlich, folgt also aus der Behauptung für `c . Sei also zunächst die Aussage für vervollständigte Folgerungsrelationen bewiesen: • DIS =⇒ DED“: Es gilt Φ `c (ϕ → ψ) ∨ ϕ, denn (ϕ → ψ) ∨ ϕ ist äquivalent zu ” ¬ϕ ∨ ψ ∨ ϕ und damit zu true, wird also von beliebigem Φ schon logisch impliziert. Nach Voraussetzung gilt Φ ∪ {ϕ} `c ψ, und daher Φ ∪ {ϕ} `c ϕ → ψ. Außerdem gilt natürlich Φ ∪ {ϕ → ψ} `c ϕ → ψ. Wendet man die Regel DIS auf diese drei Voraussetzungen an, so erhält man die Behauptung Φ `c ϕ → ψ. • DED =⇒ DIS“: Nach Voraussetzung gelten Φ `c ϕ1 ∨ ϕ2 , Φ ∪ {ϕ1 } `c ψ und ” Φ ∪ {ϕ2 } `c ψ. Die zweite und dritte Forderung kann man mit DED umformen zu Φ `c ϕ1 → ψ und Φ `c ϕ2 → ψ. Nun folgt aber ϕ `c ψ aus dem Abschluß unter ∧ und `c , denn {ϕ1 ∨ ϕ2 , ϕ1 → ψ, ϕ2 → ψ} ` ψ. Nun ist die Aussage noch für modelltheoretische Vervollständigungen zu beweisen: • DIS =⇒ DED“: Ein Spezialfall der Eigenschaft DIS ist ” sel (I1 ∩ I2 ) ∪ (I1 ∩ I2 ) ⊆ sel (I1 ∩ I2 ) ∪ sel (I1 ∩ I2 ). Offensichtlich kann man die linke Seite zu sel (I1 ) vereinfachen. Schneidet man nun auf beiden Seiten mit I2 , so ergibt sich die Behauptung: sel (I1 ) ∩ I2 ⊆ sel (I1 ∩ I2 ) 80 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN (wegen sel (I1 ∩ I2 ) ⊆ I2 kann der entsprechende Teilterm entfallen). • DED =⇒ DIS“: Zwei Spezialfälle der Eigenschaft DED sind: ” sel (I1 ∪ I2 ) ∩ I1 ⊆ sel (I1 ∪ I2 ) ∩ I1 ) , sel (I1 ∪ I2 ) ∩ I2 ⊆ sel (I1 ∪ I2 ) ∩ I2 ) . Vereinigt man die linken und rechten Seiten und nimmt die offensichtlichen Vereinfachungen vor, so erhält man sel (I1 ∪ I2 ) ∩ (I1 ∪ I2 ) ⊆ sel (I1 ) ∪ sel (I2 ). Nun ist aber ohnehin sel (I1 ∪ I2 ) ⊆ I1 ∪ I2 , man kann die linke Seite also noch weiter zu sel (I1 ∪ I2 ) vereinfachen und erhält damit gerade die Eigenschaft DIS. 2 Ein Spezialfall der Eliminierung der Disjunktion ist das Beweisschema der Fallunterscheidung. Tatsächlich ist es aber im Kontext von Vervollständigungen sogar äquivalent zur Deduktions-Eigenschaft: Satz 4.1.18: Eine Vervollständigung `c hat die Deduktions-Eigenschaft genau dann, wenn Φ ∪ {ϕ} `c ψ, Φ ∪ {¬ϕ} `c ψ =⇒ Φ `c ψ (dabei sei ϕ wieder eine vriablenfreie Formel). Beweis: • Offensichtlich impliziert die Eigenschaft DIS diese Folgerungsregel (für ϕ1 := ϕ und ϕ2 := ¬ϕ gilt trivialerweise Φ `c ϕ1 ∨ ϕ2 ). • Übersetzt man diese Folgerungsregel in die modelltheoretische Sprechweise, so erhält man sel (IΦ ∩ Iϕ ) ⊆ Iψ , sel (IΦ ⊆ Iϕ ) ⊆ Iψ =⇒ sel (IΦ ) ⊆ Iψ . Für Iψ := sel (IΦ ∩ Iϕ ) ∪ sel (IΦ ⊆ Iϕ ) sind die Voraussetzungen trivialerweise erfüllt, und es ergibt sich sel (IΦ ) ⊆ sel (IΦ ∩ Iϕ ) ∪ sel (IΦ ∩ Iϕ ). Schneidet man nun auf beiden Seiten mit Iϕ , so ergibt sich sel (IΦ ) ∩ Iϕ ⊆ sel (IΦ ∩ Iϕ ), also die Deduktions-Eigenschaft. 2 Wieder wird also die Information beschränkt, die verloren geht, wenn eine Formel aus der Datenbank gelöscht wird: Wenn es für eine Anfrage ψ keinen Unterschied macht, ob die Formel ϕ oder ihre Negation ¬ϕ in der Datenbank enthalten sind, dann sollte es auch möglich sein, diese Formel ganz zu löschen. Es gibt noch eine ganze Reihe weiterer äquivalenter Formulierungen. So kann man etwa die Eigenschaft DIS vereinfachen zu Φ ∪ {ϕ1 } `c ψ, Φ ∪ {ϕ2 } `c ψ =⇒ Φ ∪ {ϕ1 ∨ ϕ2 } `c ψ. 4.2. MODELLTHEORETISCHE EIGENSCHAFTEN 81 Auch muß die Formulierung für syntaktische Vervollständigungen sich nicht immer an der Formulierung für vervollständigte Folgerungsrelationen orientieren, so kann man etwa comp(Φ) ∪ {ϕ} ` comp Φ ∪ {ϕ} direkt aus der modelltheoretischen Fassung der Eigenschaft DED ableiten. Diese letzte Eigenschaft besagt, daß alle Defaults, die beim Vorliegen von mehr Information (Φ ∪ {ϕ}) angenommen werden, erst recht bei weniger Information angenommen werden (Φ). Dies ist insofern natürlich, als Defaults ja gerade aufgrund von mangelnder Information angenommen werden sollen. Die Deduktions-Eigenschaft wurde in [Sho87] betrachtet. In der Theorie der Wahlverfahren wurde eine entsprechende Eigenschaft 1954 von Chernoff eingeführt [Mou85]. 4.2 Modelltheoretische Eigenschaften Im folgenden werden noch einige Eigenschaften betrachtet, die keine direkte Beziehung zu Folgerungsregeln haben, aber in der modelltheoretischen Sichtweise recht einleuchtend sind. Auch Beziehungen zwischen Vervollständigungen werden untersucht. Die Expansions-Eigenschaft Während die Deduktions-Eigenschaft die Information begrenzt, die verloren geht, wenn die Voraussetzungen Φ schwächer werden, begrenzt die folgende Eigenschaft die Information, die in diesem Fall gewonnen werden kann. Es mag zunächst nicht intuitiv einleuchten, daß in diesem Fall überhaupt Information gewonnen werden kann, aber das liegt an dem nichtmonotonen Charakter der Vervollständigungen: Wenn die gelöschte Formel etwa gerade einen Default blockierte, kann dieser anschließend angenommen werden. Definition 4.2.1 (Expansions-Eigenschaft): Eine Vervollständigung comp/`c /sel hat die Expansions-Eigenschaft (EXP) genau dann, wenn gilt: • comp Φ ∪ {ϕ1 } ∪ comp Φ ∪ {ϕ2 } ` comp Φ ∪ {ϕ1 ∨ ϕ2 } . • Φ ∪ {ϕ1 ∨ ϕ2 } `c ψ =⇒ es gibt ψ1 , ψ2 ∈ L∗ mit ψ1 ∧ ψ2 ∼ = ψ und Σ c Φ ∪ {ϕ1 } ` ψ1 , Φ ∪ {ϕ2 } `c ψ2 . • sel (I1 ) ∩ sel (I2 ) ⊆ sel (I1 ∪ I2 ). In der modelltheoretischen Sicht besagt diese Eigenschaft, daß ein Modell, das sowohl im Vergleich mit einer Menge I1 von alternativen Modellen intendiert ist, als auch im Vergleich mit I2 , dann auch in ihrer Vereinigung ausgewählt werden sollte. Lemma 4.2.2: Eine syntaktische bzw. modelltheoretische Vervollständigung hat genau dann die Eigenschaft EXP, wenn die zugehörige vervollständigte Folgerungsrelation die Eigenschaft EXP hat. 82 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN Beweis: • Habe comp die Expansions-Eigenschaft und gelte Φ ∪ {ϕ1 ∨ ϕ2 } `comp ψ. Dies bedeutet definitionsgemäß comp Φ ∪ {ϕ1 ∨ ϕ2 } ` ψ. Dann gilt natürlich comp Φ ∪ {ϕ1 } ∪ comp Φ ∪ {ϕ2 } ` ψ, und ψ folgt schon aus einer endlichen Teilmenge. Sei ψi0 die Konjunktion der benötigten Formeln aus comp Φ ∪ {ϕi } (i = 1, 2). Dann gilt Φ ∪ {ϕ1 } `c ψ10 , Φ ∪ {ϕ2 } `c ψ20 und {ψ10 ∧ ψ20 } ` ψ. Die Behauptung folgt nun für ψi := ψi0 ∨ ψ. Habe umgekehrt `comp die Eigenschaft EXP und sei ψ ∈ comp Φ∪{ϕ1 ∨ϕ2 } beliebig. Dann gilt Φ ∪ {ϕ1 ∨ ϕ2 } `comp ψ und daher gibt es ψ1 und ψ2 mit Φ ∪ {ϕ1 } `comp ψ1 , Φ ∪ {ϕ2 } `comp ψ2 und ψ1 ∧ ψ2 ∼ = ψ, also comp Φ ∪ {ϕ1 } ∪ comp Φ ∪ {ϕ2 } ` ψ. • Habe sel die Expansions-Eigenschaft und gelte Φ ∪ {ϕ1 ∨ ϕ2 } `sel ψ. Sei zur Abkürzung IΦ := Mod (Φ), I1 := Mod (ϕ1 ), I2 := Mod (ϕ2 ) und Iψ := Mod (ψ). Damit bedeutet die Voraussetzung: sel IΦ ∩ (I1 ∪ I2 ) = sel (IΦ ∩ I1 ) ∪ (IΦ ∩ I2 ) ⊆ Iψ . Nach der Expansionseigenschaft ist nun sel (IΦ ∩ I1 ) ∩ sel (IΦ ∩ I2 ) ⊆ sel (IΦ ∩ I1 ) ∪ (IΦ ∩ I2 ) ⊆ Iψ . Daher gilt die Behauptung für ψi := th sel (IΦ ∩ Ii ) (i = 1, 2). Habe umgekehrt `sel die Expansions-Eigenschaft. Trivialerweise gilt für Φ := ∅, ϕ1 := th(I1 ), ϕ2 := th(I2 ) und ψ := th sel (I1 ∪ I2 ) , daß Φ ∪ {ϕ1 ∨ ϕ2 } `sel ψ. Nach Voraussetzung gibt es nun ψ1 und ψ2 mit Φ ∪ {ϕ1 } `sel ψ1 , Φ ∪ {ϕ2 } `sel ψ2 , {ψ1 ∧ ψ2 } ` ψ. Dann gilt aber sel (I1 ) ∩ sel (I2 ) ⊆ Mod (ψ1 ) ∩ Mod (ψ2 ) ⊆ sel (I1 ∪ I2 ). 2 Die Expansions-Eigenschaft ist wichtig, weil sie es gestattet, von der Auswahl eines Modells in kleineren Modellmengen auf die Auswahl des Modells in größeren Mengen zu schließen. Die Deduktions-Eigenschaft leistet gerade das Umgekehrte, zusammen hat man: sel (I1 ) ∩ sel (I2 ) ⊆ sel (I1 ∪ I2 ) ⊆ sel (I1 ) ∪ sel (I2 ), also eine obere und eine untere Schranke für sel (I1 ∪ I2 ). Vergleich der Stärke von Vervollständigungen Natürlich ist es auch wichtig, das Verhalten verschiedener Default-Semantiken für dieselbe Default-Spezifikation zu vergleichen. Ein einfacher Zusammenhang ist hier, daß die intendierten Modelle bezüglich der einen Vervollständigung immer eine Teilmenge der intendierten Modelle bezüglich der anderen Vervollständigung sind: 4.3. VERVOLLSTÄNDIGUNGEN ALS SEMANTIK VON DEFAULTS 83 Definition 4.2.3 (Stärker als): Eine Vervollständigung comp 1 /`c1 /sel 1 ist stärker als eine Vervollständigung comp 2 /`c2 /sel 2 genau dann, wenn gilt: • comp 1 (Φ) ` comp 2 (Φ). • Φ `c2 ψ =⇒ Φ `c1 ψ. • sel 1 (I) ⊆ sel 2 (I). In diesem Fall heißt comp 2 /`c2 /sel 2 schwächer als comp 1 /`c1 /sel 1 . Echt stärker heißt eine Vervollständigung, wenn sie stärker ist, aber nicht schwächer. Lemma 4.2.4: Eine syntaktische bzw. modelltheoretische Vervollständigung ist genau dann stärker als eine andere, wenn dies auch für die zugehörigen vervollständigten Folgerungsrelationen gilt. Beweis: • Sei comp 1 stärker als comp 2 . Gelte Φ `comp 2 ψ, d.h. comp 2 (Φ) ` ψ. Da comp 1 stärker als comp 2 ist, gilt comp 1 (Φ) ` comp 2 (Φ) und damit comp 1 (Φ) ` ψ, also Φ `comp 1 ψ. • Sei `comp 1 stärker als `comp 2 . Sei ψ ∈ comp 2 (Φ). Natürlich gilt Φ `comp 2 ψ, dann also auch Φ `comp 1 ψ und daher comp 1 (Φ) ` ψ. Da dies für alle ψ ∈ comp 2 (Φ) gilt, folgt comp 1 (Φ) ` comp 2 (Φ). • Sei sel 1 stärker als sel 2 . Gilt Φ `sel 2 ψ, d.h. sel 2 Mod (Φ) ⊆ Mod (ψ), so gilt wegen sel 1 Mod (Φ) ⊆ sel 2 Mod (Φ) auch sel 1 Mod (Φ) ⊆ Mod (ψ), d.h. Φ `sel 1 ψ. • Sei `sel 1 stärker als `sel 2 . Dann wähle man Φ := Th(I) und ψ := th sel 2 (I) . Natürlich gilt Φ `sel 2 ψ, also auch Φ `sel 1 ψ, dies bedeutet aber sel 1 (I) ⊆ sel 2 (I). 2 Die schwächste aller Vervollständigungen ist die logische Folgerung, die stärkste ist die überall inkonsistente Vervollständigung. Interessanter werden solche extremalen Vervollständigungen natürlich, wenn man zusätzlich noch andere Eigenschaften fordert. 4.3 Vervollständigungen als Semantik von Defaults Ziel dieser Untersuchungen ist ja eine Abbildung von Default-Spezifikationen (∆, <) auf Vervollständigungen, die also die Semantik der Defaults definiert. Bisher wurde nur der Wertebereich dieser Abbildung untersucht. So möchte man etwa für beliebige DefaultSpezifikationen garantieren können, daß die zugehörige Vervollständigung konsistenzerhaltend und kumulierend ist. Die Definition spezieller solcher Abbildungen ist Gegenstand von Kapitel 5. Was hier noch zu tun bleibt, ist Anforderungen an solche Abbildungen zu sammeln. Solange man sich dabei nur auf ein Paar von Eingabe (Default-Spezifikation) und Ausgabe (Vervollständigung) bezieht, kann man dies auch als eine Eigenschaft von Vervollständigungen auffassen, die mit einer Default-Spezifikation parametrisiert ist. Obwohl der Ausprägungs-Mechanismus für die Defaults eigentlich Bestandteil der Vervollständigung ist, wird er auch in den hier betrachteten Eigenschaften benötigt. Man 84 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN kann ihn entweder als einen weiteren Parameter der Eigenschaften ansehen, oder einen festen Ausprägungs-Mechanismus (die Grundbeispiel-Bildung) zugrunde legen. Defaults als einziges Unterscheidungskriterium Sei eine Menge ∆∗ von Default-Ausprägungen gegeben (die Prioritätsrelation spielt in diesem Unterabschnitt keine Rolle). Man kann nun zwei Modelle als äquivalent ansehen, wenn sie sich nicht in den Wahrheitswerten der δ ∈ ∆∗ unterscheiden: Definition 4.3.1 (Äquivalenz bezüglich Defaults): Zwei Interpretationen I1 und I2 heißen äquivalent bezüglich ∆∗ (I1 ∼ =∆∗ I2 ) genau dann, wenn I1 |= δ ⇐⇒ I2 |= δ für alle δ ∈ ∆∗ gilt. Wenn eine Vervollständigung auf ∆∗ basiert, so wird man erwarten, daß sie mit dieser Äquivalenzrelation verträglich ist, also äquivalente Modelle entweder beide auswählt oder beide ausscheidet. Diese Forderung ist modelltheoretisch sehr einleuchtend. Bezogen auf syntaktische Vervollständigungen besagt sie, daß die Vervollständigung durch eine aussagenlogische Verknüpfung von Default-Ausprägungen geschieht: Definition 4.3.2 (Verträglich mit Defaults): Eine Vervollständigung comp/`c /sel heißt verträglich mit Default-Ausprägungen ∆∗ ( compatible with defaults“, CD) genau ” dann, wenn • Für alle Φ gibt es eine Menge E(Φ) von aussagenlogischen Verknüpfungen von Elementen aus ∆∗ , so daß comp(Φ) ∼ = Φ ∪ E(Φ). • Für alle Φ gibt es eine Menge E(Φ) von aussagenlogischen Verknüpfungen von Elementen aus ∆∗ , so daß Φ `c ψ ⇐⇒ Φ ∪ E(Φ) ` ψ. • Für alle I1 , I2 ∈ I: I1 ∼ =∆∗ I2 =⇒ I1 ∈ sel (I) ⇐⇒ I2 ∈ sel (I) . Lemma 4.3.3: Eine syntaktische bzw. modelltheoretische Vervollständigung ist genau dann verträglich mit ∆∗ , wenn dies auch für die zugehörige vervollständigte Folgerungsrelation gilt. Beweis: Die Äquivalenz zwischen der Formulierung für syntaktische Vervollständigungen und vervollständigte Folgerungsrelationen ist offensichtlich. • Sei `sel verträglich mit ∆∗ , und seien I1 , I2 ∈ I mit I1 ∼ =∆∗ I2 . Es gibt nun eine aussagen logische Verknüpfung der Defaults E Th(I) , so daß Th(I) `sel ψ ⇐⇒ Th(I) ∪ E Th(I) ` ψ. Sei ψi := th IΣ − {Ii } für i = 1, 2. Dann gilt Th(I) `sel ψi ⇐⇒ Ii 6∈ sel (I). 4.3. VERVOLLSTÄNDIGUNGEN ALS SEMANTIK VON DEFAULTS 85 Andererseits gilt Th(I) `sel ψi ⇐⇒ Ii 6|= E Th(I) . Da I1 und I2 sich nicht in den Wahrheitswerten der Defaults unterscheiden, gilt dies natürlich auch für Mengen aussagenlogischer Verknüpfungen, also I1 6|= E Th(I) ⇐⇒ I2 6|= E Th(I) . Zusammen mit den übrigen Äquivalenzen folgt I1 6∈ sel (I) ⇐⇒ I2 6∈ sel (I). • Sei umgekehrt sel verträglich mit ∆∗ und sei Φ gegeben. Man konstruiert E(Φ) folgen dermaßen: Für jedes Modell I ∈ sel Mod (Φ) sei E(I) die Konjunktion aller δ ∈ ∆∗ mit I |= δ und aller ¬δ mit I 6|= δ. Dann bestehe E(Φ) aus der Disjunktion aller dieser Formeln. Da sel verträglich mit ∆∗ ist, gilt für jedes I ∈ Mod (Φ) nach Konstruktion I |= E(Φ) =⇒ I ∈ sel Mod (Φ) . Daraus folgt aber Φ `sel ψ ⇐⇒ Φ ∪ E(Φ) ` ψ, denn die linke Seite bedeutet nach Definition: sel Mod (Φ) ⊆ Mod (ψ). 2 Eigenschaften dieser Art wurden in der Literatur offenbar noch nicht betrachtet; es stand immer entweder die allgemeine Folgerungsrelation oder die spezielle Default-Semantik im Vordergrund. Ist ∆∗ leer, so ist intuitiv die einzige vernünftige Semantik die logische Folgerung. Dies kann auch formal mit dieser Eigenschaft begründet werden: Die logische Folgerung die einzige mit ∅ verträgliche konsistenzerhaltende Vervollständigung. Man kann die Eigenschaft CD noch verstärken, wenn man statt der Äquivalenzrelation eine Ordnung auf den Modellen betrachtet. Wird I1 ausgewählt und erfüllt I2 mindestens dieselben Defaults, so sollte I2 erst recht ausgewählt werden. Definition 4.3.4 (erfüllt Defaults ebenso gut wie): Eine Interpretation I1 erfüllt die Default-Ausprägungen ∆∗ mindestens ebenso gut wie I2 (I1 ∆∗ I2 ) genau dann, wenn I2 |= δ =⇒ I1 |= δ für alle δ ∈ ∆∗ gilt. Im Unterschied zu der in Kapitel 5 definierten Ordnung ist diese Relation nur transitiv und nicht irreflexiv (verschiedene Modelle können dieselben Defaults erfüllen). Allerdings ist die dort für Defaults ohne Prioritäten definierte Ordnung gerade der irreflexive Anteil dieser Ordnung. Für Defaults mit Prioritäten ist die dort definierte Ordnung eine Obermenge, so daß diese Eigenschaft noch stärker würde. Hier sollen aber nur völlig unstrittige Forderungen aufgestellt werden, so daß die Semantik der Prioritäten besser noch nicht festgelegt wird. Aber natürlich müssen Vervollständigungen mit Prioritäten erst recht diese Eigenschaft erfüllen (es ist ja keine Entscheidung zwischen konkurrierenden Defaults zu fällen): 86 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN Definition 4.3.5 (Stark verträglich): Eine Vervollständigung comp/`c /sel heißt stark verträglich mit Default-Ausprägungen ∆∗ (Eigenschaft SCD) genau dann, wenn • Für alle Φ gibt es eine Menge E(Φ) von ∧/∨-Verknüpfungen von Elementen aus ∆∗ , so daß comp(Φ) ∼ = Φ ∪ E(Φ). • Für alle Φ gibt es eine Menge E(Φ) von ∧/∨-Verknüpfungen von Elementen aus ∆∗ , so daß Φ `c ψ ⇐⇒ Φ ∪ E(Φ) `c ψ. • Für alle I1 , I2 ∈ I: I1 ∈ sel (I), I2 ∆∗ I1 =⇒ I2 ∈ sel (I). Lemma 4.3.6: Eine syntaktische bzw. modelltheoretische Vervollständigung ist genau dann stark verträglich mit ∆∗ , wenn dies auch für die zugehörige vervollständigte Folgerungsrelation gilt. Beweis: Der Beweis ist sehr ähnlich zu dem von Lemma 4.3.3. Die Unterschiede sind: • In der Richtung von `sel nach sel hat man jetzt nur noch die Implikation: I1 6|= E Th(I) ⇐= I2 6|= E Th(I) . • In der anderen Richtung enthält E(I) jetzt nur noch die Konjunktion aller δ ∈ ∆∗ mit I |= δ. 2 Die naive CWA Die originale CWA [Rei78] nimmt ein negatives Grundliteral an, wenn das entsprechende positive Grundliteral nicht aus den Axiomen folgt (siehe Kapitel 3). Die Verallgemeinerung auf beliebige Defaults und Prioritäten wird hier die naive CWA genannt, weil sie verglichen mit den anderen Default-Semantiken so einfach ist (und um sie von der vorsichtigen CWA in Kapitel 5 zu unterscheiden). Diese Einfachheit hat bekanntlich den Preis, daß die naive CWA nicht konsistenzerhaltend ist, wenn zwei Defaults gleicher Priorität im Konflikt miteinander stehen (sie werden dann beide angenommen). Andererseits ist diese Einfachheit ihre große Stärke: Sie ist so einleuchtend, daß im Konsistenzfall jede gute Default-Semantik mit ihr übereinstimmen sollte. Diese Eigenschaft wird NCWA-Eigenschaft genannt. Falls keine Prioritäten spezifiziert sind, ist die naive CWA einfach ncwa ∆ (Φ) := Φ ∪ {δ ∈ ∆∗ | Φ 6` ¬δ}. Bei Prioritätsstufen wird diese Konstruktion entsprechend iteriert, im allgemeinen Fall ergibt sich folgende Definition: Definition 4.3.7 (Naive CWA): Die naive CWA wird induktiv über der Anzahl der Elemente von ∆∗ definiert: • Ist ∆∗ leer, so ist ncwa (∆∗ ,<) (Φ) := Φ. • Sonst sei ∆∗δ := {δ0 ∈ ∆∗ | δ0 < δ} die Menge der Defaults echt höherer Priorität als δ ∈ ∆∗ , und <δ sei die Restriktion von < auf ∆∗δ . Da diese Menge mindestens 4.3. VERVOLLSTÄNDIGUNGEN ALS SEMANTIK VON DEFAULTS 87 einen Default weniger enthält (δ), ist ncwa (∆∗δ ,<δ ) schon definiert. Nun sei ncwa (∆∗ ,<) (Φ) := Φ ∪ {δ ∈ ∆∗ | ncwa (∆∗δ ,<δ ) 6` ¬δ}. Schließlich sei ncwa (∆,<) := ncwa (∆∗ ,<) . Falls es keine Prioritäten gibt, ist ∆∗δ leer, und die Definition vereinfacht sich zu ncwa ∆ (Φ) := Φ ∪ {δ ∈ ∆∗ | Φ 6` ¬δ} (wie bereits in Kapitel 3 angegeben). Es ist auch möglich, die naive CWA modelltheoretisch zu definieren, zur Vereinfachung wird hier nur die Version ohne Prioritäten angegeben: \ Mod (δ). ncwa ∆ (I) := I ∩ {δ∈∆∗ |Mod(δ)∩I6=∅} Die Äquivalenz und die Verallgemeinerung auf Prioritäten sind offensichtlich. In Abschnitt 5.1 wird eine Charakterisierung mittels minimaler Modelle angegeben. Definition 4.3.8 (NCWA-Eigenschaft): Eine Vervollständigung comp/`c /sel hat für gegebenes (∆, <) die NCWA-Eigenschaft genau dann, wenn • Ist ncwa (∆,<) (Φ) konsistent, so gilt comp(Φ) ∼ = ncwa (∆,<) (Φ). • Ist ncwa (∆,<) (Φ) konsistent, so gilt Φ `c ψ ⇐⇒ ncwa (∆,<) (Φ) ` ψ. • Ist ncwa (∆,<) (I) 6= ∅, so gilt sel (I) = ncwa (∆,<) (I). Die Äquivalenz der verschiedenen Formulierungen ist offensichtlich. Disjunktions-Eigenschaft für Defaults Man kann die in Abschnitt 4.1 angegebenen Eigenschaften abschwächen, indem man sie nicht für beliebige Formeln ψ fordert, sondern nur für Defaults. Die DeduktionsEigenschaft läßt sich etwa äquivalent in der folgenden Form aufschreiben: Φ ∪ {ϕ1 } ` ψ, Φ ∪ {ϕ2 } ` ψ =⇒ Φ ∪ {ϕ1 ∨ ϕ2 } ` ψ. Die vorsichtige CWA hat diese Eigenschaft nicht. Setzt man jedoch zusätzlich ψ ∈ ∆∗ voraus, so erhält man die folgende Eigenschaft, die auch von der vorsichtigen CWA erfüllt wird (siehe Kapitel 5): Definition 4.3.9 (Eigenschaft DDIS): Eine Vervollständigung comp/`c /sel hat die Disjunktions-Eigenschaft für ∆∗ (Eigenschaft DDIS) genau dann, wenn • comp Φ ∪ {ϕ1 } ` δ, comp Φ ∪ {ϕ2 } ` δ =⇒ comp Φ ∪ {ϕ1 ∨ ϕ2 } ` δ. • Φ ∪ {ϕ1 } `c δ, Φ ∪ {ϕ2 } `c δ =⇒ Φ ∪ {ϕ1 ∨ ϕ2 } `c δ. • sel (I1 ) ⊆ Mod (δ), sel (I2 ) ⊆ Mod (δ) =⇒ sel (I1 ∪ I2 ) ⊆ Mod (δ). 88 KAPITEL 4. EIGENSCHAFTEN VON VERVOLLSTÄNDIGUNGEN Die Äquivalenz der verschiedenen Formulierungen ist offensichtlich. Diese Eigenschaft bedeutet, daß wenn ein Default δ in Φ ∪ {ϕ1 } angenommen wird, und in Φ ∪ {ϕ2 }, er dann auch in Φ ∪ {ϕ1 ∨ ϕ2 } angenommen werden sollte. Er kann dann ja nicht durch Axiome blockiert werden und alle Konflikte mit anderen Defaults sind in den beiden in der Voraussetzung genannten Axiomenmengen schon aufgetreten, dort hat sich δ aber durchgesetzt. Eine unmittelbare Folgerung aus der Definition und Satz 4.1.17 ist: Korollar 4.3.10: Hat eine Vervollständigung die Deduktions-Eigenschaft, so hat sie auch die Eigenschaft DDIS für beliebige ∆∗ . Kapitel 5 Semantik von Defaults In diesem Kapitel werden nun verschiedene konkrete Vorschläge für die Semantik von Defaults angegeben. Es wird dabei jeweils untersucht, welche der Eigenschaften aus dem letzten Kapitel für beliebige Default-Spezifikationen garantiert werden können. Außerdem ist auch die Ausdrucksfähigkeit der Semantiken interessant, d.h. die Frage, welche Vervollständigungen durch geeignete Default-Spezifikationen beschrieben werden können. Zwischen diesen beiden Zielen gibt es natürlich einen Konflikt: Je mehr Vervollständigungen beschrieben werden können, desto weniger Eigenschaften können garantiert werden. Natürlich werden die verschiedenen Semantiken auch verglichen, insbesondere gibt es Resultate der Form, daß eine Semantik grundsätzlich eine stärkere Vervollständigung liefert als eine andere. Schließlich ist es möglich, Default-Semantiken durch Eigenschaften zu charakterisieren. Damit wird die eingangs gestellte Frage, welche Vervollständigung einer DefaultSpezifikation zugeordnet werden sollte, zumindest relativ zu einer Menge von Eigenschaften beantwortet. 5.1 Minimale Modelle Die Idee der minimalen Modelle ist, daß ein Modell um so besser ist, je mehr Defaults es erfüllt. Aus den durch die Axiome eingeschränkten Modellen wählt man dann die besten aus. Tatsächlich kann man minimale Modelle aber auch unabhängig von Defaults betrachten, man braucht nur eine (strikte) partielle Ordnung auf den Herbrand-Interpretationen, d.h. eine transitive und irreflexive zweistellige Relation. Ist etwa I1 ≺ I2 , so hält man die durch I1 beschriebene Situation für plausibler als I2 . Beispielsweise könnten sich I1 und I2 dadurch unterscheiden, daß der Vogel tweety in I1 fliegen kann, aber nicht in I2 . Da Vögel normalerweise fliegen können, würde man I1 vorziehen, wenn die Axiome beide Situationen zulassen. Ist dagegen explizit die Information 89 90 KAPITEL 5. SEMANTIK VON DEFAULTS gegeben, daß tweety nicht fliegen kann, dann ist I1 ausgeschlossen und I2 ein intendiertes Modell. Dieses Beispiel entspricht natürlich gerade der Ordnung, die durch den Default Vögel ” können normalerweise fliegen“ gegeben wäre. In diesem Abschnitt werden daher einerseits allgemeine Präferenzrelationen ≺ betrachtet, und andererseits die durch eine Menge von Defaults gegebene Ordnung ≺∆ . Später werden dann auch Ordnungen für Defaults mit Prioritäten eingeführt, wobei die allgemeinen Resultate weiterhin gültig bleiben. Definition 5.1.1 (Ordnungsrelation zu einer Menge von Defaults): Die zu einer Menge ∆ von Defaults gehörige Ordnungsrelation ≺∆ auf den Herbrandmodellen ist I1 ≺∆ I2 :⇐⇒ δ ∈ ∆∗ I1 |= δ ⊃ δ ∈ ∆∗ I2 |= δ . Definition 5.1.2 (Minimale Modelle): Sei ≺ eine transitive und irreflexive Relation auf den Herbrand-Interpretationen IΣ . Dann ist die modelltheoretische Vervollständigung min ≺ definiert durch min ≺ (I) := {I ∈ I | es gibt kein I0 ∈ I mit I0 ≺ I}. Für eine Menge ∆ von Defaults sei min ∆ := min ≺∆ . Natürlich könnte man die Ordnungsrelation auch umdrehen und dann entsprechend von maximalen Modellen“ sprechen. Der Name minimale Modelle hat sich aber eingebürgert, ” weil die typischen Defaults Negationen sind. Dann interpretiert ein Modell, was maximal viele Defaults erfüllt, die Prädikate gerade durch minimale Relationen. Minimale Modelle in diesem Sinne wurden in [Dav80, McC80] eingeführt. Ein abstrakter Ansatz mit beliebigen Präferenzrelationen wurde in [Sho87] vorgeschlagen. Die Beziehung zwischen Defaults und Ordnungsrelationen wurde in [BL89] ausführlich untersucht. Beziehung zwischen Ordnungsrelationen und Defaults Oben wurde definiert, welche Ordnungsrelation durch eine Menge von Defaults beschrieben ist. Tatsächlich kann man aber auch umgekehrt zu einer gegebenen Ordnungsrelation eine Menge von Defaults konstruieren (unter den hier zugrundeliegenden Endlichkeitsannahmen). Das bedeutet, daß beliebige Ordnungsrelationen durch Defaults beschrieben werden können: Lemma 5.1.3: Zu jeder partiellen Ordnung ≺ auf den Herbrand-Interpretationen gibt es eine Menge ∆ von Defaults, so daß ≺ = ≺∆ . Beweis: Für jedes Herbrandmodell I sei δI := th {I} ∪ {I 0 ∈ IΣ | I 0 ≺ I} . Dann sei die zu konstruierende Menge von Defaults: ∆ := {δI | I ∈ IΣ }. Diese Defaults sind variablenfreie Formeln, es gilt also ∆∗ = ∆. 5.1. MINIMALE MODELLE 91 • Da die den Defaults entsprechenden Modellmengen nach unten abgeschlossen sind, folgt aus I1 ≺ I2 und I2 |= δ natürlich I1 |= δ und damit gilt I1 ≺ I2 =⇒ δ ∈ ∆∗ I1 |= δ ⊃ {δ ∈ ∆∗ | I2 |= δ}. • Ist dagegen I1 6≺ I2 , dann gilt I2 |= δI2 , aber I1 6|= δI2 , also folgt 6⊃ und damit die Richtung ⇐= . 2 Die Konstruktion der Defaults in dem Beweis ist nicht unrealistisch, zumindest erhält man in dem Standardbeispiel (Minimierung der Prädikatextensionen) Konjunktionen von negativen Grundliteralen, die man mit Satz 5.1.5 (s.u.) zu den üblichen negativen Grundliteralen vereinfachen kann. Konjunktionen sind aber nicht immer überfüssig. Wenn man als Defaults nur Klauseln zuläßt, würde sich die Ausdrucksfähigkeit dieses Ansatzes verringern, nicht jede Ordnungsrelation wäre mehr darstellbar: Beispiel 5.1.4: Seien die Interpretationen über einer Signatur mit den beiden Aussagenvariablen p und q betrachtet. Die Ordnung ≺ sei gegeben durch: [p̄q̄] ≺ [p̄q] ≺ [pq̄] ≺ [pq] (dies entspricht gerade den Defaults ¬p und ¬q, wobei ¬p höhere Priorität hat, s.u.). Ziel ist es nun, eine passende Menge ∆ von Defaults zu konstruieren. Auf jeden Fall muß in [p̄q̄] ein Default δ ∈ ∆ gelten, der in [p̄q] nicht gilt, sonst wäre [p̄q̄] 6≺∆ [p̄q̄]. Würde δ aber in einer der beiden anderen Interpretationen [pq̄] und [pq] gelten, so müßte er auch in [p̄q] gelten, denn sonst wäre [p̄q̄] 6≺∆ [pq̄] bzw. [p̄q̄] 6≺∆ [pq]. Da δ aber in [p̄q] gerade nicht gilt, kann er also nur in [p̄q̄] gelten und in keiner der anderen Interpretationen. Man kann nun aber leicht alle in Frage kommenden Klauseln durchgehen und feststellen, daß sie diese Bedingung nicht erfüllen. Man bräuchte hier die Konjunktion ¬p ∧ ¬q, die aber keine Klausel ist. 2 Zwei verschiedene Ordnungsrelationen liefern auch immer zwei verschiedene Vervollständigungen, wie man an Axiomenmengen mit genau zwei Modellen sehen kann. Für Mengen von Defaults gilt das dagegen nicht, es ist durchaus möglich, daß ∆1 6= ∆2 , aber min ∆1 = min ∆2 gilt. Es ist nützlich zu wissen, wann Mengen von Defaults in diesem Sinne äquivalent sind, etwa um Vereinfachungen vorzunehmen, oder um feststellen zu können, ob die Vorschläge zweier verschiedener Entwerfer sich tatsächlich unterscheiden. Man wird erwarten, daß Vervollständigungen keinen Unterschied zwischen äquivalenten Defaults machen; die folgende Aussage ist aber noch deutlich stärker: Satz 5.1.5: Seien ∆1 und ∆2 Mengen von Defaults, wobei jeder Default δ1 ∈ ∆∗1 äquivalent zu einer Verknüpfung mit ∧ und ∨ von Defaults aus ∆∗2 ist und umgekehrt jeder Default δ2 ∈ ∆∗2 äquivalent zu einer ∧/∨-Verknüpfung von Defaults aus ∆∗1 ist. Dann gilt min ∆1 = min ∆2 . 92 KAPITEL 5. SEMANTIK VON DEFAULTS Beweis: Gelte die Darstellbarkeit mit den jeweils anderen Defaults. Seien zwei beliebige Interpretationen I und I 0 gegeben. Zunächst wird gezeigt, daß es für jeden Default δ2 ∈ ∆∗2 mit I |= δ2 und I 0 6|= δ2 einen Default δ1 ∈ ∆∗1 gibt mit I |= δ1 und I 0 6|= δ1 : Dies geschieht mit Induktion über dem Aufbau eines zu δ2 äquivalenten Defaults δ̃2 aus ∆∗1 -Defaults. Ist δ̃2 ∈ ∆∗1 , so gilt die Behauptung trivialerweise. Ist δ̃2 = δ̃2,1 ∨ δ̃2,2 , so muß in I mindestens ein δ̃2,i wahr sein, während in I 0 beide falsch sind (insbesondere das δ̃2,i , das in I wahr ist). Dann folgt die Behauptung aber aus der Induktionsannahme. Im Fall δ̃2 = δ̃2,1 ∧ δ̃2,2 ist eines der δ̃2,i in I 0 falsch und in I wahr, so daß die Behauptung wieder auf die Induktionsannahme zurückgeführt werden kann. Aus Symmetriegründen gibt es natürlich umgekehrt auch für jeden Default δ10 ∈ ∆∗1 mit I 6|= δ10 und I 0 |= δ10 auch einen Default δ20 ∈ ∆∗2 mit I 6|= δ20 und I 0 |= δ20 . Gelte nun I ≺∆1 I 0 . Dann gibt es einen Default δ1 ∈ ∆∗1 mit I |= δ1 und I 0 6|= δ1 und nach der obigen Überlegung also auch einen Default δ2 ∈ ∆∗2 mit I |= δ2 und I 0 6|= δ2 . Umgekehrt gibt es keinen Default δ10 mit I 6|= δ10 und I 0 |= δ10 . Dann kann es aber auch keinen Default δ20 ∈ ∆∗2 geben mit I 6|= δ20 und I 0 |= δ2 , denn daraus könnte man nach dem obigen so einen Default δ10 konstruieren. Also gilt I ≺∆2 I 0 . Die andere Richtung I ≺∆2 I 0 =⇒ I ≺∆1 I 0 folgt wieder aus Symmetriegründen. 2 Offene Frage 5.1.6: Dieses Kriterium für die Äquivalenz zweier Mengen von Defaults ∆1 und ∆2 , d.h. für min ∆1 = min ∆2 ist nur hinreichend, aber nicht notwendig. Gibt es ein nichttriviales hinreichendes und notwendiges Kriterium? In der Literatur wurden solche Fragestellungen offenbar noch nicht betrachtet, die Sätze dieses Unterabschnittes sind beide neu. Eigenschaften Anschließend sollen die Eigenschaften der Vervollständigungen vom Typ minimale Mo” delle“ untersucht werden. Es wird sich dabei zeigen, daß sie alle Eigenschaften aus Kapitel 4 haben. Für den Nachweis dieser Eigenschaften ist das folgende Lemma nützlich, das etwas stärker als die bloße Existenz eines minimalen Modells ist. Es gilt hier aufgrund der Endlichkeitsannahmen, im allgemeinen Fall ist der Beweis aber recht aufwendig und erfordert etwa den Verzicht auf Existenzquantoren [BRL91]: Lemma 5.1.7: Zu jedem Modell I einer Axiomenmenge Φ gibt es ein ≺-minimales Modell I0 von Φ mit I0 ≺ I oder I0 = I. Beweis: Falls I nicht minimal ist, gibt es dazu ein kleineres Modell I1 . Falls auch das noch nicht minimal ist, gibt es dazu wieder ein kleineres Modell I2 , für das natürlich auch I2 ≺ I gilt. Da es insgesamt nur endlich viele Modelle gibt und in der Folge I, I1 , I2 , . . . keines doppelt auftreten kann, muß die Konstruktion schließlich mit einem minimalen Modell Ii enden. Dann sei I0 := Ii . 2 5.1. MINIMALE MODELLE 93 Satz 5.1.8: Sei ≺ eine beliebige partielle Ordnung auf den Herbrand-Interpretationen. • min ≺ ist konsistenzerhaltend (Eigenschaft CON). • min ≺ ist kumulierend (Eigenschaft CUM). • min ≺ hat die Deduktions-Eigenschaft (Eigenschaft DED). • min ≺ hat die Expansions-Eigenschaft (Eigenschaft EXP). Beweis: • (CON): Die Konsistenzerhaltung folgt direkt aus Lemma 5.1.7. • (CUM): Sei min ≺ (I1 ) ⊆ I2 ⊆ I1 . Zu zeigen ist min ≺ (I2 ) = min ≺ (I1 ). Ist I ∈ min ≺ (I1 ), dann gilt nach Voraussetzung I ∈ I2 . Würde es in I2 ein kleineres Modell geben, dann wäre dies wegen I2 ⊆ I1 auch in I1 , das ist aber wegen der Minimalität von I in I1 nicht möglich. Also gilt I ∈ min ≺ (I2 ). Ist umgekehrt I ∈ min ≺ (I2 ), so ist wegen I2 ⊆ I1 natürlich I ∈ I1 . Wäre nun I 6∈ min ≺ (I1 ), so müßte es ein kleineres Modell I 0 ∈ I1 geben, und dazu nach Lemma 5.1.7 auch ein Modell I0 ∈ min ≺ (I1 ) mit I0 ≺ I 0 ≺ I oder I0 = I 0 ≺ I. Wegen min ≺ (I1 ) ⊆ I2 wäre dann aber I0 ∈ I2 , d.h. I wäre nicht minimal im Gegensatz zur Annahme. • (DED): Zu zeigen ist sel (I1 ) ∩ I2 ⊆ sel (I1 ∩ I2 ). Sei also I ∈ sel (I1 ) ∩ I2 . Wegen sel (I1 ) ⊆ I1 gilt dann natürlich I ∈ I1 ∩ I2 . Wäre nun I nicht minimal in I1 ∩ I2 , so müßte es I 0 ∈ I1 ∩ I2 geben mit I 0 ≺ I. Dann wäre I aber erst recht nicht minimal in I1 , denn I 0 ∈ I1 . Das widerspricht der Voraussetzung I ∈ sel (I1 ). • (EXP): Zu zeigen ist sel (I1 ) ∩ sel (I2 ) ⊆ sel (I1 ∪ I2 ). Sei I ∈ sel (I1 ) ∩ sel (I2 ). Dann gilt natürlich I ∈ I1 ∪ I2 . Wäre I nicht minimal in I1 ∪ I2 , gäbe es I 0 ∈ I1 ∪ I2 mit I 0 ≺ I. Es müßte dann I 0 ∈ I1 oder I 0 ∈ I2 gelten, dann wäre aber I in der betreffenden Menge nicht minimal im Widerspruch zu I ∈ sel (I1 ) ∩ sel (I2 ). 2 Der Nachweis dieser Eigenschaften lehnt sich an Ergebnisse der Theorie der Wahlverfahren an [Mou85]. Die Kumulierung wurde unabhängig davon in [Mak89] bewiesen, die Deduktions-Eigenschaft in [Sho87]. Ausdrucksfähigkeit Als nächstes sollen die Vervollständigungen charakterisiert werden, die sich durch Präferenzrelationen auf den Modellen beschreiben lassen. Wenn man die charakterisierenden Eigenschaften für natürlich und wünschenswert hält, kann man sich also auf Vervollständigungen dieser Klasse beschränken. Satz 5.1.9: Sei sel eine modelltheoretische Vervollständigung mit den Eigenschaften CON (Konsistenzerhaltung), CUM (Kumulierung), DED (Deduktions-Eigenschaft) und EXP (Expansion). Dann gibt es eine partielle Ordnung ≺, so daß min ≺ = sel . 94 KAPITEL 5. SEMANTIK VON DEFAULTS Beweis: werden: Die Ordnungsrelation ≺ kann einfach aus den Zweiervergleichen von sel abgeleitet I1 ≺ I2 :⇐⇒ sel {I1 , I2 } = {I1 }, I1 6= I2 (falls sel {I1 , I2 } = {I1 , I2 }, sind I1 und I2 also unvergleichbar). Zunächst ist zu zeigen, daß es sich dabei überhaupt um eine partielle Ordnung handelt. Die Irreflexivität folgt direkt aus der Konstruktion, es fehlt also nur noch die Transitivität: • Gelte I1 ≺ I2 und I2 ≺ I3 , d.h. sel {I1 , I2 } = {I1 } und sel {I2 , I3 } = {I2 }. Nach der Eigenschaft DED in der Formulierung nach Satz 4.1.17 gilt einerseits sel {I1 , I2 , I3 } ⊆ sel {I1 , I2 } ∪ sel {I2 , I3 } = {I1 , I2 } und andererseits sel {I1 , I2 , I3 } ⊆ sel {I1 , I2 } ∪ sel {I3 } = {I1 , I3 }, also folgt sel {I1 , I2 , I3 } = {I1 }. Dann ist aber sel {I1 , I2 , I3 } ⊆ {I1 , I3 } ⊆ {I1 , I2 , I3 } und mit der Kumulierung folgt direkt sel {I1 , I3 } = {I1 }, d.h. I1 ≺ I3 . Es ist jetzt natürlich noch zu zeigen, daß min ≺ = sel : • ⊆“: Sei I0 ∈ min ≺ (I). Dann gilt für jedes I ∈ I, daß I0 ∈ sel {I0 , I} ist, denn sonst ” wäre I ≺ I0 . Die Expansions-Eigenschaft liefert dann [ \ {I0 , I} = sel (I). I0 ∈ sel {I0 , I} ⊆ sel I∈I I∈I • ⊇“: Sei I0 ∈ sel (I). Nach der Eigenschaft DED (in der Formulierung nach Satz 4.1.17) ” gilt für jedes I ∈ I: I0 ∈ sel (I) = sel {I0 , I} ∪ I − {I0 } ⊆ sel {I0 , I} ∪ sel I − {I0 } . Da aber I0 6∈ sel I − {I0 } , muß I0 ∈ sel {I0 , I} gelten. Das bedeutet aber I 6≺ I0 . Da das für jedes I gilt, ist I0 minimal und es folgt I0 ∈ min ≺ (I). 2 Die Umkehrung dieses Satzes (jede mit einer Präferenzrelation darstellbare Vervollständigung hat die vier Eigenschaften) gilt auch, siehe Satz 5.1.8. Wegen Lemma 5.1.3 gibt es natürlich zu der Ordnung auch eine passende Menge von Defaults: Korollar 5.1.10: Sei sel eine Vervollständigung mit den Eigenschaften CON, CUM, DED und EXP. Dann gibt es eine Menge ∆ von Defaults, so daß min ∆ = sel . Satz 5.1.9 [Bra90a] ist eine Übersetzung eines entsprechenden Ergebnisses der Theorie der Wahlverfahren [Mou85]. Auf diese Weise zahlt sich die in dieser Arbeit eingeführte systematische Übersetzung der untersuchten Eigenschaften aus. Eine ähnliche Fragestellung wurde in [KLM90] untersucht, dort wird aber ein eigens zu diesem Zweck konstruierter Modellbegriff verwendet, daher wird eine Charakterisierung durch die drei Eigenschaften CON, CUM und DED erreicht. Diese Eigenschaften implizieren nicht EXP. 5.1. MINIMALE MODELLE 95 Erweiterung auf priorisierte Defaults Legt die Default-Spezifikation auch Prioritäten für die Defaults fest, so müssen diese natürlich bei der Festlegung der zugehörigen Präferenzrelation auf den Modellen berücksichtigt werden. Bekanntlich wird ein Default mit höherer Priorität (also kleinerem `Wert) als wichtiger angesehen als beliebig viele Defaults niedrigerer Priorität. Daher braucht man nur die Defaults auf der höchsten Prioritäts-Ebene zu berücksichtigen, auf der sich die beiden Modelle in der Interpretation eines Defaults unterscheiden: Definition 5.1.11 (Minimale Modelle mit Prioritäten): Sei ∆ eine Menge von Defaults und ` eine Stufeneinteilung von ∆. Die durch (∆, `) gegebene Präferenzrelation ist I1 ≺(∆,`) I2 :⇐⇒ es gibt ein i ∈ IN mit ∗ δ ∈ ∆ `(δ) < i, I1 |= δ = δ ∈ ∆∗ `(δ) < i, I2 |= δ , δ ∈ ∆∗ `(δ) = i, I1 |= δ ⊃ δ ∈ ∆∗ `(δ) = i, I2 |= δ . Die durch (∆, `) gegebene Vervollständigung vom Typ minimale Modelle ist min (∆,`) := min ≺(∆,`) . Lemma 5.1.12: irreflexiv. Die Relation ≺(∆,`) ist eine partielle Ordnung, also transitiv und Beweis: Die Irreflexivität gilt direkt nach der Definition. Die Transitivität ist ebenfalls einfach: Gelte I1 ≺(∆,`) I2 , wobei sich die beiden Modelle erstmals auf der Stufe i1 unterscheiden, und gelte I2 ≺(∆,`) I3 aufgrund der Defaults der Stufe i2 . Dann wird die definierende Eigenschaft von I1 ≺(∆,`) I3 für i := min(i1 , i2 ) erfüllt. 2 Da die Eigenschaften oben für beliebige Vervollständigungen des Typs minimale Mo” delle“ nachgewiesen wurden, gelten sie natürlich auch, wenn die Präferenzrelation anders konstruiert wurde. Hinsichtlich der Eigenschaften und der Ausdrucksfähigkeit ist die Verallgemeinerung auf priorisierte Defaults also nicht besonders interessant, aber sie vereinfacht die praktische Spezifikationsarbeit beträchtlich: Beispiel 5.1.13: Sei der typische Fall priorisierter Defaults betrachtet, nämlich den Default ¬p mit `(¬p) = 1 und den Default ¬q mit `(¬q) = 2. Nach der Konstruktion in Beweis von Lemma 5.1.3 erhält man äquivalente nicht-priorisierte Defaults, wenn man zu jedem Modell einen Default einführt, der in diesem Modell und allen kleineren gilt. Danach braucht man also die vier Defaults: ¬p ∧ ¬q, ¬p, ¬p ∨ ¬q, true (true ist natürlich überflüssig). Das Prinzip ist also, daß man sicherstellen muß, daß die geringer priorisierten Defaults (¬q) automatisch erfüllt sind, wenn ein höher priorierter Default gilt, daher die Disjunktion ¬p ∨ ¬q. Andererseits ist es natürlich noch besser, wenn beide Defaults erfüllt sind: ¬p ∧ ¬q. Bei einem zusätzlichen Default ¬p0 der Stufe 1 96 KAPITEL 5. SEMANTIK VON DEFAULTS erhält man: ¬p ∧ ¬p0 ∧ ¬q, ¬p ∧ (¬p0 ∨ q), ¬p0 ∧ (¬p ∨ q), ¬p, ¬p0 , ¬p ∨ ¬p0 ∨ q. Diese Konstruktion wird also schnell sehr aufwendig. Wenn man natürlich anhand der möglichen Axiomenmengen Φ weiß, daß ein Konflikt zwischen p0 und q nicht auftreten kann, dann bekommt man wieder die obigen Defaults (plus ¬p0 ). Wenn man zusätzlich weiß, daß p und q immer im Konflikt stehen, so kann man auch den Default ¬p ∧ ¬q weglassen. In jedem Fall sind Prioritäten aber wesentlich natürlicher als die so konstruierten Defaults. 2 Exkurs: Iterative Minimale Modelle Semantik Eine andere naheliegende Möglichkeit, Defaults mit Prioritäten eine Semantik zuzuordnen, ist eine iterative Konstruktion: Es werden erst die minimalen Modelle bezüglich der Defaults höchster Priorität gebildet, dann unter diesen die minimalen bezüglich der Defaults der nächsten Stufe ausgewählt, und so weiter. Dieses Vorgehen ist natürlich nicht nur für minimale Modelle möglich, sondern für beliebige Vervollständigungen. Mindestens im Fall der minimalen Modelle ist die so konstruierte Vervollständigung allerdings nicht äquivalent zur Verwendung der obigen Ordnungsrelation, sondern ist echt stärker: Satz 5.1.14: Sei ∆ eine Menge von Defaults und ` eine Einteilung von ∆ in n Stufen. Sei ∆i := {δ ∈ ∆ | `(δ) = i} für i = 1, . . . , n. Dann gilt für jede Menge I von Interpretationen: min (∆,`) (I) ⊇ min ∆n . . . min ∆1 (I) . . . . Beweis: Sei also I ∈ min ∆n (. . .). Angenommen, I 6∈ min (∆,`) (I). Dann gibt es I0 mit I0 ≺(∆,`) I, d.h. für ein i ∈ IN ist δ ∈ ∆∗ `(δ) < i, I0 |= δ = δ ∈ ∆∗ `(δ) < i, I |= δ , δ ∈ ∆∗ `(δ) = i, I0 |= δ ⊃ δ ∈ ∆∗ `(δ) = i, I |= δ . Da I ∈ min ∆i−1 (. . .), und sich I0 von I nicht in der Interpretation dieser Defaults unterscheidet, gilt natürlich I0 ∈ min ∆i−1 (. . .). Nun erfüllt I0 aber echt mehr Defaults der Stufe i, d.h. es gilt I0 ≺∆i I. Dann ist aber I 6∈ min ∆i (. . .), und damit I 6∈ min ∆n (. . .) im Widerspruch zur Voraussetzung. 2 Der Grund für die stärkere Einschränkung der intendierten Modelle bei der iterativen Konstruktion ist, daß hier bei der Auswahl von Defaults niedrigerer Priorität auch Modelle verglichen werden, die schon bei den Defaults höherer Priorität unvergleichbar waren: 5.1. MINIMALE MODELLE 97 Beispiel 5.1.15: Sei eine Signatur mit den Aussagenvariablen p1 , p2 und q zugrunde gelegt, und sei ∆1 := {¬p1 , ¬p2 } und ∆2 := {¬q}. Sei folgende Axiomenmenge gegeben: Φ := {p1 ∨ p2 , p1 ∨ q}. Es gibt dann zwei bezüglich ≺(∆,`) minimale Modelle: I1 := [p¯1 p2 q], das den Default ¬p1 erfüllt, und I2 := [p1 p¯2 q̄], das die Defaults ¬p2 und ¬q erfüllt. Bei der iterativen Konstruktion kommt dagegen nur I2 heraus, weil es bezüglich ∆1 nicht schlechter als I1 ist, bezüglich ∆2 aber besser. 2 Es stellt sich nun die Frage, ob es auch eine Ordnungsrelation gibt, die gerade der iterativen Konstruktion entspricht. Daß dies nicht der Fall ist, ja sogar die iterative Konstruktion unabhängig davon eine schlechte Vervollständigung ist, zeigt das folgende Beispiel. Beispiel 5.1.16: Sei eine Signatur mit den Aussagenvariablen p und q zugrunde gelegt, und sei ∆1 := {¬p, ¬q, q}, ∆2 := {p}, Φ := {p ∨ q}. Bezüglich ≺(∆,`) sind die Modelle [p̄q] und [pq̄] minimal, das Modell [pq] wird dagegen von [p̄q] geschlagen“. ” Die Ordnungsrelation ≺∆1 liefert dieselben minimalen Modelle. Bezüglich ≺∆2 ist aber [pq̄] kleiner als [p̄q], also ist bezüglich der iterativen Konstruktion [pq̄] das einzige intendierte Modell und p folgt vervollständigt aus Φ. Sei nun Φ0 := Φ∪{p} betrachtet. Da das Modell [p̄q] jetzt ausgeschlossen ist, sind beide Modelle [pq̄] und [pq] minimal, und zwar sowohl bezüglich ≺∆1 als auch bezüglich ≺∆2 . Daher hat sich die Menge der intendierten Modelle geändert, und während vorher etwa ¬q folgte, gilt das jetzt nicht mehr. Dies ist aber eine Verletzung der KumulationsEigenschaft (und daher läßt sich die Vervollständigung natürlich nicht mittels minimaler Modelle darstellen). 2 Es sei abschließend noch bemerkt, daß eine iterative Konstruktion, die der Ordnung ≺ (∆,`) entspricht, schon möglich ist, man muß dann aber statt ≺∆i eine andere Ordnung verwenden: Satz 5.1.17: Sei wieder ` eine n-Stufeneinteilung, ∆i := {δ ∈ ∆ | `(δ) = i} und sei ≺i definiert durch: I ≺i I 0 :⇐⇒ I ∼ =∆∗1 I 0 , . . . , I ∼ =∆∗i−1 I 0 , I ≺∆i I 0 . Dann gilt für jede Menge I von Interpretationen: min (∆,`) (I) = min ≺n . . . min ≺1 (I) . . . . 98 KAPITEL 5. SEMANTIK VON DEFAULTS Beweis: Zunächst sei festgestellt, daß ≺i wirklich eine (strikte) partielle Ordnung ist (∼ =∆∗j und ≺∆i sind beide transitiv, und ≺∆i ist irreflexiv). • ⊆“: Sei I ∈ min (∆,`) (I). Angenommen I 6∈ min ≺i (. . .), aber I ∈ min ≺i−1 (. . .). Dann ” gibt es also ein Modell I 0 mit I 0 ≺i I. Nach der Definition der beiden Ordnungsrelationen folgt sofort, daß I 0 ≺(∆,`) I im Widerspruch zur Minimalität von I. • ⊇“: Sei I 6∈ min (∆,`) (I). Also gibt es I 0 mit I 0 ≺(∆,<) I. Sei i die minimale Stufe, auf der ” sich die beiden Modelle unterscheiden. Falls I 6∈ min ≺i−1 (. . .), ist nichts mehr zu zeigen. Sonst ist aber auch I 0 ∈ min ≺i−1 (. . .), und nach der Konstruktion gilt I 0 ≺i I. 2 Natürlich kann man die Ordnungsrelationen ≺i auch durch Defaults spezifizieren. Man wählt dazu etwa ∆0i := ∆1 ∪ · · · ∪ ∆i . Zwei auf niedrigerer Stufe nicht-äquivalente Modelle sind dann nicht mehr vergleichbar. Iterative Konstruktionen von Modellen sind für stratifizierte logische Programme üblich, siehe etwa [ABW88, Llo87]. Dort treten die hier festgestellten Schwierigkeiten nicht auf, weil es immer nur ein minimales Modell gibt. Vergleichbar sind sonst noch die in [Lif85] vorgeschlagene Methode zur Berechnung der priorisierten Circumscription und die in [Bre91] definierte priorisierte Version von preferred subtheories“. ” Neu ist der Nachweis der fehlenden Kumulierung und der allgemeine modelltheoretische Ansatz. Erweiterung auf partiell geordnete Defaults Falls die Default-Spezifikation nur eine partielle Ordnung auf den Defaults festlegt, kann man die Präferenzrelation auf den Modellen folgendermaßen definieren: Definition 5.1.18 (Minimale Modelle bei partiell geordneten Defaults): Sei ∆ eine Menge von Defaults und < eine partielle Ordnung auf ∆. Dann sei ≺(∆,<) definiert durch I1 ≺(∆,<) I2 :⇐⇒ Für alle δ2 ∈ ∆∗ mit I2 |= δ2 , I1 6|= δ2 gibt es δ1 ∈ ∆∗ , δ1 < δ2 mit I1 |= δ1 , I2 6|= δ1 . Außerdem ist δ ∈ ∆∗ I1 |= δ 6= δ ∈ ∆∗ I2 |= δ . Wieder schreibt man min (∆,<) für min ≺(∆,<) . Ausgangspunkt für diese Ordnungsrelation ist natürlich wieder I1 ≺∆ I2 :⇐⇒ δ ∈ ∆∗ I1 |= δ ⊃ δ ∈ ∆∗ I2 |= δ . Ist ein Modell bereits nach dieser Ordnungsrelation nicht minimal, so soll es natürlich auch bezüglich der neuen Ordnung nicht minimal sein, denn man möchte auf jeden Fall mehr Defaults erfüllen, solange man auf keinen verzichten muß. Hat man nun eine Prioritätsrelation < auf den Defaults festgelegt, so läßt man eventuell eine Verletzung von ⊃“ ” zu (durch den Default δ2 ), falls man dafür einen Default höherer Priorität gewinnt (δ1 ). Alternativ kann man die Relation ≺(∆,<) auch folgendermaßen definieren: 5.1. MINIMALE MODELLE Lemma 5.1.19: dann, wenn 99 Für alle ∆ und < und beliebige I1 , I2 ∈ IΣ gilt I1 ≺(∆,<) I2 genau • Sei ∆0 die Menge der Defaults, in denen sich I1 und I2 unterscheiden, d.h. ∆0 := δ ∈ ∆∗ I1 |= δ, I2 6|= δ oder I1 6|= δ, I2 |= δ . Dann gilt I1 |= δ für jedes <-minimale Element δ ∈ ∆0 . Außerdem ist ∆0 6= ∅. Beweis: Die Zusatzforderungen (die Interpretationen unterscheiden sich im Wahrheitswert wenigstens eines Defaults) sind offensichtlich äquivalent. Zu zeigen ist also nur die Äquivalenz der Haupteigenschaften: • Gelte I1 ≺(∆,<) I2 . Angenommen, I1 6|= δ für ein <-minimales Element δ ∈ ∆0 . Dann muß nach Konstruktion von ∆0 gelten: I2 |= δ. Nach der Definition von ≺(∆,<) müßte es jetzt aber einen Default δ1 geben mit I1 |= δ1 , I2 6|= δ1 und δ1 < δ. Das ist aber ein Widerspruch zur Minimalität von δ in ∆0 . • Gelte umgekehrt die Eigenschaft des Lemmas. Dann kann kein Default δ2 ∈ ∆∗ mit I1 6|= δ2 und I2 |= δ2 minimal in ∆0 sein, denn jeder solche Default müßte in I1 gelten. Also gibt es einen Default δ1 ∈ ∆0 mit δ1 < δ2 , der zudem <-minimal gewählt werden kann. Dann gilt aber I1 |= δ1 und nach Konstruktion von ∆0 auch I2 6|= δ1 . 2 Zu zeigen ist natürlich noch, daß es sich bei ≺(∆,<) überhaupt um eine partielle Ordnung handelt: Lemma 5.1.20: irreflexiv. Die Relation ≺(∆,<) ist eine partielle Ordnung, d.h. transitiv und Beweis: Die Irreflexivität ist gerade durch die Zusatzforderung sichergestellt, es ist also nur die Transitivität zu zeigen: Gelte I1 ≺(∆,<) I2 und I2 ≺(∆,<) I3 . Sei nun δ3 ∈ ∆∗ mit I3 |= δ und I1 6|= δ. • Gilt I2 6|= δ3 , so muß es δ2 ∈ ∆∗ mit δ2 < δ3 , I2 |= δ2 und I3 6|= δ2 geben. • Andernfalls muß es δ1 ∈ ∆∗ geben mit δ1 < δ3 , I1 |= δ1 , I2 6|= δ1 . Man wähle nun einen <-minimalen Default δ12 unter denen, die eine dieser beiden Bedingungen erfüllen. • Gilt I2 |= δ12 , I3 6|= δ12 , so muß auch I1 |= δ12 gelten, denn I1 ≺(∆,<) I2 und wegen der Minimalität von δ12 kann es keinen höher priorisierten Default mehr geben, der in I1 gilt, aber nicht in I2 . • Gilt I1 |= δ12 , I2 6|= δ12 , so muß auch I3 6|= δ12 gelten, denn I2 ≺(∆,<) I3 und wegen der Minimalität von δ12 kann es keinen höher priorisierten Default mehr geben, der in I2 gilt, aber nicht in I3 . Insgesamt hat man also δ12 < δ3 , I1 |= δ12 und I3 6|= δ12 . Schließlich ist noch zu zeigen, daß sich I1 und I3 in dem Wahrheitswert von mindestens einem Default unterscheiden. Natürlich müssen sich I1 und I2 in mindestens einem Default unterscheiden, und auch I2 und I3 . Man wählt nun wieder einen <-minimalen Default, für den eine der beiden Bedingungen gilt. Er ist in I1 wahr und in I3 falsch. 2 100 KAPITEL 5. SEMANTIK VON DEFAULTS Das folgende Lemma zeigt, daß ≺(∆,<) tatsächlich eine Verallgemeinerung von ≺(∆,`) ist: Lemma 5.1.21: Sei ∆ eine Menge von Defaults und ` eine Stufeneinteilung. Sei < auf ∆ definiert durch: δ < δ 0 :⇐⇒ `(δ) < `(δ 0 ). Dann gilt ≺(∆,<) = ≺(∆,`) . Beweis: Es leichter, die Äquivalenz zu der Eigenschaft aus Lemma 5.1.19 zu zeigen. • Gelte I1 ≺(∆,<) I2 und sei ∆0 die Menge der Defaults, in denen sich I1 und I2 unterscheiden. Sei δ ein <-minimales Element von ∆0 . Dann gilt die definierende Eigenschaft von I1 ≺(∆,`) I2 für i := `(δ). • Gelte I1 ≺(∆,`) I2 und sei ∆0 wieder die Menge der Defaults, in denen sich I1 und I2 unterscheiden. Alle <-minimalen Elemente von ∆0 müssen nach Konstruktion von < von derselben Stufe i sein. Die Modelle I1 und I2 unterscheiden sich also nicht in Defaults kleinerer Stufe, und für alle Defaults δ der Stufe i, in denen sie sich unterscheiden, gilt I1 |= δ. Das bedeutet aber I1 ≺(∆,<) I2 . 2 Beziehung zur naiven CWA Es ist nun noch zu zeigen, daß die minimale Modelle Semantik die NCWA-Eigenschaft hat. Zu diesem Zweck gibt der folgende Satz eine Charakterisierung der naiven CWA durch minimale Modelle an, womit auch ein besseres Verständnis der naiven CWA erreicht wird: Satz 5.1.22: I |= ncwa (∆,<) (Φ) genau dann, wenn I ∈ min (∆,<) Mod (Φ) und I ∼ = ∆∗ I 0 für alle I 0 ∈ min (∆,<) Mod (Φ) . Beweis: • Sei I ein Modell von ncwa (∆,<) (Φ). Wäre I 6∈ min (∆,<) Mod (Φ) , so müßte es ein Modell I0 ∈ min (∆,<) Mod (Φ) geben mit I0 ≺(∆,<) I. Sei δ ∈ ∆∗ ein <-minimaler Default, in dessen Wahrheitswert sich I und I0 unterscheiden. Wegen I0 ≺(∆,<) I muß also I0 |= δ und I 6|= δ gelten. Das bedeutet δ 6∈ ncwa (∆,<) (Φ), was aber nach der Definition der naiven CWA nicht möglich ist — I0 ist ja ein Modell von ncwa (∆∗δ ,<δ ) (Φ) ∪ {δ}, also gilt ncwa (∆∗δ ,<δ ) (Φ) 6` ¬δ. Angenommen, es gäbe jetzt noch ein weiteres Modell I 0 ∈ min (∆,<) Mod (Φ) , das nicht dieselben Defaults erfüllt. Sei δ ∈ ∆∗ ein <-minimaler Default, in dem sich die beiden Modelle unterscheiden. Wieder garantiert die Definition der naiven CWA, daß I |= δ und I 0 6|= δ. Da das für alle solchen δ gilt, folgt I ≺(∆,<) I 0 im Widerspruch zur Minimalität von I 0 . • In der umgekehrten Richtung wird zunächst gezeigt, daß die naive CWA nur Defaults annimmt, die in mindestens einem minimalen Modell gelten: Wird etwa δ ∈ ∆∗ angenommen, so gilt nach Konstruktion, daß ncwa (∆∗δ ,<) (Φ) ∪ {δ} konsistent ist. Sei I ein Modell und I0 ein ≺(∆,<) -minimales Modell von Φ mit I0 ≺(∆,<) I oder I0 = I. Die Modelle I und I0 können sich nicht im Wahrheitswert von δ und den höher priorisierten Defaults 5.2. DIE VORSICHTIGE CWA 101 unterscheiden, denn sonst müßten die <-minimalen unter diesen Defaults in I0 gelten und nicht in I, das ist aber nach der Konstruktion der naiven CWA nicht möglich. Gilt zusätzlich, daß alle minimalen Modelle äquivalent sind, so ist jedes minimale Modell ein Modell der naiven CWA. 2 Für die modelltheoretische Fassung der naiven CWA gilt also: min (∆,<) (I) falls I1 ∼ =∆∗ I2 für alle I1 , I2 ∈ min (∆,<) (I) ncwa (∆,<) (I) := ∅ sonst. Daraus folgt sofort, daß die minimalen Modelle die NCWA-Eigenschaft haben: Korollar 5.1.23: min (∆,<) hat die NCWA-Eigenschaft für (∆, <). Außerdem ist es nun möglich, die minimale Modelle“ Semantik folgendermaßen zu cha” rakterisieren: Satz 5.1.24: min (∆,<) ist die schwächste Vervollständigung mit der NCWA-Eigenschaft und der Deduktions-Eigenschaft. Beweis: min (∆,<) hat jedenfalls diese beiden Eigenschaften. Sei sel eine beliebige andere Vervollständigung mit den Eigenschaften DED und NCWA. Zu zeigen ist sel (I) ⊆ min (∆,<) (I) für alle I ⊆ IΣ . Angenommen, dies wäre nicht der Fall, es gäbe also I ∈ sel (I) mit I 6∈ min (∆,<) (I). Dann gibt es natürlich I0 ∈ I mit I0 ≺(∆,<) I. Nach der obigen Charakterisierung der naiven CWA gilt ncwa (∆,<) {I, I0 } = {I0 }. Also muß dies auch für sel gelten, sonst hätte es nicht die NCWA-Eigenschaft. Nach der Deduktions-Eigenschaft gilt nun: sel (I) ∩ {I, I0 } ⊆ sel {I, I0 } = {I0 }. Daraus folgt I 6∈ sel (I) im Widerspruch zur Annahme. 2 Diese Charakterisierung ist neu und eines der interessantesten Ergebnisse dieser Arbeit. Wenn man auf die Idee eines Systems des natürlichen Schließens für Vervollständigungen zurückkommt, so bedeutet dieses Ergebnis, daß die Deduktionsregel mit den allgemeinen Folgerungsregeln vollständig ist, wenn sie auf die naive CWA als Axiomenschema“ ” angewendet wird. Die Beziehung zwischen der naiven CWA und den minimalen Modellen ist in dieser Allgemeinheit auch neu; nur in dem Spezialfall der originalen CWA [Rei78] ist schon lange bekannt, daß sie gerade den Schnitt aller Herbrandmodelle beschreibt. 5.2 Die vorsichtige CWA Die Annahmen der geschlossenen Welt ( closed world assumptions“, CWAs) sind eine ” Klasse von syntaktischen Vervollständigungen. Zentral ist hier der Begriff der maximalen Extension, der direkt formalisiert, daß so viele Defaults wie möglich angenommen werden sollen, wobei aber natürlich die Konsistenz zu erhalten ist. Auch hier wird zunächst eine Fassung ohne Prioritäten angegeben: 102 KAPITEL 5. SEMANTIK VON DEFAULTS Definition 5.2.1 (Maximale Extension): ∆-Extension von Φ genau dann, wenn Eine Teilmenge E ⊆ ∆∗ heißt maximale • Φ ∪ E konsistent ist und • Φ ∪ E ∪ {δ 0 } inkonsistent ist für alle δ 0 ∈ ∆∗ − E. Diese Definition läßt verschiedene Umformulierungen zu. Beispielsweise ist eine maximale Extension einfach ein ⊆-maximales Element unter allen Teilmengen von ∆∗ , die mit Φ konsistent sind. Die zweite Bedingung kann man auch als Φ ∪ E ` ¬δ schreiben. In dieser Hinsicht ähnelt eine maximale Extension der naiven CWA, nur werden auch die anderen bereits angenommenen Defaults berücksichtigt, um die Konsistenz zu garantieren. Tatsächlich kann man auch maximale Extensionen auf diese Weise konstruieren: Man betrachtet eine Aufzählung δ1 , δ2 , . . . , δn der Defaults und probiert für jeden Default der Reihe nach aus, ob man ihn zu den bisher angenommenen Defaults hinzunehmen kann, ohne die Konsistenz zu zerstören. Diese Konstruktion wird unten noch genauer untersucht. Beispiel 5.2.2: Es seien wieder die typischen Negations-Defaults bei disjunktiver Information betrachtet, also ∆ := {¬p, ¬q}, Φ := {p ∨ q}. Hier gibt es zwei maximale Extensionen, nämlich E1 := {¬p} und E2 := {¬q}. Sie sind zusammen mit Φ konsistent, aber würden inkonsistent, wenn man noch den jeweils anderen Default hinzunehmen würde. Man kann diese maximalen Extensionen gerade aus den beiden möglichen Reihenfolgen der Defaults konstruieren (¬p, ¬q und ¬q, ¬p): Aufgrund des Axioms p ∨ q wird jeweils der erste Default angenommen und der zweite zurückgewiesen. Es ist übrigens kein Zufall, daß die maximalen Extensionen gerade den minimalen Modellen entsprechen. Dies gilt allgemein und wird unten noch bewiesen. 2 Mit den maximalen Extensionen hat man natürlich noch keine Vervollständigung definiert, da es davon mehrere geben kann, eine Vervollständigung aber eindeutig bestimmt sein muß. Das Problem mehrerer Extensionen läßt sich etwa auf folgende Arten lösen: Erstens gibt es die leichtgläubige Sicht“. Sie erlaubt es, alles zu folgern, was aus ” mindestens einer der maximalen Extensionen folgt. Eine Anfrage ψ wird also mit Ja“ ” beantwortet, wenn es eine maximale Extension E gibt mit Φ ∪ E ` ψ. Dies ist allerdings keine Vervollständigung in dem hier betrachteten Sinn, weil der Abschluß unter Konjunktion nicht gewährleistet ist. Zweitens kann man eine Extension auswählen (etwa über den Antwortalgorithmus definiert), und dann nur Folgerungen aus dieser Extension zulassen. Diese Idee wird unten noch als starke CWA“ untersucht. Tatsächlich werden über eine Implementierung ” definierte Extensionen aber meist von der Schreibweise der Axiome abhängen, so daß die grundlegende Forderung der Äquivalenzerhaltung nicht erfüllt wird. Drittens kann man sich auch auf die Aussagen beschränken, die aus allen maximalen Extensionen folgen ( skeptische Sicht“). Es wird sich zeigen, daß dies gerade den ” 5.2. DIE VORSICHTIGE CWA 103 minimalen Modellen entspricht. Viertens erlaubt die vorsichtige Sicht“ nur das zu folgern, was schon aus dem Schnitt ” aller maximalen Extensionen folgt. Die vorsichtige Sicht liegt gerade der in diesem Abschnitt vorgeschlagenen Vervollständigung zugrunde. Es handelt sich bei diesen vier Möglichkeiten um eine echte Hierarchie, d.h. von der leichtgläubigen bis zur vorsichtigen Sicht kann zunehmend weniger gefolgert werden: Beispiel 5.2.3: Es sei wieder das Beispiel mit ∆ := {¬p, ¬q} und Φ := {p ∨ q} betrachtet. Hier gab es die beiden Extensionen E1 := {¬p} und E2 := {¬q}. Leichtgläubig kann man also p (aus E2 ) und ¬p (aus E1 ) folgern, nicht aber p ∧ ¬p. Übrigens tritt dieses Problem immer auf, wenn es mehr als eine Extension gibt: Falls ein Default δ in einer Extension enthalten ist, aber nicht in einer anderen, so muß aus dieser ja ¬δ folgen. Wenn man sich auf eine feste Extension bezieht, etwa E1 , kann man noch ¬p mit “Ja“ beantworten, aber nicht mehr p. Die skeptische Sicht ist noch schwächer und erlaubt nur, ¬p ∨ ¬q zu schließen (entsprechend den minimalen Modellen). Für die vorsichtige Sicht gilt auch dies nicht mehr: Der Schnitt der maximalen Extensionen ist leer, es können also nur noch logische Folgerungen gebildet werden. Dies entspricht gerade dem Verhalten der GCWA [Min82], Disjunktionen als inklusives oder“ ” zu interpretieren. 2 Definition 5.2.4 (Vorsichtige CWA): Die durch ∆ gegebene vorsichtige CWA ist cwa ∆ (Φ) := Φ ∪ δ ∈ ∆∗ δ ∈ E für alle maximalen ∆-Extensionen von Φ . Extensionen als Mittel zur Beschreibung von konsistenten Annahmezuständen wurden schon in [Rei80] eingeführt, dort sind die Defaults aber wesentlich komplizierter und die Definition besteht dementsprechend auch aus einer geschachtelten Fixpunkt- und Minimumsbildung. Maximale Extensionen bezüglich der hier betrachteten Defaults wurden in [Poo88] definiert. Die vorsichtige Sicht wurde in [BL89] eingeführt, und es wurde gezeigt, daß sie gerade der GCWA entspricht. Da in der Literatur Extensionen meist unter Folgerung abgeschlossen sind, hat der Unterschied zwischen der vorsichtigen und der skeptischen Sicht vorher offenbar keine Beachtung gefunden. Erweiterung auf Defaults mit Prioritäten Da es (bisher) nicht ein allgemeines Konzept wie die Präferenzrelationen bei den minimalen Modellen gibt, ist es angebracht, erst die Erweiterung auf Prioritäten einzuführen, und die Eigenschaften dann gleich im allgemeinen Fall nachzuweisen. Falls also für jeden Default δ ∈ ∆ auch eine Priorität `(δ) festlegt ist, muß der Begriff der maximalen Extension natürlich angepaßt werden. Der Grundgedanke ist dabei, daß 104 KAPITEL 5. SEMANTIK VON DEFAULTS ein Default nur durch Defaults höherer oder gleicher Priorität ausgeschlossen werden sollte (also mit kleinerem `-Wert), aber nicht durch Defaults niedrigerer Priorität. Definition 5.2.5 (Maximale Extension mit Prioritäten): Eine Teilmenge E ⊆ ∆∗ heißt maximale (∆, `)-Extension von Φ genau dann, wenn • Φ ∪ E konsistent ist, und • Φ ∪ δ ∈ E `(δ) ≤ `(δ 0 ) ∪ δ 0 inkonsistent ist für alle δ 0 ∈ ∆∗ − E. Beispiel 5.2.6: Das typische Beispiel zur Behandlung von Prioritäten ist: ∆ := {¬p, ¬q}, `(¬p) = 1, `(¬q) = 2, Φ := {p ∨ q}. Hier ist E1 := {¬p} eine maximale Extension, denn der fehlende Default ¬q kann nicht hinzugenommen werden, Φ ∪ {¬p} ∪ {¬q} ist inkonsistent. Dagegen ist E2 := {¬q} keine maximale Extension, denn der fehlende Default ¬p hat nur gegen die Defaults von kleinerer oder gleicher Stufe anzutreten, Φ ∪ ∅ ∪ {¬p} ist aber konsistent. Auf diese Weise wird also der höher priorisierte Default ¬p vorgezogen. 2 Die CWA nimmt dann wieder den Schnitt der so bestimmten maximalen Extensionen an: Definition 5.2.7 (Vorsichtige CWA mit Prioritäten): Die durch (∆, `) gegebene vorsichtige CWA ist cwa (∆,`) (Φ) := Φ ∪ δ ∈ ∆∗ δ ∈ E für jede maximale (∆, `)-Extension von Φ . Interessant ist, daß im Gegensatz zu den minimalen Modellen hier die Ausdrucksfähigkeit durch die Einführung der Prioritäten echt vergrößert wird: Beispiel 5.2.8: Sei eine Signatur mit den beiden Aussagenvariablen p und q zugrunde gelegt. Wählt man nun ∆ := {¬p ∧ ¬q, ¬p ∧ q, ¬q}, `(¬p ∧ ¬q) := 1, `(¬p ∧ q) := 1, `(¬q) := 2, so erhält man die in Tabelle 5.1 dargestellte Vervollständigung: Sind sowohl [p̄q̄] als auch [p̄q] Modell von Φ, so löschen sich die beiden maximalen Extensionen E1 := {¬p∧¬q, ¬q} und E2 := {¬p ∧ q} gerade aus, und alle Modelle sind intendiert. Allein setzt sich dagegen jedes von beiden Modellen gegen jedes andere durch. Will man jetzt diese Vervollständigung ohne Prioritäten darstellen, so muß die Menge der Defaults, die in [pq] gelten, eine echte Teilmenge der in [pq̄] gültigen Defaults sein, denn sonst würde [pq] nicht gegen [pq̄] verlieren. Nun verliert aber [pq̄] seinerseits sowohl gegen [p̄q̄] als auch gegen [p̄q], also muß auch hier jeweils die echte Teilmengenbeziehung gelten. Diese Situation ist in der rechten Zeichnung dargestellt. Betrachtet man jetzt aber die Menge {[pq], [p̄q], [p̄q̄]}, so können nur die in [p̄q] bzw. in [p̄q̄] gültigen Defaults maximale Extensionen sein, und beide enthalten die Defaults, die in [pq̄] gelten, und darunter auch mindestens einen Default, der in [pq] nicht gilt. Damit kann im Widerspruch zu der angestrebten Vervollständigung [pq] kein intendiertes Modell sein. 2 5.2. DIE VORSICHTIGE CWA Φ false ¬p, ¬q ¬p, q ¬p p, ¬q ¬q p ↔ ¬q ¬p ∨ ¬q p, q p↔q q ¬p ∨ q p p ∨ ¬q p∨q true [pq] [pq̄] [p̄q] [p̄q̄] comp(Φ) false • ¬p, ¬q • ¬p, q • • ¬p • p, ¬q ◦ • ¬p, ¬q ◦ • ¬p, q • • • ¬p ∨ ¬q • p, q ◦ • ¬p, ¬q ◦ • ¬p, q • • • ¬p ∨ q ◦ • p, ¬q ◦ ◦ • ¬p, ¬q ◦ ◦ • ¬p, q • • • • true 105 [pq] A A A [pq̄] [p̄q̄] [p̄q] Tabelle 5.1: Beispiel für größere Ausdrucksfähigkeit bei Prioritäten Auch eine iterative Konstuktion von maximalen Extensionen ist möglich. Die betrachteten Defaultmengen entsprechen sogar genau denen, die oben für die minimalen Modelle angegeben wurden: Lemma 5.2.9: Sei ` eine n-Stufen-Einteilung. Eine Teilmenge E ⊆ ∆∗ ist genau dann eine maximale (∆, `)-Extension, wenn E ∩ δ ∈ ∆∗ `(δ) ≤ i für i = 1, . . . , n eine maximale δ ∈ ∆ `(δ) ≤ i -Extension ist. Beweis: • =⇒ “: Sei E eine maximale (∆, `)-Extension. Die geforderte Konsistenz ist automatisch ” gegeben, es ist nur noch zu zeigen, daß Φ ∪ E ∩ δ ∈ ∆∗ `(δ) ≤ i ∪ {δ} inkonsistent ist für jeden nicht enthaltenen Default einer Stufe ≤ i. Das folgt aber direkt aus der Definition von maximaler (∆, `)-Extension. • ⇐= “: Sei E umgekehrt eine stufenweise Extension. Die Konsistenz ergibt sich aus der ” Forderung für i = n. Wäre andererseits Φ ∪ δ ∈ E `(δ) ≤ `(δ 0 ) ∪ {δ 0 } konsistent für ein δ 0 ∈ ∆∗ − E, so wäre die Voraussetzung für i = `(δ 0 ) verletzt. 2 Diese iterative Definition von maximaler Extension wurde in [Bre91] angegeben. Die nicht-iterative Definition ist neu. 106 KAPITEL 5. SEMANTIK VON DEFAULTS Erweiterung auf partiell geordnete Defaults Nun sollen maximale Extensionen in dem allgemeinsten Fall definiert werden, nämlich für partiell geordnete Defaults. Es ist dabei nicht mehr ausreichend, nur einzelne fehlende Defaults zu betrachten: Beispiel 5.2.10: Seien folgende Defaults gegeben: ∆ := {¬p, ¬q, p, q}, ¬p < q, ¬q < p. Man kann die Prioritäten auch folgendermaßen graphisch darstellen: q p ¬p ¬q Falls die Defaults nicht durch Axiome eingeschränkt sind (Φ := ∅), sollten natürlich die beiden höher priorisierten Defaults angenommen werden, d.h. E := {¬p, ¬q} sollte die einzige maximale Extension sein. Also müßte das Maximalitätskriterium insbesondere in der Lage sein, E 0 := {p, q} auszuscheiden. Versucht man nun aber ¬p hinzuzunehmen, und läßt dafür den schwächer priorisierten Default q weg, so erhält man {p, ¬p}, was natürlich inkonsistent ist. Ebenso kann man auch nicht ¬q hinzunehmen. Das Problem ist hier, daß die Konflikte gerade über Kreuz“ zu den Prioritäten bestehen. ” Dagegen kann man die beiden fehlenden Defaults ¬p und ¬q gemeinsam hinzunehmen, denn nun sind p und q beide schwächer als einer dieser Defaults, werden also beide eliminiert. 2 Definition 5.2.11 (Maximale Extension, allgemeiner Fall): Eine Menge E ⊆ ∆∗ heißt maximale (∆, <)-Extension von Φ genau dann, wenn • Φ ∪ E konsistent ist und • für alle ∆0 ⊆ ∆∗ − E, ∆0 6= ∅, die folgende Menge inkonsistent ist: Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ ∆0 . Definition 5.2.12 (Vorsichtige CWA, allgemeiner Fall): Die durch (∆, <) gegebene vorsichtige CWA ist cwa (∆,<) (Φ) := Φ ∪ δ ∈ ∆∗ δ ∈ E für jede maximale (∆, <)-Extension von Φ . Es ist nun zu zeigen, daß es sich tatsächlich um eine Verallgemeinerung der vorangegangenen Definitionen handelt: 5.2. DIE VORSICHTIGE CWA 107 Lemma 5.2.13: • E ⊆ ∆∗ ist genau dann eine maximale ∆-Extension von Φ, wenn es eine maximale (∆, <)-Extension bezüglich < = ∅ ist. • E ⊆ ∆∗ ist genau dann eine maximale (∆, `)-Extension, wenn es eine maximale (∆, <)-Extension ist bezüglich der durch δ1 < δ2 :⇐⇒ `(δ1 ) < `(δ2 ) gegebenen Prioritätsrelation. Beweis: • Sei E eine maximale ∆-Extension. Angenommen, es gäbe ∆0 ⊆ ∆∗ − E, so daß Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ ∆0 konsistent ist. Da < leer ist, ist diese Menge einfach Φ ∪ E ∪ ∆0 . Damit ist natürlich Φ ∪ E ∪ {δ 0 } konsistent für jeden Default δ 0 ∈ ∆0 im Widerspruch zur Voraussetzung. Die Umkehrung ist noch einfacher, hier wählt man ∆0 := {δ 0 }. • Sei E eine maximale (∆, `)-Extension. Zu zeigen ist, daß es nicht ∆0 ⊆ ∆∗ − E gibt, so daß Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ ∆0 konsistent ist. Angenommen, dies wäre doch der Fall. Sei δ 0 ein Default minimaler Stufe aus ∆0 , dann ist nach Konstruktion von < diese Menge gleich Φ ∪ {δ ∈ E | `(δ) ≤ `(δ 0 )} ∪ ∆0 . Ist diese Menge konsistent, so ist natürlich erst recht die Teilmenge konsistent, in der die übrigen Defaults aus ∆0 weggelassen sind. Das kann aber nicht sein, da E dann keine maximale (∆, `)-Extension wäre. Für die Umkehrung wählt man wieder ∆0 := {δ 0 }, dann gilt {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} = {δ ∈ E | `(δ) ≤ `(δ 0 )} nach Definition von <. 2 Mit dem folgenden Lemma können maximale Extensionen entsprechend der DefaultHierarchie aufgebaut werden. Hat man schon eine maximale Extension E0 bis zu einer gewissen Prioritätsgrenze, so kann man direkt darüber eine Schicht weiterer Defaults ∆1 vorschreiben, und das ganze zu einer vollständigen maximalen Extension E ausbauen. Als Spezialfall kann also jede konsistente Menge von Defaults zu einer (∆, ∅)-Extension erweitert werden. Lemma 5.2.14: Sei ∆∗0 ⊆ ∆∗ nach unten abgeschlossen, d.h. gelte: δ ∈ ∆∗ , δ0 ∈ ∆∗0 , δ < δ0 =⇒ δ ∈ ∆∗0 . Sei E0 eine maximale (∆∗0 , <)-Extension von Φ und ∆1 ein Menge <-minimaler Elemente von ∆∗ − ∆∗0 . Ist Φ ∪ E0 ∪ ∆1 konsistent, so gibt es eine maximale (∆, <)-Extension E von Φ mit E0 ∪ ∆1 ⊆ E. 108 KAPITEL 5. SEMANTIK VON DEFAULTS Beweis: Sei δ1 , . . . , δn eine topologische Sortierung von (∆∗ − ∆∗0 , <), die zuerst alle Defaults aus ∆1 enthält. Sei ( Ei−1 ∪ {δi } falls Φ ∪ Ei−1 ∪ {δi } konsistent Ei := Ei−1 sonst. Sei E := En . Dann gilt E0 ∪ ∆1 ⊆ E nach Konstruktion. Es wird jetzt mit Induktion über i gezeigt, daß Ei eine maximale (∆∗0 ∪ {δ1 , . . . , δi }, <)Extension von Φ ist. Falls es ∆0i gäbe, das zeigt, daß Ei keine maximale Extension ist, so würde ∆0i−1 := ∆0i − {δi } zeigen, daß Ei−1 keine maximale Extension ist (denn kein Default in Ei−1 hat geringere Priorität als δi ). 2 Die hier angegebene Definition von maximaler Extension ist neu und nicht äquivalent zu der in [Bre91] angebenen konstruktiven“ Definition. Auf den Unterschied und den ” Vorteil dieser Definition wird unten noch näher eingegangen. Maximale Extensionen und minimale Modelle Es gibt nun eine sehr enge Beziehung zwischen minimalen Modellen und maximalen Extensionen, und zwar ist ein Modell genau dann minimal, wenn es Modell einer maximalen Extension ist. Damit gibt es zwar noch keine bijektive Abbildung zwischen minimalen Modellen und maximalen Extensionen (weil eine maximale Extension mehrere Modelle haben kann), aber die ∼ =∆∗ -Äquivalenzklassen der minimalen Modelle entsprechen genau den maximalen Extensionen. Satz 5.2.15: • Wenn E eine maximale (∆, <)-Extension von Φ ist, dann ist jedes Modell I von Φ∪E ein ≺(∆,<) -minimales Modell von Φ. • Wenn I ein ≺(∆,<) -minimales Modell von Φ ist, dann ist E := δ ∈ ∆∗ I |= δ eine maximale (∆, <)-Extension von Φ. Beweis: • Wäre I nicht minimal, so würde es also ein Modell I0 von Φ geben mit I0 ≺(∆,<) I. Sei ∆0 die Menge aller <-minimalen Defaults unter denen, die nicht denselben Wahrheitswert in beiden Modellen haben. Nach Definition von ≺(∆,<) ist ∆0 nicht leer, und alle δ 0 ∈ ∆0 sind in I0 wahr und in I falsch. Das bedeutet aber, daß Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ ∆0 konsistent ist (I0 ist ein Modell), im Widerspruch zur Voraussetzung, daß E eine maximale Extension ist. • Wäre E keine maximale Extension, dann müßte es ∆0 ⊆ ∆∗ − E, ∆0 6= ∅ geben, so daß Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ ∆0 konsistent ist. Sei also I0 ein Modell. Nun sei δ ein beliebiger Default, der in I gilt, aber nicht in I0 . Wegen I |= δ ist δ ∈ E, andererseits ist I0 ein Modell der obigen Menge, und 5.2. DIE VORSICHTIGE CWA 109 I0 6|= δ. Also muß es δ 0 ∈ ∆0 geben mit δ 0 < δ. Nach Konstruktion gilt I0 |= δ 0 und I 6|= δ 0 . Daher ist I0 ≺(∆,<) I im Widerspruch zur vorausgesetzten Minimalität von I. 2 Hieraus folgt sofort, daß der skeptische Ansatz der minimalen Implikation entspricht, d.h. eine Formel ψ gilt in allen minimalen Modellen von Φ genau dann wenn Φ ∪ E ` ψ für alle maximalen Extensionen E von Φ. Der vorangegangene Satz liefert auch eine alternative Definition der vorsichtigen CWA: Sie nimmt diejenigen Defaults an, die in allen maximalen Extensionen enthalten sind, also in allen minimalen Modellen gelten. Satz 5.2.16: cwa (∆,<) (Φ) = Φ ∪ δ ∈ ∆∗ I |= δ für alle ≺(∆,<) -minimalen Modelle von Φ . Beweis: • ⊆“: Sei δ also in allen maximalen Extensionen enthalten und sei I ein ≺(∆,<) -minimales ” Modell von Φ. Da die in I gültigen Defaults nach Satz 5.2.15 eine maximale Extension bilden, muß δ auch in I gelten. • ⊇“: Sei δ also in allen minimalen Modellen von Φ gültig. Zu zeigen ist, daß δ in jeder ” maximalen Extension E enthalten ist. Aufgrund der Konsistenzforderung gibt es ein Modell I von Φ ∪ E, das nach Satz 5.2.15 minimal ist. Also gilt δ in I. Wäre nun δ 6∈ E, so wäre die Maximalitätsforderung verletzt, da Φ ∪ E ∪ {δ} konsistent ist (I is ein Modell). 2 Damit kann man jetzt leicht die Vervollständigungs-Stärke der beiden Default-Semantiken vergleichen: Satz 5.2.17: Die vorsichtige CWA ist eine schwächere Vervollständigung als die minimalen Modelle, d.h. Φ `cwa (∆,<) ψ =⇒ Φ `min (∆,<) ψ. Beweis: Da nur solche Defaults angenommen werden, die in allen minimalen Modellen gelten, ist jedes minimale Modell ein Modell der vorsichtigen CWA. Wenn also schon jedes Modell der vorsichtigen CWA die Anfrage ψ erfüllt, so gilt das natürlich erst recht für jedes minimale Modell. 2 Die hier angegebenen Sätze sind Verallgemeinerungen von Ergebnissen aus [BL89], die ihrerseits auf [Min82] aufbauen. Eigenschaften Satz 5.2.18: • cwa (∆,<) ist konsistenzerhaltend (CON). • cwa (∆,<) ist kumulierend (CUM). • cwa (∆,<) hat die NCWA-Eigenschaft (NCWA). • cwa (∆,<) hat die Disjunktions-Eigenschaft für Defaults (DDIS). 110 KAPITEL 5. SEMANTIK VON DEFAULTS Beweis: • (CON): Nach Satz 5.2.16 nimmt die CWA nur solche Defaults an, die in allen minimalen Modellen gelten. Damit ist jedes minimale Modell auch Modell der CWA (und es gibt mindestens ein minimales Modell). • (CUM): Gelte cwa (∆,<) (Φ) ` ϕ. Zu zeigen ist, daß cwa (∆,<) (Φ) und cwa (∆,<) Φ ∪ {ϕ} äquivalent sind. Dazu reicht es zu zeigen, daß in beiden Mengen dieselben Defaults angenommen werden. Nach Satz 5.2.16 werden genau die Defaults angenommen, die in allen minimalen Modellen gelten. Wegen cwa (∆,<) (Φ) ` ϕ gilt ϕ nach Satz 5.2.17 in allen mi nimalen Modellen von Φ, also ist min (∆,<) Mod (Φ) = min (∆,<) Mod (Φ ∪ {ϕ}) . Damit werden natürlich in Φ und Φ ∪ {ϕ} dieselben Defaults angenommen. • (NCWA): Wenn die NCWA für Φ konsistent ist, sind alle minimalen Modelle ∼ =∆∗ -äquivalent. Dann gibt es aber nur eine maximale Extension, die mit der naiven CWA übereinstimmt. • (DDIS): Wird ein Default δ ∈ ∆∗ sowohl in cwa (∆,<) Φ ∪ {ϕ1 } angenommen, als auch in cwa (∆,<) Φ ∪ {ϕ2 } , so gilt er in allen minimalen Modellen der beiden Formelmengen. Nach der Deduktions-Eigenschaft in der Formulierung von Satz 4.1.17 sind aber die minimalen Modelle von Φ ∪ {ϕ1 ∨ ϕ2 } auch minimale Modelle von Φ ∪ {ϕ1 } oder von Φ ∪ {ϕ2 }. 2 Damit wird δ also erst recht in cwa (∆,<) Φ ∪ {ϕ1 ∨ ϕ2 } angenommen. Beispiel 4.1.13 zeigt, daß die vorsichtige CWA im allgemeinen nicht die DeduktionsEigenschaft hat. Tatsächlich verletzt die GCWA auch die Expansions-Eigenschaft, dazu braucht man aber mindestens drei Aussagenvariablen: Beispiel 5.2.19: Sei ∆ := {¬p, ¬q, ¬r}, I1 := {[p̄qr], [pq̄r̄], [pqr]}, I2 := {[p̄qr̄], [pq̄r], [pqr]} Bei I1 gibt es entsprechend den minimalen Modellen [p̄qr] und [pq̄r̄] die beiden maximalen Extensionen E1,1 := {¬p} und E1,2 := {¬q, ¬r}. Der Schnitt dieser beiden Extensionen ist leer, d.h. es wird kein Default angenommen. Daher wird insbesondere das Modell [pqr] ausgewählt. Bei I2 sind die Extensionen E2,1 := {¬p, ¬r} und E2,2 := {¬q}; wieder wird [pqr] ausgewählt. Bei I1 ∪ I2 sind schließlich die Modelle [pq̄r̄] und [p̄qr̄] minimal; der Schnitt der entsprechenden Extensionen enthält den Default ¬r. Daher wird das Modell [pqr] in I1 ∪ I2 nicht ausgewählt, obwohl es sowohl in I1 als auch in I2 ausgewählt wird. Dies ist eine Verletzung der Expansions-Eigenschaft. 2 Die hier angegebenen Sätze sind zum Teil neu, zum Teil Verallgemeinerungen von Ergebnissen aus [Bra90a]. 5.3. WEITERE SEMANTIKEN 111 Charakterisierung Die vorsichtige CWA läßt sich auf ganz ähnliche Weise charakterisieren wie die minimale ” Modelle“ Semantik, man muß nur die Abschwächung DDIS der Deduktions-Eigenschaft verwenden: Satz 5.2.20: cwa (∆,<) ist die schwächste Vervollständigung mit den Eigenschaften NCWA und DDIS. Beweis: cwa (∆,<) hat diese beiden Eigenschaften. Sei comp eine beliebige Vervollständigung, die ebenfalls die Eigenschaften NCWA und DDIS hat. Zu zeigen ist comp(Φ) ` cwa (∆,<) (Φ). Dazu genügt es zu zeigen, daß comp(Φ) ` δ für jeden Default in cwa (∆,<) (Φ). Für jedes minimale Modell I von Φ sei ϕI eine Formel, die in I und allen größeren Modellen von Φ gilt. Dann ist Φ äquivalent zur Disjunktion dieser ϕI , andererseits ist ncwa (δ,<) {ϕI } konsistent und enthält δ. Nun kann man mit der Eigenschaft DDIS die Behauptung folgern. 2 Dieser Satz ist neu und sehr nützlich zum Verständnis der vorsichtigen CWA. 5.3 Weitere Semantiken Es sollen jetzt noch weitere Semantiken für Defaults vorgestellt werden, um zu zeigen, daß die obigen beiden Ansätze bei weitem noch nicht die einzigen möglichen sind. Teilweise handelt es sich dabei um kleinere Modifikationen der minimale Modelle“ und der ” vorsichtigen CWA-Semantik, teilweise handelt es sich auch um weniger gute Vorschläge. Dies muß aber natürlich erst anhand der in Kapitel 4 vorgestellten Eigenschaften belegt werden. Die naive CWA Die naive CWA, die alle Defaults annimmt, deren Gegenteil nicht folgt, wurde schon in Kapitel 4 definiert und im Abschnitt 5.1 modelltheoretisch charakterisiert. Ihr Hauptproblem ist die Konsistenzerhaltung. Wenn sie aber konsistenzerhaltend ist, sollte jede vernünftige Semantik mit ihr übereinstimmen. Beispiel 5.3.1: Das klassische Beispiel für die Zerstörung der Konsistenz ist: Φ := {p ∨ q}, ∆ := {¬p, ¬q}. Da weder ¬¬p, d.h. p, noch ¬¬q, also q, folgen, werden beide Defaults angenommen, und die Vervollständigung von Φ ist inkonsistent. Dieses Beispiel liefert auch sofort eine Verletzung der Kumulierung: Aus der inkonsistenten Vervollständigung folgt ja alles, also auch ¬q. Fügt man diese Formel nun zu Φ hinzu, so ist die entstehende Formelmenge äquivalent zu {p, ¬q}, und hier funktioniert die naive CWA natürlich problemlos. Insbesondere folgt nicht mehr false. 112 KAPITEL 5. SEMANTIK VON DEFAULTS Allgemein sind nicht-konsistenzerhaltende Vervollständigungen fast immer auch nicht kumulierend. Allerdings ist dies keine echte Implikation, wie man am Beispiel der Vervollständigung sieht, die alle Φ auf false abbildet — sie ist nicht konsistenzerhaltend, aber kumulierend. 2 Mit der modelltheoretischen Charakterisierung der naiven CWA kann man auch recht leicht nachweisen, daß sie die Deduktions- und die Expansions-Eigenschaft hat, was vielleicht etwas überraschend ist: Satz 5.3.2: ncwa (∆,<) hat die Eigenschaften DED und EXP. Beweis: Bezeichne ncwa (∆,<) hier wieder die modelltheoretische Version der naiven CWA. • (DED): Zu zeigen ist ncwa (∆,<) (I1 ∪ I2 ) ⊆ ncwa (∆,<) (I1 ) ∪ ncwa (∆,<) (I2 ). Sei I ∈ ncwa (∆,<) (I1 ∪I2 ). Nach Satz 5.1.22 ist I in I1 ∪I2 minimal, und äquivalent zu allen anderen minimalen Modellen. Das bedeutet aber, daß I ≺(∆,<) I 0 für jedes nicht-minimale Modell I 0 gilt. Ist etwa I ∈ I1 , so ist natürlich I ∈ min (∆,<) (I1 ), außerdem ist aber min (∆,<) (I1 ) ⊆ min (∆,<) (I1 ∪ I2 ), es kommen also keine neuen minimalen Modelle hinzu. Daher ist I äquivalent zu allen minimalen Modellen in I1 , also gilt I ∈ ncwa (∆,<) (I1 ). • (EXP): Zu zeigen ist ncwa (∆,<) (I1 ) ∩ ncwa (∆,<) (I2 ) ⊆ ncwa (∆,<) (I1 ∪ I2 ). Sei also I in dem Schnitt auf der linken Seite. Das bedeutet, daß es sowohl in I1 als auch in I2 minimal ist, und äquivalent zu allen anderen minimalen Modellen. Damit ist es natürlich in I1 ∪ I2 minimal (min (∆,<) erfüllt EXP), und immer noch äquivalent zu allen anderen minimalen Modellen (min (∆,<) erfüllt DED). 2 Die naive CWA wurde in [Rei78] eingeführt, wo auch die Probleme mit der Konsistenzerhaltung diskutiert wurden. Weitere Ergebnisse hierzu finden sich in [She88]. Die Verallgemeinerung auf priorisierte Defaults und der Nachweis der Eigenschaften DED und EXP sind neu. Eine konsistenzerhaltende Modifikation der naiven CWA Das Problem mit der Konsistenzerhaltung kann man natürlich leicht lösen, indem man einfach gar keine Defaults annimmt, wenn die naive CWA inkonsistent ist. Das Ergebnis ist die schwächste Vervollständigung mit der NCWA-Eigenschaft: Definition 5.3.3 (Modifizierte CWA): Die modifizierte CWA sei definiert durch: ncwa (∆,<) (Φ) falls konsistent mcwa (∆,<) (Φ) := Φ sonst. 5.3. WEITERE SEMANTIKEN 113 Die modifizierte CWA ist für praktische Zwecke wohl auch nicht viel besser geeignet als die naive CWA, da sich die Vervollständigung beim Einfügen einer Disjunktion so drastisch ändert. Zwar ist sie konsistenzerhaltend, kumulierend und hat die ExpansionsEigenschaft, aber sie hat nicht die Eigenschaft DDIS (als einzige der betrachteten Vervollständigungen). Satz 5.3.4: Die modifizierte CWA ist konsistenzerhaltend, kumulierend, und hat die Expansions-Eigenschaft. Beweis: CWA. mcwa (∆,<) bezeichne hier die modelltheoretische Entsprechung der modifizierten • (CON): Die Konsistenzerhaltung folgt direkt aus der Definition. • (CUM): Zu zeigen ist: mcwa (∆,<) (I1 ) ⊆ I2 ⊆ I1 =⇒ mcwa (∆,<) (I1 ) = mcwa (∆,<) (I2 ). Diese Eigenschaft ist schon für min (∆,<) bewiesen, es braucht also nur noch der Fall betrachtet zu werden, daß I1 oder I2 nicht-äquivalente minimale Modelle enthalten. Enthält I1 nicht-äquivalente Modelle, so gilt mcwa (∆,<) (I1 ) = I1 und daher I2 = I1 . Sonst gilt mcwa (∆,<) (I1 ) = min (∆,<) (I1 ), also min (∆,<) (I1 ) ⊆ I2 ⊆ I1 . Da min (∆,<) kumulierend ist, folgt min (∆,<) (I1 ) = min (∆,<) (I2 ) und damit mcwa (∆,<) (I2 ) = min (∆,<) (I2 ) = mcwa (∆,<) (I1 ). • (EXP): Zu zeigen ist mcwa (∆,<) (I1 ) ∩ mcwa (∆,<) (I2 ) ⊆ mcwa (∆,<) (I1 ∪ I2 ). Die Behauptung gilt natürlich auf jeden Fall, wenn I1 ∪ I2 nicht-äquivalente minimale Modelle hat. Sei I 6∈ mcwa (∆,<) (I1 ∪ I2 ). Falls I in dem Schnitt auf der linken Seite enthalten ist, muß I ∈ I1 und I ∈ I2 gelten. Eine dieser Teilmengen, etwa I1 , enthält aber ein minimales Modell aus I1 ∪ I2 , das kleiner als alle nicht-minimalen Modelle ist. Daher kommen in I1 keine neuen minimalen Modelle gegenüber I1 ∪ I2 hinzu, die minimalen Modelle sind also untereinander äquivalent. Nach Definition der modifizierten CWA ist dann I 6∈ mcwa (∆,<) (I1 ). 2 Beispiel 5.3.5: Die modifizierte CWA hat nicht die Eigenschaft DDIS, und damit erst recht nicht die Deduktions-Eigenschaft. Verwendet man die normalen Negations-Defaults ohne Prioritäten, so wird sowohl in Φ1 := p(a), q(a) als auch in Φ2 := p(b), q(a) der Default ¬q(b) angenommen, nicht aber in Φ := p(a) ∨ p(b), q(a) . 2 Beispiel 5.3.6: Die modifizierte CWA kann mit der vorsichtigen CWA simuliert werden, wenn das auch sehr aufwendig ist. In dem Standard-Beispiel ∆ := {¬p, ¬q} würde man für die vorsichtige CWA folgende Defaults wählen: ¬p ∧ ¬q, ¬p ∧ q, p ∧ ¬q, p ∧ q. Im allgemeinen wählt man alle Konjunktionen von Defaults und negierten Defaults, so daß der Wahrheitwert jedes Defaults bestimmt ist. Die Prioritäten dieser neuen Defaults wählt man so, wie es gerade den entsprechenden minimalen Modellen entspricht, also etwa 114 KAPITEL 5. SEMANTIK VON DEFAULTS ¬p∧¬q < ¬p∧q. Die neuen Defaults sind paarweise inkonsistent, jede maximale Extension besteht also aus einem einzigen Default. Falls es mehr als eine maximale Extension gibt, ist der Schnitt folglich leer. Beispielsweise würde es bei Φ := {p∨q} die beiden maximalen Extensionen E1 := {¬p∧q} und E2 := {p∧¬q} geben (p∧q scheidet aus, weil es geringere Priorität hat). Im Endeffekt würde also kein Default angenommen. 2 In der Literatur wurde diese Default-Semantik noch nicht untersucht. Sie ist ja im wesentlichen auch nur deswegen interessant, weil sie eine einfache Rettung“ der naiven CWA ” ist. Eine starke CWA Es gibt noch eine andere einfache Möglichkeit, die naive CWA konsistenzerhaltend zu machen. Die Probleme treten ja genau dann auf, wenn mehrere Defaults im Konflikt miteinander stehen, für die aber keine Priorität spezifiziert wurde. Eine einfache Lösung ist nun, < zu einer linearen Ordnung zu erweitern, indem man sich etwa im Zweifelsfall immer für den lexikographisch kleineren Default entscheidet. Das ähnelt dem Ansatz mit einer durch die Implementierung festgelegten Auswahl der Extension. Typischerweise werden sich die Implementierungen aber nicht nur an der Schreibweise der Defaults orientieren, sondern auch an der Schreibweise und Anordnung der Axiome, so daß es sich dann nicht mehr um eine Vervollständigung in dem hier betrachteten Sinn handelt. Wenn man von einer lexikographischen oder ähnlichen Ordnung ausgeht, kann man festhalten, daß diese Default-Semantik im Gegensatz zu allen anderen hier untersuchten Vorschlägen nicht äquivalenzerhaltend bezüglich der Defaults ist. Definition 5.3.7 (Starke CWA): Sei δ1 , δ2 , . . . , δn die Aufzählung von ∆∗ , die mit < verträglich ist, d.h. δi < δj =⇒ i < j, und unvergleichbare Defaults lexikographisch anordnet. Sei E0 := ∅ und Ei−1 ∪ {δi } falls Φ ∪ Ei−1 ∪ {δi } konsistent ist Ei := Ei−1 sonst. Dann ist die starke CWA definiert durch: scwa (∆,<) (Φ) := Φ ∪ En . Es werden also alle Defaults der Reihe nach ausprobiert, ob sie zu der aktuellen Extension hinzugenommen werden können, ohne die Konsistenz zu zerstören. Dabei wird eine topologische Sortierung von (∆∗ , <) zugrunde gelegt, d.h. die höher priorisierten Defaults bekommen ihre Chance zuerst. Bei der starken CWA handelt es sich tatsächlich um eine Form von minimalen Modellen, nur die Ordnungsrelation ist ungewöhnlich: 5.3. WEITERE SEMANTIKEN 115 Satz 5.3.8: Sei δ1 , δ2 , . . . , δn wie in Definition 5.3.7 und gelte I1 ≺ I2 :⇐⇒ I1 und I2 unterscheiden sich in mindestens einem δi und für das minimale solche i gilt I1 |= δi , I2 6|= δi . Dann gilt I |= scwa (∆,<) (Φ) ⇐⇒ I ∈ min ≺ Mod (Φ) . Beweis: • =⇒ “: Gelte also I |= scwa (∆,<) (Φ). Wäre I nicht minimal, so gäbe es also I0 ≺ I. ” Sei δi der erste Default in der Aufzählung, in dem sich die beiden Modelle unterscheiden. Dann gilt I0 |= δ und I 6|= δ. Dies ist aber nicht möglich, denn dann wäre Φ ∪ Ei−1 ∪ {δi } konsistent (I0 ist ein Modell), also müßte δi ∈ scwa (∆,<) (Φ) sein im Widerspruch zu I |= scwa (∆,<) (Φ). • Sei umgekehrt I ∈ min ≺ Mod (Φ) . Angenommen, I 6|= scwa (∆,<) (Φ). Sei nun δi der in der Aufzählung erste Default aus scwa (∆,<) (Φ) mit I 6|= δi . Nach Konstruktion von scwa (∆,<) (Φ) ist Φ ∪ Ei−1 ∪ {δi } konsistent, also gibt es ein Modell I0 . Im Wahrheitswert der früheren Defaults (δ1 , . . . , δi−1 ) stimmen I0 und I überein, denn beide erfüllen Ei−1 und mehr ist nach Konstruktion unmöglich. Also entscheidet δi , daß I0 ≺ I im Widerspruch zur Minimalität von I. 2 Damit erbt“ die starke CWA also viele der guten Eigenschaften der minimalen Modelle, ” nämlich Konsistenzerhaltung, Kumulation, Deduktions- und Expansions-Eigenschaft. Ein Mangel ist natürlich, daß die Defaults nicht gleich behandelt werden — es werden Defaults vorgezogen, ohne daß der Entwerfer entsprechende Prioritäten spezifiziert hat. Die starke CWA legt auch die Wahrheitswerte der Defaults vollständig fest. Wählt man etwa wie üblich die negativen Grundliterale als Defaults, so hat man immer nur ein einziges intendiertes Modell. Für einige Anwendungen ist das natürlich wünschenswert, aber unvollständige Information kann man damit nicht mehr darstellen. Schließlich sei noch gezeigt, daß die starke CWA tatsächlich mit der naiven CWA übereinstimmt, wenn diese konsistent ist: Satz 5.3.9: Ist ncwa (∆,<) (Φ) konsistent, so gilt scwa (∆,<) (Φ) = ncwa (∆,<) (Φ). Beweis: Sei also ncwa (∆,<) (Φ) konsistent, und sei δi der erste Default in der Aufzählung, bei dem sich die beiden Mengen unterscheiden. • δi ∈ scwa (∆,<) (Φ), δi 6∈ ncwa (∆,<) (Φ): Dann müßte ncwa (∆∗δ ,<δ ) (Φ) ` ¬δ gelten, aber i i andererseits ist aufgrund der Minimalitätsforderung ncwa (∆∗δ ,<δ ) (Φ) ⊆ Ei−1 , ein Wideri i spruch zur Konsistenz von Φ ∪ Ei−1 ∪ {δi }. • δi 6∈ scwa (∆,<) (Φ), δi ∈ ncwa (∆,<) (Φ): Dann ist also Φ ∪ Ei−1 ∪ {δi } inkonsistent. Da i minimal gewählt wurde, gilt aber Φ ∪ Ei−1 ⊆ ncwa (∆,<) (Φ). Dies ist ein Widerspruch zur Konsistenz von ncwa (∆,<) (Φ). 2 116 KAPITEL 5. SEMANTIK VON DEFAULTS Ein skeptischer Ansatz mit konstruktiven Extensionen Die Probleme der starken CWA sind in erster Linie auf die willkürliche Auswahl einer Aufzählung δ1 , δ2 , . . . , δn zurückzuführen. Es liegt daher nahe, nicht nur eine solche Aufzählung zu betrachten, sondern alle möglichen (sofern sie mit < verträglich sind). Auf diese Weise erhält man also mehrere konstruktive Extensionen“, und kann nun ” z.B. den skeptischen Ansatz wählen, d.h. die Anfrage ψ muß aus allen solchen Extensionen folgen. Definition 5.3.10 (Konstruktive Extension): E ⊆ ∆∗ heißt konstruktive (∆, <)Extension von Φ genau dann, wenn es eine mit < verträgliche Aufzählung δ1 , δ2 , . . . , δn von ∆∗ gibt, so daß E = En , wobei E0 := ∅ und Ei−1 ∪ {δi } falls Φ ∪ Ei−1 ∪ {δi } konsistent ist Ei := Ei−1 sonst. Definition 5.3.11 (Konstruktive Implikation): Φ `cons (∆,<) ψ genau dann, wenn für jede konstruktive (∆, <)-Extension E von Φ gilt: Φ ∪ E ` ψ. Nun stellt sich natürlich die Frage nach der Beziehung zwischen maximalen und konstruktiven (∆, <)-Extensionen. Es wird sich zeigen, daß jede konstruktive Extension auch eine maximale Extension ist, während das Umgekehrte nicht gilt. Zum Vergleich der beiden Begriffe ist der folgende Satz nützlich, der eine Charakterisierung konstruktiver Extensionen angibt, die der Definition von maximaler Extension sehr ähnlich ist: Satz 5.3.12: E ⊆ ∆∗ ist eine konstruktive (∆, <)-Extension genau dann, wenn • Φ ∪ E konsistent ist und • für alle ∆0 ⊆ ∆∗ − E, ∆0 6= ∅ gibt es δ00 ∈ ∆0 , so daß Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ {δ00 } inkonsistent ist. Beweis: • Sei E eine konstruktive Extension und δ1 , δ2 , . . . , δn die entsprechende Aufzählung der Defaults. Nach Konstruktion ist Φ ∪ E konsistent. Sei nun ∆00 ⊆ ∆∗ − E und i minimal mit δi ∈ ∆0 . Dann ist Φ ∪ Ei−1 ∪ {δi } inkonsistent und eine Teilmenge von Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ {δi }. Daher ist diese Menge auch inkonsistent. • Nun erfülle E die im Satz angegebene Bedingung. Es wird eine topologische Sortierung δ1 , δ2 , . . . , δn folgendermaßen konstruiert, um Ei = E ∩ {δ1 , . . . , δi } zu garantieren: Zunächst sei die Folge leer und E0 = ∅. Ist schon ein Anfangsstück δ1 , δ2 , . . . , δi−1 gegeben, so sei ein Default δi ∈ E ausgewählt, so daß Φ ∪ Ei−1 ∪ {δi } konsistent ist, oder ein Default δi 6∈ E, so daß Φ ∪ Ei−1 ∪ {δi } inkonsistent ist. Zu zeigen ist, daß das immer möglich ist: Ist δi ∈ E, so ist Φ ∪ E ∪ {δi } konsistent, und nach der Induktionsannahme gilt Ei−1 ⊆ E, also ist Φ ∪ Ei−1 ∪ {δi } erst recht konsistent. 5.3. WEITERE SEMANTIKEN 117 Angenommen, es ist kein solcher Default auswählbar. Sei ∆0 die Menge der <minimalen Elemente von ∆∗ − {δ1 , . . . , δi−1 }, also die Menge der auswählbaren Defaults. Nach der Annahme ist ∆0 ⊆ ∆∗ − E, ∆0 6= ∅ und Φ ∪ Ei−1 ∪ {δi } konsistent für jeden Default δi ∈ ∆0 . Nach der Konstruktion gilt aber Φ ∪ {δ ∈ E | es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ} ∪ {δi } = Φ ∪ Ei−1 ∪ {δi }. Also ist die Bedingung des Satzes verletzt im Widerspruch zur Voraussetzung. 2 Der Unterschied ist also nur, daß hier schon ein einziger Default δ0 ∈ ∆0 ausreichen muß, um die Inkonsistenz zu zeigen, während bei maximalen Extensionen die ganze Menge ∆0 benutzt werden kann. Daraus folgt sofort: Korollar 5.3.13: Ist E ⊆ ∆∗ eine konstruktive (∆, <)-Extension, so ist es auch eine maximale (∆, <)-Extension. Das folgende Beispiel zeigt, daß die Umkehrung nicht gilt, der Begriff der konstruktiven Extension im allgemeinen also echt einschränkender ist: Beispiel 5.3.14: Es sei wieder die Default-Spezifikation aus Beispiel 5.2.10 betrachtet: q p ¬p ¬q Sei nun Φ := {p ∨ q}. Da jede topologische Sortierung der Defaults mit ¬p oder ¬q beginnt, muß auch jede konstruktive Extension einen dieser beiden Defaults enthalten, E := {p, q} ist also keine konstruktive Extension. Es ist aber eine maximale Extension, denn im Gegensatz zu Beispiel 5.2.10 (Φ = ∅) kann nun ∆0 := {¬p, ¬q} nicht mehr konsistent hinzugenommen werden. 2 Natürlich ist der Begriff der konstruktiven Extension intuitiv sehr einfach, und man könnte sich fragen, ob nicht die Definition von maximaler Extension entsprechend geändert werden sollte. Allerdings müßte man dann auch die Definition von ≺(∆,<) ändern, wenn man wünscht, daß die Extensionen weiterhin den minimalen Modellen entsprechen. Das folgende Beispiel zeigt, daß dies nicht möglich ist — es gibt keine Präferenzrelation auf den Modellen, die zu den konstruktiven Extensionen paßt: Beispiel 5.3.15: Es sei dieselbe Default-Spezifikation wie im letzten Beispiel betrachtet. Tabelle 5.2 stellt die Auswahlfunktion der konstruktiven Implikation dar. Bei der konstruktiven Implikation werden gerade die Modelle ausgewählt, die konstruktiven Extensionen entsprechen. Dies gilt auf jeden Fall für [pq̄], [p̄q] und [p̄q̄], denn man kann eine topologische Sortierung wählen, in der gerade die in diesen Modellen gültigen Defaults zuerst kommen. Dagegen entspricht [pq] nur dann einer maximalen Extension, wenn einer der beiden Defaults ¬p oder ¬q nicht angenommen werden kann (kann etwa ¬p 118 KAPITEL 5. SEMANTIK VON DEFAULTS Φ false ¬p, ¬q ¬p, q ¬p p, ¬q ¬q p ↔ ¬q ¬p ∨ ¬q p, q p↔q q ¬p ∨ q p p ∨ ¬q p∨q true [pq] [pq̄] [p̄q] [p̄q̄] comp(Φ) false • ¬p, ¬q • ¬p, q • • ¬p • p, ¬q • • ¬q • • p ↔ ¬q • • • ¬p ∨ ¬q • p, q ◦ • ¬p, ¬q • • q ◦ • • ¬p • • p ◦ • • ¬q ◦ • • p ↔ ¬q ◦ • • • ¬p ∨ ¬q Tabelle 5.2: Konstruktive Implikation bei partiell geordneten Defaults nicht angenommen werden, so wähle man die Aufzählung ¬p, q, ¬q, p). Die Modelle [pq] und [pq̄] müßten bei einer passenden Ordnungsrelation unvergleichbar sein, ebenso [pq] und [p̄q]. Also ist [pq] auch in der Modellmenge {[pq], [pq̄], [p̄q]} minimal, denn keines der beiden anderen Modelle ist kleiner. Das ist aber ein Widerspruch zu den Überlegungen im vorangegangenen Beispiel, denn hier entspricht [pq] keiner konstruktiven Extension. An diesen drei Modellmengen kann man auch sehen, daß die konstruktive Implikation nicht die Expansions-Eigenschaft hat, denn es gilt: sel {[pq], [pq̄]} ∩ sel {[pq], [p̄q]} = {[pq]} 6⊆ sel {[pq], [pq̄], [p̄q]} = {[pq̄], [p̄q]}. Nicht einmal die Abschwächung der Expansions-Eigenschaft, daß jedes ausgeschlossene Modell auch in einem Zweiervergleich geschlagen werden muß, ist hier erfüllt (im Gegensatz dazu gilt diese Eigenschaft für die vorsichtige CWA). 2 Diese Probleme treten aber erst bei partiell geordneten Defaults auf, bei Prioritätsstufen gibt es keinen Unterschied zwischen konstruktiven und maximalen Extensionen: Satz 5.3.16: Sei < von einer Stufeneinteilung ` abgeleitet, d.h. gelte δ1 < δ2 ⇐⇒ `(δ1 ) < `(δ2 ). Dann ist jede maximale (∆, <)-Extension auch eine konstruktive (∆, <)-Extension. Beweis: Es ist also wieder eine Aufzählung der Defaults δ1 , δ2 , . . . , δn zu konstruieren, die gerade E liefert. Diese Aufzählung muß natürlich zunächst alle Defaults der höchsten Prioritätsstufe 1 enthalten, dann alle der Prioritätsstufe 2 und so weiter. Auf jeder Prioritätsstufe wählt man 5.3. WEITERE SEMANTIKEN 119 nun zuerst die Defaults δ ∈ E aus, und erst danach die verbleibenen Defaults δ ∈ ∆∗ − E. Diese Konstruktion garantiert folgende Aussage (∗): Ist δi 6∈ E, dann ist δi < δj für alle δj ∈ E mit ” j > i.“ Es wird nun zunächst gezeigt, daß wenn δi 6∈ E, dann Φ ∪ Ei−1 ∪ {δi } inkonsistent ist, also δi in der durch δ1 , δ2 , . . . , δn gegebenen konstruktiven Extension nicht ausgewählt wird. Angenommen, dies würde nicht gelten. Dann sei der erste δi 6∈ E betrachtet, so daß Φ∪Ei−1 ∪{δi } konsistent ist. Dann gilt für ∆0 := {δi } wegen (∗): Φ ∪ Ei−1 ∪ {δi } ⊇ Φ ∪ δ ∈ E es gibt nicht δ 0 ∈ ∆0 mit δ 0 < δ ∪ ∆0 . Da die linke Seite konsistent ist, gilt dies auch für die rechte Seite im Widerspruch zur Voraussetzung, daß E eine maximale Extension ist. Damit ist gezeigt, daß kein Default konstruktiv ausgewählt wird, der nicht in E enthalten ist. Da aber Φ ∪ E konsistent ist, müssen die Defaults δ ∈ E ausgewählt werden. 2 Oben wurde gezeigt, daß die konstruktive Implikation nicht die Expansions-Eigenschaft hat. In dem folgenden Satz wird bewiesen, daß sie die übrigen hier betrachteten Eigenschaften hat: Satz 5.3.17: `cons (∆,<) hat die Eigenschaften CON, CUM, DED, SCD und NCWA. Beweis: • (CON): Es gibt mindestens eine konstruktive Extension und konstruktive Extensionen sind konsistent mit Φ. • (CUM): Gelte Φ `cons (∆,<) ϕ, d.h. Φ ∪ E ` ϕ für jede konstruktive (∆, <)-Extension E von Φ. Sei eine beliebige Aufzählung δ1 , δ2 , . . . , δn der Defaults gegeben. Zu zeigen ist, daß in Φ und Φ ∪ {ϕ} dieselben Defaults ausgewählt werden. Angenommen, dies wäre nicht so, und bei δi würde der erste Unterschied auftreten. Wegen Φ ∪ {ϕ} ∪ Ei−1 ` Φ ∪ Ei−1 könnte es höchstens sein, daß δi in Φ ∪ {ϕ} nicht ausgewählt wird, wohl aber in Φ. Sei E die entsprechende konstruktive Extension von Φ, es gilt dann also Ei−1 ∪ {δi } ⊆ E. Außerdem gilt Φ ∪ E ` ϕ, also ist jedes Modell I von Φ ∪ E auch Modell von ϕ, und daher Modell von Φ ∪ {ϕ} ∪ Ei−1 ∪ {δi }, diese Menge ist also konsistent und δi wird auch in Φ ∪ {ϕ} ausgewählt. cons • (DED): Gelte Φ ∪ {ϕ} `cons (∆,<) ψ. Angenommen, Φ 6`(∆,<) ϕ → ψ, es gäbe also eine konstruktive (∆, <)-Extension E von Φ, so daß Φ ∪ E 6` ϕ → ψ, d.h. für ein Modell I von Φ ∪ E gilt I |= ϕ und I 6|= ψ. Es wird nun gezeigt, daß E auch eine konstruktive Extension von Φ ∪ {ϕ} ist: Man betrachte dieselbe Aufzählung der Defaults, das Ergebnis sei E 0 . Angenommen, bei δi würde der erste Unterschied auftreten. Ist δi ∈ E, so gilt I |= Φ∪{ϕ}∪E∪{δi }, also ist 0 ∪{δ } konsistent, d.h. δ ∈ E 0 . Ist umgekehrt δ ∈ E 0 , d.h. Φ∪{ϕ}∪E 0 ∪{δ } Φ∪{ϕ}∪Ei−1 i i i i i−1 0 konsistent, so ist natürlich auch die Teilmenge Φ ∪ Ei−1 ∪ {δi } konsistent, d.h. δi ∈ E. • (SCD): Ist ein Modell I intendiert, d.h. ist es Modell einer konstruktiven Extension E, so ist natürlich jedes Modell, das mindestens dieselben Defaults erfüllt, ebenfalls Modell von E, also auch intendiert. • (NCWA): Wenn die naive CWA konsistent ist, gibt es bis auf Äquivalenz nur ein minimales Modell. Da jedes Modell einer konstruktiven Extension minimal ist, und zwei verschie- 120 KAPITEL 5. SEMANTIK VON DEFAULTS dene konstruktive Extensionen unverträglich sind, gibt es also auch nur eine konstruktive Extension, die gerade mit der naiven CWA übereinstimmt. 2 Die konstruktiven Extensionen wurden in [Bre91] eingeführt, die Sätze und Beispiele dieses Abschnittes sind neu. 5.4 Zusammenfassung Es sollen jetzt die wichtigsten Ergebnisse dieses Kapitels noch einmal tabellarisch zusammengestellt werden. Garantierte Eigenschaften Man wird von einer guten Default-Semantik erwarten, daß sie grundlegende Eigenschaften wie Konsistenzerhaltung und Kumulierung für beliebige Default-Spezifikationen (∆, <) garantieren kann. Solche Eigenschaften verhindern Überraschungen bei Einfügungen und Löschungen von Axiomen, da das Ergebnis häufig schon aufgrund dieser Eigenschaften vorhersehbar ist. Andererseits gibt es Anwendungen, die eine Verletzung der Deduktions-Eigenschaft erfordern, garantierte Eigenschaften führen also immer zu einer Einschränkung der Ausdrucksfähigkeit. In der folgenden Tabelle bedeutet •“, daß für ” jede Default-Spezifikation (∆, <) die zugehörige Vervollständigung die betreffende Eigenschaft hat: Eigenschaften von Default-Semantiken CON CUM DED DDIS EXP SCD NCWA min (∆,<) • • • • • • • cwa (∆,<) ncwa (∆,<) mcwa (∆,<) scwa (∆,<) • — • • • — • • — • — • • • — • — • • • • • • • • • • • `cons (∆,<) • • • • — • • Stärke der Vervollständigung Man kann auch die Stärke der Vervollständigung für dieselbe Default-Spezifikation vergleichen und erhält folgende Hierarchie: Stärke von Default-Semantiken mcwa (∆,<) =⇒ cwa (∆,<) =⇒ min (∆,<) =⇒ `cons (∆,<) =⇒ scwa (∆,<) =⇒ ncwa (∆,<) 5.4. ZUSAMMENFASSUNG 121 Dies ist so zu lesen, daß wenn eine Anfrage bezüglich einer weiter links stehenden Vervollständigung mit Ja“ beantwortet wird, sie dann erst recht bezüglich einer weiter rechts ” stehenden Vervollständigung mit Ja“ beantwortet wird. Die Vervollständigungs-Stärke ” wächst also von links nach rechts. Allzu starke Vervollständigungen sind nicht zur Darstellung von unvollständiger Information geeignet, allzu schwache Vervollständigungen überraschen den Benutzer mit unerwarteten Wissenslücken“. ” Charakterisierungen von Default-Semantiken Charakterisierungen heben einzelne Default-Semantiken aus der Masse der Möglichkeiten hervor. Man will ja nicht eine ganz zufällige Semantik. Die folgenen Charakterisierungen besagen, daß die betrachteten Semantiken gerade extremal mit bestimmten Eigenschaften sind. Hält man z.B. die NCWA-Eigenschaft und die Deduktions-Eigenschaft für sinnvoll und will sich ansonsten keine Modelle unbegründet ausscheiden, so bekommt man gerade die minimale Modelle“ Semantik. ” Charakterisierungen über Eigenschaften und Vervollständigungsstärke ncwa (∆,<) scwa (∆,<) `cons (∆,<) min (∆,<) cwa (∆,<) mcwa (∆,<) Stärkste Vervollständigung mit NCWA Eine stärkste Vervollständigung mit NCWA, CON, CD ? Schwächste Vervollständigung mit NCWA, DED Schwächste Vervollständigung mit NCWA, DDIS Schwächste Vervollständigung mit NCWA Offene Frage 5.4.1: Gibt es auch eine entsprechende Charakterisierung für die konstruktive Implikation? Ausdrucksfähigkeit Die in den Anwendungen benötigten Vervollständigungen sollten natürlich auch durch geeignete Default-Spezifikationen dargestellt werden können. Gesucht sind also Charakterisierungen des Wertebereichs einer Default-Semantik, oder Vergleiche zwischen den Wertebereichen zweier Semantiken. Eine obere Schranke für die Menge der darstellbaren Vervollständigungen ist dabei durch die garantierten Eigenschaften (s.o.) gegeben: es ist mit Sicherheit keine Vervollständigung darstellbar, die eine dieser Eigenschaften verletzt. In dieser Arbeit konnte nur der Bereich der mit minimalen Modellen“ darstellbaren ” Vervollständigungen charakterisiert werden: Charakterisierungen der Ausdrucksfähigkeit über Eigenschaften min (∆,<) CON, CUM, DED, EXP 122 KAPITEL 5. SEMANTIK VON DEFAULTS Für die übrigen Klassen von Vervollständigungen ist zu vermuten, daß hier wesentlich kompliziertere Eigenschaften benötigt werden. Es wäre aber auch ein (nichttrivialer) Algorithmus nützlich, der aus einer als Tabelle gegebenen Vervollständigung die passenden Defaults konstruiert, soweit möglich. Schließlich kann man auch die mit den verschiedenen Default-Semantiken darstellbaren Vervollständigungen vergleichen. Hier gelten folgende Inklusionen: Vergleich der Ausdrucksfähigkeit |min| ⊂ |cwa| |min| ⊂ | `cons | |mcwa| ⊂ |cwa| |scwa| ⊂ |min| Dabei sei |x| die Menge der mit der Default-Semantik x darstellbaren Vervollständigungen (für beliebiges ∆, <). Natürlich besagt das nicht, daß die Umrechnung zwischen den Default-Spezifikationen für diese Semantiken besonders einfach ist. Wenn man etwa mit der vorsichtigen CWA die minimalen Modelle simulieren will, so muß man alle Disjunktionen von Defaults einführen. Trotzdem geben solche Inklusionen einen Hinweis auf die Mächtigkeit der Ansätze. Wertung Welche Semantik ist also nach den bisherigen Erkenntnissen die beste? Natürlich hängt das letztlich von der Anwendung ab, aber man kann doch einige Hinweise geben: Die minimale Modelle“-Semantik kann viele nützliche Eigenschaften garantieren und ” auf verschiedene Arten charakterisiert werden, sie ist also sicher nicht eine zufällige Semantik. Sie wäre wohl die erste Wahl, wenn die Anwendung es zuläßt. Die vorsichtige CWA scheint für einige Anwendungen nötig zu sein, die eine stärkere Auslöschung sich gegenseitig blockierender Defaults verlangen. Hier zahlt sich aus, daß die vorsichtige CWA echt ausdrucksstärker ist als die minimale Modelle“-Semantik. ” Darüberhinaus kann sie einige Eigenschaften garantieren und hat auch eine einfache Charakterisierung. Sie ist aber wohl noch nicht ganz so gut verstanden wie die minimale ” Modelle“-Semantik, weitere Untersuchungen wären nützlich. Die naive CWA scheidet wegen der Probleme mit der Konsistenzerhaltung aus. Falls man aufgrund der möglichen Axiomenmengen garantieren kann, daß sie konsistent ist, fällt sie ohnehin mit allen anderen Sematiken zusammen. Die modifizierte CWA scheint für praktische Zwecke zu schwach zu sein, außerdem erfüllt sie nicht die intuitiv recht einleuchtende Eigenschaft DDIS (als einzige von den betrachteten Vervollständigungen). Die starke CWA ist zur Darstellung unvollständiger Information ungeeignet, sie zieht auch Defaults in einer für den Benutzer überraschenden Weise vor. 5.4. ZUSAMMENFASSUNG 123 Die konstruktive Implikation fällt bei Prioritätsstufen mit der minimale Modelle“” Semantik zusammen. Bei partiell geordneten Defaults verletzt sie jedoch die ExpansionsEigenschaft. Ihr Vorteil ist natürlich die intuitiv sehr einfache konstruktive Definition. Dafür sollte man aber nicht die regelmäßigere Struktur der minimalen Modelle opfern. 124 Kapitel 6 Berechnung von Antworten In diesem Kapitel sollen nun Algorithmen für die Anfrageauswertung entwickelt werden. Im Unterschied zu den aus der Literatur bekannten Verfahren werden hier allgemeine Klauseln und benutzerspezifizierbare Defaults zugelassen (anstelle von Hornklauseln mit impliziter Negation). Für die Semantik der Defaults werden drei Alternativen betrachtet, die den verschiedenen Vorgehensweisen bei mehreren Extensionen entsprechen: Die minimale Modelle“” Semantik ist äquivalent zum skeptischen Ansatz, die vorsichtige CWA ist gerade der vorsichtige Ansatz und der leichtgläubige Ansatz wird als Unterprogramm benötigt. In der Literatur sind im wesentlichen zwei Klassen von Verfahren zur Anfrageauswertung vorgeschlagen worden: Die bottom-up“ Verfahren werden bei deduktiven Da” tenbanken verwendet, top-down“ Verfahren in der logischen Programmierung. Beide ” Vorgehensweisen haben ihre Vorteile: bottom-up“ Verfahren sind mengenorientiert und ” kommen daher ohne Doppelarbeit aus, top-down“ Verfahren gehen zielgerichtet vor und ” vermeiden überflüssige Arbeit. Eine Verallgemeinerung dieser Verfahren auf allgemeine Klauseln ist nicht schwer: Wenn man sich in der Literatur zum automatischen Beweisen“ umsieht, stellt man fest, ” daß das bottom-up“ Verfahren ein Spezialfall der positiven Hyperresolution ist, während ” die SLD-Resolventenmethode von Prolog auf der OL-Resolution basiert. Allerdings muß für die Hyperresolution noch eine mengenorientierte Implementierung entwickelt werden, und bei der OL-Resolution sind noch Überlegungen zur Terminierung anzustellen. Mehr Mühe machen die allgemeinen (benutzerspezifizierbaren) Defaults. Natürlich könnte man im Prinzip einfach die maximalen Extensionen konstruieren, aber dieses Verfahren würde zu einem enormen Aufwand führen. Einer der Gründe, Defaults einzuführen, war ja gerade die Speicherplatz-Ökonomie, da die Anzahl der angenommenen Default-Ausprägungen die der nicht angenommenen bei weitem übersteigt. Statt dessen werden hier Begründungen“ für Antworten berechnet, also Mengen von ” Defaults, die zur Rechtfertigung einer Antwort nötig sind. Es ist dann natürlich noch zu überprüfen, ob die entsprechenden Defaults wirklich angenommen werden können. Dies geschieht, indem widersprechende Begründungen“ berechnet werden, also Konflikte, ” an denen die betrachteten Defaults beteiligt sind. Insgesamt hat man also einen sehr 125 126 KAPITEL 6. BERECHNUNG VON ANTWORTEN zielgerichteten Umgang mit den Defaults. Es ist noch zu bemerken, daß dies etwa bei der naiven CWA oder der modifizierten CWA nicht möglich wäre. Dort kann die Konsistenz ja auch durch Defaults zerstört werden, die keine Beziehung zur Anfrage haben. Interessant wäre also sicher eine allgemeine Theorie der Antwort-Algorithmen, die etwa zeigt, daß bestimmte Default-Semantiken prinzipiell einfacher zu berechnen sind als andere. 6.1 Bottom-Up In diesem Abschnitt wird eine bottom-up“ Methode zur Anfrageauswertung bei allgemei” nen Klauseln und expliziten Defaults eingeführt. Das Verfahren läuft in zwei Phasen ab: Zuerst werden mit einem Resolventenverfahren Folgerungen aus den gegebenen Fakten und Regeln gebildet. Dies liefert einerseits mögliche Antworten mit ihren Begründungen, und andererseits Konflikte zwischen den Defaults. Aus diesen Informationen werden dann in der zweiten Phase die korrekten Antworten berechnet, was im Normalfall durch einfaches Nachschauen in den zuvor berechneten Tabellen erfolgen kann. Diese Zweiteilung ist auch deswegen naheliegend, weil man zur Anwendung der Defaults ja sicher sein muß, daß ihr Gegenteil nicht mehr abgeleitet werden kann. Da alle relevanten Folgerungen bereits in der ersten Phase berechnet wurden, steht diese Information dann in der zweiten Phase zur Verfügung. Im folgenden ist zwischen den algorithmischen Grundlagen und der mengenorientierten Implementierung zu unterscheiden. Die Grundlagen werden formal definiert und bewiesen, die Implementierung wird dagegen nur an Beispielen demonstriert. Dieser Abschnitt basiert auf der Arbeit [BL92], allerdings kann die Methode hier wesentlich ausführlicher dargestellt werden. Für die mengenorientierte Implementierung werden hier flache Relationen verwendet, in [BL92] aber geschachtelte Relationen. Es bietet sich also an, die betreffenden Abschnitte der beiden Arbeiten zu vergleichen. Eingaben der Anfrageauswertung Die Anfrageauswertung benutzt natürlich die Axiome Φ, die Defaults ∆ und eine Anfrage ψ. Wie in Kapitel 2 erläutert wurde, kann vorausgesetzt werden, daß die zugrundeliegende Signatur Σ endlich ist. Die hier betrachteten Resolutionsbeweiser arbeiten allerdings nur mit Klauseln. Es wird daher die in Kapitel 2 eingeführte Normalform verwendet, d.h. Φ wird um die Regeln answer (X1 , . . . , Xn ) ← ψ, δ ← default δ (X1 , . . . , Xn ) erweitert, wobei answer und die default δ (δ ∈ ∆) neue Prädikate sind, deren Argumentsorten zu den in ψ bzw. δ auftretenden Variablen X1 , . . . , Xn passen. Die so erweiterte Signatur heiße Σ̄. 6.1. BOTTOM-UP 127 Die erweiterte Axiomenmenge ist natürlich immer noch keine Klauselmenge, aber sie kann mit dem in Kapitel 2 angegebenen Verfahren in eine logisch äquivalente Klauselmenge Φ̄ überführt werden. Im folgenden sei answer [θ] das zur Substitution θ für die Antwortvariablen X1 , . . . , Xn gehörige Literal der Form answer (X1 , . . . , Xn )θ. Entsprechend sei default[δ] das zur Default-Ausprägung δ ∈ ∆∗ gehörige Literal. Die Umrechnung zwischen beiden Signaturen ist mit folgenden Lemmata möglich: Lemma 6.1.1: Sei I¯ ein Σ̄-Herbrandmodell von Φ̄ und I ihr Σ-Redukt. • I¯ |= default[δ] =⇒ I |= δ. • I¯ |6 = answer [θ] =⇒ I 6|= ψθ. Beweis: • Ein Grundbeispiel der neuen Regeln ist δ ← default[δ]. Da I¯ diese Implikation erfüllen muß und außerdem ein Modell von default[δ] ist, muß es natürlich auch δ erfüllen. • Diese Behauptung folgt aus I¯ |= answer [θ] ← ψθ. 2 Lemma 6.1.2: Sei I ein Σ-Herbrandmodell von Φ. Dann gibt es ein Σ̄-Herbrandmodell I¯ von Φ̄ mit • I¯ |= answer [θ] ⇐⇒ I |= ψθ für alle Antwortsubstitutionen θ, und • I¯ |= default[δ] ⇐⇒ I |= δ für alle δ ∈ ∆∗ . Beweis: I¯ sei die Σ̄-Erweiterung von I mit ¯[answer ] :⇐⇒ I |= ψhX1 / c1 , . . . , Xn / cn i, (c1 , . . . , cn ) ∈ I[ ¯ (c1 , . . . , cn ) ∈ I[[default δ0 ] :⇐⇒ I |= δ0 hX1 / c1 , . . . , Xn / cn i, wobei X1 , . . . , Xn gerade die in ψ bzw. δ0 vorkommenden Variablen sind. Die Behauptung folgt dann direkt aus der Konstruktion. 2 Die klassische bottom-up“ Methode ” Es soll zunächst die bottom-up“ Auswertung für Hornklauseln beschrieben werden, die ” dann auf beliebige Klauseln zu verallgemeinern ist. Bei der bottom-up“ Auswertung ist die Unterscheidung zwischen Fakten (positiven ” Grundliteralen) und Regeln wesentlich: Die Fakten werden in der Datenbank abgespeichert, während die Regeln benutzt werden, um neue Fakten abzuleiten. Bei deduktiven Datenbanken geht man normalerweise davon aus, daß wesentlich mehr Fakten als Regeln zu verwalten sind. Sei also Φ̄ unterteilt in Fakten ΦF und Regeln ΦR . Man berechnet nun iterativ die Menge Φ̂ der implizierten Fakten, beginnend mit Φ̂0 := ΦF . Die Hornklausel-Regeln können in der Form λ0 ← λ 1 ∧ · · · ∧ λ n 128 KAPITEL 6. BERECHNUNG VON ANTWORTEN geschrieben werden, wobei alle λj positive Literale sind. Eine solche Regel wird angewendet, indem für die Rumpf-Literale“ λ1 , . . . , λn passende Fakten aus Φ̂i−1 eingesetzt ” werden, und dann das entsprechende Faktum für das Kopf-Literal“ λ0 in Φ̂i eingetragen ” wird: Φ̂i := Φ̂i−1 ∪ λ0 θ es gibt λ0 ← λ1 ∧ · · · ∧ λn ∈ ΦR und λ1 θ, . . . , λn θ ∈ Φ̂i−1 . Ein Beispiel wäre etwa: p(a) ↑ p(X) ← q1 (X) ∧ q2 (X, Y ). ↑ ↑ q1 (a) q2 (a, b) Eine Implementierung mit Datenbank-Techniken würde natürlich die Menge aller mit dieser Regel aus Φ̂i−1 ableitbaren Fakten in einem Schritt berechnen. Die Berechnung der direkt implizierten Fakten“ wird nun solange iteriert, bis sich ” nichts mehr ändert (Φ̂i = Φ̂i−1 ). Dann sei Φ̂ := Φ̂i . Aufgrund der Bereichsbeschränkung entstehen bei dieser Berechnung auch nur Fakten (also nicht etwa Literale mit Variablen), so daß Φ̂ sehr einfach in der Datenbank repräsentiert werden kann. Außerdem enthalten diese Fakten nur in Φ vorkommende Konstanten, so daß die Terminierung sichergestellt ist. Es gibt nun noch viele Feinheiten oder Optimierungen bei der Berechnung, die hier nur kurz angedeutet werden können. Für eine genauere Behandlung sei auf [BR86, Ull88, Ull89, CGT90, Gog90] verwiesen. Zunächst wird die Berechnung der Fakten, die auf einer Iterationsstufe hinzu gekommen sind, auf jeder folgenden Stufe wiederholt, denn die verwendeten Rumpf-Literale sind auch in den späteren Φ̂i enthalten. Aus diesem Grund heißt die beschriebene Methode die naive Auswertung“. Ziel der semi-naiven Auswertung“ ist es nun, nur neue Fakten, ” ” d.h. Φ̂i − Φ̂i−1 zu berechnen. Dafür darf natürlich nicht diese Mengendifferenz verwendet werden, dann hätte man ja nichts gewonnen. Eine einfache Verbesserung ist es, nacheinander für jedes Rumpf-Literal nur in Φ̂i−1 neu hinzugekommene Fakten einzusetzen. Dies liefert jedoch nicht notwendigerweise nur neue Fakten (vgl. z.B. p(X) ← p(X)), und für die anderen Literale werden immer noch Berechnungen wiederholt. Im wesentlichen wird die Berechnung von Φ̂i für jedes Prädikat oder sogar jede Regel einzeln durchgeführt. Es ist natürlich nicht nötig, alle Regeln nacheinander immer wieder zu iterieren. Um eine passende Reihenfolge festzulegen, konstruiert man den Abhängigkeitsgraphen der Regeln, wobei eine Regel der Form p(. . .) ← q1 (. . .) ∧ · · · ∧ qn (. . .) von jeder Regel abhängig ist, bei der ein qi im Kopf vorkommt. Im einfachsten Fall einer nicht-rekursiven Regelmenge braucht man jede Regel nur ein einziges Mal anzuwenden, wenn man eine topologische Sortierung dieses Graphen verwendet. Bei Rekursionen braucht man entsprechend nur die an einem Zyklus beteiligten Regeln zu iterieren. 6.1. BOTTOM-UP 129 Einfache Hyperresolution Ziel ist es nun, diese Methode auf beliebige Klauseln zu verallgemeinern. Dies liefert gerade die Hyperresolution oder semantische Resolution (zur Vereinfachung wird hier zunächst eine Optimierung weggelassen, s.u.). Die Grundidee der Verallgemeinerung ist, anstelle der Fakten nun disjunktive Fak” ten“ zu verwenden, d.h. positive Grundklauseln. Der Ableitungsschritt wird wie bisher durchgeführt, indem für die Rumpf-Literale Fakten eingesetzt werden, allerdings hat jedes Faktum jetzt möglicherweise einen disjunktiven Kontext“. Dieser Kontext wird einfach ” an die Disjunktion angehängt, die sich aus den Kopf-Literalen ergibt: p(a) ∨ p(b) ∨ r(c) ↑ ↑ p(X) ∨ p(Y ) ← q1 (X) ∧ q2 (X, Y ). ↑ ↑ q1 (a) q2 (a, b) ∨ r(c) Die folgende Definition beschreibt die Umrechnung von der Darstellung einer Klausel als Menge (Disjunktion) von Literalen in Regeln, wie sie von der Hyperresolution verwendet werden. Formal ist die Definition etwas aufwendiger, weil nun auch die verschiedenen Arten von Prädikatsymbolen zu berücksichtigen sind. Man beachte, daß sich die Begriffe positives Literal“ und negatives Literal“ auf die Darstellung als Disjunktion beziehen ” ” (wie in Kapitel 2 definiert): Definition 6.1.3 (Klassifizierung von Literalen): • Ein auswertbares Literal ist ein Literal mit einem Datentyp-Prädikat p ∈ PD . • Ein Kopf-Literal ist ein nicht auswertbares Literal, und zwar entweder - ein positives Literal, für dessen Prädikat β(p) = + oder β(p) = ∗ gilt, oder - ein negatives Literal mit negativ bindendem Prädikat (β(p) = −). Ein variablenfreies Kopf-Literal wird auch Faktum genannt. • Ein Rumpf-Literal ist ein nicht auswertbares Literal, das kein Kopf-Literal ist. Definition 6.1.4 (Fakten und Regeln): Eine bereichsbeschränkte Klausel heißt • disjunktives Faktum, wenn sie nur aus Fakten besteht. • Regel, wenn sie mindestens ein Rumpf-Literal enthält. Man beachte, daß diese Unterscheidung vollständig ist, weil eine bereichsbeschränkte Klausel mit Variablen mindestens ein Rumpf-Literal enthalten muß (Kopf-Literale wirken nicht bindend). Außer dieser Unterscheidung in Klauseln mit und ohne Variablen ist aber noch ein zweiter Aspekt wichtig: Die zu definierende Resolventenmethode wird gerade Fakten und Regeln miteinander resolvieren, aber niemals Fakten mit Fakten oder Regeln mit Regeln. Diese Zweiteilung der Klauseln funktioniert dann, wenn es eine In- 130 KAPITEL 6. BERECHNUNG VON ANTWORTEN terpretation I gibt, in der die Fakten falsch und die Regeln wahr sind [CL73] (deswegen heißt eine solche Resolventenmethode auch semantische Resolution“). ” Aufgrund der Einschränkung, daß Fakten keine Variablen enthalten sollen, hat man bei positiv und negativ bindenden Prädikaten keine Wahl: I muß die positiv bindenden Prädikate als falsch und die negativ bindenden als wahr interpretieren (wenn man beliebige Axiomenmengen Φ zuläßt). Bei den nicht bindenden Prädikaten könnte dagegen eine beliebige Interpretation gewählt werden. Oben wurden sie zur technischen Vereinfachung wie positiv bindende Prädikate behandelt, aber in speziellen Fällen könnte eine andere Wahl günstiger sein. Ziel sollte es dabei sein, möglichst viele der vorgegebenen Axiome Φ als Fakten behandeln zu können, und nur wenige Regeln zu haben. Datentyp-Prädikate können bei der Regelanwendung gleich ausgewertet werden, da ihre Interpretation durch ID eindeutig bestimmt ist und die Variablen anderweitig gebunden sind. Definition 6.1.5 (Einfache Hyperresolution): Sei ΦF eine Menge von disjunktiven Fakten und ΦR eine Menge von Regeln. Ein disjunktives Faktum ϕ̂ heißt aus ΦF ∪ ΦR mit einfacher Hyperresolution direkt ableitbar, wenn es E H E B B H • eine Regel λH 1 ∨· · ·∨λn ← λ1 ∧· · ·∧λm ∧λ1 ∧· · ·∧λm0 ∈ ΦR mit Kopf-Literalen λ , Rumpf-Literalen ∼ λB und auswertbaren Literalen ∼ λE • eine Grundsubstitution θ für diese Regel, und C C • disjunktive Fakten der Form λB i θ ∨ λi,1 ∨ · · · ∨ λi,ki ∈ ΦF (i = 1, . . . , m) gibt, so daß 0 • ID |= λE j θ für j = 1, . . . , m , und H C C C C • ϕ̂ = λH 1 θ ∨ · · · ∨ λn θ ∨ λ1,1 ∨ · · · ∨ λ1,k1 ∨ · · · ∨ λm,1 ∨ · · · ∨ λm,km . Definition 6.1.6 (ableitbar): Ein disjunktives Faktum ϕ̂ heißt aus ΦF ∪ ΦR mit einfacher Hyperresolution ableitbar, wenn für Φ̂0 := ΦF , Φ̂i := Φ̂i−1 ∪ {ϕ̂0 | ϕ̂0 ist aus Φ̂i−1 ∪ ΦR direkt ableitbar} und ein i ∈ IN gilt: ϕ̂ ∈ Φ̂i . Es ist jetzt die Korrektheit und Vollständigkeit dieser Resolventenmethode zu zeigen. Im Gegensatz zur üblichen Vollständigkeitsaussage [CL73], die sich nur auf die leere Klausel bezieht, wird hier die Vollständigkeit für minimale disjunktive Fakten benötigt. Es sei noch daran erinnert, daß bei eingebauten Prädikaten aus PD natürlich auch bei der logischen Folgerung nur solche Modelle betrachtet werden, die mit ID kompatibel sind. So gilt etwa ∅ ` (2 = 1 + 1). Lemma 6.1.7: Ist ϕ̂ mit einfacher Hyperresolution aus Φ̄ ableitbar, so gilt Φ̄ ` ϕ̂. Beweis: Dies ergibt sich ganz direkt mit vollständiger Induktion über der Länge der Ableitung, d.h. über dem Index i von Φ̂i . Hat man ein Modell der verwendeten disjunktiven Fakten, das außerdem die Regel und die auswertbaren Literale erfüllt, so muß dieses Modell natürlich auch das abgeleitete disjunktive Faktum erfüllen. 2 6.1. BOTTOM-UP 131 Lemma 6.1.8: Sei ϕ̂ ein disjunktives Faktum mit Φ̄ ` ϕ̂, das minimal mit dieser Eigenschaft ist (d.h. keine echte Teildisjunktion folgt auch aus Φ̄). Dann ist ϕ̂ aus Φ̄ mit einfacher Hyperresolution ableitbar. Beweis: Zunächst wird die Behauptung für Mengen Φ̄ von Grundklauseln gezeigt, und zwar mit vollständiger Induktion über der Anzahl n der vorkommenden Grundatome. Für n = 0 ist die Behauptung trivial, ϕ̂ kann höchstens die leere Klausel sein, und wegen Φ̄ ` ϕ̂ muß Φ̄ die leere Klausel enthalten (Φ̄ kann ja keine anderen Klauseln enthalten). Im Induktionsschritt kann nun angenommen werden, daß die Behauptung für alle Φ̄ und ϕ̂ mit weniger als n Grundatomen bewiesen ist. Sei ϕ̂ zunächst nicht leer. Dann sei λ0 eines der Grundliterale von ϕ̂ und ϕ̂0 sei der Rest. Weiterhin entstehe Φ̄0 aus Φ̄, indem λ0 aus dem Kopf jeder Klausel gestrichen wird und außerdem jede Klausel gestrichen wird, die λ0 im Rumpf enthält (dies entspricht gerade einer Interpretation von λ0 als falsch). Nach Konstruktion gilt: • Φ̄0 und ϕ̂0 enthalten mindestens ein Grundliteral weniger als Φ̄ und ϕ̂. • Es gilt Φ̄0 ` ϕ̂0 . Wäre dies nicht der Fall, gäbe es also ein Modell I 0 von Φ̄0 mit I 0 6|= ϕ̂0 , so könnte man daraus ein Modell I von Φ̄ mit I 6|= ϕ̂ machen, indem man λ0 als falsch interpretiert. (Weil λ0 in ϕ̂ vorkommt, ist es kein auswertbares Literal, sonst wäre seine Interpretation ja vorgeschrieben.) • ϕ̂0 ist noch minimal: Sei ϕ̂00 eine echte Teildisjunktion von ϕ̂0 . Weil ϕ̂ minimal ist, gibt es ein Modell I von Φ̄ mit I 6|= ϕ̂00 ∨ λ0 . In diesem Modell ist λ0 natürlich falsch, also ist I auch Modell von Φ̄0 . Damit ist die Induktionsannahme anwendbar, und man erhält, daß ϕ̂0 aus Φ̄0 mit einfacher Hyperresolution ableitbar ist. Dieselben Ableitungsschritte kann man nun mit den Regeln von Φ̄ nachvollziehen, es kann dabei höchstens das zusätzliche Kopf-Literal λ0 hinzukommen, das aber im weiteren Verlauf der Ableitung nicht stört. Nach der Konstruktion konnten ja beim Beweis von ϕ̂0 keine Regeln verwendet werden, die λ0 im Rumpf enthalten. Im zweiten Teil des Induktionsschrittes ist nun der Fall zu behandeln, daß ϕ̂ die leere Klausel ist. Falls in Φ̄ nur noch auswertbare Literale vorkommen, muß wegen Φ̄ ` ϕ̂ der Rumpf einer der Regeln in ID erfüllt sein, so daß man sofort die leere Klausel erhält. Ansonsten sei λ0 ein beliebiges in Φ̄ vorkommendes nicht auswertbares Grundliteral. Geht man wieder zu Φ̄0 wie oben konstruiert über, so gilt natürlich Φ̄0 ` 2 (wäre Φ̄0 nicht inkonsistent, so könnte man aus einem Modell I 0 sofort ein Modell I von Φ̄ machen). Trivialerweise ist 2 auch minimal mit dieser Eigenschaft. Aus der Induktionsannahme erhält man also eine Ableitung von 2 aus Φ̄0 . Führt man dieselbe Ableitung mit den Klauseln aus Φ̄ durch, so erhält man entweder 2 oder ψ0 . Im ersten Fall ist man fertig; im zweiten Fall betrachtet man die Klauselmenge Φ̄00 , die aus Φ̄0 entsteht, indem λ0 aus dem Rumpf aller Klauseln gestrichen wird, und die Klauseln weggelassen werden, die λ0 im Kopf enthalten (dies entspricht der Interpretation von λ0 als wahr). Wieder liefert die Induktionsannahme eine Ableitung von 2 aus Φ̄00 . Will man diese Ableitung mit den Klauseln aus Φ̄ nachvollziehen, so braucht man möglicherweise das Rumpf-Literal λ0 . Dies ist jedoch nach der vorangegangenen Überlegung aus Φ̄ ableitbar. Damit ist der Induktionsschritt vollständig. Die Behauptung ist nun also für alle endlichen Mengen Φ̄ von Grundklauseln bewiesen. Aufgrund der Bereichsbeschränkung werden bei jedem Ableitungsschritt alle vorkommenden Variablen an Konstanten gebunden, die explizit in Φ̄ 132 KAPITEL 6. BERECHNUNG VON ANTWORTEN vorkommen. Daher sind genau dieselben Ableitungsschritte möglich, wenn man Φ̄ durch die Menge seiner Grundbeispiele mit den endlich vielen vorkommenden Konstanten ersetzt. Für diese Menge wurde aber oben die Vollständigkeit bewiesen. 2 Hyperresolution Wenn man die disjunktiven Fakten in eine Regel einsetzt, so spaltet man sie in das resolvierte Faktum und den disjunktiven Kontext auf. Diese Trennung ist aber im allgemeinen nicht eindeutig bestimmt. Im schlimmsten Fall paßt jedes der Literale des disjunktiven Faktums auf das betrachtete Rumpf-Literal. Zumindest muß man aber durch einen Vergleich feststellen, daß dies nicht der Fall ist. Die Anzahl der erzeugten disjunktiven Fakten kann auf diese Weise sogar exponentiell wachsen, wie folgendes Beispiel zeigt: Φ̄ := {p1 ∨ · · · ∨ pn , q1 ← p1 , . . . , qn ← pn }. Hier sind die 2n disjunktiven Fakten der Form λ1 ∨ · · · ∨ λn mit λ∈ ∈ {pi , qi } ableitbar. Es wäre also sehr nützlich, wenn man den disjunktiven Fakten ansehen könnte, was das eigentlich aktive Literal und was der Kontext ist. In [CL73] ist dazu eine Ordnung auf den Prädikaten vorgesehen, und es wird nur erlaubt, ein Literal mit minimalem Prädikat innerhalb des disjunktiven Faktums für ein Rumpf-Literal einzusetzten. Weil ein disjunktives Faktum häufig mehrere Literale mit gleichem Prädikat enthält, ist dadurch das aktive Literal“ allerdings noch nicht eindeutig ” bestimmt. Da hier aber nur bereichsbeschränkte Klauseln verwendet werden, ist es möglich, statt dessen eine Ordnung auf den Grundliteralen einzusetzen (etwa die lexikographische Reihenfolge). Ist diese Ordnung linear, so kann immer nur ein Literal eines disjunktiven Faktums an der Ableitung teilnehmen; die Aufspaltung in dieses aktive Literal“ und den ” Kontext ist also eindeutig. Definition 6.1.9 (Hyperresolution): Sei ΦF eine Menge von disjunktiven Fakten, ΦR eine Menge von Regeln und < eine Ordnung auf den Fakten. Die Hyperresolution unterscheidet sich von der einfachen Hyperresolution (Definition 6.1.5) nur dadurch, daß für die Ableitbarkeit eines disjunktiven Faktums zusätzlich folgende Bedingung erfüllt sein muß: • In den verwendeten disjunktiven Fakten C C λB i θ ∨ λi,1 ∨ · · · ∨ λi,ki C ist λB i θ < λi,j für i = 1, . . . , m, j = 1, . . . , ki . Natürlich muß die Vollständigkeitsaussage jetzt etwas abgeschwächt werden. Im obigen Beispiel Φ̄ := {p1 ∨ · · · ∨ pn , q1 ← p1 , . . . , qn ← pn } 6.1. BOTTOM-UP 133 folgen ja wirklich die 2n disjunktiven Fakten, mit der Optimierung folgen aber nur noch Disjunktionen der Form q1 ∨ · · · ∨ qi ∨ pi+1 ∨ · · · ∨ pn (wenn die pi kleiner als die qj sind). Tatsächlich braucht man für die Anfragebearbeitung nur solche Disjunktionen, die nur aus Literalen mit den Prädikaten answer und default bestehen. Diese Prädikate kommen in Φ nur positiv (answer ) bzw. negativ vor (default). Wenn sie in einem disjunktiven Faktum enthalten sind, können sie also nie wieder wegresolviert werden. Daher liegt es nahe, sie gerade als maximal in der Ordnung einzustufen, also als am wenigsten aktive Literale“ Λ0 . Dafür gilt folgende Vollständigkeitsaussage: ” Lemma 6.1.10: Seien folgende Voraussetzungen erfüllt: • Λ0 ist eine Menge von Fakten mit: Wenn λ ∈ Λ0 und λ < λ0 , dann λ0 ∈ Λ0 (Abschluß unter >). • In den Grundbeispielen der Regeln aus Φ̄ taucht kein λ ∈ Λ0 als Rumpf-Literal auf. • ϕ̂ besteht nur aus Λ0 -Literalen. • Es gilt Φ ` ϕ̂ und ϕ̂ ist minimal mit dieser Eigenschaft. Dann ist ϕ̂ aus Φ̄ mittels Hyperresolution ableitbar. Beweis: Der Beweis verläuft ganz analog zum Beweis von Lemma 6.1.8, es ist nur sicherzustellen, daß man die von der Induktionsannahme gelieferten Ableitungen auch mit der ursprünglichen Klauselmenge Φ̄ nachvollziehen kann. Im ersten Teil des Induktionsschrittes folgt dies direkt aus den Voraussetzungen: Da das neue Literal λ0 in ϕ̂ vorkommt, ist es also Element von Λ0 . Daher ist in keinem der verwendeten disjunktiven Fakten das neue Literal λ0 das aktive Literal, es sei denn ganz zum Schluß, wenn ohnehin keine weiteren Ableitungsschritte mehr möglich sind (wenn λ0 das aktive Literal ist, kann die ganze Klausel nur noch aus Λ0 -Literalen bestehen). Im zweiten Teil des Induktionsschrittes (ϕ̂ = 2) wähle man ein <-maximales in Φ̄ vorkommendes und nicht auswertbares Grundliteral λ0 . Dieses ist nun nicht notwendigerweise in Λ0 enthalten, aber wegen der Maximalität kann es die ursprüngliche Ableitung nicht blockieren. Im letzten Fall kommt λ0 schließlich in keinem der abgeleiteten Fakten vor, denn es werden keine Klauseln verwendet, die λ0 im Kopf enthalten. Damit kann die von der Induktionsannahme gelieferte Ableitung wieder übernommen werden. 2 Die Optimierung durch Verwendung einer Ordnung auf den Grundliteralen ist neu und hat vermutlich einen deutlichen Effizienzgewinn zur Folge (es ist gerade eine typische Anwendungs-Situation, daß man disjunktive Fakten über ein Prädikat hat). Eine Ordnung auf den Prädikaten wurde schon in [CL73] verwendet. Mengenorientierte Implementierung Es soll jetzt an einem einfachen Beispiel gezeigt werden, daß die Hyperresolution mengenorientiert implementiert werden kann, wobei im wesentlichen dieselben DatenbankTechniken verwendet werden können wie im klassischen Fall. 134 KAPITEL 6. BERECHNUNG VON ANTWORTEN Natürlich wird man mit einem Standard-Datenbanksystem nicht die größtmögliche Effizienz erreichen können, an einigen Stellen sind noch etwas umständliche Formulierungen nötig, die höchstens ein sehr intelligenter Optimierer geschickt auswerten könnte. Etwas besser wäre schon ein NF2 -Datenbanksystem, wie es in [BL92] verwendet wurde. Auch dort sind aber eine ganze Reihe von Restrukturierungen nötig, von denen zu hoffen ist, daß sie nicht wirklich ausgeführt werden. Im folgenden wird die flache“ Relationenalgebra verwendet, weil entsprechende Da” tenbanksysteme leichter verfügbar sind, und für Prototypen spielt die Effizienz ja nur eine untergeordnete Rolle. Vor allem aber sind die Implementierungstechniken bekannter, so daß man den Aufwand der verschiedenen Operationen oder auch mögliche Optimierungen besser einschätzen kann. Der Idealfall bleibt natürlich ein Datenbanksystem, bei dem auch die unteren Schichten an diese Anwendung angepaßt sind. Auch bei diesem Ziel ist aber das folgende Beispiel nützlich, um zu sehen, wo die Standard-Techniken eingesetzt werden können. Es sei folgende typische Regel R1 gewählt: p(X, a) ∨ p(X, b) ← q1 (X, Y ) ∧ q2 (Y, c). Nun ist zunächst eine relationale Darstellung für Φ̂ zu wählen. Eine besonders einfache Lösung ist, nur eine einzige Tabelle zu verwenden. Es gibt natürlich eine ganze Reihe Alternativen, die im folgenden kurz angedeutet werden. DIS FACTS id 1 1 2 3 4 4 pred arg1 arg2 active lit length q1 a d T q1 (a, d) 2 r a — F r(a) 2 q1 b e T q1 (b, e) 1 q2 d c T q2 (d, c) 1 q2 e c T q2 (e, c) 2 r e — F r(e) 2 Diese Tabelle repräsentiert folgende Menge von disjunktiven Fakten: Φ̂0 := {q1 (a, d) ∨ r(a), q1 (b, e), q2 (d, c), q2 (e, c) ∨ r(e)}. Die Attribute bedeuten folgendes: • id : Mit diesem Attribut werden die Literale eines disjunktiven Faktums verkettet. • pred : Das Prädikat des in dem Tupel dargestellten Literals. • arg1: Das erste Argument des Literals. • arg2 : Das zweite Argument des Literals (bei Bedarf wird ein Nullwert eingetragen). • active: T“, falls das aktive Literal in dieser Disjunktion, F“ sonst. ” ” • lit: Es vereinfacht die Überprüfung der Ordnung zwischen den Literalen sowie Verbund-Bedingungen, wenn das Literal auch noch einmal als Zeichenkette vorliegt. Ansonsten ist diese Information natürlich redundant. Die Bezeichner für answer 6.1. BOTTOM-UP 135 und default seien so gewählt, daß sie größer als jedes andere Prädikat eingestuft werden. • length: Die Anzahl der Literale in der Disjunktion. Auch diese Information ist eigentlich redundant. Zunächst definiert man zwei Teilanfragen für die beiden Rumpf-Literale: BODY1 := πid:id1,arg1:X,arg2 :Y σpred=’q1 ’∧active=’T ’ (DIS FACTS ) BODY2 := πid:id1,arg1:Y σpred=’q2 ’∧active=’T ’∧arg2 =’c’ (DIS FACTS ) Die Selektionen für pred und active wären natürlich überflüssig, wenn man die aktiven Literale für jedes Prädikates in eine eigene Tabelle eintragen würde. Dies würde aber später zu aufwendigen Vereinigungen und Aufspaltungen führen. Die Selektion für die in der Regel auftretende Konstante c ist eine Übereinstimmung mit der klassischen bottom” up“ Methode. Auch der nun folgende Join über den gemeinsamen Variablen der RumpfLiterale ist klassisch“: ” BODY := BODY1 1 BODY2 . Falls der Rumpf noch auswertbare Literale enthielte, würde hier eine entsprechende Selektion eingebaut. Nun ist die durch die Regelanwendung erzeugte Disjunktion aufzubauen. Das fängt mit der etwas mühsamen Erzeugung eines neuen Bezeichners id für die Disjunktion an. Es werden hier einfach Identifikatoren für die Regel und die verwendeten Fakten als Strings aneinandergehängt (◦ bezeichne die Konkatenation): BODY 0 := π’R1 (’◦id1◦’,’◦id2 ◦’)’:new id,id1,id2 ,X (BODY ). Einfacher wäre es natürlich, wenn man eine Funktion hätte, die bei jedem Aufruf eine neue Zahl liefert (etwa in ORACLE“ vorhanden). ” Die neue Disjunktion ergibt sich nun aus den beiden Kopf-Literalen und den Kontexten der beiden Rumpf-Literale: NEW := πnew ∪ πnew ∪ πnew ∪ πnew id:id,’p’:pred,X:arg1,’a’:arg2 ,’p(’◦X◦’,’◦’a’◦’)’:lit (BODY 0 ) id:id,’p’:pred,X:arg1,’b’:arg2 ,’p(’◦X◦’,’◦’b’◦’)’:lit (BODY ) 0 1 DIS FACTS ) id:id,pred,arg1,arg2 ,lit σactive=’F ’ (BODY id1=id 0 1 DIS FACTS ) . id:id,pred,arg1,arg2 ,lit σactive=’F ’ (BODY 0 id2 =id NEW id pred arg1 arg2 lit R1(1, 3) p a a p(a, a) R1(1, 3) p a b p(a, b) R1(1, 3) r a — r(a) R1(2, 4) p b a p(b, a) R1(2, 4) p b b p(b, b) R1(2, 4) r e — r(e) Die Verbunde mit dem Kontext wären natürlich nicht nötig, wenn man etwa eine NF2 Darstellung gewählt hätte. Dann hätte man den Kontext mit den aktiven Literalen 136 KAPITEL 6. BERECHNUNG VON ANTWORTEN mitführen können. Dafür wären bei der NF2 -Darstellung mehrere Restrukturierungen nötig gewesen. Es ist jetzt noch festzustellen, welches Literal jeweils das aktive Literal ist. Außerdem ist für die Eliminierung nicht-minimaler Disjunktionen die Anzahl der Literale wichtig: id NEW 0 := γid, count(∗):length,min(lit):min lit (NEW ) 1 NEW NEW 00 := πid,pred ,arg1,arg2 ,’T ’:active,lit,length σlit=min lit (NEW 0 ) ∪ πid,pred,arg1,arg2 ,’F ’:active,lit,length σlit6=min lit (NEW 0 ) . Der Operator γAC (B) entspreche dabei dem select A from B group by C“ in SQL. Man ” beachte, daß die Berechnung des aktiven Literals und der Disjunktions-Länge bei einem einmaligen Durchlauf durch die entsprechend sortierte Relation NEW vorgenommen werden kann. Nun fehlt nur noch die Eliminierung nicht-minimaler Disjunktionen. Bei einem NF 2 Datenbanksystem würde man einfach einen Teilmengen-Verbund verwenden. Leser, die sich mit der Implementierung und Komplexität dieser Operation auskennen, können den Rest dieses Abschnittes überspringen. Bei einem relationalen Datenbanksystem kann der Teilmengenverbund mit folgendem hübschen Trick implementiert werden: Man stellt fest, wie häufig sich eine neue und eine alte (oder neue) Disjunktion in einem Literal überlappen (mit dem Verbund über lit). Nun kennt man außerdem die Längen der beiden Disjunktionen. Stimmt die Anzahl der gemeinsamen Literale mit einer dieser beiden Längen überein, so ist die betreffende Disjunktion Teildisjunktion der anderen. DIS FACTS := DIS FACTS ∪ NEW 00 OVERLAP := πid,lit,length (DIS FACTS ) 1 πid:id 0 ,lit,length:length 0 (NEW 00 ) id,id 0 (OVERLAP ) OVERLAP 0 := γid,id 0 ,length,length 0 ,count(∗):common Im Beispiel werden folgende Überlappungen festgestellt: OVERLAP 0 id id 0 length length 0 common 1 R1(1, 3) 2 3 1 4 R1(2, 4) 2 3 1 Die Löschung nicht-minimaler Disjunktionen funktioniert dann folgendermaßen (im Beispiel sind keine Disjunktionen betroffen): DELETE := πid σcommon=length 0 ∧common<length (OVERLAP 0 ) ∪ πid 0 :id σcommon=length∧(common<length 0 ∨id<id 0 ) (OVERLAP 0 ) DIS FACTS := DIS FACTS − (DELETE 1 DIS FACTS ). Damit ist eine Anwendung der Regel abgeschlossen. Steuerung der Regelanwendung Im einfachsten Fall werden alle Regeln reihum solange iteriert, bis sich auf einer Itera- 6.1. BOTTOM-UP 137 tionsstufe nichts mehr geändert hat. Dieses Verfahren kann natürlich auf viele Arten verbessert werden; hier sollen einige kurze Andeutungen genügen. Zunächst ist natürlich auch hier eine semi-naive Auswertung wünschenswert, mindestens sollten nicht für alle Rumpf-Literale nur alte Fakten eingesetzt werden. Die Anordnung der Regeln mit einem Abhängigkeitsgraphen ist deutlich schwieriger als im Fall der Hornklauseln. Das Problem ist, daß man aufgrund der disjunktiven Kontexte einer Regel nicht einfach ansehen kann, welches Prädikat das abgeleitete aktive Literal haben wird. Hat man etwa die Regel r(X) ← p(X) und setzt hier das disjunktive Faktum p(a) ∨ q(a) ein, so entsteht das disjunktive Faktum q(a) ∨ r(a). Das aktive Literal ist hier q(a) und entspricht damit nicht dem KopfLiteral der verwendeten Regel. Man braucht also eine Analyse, welche Prädikate zusammen mit welchen anderen Prädikaten in disjunktiven Fakten vorkommen können. Die Ordnung auf den Grundliteralen muß nicht notwendigerweise die lexikographische Ordnung sein, man kann sie vielmehr als ein Mittel zur Optimierung einsetzen. Hat man etwa die Regel p(Y ) ∨ q(X) ← p(X) ∧ r(X, Y ) zusammen mit den Fakten p(1), r(1, 2), . . . , r(99, 100), so werden lange Disjunktionen der Form p(i) ∨ q(1) ∨ · · · ∨ q(i − 1) aufgebaut. Mit den zusätzlichen Regeln answer ← p(100) und ← q(X) schrumpfen sie dann wieder zu der Antwortklausel“ answer . Wählt man nun die Ordnung ” q(. . .) < p(. . .) < r(. . .) < answer , so werden immer nacheinander Disjunktionen der Form p(i) ∨ q(i − 1) und Fakten der Form p(i) erzeugt. Auf diese Weise spart man Speicherplatz, die Tests auf schon vorhandene Teilklauseln werden schneller, und man hat man genauere Information über die Form der erzeugten disjunktiven Fakten (ihre Länge ist bekannt). Am effizientesten wäre es natürlich, die beiden Regeln zu kombinieren: p(Y ) ← p(X) ∧ r(X, Y ). Diese Technik ist in der logischen Programmierung als unfolding“ bekannt. Man kann ” sich hier nicht einfach auf den Standpunkt stellen, daß solche Umformungen schon vom Benutzer/Datenbankentwerfer durchgeführt werden sollen, da ihre Nützlichkeit im allgemeinen von der Anfrage abhängt (das unterdrückte Zwischenergebnis darf nur an einer bzw. wenigen Stellen weiterverwendet werden). Auch die Umkehrung (Eliminierung von gleichen Teilausdrücken durch neue Prädikate) kann sich auszahlen. Potentielle Antworten Nachdem nun alle Folgerungen Φ̂ aus der Axiomenmenge Φ̄ berechnet sind, beginnt die 138 KAPITEL 6. BERECHNUNG VON ANTWORTEN zweite Phase der Anfrageauswertung: Es sind jetzt die Antworten unter Berücksichtigung der Defaults zu erzeugen. Zur Vereinfachung wird hier davon ausgegangen, daß keine Prioritäten zwischen den Defaults spezifiziert sind. Eine Verallgemeinerung auf Prioritätsstufen kann mit einer Iteration über den Stufen vorgenommen werden [BG89, BL92]. Um zu sehen, welche Vorarbeit die erste Phase geleistet hat, sei hier noch ein Beispiel angegeben: Beispiel 6.1.11: Seien folgende Axiome gegeben: Φ := {p(a), p(b) ∨ p(c), ¬p(d), q(a), q(b), q(c), q(d), q(e)}. Als Default sei ¬p(X) spezifiziert und die Anfrage sei ¬p(X) ∧ q(X). Die Normalisierung fügt folgende Regeln zu der Axiomenmenge hinzu: Φ̄ := Φ ∪ {¬p(X) ← default(X), answer (X) ← ¬p(X) ∧ q(X)}. Die erste Regel wird von der Hyperresolution gerade umgekehrt behandelt, nämlich als ¬default(X) ← p(X), denn default ist negativ bindend, ¬default(X) ist also ein Kopf-Literal. Die zweite Regel ist folgendermaßen in Kopf und Rumpf eingeteilt: answer (X) ∨ p(X) ← q(X). Schließlich enthält Φ selbst noch eine dritte Regel, nämlich ← p(d). Eine Anwendung der ersten Regel ergibt folgende disjunktiven Fakten: ¬default(a), ¬default(b) ∨ p(c). Die zweite Regel liefert: answer (a) ∨ p(a), answer (b) ∨ p(b), answer (c) ∨ p(c), answer (d) ∨ p(d), answer (e) ∨ p(e). Die dritte Regel erzeugt nun folgendes Faktum: answer (d). Die Disjunktion answer (d) ∨ p(d) ist jetzt nicht mehr minimal und wird gelöscht. Die erste Regel muß noch einmal angewendet werden und liefert: ¬default(b) ∨ ¬default(c), answer (a) ∨ ¬default(a), answer (b) ∨ ¬default(b), answer (c) ∨ ¬default(c), answer (e) ∨ ¬default(e). 6.1. BOTTOM-UP 139 Die Disjunktion answer (a)∨¬default(a) ist nicht minimal (¬default(a) ist schon bekannt), also wird auch sie gelöscht. Eine weitere Anwendung der Regeln liefert keine neuen disjunktiven Fakten. 2 Von den erzeugten disjunktiven Fakten sind natürlich solche am interessantesten, die nur das Prädikat answer enthalten. Solche Disjunktionen entsprechen disjunktiven Antworten, die schon logisch korrekt sind, also ohne Verwendung von Defaults ableitbar sind. In dem Beispiel ist das nur answer (d), und tatsächlich ist hX / di eine korrekte Antwort. Nützlich sind aber auch Disjunktionen, die answer und default enthalten. Sie entsprechen potentiellen Antworten“, die von der Anwendbarkeit der betreffenden Defaults ” abhängen: answer (b) ← default(b), answer (c) ← default(c), answer (e) ← default(e). Definition 6.1.12 (Begründung): Eine Menge von Default-Ausprägungen D ⊆ ∆∗ heißt Begründung für eine Formel ψ 0 genau dann, wenn • Φ ∪ D ` ψ0. • Φ ∪ D ist konsistent. Definition 6.1.13 (Potentielle Antwort): Eine potentielle Antwort ist eine Menge von Substitutionen {θ1 , . . . , θk } für die Variablen einer Anfrage ψ, so daß es für die Formel ψθ1 ∨ · · · ∨ ψθk eine Begründung D ⊆ ∆∗ gibt. Aus dieser Definition von potentieller Antwort folgt nun sofort, daß eine potentielle Antwort im leichtgläubigen Sinne korrekt ist: Lemma 6.1.14: • Ist {θ1 , . . . , θk } eine potentielle Antwort mit Begründung D, so gibt es eine maximale ∆-Extension E von Φ mit Φ ∪ E ` ψθ1 ∨ · · · ∨ ψθk . • Gilt umgekehrt Φ ∪ E ` ψθ1 ∨ · · · ∨ ψθk für eine maximale ∆-Extension E von Φ, so ist {θ1 , . . . , θk } eine potentielle Antwort mit Begründung E. Beweis: • Nach Lemma 5.2.14 kann D zu einer maximalen ∆-Extension E erweitert werden. Dann folgt die Behauptung aus der Monotonie der logischen Folgerung `. • Die Umkehrung folgt direkt aus der Definition. 2 Im folgenden ist nun die Beziehung zwischen potentiellen Antworten und den Disjunktionen aus answer - und default-Literalen nachzuweisen: 140 KAPITEL 6. BERECHNUNG VON ANTWORTEN Definition 6.1.15 (Antwortklausel): Eine Antwortklausel ist eine minimale Disjunktion der Form answer [θ1 ] ∨ · · · ∨ answer [θk ] ∨ ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ], die aus Φ̄ folgt (k > 0, m ≥ 0). Lemma 6.1.16: Ist answer [θ1 ] ∨ · · · ∨ answer [θk ] ∨ ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ] eine Antwortklausel, so ist {θ1 , . . . , θk } eine potentielle Antwort mit Begründung {δ1 , . . . , δm }. Beweis: Sei D := {δ1 , . . . , δm }. Angenommen, {θ1 , . . . , θk } wäre keine potentielle Antwort mit dieser Begründung. Dann müßte eine der beiden Bedingungen aus Definition 6.1.12 verletzt sein. Gilt Φ ∪ D 6` ψθ1 ∨ · · · ∨ ψθk , so gibt es also ein Σ-Modell I von Φ ∪ D mit I 6|= ψθi . Für die Interpretation I¯ nach Lemma 6.1.2 gilt nun: I¯ |= Φ, I¯ 6|= answer [θi ] (i = 1, . . . , k). I¯ |= default[δj ] (j = 1, . . . , m), Das bedeutet aber Φ 6` answer [θ1 ] ∨ · · · ∨ answer [θk ] ∨ ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ] im Widerspruch zur Voraussetzung. Die zweite Bedingung an eine potentielle Antwort ist, daß ihre Begründung D konsistent mit Φ ist. Wäre dies nicht erfüllt, so würde schon Φ̄ ` ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ] gelten, denn andernfalls müßte es ein Σ̄-Modell I¯ von Φ̄ geben mit I¯ 6|= ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ], d.h. I¯ |= default[δi ] (i = 1, . . . , k), dies liefert aber nach Lemma 6.1.1 ein Modell I von Φ∪D. Da also schon die echte Teildisjunktion aus den default-Literalen aus Φ̄ folgt, ist die Antwortklausel nicht minimal. 2 Lemma 6.1.17: Sei {θ1 , . . . , θk } eine potentielle Antwort mit Begründung {δ1 , . . . , δn } und minimal in dem Sinn, daß keine der beiden Mengen verkleinert werden kann, ohne die andere zu vergrößern. Dann ist answer [θ1 ] ∨ · · · ∨ answer [θk ] ∨ ¬default[δ1 ] ∨ · · · ∨ ¬default[δn ] eine Antwortklausel. Beweis: Zunächst ist zu zeigen: Φ̄ ` answer [θ1 ] ∨ · · · ∨ answer [θk ] ∨ ¬default[δ1 ] ∨ · · · ∨ ¬default[δn ]. Wäre dies nicht der Fall, so gäbe es ein Modell I¯ von Φ̄ mit I¯ 6|= answer [θi ] (i = 1, . . . , m) und I¯ |= default[δj ] (j = 1, . . . , k). Hierzu erhält man nach Lemma 6.1.1 ein Σ-Herbrandmodell I von Φ mit I 6|= ψθi und I |= δj . Also ist Φ ∪ {δ1 , . . . , δn } ` ψθ1 ∨ · · · ∨ ψθm nicht erfüllt. Nun ist noch die Minimalität der Antwortklausel zu zeigen. Würde eine echte Teildisjunktion ebenfalls aus Φ̄ folgen, so würde die nach Lemma 6.1.16 konstruierte potentielle Antwort die vorausgesetzte Minimalität von {θ1 , . . . , θk }, {δ1 , . . . , δn } widerlegen. (Die Teildisjunktion muß noch mindestens ein answer -Literal enthalten, da Φ ∪ {δ1 , . . . , δn } konsistent ist.) 2 6.1. BOTTOM-UP 141 Aus den in der ersten Phase der Anfrageauswertung berechneten Antwortklauseln erhält man also alle minimalen Paare von potentieller Antwort und Begründung. Man interessiert sich ja auch nur für minimale Antworten, und eine Begründung ist natürlich umso einfacher zu akzeptieren, je weniger Defaults sie enthält. In diesem Sinne ist die Berechnung der potentiellen Antworten also vollständig. Beispiel 6.1.18: In Beispiel 6.1.11 wurden folgende Antwortklauseln berechnet: answer (b) ← default(b), answer (c) ← default(c), answer (d), answer (e) ← default(e). Die potentielle Antwort hX / di hat also die Begründung ∅, d.h. es gilt Φ ` ψhX / di. Die anderen potentiellen Antworten hängen von jeweils einem Default ab, so gilt etwa Φ ∪ {¬p(b)} ` ψhX / bi. Die vier Antworten hX / bi, hX / ci, hX / di und hX / ei wären alle im leichtgläubigen Sinn korrekt, allerdings basieren hX / bi und hX / ci auf unterschiedlichen Extensionen, nämlich E1 := {¬p(b), ¬p(d), ¬p(e)} und E2 := {¬p(c), ¬p(d), ¬p(e)}. Der leichtgläubige Ansatz wird hier nicht weiter verfolgt, da er ja nicht unter Konjunktion abgeschlossen ist (siehe Kapitel 2). 2 Konflikte zwischen Defaults Bei der minimale Modelle“-Semantik und der vorsichtigen CWA“ sind die Begründun” ” gen jetzt noch genauer zu überprüfen. Hierzu ist es nützlich, die maximalen Extensionen zu betrachten, die von einer Begründung überdeckt“ werden: ” Definition 6.1.19 (Überdeckte Extensionen): Für D ⊆ ∆∗ sei |D| := {E | E ist maximale Extension mit D ⊆ E} die Menge der überdeckten Extensionen. Beispiel 6.1.20: Im obigen Beispiel ist |{p(b)}| = {E1 }, |{p(c)}| = {E2 }, |{p(e)}| = {E1 , E2 }. Natürlich gilt auch für die Begründung ∅ von hX / di, daß |∅| = {E1 , E2 }. 2 Besonders nützlich sind Begründungen, die alle maximalen Extensionen überdecken: in diesem Fall sind die entsprechenden Defaults in jeder Extension und damit in ihrem Schnitt enthalten. Dies erlaubt gerade die Berechnung von Antworten bezüglich der vorsichtigen CWA: 142 KAPITEL 6. BERECHNUNG VON ANTWORTEN Lemma 6.1.21: Sei D eine Begründung für die potentielle Antwort {θ1 , . . . , θk }, so daß |D| die Menge aller maximalen ∆-Extensionen von Φ ist. Dann gilt: cwa ∆ (Φ) ` ψθ1 ∨ · · · ∨ ψθk . Beweis: außerdem Aus der Definition der vorsichtigen CWA folgt direkt: Φ ∪ D ⊆ cwa ∆ (Φ). Da Φ ∪ D ` ψθ1 ∨ · · · ∨ ψθk , folgt die Behauptung sofort aus der Monotonie von `. 2 Es fehlt jetzt also nur noch eine Möglichkeit, zu überprüfen, ob eine Begründung alle Extensionen überdeckt. Ein konstruktiver Nachweis, daß dies nicht der Fall ist, besteht in der Angabe nicht überdeckter Extensionen mit einer widersprechenden Begründung“: ” Definition 6.1.22 (Widersprechende Begründung): Sei D := {δ1 , . . . , δm } eine Menge von Default-Ausprägungen. Eine widersprechende Begründung zu D ist eine Begründung D̂ für ¬δ1 ∨ · · · ∨ ¬δm . Lemma 6.1.23: Sei D̂ eine widersprechende Begründung zu D. Dann gilt: • |D| ∩ |D̂| = ∅ (die Mengen der überdeckten Extensionen sind disjunkt), • |D̂| 6= ∅. Beweis: • Da D̂ eine widersprechende Begründung zu D ist, ist Φ ∪ D̂ ∪ D inkonsistent, also kann keine maximale Extension E beide Mengen umfassen, denn Φ ∪ E ist definitionsgemäß konsistent. • Dies folgt aus der Konsistenz von Φ ∪ D̂ mit Lemma 5.2.14. 2 Lemma 6.1.24: Es gibt eine widersprechende Begründung D̂ zu D ⊆ ∆∗ genau dann, wenn D nicht alle maximalen Extensionen überdeckt. Beweis: • =⇒ “: Gibt es eine widersprechende Begründung, so folgt direkt aus Lemma 6.1.23: Es ” gibt E ∈ |D̂| und für solche E gilt E 6∈ |D|. • ⇐= “: Gibt es eine maximale Extension E mit E 6∈ |D|, so ist E automatisch eine wi” dersprechende Begründung. (Da die zugrundeliegende Signatur endlich ist, ist E natürlich auch endlich. Man könnte sonst aber auch leicht mit dem Kompaktheitssatz eine endliche Teilmenge D̂ ⊆ E konstruieren, so daß Φ ∪ D̂ ∪ D inkonsistent ist.) 2 Widersprechende Begründungen kann man nun leicht aus den Konflikten“ zwischen De” faults konstruieren, die man in der ersten Phase der Anfrageauswertung berechnet hat: Definition 6.1.25 (Konflikt): Ein Konflikt Ω ⊆ ∆∗ ist eine minimale Menge von Default-Ausprägungen, so daß Φ ∪ Ω inkonsistent ist. 6.1. BOTTOM-UP 143 Beispiel 6.1.26: In Beispiel 6.1.11 gibt es zwei Konflikte: {¬p(a)} und {¬p(b), ¬p(c)}, entsprechend den beiden Formeln p(a) und p(b) ∨ p(c) in Φ. Dies bedeutet, daß der Default ¬p(a) sicher nicht angenommen werden kann, während die Defaults ¬p(b) und ¬p(c) nur nicht zusammen angenommen werden können. 2 Lemma 6.1.27: Eine Menge Ω = {δ1 , . . . , δm } ⊆ ∆∗ ist genau dann ein Konflikt, wenn ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ] ein minimales, von Φ̄ impliziertes disjunktives Faktum ist. Beweis: Es reicht, zu zeigen, daß Φ ∪ {δ1 , . . . , δm } genau dann inkonsistent ist, wenn Φ̄ ` ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ]. Die beiden Minimalitätsforderungen entsprechen sich dann gerade. • Sei also Φ ∪ {δ1 , . . . , δm } inkonsistent. Würde Φ̄ ` ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ] nicht gelten, so gäbe es ein Modell I¯ von Φ̄ mit I¯ |= default[δi ], daraus erhielte man nach Lemma 6.1.1 ein Modell I von Φ ∪ Ω (im Widerspruch zur vorausgesetzten Inkonsistenz). • Gelte umgekehrt Φ̄ ` ¬default[δ1 ] ∨ · · · ∨ ¬default[δm ]. Wäre Φ ∪ {δ1 , . . . , δm } konsistent, so könnte man aus einem Modell I nach Lemma 6.1.2 ein Modell I¯ von Φ̄ mit I¯ 6|= ¬default[δi ] konstruieren (Widerspruch zur Voraussetzung). 2 Damit ist gezeigt, daß die erste Phase der Anfragebearbeitung alle Konflikte vollständig berechnet hat. Es fehlt nun nur noch die Beziehung zwischen Konflikten und widersprechenden Begründungen. Im wesentlichen entsprechen die widersprechenden Begründungen zu D gerade den Konflikten, mit denen D einen nichtleeren Schnitt hat: Lemma 6.1.28: • Ist Ω ein Konflikt und D eine Menge von Default-Ausprägungen mit D ∩ Ω 6= ∅, so ist D̂ := Ω − D eine widersprechende Begründung zu D. • Ist D̂ eine widersprechende Begründung zu D, so gibt es einen Konflikt Ω mit Ω ⊆ D ∪ D̂, Ω ∩ D 6= ∅ und Ω ∩ D̂ 6= ∅. Beweis: • Da Φ ∪ Ω inkonsistent ist, ist wegen Ω ⊇ D ∪ D̂ natürlich erst recht Φ ∪ D̂ ∪ D inkonsistent. Andererseits ist D̂ ⊂ Ω (wegen D ∩ Ω 6= ∅), aus der Minimalität von Ω folgt also die Konsistenz von Φ ∪ D̂. • Da D̂ eine widersprechende Begründung ist, ist Φ ∪ D̂ ∪ D inkonsistent. Man wähle nun eine minimale Teilmenge Ω ⊆ D̂ ∪ D, so daß Φ ∪ Ω inkonsistent ist. Nach Konstruktion ist Ω ein Konflikt. Weil Φ ∪ D und Φ ∪ D̂ konsistent sind, gilt Ω 6⊆ D und Ω 6⊆ D̂, Ω muß also mit beiden einen nichtleeren Schnitt haben. 2 Damit hat man jetzt also einen Algorithmus zur Anfragebeantwortung unter der vorsichtigen CWA: Man testet einfach für jede potentielle Antwort, ob ihre Begründung ein gemeinsames Element mit einem Konflikt hat. Die übrigen Antworten können dann ausgegeben werden (nach der Eliminierung nicht-minimaler Antworten). 144 KAPITEL 6. BERECHNUNG VON ANTWORTEN Beispiel 6.1.29: In dem laufenden Beispiel werden also hX/ di und hX/ ei ausgegeben. Dies sind auch die einzigen (minimalen) korrekten Antworten, denn es ist cwa ∆ (Φ) = Φ ∪ {¬p(d), ¬p(e)}. Die Begründungen der Antworten hX / bi und hX / ci überlappen sich mit dem Konflikt {¬p(b), ¬p(c)}. 2 Die minimale Modelle“-Semantik ” Nach dem leichtgläubigen und dem vorsichtigen Ansatz zur Behandlung mehrfacher Extensionen wird nun der skeptische Ansatz als Grundlage der Anfrage-Bearbeitung verwendet.. Er ist äquivalent zur minimale Modelle“-Semantik, da die maximalen Extensionen ” gerade den minimalen Modellen entsprechen. Eine Formel folgt skeptisch, wenn sie aus allen maximalen Extensionen folgt. Hier ist es wieder nützlich, die von einer Begründung überdeckten Extensionen zu betrachten: Man braucht offensichtlich Begründungen, die zusammen alle Extensionen überdecken. Lemma 6.1.30: Sei {θi,1 , . . . , θi,ki } für i = 1, . . . , n eine potentielle Antwort mit Begründung Di . Ist |D1 | ∪ · · · ∪ |Dn | die Menge aller maximalen Extensionen, so ist die Antwort {θ1,1 , . . . , θ1,k1 , . . . , θn,1 , . . . , θn,kn } korrekt bezüglich min ∆ . Beweis: Zu zeigen ist, daß jedes minimale Modell I von Φ auch Modell von ψθ1,1 ∨ · · · ∨ ψθn,kn ist. Nach Satz 5.2.15 ist I auch Modell einer maximalen Extension E. Nach der Voraussetzung ist E ∈ |Di | für ein i. Da Di eine Begründung für die potentielle Antwort {θi,1 , . . . , θi,ki } ist, gilt also Φ ∪ E ` ψθi,1 ∨ · · · ∨ ψθi,ki . Also erfüllt I diese Disjunktion und damit natürlich erst recht ψθ1,1 ∨ · · · ∨ ψθn,kn . 2 Beispiel 6.1.31: In dem Beispiel betrifft dies gerade die potentiellen Antworten hX / bi und hX / ci mit den Begründungen {¬p(b)} und {¬p(c)}: Die erste Begründung überdeckt E1 und die zweite E2 , daher ist die disjunktive Antwort {hX / bi, hX / ci} bezüglich der minimale Modelle“-Semantik korrekt. 2 ” Natürlich müssen bei der Anwendung dieses Lemmas nicht immer disjunktive Antworten entstehen: Es ist ja auch möglich, daß man verschiedene Begründungen für dieselbe Antwort hat. Trotzdem ist festzuhalten, daß die Erzeugung der Antworten jetzt nicht mehr nur in einer einfachen Auswahl der vorher berechneten potentiellen Antworten besteht, vielmehr müssen potentielle Antworten kombiniert werden. Daher ist natürlich besonders wichtig, sich die Vollständigkeit dieser Vorgehensweise klar zu machen: Lemma 6.1.32: Sei {θ1 , . . . , θk } eine bezüglich min ∆ korrekte Antwort. Dann gibt es D1 , . . . , Dn ⊆ ∆∗ , so daß {θ1 , . . . , θk } eine potentielle Antwort mit Begründung Di ist (i = 1, . . . , n). 6.1. BOTTOM-UP 145 Beweis: Da {θ1 , . . . , θk } eine korrekte Antwort ist, gilt ψθ1 ∨ · · · ∨ ψθk in jedem minimalen Modell. Nach Satz 5.2.15 ist jedes Modell einer maximalen Extension E minimal, also gilt Φ ∪ E ` ψθ1 ∨ · · · ∨ ψθk . Da die zugrundeliegende Signatur endlich ist, gibt es nur endlich viele maximale Extensionen E1 , . . . , En . Diese kann man nun selbst als Begründungen D1 , . . . , Dn verwenden. 2 Natürlich hat man in der ersten Phase der Anfragebeantwortung nur die minimalen Paare von potentieller Antwort und Begründung berechnet, aber dies ist offensichtlich ausreichend: Man interessiert sich ja nur für minimale Antworten und nicht-minimale Begründungen überdecken höchstens weniger Extensionen. Man muß jetzt also überprüfen, ob eine Menge von Begründungen D1 , . . . , Dn alle maximalen Extensionen überdeckt. Dazu ist es nützlich, das Komplement der überdeckten Extensionen mit Hilfe widersprechender Begründungen zu repräsentieren: Definition 6.1.33 (Vollständige Menge widersprechender Begründungen): Seien D1 , . . . , Dn und D̂1 , . . . , D̂m Mengen von Default-Ausprägungen. {D̂1 , . . . , D̂m } heißt vollständige Menge widersprechender Begründungen zu {D1 , . . . , Dn } genau dann, wenn • |D1 | ∪ · · · ∪ |Dn | ∩ |D̂1 | ∪ · · · ∪ |D̂m | = ∅, • Φ ∪ D̂i ist konsistent für i = 1, . . . , m, • für jede maximale Extension E mit E 6∈ |D1 | ∪ · · · ∪ |Dn | gilt E ∈ |D̂1 | ∪ · · · ∪ |D̂m |. Für einzelne Begründungen Di bilden die nach Lemma 6.1.28 berechneten widersprechenden Begründungen natürlich eine vollständige Menge. Was noch fehlt, ist eine Möglichkeit, solche vollständigen Mengen widersprechender Begründungen zusammensetzen zu können, also den Schnitt der von ihnen überdeckten Extensionen auszurechnen: Lemma 6.1.34: Seien D1 , . . . , Dn Mengen von Default-Ausprägungen und seien {D̂i,1 , . . . , D̂i,mi } (i = 1, . . . , n) vollständige Mengen widersprechender Begründungen zu {Di }. Dann ist {D̂1,j1 ∪ · · · ∪ D̂n,jn | es gibt keinen Konflikt Ω mit Ω ⊆ D̂1,j1 ∪ · · · ∪ D̂n,jn } eine vollständige Menge widersprechender Begründungen zu {D1 , . . . , Dn }. Beweis: • Offensichtlich gilt |D̂1,j1 ∪ · · · ∪ D̂n,jn | = |D̂1,j1 | ∩ · · · ∩ |D̂n,jn |. Daher werden nur solche Extensionen überdeckt, die von keinem Di überdeckt werden. • Φ ∪ D̂1,j1 ∪ · · · ∪ D̂n,jn ist konsistent, denn sonst wäre eine minimale Teilmenge ein Konflikt. • Sei E eine maximale Extension von Φ mit E 6∈ |D1 |∪· · ·∪|Dn |, d.h. E 6∈ |Di | (i = 1, . . . , n). Also ist E ∈ |D̂i,1 | ∪ · · · ∪ |D̂i,mi |, sei etwa E ∈ |D̂i,ji | (i = 1, . . . , n). Dann gilt natürlich 2 E ∈ |D̂1,j1 ∪ · · · ∪ D̂n,jn |. 146 KAPITEL 6. BERECHNUNG VON ANTWORTEN Damit wäre also folgender Algorithmus korrekt und vollständig, aber sehr aufwendig: In der ersten Phase der Anfragebeantwortung wurden die potentiellen Antworten {θi,1 , . . . , θi,ki } mit ihren Begründungen Di berechnet, und auch die Konflikte Ωj . Nach der Methode von Lemma 6.1.28 kann man nun zu jeder Begründung Di eine vollständige Menge widersprechender Begründungen berechnen. Nach Lemma 6.1.34 kann man für jede Teilmenge der potentiellen Antworten die vollständigen Mengen widersprechender Begründungen zusammensetzen. Nach Lemma 6.1.30 und Lemma 6.1.32 sind gerade die zusammengesetzten Antworten korrekt, deren vollständige Menge widersprechender Begründungen leer ist. Dieser Algorithmus ist aber bei einer größeren Menge potentieller Antworten nicht praktisch durchführbar, weil exponentiell viele Teilmengen betrachtet werden müssen. Man möchte natürlich nur solche potentiellen Antworten zusammensetzten, die etwas zu dem Ziel beitragen, alle Extensionen zu überdecken. Hier hilft das folgende Lemma: Lemma 6.1.35: Seien {D̂i,1 , . . . , D̂i,mi } (i = 1, . . . , n) vollständige Mengen widersprechender Begründungen zu Di mit |D̂1,1 | ∪ · · · ∪ |D̂1,m1 | ∩ · · · ∩ |D̂n,1 | ∪ · · · ∪ |D̂n,mn | = ∅. Sei n > 1 und Di nötig in dem Sinn, daß sonst der entsprechende Schnitt nicht leer wäre. Dann gibt es ein i0 = 6 i sowie j und j 0 und einen Konflikt Ω mit Ω ∩ D̂i,j 6= ∅ und Ω ∩ D̂i0 ,j 0 6= ∅. Beweis: Wenn man |D̂1,1 | ∪ · · · ∪ |D̂1,m1 | ∩ · · · ∩ |D̂n,1 | ∪ · · · ∪ |D̂n,mn | (∗) ausmultipliziert, erhält man eine Vereinigung von Schnitten, von der jeder einzelne leer sein muß, d.h. für jede Auswahl von j1 , . . . , jn gilt: |D̂1,j1 | ∩ · · · ∩ |D̂n,jn | = ∅. Andererseits ist (∗) ohne |D̂i,1 | ∪ · · · ∪ |D̂i,mi | nicht leer, man kann also j1 , . . . , jn so wählen, daß |D̂1,j1 | ∩ · · · ∩ |D̂i−1,ji−1 | ∩ |D̂i+1,ji+1 | ∩ · · · ∩ |D̂n,jn | 6= ∅. Also ist Φ∪ D̂1,j1 ∪· · ·∪ D̂n,jn inkonsistent und es gibt einen Konflikt Ω mit Ω ⊆ D̂1,j1 ∪· · ·∪ D̂n,jn . Andererseits ist Φ ∪ D̂1,j1 ∪ · · · ∪ D̂i−1,ji−1 ∪ D̂i+1,ji+1 ∪ · · · ∪ D̂n,jn konsistent, Ω kann also keine Teilmenge hiervon sein, d.h. Ω ∩ D̂i,ji 6= ∅. Es ist aber natürlich auch Φ ∪ D̂i,ji konsistent, also Ω 6⊆ D̂i,ji , es muß daher ein i0 6= i geben mit Ω ∩ D̂i0 ,ji0 6= ∅. 2 Damit ist die Behauptung für j := ji und j 0 := ji0 gezeigt. Dies führt zu folgendem Algorithmus: Man berechne wieder die potentiellen Antworten {θi,1 , . . . , θi,ki } und jeweils eine vollständige Menge widersprechender Begründungen {D̂i,1 , . . . , D̂i,mi }. Falls ein mi = 0 ist, kann man die Antwort {θi,1 , . . . , θi,ki } ausgeben und sie von den noch zu überprüfenden Antworten streichen. Sonst setzt man jeweils zwei potentielle Antworten {θi,1 , . . . , θi,ki } und {θi0 ,1 , . . . , θi0 ,ki0 } zusammen, für die es j, j 0 und einen Konflikt Ω mit Ω ∩ D̂i,j 6= ∅ und Ω ∩ D̂i0 ,j 0 6= ∅ gibt. Diese Zusammensetzung liefert 6.1. BOTTOM-UP 147 die potentielle Antwort {θi,1 , . . . , θi,ki , θi0 ,1 , . . . , θi0 ,ki0 }. Die zugehörige vollständige Menge widersprechender Begründungen ist entsprechend Lemma 6.1.34: D̂i,ν ∪ D̂i0 ,ν 0 es gibt keinen Konflikt Ω0 mit Ω0 ⊆ D̂i,ν ∪ D̂i0 ,ν 0 . Falls die Menge leer ist, kann man die Antwort ausgeben und braucht sie nicht weiter zu berücksichtigen. Man iteriert diese paarweise Zusammensetzung, bis sich nichts mehr ändert. Beispiel 6.1.36: Im laufenden Beispiel sind die Mengen widersprechender Begründungen zu {¬p(d)} und {¬p(e)} leer, die Antworten hX / di und hX / ei können also sofort ausgegeben werden. Dagegen hat {¬p(b)} die widersprechende Begründung {¬p(c)} und umgekehrt. Weil die beiden widersprechenden Begründungen sich mit dem Konflikt {¬p(b), ¬p(c)} überlappen, werden sie zusammengesetzt, das Ergebnis enthält aber gerade diesen Konflikt, so daß es gelöscht wird. Das bedeutet, daß die Antwort {hX/ bi, hX/ ci} keine widersprechender Begründungen hat, und ausgegeben werden kann. Damit ist die Menge der noch zu überprüfenden potentiellen Antworten leer, die Iteration endet also schon nach dem ersten Schritt. 2 Beispiel 6.1.37: Es soll jetzt noch ein etwas komplizierteres Beispiel betrachtet werden. Die Defaults seien ∆ := {p1 , . . . , p4 , q1 , . . . , q5 }. Als Axiome seien nun einerseits solche gegeben, die eine Begründung für die Antwort ja“ ” auf die Anfrage r liefern: r ← p1 , r ← p 2 ∧ p3 , r ← p 4 . Andererseits seien Axiome gegeben, die gerade den Konflikten entsprechen: ¬p1 ∨ ¬q1 , ¬p1 ∨ ¬q2 ∨ ¬q3 , ¬p2 ∨ ¬q4 , ¬p4 ∨ ¬q4 , ¬q1 ∨ ¬q4 ∨ ¬q5 , ¬q3 ∨ ¬q5 . Es gibt also folgende Begründungen und widersprechende Begründungen: θ D D̂ ja“ {p1 } {q1 }, {q2 , q3 } ” ja“ {p2 , p3 } {q4 } ” ja“ {p4 } {q5 } ” Im ersten Iterationsschritt läßt sich nun jede Zeile mit jeder anderen zusammensetzen und man erhält: θ D D̂ ja“ {p1 }, {p2 , p3 } {q1 , q4 }, {q2 , q3 , q4 } ” ja“ {p1 }, {p4 } {q1 , q5 }, [{q2 , q3 , q5 }] ” ja“ {p2 , p3 }, {p4 } {q4 , p5 } ” Die in eckigen Klammern angegebene Menge von Defaults enthält einen Konflikt und wird gelöscht. Im zweiten Iterationsschritt ergibt sich: θ D D̂ ja“ {p1 }, {p2 , p3 }, {p4 } [{q1 , q4 , q5 }], [{q1 , q2 , q3 , q4 , q5 }] ” 148 KAPITEL 6. BERECHNUNG VON ANTWORTEN Da es keine widersprechenden Begründungen mehr gibt, ist die Antwort ja“ korrekt. 2 ” Natürlich kann dieser Algorithmus noch weiter optimiert werden: • Bei dem Test, ob es sich lohnt, zwei potentielle Antworten zu kombinieren, brauchen nur solche Konflikte berücksichtigt zu werden, deren Defaults auch in mindestens einer widersprechenden Begründung vorkommen. Dies reduziert die Anzahl der Paare von potentiellen Antworten, die betrachtet werden müssen. • Zwei widersprechende Begründungen D̂1,j1 und D̂2,j2 , deren potentielle Antworten zusammengesetzt werden, sollten sich nicht nur mit demselben Konflikt Ω überlappen, sondern mit disjunkten Anteilen dieses Konfliktes. Man kann also forden, daß D̂1,j1 ∩ (Ω − D̂2,j2 ) 6= ∅ und (Ω − D̂1,j1 ) ∩ D̂1,j1 6= ∅. • Häufig werden die n-elementigen Teilmengen auf verschiedenen Wegen durch ZweierKombinationen aufgebaut (wie im obigen Beispiel). Dies kann man allerdings nur dann reduzieren, wenn man schon weiß, daß die kleineren Teilmengen keine korrekten Antworten produzieren. Mengenorientierte Implementierung Nun ist zu demonstrieren, daß auch die zweite Phase der Anfragebeantwortung mengenorientiert implementiert werden kann. Die erste Phase lieferte die Menge Φ̂ in der Relation DIS FACTS . Hieraus sind nun die Antwortklauseln und die Konflikte zu extrahieren. Wählt man die Prädikatbezeichner so, daß alle answer -Literale vor allen default δ -Literalen kommen (und natürlich nach allen anderen Literalen), so ist folgende Selektion möglich: POT ANS := πid σactive=’T ’∧pred=’answer ’ (DIS FACTS ) 1 DIS FACTS , CONFLICT := πid σactive=’T ’∧pred like ’default%’ (DIS FACTS ) 1 DIS FACTS . Würde man die Disjunktionen physisch zusammen abspeichern, so wären die Verbunde natürlich sehr effizient auszuführen. In Beispiel 6.1.11 erhielte man folgende Menge potentieller Antworten: POT ANS id 10 10 11 11 12 13 13 pred arg1 active lit length answer b T answer (b) 2 default b F ¬default(b) 2 answer c T answer (c) 2 default c F ¬default(c) 2 answer d T answer (d) 1 answer e T answer (e) 2 default e F ¬default(e) 2 6.1. BOTTOM-UP 149 Die beiden Konflikte sind in folgender Tabelle dargestellt: CONFLICT id 14 15 15 pred arg1 active lit length default a T ¬default(a) 1 default b T ¬default(b) 2 default c F ¬default(c) 2 Beim leichtgläubigen Ansatz sind alle potentiellen Antworten korrekt: ANSWER := σpred =’answer ’ (POT ANS ). Natürlich müßte man jetzt noch gegebenenfalls nicht-minimale Antworten löschen (mit der oben für Disjunktionen gezeigten Methode). Beim vorsichtigen Ansatz hat man nur zu testen, ob sich die Begründung mit einem Konflikt überlappt: OVERLAP := πans id,con id πid:ans id,lit (POT ANS ) 1 πid:con id,lit (CONFLICT ) , ANSWER := σpred=’answer ’ POT ANS − POT ANS 1 πans id:id (OVERLAP ) . Mit dem Verbund über lit wird die Überlappung festgestellt: OVERLAP ans id con id 10 15 11 15 Der Rest dient dann nur noch dazu, die übrigen Antworten in das gewünschte Format zu bringen. Etwas mühsamer ist nun der skeptische Ansatz. Zunächst muß man die widersprechenden Begründungen für jede potentielle Antwort berechnen: CONTRA := OVERLAP 1 πid:con id,lit (CONFLICT ) − OVERLAP 1 πid:ans id,lit (POT ANS ) . CONTRA ans id con id lit 10 15 ¬default(c) 11 15 ¬default(b) Außerdem initialisiert man noch ANSWER mit der leeren Menge, dann beginnt die Iteration. Zunächst kann man die Antworten ausgeben, die keine widersprechende Begründungen (mehr) haben: ANSWER := ANSWER ∪ σpred=’answer ’ POT ANS − POT ANS 1 πans id:id (CONTRA) . An dieser Stelle kann man aus POT ANS und CONTRA auch alle potentiellen Antworten löschen, die höchstens eine Obermenge einer korrekten Antwort liefern könnten. Damit 150 KAPITEL 6. BERECHNUNG VON ANTWORTEN eliminiert man auch weitere Begründungen für bereits ausgegebene Antworten. Ein entsprechender Teilmengentest wurde oben schon vorgeführt. Nun stellt man fest, bei welchen potentiellen Antworten es sich lohnen könnte, sie zu kombinieren: COMB ANS := πans id:ans id 0 ,lit:lit 0 (CONTRA) 1 πlit:lit 0 ,id (CONFLICT ) 1 πlit:lit 00 ,id (CONFLICT ) 1 πans id:ans id 00 ,lit:lit 00 (CONTRA), 0 COMB ANS := σans id 0 <ans id 00 ∧lit 0 6=lit 00 (COMB ANS ), COMB ANS 00 := π’(’◦ans id 0 ◦’,’◦ans id 00 ◦’)’:ans id,ans id 0 ,ans id 00 (COMB ANS 0 ), POT ANS := πans id:id,pred,arg1,active,lit,length (POT ANS 1 0 COMB ANS 00 ) id=ans id 1 00 COMB ANS 00 ) . ∪ πans id:id,pred,arg1,active,lit,length (POT ANS id=ans id Im Beispiel liefert dies folgendes Ergebnis: POT ANS id pred arg1 active lit length (10, 11) answer b T answer (b) 2 (10, 11) answer c T answer (c) 2 Die Attribute pred und active sind jetzt überflüssig, length ist für die hier nicht gezeigten Teilmengentests nützlich (und müßte in den Anfragen natürlich auf den richtigen Wert gesetzt werden, was hier ebenfalls nicht gezeigt wird). Man muß jetzt natürlich noch die zugehörigen widersprechenden Begründungen aus” multiplizieren“: CONTRA0 := πans id:ans id 0 ,con id:con id 0 ,lit:lit 0 (CONTRA) 1 COMB ANS 1 πans id:ans id 00 ,con id:con id 00 ,lit:lit 00 (CONTRA), CONTRA1 := πans id,’(’◦con id 0 ◦’,’◦con id 00 ◦’)’:con id,lit 0 ,lit 00 (CONTRA0 ), CONTRA2 := πans id,con id,lit 0 :lit (CONTRA1 ) ∪ πans id,con id,lit 00 :lit (CONTRA1 ). Im Beispiel sieht das Ergebnis folgendermaßen aus: CONTRA2 ans id con id lit (10, 11) (15, 15) ¬default(b) (10, 11) (15, 15) ¬default(c) Hieraus entsteht die neue Tabelle CONTRA, indem diejenigen durch ans id und con id identifizierten Mengen von Defaults gelöscht werden, von denen eine Teilmenge als ein id -Abschnitt in CONFLICT vorkommt. Dies ist der oben gezeigten Eliminierung nichtminimaler Disjunktionen sehr ähnlich. Im Beispiel ist CONTRA anschließend leer, so daß die Antwort {hX/ bi, hX/ ci} ausgegeben wird. Das Verfahren terminiert dann, weil keine weiteren potentiellen Antworten mehr zu überprüfen sind. Ansonsten terminiert das Verfahren, sobald sich nichts mehr ändert, im schlimmsten Fall also alle potentiellen Antworten kombiniert worden sind. Da allerdings immer neue 6.2. TOP-DOWN 151 Identifikatoren für die zusammengesetzten potentiellen Antworten erzeugt werden, muß man die Duplikateliminierung explizit programmieren (etwa mit einer Tabelle, in der darüber Buch geführt wird, welche der ursprünglichen potentiellen Antworten in einer zusammengesetzten Antwort stecken). Bei einem NF2 -Datenbanksystem geschieht eine solche Duplikateliminierung natürlich automatisch, ist aber nicht weniger aufwendig. 6.2 Top-Down In diesem Abschnitt wird ein top-down“ Algorithmus zur Anfrage-Bearbeitung angege” ben, der also von der Anfrage ausgehend rekursiv Unteranfragen bearbeitet, die schließlich mit den Fakten direkt beantwortet werden können. Im Unterschied zum bottom-up“ ” Algorithmus wird hier zielgerichtet vorgegangen, dafür kann dieselbe Unteranfrage aber mehrfach auftreten und die Vorteile einer mengenorientierten Arbeitsweise werden nicht genutzt. Die aus der logischen Programmierung bekannte SLDNF-Resolution [Llo87] ist ein top-down“ Algorithmus für Hornklauseln mit Negations-Defaults. Ziel ist es hier, ” einen ähnlichen Algorithmus für beliebige Klauseln und Defaults zu entwickeln. Der hier vorgeschlagene Algorithmus hat gewisse Ähnlichkeiten zu den Algorithmen aus [Prz89, Gin89, BG89]. Alle diese Algorithmen prüfen allerdings die Anwendbarkeit der Defaults in einer eigenen zweiten Phase, während der hier angegebene Algorithmus dies so früh wie möglich tut (verzahnt mit der Berechnung der Antworten). Dies ist einerseits ein Effizienzvorteil, andererseits aber auch nötig, um disjunktive Antworten zu berechnen: Da die Antworten von unterschiedlichen Extensionen abhängen, braucht man hier eine Rückkopplung von der Prüfung der Defaults zu dem eigentlichen Beweiser. Außerdem wird dadurch die Ähnlichkeit zur SLDNF-Resolution größer, die negative Literale ja auch sofort auswertet. Wie in der Einleitung erläutert wurde, ist es gerade diese Ähnlichkeit, die auf effiziente Implementierungen hoffen läßt. [Prz89, Gin89, BG89] basieren ihrerseits wieder auf [Rei80]: Hierher stammt die Idee, die Benutzung von Defaults in Beweisen zuzulassen, aber über die verwendeten Defaults Buch zu führen. OL-Resolution Auch in diesem Abschnitt wird so vorgegangen, daß ein aus der Literatur bekannter Beweiser um Defaults erweitert wird. Es wird hier die OL-Resolution [CL73] verwendet, aber man könnte auch eine ganze Reihe anderer Beweiser auf entsprechende Weise erweitern. Die OL-Resolution ist ein Widerlegungsbeweiser, d.h. sie versucht, aus Φ ∪ {¬ψ} die leere Klausel abzuleiten, also einen Widerspruch. Gelingt dies, so gilt Φ ` ∃(ψ) (der Existenzabschluß entfällt natürlich, wenn ψ keine Variablen enthält). Als linearer Resolventenbeweiser hat die OL-Resolution immer eine aktuelle Ziel” klausel“ ( center clause“), zu der sie ein Axiom als Seitenklausel“ ( side clause“) hinzu” ” ” nimmt, um die nächste Zielklausel abzuleiten. Die Zielklausel wird mit der Negation der 152 KAPITEL 6. BERECHNUNG VON ANTWORTEN Anfrage initialisiert und kann als Konkatenation der noch abzuarbeitenden Unteranfragen verstanden werden. Während die einzelne Ableitung von der Anfrage bis zur leeren Klausel also linear ist, gilt dies nicht für den Suchraum: Im allgemeinen können verschiedene Axiome als Seitenklausel verwendet werden, die nacheinander ausprobiert werden müssen (z.B. mit Backtracking“). ” Die wesentliche Struktur eines linearen Resolventenbeweisers ist also folgende: prove(Φ, ψ) :refute(Φ, ψ, ¬ψ). refute(Φ, ψ, Γ) :empty(Γ). refute(Φ, ψ, Γ) :ϕ ∈ Φ ∪ {¬ψ}, resolve(Γ, ϕ, Γ0 , θ), refute(Φ, ψ, Γ0 ). Es wird hier eine Art Prolog-Pseudocode verwendet, um die Algorithmen zu notieren, weil dadurch das Backtracking nicht explizit programmiert werden muß. Dieses Programm dient im folgenden als Grundlage für die Entwicklung des top” down“-Verfahrens zur Anfrage-Auswertung. Der eigentliche Ableitungsschritt ist dabei in der Prozedur resolve verborgen, die aus der Zielklausel Γ und der Seitenklausel ϕ die neue Zielklausel Γ0 ableitet (die dabei verwendete Substitution θ wird erst später benötigt). Die Prozedur resolve soll hier nur informell erklärt werden. Eine formale Definition findet sich in [CL73]. Tatsächlich gibt es verschiedene Arten von Ableitungsschritten, der wichtigste ist der Resolutionsschritt. Er besteht in der Anwendung der Axiome als Regeln, d.h. ist die aktuelle Zielklausel ← λ1 ∧ λ2 ∧ · · · ∧ λ n und gibt es ein Axiom der Form λ01 ← λ02 ∧ · · · ∧ λ0m , so daß λ1 θ = λ01 θ für eine Substitution θ gilt, so kann man zu folgender Zielklausel übergehen: ← λ02 θ ∧ · · · ∧ λ0m θ ∧ λ2 θ ∧ · · · ∧ λn θ. Eine Substitution θ mit dieser Eigenschaft heißt ein Vereinheitlicher ( unifier“) der beiden ” Klauseln. Es reicht aus, nur allgemeinste“ Vereinheitlicher zu betrachten, die keine ” unnötigen Variablenbindungen vornehmen. Die OL-Resolution ist sehr ähnlich zur SLD-Resolution [Llo87] von Prolog. Da es sich aber nicht um Hornklauseln handelt, kann ein Axiom auf verschiedene Arten als Regel gelesen werden, p ← q ∧ ¬r kann zum Beispiel auch in der Form r ← q ∧ ¬p angewendet 6.2. TOP-DOWN 153 werden, und sogar in der Form ¬q ← ¬p ∧ ¬r, denn natürlich kann auch die Zielklausel jetzt negative Literale enthalten. Eine Spezialität der OL-Resolution sind die sogenannten gerahmten Literale“ ( fra” ” med literals“) in der Zielklausel. Sie enthalten Steuerinformation, durch die man es vermeiden kann, frühere Zielklauseln aufbewahren zu müssen. Der Grundgedanke ist dabei, daß die früheren Zielklauseln in einem Suffix mit der aktuellen Zielklausel übereinstimmen, da immer nur vorne etwas geändert wird. Am interessantesten sind nun natürlich möglichst kurze frühere Zielklauseln, die bis auf das wegresolvierte Literal noch in der aktuellen Klausel enthalten sind. Dieses Literal bewahrt man nun in Form eines gerahmten Literals auf, d.h. bei dem obigen Resolventenschritt erhält man eigentlich folgende Zielklausel: ← λ02 θ ∧ · · · ∧ λ0m θ ∧ [λ1 θ] ∧ λ2 θ ∧ · · · ∧ λn θ. Natürlich gehören diese gerahmten Literale nicht zu dem logischen Inhalt der Zielklausel. Die gerahmten Literale werden in einem sogenannten Reduktions-Schritt verwendet. Dabei wird ein Resolutionsschritt mit derjenigen Zielklausel simuliert, bei der das gerahmte Literal eingeführt wurde. Enthält eine Zielklausel ← λ1 ∧ λ2 ∧ · · · ∧ λ n ein gerahmtes Literal [λi ], für das λ1 θ = ∼λi θ gilt (d.h. die beiden Literale stimmen bis auf das Vorzeichen überein), so kann man zu folgender Zielklausel übergehen: ← λ2 θ ∧ · · · ∧ λn θ. Die frühere Zielklausel war dann ja ← λi ∧ λi+1 ∧ · · · ∧ λn (oder eine noch allgemeinere Klausel, weil in der Zwischenzeit eventuell Substitutionen angewendet wurden). Würde man den Resolutionsschritt wirklich ausführen, so würden nur Literale hinzukommen, die in der Zielklausel ohnehin schon enthalten sind. Hierfür ist es wichtig, die Zielklausel bis auf die Anwendung der Substitutionen als Stack zu behandeln, also immer nur vorne etwas zu verändern. Kommt dabei ein gerahmtes Literal nach vorne, so wird es gelöscht (Kontraktionsschritt). Für alle in der Zielklausel enthaltenen gerahmten Literale ist der Rest der entsprechenden früheren Zielklausel also noch vollständig erhalten (er liegt ja unter dem gerahmten Literal im Stack). Schließlich besteht auch noch die Möglichkeit der Faktorbildung, bei der man zwei Literale der Zielklausel durch Anwendung einer Substitution verschmilzt. Zusätzlich eliminiert man natürlich immer doppelte Literale. Dabei muß man beachten, daß man das am weitesten rechts stehende Literal stehen läßt, so daß die Invariante bezüglich der gerahmten Literale erhalten bleibt. Auch bei den Seitenklauseln kann man eine Faktorbildung durchführen. Beispiel 6.2.1: Das folgende Beispiel ist ein beliebter Test für lineare Resolventenmethoden, weil es einen Resolutionsschritt mit einer früheren Zielklausel erfordert: Φ := {p ∨ ¬q, ¬p ∨ q, ¬p ∨ ¬q}, ψ = ¬p ∧ ¬q. 154 KAPITEL 6. BERECHNUNG VON ANTWORTEN Man kann etwa auf folgende Weise die leere Klausel ableiten: ← ¬p ∧ ¬q ← ¬q ∧ [¬p] ∧ ¬q ← [¬p] ∧ ¬q ← ¬q ← ¬p ∧ [¬q] ← q ∧ [¬p] ∧ [¬q] ← [¬p] ∧ [¬q] ← [¬q] 2 (Startklausel p ∨ q) (Resolutionsschritt mit ¬p ∨ q, d.h. ¬p ← ¬q) (Eliminierung doppelter Literale) (Kontraktionsschritt) (Resolutionsschritt mit p ∨ ¬q, d.h. ¬q ← ¬p) (Resolutionsschritt mit ¬p ∨ ¬q, d.h. ¬p ← q) (Reduktionsschritt) (Kontraktionsschritt) (Kontraktionsschritt) Die Kontraktionsschritte und die Eliminierung doppelter Literale werden in Zukunft nicht mehr explizit angegeben, denn sie sind ja auf jeden Fall auszuführen. 2 Es fehlen jetzt natürlich noch die auswertbaren Literale. Man braucht hier nur dafür zu sorgen, daß sie rechts von den zugehörigen bindenden Literalen stehen. Dann sind ihre Variablen gebunden, wenn sie an den Anfang der Zielklausel gekommen sind, so daß sie einfach ausgewertet werden können. Formal beweist man mit Induktion über der Länge der Ableitung, daß die Zielklausel eine sichere Klausel ist (Variablenvorkommen in gerahmten Literalen zählen dabei nicht als bindend). Terminierung Die OL-Resolution ist vollständig, d.h. wenn Φ ∪ {¬ψ} inkonsistent ist, dann gibt es eine Ableitung der leeren Klausel [CL73]. Dies ist aber wenig hilfreich, denn im Zusammenhang mit Defaults muß der Beweiser terminieren, damit man sicher sein kann, daß die Negation eines Defaults nicht ableitbar ist. Aus diesem Grund sind Folgerungen mit Defaults im allgemeinen nicht rekursiv aufzählbar (die Folgerungsrelation ist ja nur semi-entscheidbar). Um diese Schwierigkeiten zu vermeiden, wurden hier keine Funktionssymbole und nur endlich viele Konstanten erlaubt. Damit wird die Folgerungsrelation trivialerweise entscheidbar und bei der Hyperresolution traten auch tatsächlich keine Probleme auf. Bei der OL-Resolution ergeben sich die ersten Schwierigkeiten dagegen schon in der Aussagenlogik: Beispiel 6.2.2: Sei Φ := {p ← q, q ← p}, ψ := p. Dann ergibt sich folgende unendliche Ableitung: ←p ← q ∧ [p] ← p ∧ [q] ∧ [p] ... (Startklausel) (Resolutionsschritt mit p ← q) (Resolutionsschritt mit q ← p) (jetzt wieder Resolutionsschritt mit p ← q) Natürlich folgt p nicht aus Φ, aber um dies sicher feststellen zu können, müßte die Ableitung terminieren. 2 6.2. TOP-DOWN 155 Man könnte die Terminierung sicherstellen, indem man die früheren Zielklauseln aufbewahrt und bei einer gleichen Zielklausel diesen Zweig der Ableitung abbricht. Da es in der Aussagenlogik nur endlich viele Zielklauseln gibt, müssen die Ableitungen also endlich sein. Allerdings war ein Vorteil der OL-Resolution ja gerade, daß man frühere Zielklauseln nicht abspeichern mußte. Es geht tatsächlich auch wesentlich effizienter mit folgendem Trick: Ist das erste Literal der Zielklausel gleich einem ihrer gerahmten Literale, so kann man die Ableitung abbrechen. Dann ist nämlich die entsprechende frühere Zielklausel eine Teilklausel der aktuellen Klausel. Man muß sich nun natürlich noch davon überzeugen, daß die Terminierung hierdurch gewährleistet ist (in der Aussagenlogik). Dazu betrachtet man in einer unendlichen Ableitung das am weitesten links stehende Literal, das nie wegresolviert wird (so ein Literal muß es geben, sonst hätte man die leere Klausel). Vor diesem Literal müssen sich nun unendlich viele gerahmte Literale ansammeln, denn an der nächsten Position finden ja immer wieder Resolutionsschritte statt. Es gibt aber nur endlich viele gerahmte Literale, und keines kann doppelt hineinkommen, denn sonst hätte man die Ableitung abbrechen müssen. Wenn man den Fall der Aussagenlogik verläßt, kann man dieses Verfahren natürlich verallgemeinern, so daß es einem etwas abgeschwächten Test auf Subsumption“ ent” spricht. Eine Klausel Γ subsumiert eine Klausel Γ0 genau dann, wenn es eine Substitution θ gibt mit Γθ ⊆ Γ0 . Dann ist Γ also allgemeiner als Γ0 und man braucht Ableitungen mit Γ0 nicht mehr zu betrachten. Überraschenderweise kann aber auch ein voller Subsumptionstest die Terminierung nicht garantieren: Beispiel 6.2.3: Enthalte Φ Regeln zur Berechnung der transitiven Hülle: p(X, X 0 ) ← p(X, Y ) ∧ p(Y, X 0 ). p(X, X 0 ) ← q(X, X 0 ). Sei die Anfrage nun p(a, b). Es ergibt sich dann folgende Ableitung (ohne die gerahmten Literale, sie spielen für die Subsumption ja keine Rolle): ← p(a, b) ← p(a, Y1 ) ∧ p(Y1 , b) ← p(a, Y2 ) ∧ p(Y2 , Y1 ) ∧ p(Y1 , b) ... ← p(a, Yn ) ∧ p(Yn , Yn−1 ) ∧ p(Yn−1 , Yn−2 ) ∧ · · · ∧ p(Y1 , b) ... Von diesen Klauseln subsumiert keine eine andere. Man braucht dazu nur ein Modell betrachten, das aus einem Pfad der Länge n von a nach b besteht: In diesem Beispiel ist die Klausel mit n − 1 Variablen falsch, während alle anderen wahr sind. 156 KAPITEL 6. BERECHNUNG VON ANTWORTEN Interessant ist auch folgende Variante: p(a, X) ← p(a, Y ) ∧ p(Y, X). Während man im obigen Beispiel noch die beiden Regeln hätte abwechselnd benutzen können, erzwingt diese Formulierung, daß man erst eine Zielklausel der passenden Länge aufbaut. 2 Eine direkte Lösung des Problems ist, die Anzahl der in der Zielklausel vorkommenden Variablen auf die Anzahl der Konstanten zu begrenzen. Allerdings darf man die Ableitung nicht einfach abbrechen, wenn diese Grenze überschritten ist, sondern muß je zwei Variablen identifizieren. Außerdem braucht man natürlich den Subsumptionstest. Eine andere Lösung ist, die Anzahl der vorkommenden Literale zu begrenzen (auf die Anzahl aller Grundliterale). Hier übernimmt die ohnehin nötige Faktorisierung die Identifikation der Variablen, man kann die Ableitung also abbrechen, wenn die Grenze überschritten ist (allerdings ist diese Grenze wesentlich größer als die andere). Statt des Subsumptionstests genügt es hier, zu überprüfen, ob die Zielklausel zwei gleiche gerahmte Literale enthält. Beide Vorschläge sind natürlich sehr ineffizient. Es ist daher wohl das beste, die kritischen Klauseln einfach zu verbieten, d.h. zur Compilezeit“ eine Analyse der Klauseln ” durchzuführen. Dies wird natürlich im allgemeinen nur ein hinreichendes Kriterium sein. Die transitive Hülle müßte man dann so aufschreiben, wie es in Prolog üblich ist: p(X, X 0 ) ← q(X, X 0 ). p(X, X 0 ) ← q(X, Y ) ∧ p(Y, X 0 ). Allgemein darf bei einem rekursiven Aufruf eines Prädikates die Gesamtzahl der vorkommenden Variablen nicht größer werden. Beispiel 6.2.4: Solange nur die Anzahl der vorkommenden Variablen beschränkt ist, reicht der Test, ob das erste Literal noch einmal gerahmt vorkommt, nicht aus. Hat man etwa die Klausel p(a) ← p(X), so erhält man folgende unendliche Ableitung: ← p(X) ← p(X) ∧ [p(a)] ← p(X) ∧ [p(a)] ∧ [p(a)] ... Man kann sich hier helfen, indem man die Ableitung abbricht, sobald dasselbe gerahmte Literal zweimal vorkommt. Während der erste Test die Ableitung nur abbricht, wenn eine frühere Zielklausel die aktuelle subsumiert, gilt dies nicht für dieses Verfahren: ← p(a, X) (Startklausel) ← p(Y, b) ∧ q ∧ [p(a, b)] (Resolution mit p(a, b) ← p(Y, b) ∧ q) ← r ∧ [p(a, b)] ∧ q ∧ [p(a, b)] (Resolution mit p(a, b) ← r) An dieser Stelle bricht man die Ableitung ab, obwohl keine der drei Zielklauseln eine andere subsumiert. Trotzdem bleibt das Verfahren vollständig: Der Grundgedanke ist, daß man an der Stelle, wo das weiter rechts stehende gerahmte Literal eingeführt wurde, 6.2. TOP-DOWN 157 auch gleich hätte die Seitenklausel anwenden können, die zu dem weiter links stehenden Literal geführt hat (und anschließend gegebenenfalls die weiteren Ableitungsschritte wiederholen). Die so konstruierte Klausel subsumiert dann die aktuelle Zielklausel. Dieser Test und eine Beschränkung der Anzahl der vorkommenden Variablen garantieren die Terminierung der Anfrageauswertung: Wie oben erläutert, müßten sich in einer unendlichen Ableitung immer mehr gerahmte Literale ansammeln. Aufgrund der Bereichsbeschränkung müssen die in gerahmten Literalen vorkommenden Variablen auch in echten Literalen vorkommen, daher ist ihre Anzahl beschränkt. Also muß dasselbe gerahmte Literal doppelt vorkommen. 2 Zum Abschluß dieses Abschnittes bleibt festzuhalten, daß beim top-down“-Ansatz Ein” schränkungen der zulässigen Axiome und Defaults nötig sind, wenn man die Terminierung ohne allzu großen Aufwand garantieren will. Das Ziel ist dabei eine Beschränkung der Anzahl der vorkommenden Variablen. Übrigens ist dieses Problem unabhängig von der Erweiterung auf allgemeine Klauseln, in Beispiel 6.2.3 handelte es sich ja um eine Hornklauselmenge. Die beim bottom-up“ Verfahren hilfreiche Bereichsbeschränkung ist beim ” top-down“ Ansatz dagegen von eher untergeordneter Bedeutung. ” Eine andere Lösung dieses Problems ist es, bottom-up“ Elemente in den top-down“” ” Beweiser einzubauen ( logic programming with memoing“, siehe etwa [Bry90]). ” Berechnung von logisch korrekten Antworten Mit der OL-Resolution kann man also die leere Klausel ableiten, falls Φ∪{¬ψ} inkonsistent ist. Damit ist dann Φ ` ∃(ψ) gezeigt, d.h. die Existenz einer logisch korrekten Antwort. Die Antwortsubstitution selbst erhält man nun wie bei der SLD-Resolution, indem man über die Substitutionen für die Antwortvariablen Buch führt. Der Grundgedanke ist dabei folgender: Wenn die Variablen von ψ im Laufe des Beweises durch Konstanten gemäß einer Substitution θ ersetzt wurden, dann kann man denselben Beweis ausgehend von ¬ψθ durchführen. Damit erhält man dann Φ ` ψθ (aufgrund der Bereichsbeschränkung werden alle Variablen im Laufe des Beweises durch Konstanten ersetzt). Im Unterschied zur SLD-Resolution kann hier die Anfrage aber mehrfach in der Ableitung verwendet werden, das liefert dann gerade die disjunktiven Antworten. Wenn man aus Φ ∪ {¬ψθ1 , . . . , ¬ψθk } die leere Klausel ableiten kann, so ist diese Menge inkonsistent und es gilt Φ ` ¬ψθ1 ∨ · · · ∨ ¬ψθk . Allerdings wird die Buchführung über die Substitutionen jetzt natürlich etwas mühsamer. Ein hübscher Implementierungstrick hierfür wurde in [Gre69] vorgeschlagen: Man hängt ein Literal answer (X1 , . . . , Xn ) an die Anfrage an, mit einem neuen Prädikat answer und den Antwortvariablen X1 , . . . , Xn . In diesen Literalen sammeln sich dann die Substitutionen für X1 , . . . , Xn an, ansonsten werden sie bei der Ableitung ignoriert (insbesondere wird eine Klausel, die nur noch aus solchen Literalen besteht, wie die leere Klausel behandelt). 158 KAPITEL 6. BERECHNUNG VON ANTWORTEN Daher muß man die Beweisprozedur so erweitern, daß sie die schließlich erreichte leere“ Klausel in einem Rückgabeparameter“ A liefert. Diese Klausel entspricht dann ” ” der berechneten disjunktiven Antwort: prove(Φ, ψ, A) :refute(Φ, ψ, ¬ψ, A). refute(Φ, ψ, Γ, A) :empty(Γ), A = Γ. refute(Φ, ψ, Γ, A) :ϕ ∈ Φ ∪ {¬ψ}, resolve(Γ, ϕ, Γ0 , ), refute(Φ, ψ, Γ0 , A). Beispiel 6.2.5: Sei etwa Φ := {p(a) ∨ p(b)}. Hat man nun die Anfrage p(X), erhält man folgende Ableitung: ← p(X) ∧ answer (X) ← ¬p(b) ∧ [p(a)] ∧ answer (a) ← answer (b) ∧ [¬p(b)] ∧ [p(a)] ∧ answer (a) ← answer (b) ∧ answer (a) (Startklausel) (Resolution mit p(a) ← ¬p(b)) (Resolution mit ¬p(X) ← answer (X)) (Antwortklausel) Hieraus erhält man nun direkt die disjunktive Antwort {hX / ai, hX / bi}. 2 Dies entspricht natürlich im wesentlichen der Normalisierung answer (X1 , . . . , Xn ) ← ψ, die bei der bottom-up“-Methode vorgenommen wurde. Tatsächlich kann man es bei ” beiden Verfahren entweder als Buchführungs-Mechanismus verstehen, oder als echte Normalisierung mit logischem Inhalt. Die Buchführung über die verwendeten Default-Ausprägungen geschieht hier anders (s.u.), so daß eine Normalisierung nach Kapitel 2 nur dann nötig ist, wenn die Defaults keine Klauseln sind. Bei den Axiomen wird natürlich auch vorausgesetzt, daß sie in die Klauseldarstellung gebracht wurden. Ein leichtgläubiger Beweiser Nachdem jetzt also logisch korrekte Antworten berechnet werden können, sollen auch Defaults in dem Beweis benutzt werden. Am einfachsten ist zunächst die leichtgläubige“ ” Default-Semantik, die später auch als Unterprogramm benötigt wird. Zunächst seien hier wieder Prioritäten ausgeschlossen, die für die Verwendung von Prioritäten notwendigen Erweiterungen können jedoch auf die eine einzige Prozedur (extend) beschränkt werden, wie unten erläutert wird. 6.2. TOP-DOWN 159 Die Grundidee ist nun, einfach die Verwendung der Defaults in dem Beweis zuzulassen, sie also im wesentlichen wie Axiome zu behandeln. Der leichtgläubige Beweiser ist ja auch nichts anderes als ein logischer Beweiser, angewendet auf Φ ∪ E für eine maximale Extension E. Da man E nicht kennt, erlaubt man zunächst einfach die Verwendung beliebiger Default-Ausprägungen δ ∈ ∆∗ , aber überprüft jeweils, ob δ zusammen mit den bisher im Beweis verwendeten Defaults D noch zu einer maximalen Extension erweitert werden kann. Solange keine Prioritäten zwischen den Defaults existieren, ist dies genau dann der Fall, wenn Φ ∪ D ∪ {δ} konsistent ist, d.h. Φ ∪ D 6` ¬δ. An dieser Stelle kann der oben eingeführte logische Beweiser verwendet werden. Um die Berücksichtigung von Prioritäten vorzubereiten, wird der Test in eine eigene Prozedur extend verlagert: extend(Φ, D, δ, D 0 ) :not prove(Φ ∪ D, ¬δ, A), D0 = D ∪ {δ}. Der leichtgläubige Beweiser entsteht nun aus dem bereits bekannten logischen Beweiser durch Hinzufügung einer Regel, die Resolutionsschritte mit Defaults beschreibt. Außerdem wird noch ein Eingabeparameter D für die bisher verwendeten Defaults benötigt, sowie der Ausgabeparameter D für die insgesamt verwendeten Defaults: proveCred(Φ, ψ, A, D) :refuteCred(Φ, ψ, ¬ψ, ∅, A, D). refuteCred(Φ, ψ, Γ, D, A, D) :empty(Γ), A = Γ, D = D. refuteCred(Φ, ψ, Γ, D, A, D) :ϕ ∈ Φ ∪ {¬ψ} ∪ D, resolve(Γ, ϕ, Γ0 , ), refuteCred(Φ, ψ, Γ0 , D, A, D). refuteCred(Φ, ψ, Γ, D, A, D) :δ ∈ ∆, resolve(Γ, δ, Γ0 , θ), ground(δθ, δθθ 0 ), extend(Φ, D, δθθ 0 , D0 ), refuteCred(Φ, ψ, Γ0 θ0 , D0 , A, D). Die von diesem Programm konstruierte partielle Extension D ist gerade eine Begründung im Sinne von Definition 6.1.12: Mit Hilfe dieser Default-Ausprägungen und den durch A gegebenen Grundbeispielen der Anfrage wurde die leere Klausel abgeleitet. Die Konsistenz von Φ ∪ D stellt die Prozedur extend sicher. 160 KAPITEL 6. BERECHNUNG VON ANTWORTEN Eine Feinheit bei dem Programm ist noch, daß die Grundbeispiel-Bildung für die Default-Regel δ hier erst nach dem Resolventenschritt vorgenommen wird. Im Normalfall bindet schon die vereinheitlichende Substitution θ alle Variablen des Defaults, insbesondere gilt dies aufgrund der Bereichsbeschränkung für die klassischen Negations-Defaults (wenn man die Literale entsprechend anordnet). Falls aber δθ noch Variablen enthält, so muß man alle Grundbeispiele δθθ 0 durchprobieren. Dies entspricht dem floundering“ bei ” der SLDNF-Resolution [Llo87]. Ein Beispiel für dieses Problem ist: Beispiel 6.2.6: Sei Φ := {vogel (tweety)} und ∆ := {kann fliegen(X) ← vogel (X)}. Stellt man nun die Anfrage kann fliegen(X), so ist nur der Default anwendbar, aber seine Variable wird bei dem Resolventenschritt nicht gebunden, daher kann seine Anwendbarkeit nicht geprüft werden (manche Ausprägungen sind anwendbar, andere nicht). Die offensichtliche Lösung ist, diese Überprüfung noch zu verschieben, bis X gebunden ist (durch die Resolution mit vogel (tweety)). Dieses Verschieben kann etwa geschehen, indem man den Default durch das Axiom kann fliegen(X) ← vogel (X) ∧ default(X) ersetzt, zusammen mit dem neuen Default default(X) (entsprechend der Normalformbildung). 2 Ein vorsichtiger Beweiser Bei der vorsichtigen CWA können bekanntlich gerade die Defaults δ angenommen werden, die in allen maximalen Extensionen enthalten sind. Das ist natürlich äquivalent dazu, daß es keine maximale Extension E mit δ 6∈ E gibt. Für jede solche Extension müßte aber aufgrund der Maximalität schon Φ ∪ E ` ¬δ gelten, sonst könnte man δ ja zu E hinzunehmen. Daher kann der vorsichtige Beweiser genau diejenigen Defaults δ annehmen, für die ¬δ nicht mit dem obigen leichtgläubigen Beweiser abgeleitet werden kann. Der leichtgläubige Beweiser berechnet hier gerade die widersprechenden Begründungen. proveCaref(Φ, ψ, A) :refuteCaref(Φ, ψ, ¬ψ, A). refuteCaref(Φ, ψ, Γ, A) :empty(Γ), A = Γ. refuteCaref(Φ, ψ, Γ, A) :ϕ ∈ Φ ∪ {¬ψ}, resolve(Γ, ϕ, Γ0 , ), refuteCaref(Φ, ψ, Γ0 , A). refuteCaref(Φ, ψ, Γ, A) :δ ∈ ∆, resolve(Γ, δ, Γ0 , θ), ground(δθ, δθθ 0 ), not proveCred(Φ, ¬(δθθ 0 ), , ), refuteCaref(Φ, ψ, Γ0 θ0 , A). 6.2. TOP-DOWN 161 Da beim vorsichtigen Ansatz die Defaults unabhängig von einander angenommen werden können, ist nicht wie beim leichtgläubigen Beweiser eine Buchführung über die bisher angenommenen Defaults nötig. Sie könnte allerdings helfen, Doppelarbeit zu vermeiden. Ein skeptischer Beweiser Bei der skeptischen oder minimale Modelle“-Semantik ist es nicht mehr möglich, einen ” Default einfach anzunehmen oder zurückzuweisen. Es ist zu zeigen, daß die Anfrage aus allen maximalen Extensionen folgt, aber in den verschiedenen Extensionen können verschiedene Defaults zum Beweis verwendet werden. Es ist also eine Fallunterscheidung nötig, wobei das Ziel ist, sowenig Fälle wie möglich betrachten zu müssen, und insbesondere nicht jede einzelne Extension. Der aktuelle Zustand in dieser Fallunterscheidung sind die bisher angenommenen Defaults D, also eine partielle Extension. Zu zeigen ist, daß die Anfrage in allen von D überdeckten Extensionen gilt, also in allen Extensionen E mit D ⊆ E. Wenn nun eine Default-Ausprägung δ in dem Beweis angenommen werden soll, wird versucht, ¬δ mit dem leichtgläubigen Beweiser herzuleiten. Der leichtgläubige Beweiser wird dabei mit D gestartet, da er nur im aktuell betrachteten Bereich |D| nach maximalen Extensionen suchen soll, die δ nicht enthalten. Falls es solche Extensionen gibt, liefert der leichtgläubige Beweiser in dem Rückgabe-Parameter D eine Begründung für ¬δ. Man läßt den leichtgläubigen Beweiser jetzt backtracken, um alle solchen Begründungen zu erhalten. Die Menge {D1 , . . . , Dk } bildet eine vollständige Menge widersprechender ” Begründungen“ (relativ zu D). Im einzelnen hat sie folgende Eigenschaften: • D ⊆ Di für i = 1, . . . , k, • für jedes Di gibt es eine maximale Extension Ei mit Di ⊆ Ei , • Φ ∪ Di ` ¬δ, • für jede maximale Extension E mit D ⊆ E und Φ ∪ E ` ¬δ gibt es Di mit Di ⊆ E. Betrachtet man die Menge der überdeckten Extensionen, so ergibt sich folgendes Bild: ' ' D D ∪ {δ} r r & ' D1 r & & $ r $ ··· % r $ r ' Dk r & % $ r r % % 162 KAPITEL 6. BERECHNUNG VON ANTWORTEN Nach dem Ausgang des leichtgläubigen Beweises von ¬δ sind folgende Fälle zu unterscheiden: • Der Beweis schlägt fehlt, also k = 0: Dann ist δ also in allen maximalen Extensionen E ⊆ |D| enthalten und kann ohne weitere Fallunterscheidung angenommen werden. • Eines der Di ist gerade D: Dann ist δ in keiner maximalen Extension E ∈ |D| enthalten und kann nicht angenommen werden. • Andernfalls ist eine Fallunterscheidung nötig, denn δ ist in einer, aber nicht allen Extensionen aus |D| enthalten. Die Idee ist nun einfach, daß man für die übrigen Extensionen einen anderen Beweis benötigt (der δ nicht verwendet). Man ruft also den skeptischen Beweiser rekursiv mit jedem Di auf. Diese Rekursion terminiert, weil jedes Di eine echte Obermenge von D ist (außerdem ist die Anzahl der betrachteten maximalen Extensionen echt kleiner geworden). Beispiel 6.2.7: Sei Φ := {p(a), p(b), q(a) ∨ q(b)} und ∆ := {¬p(X), ¬q(X)}. Als Anfrage sei nun p(X) ∧ ¬q(X) betrachtet. Der Beweis beginnt mit D := ∅, d.h. es werden alle maximalen Extensionen betrachtet. Es wird nun p(X) mit dem Axiom p(a) resolviert, anschließend kann nur die Default-Ausprägung ¬q(a) verwendet werden. Aber q(a) kann mit dem leichtgläubigen Beweiser unter der Annahme von D := {¬q(b)} abgeleitet werden. Also muß nun die Anfrage beginnend mit D := {¬q(b)} hergeleitet werden. Es wird wieder zuerst mit p(a) resolviert, aber nun wird der Default ¬q(a) sofort widerlegt. Also wird nach dem Backtracking das Axiom p(b) verwendet. Zusammen mit dem bereits angenommenen Default ¬q(b) wird die leere Klausel abgeleitet. Dies liefert die Antwort hX/ bi für den durch D = {¬q(b)} beschriebenen Bereich. Nun kann der ursprüngliche Beweis mit D := {¬q(a)} fortgesetzt werden. Man erhält auch hier die leere Klausel und den Anteil hX / ai zu der Antwort {hX / ai, hX / bi}. 2 Aus diesen Überlegungen ergibt sich der folgende Algorithmus. Es wird dabei das eingebaute Prädikat findall verwendet, das mittles Backtracking alle Lösungen eines nichtdeterministischen Aufrufs liefert. proveSkept(Φ, ψ, A) :refuteSkept(Φ, ψ, ¬ψ, ∅, A). refuteSkept(Φ, ψ, Γ, D, A) :empty(Γ), A = Γ. refuteSkept(Φ, ψ, Γ, D, A) :ϕ ∈ Φ ∪ {¬ψ} ∪ D, resolve(Γ, ϕ, Γ0 , ), refuteSkept(Φ, ψ, Γ0 , D, A). 6.2. TOP-DOWN 163 refuteSkept(Φ, ψ, Γ, D, A) :δ ∈ ∆, resolve(Γ, δ, Γ0 , θ), groundInst(δθ, δθθ 0 ), findall(D, refuteCred(Φ, ¬(δθθ 0 ), δθθ0 , D, , D), {D1 , . . . , Dk }), D 6∈ {D1 , . . . , Dk }, proveSkeptMulti(Φ, ψ, {D1 , . . . , Dk }, A0 ), refuteSkept(Φ, ψ, Γ0 θ0 , D ∪ {δθθ 0 }, A1 ), A = A 0 ∨ A1 . Das Prädikat proveSkeptMulti berechnet durch rekursiven Aufruf des skeptischen Beweisers alternative Antworten für die übrigen Extensionen {D1 , . . . , Dk }: proveSkeptMulti(Φ, ψ, {D1 , . . . , Dk }, A) :refuteSkept(Φ, ψ, ¬ψ, D1 , A0 ), proveSkeptMulti(Φ, ψ, {D2 , . . . , Dk }, A1 ), A = A 0 ∨ A1 . proveSkeptMulti(Φ, ψ, ∅, false). Erweiterung auf Defaults mit Prioritätsstufen In den oben angegebenen Algorithmen wurde nur in der Prozedur extend benutzt, daß es zwischen den Defaults keine Prioritäten gibt. Dort wurde davon ausgegangen, daß eine partielle Extension D := {δ1 , . . . , δn−1 } um einen Default δn erweitert werden kann, wenn Φ ∪ D 6` ¬δn . Dies reicht bei priorisierten Defaults nicht mehr aus, wie man sich leicht an folgendem Beispiel klarmachen kann: Φ := {p ∨ q}, ∆ := {¬p, ¬q}, `(¬p) := 1, `(¬q) := 2. Hier gilt Φ ∪ ∅ 6` q, aber D 0 := {¬q} ist keine partielle Extension (die einzige maximale Extension ist E := {¬p}). Man kann hier stufenweise vorgehen, indem man testet, ob ¬δ1 ∨ · · · ∨ ¬δn mit dem skeptischen Beweiser bezüglich ∆0 := δ ∈ ∆ δ < max{`(δi ) | 1 ≤ i ≤ n} bewiesen werden kann (eine solche Methode wird in [BG89] verwendet). Diese Lösung ist jedoch nicht verträglich mit dem Ziel, die Anwendbarkeit der Defaults so früh wie möglich zu testen — zumindest müßte man dann die Berechnung bei jedem neu hinzugenommenen Default wiederholen. Man braucht hier also eine inkrementelle Vorgehensweise, ähnlich wie im nicht priorisierten Fall. Sei im folgenden zur Abkürzung wieder ∆i := {δ ∈ ∆ | `(δ) ≤ i}. 164 KAPITEL 6. BERECHNUNG VON ANTWORTEN Der Schlüssel zu einer inkrementellen Berechnung partieller Extensionen ist nun folgender Begriff von stabiler Extension“, bei der jeder Default δ ∈ D gegen widersprechende ” ” Begründungen“ aus ∆∗`(δ)−1 durch andere Defaults aus D geschützt“ ist: ” Definition 6.2.8 (Stabile Extension): D = {δ1 , . . . , δn } heißt stabile (∆, `)-Extension genau dann, wenn es für kein i ∈ {1, . . . , n} ein D̂i ⊆ ∆∗`(δi )−1 gibt mit • Φ ∪ {δ1 , . . . , δi−1 } ∪ D̂i ist konsistent, und • Φ ∪ {δ1 , . . . , δi−1 } ∪ D̂i ` ¬δi . Satz 6.2.9: Sei D eine stabile (∆, `)-Extension. Dann gibt es eine maximale (∆, `)Extension E mit D ⊆ E. Beweis: Die Behauptung wird mit Induktion über der Anzahl n der in D vorkommenden Defaults bewiesen. Im Fall n = 0 ist die Behauptung trivial, denn es gibt mindestens eine maximale Extension. Sei die Behauptung nun für n − 1 bewiesen und ein neuer Default δn in D einzufügen, d.h. D = {δ1 , . . . , δn }. Nach Induktionsannahme gibt es eine maximale Extension E 0 mit {δ1 , . . . , δn−1 } ⊆ E 0 . Sei nun D̂n := E 0 ∩ ∆∗`(δn )−1 . Natürlich ist Φ ∪ {δ1 , . . . , δn−1 } ∪ D̂n konsistent, also ist nach der Voraussetzung auch Φ ∪ {δ1 , . . . , δn−1 } ∪ D̂n ∪ {δn } konsistent. Man konstruiert nun E, indem man hiervon ausgehend auf jeder Stufe eine maximale Menge von Defaults hinzunimmt, so daß die Konsistenz erhalten bleibt: Sei E0 := {δ1 , . . . , δn } ∪ D̂n Damit ist D ⊆ E0 und E0 ∩ ∆∗`(δn )−1 = E 0 ∩ ∆∗`(δn )−1 . 0 eine Aufzählung der Defaults aus ∆∗ − ∆∗ Sei nun δ10 , . . . , δm `(δn )−1 , die verträglich mit den Prioritätsstufen ist (Defaults mit niedrigerem `-Wert kommen zuerst). Dann sei ( Ei−1 ∪ {δj0 } falls Φ ∪ Ei−1 ∪ {δj0 } konsistent ist Ei := Ei−1 sonst. Schließlich sei E := Em . Nach Konstruktion ist Φ ∪ E konsistent und es gilt D ⊆ E. Zu zeigen ist noch die Maximalitätsforderung. Da E in den Defaults der Stufen < `(δn ) mit E 0 übereinstimmt, kann die 0 verletzt werden. AngeMaximalitätsforderung höchstens durch einen der Defaults δ10 , . . . , δm nommen, für ein δj0 6∈ E wäre Φ ∪ {δ ∈ E | `(δ) ≤ `(δj0 )} ∪ {δj0 } konsistent. Nach Konstruktion ist Φ ∪ {δ ∈ E | `(δ) ≤ `(δj0 )} ∪ {δj0 } ∪ {δ1 , . . . , δn−1 } inkonsistent. Sei i nun minimal, so daß Φ ∪ {δ ∈ E | `(δ) ≤ `(δj0 )} ∪ {δj0 } ∪ {δ1 , . . . , δi } 6.2. TOP-DOWN 165 inkonsistent ist. Es gilt `(δj0 ) < `(δi ), denn wegen δi ∈ E wäre δi sonst in dem als konsistent bekannten Anteil. Damit wäre die Eigenschaft von stabiler Extension“ aber für δi und ” D̂i := {δ ∈ E | `(δ) ≤ `(δj0 )} ∪ {δj0 } verletzt. 2 Stabile Extensionen kann man nun mit dem skeptischen Beweiser berechnen, und zwar ruft man ihn mit der bisherigen stabilen Extension auf und versucht die Negation des neuen Defaults δ zu beweisen, wobei nur Defaults mit echt kleinerem `-Wert verwendet werden dürfen (deswegen terminiert die Rekursion). Falls der skeptische Beweis nun gelingt, so kann δ natürlich nicht angenommen werden. Andernfalls betrachtet man die bei der Fallunterscheidung erzeugten partiellen Extensionen, in denen kein leichtgläubiger Beweis von ¬δ möglich war. Sie bilden zusammen mit δ eine stabile Extension. Der günstigste Zeitpunkt für die Prüfung der Defaults Oben wurde erläutert, daß es ein wesentlicher Vorteil der hier angegebenen Methode ist, die Anwendbarkeit der Defaults so früh wie möglich zu testen, und diesen Test nicht auf eine zweite Phase zu verschieben. Allerdings ist dies nicht immer der günstigste Zeitpunkt. Dies sei an der Regel p ← ¬q ∧ r erläutert. Wenn die Überprüfung des Defaults ¬q sehr aufwendig ist und wenn der Beweis von r sehr schnell fehlschlägt, dann ist es natürlich günstiger, zuerst den Beweis von r zu versuchen: Da dies fehlschlägt, braucht man den Default nicht mehr zu überprüfen. Es kann allerdings auch die umgekehrte Situation eintreten, daß der Default schnell widerlegt wird, während der Beweis von r sehr aufwendig ist. In diesem Fall hätte man den Default zuerst testen sollen. Der richtige Zeitpunkt für die Überprüfung der Defaults ist also anwendungs-abhängig. Die hier angegebene Methode kann aber leicht so verallgemeinert werden, daß der Datenbankentwerfer steuern kann, wann die Defaults überprüft werden (innerhalb der Regeln ist dies schon jetzt durch die Anordnung der Literale zu steuern). Dagegen sind die in [Prz89, Gin89, BG89] vorgeschlagenen Verfahren inhärent zweiphasig (erst werden Folgerungen unter Verwendung beliebiger Defaults berechnet, dann die Anwendbarkeit der Defaults überprüft). 166 Kapitel 7 Ausblick Ziel dieser Arbeit war es, die Semantik von Defaults zu klären und die algorithmischen Grundlagen für die Anfrage-Auswertung unter Berücksichtigung von Defaults zu legen. Damit sollte ein sauberes und tragfähiges Fundament für die Erweiterung deduktiver Datenbanken um allgemeine Klauseln und Defaults gelegt werden. In diesem Kapitel sollen nun Perspektiven für die weitere Arbeit aufgezeigt werden. Dynamik Der Inhalt einer Datenbank ist üblicherweise ständigen Änderungen unterworfen. Wenn diese Änderungsoperationen nicht vorbereitet sind, also im Extremfall mit einem Texteditor einfach die Formelmenge geändert wird, dann ist das einerseits unbequem und andererseits gefährlich für die Integrität der Datenbank: Es kann ja leicht passieren, daß der Datenbankzustand durch einen Eingabefehler sinnlos wird. Natürlich könnte man Programme in einer höheren Programmiersprache schreiben, die diese Änderungen kontrolliert vornehmen. Das hat aber den Nachteil, daß die Semantik dieser Programme schwer formal zu behandeln ist, so daß der einfache deklarative Rahmen deduktiver Datenbanken verlassen wird. Besser ist es, diese Änderungsoperationen stattdessen in geeigneten Logiken zu spezifizieren, etwa dynamischer oder temporaler Logik. Ein solcher Ansatz wurde auch im IS-CORE Projekt gewählt [SS91, ESS92]. Ziel dieses Projektes ist es, den Entwurf von beweisbar korrekten Informationssystemen zu ermöglichen und die Wiederverwendbarkeit von Spezifikationen zu unterstützen. Dabei wurde ein objekt-orientierter Ansatz gewählt, wobei die Objekte über gemeinsame Ereignisse kommunizieren. In Abschnitt 3.3 wurde schon motiviert, daß bei der Semantik von Änderungsoperationen Defaults eine zentrale Rolle spielen. Es bleibt hier aber noch viel zu untersuchen. Zunächst sind die Ergebnisse dieser Arbeit auf solche allgemeineren Logiken zu übertragen, und dann auch das Zusammenspiel der verschiedenen Arten von Defaults zu klären (etwa zeitliche Defaults und solche, die die Vererbung beschreiben). Außerdem sind natürlich auch die Antwortalgorithmen entsprechend zu erweitern. 167 168 KAPITEL 7. AUSBLICK Dies ist wohl keine leichte Aufgabe, zumindest, wenn man mächtige Anfragen zuläßt (etwa Planungsaufgaben). Als Beispiel für den Nutzen solcher Beweiser sei ein kommerzielles Textadventurespiel ( The Pawn“) genannt, bei dem man eine wesentliche Aufgabe in einer von den Autoren ” offensichtlich nicht vorhergesehenen Weise umgehen konnte. So ein Textadventurespiel ist im Grunde auch nichts anderes als eine Datenbank mit einem umfangreichen Satz vorgefertigter Änderungsoperationen (und einer natürlichsprachlichen Schnittstelle). Wäre das Adventurespiel nun in einer temporalen Logik spezifiziert worden, und hätte man einen entsprechenden Beweiser, so hätte man die naheliegende Anfrage stellen können, ob alle Aufgaben erst gelöst werden müssen, bevor der Gewinnzustand erreicht wird. Module, Objekt-Orientierung Bei größeren Datenbanken ist natürlich eine Strukturierung in kleine, überschaubare Einheiten unbedingt wünschenswert. Dies könnte eine objekt-orientierte Vorgehensweise leisten. Umgekehrt darf man aber natürlich auch nicht die Vorteile einer logikbasierten Spezifikation verlieren: die meisten zur Zeit verfügbaren objekt-orientierten Systeme sind eher imperativ und haben keine formale Semantik. Eine Integration von objekt-orientierten und deduktiven Ansätzen ist daher ein aktuelles Forschungsthema. Da sich die Semantik der Vererbung mit Defaults erklären läßt, sind die hier gelegten Grundlagen natürlich auch für eine solche Integration nützlich. Der Ausbau auf eine dynamische Logik ist oben schon genannt worden: Ein wichtiger Unterschied zwischen objekt-orientierten und deduktiven Ansätzen ist ja der Zustandsbegriff, der als lokaler Speicher zu Objekten unbedingt dazugehört, von den Verfechtern einer deduktiven Vorgehensweise aber als Rückfall in die Zeiten imperativer Programmierung abgelehnt wird. Mit einer dynamischen oder temporalen Logik kann man hier nun doch noch eine Integration erreichen. Logische Spezifikationen verletzen leicht das Lokalitätsprinzip, da sich jede Regel ja auch umgekehrt als Kontraposition lesen läßt. Hier haben objekt-orientierte Ansätze den Vorteil, daß sich klar zwischen definierenden und benutzenden Vorkommen eines Symbols unterscheiden läßt. In [BL91] wurde eine entsprechende Forderung auch in die Semantik einer logischen Spezifikation eingebaut, was sich als überraschend mächtiger Mechanismus herausgestellt hat. Weitere Untersuchungen sind hier nötig. Datenstrukturen, Komplexe Objekte Ein wichtiger Unterschied von DATALOG zu Prolog ist der Verzicht auf Funktionssymbole, also auf Datenstrukturen wie etwa Listen und Bäume. Auch beim relationalen Datenmodell hat sich Beschränkung auf atomare Werte als zu stark für bestimmte Anwendungen erwiesen; es gibt hier Vorschläge für geschachtelte Relationen [SS86] oder Listen [GZC89]. 169 Entsprechend besteht bei einigen Anfragesprachen für deduktive Datenbanken [NT89] die Möglichkeit, direkt auf Mengen von Objekten Bezug zu nehmen, wie etwa bei einer Logik 2. Stufe (aber mit Einschränkungen, um die Berechenbarkeit sicherzustellen). In einer solchen Sprache sind Aggregationen (z.B. die Summe aller Posten einer Rechnung) natürlich kein Problem. Wünschenswert wäre ein entsprechender Ausbau des hier vorgeschlagenen Ansatzes. Datenbankentwurf Beim relationalen Datenmodell gibt es eine umfangreiche Theorie, um die Aufgabe des Datenbankentwurfs zu unterstützen. Diese Aufgabe ist natürlich in einer deduktiven Datenbank eher noch komplizierter, weil es mehr Parameter gibt. Andererseits sind aber natürlichere Formulierungen möglich, während man beim relationalen Datenbankentwurf manchmal nach der am wenigsten schlechten“ Lösung suchen muß. ” Der Datenbankentwurf in einem logischen Datenmodell wurde in [BC89, Con89] untersucht. Es bleibt zu untersuchen, inwieweit sich die dort erzielten Ergebnisse auf den hier verfolgten Ansatz übertragen lassen. Zusätzlich ergeben sich aber durch die erweiterten Möglichkeiten hinsichtlich Defaults und allgemeinen Klauseln ganz neue Fragestellungen. Konkrete Syntax, Entwurfswerkzeuge Nachdem die theoretischen und algorithmischen Grundlagen gelegt sind, sollten natürlich auch realistische Anwendungsbeispiele ausgearbeitet werden. Dafür ist eine möglichst bequeme Syntax mit nützlichen Abkürzungen wünschenswert. Auch eine graphische Sprache für den Entwurf im großen“ wäre hilfreich. ” Außerdem sollten natürlich Entwurfswerkzeuge zur Verfügung gestellt werden. Neben syntaxgestützten und graphischen Editoren ist hier insbesondere ein Konsistenzprüfer zu nennen (siehe z.B. [BDM88, LNP+ 89]). Implementierung Diese Arbeit enthält die algorithmischen Grundlagen, aber es sind natürlich noch viele Optimierungen auf verschiedenen Ebenen möglich und nötig. Prototypen des top-down“ [Ern92, Bra92a] und des bottom-up“ Verfahrens [Bri92] ” ” sind inzwischen verfügbar. Jetzt muß es das Ziel sein, Erfahrungen mit diesen Programmen zu sammeln, und so Verbesserungsmöglichkeiten zu erkennen. Insbesondere sollen natürlich die Vorteile beider Verfahren verbunden werden, wie das bei deduktiven Datenbanken normalerweise mit magischen Mengen“ [BR86, Ull89, ” Bry90] oder ähnlichen Techniken erreicht wird. Auch im Bereich des logischen Programmierens gibt es entsprechende Vorschläge [Bur91]. Eine Anwendung dieser Methode auf den hier verfolgten Ansatz sollte möglich sein. 170 KAPITEL 7. AUSBLICK Der bottom-up“ Ansatz sollte langfristig auch um eine angepaßte Externspeicher” Verwaltung erweitert werden. Wie in Kapitel 6 erläutert wurde, ist die Benutzung eines relationalen Datenbanksystems nur ein Behelf. Auch ein NF2 -System müßte schon sehr spezielle Optimierungen enthalten, um eine effiziente Implementierung dieses Verfahrens zuzulassen. Für den top-down“ Ansatz lassen sich viele der Implementierungstechniken von Pro” log übernehmen. Interessant wäre insbesondere eine Compilierung. Es ist nicht unrealistisch, daß man für stratifizierte Klauselmengen dieselbe Effizienz wie Prolog erreicht, und bei sparsamer Verwendung allgemeinerer Konstrukte nur wenig an Effizienz verliert. Symbolverzeichnis Griechische Buchstaben α Variablenbelegung (2.1.12, S. 18) β Bindungstyp der Prädikate, Bestandteil von Σ (2.1.2, S. 14) γ Sortierung der Konstanten, Bestandteil von Σ (2.1.2, S. 14) Γ Zielklausel ∆ Menge aller Defaults (2.2.2, S. 28) ∆∗ Menge der Default-Ausprägungen (2.2.4, S. 30) δ Default oder Default-Ausprägung (2.2.2, S. 28) θ Substitution Ξ Variablendeklaration: X → S (2.1.8, S. 17) π Sortierung der Prädikate, Bestandteil von Σ (2.1.2, S. 14) Σ Signatur (2.1.2, S. 14) Φ Menge der Axiome (Formeln) (2.2.1, S. 27) ϕ Axiom oder allgemeine Formel (2.1.11, S. 18) ψ Anfrage (2.3.1, S. 39) Ω Konflikt (6.1.25, S. 142) Lateinische Buchstaben A Alphabet, Zeichenvorrat (2.1.1, S. 14) AL Logische Zeichen, Teilmenge von A (2.1.1, S. 14) AV Menge der Variablen, Teilmenge von AL (2.1.1, S. 14) C Menge der Konstanten von Σ (2.1.2, S. 14) c Konstante, Element von C (2.1.2, S. 14) D Begründung (6.1.12, S. 139) E Maximale Extension, Teilmenge von ∆ (5.2.1, S. 102) I Interpretation (meist Herbrandinterpretation) (2.1.4, S. 16) I Menge von (Herbrand-)Interpretationen (2.1.4, S. 16) 171 172 SYMBOLVERZEICHNIS IΣ Menge aller Herbrand-Interpretationen über Σ (2.1.4, S. 16) i Natürliche Zahl j Natürliche Zahl k Natürliche Zahl LΣ Menge aller quantorenfreien Formeln über Σ (2.1.11, S. 18) L∗Σ Menge aller variablenfreien Formeln über Σ (2.1.11, S. 18) L+ Σ Menge aller bereichsbeschränkten Formeln über Σ (2.1.19, S. 21) ` Prioritätsstufe, ∆ → IN, je kleiner, desto höhere Priorität (2.2.3, S. 29) m Natürliche Zahl IN Menge der natürlichen Zahlen 1, 2, . . . n Natürliche Zahl P Prädikate von Σ, Teilmenge von A (2.1.2, S. 14) p Prädikat, Element von P (2.1.2, S. 14) q Prädikat, Element von P (2.1.2, S. 14) r Prädikat, Element von P (2.1.2, S. 14) S Sorten von Σ, Teilmenge von A (2.1.2, S. 14) s Sorte, Element von S (2.1.2, S. 14) t Term, Element von C ∪ X (2.1.9, S. 18) u Term, Element von C ∪ X (2.1.9, S. 18) X Menge von Variablen, Teilmenge von AV (2.1.1, S. 14) X Variable, Element von AV (2.1.1, S. 14) Y Variable, Element von AV (2.1.1, S. 14) Bezeichner mit mehreren Buchstaben comp syntaktische Vervollständigung (2.2.9, S. 35) cwa ∆ vorsichtige CWA (5.2.4, S. 103) cwa (∆,`) vorsichtige CWA mit Prioritätsstufen (5.2.7, S. 104) cwa (∆,<) vorsichtige CWA mit partiell geordneten Defaults (5.2.7, S. 104) min ≺ minimale Modelle Vervollständigung bezüglich ≺ (5.1.2, S. 90) min ∆ minimale Modelle Vervollständigung bezüglich ≺∆ (5.1.2, S. 90) min (∆,`) minimale Modelle Vervollständigung bezüglich ≺(∆,`) (5.1.11, S. 95) min (∆,<) minimale Modelle Vervollständigung bezüglich ≺(∆,<) (5.1.18, S. 98) Mod (Φ) Menge der Herbrandmodelle von Φ (2.1.15, S. 19) mcwa (∆,<) modifizierte CWA (5.3.3, S. 112) ncwa (∆,<) naive CWA (4.3.7, S. 86) SYMBOLVERZEICHNIS scwa (∆,<) starke CWA (5.3.7, S. 114) sel modelltheoretische Vervollständigung (2.2.6, S. 30) Th(I) eine Formelmenge mit den Modellen I (2.1.15, S. 19) th(I) eine variablenfreie Formel mit den Modellen I (2.1.15, S. 19) Sonstige Zeichen ∧ Junktor und“ in logischen Formeln, Element von AL ” ∨ Junktor oder“ in logischen Formeln, Element von AL ” ← Junktor wenn“ in logischen Formeln, Element von AL ” → Junktor dann“ in logischen Formeln, Element von AL ” ¬ Junktor nicht“ in logischen Formeln, Element von AL ” ∼ Umwandlung zwischen positiven und negativen Literalen (2.1.24, S. 24) ⇐= metasprachliches wenn“ ” =⇒ metasprachliches dann“ ” ⇐⇒ metasprachliches genau dann, wenn“ ” :⇐⇒ gelte definitionsgemäß genau dann, wenn“ ” := sei definiert als“ ” ∼ = ist logisch äquivalent zu“ (2.1.15, S. 19) ” ∼ ∗ =∆ erfüllt dieselben Defaults (4.3.1, S. 84) |= ist Modell von“ (2.1.15, S. 19) ” ` die logische Folgerungsrelation (2.1.15, S. 19) `c vervollständigte Folgerungsrelation (2.2.10, S. 36) `sel durch sel gegebene vervollständigte Folgerungsrelation (2.2.11, S. 37) `comp durch comp gegebene vervollständigte Folgerungsrelation (2.2.11, S. 37) `cons (∆,<) konstruktive Implikation (5.3.11, S. 116) ⊆ ist Teilmenge von (oder gleich)“ ” ⊂ ist echte Teilmenge von“ ” 2 die leere Klausel (2.1.25, S. 25) < Prioritätsrelation auf ∆ bzw. ∆∗ , kleiner: höhere Priorität (2.2.3, S. 29) ≺ Präferenzrelation auf den Modellen (5.1.2, S. 90) ≺∆ durch ∆ gegebene Präferenzrelation (5.1.1, S. 90) ≺(∆,`) durch (∆, `) gegebene Präferenzrelation (5.1.11, S. 95) ≺(∆,<) durch (∆, <) gegebene Präferenzrelation (5.1.18, S. 98) |D| von D überdeckte maximalen Extensionen (6.1.19, S. 141) 173 174 Literaturverzeichnis [ABW88] K. R. Apt, H. A. Blair, A. Walker: Towards a theory of declarative knowledge. In J. Minker (ed.), Foundations of Deductive Databases and Logic Programming, 89–148, Morgan Kaufmann Publishers, Los-Altos (Calif.), 1988. In dieser Arbeit wurden stratifizierte logische Programme mit ihrer Fixpunktsemantik eingeführt, die Konsistenz der CDB für solche Programme gezeigt, und die Grundlagen passender Interpreter untersucht (60 Seiten). [App85] H.-J. Appelrath: Von Datenbanken zu Expertensystemen. InformatikFachberichte 102. Springer-Verlag, Berlin, 1985. Gegenstand dieses Buches sind deduktive Datenbanken und ihre Anwendung zur Wissensbereitstellung für Expertensysteme (159 Seiten). [BC89] J. Biskup, B. Convent: Towards a schema design methodology for deductive databases. In J. Demetrovics, B. Thalheim (eds.), 2nd Symposium on Mathematical Fundamentals of Database Systems (MFDBS’89), 37–52, LNCS 364, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird ein allgemeiner Ansatz für den Datenbank-Entwurf in deduktiven Datenbanken entwickelt. Insbesondere wird der Begriff der Anfragetreue definiert, mit dem man formalisieren kann, daß das transformierte Schema noch dieselben Informationen enthält (16 Seiten). [BDM88] F. Bry, H. Decker, R. Manthey: A uniform approach to constraint satisfaction and constraint satisfiability in deductive databases. In Advances in Database Technology — EDBT’88, 488–505, LNCS 303, Springer-Verlag, 1988. In dieser Arbeit wird ein Ansatz zur Vereinfachung statischer Integritätsbedingungen bei deduktiven Datenbanken vorgestellt. Außerdem wird auf das Problem der Überprüfung von Integritätsbedingungen auf Konsistenz eingegangen; die vorgeschlagene Lösung setzt Techniken der Integritätssicherung ein (18 Seiten). [Bes88] P. Besnard: 1988. An Introduction to Default Logic. Springer-Verlag, Berlin, In diesem Lehrbuch wird die Default-Logik ausführlich und formal behandelt, daneben aber auch die verschiedenen Varianten der Circumscription und andere nicht-monotonen Logiken (208 Seiten). 175 176 [BG89] LITERATURVERZEICHNIS A. B. Baker, M. L. Ginsberg: A theorem prover for prioritized circumscription. In Proc. 11th International Joint Conf. on Artificial Intelligence (IJCAI), 463–467, 1989. Diese Arbeit enthält einen Vorschlag für einen Beweiser, der Defaults mit Prioritätsstufen berücksichtigt. Interessant ist auch der Vergleich mit zwei Kontrahenten, die sich auf jeder Prioritätsstufe widersprechende Argumente präsentieren. Der wesentliche Unterschied zu dem hier vorgeschlagenen topdown Beweiser ist die mehrphasige Vorgehensweise, die die Anwendbarkeit der Defaults erst ganz zum Schluß prüft (5 Seiten). [BH86] N. Bidoit, R. Hull: Positivism vs. minimalism in deductive databases. In Proc. of the 5th ACM Symp. on Principles of Database Systems (PODS’86), 123–132, 1986. In diesem Artikel wird versucht, Clark’s CDB und die minimalen Modelle zu integrieren, um eine Semantik für disjunktive Regeln zu haben. Besonders hilfreich ist aber vor allem die Idee der kausalen Modelle, die äquivalent zur CDB sind, aber viel übersichtlicher (10 Seiten). [BL89] S. Brass, U. W. Lipeck: Specifying closed world assumptions for logic databases. In J. Demetrovics, B. Thalheim (eds.), 2nd Symposium on Mathematical Fundamentals of Database Systems (MFDBS’89), 68–84, LNCS 364, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird die parametrisierte CWA definiert, modelltheoretisch charakterisiert, und gezeigt, wie sich die verschiedenen Varianten der CWA in diesem Rahmen repräsentieren lassen (17 Seiten). [BL91] S. Brass, U. W. Lipeck: Semantics of inheritance in logical object specifications. In C. Delobel, M. Kifer, Y. Masunaga (eds.), Deductive and Object-Oriented Databases, 2nd Int. Conf. (DOOD’91), 411–430, LNCS 566, Springer-Verlag, Berlin, 1991. Diese Arbeit enthält einen Vorschlag für die Semantik objekt-orientierter Spezifikationen mit abgeleiteten Attributen, die über Regeln definiert werden. Das Überschreiben ererbter Regeln wird dabei mit hierarchischen Defaults definiert. Es wird hier insbesondere auch die Lokalitätsforderung objektorientierter Spezifikationen berücksichtigt (20 Seiten). [BL92] S. Brass, U. W. Lipeck: Generalized bottom-up query evaluation. In Advances in Database Technology — EDBT’92, 3rd Int. Conf., 88–103, LNCS 580, Springer-Verlag, 1992. In dieser Arbeit wird der Bottom-Up“ Ansatz zur Anfrage-Auswertung auf ” allgemeine Klauseln und allgemeine Defaults erweitert. Zur Darstellung disjunktiver Information werden dabei NF2 -Relationen benutzt (16 Seiten). [BN77] E. Bergmann, H. Noll: Mathematische Logik mit Informatik-Anwendungen. Heidelberger Taschenbücher 187. Springer-Verlag, Berlin, 1977. Ein ausführliches Lehrbuch über die Prädikatenlogik, mit einem Kapitel über automatisches Beweisen (324 Seiten). LITERATURVERZEICHNIS [BR86] 177 F. Bancilhon, R. Ramakrishnan: An amateur’s introduction to recursive query processing. In C. Zaniolo (ed.), Proc. of SIGMOD’86, 16–52, 1986. Diese Arbeit gibt einen Überblick über verschiedene Anwortalgorithmen für Hornklausel-Datenbanken, auch die magic set“ Techniken. Es werden detail” lierte Effizienzvergleiche durchgeführt (37 Seiten). [Bra88] S. Brass: Vervollständigungen für Logikdatenbanken. Diplomarbeit, Informatik, Techn. Univ. Braunschweig, 1988. Überarbeitete Version erschienen als Forschungsbericht 315/1989, Informatik, Univ. Dortmund. Dieser Bericht enthält eine vergleichende Literaturübersicht über die mini” male Modelle“ Vervollständigungen, die CWAs (Closed World Assumptions), die Circumscriptions und die CDB (Completed Data Base) (230 Seiten). [Bra90a] S. Brass: Beginnings of a theory of general database completions. In S. Abiteboul, P. C. Kanellakis (eds.), Third International Conference on Database Theory (ICDT’90), 349–363, LNCS 470, Springer-Verlag, Berlin, 1990. In dieser Arbeit sind Vervollständigungen aus dem Blickwinkel der mathematischen Theorie der Wahlverfahren untersucht worden. Insbesondere konnten dadurch die Vervollständigungen der Klasse der minimalen Modelle charakterisiert werden. Außerdem wurde die Ausdrucksfähigkeit der verschiedenen Repräsentationen von Vervollständigungen verglichen (15 Seiten). [Bra90b] S. Brass: Remarks on first order circumscription. Unveröffentliches Manuskript, 1990. In dieser Arbeit wird gezeigt, daß die First Order Circumscription nicht kumulierend ist. Außerdem wird auf die Frage überzähliger freier Variablen in den λ-Ausdrücken eingegangen, die in das Formelschema der Circumscription eingesetzt werden. Es wird gezeigt, daß sie selbst im nicht-rekursiven Fall die Konsistenz der Circumscription zerstören können, und daß sie bei Horn-Klauseln nicht nötig sind (13 Seiten). [Bra92a] S. Brass: CWA Prover 1.1 User Manual, 1992. Dies ist die Anleitung zu einer Prototyp-Implementierung des in [Bra92b] vorgeschlagenen top-down“ Beweisers. Das in Prolog geschriebene Programm ” ist mit anonymem ftp von “wega.informatik.uni-hannover.de” (130.75.26.1) erhältlich. [Bra92b] S. Brass: Deduction with supernormal defaults. In K. P. Jantke, G. Brewka, P. H. Schmitt (eds.), Nonmonotonic and Inductive Logics, 2nd International Workshop (NIL’91), LNAI, Springer-Verlag, Berlin, 1992. In dieser Arbeit wird ein Top-Down“ Antwortalgorithmus für allgemeine ” CWAs entwickelt. Daneben enthält sie Material zur Semantik partiell geordneter Defaults, insbesondere zur Unterscheidung zwischen maximalen Extensionen und konstruktiven Extensionen (22 Seiten). [Bre91] G. Brewka: Nonmonotonic Reasoning: Logical Foundations of Commonsense. Cambridge University Press, Cambridge, 1991. 178 LITERATURVERZEICHNIS Dieses Lehrbuch gibt einen umfassenden Überblick über die verschiedenen Ansätze zum nichtmonotonen Schließen und ist nicht so technisch wie manche der anderen Lehrbücher (168 Seiten). [Bri92] A. Brinkmann: Verallgemeinerte Bottom-Up Auswertung. Diplomarbeit, Inst. für Informatik, Universität Hannover, 1992. In dieser Arbeit ist der Bottom-Up Ansatz zur Anfrageauswertung mit allgemeinen Klauseln und beliebigen Defaults programmiert worden (in C“). Da ” kein NF2 -Datenbanksystem zur Verfügung stand, wurde die Datenbank im Hauptspeicher simuliert. [BRL91] S. Brass, M. Ryan, U. W. Lipeck: Hierarchical defaults in specifications. In G. Saake, A. Sernadas (eds.), Information Systems — Correctness and Reusability, Workshop IS-CORE ’91, 179–201, Informatik-Bericht 91-03, TU Braunschweig, 1991. Diese Arbeit definiert die Semantik hierarchischer Defaults für allgemeine Logiken und insbesondere für die Aktions-Logik des IS-CORE Projekts. Es wird dabei der Instanziierungsmechanismus als Parameter der Vervollständigung eingeführt (23 Seiten). [Bry90] F. Bry: Query evaluation in recursive databases: bottom-up and top-down reconciled. Data & Knowledge Engineering 5 (1990), 289–312. In dieser Arbeit wird gezeigt, daß die magic set“ Techniken zur Integration ” von top-down“ und bottom-up“ Ansätzen sich am besten als eine Form ” ” von Metainterpreter verstehen lassen. Dadurch wird tatsächlich eine überraschende Vereinfachung erreicht (24 Seiten). [BS85] G. Bossu, P. Siegel: Saturation, non-monotonic reasoning and the closedworld assumption. Artificial Intelligence 25 (1985), 13–63. Die minimale Modelle Semantik hat bei unendlichen Modellen das Problem, daß sie aufgrund unendlicher absteigender Ketten nicht immer konsistenzerhaltend ist. In dieser Arbeit wird nun eine modifizierte Definition angegeben, die immer konsistenzerhaltend ist. Außerdem enthält die Arbeit noch einige allgemeine Bemerkungen zu nichtmonotonen Folgerungsrelationen und einen Antwortalgorithmus (51 Seiten). [Bur91] W. Burgard: Efficiency considerations on goal-directed forward chaining for logic programs. In E. Börger, H. Kleine Büning, M. M. Richter, W. Schönfeld (eds.), Computer Science Logic, 4th Workshop, CSL’90, 80– 94, LNCS 533, Springer Verlag, 1991. In dieser Arbeit wird eine Resolventenmethode für Hornklauselprogramme eingeführt, die von den Fakten ausgehend bottom-up“ arbeitet, aber trotz” dem zielgerichtet vorgeht (mit Hilfe sogenannter link“ Klauseln). Die Kor” rektheit und Vollständigkeit wird bewiesen und die Effizienz mit der SLDResolventhenmethode verglichen (15 Seiten). [BW91] F. L. Bauer, M. Wirsing: Elementare Aussagenlogik. Springer-Verlag, Berlin, 1991. LITERATURVERZEICHNIS 179 In diesem Lehrbuch der Reihe Mathematik für Informatiker“ wird die Aus” sagenlogik ausführlich behandelt, inklusive Normalformen, Ableitungsregeln und modallogischen Erweiterungen (228 Seiten). [CGS89] M. A. Casanova, R. Guerreiro, A. Silva: Logic programming with general clauses and defaults based on model elimination. In Proc. 11th International Joint Conference on Artificial Intelligence (IJCAI), 395–400, Detroit, 1989. Diese Arbeit enthält einen Vorschlag für einen Antwortalgorithmus für allgemeine Klauseln und normale Defaults, der allerdings auf der leichtgläubigen Semantik mehrerer Extensionen basiert (6 Seiten). [CGT90] S. Ceri, G. Gottlob, L. Tanca: Logic Programming and Databases. Surveys in Computer Science. Springer-Verlag, Berlin, 1990. In diesem Lehrbuch werden folgende Themen behandelt: Kopplung von Prolog und Datenbanken, die Sprache Datalog, Anfrageoptimierungs-Techniken für Datalog, Erweiterungen von Datalog, Datenbank-Projekte in diesem Bereich (284 Seiten). [CL73] C.-L. Chang, R. C.-T. Lee: Symbolic Logic and Mechanical Theorem Proving. Academic Press, New York, 1973. Ein klassisches Lehrbuch über automatisches Beweisen, das sehr verbreitet ist (331 Seiten). [Cla78] K. L. Clark: Negation as failure. In H. Gallaire, J. Minker (eds.), Logic and Data Bases, 293–322, Plenum, New York, 1978. In dieser Arbeit wurde der negation as failure“ Ansatz zur Auswertung der ” Negation in Prolog eingeführt, sowie die completed data base“ (CDB) als ” Semantik der Negation. Auch die UNA-Axiome und ihre Beziehung zur Unifikation wurden hier untersucht (30 Seiten). [Con88] B. Convent: Deciding finiteness, groundness and domain independence of pure datalog queries. Hildesheimer Informatik-Berichte II/1988, Hochschule Hildesheim, 1988. In dieser Arbeit werden die verschiedenen Probleme bei nicht bereichsbeschränkten Klauseln in Beziehung zueinander gesetzt, und es wird gezeigt, daß sie in dem betrachteten Rahmen entscheidbar sind — ein recht überraschendes Ergebnis (19 Seiten). [Con89] B. Convent: Datenbankschemaentwurf für ein logikorientiertes Datenmodell. Dissertation, Hochschule Hildesheim, 1989. Gegenstand dieser Arbeit ist der Datenbankentwurf für deduktive Datenbanken. Bei relationalen Datenbanken gibt es dafür ja schon eine umfangreiche Theorie, bei deduktiven Datenbanken scheint dies die erste Arbeit zu sein. Diese Arbeit enthält auch die Ergebnisse aus [Con88] und [BC89] (146 Seiten). [Dav80] M. Davis: The mathematics of non-monotonic reasoning. Artificial Intelligence 13 (1980), 73–80. 180 LITERATURVERZEICHNIS In dieser Arbeit wurde eine modelltheoretische Formulierung der domain ” circumscription“ gegeben, und damit ein Vorläufer der minimalen Modelle im heutigen Sinn. McCarthy bedankt sich in [McC80] auch ausdrücklich für diese Idee bei Davis (8 Seiten). [DDFM90] J. Dix, A. Dold, T. Fuchß, M. Müller: “Theorist” und “MVL”: Erfahrungen und Hinweise im Umgang mit nichtmonotonen Beweissystemen. Praktikumsbericht, Institut für Logik, Komplexität und Deduktionssysteme, Universität Karlsruhe, 1990. In dieser Arbeit werden Implementierungen zweier nichtmonotoner Beweissysteme untersucht, und zwar handelt es sich um das System aus [Poo88] und den Beweiser, auf dem der in [Gin89] vorgeschlagene Antwortalgorithmus aufbaut. Beide Systeme scheinen nicht unwesentliche Mängel zu haben (33 Seiten). [Dec91] H. Decker: On the declarative, operational and procedural semantics of disjunctive computational theories. In A. Olivé (ed.), Proc. of the Second Int. Workshop on the Deductive Approach to Information Systems and Databases, 149–173, Report de recerca LSI/91/30, Departament de Llenguatges i Sistemes Informatics, Universitat Politecnica de Catalunya, Barcelona (Espana), 1991. In dieser Arbeit werden Modelle und Fixpunkte von disjuktiven logischen Programmen untersucht und eine auf der SL-resolution basierende abduktive Beweisprozedur vorgestellt (25 Seiten). [Dix91] J. Dix: Classifying semantics of logic programs. In Proc. of the 1st Int. Conf. on Logic Programming and Non-Monotonic Reasoning, Washington DC, 1991. In dieser Arbeit werden Semantiken für logische Programme in dem allgemeinen Rahmen nichtmonotoner Folgerungsrelationen untersucht. Unter anderem wird gezeigt, daß die dreiwertige well-founded“ Semantik kumulierend ” ist (13 Seiten). [DW91] J. Doyle, M. P. Wellman: Impediments to universal preference-based default theories. Artificial Intelligence 49 (1991), 97–128. In dieser Arbeit wird der bekannte Satz von Arrow verwendet, um zu zeigen, daß keine Defaultsemantik, die auf minimalen Modellen basiert, allen wünschenswerten Anforderungen gerecht werden kann. Dabei erscheinen die starken Anforderungen an die Vergleichbarkeit zweier Modelle aber etwas fragwürdig (32 Seiten). [EFT86] H.-D. Ebbinghaus, J. Flum, W. Thomas: Einführung in die mathematische Logik, zweite Auflage. Wissenschaftliche Buchgesellschaft, Darmstadt, 1986. Ein empfehlenswertes Lehrbuch der mathematischen Logik (308 Seiten). [EMR85] D. W. Etherington, R. E. Mercer, R. Reiter: On the adequacy of LITERATURVERZEICHNIS 181 predicate circumscription for closed-world reasoning. Computational Intelligence 1 (1985), 11–15. In dieser Arbeit wird die Konsistenzerhaltung der Prädikat-Circumscription untersucht. Außerdem wird bewiesen, daß sie keine neue Information über das Gleichheitsprädikat liefert (5 Seiten). [Ern92] W. Ernst: Automatisches Beweisen mit Defaults. Diplomarbeit, Inst. für Informatik, Universität Hannover, 1992. In dieser Arbeit ist der Top-Down“ Ansatz nach [Bra92b] programmiert wor” den (in Prolog). [ESS92] H.-D. Ehrich, G. Saake, A. Sernadas: Concepts of object-orientation. In R. Studer (ed.), Informationssysteme und Künstliche Intelligenz, Zweiter Workshop, 1–19, Springer-Verlag, Berlin, 1992. In dieser Arbeit wird eine systematische Übersicht über objekt-orientierte Konzepte gegeben. Außerdem wird die Spezifikationssprache Troll kurz vorgestellt (19 Seiten). [Eth88] D. W. Etherington: Reasoning with Incomplete Information. Pitman, London, 1988. Dieses Lehrbuch behandelt die Default Logik, Vererbungsnetze mit Ausnahmen und verschiedene Varianten der Circumscription (240 Seiten). [FM91] J. Fiadeiro, T. Maibaum: Towards object calculi. In G. Saake, A. Sernadas (eds.), Information Systems — Correctness and Reusability, Workshop IS-CORE ’91, 129–178, Informatik-Bericht 91-03, TU Braunschweig, 1991. In dieser Arbeit wird eine Logik mit Zustands- und Aktionsbegriff definiert, und Ableitungsregeln dafür angegeben (50 Seiten). [Gab85] D. M. Gabbay: Theoretical foundations for non-monotonic reasoning in expert systems. In K. R. Apt (ed.), Logics and Models of Concurrent Systems, 439–457, Springer, Berlin, 1985. Diese Arbeit ist eine der ersten, die allgemeine nichtmonotone Folgerungsrelationen untersuchen. Insbesondere legt sie die Grundlagen für den Begriff der Kumulierung (19 Seiten). [GB84] J. Goguen, R. Burstall: Introducing institutions. In E. Clarke, D. Kozen (eds.), Logics of Programs — Proc. 1983, 221–255, LNCS 164, Springer-Verlag, Berlin, 1984. In dieser Arbeit wird ein allgemeiner kategorieller Rahmen zum Studium unterschiedlicher Logiken eingeführt (35 Seiten). [Ger91] M. Gertz: Transformation von Integritätsbedingungen in Transaktionsspezifikationen. Diplomarbeit, Informatik, Universität Dortmund, 1991. Aufbauend auf dem Ansatz von [Lip89] wird hier ein Verfahren angegeben, mit dem die Überwachung von (temporalen) Integritätsbedingungen in Transaktionsspezifikationen eingebaut werden kann. Besonderes Schwergewicht liegt 182 LITERATURVERZEICHNIS dabei auf der Berechnung von Formeln, die unter der Transaktion invariant sind (es wird gewissermaßen eine Extension der minimale Änderung“” Defaults berechnet). Die Implementierung ist Bestandteil des ICE-Projektes (157 Seiten). [Gin89] M. L. Ginsberg: A circumscriptive theorem prover. Artificial Intelligence 39 (1989), 209–230. In dieser Arbeit wird ein Beweiser für die Circumscription vorgeschlagen, auch die Erweiterung auf allgemeine Defaults wird diskutiert. Dagegen wird die Erweiterung auf Prioritäten und Formeln mit Variablen nur grob skizziert. Außerdem wird das Verständnis durch die Bezugnahme auf TruthMaintenance-Systeme und vielwertige Logiken erschwert (22 Seiten). [GL89] M. Gelfond, V. Lifschitz: Compiling circumscriptive therories into logic programs. In Non-Monotonic Reasoning (2nd International Workshop), 74– 99, LNAI 346, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird versucht, allgemeine Klauseln mit Circumscription in logische Programme zu übersetzen. Allerdings ist dies nur unter großen Einschränkungen möglich (26 Seiten). [GL90] U. Griefahn, S. Lüttringhaus: Top-down integrity constraint checking for deductive databases. In D. H. D. Warren, P. Szeredi (eds.), Logic Programming, Proc. of the Seventh International Conference, 130–144, MIT Press, 1990. In dieser Arbeit ein Algorithmus zur Überprüfung von Integritätsbedingungen in deduktiven Datenbanken vorgeschlagen, der Teile früherer SLDNF-Beweise in und/oder-Bäumen abspeichert, um so die Erfüllung der Bedingung vor der Änderung auszunutzen (15 Seiten). [GMN84] H. Gallaire, J. Minker, J.-M. Nicolas: Logic and databases: A deductive approach. Computing Surveys 16 (1984), 153–185. Dies ist der klassische Übersichtsartikel zu deduktiven Datenbanken. Die Autoren haben das Gebiet ja auch durch die von ihnen organisierten Konferenzen wesentlich beeinflußt. Inzwischen gibt es natürlich eine ganze Reihe neuerer Entwicklungen (33 Seiten) [Gog90] M. Gogolla: Datalog — Eine deduktive Datenbanksprache. Skript, Informatik, Techn. Univ. Braunschweig, 1990. Dieses Vorlesungsskript enthält eine Einführung in deduktive Datenbanken mit den logischen Grundlagen, den Antwortalgorithmen und Optimierungen (z.B. magic sets“) (98 Seiten). ” [GP86] M. Gelfond, H. Przymusinska: Negation as failure: Careful closure procedure. Artificial Intelligence 30 (1986), 273–287. In dieser Arbeit wird eine Vervollständigung vorgeschlagen, die im wesentlichen eine Erweiterung der GCWA um variable Prädikate ist (entsprechend der Variablen-Circumscription). Der Antwortalgorithmus beruht auf der Zer- LITERATURVERZEICHNIS 183 legung einer beliebigen Klauselmenge in mehrere Hornklauselmengen. Allerdings ist der Algorithmus im allgemeinen unvollständig (15 Seiten). [GPP86] M. Gelfond, H. Przymusinska, T. Przymusinski: The extended closed world assumption and its relationship to parallel circumscription. In Proc. of the Fifth ACM SIGACT-SIGMOD Symp. on Principles of Database Syst. (PODS’86), 133–139, 1986. In dieser Arbeit wird eine Variante der CWA eingeführt, die unter der Annahme von UNA und DCA der Variablen-Circumscription entspricht (7 Seiten). [Gre69] C. C. Green: Theorem-proving by resolution as a basis for questionanswering systems. In B. Meltzer, D. Michie (eds.), Machine Intelligence, volume 4, 183–205. Edinburgh University Press, 1969. In dieser Arbeit wird erklärt, wie man aus einem Resolutionsbeweis Antworten extrahieren kann. Insbesondere wird auch der Begriff der disjunktiven Antwort eingeführt (23 Seiten). [GZC89] R. H. Güting, R. Zicari, D. M. Choy: An algebra for structured office documents. acm Transactions on Information Systems 7:2 (1989), 123–157. In dieser Arbeit wird eine Algebra zur Manipulation genesteter Listen von Tupeln definiert. Auch die Bedeutung von Nullwerten wird untersucht (35 Seiten). [HK89] D. Hofbauer, R.-D. Kutsche: Grundlagen des maschinellen Beweisens. Vieweg, Braunschweig, 1989. Besondere Merkmale dieses Lehrbuchs über automatisches Beweisen sind, daß es versucht, etwas Ordnung in die zahlreichen Möglichkeiten zur Verbesserung der Resolventenmethode zu bringen, daß es auch nicht-Resolventenverfahren kurz skizziert, und daß es einen längeren Abschnitt über Termersetzung enthält. Allerdings wird für einige Beweise auf [CL73] verwiesen (172 Seiten). [HM87] S. Hanks, D. McDermott: Nonmonotonic logic and temporal projection. Artificial Intelligence 33 (1987), 379–412. Dies ist die klassische Arbeit über das Yale shooting problem“ im Zusam” menhang mit minimalen Änderungen bei Zustandsfolgen. In der Arbeit werden auch eine ganze Reihe von Lösungsvorschlägen unterschiedlicher Autoren besprochen (34 Seiten). [HPRV89] G. Hulin, A. Pirotte, D. Roelants, M. Vauclair: Logic and databases. In A. Thayse (ed.), From Modal Logic to Deductive Databases — Introducing a Logic Based Approach to Artificial Intelligence, volume 2, 279– 350. Wiley, 1989. In dieser Arbeit wird die modelltheoretische und die beweistheoretische Sicht für relationale Datenbanken, Hornklauseldatenbanken, Datenbanken mit Negation und mit unvollständiger Information erläutert (72 Seiten). [HS90] A. Heuer, P. Sander: Semantics and evaluation of rules over complex objects. In W. Kim, J.-M. Nicolas, S. Nishio (eds.), Deductive and Object- 184 LITERATURVERZEICHNIS Oriented Databases, First International Conference, 1989, 473–492, NorthHolland, 1990. In dieser Arbeit wird eine regelbasierte Sprache zur Formulierung von Anfragen eine Datenbank mit komplexen Objekten eingeführt. Für die Auswertung wird eine Übersetzung in verschiedene Algebren vorgeschlagen (20 Seiten). [IL84] T. Imielinski, W. Lipski: Incomplete information in relational databases. Journal of the ACM 31 (1984), 761–791. Diese Arbeit enthält einen Vorschlag für die Semantik von Nullwerten in relationalen Datenbanken. In [Kle91] wird eine Korrektur angegeben (31 Seiten). [KL89] M. Kifer, G. Lausen: F-logic: A higher-order language for reasoning about objects, inheritance, and scheme. In J. Clifford, B. Lindsay, D. Maier (eds.), Proceedings of the 1989 ACM SIGMOD International Conference on the Management of Data, 134–146, 1989. Die F-Logik ist ein Vorschlag zur Integration von Logik und ObjektOrientierung. Ein besonderes Merkmal ist, daß nicht zwischen Klassen und Instanzen unterschieden wird, sondern nur eine Verbandsstruktur benutzt wird, die den Informationsgehalt ausdrückt (13 Seiten). [Kle91] H.-J. Klein: Bemerkungen zur korrekten Auswertung von Anfragen an relationale Datenbanken mit partiellen Relationen. In M. H. Scholl (ed.), Grundlagen von Datenbanken Kurzfassungen des 3. GI-Workshops, 52–56, 1991. Erschienen als Bericht 158 des Departement Informatik der ETH Zürich. In dieser Arbeit wird ein Fehler in der relationalen Algebra von [IL84] für Relationen mit Nullwerten aufgedeckt und korrigiert (5 Seiten). [KLM90] S. Kraus, D. Lehmann, M. Magidor: Nonmonotonic reasoning, preferential models and cumulative logics. Artificial Intelligence 44 (1990), 167–207. In dieser Arbeit wird versucht, nichtmonotone Logiken von einem ganz abstrakten Ausgangspunkt zu untersuchen. Insbesondere enthält diese Arbeit auch eine Charakterisierung der Logiken, die sich über minimale Modelle beschreiben lassen. Diese Charakterisierung stimmt aber nicht mit der in [Bra90a] überein, denn hier wird auch der Modellbegriff als Parameter angesehen, während in [Bra90a] die Prädikatenlogik zugrunde gelegt wird (41 Seiten). [KLW90] M. Kifer, G. Lausen, J. Wu: Logical foundations of object-oriented and frame-based languages. Technical report, SUNY at Stony Brook / Universiät Mannheim, 1990. Dieser Forschungsbericht beschreibt eine neue Version der objekt-orientierten F-Logik, die sich von der aus [KL89] deutlich unterscheidet. Insbesondere wird jetzt auch die nichtmonotone Vererbung betrachtet. Die Semantik der Vererbung ist auch deutlich verschieden von der in [BL91] vorgeschlagenen. Im wesentlichen werden hier Werte vererbt und nicht Formeln (84 Seiten). LITERATURVERZEICHNIS [KNN90] 185 W. Kim, J.-M. Nicolas, S. Nishio (eds.): Deductive and Object-Oriented Databases, Proceedings of the First International Conference (DOOD89). North-Holland Publ.Co., Kyoto, Japan, 1990. See also: Special Issue on Deductive and Object-Oriented Databases of Data & Knowledge Engineering 5(4), (Okt. 1990). Diese Tagung bringt den allgemeinen Wunsch zum Ausdruck, deduktive und objekt-orientierte Datenbanken zu integrieren. Viele der Arbeiten waren aber noch dem einen oder anderen Lager zuzurechnen (607 Seiten). [Kon88] K. Konolige: On the relation between default and autoepistemic logic. Artificial Intelligence 35 (1988), 343–382. In dieser Arbeit wird gezeigt, daß Reiter’s Default Logik und Moore’s Autoepistemische Logik in einem gewissen Sinn äquivalent sind. Eine Korrektur von Konolidge selbst wird in [Bre91] angegeben (40 Seiten). [Kos90] G. Koschorreck: Kalküle für Anfragen und Deduktionen über komplexen Objekten. Diplomarbeit, Informatik, Universität Dortmund, 1990. In dieser Arbeit wird eine Übersicht über verschiedene Algebren, Kalküle und logische Anfragesprachen für komplexe Objekte gegeben, insbesondere hinsichtlich ihrer Ausdrucksfähigkeit (178 Seiten). [KRS88] M. Kifer, R. Ramakrishnan, A. Siberschatz: An axiomatic approach to deciding query safety in deductive databases. In Proc. of the Seventh ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS’88), 52–60, 1988. In dieser Arbeit wird ein Vorschlag für die Überprüfung der Sicherheit von Anfragen gemacht, der auch unendliche Relationen zulässt (etwa eingebaute Prädikate) und auf ähnlichen Einschränkungen wie funktionalen Abhängigkeiten basiert. Da das eigentliche Problem nicht entscheidbar ist, wird der Begriff der Supersafety“ eingeführt (9 Seiten). ” [KW91] M. Kifer, J. Wu: A first-order theory of types and polymorphism in logic programming. In Sixth Annual IEEE Symposium on Logic in Computer Science (LICS’91), 310–321, 1991. In dieser Arbeit wird eine neue Logik, der getypte Prädikatenkalkül, eingeführt, und auf die Typisierung logischer Programme angewendet. Die Logik unterstützt insbesondere alle üblichen Arten von Polymorphismus (12 Seiten). [Lif85] V. Lifschitz: Computing circumscription. In Proc. 9th International Joint Conference on Artificial Intelligence (IJCAI), 121–127, Los Angeles, 1985. In dieser Arbeit wird die priorisierte Circumscription definiert. Der Ansatz zur Berechnung der Circumscription besteht in einer syntaktischen Transformation in eine Formel erster Stufe, auf die dann ein normaler Beweiser anwendbar ist (im wesentlichen wird wie bei der CDB aus ← ein ↔ gemacht). Dies ist natürlich nur in Spezialfällen möglich (7 Seiten). [Lip89] U. W. Lipeck: Dynamische Integrität von Datenbanken. Fachberichte 209. Springer-Verlag, Berlin, 1989. Informatik- 186 LITERATURVERZEICHNIS Gegenstand dieses Buches sind Spezifikation und Überwachung von Integritätsbedingungen in temporaler Logik. Insbesondere wird gezeigt, wie diese Integritätsbedingungen in Transaktionspezifikationen hineintransformiert werden können, um so eine effiziente Überwachung zu ermöglichen (140 Seiten). [Llo87] J. W. Lloyd: Foundations of Logic Programming, 2nd edition. SpringerVerlag, Berlin, 1987. Dies ist das klassische Lehrbuch zu den theoretischen Grundlagen von Prolog, also der SLDNF-Resolventenmethode und der CDB-Semantik der Negation. In dieser neuen Auflage werden auch stratifizierte Klauselmengen, Regeln mit allgemeinen Formeln im Rumpf und typisierte Regeln besprochen (212 Seiten). [LNP+ 89] E. Lambrichts, P. Nees, J. Paredaens, P. Peelman, L. Tanca: Integration of functions in the fixpoint semantics of rule-based systems. In J. Demetrovics, B. Thalheim (eds.), Second Symposium on Mathematical Fundamentals of Database Systems (MFDBS’89), 301–316, LNCS 364, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird eine Erweiterung von Datalog um (nicht-generierende) Funktionen und komplexe Objekte vorgestellt. Die Funktionen werden wie Relationen mit einer funktionalen Abhängigkeit behandelt. Es wird ein Algorithmus zur Konsistenzprüfung im nicht-rekursiven Fall angegeben (16 Seiten). [LT84] J. W. Lloyd, R. W. Topor: Making prolog more expressive. The Journal of Logic Programming 1 (1984), 225–240. In dieser Arbeit wurde gezeigt, wie man allgemeine Formeln im Rumpf von Prolog-Regeln in normale Prolog-Regeln übersetzten kann (16 Seiten). [LU92] G. Lausen, H. Uphoff: Nicht-monotone vererbung in f-logik. In U. W. Lipeck, R. Manthey (eds.), Kurzfassungen des 4. GI-Workshops “Grundlagen von Datenbanken”, 105–109, ECRC technical report 92-13, 1992. In dieser Arbeit wird die Vererbung logischer Formeln auf der Grundlage des Ansatzes aus [KLW90] untersucht. Es wird vorgeschlagen, das Programm umzuschreiben, und im wesentlichem jeden Faktum noch die Klasse mitzugeben, aus der diese Information stammt. Dann kann unter gewissen Einschränkungen eine Regel der folgenden Art verwendet werden: “wenn aus der Klasse C die Information I stammt, und aus keiner tieferliegenden Klasse eine widersprechende Information ableitbar ist, dann gilt I”. Es werden auch Überlegungen zu “ISA-Stratifizierungen” angestellt (5 Seiten). [Luk90] W. Lukaszewics: Non-Monotonic Reasoning. Ellis Horwood, Chichester, 1990. Eine Monographie über nichtmonotones Schließen, das mit großer Vollständigkeit alle vorgeschlagenen Formalismen abhandelt (328 Seiten). [LV91] E. Laenens, D. Vermeir: On the relationship between well-founded and stable partial models. In B. Thalheim, J. Demetrovics, H.-D. Ger- LITERATURVERZEICHNIS 187 hardt (eds.), MFDBS 91 (3rd Symposium on Mathematical Fundamentals of Database Systems), 59–73, LNCS 495, Springer-Verlag, Berlin, 1991. Gegenstand dieser Arbeit ist die Semantik von “geordneten logischen Programmen”, d.h. partiell geordneten Mengen von logischen Programmen. Es sind dabei auch negative Literale im Regelkopf erlaubt. Für die Semantik werden Methoden der “well-founded” und “stable model” Semantik für klassische logische Programme herangezogen. Die Semantik berücksichtigt sehr stark die Schreibweise der Regeln. Zentral ist hier der Begriff der “competitors” zu einer Regel-Instanz, d.h. Regel-Instanzen mit inversem Kopfliteral, die nicht weiter oben in der Hierarchie stehen (15 Seiten). [Mak89] D. Makinson: General theory of cumulative inference. In Non-Monotonic Reasoning (2nd International Workshop), 1–18, LNAI 346, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird der Begriff der Kumulierung eingeführt, und es werden die bekannten Vervollständigungen auf diese Eigenschaft hin untersucht (18 Seiten). [Mak92] D. Makinson: General patterns in nonmonotonic reasoning. In D. Gabbay (ed.), Handbook of Logic in Artificial Intelligence and Logic Programming, volume 2. Oxford University Press, 1992. In dieser Arbeit wird der aktuelle Stand der Forschung in der Theorie der nichtmonotonen Folgerungsrelationen dargestellt. Die allgemeinen Begriffe werden unter anderem auf Vererbungs-Netze, Reiter’s Default Logik, maximale Extensionen und minimale Modelle angewendet (79 Seiten). [Mar91] W. Marek: Semantical description of stability. Vorgestellt auf: Nonmonotonic and Inductive Logics, 2nd International Workshop, 1991. In diesem eigeladenen Vortrag wurden verschiedene Axiomsysteme für die autoepistemische Logik diskutiert und auf die Semantik logischer Programme angewendet. [MB88] R. Manthey, F. Bry: SATCHMO: a theorem prover implemented in prolog. In E. Lusk, R. Overbeek (eds.), 9th Conference on Automated Deduction (CADE-9), 415–434, LNCS 310, Springer-Verlag, Berlin, 1988. In dieser Arbeit wird ein vorwärts schließender Beweiser vorgestellt, der in Prolog implementiert ist. Dabei werden Disjunktionen durch Fallunterscheidungen aufgelöst, ansonsten wird soweit wie möglich der unterliegende PrologInterpreter ausgenutzt. Diese Arbeit enthält auch ausführliche Angaben zu den Erfahrungen bei einigen Benchmark-Beispielen (20 Seiten). [McC80] J. McCarthy: Circumscription — a form of non-monotonic reasoning. Artificial Intelligence 13 (1980), 27–39. Dies ist der klassische Artikel über die (Prädikat-) Circumscription, der sowohl die intuitiven Hintergrund, als auch die formale Definition mit Formelschemata und minimalen Modellen behandelt (23 Seiten). 188 [McC86] LITERATURVERZEICHNIS J. McCarthy: Applications of circumscription to formalizing common-sense knowledge. Artificial Intelligence 28 (1986), 86–116. In diesem Artikel faßt McCarthy verschiedenen Entwicklungen zusammen, die seit [McC80] eingetreten sind. Er definiert u.a. die Formelcircumscription, die die wesentlich bekanntere Variablencircumscription als Spezialfall enthält. Er definiert aber auch eine Art Normalform für Theorien mit Ausnahmen (31 Seiten). [Min82] J. Minker: On indefinite databases and the closed world assumption. In D. W. Loveland (ed.), 6th Conference on Automated Deduction, 292–308, LNCS 138, Springer-Verlag, Berlin, 1982. In dieser Arbeit wurde die GCWA-Vervollständigung eingeführt, um die Konsistenzerhaltung zu garantieren. Damit machten die Annahmen der geschlossenen Welt noch einmal einen deutlichen Fortschritt. Insbesondere wurde auch die Äquivalenz von syntaktischer und semantischer Definition gezeigt, die in [BL89] auf beliebige Defaults verallgemeinert wurde (17 Seiten). [Moo85] R. C. Moore: Semantical considerations on nonmonotonic logic. Artificial Intelligence 25 (1985), 75–94. Mit dieser Arbeit wurde die autoepistemische Logik eingeführt (20 Seiten). [Mou85] H. Moulin: Choice functions over a finite set: A summary. Social Choice and Welfare 2 (1985), 147–160. Dies ist ein gut verständlicher Übersichtsartikel über die mathematische Theorie der Auswahlfunktionen (14 Seiten). [MP84] J. Minker, D. Perlis: Applications of protected circumscription. In R. E. Shostak (ed.), 7th International Conference on Automated Deduction, 414– 425, LNCS 170, Springer-Verlag, Berlin, 1984. In der Protected Circumscription“ kann die Annahme von Negationen ge” zielt verhindert werden, um unvollständige Information darzustellen. Im wesentlichen wird für jedes Prädikat p ein Prädikat e p eingeführt, das diese Ausnahmen enthält (12 Seiten). [MWW89] J.-J. Meyer, H. Weigand, R. Wieringa: A specification language for static, dynamic and deontic integrity constraints. In J. Demetrovics, B. Thalheim (eds.), 2nd Symposium on Mathematical Fundamentals of Database Systems (MFDBS’89), 347–366, LNCS 364, Springer-Verlag, Berlin, 1989. In dieser Arbeit wird eine Sprache für Integritätsbedingungen eingeführt, die auf einer dynamischen Logik mit deontischen Konstrukten basiert (20 Seiten). [NM90] U. Nilsson, J. Maluszyński: Chichester, 1990. Logic, Programming and Prolog. Wiley, Dieses ist ein Prolog-Lehrbuch, was auch die logischen Grundlagen beschreibt und auch alternative logische Programmiersprachen behandelt (289 Seiten). [NT89] S. Naqvi, S. Tsur: A Logical Language for Data and Knowledge Bases. Computer Science Press, New York, 1989. LITERATURVERZEICHNIS 189 Dieses Lehrbuch ist eine umfassende Einführung in neuere deduktive Datenbanken am Beispiel der Sprache LDL (288 Seiten). [Plü90] L. Plümer: Termination Proofs for Logic Programs. LNAI 446. SpringerVerlag, Berlin, 1990. In diesem Buch wird ein Verfahren zur automatischen Herleitung von Terminierungsbeweisen für logische Programme vorgestellt (142 Seiten). [Poo88] D. Poole: A logical framework for default reasoning. Artificial Intelligence 36 (1988), 27–47. In dieser Arbeit wurden die einfachen Defaults eingeführt, die also nur aus einer prädikatenlogischen Formel bestehen. Allerdings definiert Poole nur die maximalen Extensionen, und nicht, was bei mehreren maximalen Extensionen zu geschehen hat. Auch betrachtet er keine Prioritäten. Dafür führt er Cons” traints“ ein, die die Anwendbarkeit der Defaults beschränken (21 Seiten). [Prz89] T. C. Przymusinski: An algorithm to compute circumscription. Artificial Intelligence 38 (1989), 49–73. In dieser Arbeit schlägt Przymusinski einen Antwortalgorithmus für die Variablen-Circumscription vor, der auf der OL-Resolventenmethode basiert. Allerdings wird nicht herausgestellt, welche Defaults verwendet werden, und der Algorithmus wird nur für Klauseln ohne Variablen angegeben. Er ist dem Algorithmus in [Gin89] recht ähnlich und arbeitet wie dieser mehrphasig (im Unterschied zu dem Algorithmus in [Bra92b]) (25 Seiten). [Prz91] T. C. Przymusinski: Semantics of disjunctive logic programs and deductive databases. In C. Delobel, M. Kifer, Y. Masunaga (eds.), Deductive and Object-Oriented Databases, 2nd Int. Conf. (DOOD’91), 85–107, LNCS 566, Springer-Verlag, Berlin, 1991. In dieser Arbeit wird gezeigt, daß die stationäre Semantik logischer Programme, die als Verallgemeinerung der well-founded Semantik eigentlich eine dreiwerige Semantik ist, sich auch in der Prädikatenlogik beschreiben läßt, wenn man neue Prädikatsymbole not p einführt (23 Seiten). [Pup91] F. Puppe: Einführung in Expertensysteme, zweite auflage edition. Studienreihe Informatik. Springer-Verlag, Berlin, 1991. Dieses Buch gibt eine umfassende Einführung in Expertensysteme (215 Seiten). [Rei78] R. Reiter: On closed world data bases. In H. Gallaire, J. Minker (eds.), Logic and Data Bases, 55–76, Plenum, New York, 1978. In dieser Arbeit wurde die originale CWA eingeführt. Daneben enthält sie aber auch einige Gedanken zur Anfrageauswertung und zur Übersetzung von logischen Formeln in Ausdrücke der Relationenalgebra (22 Seiten). [Rei80] R. Reiter: A logic for default reasoning. Artificial Intelligence 13 (1980), 81–132. 190 LITERATURVERZEICHNIS In dieser Arbeit wurde die Default-Logik eingeführt. Für normale Defaults wird auch ein erster Ansatz für einen Antwortalgorithmus angegeben (allerdings mit der leichtgläubigen Sichtweise) (52 Seiten). [Rei84] R. Reiter: Towards a logical reconstruction of relational database theory. In M. L. Brodie, J. Mylopoulos, J. W. Schmidt (eds.), On Conceptual Modelling, 191–238, Springer-Verlag, Berlin, 1984. In dieser Arbeit wird der beweistheoretische Ansatz für relationale Datenbanken ausgearbeitet (im Unterschied zum üblichen modelltheoretischen Ansatz). Dabei werden insbesondere auch Nullwerte betrachtet (48 Seiten). [Rei85] M. Reinfrank: An introduction to non-monotonic reasoning. Technical Report MEMO-SEKI-85-02, Informatik, Universität Kaiserslautern, 1985. In diesem Bericht wird ein Überblick über verschiedene Formalismen des nichtmononotonen Schließens gegeben, es werden aber insbesondere auch die Anwendungen in der künstlichen Intelligenz beschrieben (127 Seiten). [Rei88] R. Reiter: What should a database know? In Proc. of the Seventh ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems (PODS’88), 302–304, 1988. In dieser Zusammenfassung seines eingeladenen Vortrags argumentiert Reiter, daß Anfragen an Datenbanken und Integritätsbedingungen in einer epistemischen Logik formuliert werden sollten (3 Seiten). [Rei92] R. Reiter: On formalizing database updates — preliminary report. In Advances in Database Technology — EDBT’92, 3rd Int. Conf., 10–20, LNCS 580, Springer-Verlag, 1992. In diesem eingeladenen Vortrag schlägt Reiter eine Formalisierung von Datenbank-Änderungen in der Logik erster Stufe vor, bei der die Extensionen aller Relationen explizit durch die Extension im vorausgegangenen Zustand definiert werden. Dies ist zwar nur für deterministische Transaktionen möglich, erspart aber Defaults und ähnliche Mechanismen zur Lösung des frame pro” blem“ (11 Seiten). [RT88] K. A. Ross, R. W. Topor: Inferring negative information from disjunctive databases. Journal of Automated Reasoning 4 (1988), 397–424. Diese Arbeit enthält einen Vorschlag für die Semantik der Negation bei logischen Programmen mit Disjunktionen (28 Seiten). [Rya91] M. Ryan: Defaults and revision in structured theories. In Proceedings of the IEEE Symposium on Logic in Computer Science (LICS’91), 362–373, 1991. In dieser Arbeit wird die Semantik von partiell geordneten Defaults definiert, wobei die natural consequences“ als Ausprägungs-Mechanismus besonders ” interessant sind (12 Seiten). [Sch87] U. Schöning: Logik für Informatiker. Reihe Informatik 56. BI, Mannheim, 1987. LITERATURVERZEICHNIS 191 Dies ist ein erfreulich knappes Lehrbuch der mathematischen Logik, in dem insbesondere auch die Grundlagen von Resolventen-Beweisern und von Prolog behandelt werden (172 Seiten). [She88] J. C. Shepherdson: Negation in logic programming. In J. Minker (ed.), Foundations of Deductive Databases and Logic Programming, 19–88, Morgan Kaufmann Publishers, Los-Altos (Calif.), 1988. Diese Arbeit enthält einen Überblick über Vorschläge für die Semantik der Negation aus der Zeit vor den stabilen und wohlfundierten Modellen. Ausführlich behandelt werden die CWA, die CDB, ihre Beziehung zu einander und zur Negation as Failure“-Regel, sowie Ansätze in dreiwertiger Logik (70 Seiten). ” [Sho87] Y. Shoham: Nonmonotonic logics: Meaning and utility. In Proc. 10th International Joint Conference on Artificial Intelligence (IJCAI), 388–393, Milan, 1987. In dieser Arbeit wurden allgemeine nicht-monotone Logiken untersucht, die auf minimalen Modellen basieren (6 Seiten). [SS86] H.-J. Schek, M. H. Scholl: The relational model with relation-valued attributes. Information Systems 11 (1986), 137–148. Diese Arbeit enthält einen Vorschlag für eine Algebra zur Manipulation geschachtelter Relationen, wobei alle Operatoren auch formal definiert sind (12 Seiten). [SS91] G. Saake, A. Sernadas (eds.): Information Systems — Correctness and Reusability, Workshop IS-CORE ’91, London, Sept. 1991, Selected Papers, Informatik-Bericht 91-03. TU Braunschweig, September 1991. Dieser Tagungsband gibt einen Überblick über die Forschungsaktivitäten im Rahmen des IS-CORE Projekts ( Information Systems — COrrectness and ” REusability“). Ziel ist dabei ein objekt-orientierter Ansatz mit formaler Semantik, die auf dem event sharing“ der einzelnen Objekte aufbaut (265 Sei” ten). [Ull88] J. D. Ullman: Principles of Database and Knowledge-Base Systems, Vol. 1. Computer Science Press, Rockville, 1988. In dieser neuen Auflage eines klassischen Lehrbuchs über Datenbanksysteme werden jetzt auch deduktive Datenbanken ausführlich behandelt (631 Seiten). [Ull89] J. D. Ullman: Principles of Database and Knowledge-Base Systems, Vol. 2. Computer Science Press, Rockville, 1989. Der zweite Band behandelt insbesondere Verbesserungen bei der Anfrageauswertung, so etwa die magic set“ Techniken zur Integration von top-down“ ” ” und bottom-up“ Auswertung (505 Seiten). ” [VGRS91] A. Van Gelder, K. A. Ross, J. S. Schlipf: The well-founded semantics for general logic programs. Journal of the Association for Computing Machinary (JACM) 38 (1991), 620–650. 192 LITERATURVERZEICHNIS Diese Arbeit beschreibt die dreiwertige well-founded“ Semantik für die Ne” gation in logischen Programmen. Es werden auch Vergleiche zu den übrigen Prolog-Semantiken angegeben (31 Seiten). [Wüt91] B. Wüthrich: Semantic improvement of deductive databases. In B. Thalheim, J. Demetrovics, H.-D. Gerhardt (eds.), MFDBS 91 (3rd Symposium on Mathematical Fundamentals of Database Systems), 216–229, LNCS 495, Springer-Verlag, Berlin, 1991. Diese Arbeit enthält einen Vorschlag für die Ausnutzung von Integritätsbedingungen zur Optimierung von Anfragen (Semantische Anfrageoptimierung). Die Methode wird auch auf die Vereinfachung von Integritätsbedingungen und Regeln angewendet (14 Seiten). [YH85] A. Yahya, L. J. Henschen: Deduction in non-horn databases. Journal of Automated Reasoning 1 (1985), 141–160. Diese Arbeit führt eine Version der CWA ein, die unter UNA und DCA äquivalent zur Prädikat-Circumscription ist. Der angegebene Antwortalgorithmus enthält allerdings einen Fehler, wie in Band 4, 1988, 109–111 gezeigt wurde (20 Seiten). [YS91] E. Yardeni, E. Shapiro: A type system for logic programs. The Journal of Logic Programming 10 (1991), 125–153. In dieser Arbeit wird ein Typsystem für logische Programme entwickelt, Typ-Inferenz und Compilezeit- sowie Laufzeit-Typprüfung werden diskutiert (29 Seiten). Index Ableitungsregeln 72 Änderungsoperationen 64 äquivalent 19 Äquivalenz bezüglich Defaults 84 Alphabet 14 Anfrage 39 Anfrageauswertung 125 Annahme der eindeutigen Namen 29 der geschlossenen Welt 101, 103 bei partiell geordneten Defaults 106 mit Prioritäten 104 Antwort Berechnung 125 definite 40 erzeugte 43 korrekte 40 minimale 40 potentielle 139 Antwortklausel 140 Antwortmenge endliche 43 Anzahl von Vervollständigungen 32 Argumentsorten 14 Ausdrucksfähigkeit 89 Ausprägung 29, 30 Axiom 26, 27 CD 84 Circumscription 35, 74, 77 CON 73 CUM 76 CWA 35, 101, 103 modifizierte 112 naive 86 originale 74, 86 starke 114 vorsichtige 101, 103 mit partiell geordneten Defaults 106 mit Prioritäten 104 Datenbank deduktive 11, 12, 26 relationale 12 Datenbankentwurf 169 Datenbankschema 14 Datenbankzustand 15 Datenmodell ER 14 relationales 14, 169 Datentyp 12, 14 DED 78 Deduktions-Eigenschaft 78 Deduktionstheorem 77 Default 28, 29 Ausprägung 29, 30 Default-Logik 74 Default-Semantik 39 Default-Spezifikation 38 Defaultlogik 27 Defaults Reiter’s 27 stark verträglich mit 86 verträglich mit 84 Begründung 139 widersprechende 142 Bereichsbeschränkung 21 für Klauseln 26 beschränkt monoton 75 193 194 DIS 79 Disjunktions-Eigenschaft für Defaults 87 Umformulierung von DED 79 Eigenschaft CD 84 CON 73 CUM 76 DDIS 87 DED 78 DIS 79 EXP 81 NCWA 87 RCUT 75 RMON 75 SCD 86 Einführung Implikation 78 Ergebnisvariablen 39 Erhaltung der Konsistenz 73 EXP 81 Expansions-Eigenschaft 81 Expertensystem 3 Extension konstruktive 116 maximale bei partiell geordneten Defaults 106 mit Prioritätsstufen 104 ohne Prioritäten 102 Faktum 129 Folgerungsregeln 72 Folgerungsrelation durch Vervollständigung gegeben 37 logische 19 vervollständigte 36 folgt logisch 19 Formel 18 atomare 18 bereichsbeschränkt 13 bereichsbeschränkte 21 Funktionssymbol 12 INDEX Gleichheit 12 Herbrand-Interpretation 16 Erweiterung 17 Redukt 17 Herbrandmodell 13 Hyperresolution 132, 133 einfache 129, 130 Implikation Einführung 78 konstruktive 116 Integritätsbedingung 13, 47, 48 Interpretation 16 Herbrand 16 Klausel 25 bereichsbeschränkte 26 konsistent 19 konsistenzerhaltend 73 Konsistenzerhaltung 32 Konstante 14 Kopf-Literal 129 kumulierend 76 Lernen, maschinelles 33 linksstabil 72 Literal 24 auswertbares 129 Kopf- 129 negatives 24 positives 24 Rumpf- 129 Logik 11, 13 allgemeine 12 autoepistemische 28 Default 74 Default- 27 deontische 11 dynamische 11 epistemische 11 temporale 11 logisch äquivalent 19 INDEX 195 Modell 19 Herbrand- 13 intendiertes 30 minimales 31, 89 Modell-Beziehung 19, 25 Monotonie 74 beschränkte 75 SQL 136 stärker als 83 Standardprädikat 12 stratifiziert 52 String 14 Substitution 20 Symbol 14 Namen eindeutige 16, 29 NCWA-Eigenschaft 87 Nullwerte 3, 16, 50, 58 Teilsignatur 15 Term 18 Terme Auswertung 19 Testdatengenerierung 33 Typisierung 11 Typprädikat 12 Typprüfung 12, 14 Objekte komplexe 11 OL-Resolution 151 ORACLE 135 Ordnung, partielle 89 Prädikat 14 eingebautes 12 Priorität 28, 29 von Default-Ausprägungen 30 Prolog 35, 40, 43 Rahmenregel 64 RCUT 75 Regel 129 RMON 75 Rumpf-Literal 129 SCD 86 Schema 14 Schlüssel 13 Schnittregel 75 beschränkte 75 schwächer als 83 Semantik von Defaults 39 Signatur 13, 14 Semantik 15 unabhängig von 42 skeptisch 116 Sorte 14 UNA 16, 29 Unabhängigkeit von der Signatur 42 Updates 64 Variablenbelegung 18 Variablendeklaration 17 verträglich mit Defaults 84 mit Prioritätsrelation 114 Vervollständigung 30, 34 modelltheoretische 12, 30 schwächste 83 stärkste 83 syntaktische 35 Wissenserwerb 33 Zahl 14 Zeichen 14 logische 14 Zeichenkette 14 Zustand 15 Zweierpotenzen 43 196 LEBENSLAUF 197 Lebenslauf Name: Stefan Braß Geburtsdatum: 09.08.1964 Geburtsort: Hannover Konfession: evangelisch-lutherisch Familienstand: ledig Eltern: Prof. Dr. Helmut Braß Gisela Braß, geb. Lüder Geschwister: Peter (∗ 28.11.1967) Schulausbildung: 1970–1974 1974–1978 1978–1983 09.05.1983 Grundschule Bremerhöhe, Clausthal–Zellerfeld Graf-Stauffenberg-Gymnasium, Osnabrück Gaußschule, Braunschweig Abitur (Gesamtzensur 1.0) Mitarbeit im Katastrophenschutz: 1982–1991 Helfer beim Technischen Hilfswerk Studium: 01.10.1983 24.09.1985 02.09.1988 Immatrikulation an der TU Braunschweig im Diplom-Studiengang Informatik Diplom-Vorprüfung (Gesamtnote Sehr gut“) ” Diplom (Gesamtnote Mit Auszeichnung“) ” Berufstätigkeit: 03.10.1988 Wissenschaftlicher Mitarbeiter am Lehrstuhl VI –31.07.1990 des Fachbereichs Informatik der Universität Dortmund seit 01.08.1990 Wissenschaftlicher Mitarbeiter am Institut für Informatik der Universität Hannover