6 Wissensbasierte Informationssysteme Motiviation I Bisherige Realisierungsmittel für Informationssysteme (z.B. Datenbanken) stellen ausgefeilte Mechanismen zur Verwaltung einfach strukturierter Daten zur Verfügung. I Je nach Anwendungskontext ist die Speicherung von Informationen in dieser einfachen Form nicht adäquat oder zu aufwendig. I Zur Erinnerung: Aus Daten wird durch geeignete Interpretation in einem gegebenen Kontext Information. Die Interpretationsvorschriften und der Kontext sind bei den bislang betrachteten IS’en beinahe trivial. I Wissensbasierte Informationssysteme (WBIS) speichern ebenfalls Daten, bieten aber andere/mächtigere Interpretationsmöglichkeiten bzw. speichern neben einfachen Daten ( Faktenwis” sen“) auch noch gewisse Interpretationsvorschriften in Form von weiteren Daten ( Regelwissen“). ” I WBIS’e sind Datenbanksysteme“ mit semantisch reicheren Datenmodellen (die Grenzen zwischen ” semantischen Datenmodellen und Wissensrepräsentationsmodellen sind fließend!) und mächtigeren (nämlich regelbasierten) Anfragesprachen. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-1 6.1 6.1.1 Was ist ein wissensbasiertes System? Wissensrepräsentation I Wissen: sehr allgemeiner Begriff I umfasst insbesondere folgende Aspekte: Faktenwissen: . positives Wissen: Autos haben vier Räder. . negatives Wissen: Autos können nicht fliegen. Regelwissen: Wenn A ein Mensch ist, dann ist A ein Lebewesen. globales“ Wissens: Die Eltern der Eltern sind die Großeltern. ” lokales“ Wissen: Die Mehrwertsteuer (in Deutschland im Jahre 2001) beträgt 16%. ” I Weitere, schwierigere Aspekte: Ungenauigkeit: ⇒ Fuzzy Logic . Gerd ist ca. 30 Jahre alt. . Das Wetter ist schön. Zeitliche Veränderungen ⇒ Temporal/Modal Logic Ausnahmen: Pinguine sind zwar Vögel, können aber nicht fliegen. ⇒ Non-Monotonic Logic Widersprüche, Unsinn“: Gerd ist 29 Jahre und 30 Jahre alt. ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-2 I Werkzeuge für die Beschreibung/Repräsentation von Wissen: Aussagenlogik: . Aussagen, denen ein Wahrheitswert wahr“ oder falsch“ zugeordnet werden kann. ” ” . Aussagen können mit logischen Verknüpfungen ∧ (und), ∨ (oder) bzw. ¬ ( nicht“) ver” knüpft werden. . In der Aussagenlogik gelten feste Gesetze, unter anderem: 1. F ∧ ¬F = falsch 2. F ∨ ¬F = wahr . Dabei ist 1 die Grundlage für Widerspruchsbeweise! Aussagenlogik i.a. zu schwach für praktisch relevante Dinge (bei der Wissensrepräsentation) . Aussagen können nur für einzelne Objekte, nicht über Menge von Objekten gemacht werden. . Es können keine Aussagen der Form für alle . . . gilt: . . . oder es gibt ein . . ., für das gilt: . . . formuliert werden. . Objekte könnnen nicht strukturiert werden. Prädikatenlogik: Erweitert die Aussagenlogik um . Variablen . Quantoren: ∀ ( für alle“) und ∃ ( es gibt (mindestens) ein“) ” ” . Funktionen c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-3 I Prädikatenlogik ist ein sehr mächtiges Werkzeug: volle Turing-Berechenbarkeit Grundlage für viele theoretische Gebiete der Mathematik, Informatik und anderer Wissenschaften Grenzen: . Semi-Entscheidbarkeit: Es gibt Formeln, für die kein Algorithmus existiert, der testet, ob diese Formel wahr oder falsch ist. . Die Prädikatenlogik ist exakt, d.h. keine Verarbeitung von Wahrscheinlichkeiten, Ungenauigkeiten, zeitlichen Abhängigkeiten, . . . . In vielen praktischen Fällen wird die Prädikatenlogik erster Stufe verwendet, wo nur über Individuen, aber nicht über Funktionen oder Prädikate quantifiziert werden kann. Grund: Für die allgemeine Prädikatenlogik gibt es kaum Entscheidbarkeits- und Berechenbarkeitsresultate c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-4 I Erweiterungen: diverse Logiken“, die eine Veränderung der üblichen“ Logik vornehmen, um derartige Varia- ” ” tionen beschreiben zu können: . probabilistische Logiken, Fuzzy-Logiken: beschreiben gewisse Unsicherheiten . temporale Logiken: beschreiben zeitliche Abhängigkeiten (u.a. für Transaktionsmanagement !) . modale Logiken: beschreiben, dass bestimmte Aussagen nur in bestimmten Umgebungen gelten. . Objekt-Logiken: können objektorientierte Konzepte adäquat beschreiben . ... Allerdings haben diese Logiken auch ihre Schattenseiten: . große Probleme bei der Entscheidbarkeit und den notwendigen Algorithmen . Aussagekraft für die angestrebten Anwendungen trotzdem ggf. nicht gewährleistet Manchmal können diese Logiken in die Prädikatenlogik erster Stufe überführt werden: . Vorteil: Alle Sätze und Algorithmen der Prädikatenlogik erster Stufe können angewendet werden. . Nachteil: eigentlich enthalten diese Logiken dann nur syntactic sugar“ (oft ist natürlich ” eine adäquate Syntax auch schon sehr hilfreich!) c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-5 6.1.2 Bezug zu Relationalen Datenbanken Auch relationale Datenbanken haben einen engen Bezug zur Prädikatenlogik. Wir haben dort ebenfalls eine prädikatenlogische Sprache (zur Abfrage von DB-Inhalten) zur Verfügung, den Relationenkalkül. Die Relationen einer relationalen (SQL-) Datenbank können als extensional gespeicherte mehrstellige Prädikate aufgefasst werden: (a, b, c) ∈ R ... ... ... ... Tupel (a, b, c) ist in Relation R enthalten“ ” a, b, c stehen in der Relation R“ ” a, b, c erfüllen das Prädikat R“ ” Prädikat R(a, b, c) ist wahr“ ” Eine DB-Anfrage wie z.B.: Welcher Mitarbeiter arbeitet an welchen Projekten mit?“ kann formuliert ” werden I als SQL-Anfrage: SELECT FROM WHERE m.Name, p.ProjName Mitarbeiter m, ProjMitarb pm, Projekte p m.PersNr = pm.PersNr AND pm.ProjNr = p.ProjNr c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-6 I als SQL-Viewdefinition: CREATE VIEW WerWas(Name, ProjName) AS SELECT m.Name, p.ProjName ...(wie oben) ... Hier wird mittels der Abfrage eine neue abgeleitete (oder virtuelle) Relation definiert. Diese kann später in nachfolgenden Anfragen wie eine gespeicherte (Basis-) Relation verwendet werden. I im (Domain-) Relationenkalkül: {(MN, P N) | ∃M#, P # : Mitarbeiter(M#, MN, , ) ∧ ProjMitarb(M#, P #, ) ∧ Projekte(P #, P N, , )} Prozedurale Interpretation: in der DB werden Belegungen für die Variablen derart gesucht, dass der Bedingungsteil der Formel wahr wird. Danach werden Ergebnistupel nach der Konstruktionsvorschrift gebildet und in einer Menge aufgesammelt. (Die Zeichen “ stehen für einmal verwendete, anonyme, existentiell gebundene Variablen, s. ” unten) c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-7 I als logische Schlussfolgerung: WerWas(MN, P N) ⇐ Mitarbeiter(M#, MN, , ) ∧ ProjMitarb(M#, P #, ) ∧ Projekte(P #, P N, , ) dabei sind MN, P N, . . .“ Variablen mit entsprechenden Wertebereichen ” Gleichheit von Komponenten ( Querbeziehungen“) wird durch Auftreten derselben Variablen ” ausgedrückt das Zeichen “ steht für eine anonyme Variable, die sonst nirgends auftritt (d.h. jedes Vor” kommen von “ bezeichnet eine neue solche Variable!) ” alle Variablen sind implizit als universell quantifiziert zu denken: ∀M#, MN, . . . alternative (äquivalente) Quantifizierung: Variablen, die nur auf der rechten Seite auftreten (M#, P #, . . .) sind existentiell quantifiziert die obige Implikation definiert ein neues Prädikat WerWas(N, P ) mit Hilfe einer Kombination von existierenden Prädikaten (Relationen) die obige Implikation ist eine Regel“ der allgemeinen Form: ” P0 ⇐ P1 ∧ P2 ∧ . . . ∧ Pn . c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-8 6.1.3 Rekursive Anfragen I Beobachtung: Es gibt (einfache) Anfragen, die mit relational vollständigen Sprachen (z.B. Algebra, Kalkül) nicht formulierbar sind. I Beispiele: Vorfahren“ (ancestors): ” gegeben: Relation Eltern(E, K) Tupel he, ki bedeutet Person e ist Elternteil von Person k“ ” gesucht: alle Vorfahren / Nachfahren von Person p Stückliste“ (parts explosion, BOMP“): ” ” gegeben: Relation ST L(OT, UT, ANZ) gesucht: alle Einzelteile (evtl. mit Anzahl) zu einem End- / Zwischenprodukt t Wegesuche“ (path queries): ” gegeben: Relation Wegstück (von, nach, Entfernung) gesucht: kürzester / längster Weg von a nach b Viele weitere Beispiele, z.T. mit komplexen Berechnungen und/oder Nebenbedingungen c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-9 I Problem: Relationale Operationen (z.B. Algebra) können jeweils nur einen Schritt der Ableitung berechnen. ⇓ Es fehlt ein Schleifen“-Konstrukt zur Hüllenberechnung ( transitive Hülle“). ” ” I Möglicher Ansatz: Rekursive Formulierung (☞ Fixpunktberechnung“) ” I Vgl. rekursiv definierte Prädikate: 8 > eltern(adam,kain). > > > > < eltern(adam,abel). eltern(eva,kain). Fakten > > > eltern(eva,abel). > > : eltern(abel,sem). 8 < vorfahre(X,Y) vorfahre(X,Y) Regeln : geschwister(X,Y) ⇐ eltern(X,Y). ⇐ vorfahre(X,Z) ∧ eltern(Z,Y). ⇐ eltern(Z,X) ∧ eltern(Z,Y). I Wunsch: Erweiterung von relationalen DBMSen um Regeln + Inferenzfähigkeiten ☞ deduktive Datenbanken ☞ erweiterte Abfragesprachen,z.B. Datalog ☞ vgl. logische Programmiersprachen, z.B. PROLOG c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-10 6.1.4 Charakterisierung: Wissensbasiertes Informationssystem I Ein wissensbasiertes Informationssystem bietet Möglichkeiten, Wissen in adäquater Form darzustellen und abfragen zu können. I Leistungsfähige wissensbasierte Systeme: ermöglichen Abfragen, die über übliche Datenbankanfragen hinausgehen. typische Struktur: . Menge von Fakten . Menge von Regeln . Deduktionskomponente, die eine Anfrage aufgrund der vorliegenden Fakten und Regeln beantworten kann. . Intern basiert ein solches System auf einer der vorgestellten Logiken. . In bestimmten Fällen werden statt logischen“ Regeln auch sog. Produktionsregeln verwen” det: Diese feuern“ eine der möglichen Regeln, etwa um ein technisches System zu steuern. ” Bezug zur Logik oft nicht vorhanden ⇒ Verständnis, was genau passiert, ist oft schwierig. Ähnliches gibt es auch in Datenbanksystemen: Trigger-Mechanismen . Benutzerschnittstellen: graphisch, textuell I Es gibt auch eine Programmiersprache (PROLOG, s. Übungen), die nach diesem Schema funktioniert ⇒ Logische Programmierung“ ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-11 6.2 6.2.1 Exkurs: Logische Grundlagen Aussagenlogik I Formeln der Aussagenlogik sind aus aussagenlogischen Variablen A1, A2, . . ., die die Wahrheitswerte 0 (false) und 1 (true) annehmen können, sowie den Verknüpfungssymbolen ¬, ∧, ∨, ⇒, ⇔ zusammengesetzt. I Jede aussagenlogische Formel repräsentiert eine boolesche Funktion in ihren aussagenlogischen Variablen (d.h., jede aussagenlogische Formel kann wahr oder falsch sein) Definition 6-1: (Aussagenlogische Formel) Sei eine Menge A1, A2, . . . , An von sog. atomaren Formeln vorgegeben. Eine (aussagenlogische) Formel F (über dieser geg. Menge von atomaren Formeln) ist induktiv definiert: 1. Wenn F = 0 oder F = 1 oder F = Ai eine atomare Formel ist, so ist F eine Formel. 2. Wenn F eine Formel ist, so auch ¬F ( Negation“). ” 3. Wenn F und G Formeln sind, so auch (F ∧ G) ( Konjunktion“) und (F ∨ G) ( Disjunktion“). ” ” Eine Formel G, die als Teil einer Formel F auftritt, heißt Teilformel von F . Die vollständige Klammerung nach der o.a. Definition ist oft zu unleserlich, dann lassen wir Klammern weg und vereinbaren die Präzedenz der log. Operatoren wie folgt: ¬ vor ∧ vor ∨. Die Operatoren ⇒ und ⇔ sind wie üblich ableitbar. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-12 Semantik logischer Formeln I Die Menge B = {0, 1} ist die Menge der Wahrheitswerte. I Eine Belegung ist eine Funktion A, die den in einer Formel F vorkommenden atomaren Formeln einen Wahrheitswert zuweist. Für eine atomare Formel A bezeichnet A(A) den Wahrheitswert von A unter der Belegung A. I Belegungen A werden auf beliebige (aus atomaren Formeln zusammengesetzte) Formeln erweitert: A(0) = 0 A(1) = A(¬F ) = 1 ( 1, A((F ∧ G)) = A((F ∨ G)) = 0, ( 1, 0, ( 1, 0, falls A(F ) = 0 sonst falls A(F ) = 1 und A(G) = 1 sonst falls A(F ) = 1 oder A(G) = 1 sonst c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-13 I Sei F eine Formel und A eine Belegung. Wenn A für alle in F vorkommenden Variablen definiert ist, so heißt A zu F passend. I Wenn A zu F passend ist und A(F ) = 1, so schreiben wir A |= F ( F gilt unter der Belegung ” A“ oder A ist ein Modell für F“). ” I Eine Formel F heißt erfüllbar, wenn F mindestens ein Modell besitzt; andernfalls heißt F unerfüllbar. I Eine Menge von Formeln M heißt erfüllbar, falls es eine Belegung A gibt, die für jede Formel in M ein Modell ist. I Eine Formel F heißt gültig (Tautologie), wenn jede zu F passende Belegung ein Modell für F ist. Notation: |= F . Satz 6-1: Eine Formel F ist eine Tautologie genau dann, wenn ¬F unerfüllbar ist. I Wenn zwei Formeln F und G unter jeder (zu F und G passenden) Belegung denselben Wahrheitswert haben, so heißen F und G (semantisch) äquivalent: F ≡ G. I Es gilt F ≡ G genau dann, wenn |= (F ⇔ G). (Anmerkung: ⇔“ ist ein syntaktisches Verknüpfungszeichen, ≡“ eine semantische Eigenschaft ” ” und genau dann, wenn“ ein Konstrukt der Metasprache!) ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-14 I Anwendung des Satzes: Wenn F die Form einer Implikation hat F = ((G1 ∧ G2 ∧ . . . ∧ Gn ) ⇒ H), dann folgt, dass F eine Tautologie ist, gdw. ¬F unerfüllbar ist, also wenn ¬F = ¬((G1 ∧ G2 ∧ . . . ∧ Gn ) ⇒ H) = ¬(¬(G1 ∧ G2 ∧ . . . ∧ Gn ) ∨ H) = ¬(¬G1 ∨ ¬G2 ∨ . . . ∨ ¬Gn ) ∨ H) ≡ (G1 ∧ G2 ∧ . . . ∧ Gn ∧ ¬H) unerfüllbar ist. I Anstelle von ((G1 ∧G2 ∧. . .∧Gn ) ⇒ H) ist eine Tautologie“ sagt man auch H ist eine Folgerung ” ” von (G1 ∧ G2 ∧ . . . ∧ Gn )“, in Zeichen: (G1 ∧ G2 ∧ . . . ∧ Gn ) |= H. I Die Erfüllbarkeit ( Satisfiability“) von aussagenlogischen Formeln lässt sich grundsätzlich immer, ” jedoch i.a. nur mit sehr großem Aufwand (das Problem ist N P-vollständig), mit Hilfe von Wahrheitswertetafeln feststellen. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-15 6.2.2 Hornklauseln Eine praktisch wichtige Spezialform logischer Formeln sind die sog. Hornformeln (nach dem Logiker Alfred Horn). I Begriffe: positives Literal: eine atomare Formel negatives Literal: eine negierte atomare Formel Klausel: Disjunktion von Literalen Konjunktive Normalform (KNF) einer Formel: Umformung in eine Konjunktion von Klauseln I Eine Formel F heißt Hornformel, wenn F in KNF vorliegt und jede Klausel in F höchstens ein positives Literal enthält. Beispiel: F = (A ∨ ¬B) ∧ (¬C ∨ ¬A ∨ D) ∧ (¬A ∨ ¬B) ∧ D ∧ ¬E. (∗) I Hornklauseln mit genau einem positiven Literal heißen definite Hornklauseln.Beispiele: F = (A ∨ ¬B ∨ ¬C) , F = A , F = (¬A ∨ B ∨ ¬C ∨ ¬D) I Hornklauseln ohne positives Literal heißen Zielklauseln. Beispiel: F = (¬A ∨ ¬B ∨ ¬C) I Die leere Klausel F = () ist auch eine Zielklausel. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-16 I Eine Hornklausel kann anschaulicher als Implikation geschrieben werden, etwa entspricht F = (A ∨ ¬B ∨ ¬C) der Implikation (B ∧ C) ⇒ A. Das obige Beispiel (∗) entspricht in der Implikationsschreibweise F ≡ (B ⇒ A) ∧ (C ∧ A ⇒ D) ∧ (A ∧ B ⇒ 0) ∧ (1 ⇒ D) ∧ (E ⇒ 0). I In Vorbereitung auf die PROLOG-Schreibweise können wir F auch wie folgt notieren: A ⇐ B, D ⇐ C ∧ A, ⇐ A ∧ B, ⇐ , ⇐ E D c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-17 6.2.3 Prädikatenlogik I Die Prädikatenlogik ist eine Erweiterung der Aussagenlogik. Es kommen hinzu: Quantoren (∃ – Existenzquantor und ∀ – Allquantor), Funktions- und Prädikatsymbole. Damit sind Sachverhalte ausdrückbar, die in der Aussagenlogik nicht beschreibbar waren. Zum Beispiel die Konvergenz einer Zahlenfolge f gegen einen Grenzwert a: Für alle ε > 0 gibt es ein n0, so dass für alle n ≥ n0 gilt, dass abs(f (n) − a) < ε.“ ” Die wesentlichen Bestandteile sind die sprachlichen Konstrukte für alle“ und es gibt“ sowie die ” ” Verwendung von Funktionen (abs, f , −) und Relationen (>, ≥, <). I Syntaktische Bestandteile einer prädikatenlogischen Formel müssen separat vorab festgelegt werden, in der sog. Signatur: Zeichen, die für Funktionen stehen; Zeichen, die für Prädikate (Relationen) stehen; . . . jeweils mit ihren Stelligkeiten! Zum Beispiel: f . . . 3-stelliges Funktionssymbol, a . . . 0-stelliges Funktionssymbol, P . . . 2-stelliges Prädikatsymbol c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-18 I 0-stellige Funktionen sind Konstanten (typischerweise verwendet man hierfür die Symbole a, b, c, . . . oder a1, a2, . . .). Weiterhin sei eine Menge von Variablen vorgegebenen, typischerweise mit x, y , z oder x1, x2, . . . bezeichnet. I Prädikatenlogische Terme (über der geg. Signatur) werden wie folgt definiert: 1. Jede Variable ist ein Term. 2. Wenn f ein k-stelliges Funktionssymbol ist und t1, . . . , tk Terme, so ist f (t1, . . . , tk ) ein Term. I Prädikatenlogische Formeln (über der geg. Signatur) ergeben sich nun zu: 1. Falls P ein k-stelliges Prädikatsymbol ist und t1, . . . , tk Terme, so ist P (t1, . . . , tk ) eine Formel. 2. Für jede Formel F ist auch ¬F eine Formel. 3. Für alle Formeln F, G sind auch (F ∧ G) und (F ∨ G) Formeln. 4. Falls x eine Variable ist und F eine Formel, so sind auch ∀x : F und ∃x : F Formeln. Atomare Formeln sind genau die nach 1 aufgebauten. Wenn F eine Formel ist und F als Teil einer Formel G auftaucht, dann heißt F Teilformel von G. I Oft werden Formeln ohne explizite Angabe einer Signatur aufgeschrieben. Aus der Verwendung der Funktions- und Prädikatsymbole folgt unmittelbar deren Stelligkeit (beachte, dass innerhalb einer Formel diese Symbole jedoch mit einheitlicher Stelligkeit verwendet werden müssen). c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-19 Weitere Begriffe I Die Matrix einer Formel F ist diejenige Formel F ∗, die man aus F durch Streichen aller Quantoren samt der dahinterstehenden Variablen erhält. I Alle Vorkommen von Variablen in einer Formel werden in freie und gebundene Vorkommen unterteilt: Variable x kommt in F gebunden vor, wenn x in einer Teilformel von F der Form ∀x : G oder ∃x : G vorkommt, andernfalls ist dieses Vorkommen von x in F frei. Beachte: dieselbe Variable kann in einer Formel an verschiedenen Stellen frei und gebunden vorkommen! I Eine Formel ohne Vorkommen einer freien Variablen heißt geschlossen oder eine Aussage. (Formeln mit freien Variablen werden oft so interpretiert, dass implizit alle freien Variablen ganz außen allquantifiziert sind.) I Unter einer bereinigten Formel versteht man eine solche, bei der keine zwei Quantoren dieselbe Variable binden (dies kann durch Umbenennung immer erreicht werden). c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-20 Semantik der Prädikatenlogik Zur Auswertung werden Funktionssymbole durch bestimmte Funktionen und Prädikatsymbole durch bestimmte Relationen interpretiert. Dies geschieht durch Angabe einer Struktur A = (M, f1, . . . , fk , P1, . . . , Pm ), bestehend aus einer nichtleeren Grundmenge M und den Funktionen fi und Relationen Pj , die in ihrer Stelligkeit jeweils denen der Signatur entsprechen. I Soll eine Funktion f aus einer Struktur A von dem Funktionssymbol f der Signatur unterschieden werden, so schreibt man für erstere auch f A und analog für Prädikate. I Eine Interpretation einer prädikatenlogischen Formel erfolgt durch komponentenweises Interpretieren der Funktions- und Prädikatsymbole: Der Term t = (f (x1, a, g(x2, x1)) wird in einer Struktur A mit Grundmenge M und gegebenen Funktionen f A (3-stellig), aA (0-stellig) und g A (2-stellig) interpretiert durch eine 2-stellige Funktion t A, die Paare von Elementen m1, m2 der Grundmenge M auf f A(m1, aA, g A(m2, m1)) ∈ M abbildet. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-21 Definition 6-2: (Semantik prädikatenlogischer Formeln) Sei F eine Formel ohne freie Variablen und A eine Struktur, die zur selben Signatur gehören. Dann heißt A zu F passend. Wir definieren, ob A ein Modell für F ist (A |= F ) oder nicht (A 6|= F ): 1. Falls F die Form F = ¬G hat, so ist A |= F gdw. A 6|= G. 2. Falls F die Form F = (G ∧ H) hat, so ist A |= F gdw. A |= G und A |= H. 3. Falls F die Form F = (G ∨ H) hat, so ist A |= F gdw. A |= G oder A |= H. 4. Falls F die Form F = ∀x : G hat, so ist A |= F gdw. für alle Elemente m ∈ M gilt: A[x/m] |= G. (Hierbei bedeutet A[x/m], dass bei Auswertung von G für x der Wert m einzusetzen ist.1) 5. Falls F die Form F = ∃x : G hat, so ist A |= F gdw. ein Element m ∈ M existiert, für das gilt: A[x/m] |= G. 6. Falls F eine atomare Formel ist, also die Form F = P (t1, . . . , tk ) hat, so sind wegen der rekursiven Auswertung bereits alle in den Termen ti vorkommenden Variablen an Grundwerte gebunden. Wir bezeichnen die Gesamtheit dieser Bindungen mit [x/m]. Dann gilt A |= F gdw. P A(t1A[x/m], . . . , tkA[x/m]) gilt.2 1 A[x/m] heißt auch eine erweiterte Struktur, da neben den Funktions- und Prädikatsymbolen nun noch weitere Symbole – hier eine Variable – festgelegt wurden. 2 Hier werden erweiterte Strukturen auch auf Terme t angewandt. Falls t die Variable x ist, gilt t A[x/m] = m, sonst erfolgt die Auswertung eines Terms wie unter A. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-22 I Beispiel: Sei A = (R, <) die algebraische Struktur der reellen Zahlen mit der kleiner“-Relation. ” Als Prädikatsymbol verwenden wir ebenfalls <“. Es gilt (die reellen Zahlen bilden eine dichte ” Menge): (R, <) |= ∀x : ∀y : (x < y ⇒ ∃z : (x < z ∧ z < y )) Dieselbe Formel gilt in einer anderen Struktur (z.B. in den natürlichen Zahlen) nicht: (N, <) 6|= ∀x : ∀y : (x < y ⇒ ∃z : (x < z ∧ z < y )) I Wenn für jede zu F passende Struktur A gilt A |= F , so ist F (allgemein-) gültig (|= F ). Falls es mindestens ein Modell für F gibt, so heißt F erfüllbar, andernfalls unerfüllbar. I Die Begriffe Folgerung“, Äquivalenz“, usw. aus der Aussagenlogik können offensichtlich auf die ” ” Prädikatenlogik übertragen werden. I Auch hier gilt der Satz: Eine Formel F ist gültig genau dann, wenn ¬F unerfüllbar ist. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-23 Bemerkungen I Die Prädikatenlogik ist ausdrucksstärker als die Aussagenlogik. Dennoch können nicht alle mathematischen Aussagen in der Prädikatenlogik formuliert werden. Eine noch mächtigere Sprache erhalten wir z.B., wenn auch über Prädikat- und Funktionssymbole quantifizieren dürfen: F = ∀P : ∃f : ∀x : P (f (x)). Dies ist eine Formel der sog. Prädikatenlogik zweiter Stufe, die wir hier nicht betrachten. In der o.a. Prädikatenlogik erster Stufe ( 1PL“) sind also Prädikate und Funktionen Objekte ” zweiter Stufe, während die Elemente des Grundbereichs M solche erster Stufe sind. Nur über letztere darf quantifiziert werden! I Genauer haben wir hier die engere Prädikatenlogik“ ohne Identität definiert. In der vollen 1PL darf ” auch noch ein Gleichheitszeichen zwischen zwei Termen stehen. Eine Formel t1 = t2 gilt in einer Struktur A gdw. t1A = t2A gilt. Die volle 1PL wird hier nicht betrachtet, da sie im Resolutionskalkül Schwierigkeiten macht. I Die hier behandelten (Aussagen-, Prädikaten-) Logiken sind klassiche Logiken, in denen Aussagen entweder wahr oder falsch sind (und nicht beides). In nicht-klassischen Logiken können Aussagen z.B. auch möglicherweise wahr“ sein (→ Modallogik) oder irgendwann (in der Vergangenheit ” ” oder Zukunft) wahr“ sein (→ temporale Logik). c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-24 6.2.4 Normalformen der Prädikatenlogik Zwei prädikatenlogische Formeln F und G sind äquivalent gdw. für alle zu F und G passenden Strukturen A gilt: A |= F gdw. A |= G. Äquivalenzen der Aussagenlogik gelten auch in 1PL. Zur Umformung in sog. Normalformen benötigt man noch Äquivalenzen mit Quantoren: Satz 6-2: Seien F und G beliebige Formeln. Es gilt: 1. ¬∀x : F ≡ ∃x : ¬F ¬∃x : F ≡ ∀x : ¬F 2. (∀x : F ∧ ∀x : G) ≡ ∀x : (F ∧ G) (∃x : F ∨ ∃x : G) ≡ ∃x : (F ∨ G) 3. ∀x : ∀y : F ≡ ∀y : ∀x : F ∃x : ∃y : F ≡ ∃y : ∃x : F 4. Falls x ∀x : F ∀x : F ∃x : F ∃x : F in G nicht frei vorkommt, gilt: ∧ G ≡ ∀x : (F ∧ G) ∨ G ≡ ∀x : (F ∨ G) ∧ G ≡ ∃x : (F ∧ G) ∨ G ≡ ∃x : (F ∨ G) c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-25 Einige dieser Äquivalenzregeln können dazu verwendet werden, in einer Formel die Quantoren nach ” außen“ zu schieben: Satz 6-3: Für jede Formel F gibt es eine äquivalente (bereinigte) Formel G in Pränexform. Eine Formel heißt pränex oder in Pränexform, falls sie die Form hat: Q 1 y 1 : Q 2 y 2 : . . . Qn y n : G ∗ , wobei n ∈ N, Qi ∈ {∃, ∀} und die yi paarweise verschiedene Variablen sind. In G ∗ kommt kein Quantor vor. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-26 6.2.5 Logische Interpretation von Regeln Ein DATALOG-Programm (und – zumindest der Idee nach – auch ein PROLOG-Programm) besteht aus einer Folge von (definiten) Hornklauseln. Fakten – definite Hornklauseln mit nur einem positiven Literal, Regeln – definite Hornklauseln mit mindestens einem negativen Literal. Zur Interpretation genügt eine einzige logische Schlussregel: Modus Ponens“: ” a ∧ (a ⇒ b) b Falls a wahr“ ist, und a ⇒ b“ gilt, so ist auch b wahr“. ” ” ” Diese Regel kann in zweierlei Richtungen“ verwendet werden: ” 1. Neue Fakten werden abgeleitet ( bewiesen“) aus bekannten Fakten – ausgehend von der Fakten” basis ⇒ Vorwärts-Schließen“ ” 2. Zu einer gegebenen Zielklausel werden Vorbedingungen gesucht, welche neue (Teil-) Ziele ergeben, solange bis nur noch vorhandene Fakten als Voraussetzungen gefunden wurden – ausgehend von einer Zielklausel ( Frageklausel“) ” ⇒ Rückwärts-Schließen“ ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-27 6.2.6 Resolution Unter der Resolution versteht man eine einfache, syntaktische Umformungsregel, die zum Nachweis der Unerfüllbarkeit von Formeln verwendet werden kann. Auf zwei Formeln, für die eine Bedingung zur Anwendbarkeit der Resolutionsregel gilt, wird diese angewandt; so entsteht eine neue Formel, die in weiteren Resolutionsschritten verwendet werden kann, usw. I Voraussetzungen: Die zu prüfende Formel F liegt in KNF vor (bzw. muss zunächst in KNF umgeformt werden). Sei also F = (L1,1 ∨ . . . ∨ L1,n1 ) ∧ . . . ∧ (Lk,1 ∨ . . . ∨ Lk,nk ). Dabei seien die Li,j Literale, also Li,j ∈ {A1 , A2 , . . .} ∪ {¬A1 , ¬A2 , . . .}. Wir stellen für die Resolution Formeln in KNF als Klausel-Mengen dar: F = {{L1,1, . . . , L1,n1 }, . . . , {Lk,1, . . . , Lk,nk }}. Durch die Mengennotation (in der keine Reihenfolge definiert ist und die mehrfach auftretende Literale zu einem verschmelzt) sind Vereinfachungen durch Idempotenz, Kommutativität und Assoziativität bereits automatisch“ vorgenommen. ” Wir verwenden für die Klauselmenge, die einer Formel F so zugeordnet wird, auch das Symbol F und sprechen analog auch von Erfüllbarkeit oder Äquivalenz bei Klauselmengen. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-28 I Resolution: Seien K1, K2 und R Klauseln. Dann heißt R Resolvent von K1 und K2, falls es ein Literal L gibt mit L ∈ K1 und L ∈ K2 und R die Form hat: R = (K1 − {L}) ∪ (K2 − {L}), wobei L definiert ist als L= ( ¬Ai , falls L = Ai , Ai , falls L = ¬Ai . Die leere Menge kann auch als Resolvent auftreten (K1 = {L} und K2 = {¬L}), sie wird mit 2“ bezeichnet. Dieses Symbol repräsentiert eine unerfüllbare Formel bzw. den Wahrheitswert 0. ” Eine Klauselmenge, die das Symbol 2 enthält, wird als unerfüllbar definiert. I Der Resolutionskalkül ist korrekt (keine erfüllbare Formel wird als vermeintlich unerfüllbar erkannt) und vollständig (jede unerfüllbare Formel wird erkannt) bzgl. der Unerfüllbarkeit einer Formelmenge: Satz 6-4: (Resolutionssatz) Eine Klauselmenge F ist unerfüllbar genau dann, wenn es eine Deduktion der leeren Klausel aus F gibt; dies ist eine Folge von Klauseln K1, K2, . . . , Kn = 2 mit der Eigenschaft, dass für jedes i die Klausel Ki entweder Bestandteil von F ist oder ein Resolvent zweier Klauseln Ka und Kb mit a, b < i. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-29 Beispiel Resolutionsbeweis Die Formel F = (A ∨ ¬C)(A ∨ B ∨ C)(¬A ∨ ¬B ∨ ¬C)(¬A ∨ B)(¬B ∨ C) ist unerfüllbar. Dies zeigt die folgende Deduktion, dargestellt anhand eines Beweisgraphen“: ” {A, ¬C} {A, B} {A, B, C} {¬A, ¬B, ¬C} {¬A, B} {¬B, C} {¬B, ¬C} {B} {¬B} 2 c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-30 6.3 DATALOG – Rein deklarative Logikprogramme In den Übungen betrachten wir für die general purpose“ Programmierung die Sprache PROLOG, die ” gewisse Kompromisse zwischen einer rein deklarativen, und damit streng formal fundierten Herangehensweise einerseits und eher pragmatischen Gesichtspunkten (Performance, Usability) andererseits eingeht. Im Kontext deduktiver Datenbanken findet sich eine Reinform der logischen Programmiersprachen“, ” die auf Konstrukte außerhalb der Logik verzichtet. Es handelt sich um DATALOG, eine Logik-basierte Abfragesprache für deduktive (relationale) Datenbanken. DATALOG kann verstanden werden als eine Logik-Programmiersprache wie PROLOG, allerdings ohne deren außer-logische“ Bestandteile, wie ” I Reihenfolgeabhängigkeiten zwischen Klauseln oder Teilzielen im Regelrumpf, I Cut, Fail und ähnliche Konstrukte, I Funktionssymbole, I ferner verzichtet man auf die Negation (zumindest in der einfachen Grundversion von DATALOG). Als Konsequenzen hieraus ergeben sich insbesondere I zum einen ein großes Optimierungspotential für die effiziente Ausführung, I zum anderen eine Einschränkung der Ausdruckskraft. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-31 6.3.1 Deduktive Datenbanken In einer deduktiven Datenbank (DDB) werden unterschieden: I Die extensionale DB“ (EDB): die Sammlung aller Fakten (wie in PROLOG: Hornklauseln mit ” leerem Rumpf). Vorstellung: alle Fakten über einen Funktor sind in einer entsprechenden Tabelle einer relationalen DB gespeichert (Faktenbasis), zum Beispiel: elternteil(alois,udo). elternteil(alois,heinz). elternteil(thea,udo). ... =⇒ Elternteil E K alois udo alois heinz thea udo ... ... I Die intensionale DB“ (IDB): die Sammlung aller Ableitungsregeln (Hornklauseln mit nicht-leerem ” Rumpf). Vorstellung: dies sind Viewdefinitionen“, also vorformulierte Anfragen, die wie die gespeicherten ” Fakten vom Benutzer abgefragt werden können (vgl. hierzu Abschnitt 6.1.2). Benutzer-Anfragen werden über die Anfragesprache (hier DATALOG) an das DDB-System gestellt, genau wie in PROLOG-Systemen im Anfrage-Modus (?- Prompt). c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-32 DDB- vs. PROLOG-Systeme Eine DDB kann also als ein PROLOG-System mit eingeschränkter Funktionalität aber u.U. riesig großer Faktenbasis verstanden werden. Daher ist es in DATALOG-Systemen besonders wichtig, Benutzeranfragen effizient (über eine großen Faktenbasis) auswerten zu können. Die Vorteile von DATALOG gegenüber PROLOG liegen vor allem in I der Möglichkeit, DATALOG-Programme mengenorientiert und bottom-up“, mit effizienten ” Datenbank-Operationen (Selektionen und Joins) auszuwerten; PROLOG dagegen arbeitet top” down“ und single-object-at-a-time“, indem vom Ziel ausgegangen wird und schrittweise immer ” ein Teilziel weiterverfolgt wird Beispiel 6-1: Eine Anfrage wie etwa ?- elternteil(erika,X). wird nicht (notwendigerweise) wie in PROLOG durch eine sequentielle Suche über die Faktenbasis beantwortet, sondern geht als Selektionsanfrage σE=’erika’(Elternteil)“ (in Algebra-Darstellung) bzw. ” select * from Elternteil where E=’erika’“ (in SQL) an die relationale EDB. Diese ” kann nun evtl. vorhandene Indexe o.ä. verwenden um die sequentielle Suche zu vermeiden. I dem rein deklarativen Charakter, der es gestattet, Äquivalenztransformationen an DATALOGProgrammen vorzunehmen (Anfrageoptimierung), die eine nochmals gesteigerte Berechnungsgeschwindigkeit nach sich ziehen. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-33 6.3.2 Bottom-Up Auswertung: Transitive Hülle Wir betrachten zunächst ein einfaches DATALOG-Programm, das aus der elternteil-EDB das (rekursiv) abgeleitete vorfahr-Prädikat berechnen soll (Berechnung einer Transitiven Hülle). vorfahr(V,K) :- elternteil(V,K). vorfahr(V,K) :- elternteil(E,K), vorfahr(V,E). %%% Verankerung %%% Rekursion Jeder einzelne Rekursionsschritt nach der zweiten (rekursiven Regel) kann als eine Projektions-JoinAnfrage an die relationale Faktenbasis interpretiert werden, bei dem die gespeicherte Fakten-Relation elternteil mit dem bisherigen Zwischenergebnis für vorfahr (initialisiert gemäß der Verankerung in der ersten (nicht-rekursiven) Regel mit elternteil) über einen Join verknüpft wird. Eine mögliche Ausführungsstrategie ergibt sich also unmittelbar als Iterationsverfahren über diese Projektions-Join-Ausdrücke (siehe unten). Die Iteration bricht ab, sobald keine neuen Fakten mehr abgeleitet werden können. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-34 Offensichtlich gilt mit e für elternteil, v für vorfahr, und e + für die transitive Hülle von e, LF P als least fixpoint-Operator, sowie a ◦ b = πa.1,b.2(a 1 a.2=b.1b): e1 = e(E, K) e2 = e(E, X1), e(X1, K) = e ◦ e e3 = ... e(E, X1), e(X1, X2), e(X2, K) = e ◦ e ◦ e ei = e| ◦ ·{z · · ◦ e} i mal v = e+ = ∞ [ ei = e ∪ e2 ∪ e3 ∪ e4 ∪ . . . i=1 v = LF P (x = x ◦ e ∪ e) Beachte: I . . . rekursive Gleichung für v der Form x = f (x). I Es gilt: e endlich ⇒ e + endlich ⇔ LF P (. . .) existiert. I Ferner ist dieser kleinste Fixpunkt mit dem minimalen Modell für die gegebenen Logikformeln identisch. (Fixpunkt- und modelltheoretische Semantik stimmen überein.) c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-35 Gegenüberstellung der Ausdruckskraft . . . informal, z.T. unpräzise (genauer: siehe z.B. Ullman) 1. nicht rekursives DATALOG (ohne Negation) ≡ Relationenalgebra ohne Differenz ( monotone ” RA“, RA+) 2. nicht rekursives DATALOG mit geeigneter (!) Negation ≡ Relationenalgebra º - DATALOG (mit Negation) DATALOG (ohne Negation) RA (mit Differenz) nicht-rek. DATALOG - + RA (ohne Differenz) º nicht-rek. DATALOG Anmerkungen: I Neben der hier dargestellten Fixpunkt-Semantik gibt es eine modelltheoretische Semantik für DATALOG: LFP–Semantik ≡ minimales Modell I Es gibt verschiedene Interpretationen für DATALOG (wg. Negation nicht-monoton =⇒ es ex. nicht notwendigerweise ein Fixpunkt, u.U. mehrere kleinste Fixpunkte, . . .) c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-36 Zur Berechnung von Fixpunkten 1. Naive Iteration . . . Idee: Schleife über πIm Beispiel: V1 := E; i := 1; repeat 1 Ausdruck, solange bis keine Änderung mehr Vi+1 := Vi ◦ E ∪ Vi ; until Vi+1 = Vi Wegen Monotonie gilt immer Vi ⊆ Vi+1, daher bereits bekannte Vorfahren immer neu berechnet! Abhilfe: Berechne jeweils nur ∆Vi neu Problem: 2. Semi-Naive Iteration (∆-Iteration) Im Beispiel: V0 := ∅; ∆1 := E; i := 1; repeat Vi := Vi−1 ∪ ∆i ; ∆i+1 := (∆i ◦ E) − Vi until ∆i+1 = ∅ c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-37 3. Optimierung für Anfragen nach partieller transitiver Hülle Beispiel 6-2: Vorfahren von Sem gesucht (nicht alle Vorfahren von allen!) =⇒ vgl. Relationenalgebra: Selektion vor Join sicher richtig: Q := σy =‘Sem’ (Vorfahr) = σy =‘Sem’ (LFP(. . . )) aber: sehr (!) ineffizient! besser: möglichst frühzeitige Einschränkung auf interessierenden Bereich der gesamten Transitiven Hülle Entweder: Top-Down“-Auswertung ( Depth-First-Search“, vgl. PROLOG-Backtracking) ” ” anstelle der oben beschriebenen Bottom-Up“-Strategie ( Breadth-First-Search“) ” ” Problem hierbei: keine Ausnutzung der mengenorientierten Arbeitsweise auf der EDB (keine Joins verwendet, sondern One-tuple-at-a-time“ Zugriff) ” Oder: Selektion in die Rekursion (LFP-Gleichung) hereinziehen“ ” =⇒ viele Verfahren in der Literatur vorgestellt! (z.B. Magic Set Methode“) ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-38 Anwendung Naive Iteration Beispiel 6-3: Vi+1 := Vi ◦ V1 ∪ Vi V E K 1 2 1 4 3 2 3 5 4 3 5 1 6 5 Beobachtung: viele redundante Berechungen! Abhilfe: verwende (auf einer Seite des Joins) nur die im letzten Iterationsschritt neu hinzugekommene Information (⇒ Delta-Iteration“) ” Dies führt auf die sog. Semi-Naive Iteration“. ” c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-39 6.3.3 SQL: Rekursive Vereinigung (recursive union) I Syntax (vereinfacht):3,4 WITH rectable (attr 1, attr 2, . . ., attr n) AS ( SFW-Statement1 /* Rekursionsinitialisierung */ UNION ALL SFW-Statement2 ) /* Rekursionsschritt */ SELECT [DISTINCT] attrliste, aggregatfunktionen FROM rectable [WHERE . . . ] [GROUP BY . . . ] [HAVING . . . ] [ORDER BY . . . ] Erläuterungen: 1. 2. 3. 4. 5. 6. 7. Die WITH-Klausel enthält eine sog. “Common Table Expression” in SQL 3 SFW-Statement1 darf keine DISTINCT-Klausel enthalten. Es muss UNION ALL angegeben werden SFW-Statement2 überlichweise ein JOIN, bei dem auf rectable Bezug genommen wird. Rekursion endet, wenn in einem Schritt keine weiteren Tupel mehr hinzukommen. Der Anwender muss selbst auf Terminierung achten (Endlos-Schleifen möglich!) Logisches Ausführungsmodell: semi-naive Iteration (siehe Abschnitt 6.3.2) 3 Syntax sowie Einschränkungen (siehe Erläuterungen (1.–6.) von DB2 übernommen. Entspricht i.w. dem SQL3-Standard. 4 Oracle unterstützt diese Form nicht. Dafür eine eigene (stärker eingeschränkte) Form rekursiver Abfragen. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-40 I Beispiel 6-4: Stückliste: welches Unterteil in welcher Anzahl im jew. (Ober-) Teil enthalten: Stueckliste Teil UTeil Anzahl 00 01 5 00 05 3 01 02 2 01 03 3 01 04 4 01 06 3 02 05 7 02 06 6 03 07 6 04 08 10 04 09 11 05 10 10 05 11 10 06 12 10 06 13 10 07 12 8 07 14 8 Abbildung 6-1: Stückliste ... derselbe Sachverhalt als Gozintograph dargestellt: 00 5 01 3 2 6 05 10 10 03 3 02 7 06 10 10 11 4 3 12 8 10 13 04 6 10 07 08 11 09 8 14 Abbildung 6-2: Gozintograph c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-41 R1: Ermittle alle Teile (und deren Anzahl), die benötigt werden, um Teil 01 zu fertigen.“ ” WITH RecRel(Teil, UTeil, Anzahl) AS ( SELECT init.Teil, init.UTeil, init.Anzahl FROM Stueckliste init WHERE init.Teil = ‘01’ UNION ALL SELECT kind.Teil, kind.UTeil, kind.Anzahl FROM RecRel vater, Stueckliste kind WHERE vater.UTeil = kind.Teil ) SELECT Teil, UTeil, Anzahl (∗) FROM RecRel c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-42 Dies führt zu folgender Ergebnisrelation: Erg1 Duplikate =⇒ =⇒ Teil 01 01 01 01 02 02 03 04 04 06 06 05 05 06 06 07 07 UTeil 02 03 04 06 05 06 07 08 09 12 13 10 11 12 13 12 14 Menge 2 3 4 3 7 6 6 10 11 10 10 10 10 10 10 8 8 Initialisierungsschritt oberes“ SQL-Stmt ” 1. Rekursionsschritt 2. Rekursionsschritt Hinweis: Erg1 ohne Duplikate: ☞ SELECT DISTINCT in (∗) verwenden c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-43 R2: Bestimme die Unterteile und deren Anzahl, die benötigt werden, um ein Exemplar des Teils ” 01 herzustellen.“ Lösung ( von Hand“): ” 1. Wir ermitteln, welche Unterteile in welcher Anzahl in Teil 01 eingehen: Teil 02: Anzahl = 2 Teil 03: Anzahl = 3 Teil 04: Anzahl = 4 Teil 06: Anzahl = 3 2. Dann ermitteln wir für jedes Teil aus Schritt 1, welche Unterteile in welcher Anzahl in Teil 01 (!) eingehen: Teil 02 besteht aus: Teil 05 mit Anzahl = 7, damit Anzahl von Teil 05 bzgl. Teil 01: 7 ∗ 2 = 14 usw. 3. Dann ermitteln wir für jedes Teil aus Schritt 2, welche Unterteile in welcher Anzahl in Teil 01 (!) eingehen: Teil 05 besteht aus: (Unter-)Teil 10 mit Anzahl = 10, damit Anzahl von Teil 10 bzgl. Teil 01: 10 ∗ 14 = 140 usw. 4. Dies führen wir analog solange durch, bis wir keine weiteren Unterteile mehr erhalten. 5. Da einige Unterteile in verschiedene (Ober-)Teile eingehen (wie z.B. die Teile 06 und 12), müssen wir unsere in Schritt 1 bis 4 ermittelte Teile-Anzahl-Liste noch verdichten“, indem ” wir den Bedarf mehrfach in der Ergebnisliste vorhandener Teile addieren. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-44 Dies führt zu folgenden Iterationsschritten mit folgenden Ausgaben“: ” Teil 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 UTeil 02 03 04 06 05 06 07 08 09 12 13 10 11 12 13 12 14 Anzahl 2 3 4 3 14 12 18 40 44 30 30 140 140 120 120 144 144 Bem. Init. 1. Iter. 2. Iter. über Weg5 02-01 03-01 04-01 06-01 05-02-01 06-02-01 07-03-01 08-04-01 09-04-01 12-06-01 13-06-01 10-05-02-01 11-05-02-01 12-06-02-01 13-06-02-01 12-07-03-01 13-07-03-01 Die Anzahlen der mehrfach verwendeten Unterteile 6, 12 und 14 aufaddiert führt dann zu folgender Ergebnistabelle (geordenet nach UTeil): Resultat Teil 01 01 01 01 01 01 01 01 01 01 01 01 01 UTeil 02 03 04 05 06 07 08 09 10 11 12 13 14 Ges.bedarf 2 3 4 14 15 18 40 44 140 140 294 150 144 5 siehe Gozintograph in Abb. 6-2 c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-45 Dieses Ergebnis liefert auch die folgende SQL-Anfrage: WITH RecRel(Teil, UTeil, Anzahl) AS ( SELECT init.Teil, init.UTeil, init.Anzahl FROM Stueckliste init WHERE init.Teil = 01 UNION ALL SELECT vater.Teil, kind.UTeil, vater.Menge ∗ kind.Anzahl FROM RecRel vater, Stueckliste kind WHERE vater.UTeil = kind.Teil ) SELECT Teil, UTeil, SUM(Anzahl) AS Gesamtbedarf“ ” FROM RecRel GROUP BY Teil, UTeil ORDER BY Teil, UTeil c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-46 R3: Beschränkung der Tiefensuche: Ermittle alle Teile (und deren Anzahl) bis Stufe 2, die ” benötigt werden, um Teil 01 zu fertigen.“ Resultat: WITH RecRel(Stufe, Teil, UTeil, Anzahl) AS ( SELECT 1 § , init.Teil, init.UTeil, init.Anzahl FROM Stueckliste init WHERE init.Teil = ‘01’ UNION ALL SELECT vater.Stufe + 1 § , kind.Teil, kind.UTeil, kind.Anzahl FROM RecRel vater, Stueckliste kind WHERE vater.UTeil = kind.Teil vater.Stufe < 2 ¶ AND ) SELECT Teil, Stufe, UTeil, Anzahl FROM RecRel Teil 01 01 01 01 02 02 03 04 04 06 06 Stufe 1 1 1 1 2 2 2 2 2 2 2 UTeil 02 03 04 06 05 06 07 08 09 12 13 Anzahl 2 3 4 3 7 6 6 10 11 10 10 § Initialisierung und Inkrementierung Stufenzähler ¶ Kontrolle der Rekursionstiefe c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-47 6.4 Unscharfes Wissen I Wissen kann auf unterschiedliche Weise unsicher“ sein: ” statistisch: 80% aller Gelbsucht-Patienten haben Hepatitis. disjunktiv: . Der Täter entkam mit einem VW oder mit einem Opel. in Logik: flucht(VW) ∨ flucht(Opel) . Telemans Konzert. Nr. 9 für Flöte wurde das erste Mal zwischen 1743 und 1745 gespielt. formal: premiere(telemann, 9, {1743, 1744, 1745}) oder auch premiere(telemann, 9, 1743)∨ premiere(telemann, 9, 1744)∨ premiere(telemann, 9, 1745) vage: Für verschiedene mögliche Werte werden Präferenzen oder Wahrscheinlichkeiten ange- geben, z.B.: . Peter ist ca. 30 Jahre alt. . eine mögliche formale Darstellung: alter(Peter, {28 : 0.5, 29 : 1, 30 : 1, 31 : 1, 32 : 0.5}) linguistische Beschreibungen: Statt einer zahlenmässigen Bewertung werden oft auch sprachliche Konstrukte direkt verwendet: . Es ist sehr wahrscheinlich, dass Peter 31 ist oder auch . Es ist sehr wahrscheinlich, dass Peter ungefähr 31 ist. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-48 6.4.1 Fuzzy-Logik Definition 6-3: Eine Sicherheitsskala ist eine linear geordnete Menge mit kleinstem Element 0 (false) und größten Element 1 (true). I Beispiele: die rationalen Zahlen im Intervall: C1 := [0, 1] C2 := {0 < 0.3 < 0.5 < 0.7 < 1} C3 := {0 < unwahrscheinlich < wahrscheinlich < sehr wahrscheinlich < 1} I Die grundlegenden Arbeiten zu Fuzzy-Logik (und den sog. Fuzzy-Mengen) wurde von Lofty Zadeh bereits 1965 vorgeschlagen. I Wir beschreiben hier eine verbesserte Alternative, in der insbesondere val(F ∧ ¬F ) = 0 gilt. I In der Fuzzy-Logik werden logische Operationen nach folgenden Grundprinzipien ausgewertet: val(F ∧ G) = min(val(F ), val(G)) val(F ∨ G) = max(val(F ), val(G)) val(¬F ) = I av = ( 0 1 ( 0 1 wenn v > 0 sonst wenn v > 0 sonst wird auch Heyting-Komplement genannt. I Beispiel: für C1 : val(alter(Peter, 30) : 0.2 ∧ alter(Peter, 31) : 0.3) = 0.2 c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-49 I Ein Fuzzy-Relation zu einer Sicherheitsskala S ist eine Menge von Tupeln, denen jeweils ein Sicherheitswert > 0 (!) zugeordnet wird: P : dom(A1) × . . . × dom(An ) → S I Ein Fuzzy-Datenbankschema besteht aus einer Sicherheitsskala, einer Menge von Tabellen über S und und einer Menge von Integritätsbedingungen. I Beispiel: d b c 1 0.7 0.1 d d c b c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 0.8 0.3 6-50 6.4.1.1 Inferenzmechanismen in der Fuzzy-Logik I Eine Fuzzy-Datenbank korrespondiert zu einer Fuzzy-Anfrage-Auswertung CX : L0Quer y → C die sich in natürlicher Weise ergibt: ( µ wenn a : µ ∈ X 1. CX (a) = 0 sonst 2. CX (¬F ) = a CX (F ) 3. CX (F ∧ G) = min(CX (F ), CX (G)) 4. CX (F ∨ G) = max(CX (F ), CX (G)) 5. CX (∃xH(x)) = max{µ|c : µ ∈ CAns(X, H[x])} 6. CX (∀xH(x)) = min{µ|c : µ ∈ CAns(X, H[x])} 7. CAns(X, H[x]) = {c : µ|µ = CX (H[c]) > 0} I Eine Anfrage F wird dann auch mit einer Sicherheitsstufe µ versehen, d.h. es muss getestet werden, ob gilt X ` F : µ ⇔ CX (F ) ≥ µ. I Wenn F für ein festes µ gefolgert werden kann, dann natürlich auch für jedes µ0 < µ. I Manchmal sind auch Intervallanfragen sinnvoll: X ` F : [µ, ν] ⇔ µ ≤ CX (F ) ≤ ν c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-51 6.4.1.2 Update-Operationen in Fuzzy-Datenbanken I In eine Fuzzy-Datenbank können Atome der Form a : µ bzw. ¬a : µ eingetragen werden. I Semantik: ( X − {a : ν} ∪ {a : µ} wenn CX (a) = ν < µ Upd(X, a : µ) = X sonst ( X − {a : ν} wenn CX (a) = ν ∧ µ > 0 Upd(X, ¬a : µ) = X sonst I Fuzzy-Datenbanken sind üblicherweise nicht vollständig, d.h. für viele Anfragen F gilt weder X ` F : 1 noch X ` F : 0. I Zur Wissensintegration wird eine weitere Operation verwendet: ( X − {a : ν} ∪ {a : (ν + (1 − ν)µ)} wenn CX (a) = ν > 0 Int(X, a : µ) = X − ∪{a : µ} wenn CX (a) = 0 c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-52 I Erweiterung von Informationen: Eine Fuzzy-Datenbank Y erweitert eine Fuzzy-Datenbank X, (X ≤ Y ), wenn gilt: ∀a : µ ∈ X : µ ≤ CY (a) I Eine Erweiterung kann also im wesentlichen durch zwei Operationen erfolgen: Hinzufügen weiterer Tupel Senken der Unsicherheit bei bestehenden Tupeln. I Beispiel: d b 0.9 0.7 ≤ d b c 0.9 0.7 0.1 ≤ c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme d b c 1 0.7 0.1 6-53 6.4.1.3 Operationen auf Fuzzy-Relationen I Zur Beantwortung von Anfragen kann eine Menge von Operatoren verwendet werden, die eine direkte Erweiterung der Relationenalgebra sind. I Im einzelnen: Selektion: wie in der Relationenalgebra Projektion: . bei der Duplikateleminierung setzt sich bei wertgleichen Tupeln die maximale Sicherheit“ ” durch: Dies wird durch einen Normalisierungsschritt beschrieben: Norm(R) := {t : µ|t : µ ∈ R ∧ ¬(∃t 0 : µ0 ∈ R : t = t 0 ∧ µ0 > µ)} . πf uz zy [A1, . . . , An ](R) := Norm(π[A1, . . . , An ](R)) Kreuzprodukt: P ×f uzzy Q = {(p1, . . . , pm , q1, . . . , qm ) : min(µ, ν))|c : µ ∈ P ∧ d : ν ∈ Q} Join: aus kartesischem Produkt, Selektion und Projektion (wie in der Relationenalgebra) Vereinigung: P ∪f uzzy Q = Norm(P ∪ Q) Differenz: P −f uzzy Q = {(c1, . . . , cm ) : µ|(c1, . . . , cm ) : µ ∈ P ∧ ¬∃(c1, . . . , cm ) : µ ∈ Q} c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-54 I Analog zum sicheren Tupelkalkül gilt folgende Aussage: Jede berechenbare Formel in der Fuzzy-Logik kann durch die gegebene FuzzyRelationenalgebra berechnet werden. I d.h. diese Vorgehensweise ist korrekt und vollständig. I Es sind noch weitere Anfragetypen möglich: ( true wenn µ = CX (F ) > 0 Ans(X, F ) = false sonst Ans(X, F : µ) = ( true false wenn CX (F ) ≥ µ sonst Ans(X, G : µ) = {v |CX (G[v ]) ≥ µ} I Vorsicht: Für µ = 0 sind diese Anfragen domänenabhängig! c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-55 6.4.1.4 Ableitungsregeln in einer Fuzzy-Wissensbasis I Analog zu einem PROLOG-Programm oder einer deduktiven Datenbank besteht eine FuzzyWissensbasis aus einer Fuzzy-Datenbank X Ableitungsregeln I Hierbei können verschiedenartige Ableitungsregeln verwendet werden: 1. Einfache Regeln haben die Form a ← l1, . . . , lk und verändern X gemäß r (X) := Upd(X, a : ν), wenn CX (l1 ∧ . . . ∧ lk ) = ν > 0 2. Gewichtete einfache Regeln haben die Form a ←g l1, . . . , lk mit der Gewichtung g ∈ (0, 1] und verändern X gemäß r (X) := Upd(X, a : gν), wenn CX (l1 ∧ . . . ∧ lk ) = ν > 0 3. Allgemeine Regeln haben die Form a : µ ← l1 : ν1, . . . , lk : νk und verändern X gemäß r (X) := Upd(X, a : ν), wenn X ` l1 : ν1 ∧ . . . ∧ lk : νk c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-56 I Obwohl diese Regeln ähnlich wie Horn-Klauseln aussehen, kann es zu Problemen kommen (sog. nicht-monotones Verhalten). I Beispiel: Es gilt {p(c) : 0.5} ` p(c) : [0.4, 0.6], aber {p(c) : 0.7} 6` p(c) : [0.4, 0.6], obwohl gilt {p(c) : 0.5} ≤ {p(c) : 0.7}. I Beispiel: X = r (c) : 0.9 R = {p(x) : 1 ← q(x) : [0.4, 0.6] ∧ r (x) : 0.8, q(x) : 0.5 ← r (x) : 0.5, q(x) : 0.8 ← p(x) : [0, 0.5]} Dann sind zwei unterschiedliche Welten“ möglich: ” 1. {{r (c) : 0.9, q(c) : 0.5, p(c) : 1}, {r (c) : 0.9, q(c) : 0.8}} 2. {{r (c) : 0.9, q(c) : 0.8}} c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-57 6.5 Literaturhinweise Bancilhon, Francois und R. Ramakrishnan (1986). An Amateur’s Introduction to Recursive Query Processing Strategies. In: Proc. ACM SIGMOD Conf. on Management of Data, S. 16–52, Washington, DC. Ceri, S., G. Gottlob und L. Tanca (1990). Logic Programming and Databases. Springer. Clocksin, W.F. und C. Mellish (1990). Programmieren in PROLOG . Springer Verlag. (oder die entsprechende englische Originalfassung, ebenfalls Springer, 1981, 1984, 1987). Lloyd, J. (1987). Foundations of logic programming. Springer, 2 Aufl. Minker, Jack, Hrsg. (1988). Foundations of Deductive Databases and Logic Programming. Morgan Kaufmann, Los Altos, CA. Schöning, Uwe (1989). Logik für Informatiker . B.I. Wissenschafts-Verlag. Sterling, L. und E. Shapiro (1987). The Art of Prolog. MIT Press. Wagner, G. (1998). Foundations of Knowledge Systems. Kluwer. c M. Scholl, 2005/06 – Informationssysteme: 6. Wissensbasierte Informationssysteme 6-58