9 Wissensbasierte Informationssysteme Motiviation ➢ Bisherige Realisierungsmittel für Informationssysteme (z.B. Datenbanken) stellen ausgefeilte Mechanismen zur Verwaltung einfach strukturierter Daten zur Verfügung. ➢ Je nach Anwendungskontext ist die Speicherung von Informationen in dieser einfachen Form nicht adäquat oder zu aufwendig. ➢ 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. ➢ Wissensbasierte Informationssysteme (WBIS) speichern ebenfalls Daten, bieten aber andere/mächtigere Interpretationsmöglichkeiten bzw. speichern neben einfachen Daten ( Fak” tenwissen“) auch noch gewisse Interpretationsvorschriften in Form von weiteren Daten ( Regelwissen“). ” ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-1 9.1 9.1.1 Was ist ein wissensbasiertes System? Wissensrepräsentation ➢ Wissen: sehr allgemeiner Begriff ➢ 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%. ” ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-2 ➢ 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“) ” verknü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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-3 ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-4 ➢ Erweiterungen: ❏ diverse Logiken“, die eine Veränderung der üblichen“ Logik vornehmen, um derartige ” ” Variationen 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: ✧ grösse 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-5 9.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 . . . . . . . . ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-6 ➢ 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. ➢ im (Domain-) Relationenkalkül: {(M N, P N ) | ∃M #, P # : Mitarbeiter(M #, M N, , ) ∧ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-7 ➢ als logische Schlussfolgerung: WerWas(M N, P N ) ⇐ Mitarbeiter(M #, M N, , ) ∧ ProjMitarb(M #, P #, ) ∧ Projekte(P #, P N, , ) ❏ dabei sind M N, 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 ” Vorkommen von “ bezeichnet eine neue solche Variable!) ” ❏ alle Variablen sind implizit als universell quantifiziert zu denken: ∀M #, M N, . . . ❏ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-8 Wissensbasiertes Informationssystem ➢ Ein wissensbasiertes Informationssystem bietet Möglichkeiten, Wissen in adäquater Form darzustellen und abfragen zu können. ➢ 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 ” verwendet: – 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 ➢ Es gibt auch eine Programmiersprache (PROLOG), die nach diesem Schema funktioniert ⇒ Logische Programmierung“ ” c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-9 9.2 9.2.1 Exkurs: Logische Grundlagen Aussagenlogik ➢ 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. ➢ Jede aussagenlogische Formel repräsentiert eine boolesche Funktion in ihren aussagenlogischen Variablen (d.h., jede aussagenlogische Formel kann wahr oder falsch sein) Definition 9-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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-10 Semantik logischer Formeln ➢ Die Menge B = {0, 1} ist die Menge der Wahrheitswerte. ➢ 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. ➢ Belegungen A werden auf beliebige (aus atomaren Formeln zusammengesetzte) Formeln erweitert: A(0) = 0 A(1) = A(¬F ) = 1 ( 1, falls A(F ) = 0 A((F ∧ G)) = A((F ∨ G)) = 0, sonst ( 1, falls A(F ) = 1 und A(G) = 1 0, sonst ( 1, falls A(F ) = 1 oder A(G) = 1 0, sonst c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-11 ➢ 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. ➢ 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 “). ” ➢ Eine Formel F heißt erfüllbar, wenn F mindestens ein Modell besitzt; andernfalls heißt F unerfüllbar. ➢ 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. ➢ Eine Formel F heißt gültig (Tautologie), wenn jede zu F passende Belegung ein Modell für F ist. Notation: |= F . Satz 9-1: Eine Formel F ist eine Tautologie genau dann, wenn ¬F unerfüllbar ist. ➢ 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. ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-12 ➢ 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. ➢ 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 . ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-13 9.2.2 Hornklauseln Eine praktisch wichtige Spezialform logischer Formeln sind die sog. Hornformeln (nach dem Logiker Alfred Horn). ➢ 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 ➢ 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. (∗) ➢ Hornklauseln mit genau einem positiven Literal heißen definite Hornklauseln.Beispiele: F = (A ∨ ¬B ∨ ¬C) , F = A , F = (¬A ∨ B ∨ ¬C ∨ ¬D) ➢ Hornklauseln ohne positives Literal heißen Zielklauseln. Beispiel: F = (¬A ∨ ¬B ∨ ¬C) ➢ Die leere Klausel F = () ist auch eine Zielklausel. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-14 ➢ 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). ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-15 9.2.3 Prädikatenlogik ➢ 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 (>, ≥, <). ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-16 ➢ 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. ➢ 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. ➢ 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. ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-17 Weitere Begriffe ➢ Die Matrix einer Formel F ist diejenige Formel F ∗, die man aus F durch Streichen aller Quantoren samt der dahinterstehenden Variablen erhält. ➢ 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! ➢ 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.) ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-18 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. ➢ 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. ➢ 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 tA, die Paare von Elementen m1, m2 der Grundmenge M auf f A(m1, aA, g A(m2, m1)) ∈ M abbildet. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-19 Definition 9-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]. A[x/m] A[x/m] Dann gilt A |= F gdw. P A(t1 , . . . , tk ) gilt.Hier werden erweiterte Strukturen auch auf Terme t angewandt. Falls t die Variable x ist, gilt tA[x/m] = m, sonst erfolgt die Auswertung eines Terms wie unter A. 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. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-20 ➢ 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)) ➢ 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. ➢ Die Begriffe Folgerung“, Äquivalenz“, usw. aus der Aussagenlogik können offensichtlich auf ” ” die Prädikatenlogik übertragen werden. ➢ Auch hier gilt der Satz: Eine Formel F ist gültig genau dann, wenn ¬F unerfüllbar ist. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-21 Bemerkungen ➢ 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! ➢ 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 A gilt in einer Struktur A gdw. tA = t 1 2 gilt. Die volle 1PL wird hier nicht betrachtet, da sie im Resolutionskalkül Schwierigkeiten macht. ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-22 9.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 9-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 in G nicht frei vorkommt, gilt: ∀x : F ∧ G ≡ ∀x : (F ∧ G) ∀x : F ∨ G ≡ ∀x : (F ∨ G) ∃x : F ∧ G ≡ ∃x : (F ∧ G) ∃x : F ∨ G ≡ ∃x : (F ∨ G) c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-23 Einige dieser Äquivalenzregeln können dazu verwendet werden, in einer Formel die Quantoren nach außen“ zu schieben: ” Satz 9-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: ∗ Q1y1 : Q2y2 : . . . Qnyn : G , wobei n ∈ N, Qi ∈ {∃, ∀} und die yi paarweise verschiedene Variablen sind. In G∗ kommt kein Quantor vor. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-24 9.2.5 Logische Interpretation von Regeln 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 ” Faktenbasis ⇒ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-25 9.3 9.3.1 PROLOG – Programming in Logic Syntax und Konventionen Hornklauseln werden in PROLOG (wie oben bereits angedeutet) von rechts nach links“ notiert ” (also der Implikationspfeil in der Richtung ⇐“). Dabei gelten folgende Konventionen: ” ➢ Der Implikationspfeil ⇐ hat die Notation ... :- ...“. ” ➢ Die logische Konjunktion ∧ hat die Notation ... , ...“. ” ➢ Variablen beginnen mit einem Großbuchstaben oder dem Unterstrich. ➢ Funktions- und Prädikatsymbole beginnen mit einem Kleinbuchstaben. ➢ Konstanten: ❏ Atome: ✧ Folge von alphanumerischer Zeichen (incl. “), als 0-stellige Funktionen mit Kleinbuch” staben beginnend: john, aNTON, elke_meier, v1, . . . ✧ beliebige Zeichenfolgen in (einfachen) Anführungszeichen: ’Hans’, ’Anton Meier’, ’@1234’, . . . ❏ Integer-Konstanten: compiler-abhängiger Wertebereich c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-26 ➢ Strukturen: zusammengesetzte Terme ❏ name(k1, k2, . . . , kn) = Funktor + Komponenten(-terme) ❏ Ein Funktor ist charakterisiert durch Namen und Stelligkeit (= Anzahl Komponenten), vgl. Signatur in der Logik mann/1, elternteil/2, . . . Da PROLOG (zumindest normalerweise) nicht typisiert ist (wie die Logik), genügt die Angabe der Anzahl Argumente. ❏ Syntaktisch wichtig: kein Leerzeichen zwischen Funktorname und öffnender Klammer! ❏ Wird der gleiche Funktorname mit verschiedener Stelligkeit verwendet, so steht er für verschiedene Prädikate/Funktionen! ❏ Unterscheidung: ✧ flache Strukturen“: Komponenten sind Konstanten oder Variablen ” mann(udo). elternteil(vera, magda). besitzt(peter, winnetou, karl, may). ✧ geschachtelte (komplexe) Strukturen“: Komponenten sind wieder Strukturen ” besitzt3(peter, buch(winnetou), autor(karl, may)). besitzt2(peter, buch(winnetou, autor(karl, may))).2 2 Hier hätte auch beidesmal der Funktorname besitzt“ verwendet werden können, es wären dennoch zwei verschiedene Prädikate ” (besitzt/3 und besitzt/2) gemeint gewesen. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-27 9.3.2 PROLOG-Systeme PROLOG-Systeme sind interaktive, oft interpretierende Systeme. Nach dem Aufruf befindet man sich im Anfragemodus“, der durch einen entsprechenden System-Prompt ( ?-“) angezeigt wird. ” ” riedel @ ramsen: ~ <54> % pl Welcome to SWI-Prolog (Version 2.9.10) Copyright (c) 1993-1997 University of Amsterdam. All rights reserved. For help, use ?- help(Topic). or ?- apropos(Word). ?- Der sog. Consult“-Modus hat einen anderen Prompt ( |:“), in diesem können Regeln eingelesen ” ” werden (von Datei oder vom Terminal – Spezialdatei user“, Dateiende durch Eingabe von ” Ctrl-D). Kommentare werden durch %“ abgetrennt (bis Zeilenende), mehrzeilige Kommentare werden in ” /* ... */“ eingeschlossen. ” Eingaben werden mit einem Punkt abgeschlossen (sonst folgt eine Fortsetzungszeile, Prompt | “) und sofort ausgewertet“. ” ” c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-28 Auswerten heißt dabei: testen, ob das gegebene Zielprädikat wahr ist (Ausgabe yes“) oder falsch ” (Ausgabe no“), bzw. mit welchen Variablenbelegungen es wahr wird (Ausgabe derselben). Falls ” mehrere erfüllende Belegungen existieren, können durch Eingabe von ;“ weitere erfragt werden, ” bis no“ anzeigt, dass keine weiteren mehr existieren: ” 1 ?- [user]. |: schoen(wetter). |: schoen(vorlesung). |: ^D |: user compiled, 0.00 sec, 76 bytes. Yes 2 ?- schoen(X). X = wetter ; X = vorlesung ; No 3 ?- c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-29 9.3.3 Einführende Beispiele Fakten: (für ein 4-stelliges Prädikat, das Mitarbeiter mit Personalnummer, Name, Vorname und Abteilungsnummer beschreiben soll) mitarb(438111,’Huber’,’Inge’,2455). mitarb(446719,’Schultz’,’Herbert’,3231). mitarb(453690,’Maier’,’Karl’,3231). ... (für die Zuordnung von Mitarbeitern (über PersNr) zu Projekten (über ProjNr):) proj_ma(1,473455). proj_ma(1,483691). proj_ma(1,499246). ... c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-30 Beispiel 9-1: Anfrage Gibt es Mitarbeiter?“ ” ?-mitarb(A,B,C,D). A = 438111 B = Huber C = Inge D = 2455 ; A = B = C = D = ... 446719 Schultz Herbert 3231 Beispiel 9-2: Gibt es Mitarbeiter in der Abteilung 2455?“ ” ?-mitarb(A,B,C,2455). A = 438111 B = Huber C = Inge ... ⇒ es werden über Pattern Matching“ passende (= unifizierbare) Fakten gesucht. ” c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-31 Beispiel 9-3: Gibt es einen Mitarbeiter mit Personalnummer 446719 in Abteilung 2455?“ ” ?-mitarb(446719,A,B,2455). no Definition Projektmitarbeiter“ (Prädikat pma): Ein Mitarbeiter ist ein Projektmitarbeiter in ” Projekt x, wenn seine/ihre Personalnummer sowohl in mitarb als auch in proj_ma mit Projektnummer = x auftritt. In PROLOG als Regel formuliert: pma(Pers, Pro) :- mitarb(Pers, A, B, C), proj_ma(Pro, Pers). Danach kann dieses neue abgeleitete Prädikat abgefragt werden. Beispiel 9-4: Gibt es Projektmitarbeiter?“ und Gibt es Projektmitarbeiter für Projekt 5?“ ” ” ?-pma(X,Y). X = 438111 Y = 2 ; ?-pma(PNr,5). no ... X = 438111 Y = 4 ; X = 446719 Y = 2 ... c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-32 Beispiel 9-5: Gibt es Mitarbeiter, die an keinem Projekt mitarbeiten?“ (neues Prädikat mop) ” Beachte: not(...) erst verwenden, nachdem der negierte Term gebunden ist (s. unten)! mop(PNr):- mitarb(PNr, A, B, C), not(proj_ma(ProNr, PNr)). ?-mop(X). X = 478221 ; X = 482218 ; X = 483555 ; ... c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-33 Beispiel 9-6: Eine Faktenbasis über Personen; Interpretation elternteil(X,Y): X ist Vater oder Mutter von Y, die anderen sind selbsterklärend. mann(karl). mann(alois). mann(dieter). mann(herbert). mann(gunter). mann(ulrich). mann(udo). mann(lutz). mann(hugo). mann(fred). mann(otto). mann(heinz). mann(peter). mann(anton). mann(bert). mann(jakob). mann(manfred). mann(klaus). mann(fritz). mann(jens). mann(xaver). frau(lisa). frau(klara). frau(anna). frau(helga). frau(susanne). frau(elke). frau(ulrike). frau(inge). frau(luise). frau(magda). frau(steffi). frau(petra). frau(ruth). frau(thea). frau(christa). frau(helen). frau(maria). frau(isolde). frau(erika). frau(elsa). frau(lena). frau(vera). elternteil(alois,udo). elternteil(magda,steffi). elternteil(alois,heinz). elternteil(herbert,peter). elternteil(thea,udo). elternteil(maria,peter). elternteil(thea,heinz). elternteil(dieter,luise). elternteil(jakob,bert). elternteil(ruth,luise). elternteil(jakob,christa). elternteil(karl,fred). elternteil(jakob,isolde). elternteil(inge,fred). elternteil(elsa,bert). elternteil(otto,alois). elternteil(elsa,christa). elternteil(otto,fritz). elternteil(elsa,isolde). elternteil(otto,jens). elternteil(fritz,ulrich). elternteil(lisa,alois). elternteil(fritz,susanne). elternteil(lisa,fritz). elternteil(fritz,lena). elternteil(lisa,jens). elternteil(ulrike,ulrich). elternteil(manfred,thea). elternteil(ulrike,susanne).elternteil(manfred,elsa). elternteil(ulrike,lena). elternteil(helen,thea). elternteil(jens,elke). elternteil(helen,elsa). elternteil(jens,helga). elternteil(helen,anton). elternteil(jens,erika). elternteil(xaver,anna). verheiratet(alois,thea). elternteil(anna,elke). elternteil(xaver,magda). verheiratet(jakob,elsa). elternteil(anna,helga). elternteil(vera,anna). verheiratet(jens,anna). elternteil(anna,erika). elternteil(vera,magda). verheiratet(anton,magda). elternteil(anton,hugo). elternteil(gunter,ulrike). verheiratet(dieter,ruth). elternteil(anton,lutz). elternteil(klara,ulrike). verheiratet(otto,lisa). elternteil(anton,steffi). elternteil(gunter,jakob). verheiratet(manfred,helen).elternteil(magda,hugo). elternteil(klara,jakob). verheiratet(gunter,klara). elternteil(magda,lutz). c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-34 Weitere Beispiele Beispiel 9-7: Definiere eine Klausel für ‘x ist Vater von y’.“ ” vater(X,Y) :- elternteil(X,Y), mann(X). Beispiel 9-8: Wer ist der Vater von Helga?“ ” ?- vater(X,helga). X = jens Beispiel 9-9: Ist Jens der Vater von Helga?“ ” ?- vater(jens,helga). yes Beispiel 9-10: Definiere eine Klausel für ‘Geschwister´.“ ” geschwister(K1,K2) :elternteil(X, K1), elternteil(X, K2), K1 \= K2. Beispiel 9-11: Gib alle Geschwister von Erika aus.“ ” ?- geschwister(erika,X). X = elke ; X = helga ; X = elke ; X = helga Beachte die doppelte Ausgabe aller Geschwister (→ Warum?) c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-35 Beispiel 9-12: Sind Helga und Udo Geschwister?“ ” ?- geschwister(helga,udo). no Beispiel 9-13: Gib alle Geschwister(paare) aus“ ” ?- geschwister(X,Y). X = udo Y = heinz ; X = heinz Y = udo ; X = udo Y = heinz ; X = heinz Y = udo ; X = bert Y = christa ; ... Beachte die Mehrfach-Ausgabe aller Geschwisterpaare (→ Warum hier sogar alle viermal?) c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-36 Beispiel 9-14: Gib alle Personen aus, die mit niemandem in der Faktenbasis in Eltern-Kind” Beziehung stehen.“ Hierzu wieder zunächst die Definition mittels geeigneter Klauseln, danach die Abfrage: kein_kind(X) :- mann(X), not(elternteil(X,_)), not(elternteil(_,X)). kein_kind(X) :- frau(X), not(elternteil(X,_)), not(elternteil(_,X)). ?- kein_kind(X). X = klaus ; X = petra Alternative Lösung: person(X) :- mann(X). person(X) :- frau(X). kein_kind(X) :- person(X), not(elternteil(X,_)), not(elternteil(_,X)). Beispiel 9-15: Definiere eine Klausel für ‘x ist Großelternteil von y’.“ ” grosselternteil(E,K) :- elternteil(E,X), elternteil(X,K). Beispiel 9-16: Definiere eine Klausel für ‘x ist Großmutter von y’.“ ” grossmutter(X,Y) :- grosselternteil(X,Y), frau(X). Alternative: grossmutter(E,K) :- elternteil(E,X), elternteil(X,K), frau(E). c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-37 9.3.4 ➢ Gleichheit und Deckungsgleichheit ( Matching“) ” Eingebautes“ Prädikat: = ” term1 = term2 =⇒ PROLOG versucht, die beiden Terme zur Deckung“ zu bringen (sie zu ” unifizieren). Mögliche Fälle: 1. term1 und term2 sind Atome oder Integer-Werte: haus, auto, 123, ... Regel: Atome und Integerwerte sind immer (und nur) mit sich selbst gleich: haus = haus auto = haus 23 = 23 . . . Bedingung erfüllt . . . Bedingung nicht erfüllt . . . Bedingung erfüllt 2. term1 ist ein beliebiger Term elternteil(gunter,ulrike) = X und term2 eine freie Variable: Regel: X wird an elternteil(gunter,ulrike)“ gebunden: ” ?- elternteil(gunter,ulrike) = X. X = elternteil(gunter,ulrike) Damit ist diese Bedingung stets erfüllt bzw. erfüllbar! c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-38 3. term1 und term2 sind freie Variablen: vater(X,Y) :- X=Z, elternteil(X,Y), mann(Z). Wenn eine Bindung einer der beiden bereits vorliegt, dann wird die andere an denselben Term gebunden: ?- vater(gunter,X). X = ulrike ; X = jakob Wenn keine von beiden bislang gebunden ist, dann teilen“ sich beide fortan dasselbe noch ” unbestimmte Objekt: ?- X = Y. X = _388 Y = _388 yes c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-39 4. term1 und term2 sind Strukturen: Regel: term1 und term2 sind gleich genau dann, wenn ❏ sie den gleichen Funktor haben und ❏ sie die gleiche Anzahl von Argumenten haben und ❏ alle einander entsprechenden Argumente gleich sind. Beispiele: ❏ elternteil(klara,jakob) = elternteil(klara,X) ⇒ gleich ❏ a(b,C,d(e,F,g(h,i,j))) = a(B,c,d(E,f,g(H,i,j))) ⇒ gleich, denn: a( = a( b, ↑ B, C, ↓ c, d( = d( e, ↑ E, F, ↓ f, g( = g( h, ↑ H, i, = i, c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme j))) = j))) 9-40 9.3.5 Operatoren . . . Spezielle ( bequemere“) Schreibweise für (ausgewählte) Funktoren, z.B. für arithmetische ” Ausdrücke: x + y ∗ z“ anstelle von (in Funktorschreibweise) + (x, ∗(y, z))“ ” ” Wichtig: Operatoren in PROLOG bewirken (zunächst einmal) nicht die Ausführung der arithmetischen Operation! ➢ 3+7“ ist in PROLOG nicht dasselbe wie 10“! ” ” ➢ Denn: 3+7 ist lediglich eine andere Schreibweise für +(3,7). ➢ Die Ausführung“ (Berechnung) einer arithmetischen Operation muss explizit erzwungen ” werden (siehe später). Bei Operatoren wird unterschieden zwischen ➢ vordefinierten Operatoren ➢ benutzerdefinierten Operatoren3 3 Bei manchen PROLOG-Systemen können die vordefinierten Operatoren durch selbstdefinierte Operatoren überschrieben werden. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-41 Charakterisierung von Operatoren Name/Symbol: Funktorname oder Spezialsymbol Position des Operatorsymbols im Ausdruck: ➢ Präfix, z.B.: +7, -3, . . . ➢ Infix, Z.B.: 3+6, 7*3, . . . ➢ Postfix, z.B.: 5! Priorität: ➢ in PROLOG ist jeder Operator einer Prioritätsklasse (= Integerzahl) zugeordnet ➢ Operatoren mit höherer Priorität werden zuerst ausgewertet ➢ Beispiel: *“ hat (auch in PROLOG) eine höhere Priorität als +“ (bei Infix-Operatoren) ” ” Assoziativität: ➢ Abarbeitungsregel bei gleichberechtigten Operatoren“ ” ➢ mögliche Angaben: links-assoziativ, rechts-assoziativ ➢ Anmerkung: alle arithmetischen Operationen sind links-assoziativ, 8/4/2 wird behandelt als (8/4)/2. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-42 Einige vordefinierte PROLOG-Operatoren und -Prädikate Operator/Prädikat term1 = term2 term1 \= term2 term1 == term2 term1 \== term2 R := expr R is expr expr1 =:= expr2 expr1 =\= expr2 expr1 < expr2 expr1 > expr2 expr1 =< expr2 expr1 >= expr2 . . . +. . . . . . -. . . . . . *. . . . . . /. . . X mod Y -X +X Bedeutung Unifikation von term1 und term2 term1 und term2 dürfen nicht übereinstimmen term1 und term2 referenzieren dasselbe Objekt Negation von term1 == term2 R ist das Ergebnis der Berechnung von expr selbe Bedeutung wie R := expr der Wert von expr1 soll gleich dem Wert von expr2 sein der Wert von expr1 soll ungleich dem Wert von expr2 sein der Wert von expr1 soll kleiner als der Wert von expr2 sein der Wert von expr1 soll größer als der Wert von expr2 sein der Wert von expr1 soll kleiner oder gleich dem Wert von expr2 sein der Wert von expr1 soll größer oder gleich dem Wert von expr2 sein Addition Subtraktion Multiplikation Division X Modulo Y unäres Minus unäres Plus c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-43 9.3.6 Arithmetik in PROLOG Syntax: expr1 variable := is expr2. Beispiel 9-17: ?- X is 5 + 3. X = 8 ?- 7 is 5 + X. [Error in arithmetic expression] ?- 8 is 7 + 1. yes rest(X,Y,R) :- integer(X), integer(Y), R is X mod Y. ?- rest(10,7,R). R = 3 c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-44 Beispiel 9-18: Definition einer symmetrischen Nachfolgerfunktion“ für natürliche Zahlen4 ” successor(X,Y) :- integer(X), X >= 0, Y is X + 1. successor(X,Y) :- integer(Y), Y > 0, X is Y - 1. ?- successor(5,X). X = 6. ?- successor(X,8). X = 7. Diese symmetrische Funktion“ ist eine zweistellige Relation, die wahlweise in je einem Argument ” gebunden und ungebunden sein kann. In der jeweils ungebundenen Variablen wird ein Ergebnis ” zurückgeliefert“. In imperativen Sprachen würde man dafür zwei separate Funktionen benötigen, während hier quasi vorwärts“ wie auch rückwärts“ derselbe Funktor verwendet werden kann! ” ” 4 integer(X) prüft, ob der Wert von X ein legaler Integerwert ist. Analog: atom(X) prüft, ob X ein Atom ist, atomic(X) ob X ein Atom oder Integerwert ist, var(X) ob X eine (uninstantiierte) Variable ist. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-45 Beispiel 9-19: Definition einer symmetrischen Additionsfunktion add(X,Y,Z) :- integer(X), integer(Y), var(Z), Z is X + Y. add(X,Y,Z) :- integer(X), var(Y), integer(Z), Y is Z - X. add(X,Y,Z) :- var(X), integer(Y), integer(Z), X is Z - Y. ?- add(8,7,X). X = 15 ?- add(8,X,15). X = 7 ?- add(X,7,15). X = 8 Hier wird also ein entsprechendes dreistelliges Prädikat definiert. Dass hierbei die Fallunter” scheidung“ der gebundenen bzw. ungebundenen Variablen im Rumpf der drei Regeln explizit vorgenommen werden muss, liegt daran, dass der Operator is auf der rechten Seite keine ungebundenen Variablen zulässt. Werden in der Definition solcher symmetrischer“ Funktionen ” keine solchen Operatoren verwendet, so kann eine Fallunterscheidung u.U. entfallen! c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-46 9.3.7 ODER-Verknüpfungen Der Rumpf einer Regel ist nach der bislang behandelten PROLOG-Syntax eine Konjunktion ( ,“) ” von Termen. Solche Terme können jedoch selbst aus Disjunktionen zusammengesetzt sein: ➢ Syntax: q :- p1, p2, (p31; p32; ...; p3n), p4, ..., pk. ➢ Das Zeichen für die Disjunktion (in der Klammer) ist das Semikolon ;“ ” ➢ Die Verwendung des ODER-Symbols ermöglicht u.a. eine kompaktere Darstellung verschiedener Alternativen bei der Definition von abgeleiteten Prädikaten. (Bei gleichem Kopf stellen die Rümpfe zweier Regeln auch eine logische Disjnuktion dar.) Beispiel 9-20: Kinderlose Personen (vgl. oben) Bisherige Lösung mit zwei Regeln: kein_kind(X) :- mann(X), not(elternteil(X,_)), not(elternteil(_,X)). kein_kind(X) :- frau(X), not(elternteil(X,_)), not(elternteil(_,X)). Neue Lösung mit ODER-Verknüpfung im Rumpf einer Regel: kein_kind(X) :- (mann(X);frau(X)), not(elternteil(X,_)), not(elternteil(_,X)). c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-47 Alternative Lösungsmöglichkeit bislang: person(X) :- mann(X). person(X) :- frau(X). kein_kind(X) :- person(X), not(elternteil(X,_)), not(elternteil(_,X)). Mittels ODER-Verknüpfung: person(X) :- (mann(X);frau(X)). kein_kind(X) :- person(X), not(elternteil(X,_), not(elternteil(_,X)). c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-48 9.4 9.4.1 Auswertung von PROLOG-Regeln 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. ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-49 ➢ 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. ➢ 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 9-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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-50 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, C} {A, B} {¬A, ¬B, ¬C} {¬A, B} {¬B, C} {¬B, ¬C} {B} {¬B} 2 c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-51 9.4.2 Die Auswertungs-Strategie von PROLOG Zur Erinnerung: ➢ In ❏ ❏ ❏ konventionellen (imperativen) Programmiersprachen: Regeln“ i.a. implizit kodiert ” Auswertungs-Algorithmus explizit kodiert Trennung von Programm und Daten ➢ In ❏ ❏ ❏ logischen Programmiersprachen, speziell in PROLOG: Regeln (Klauseln) explizit kodiert Auswertungs-Algorithmus implizit gegeben, siehe oben: Unifikation + Backtracking Behandlung von Programm (Klauseln) wie Daten (optional, s. unten!) ➢ Den PROLOG zugrunde liegenden Auswertungsalgorithmus haben wir theoretisch bereits oben (bei den logischen Grundlagen) besprochen. ➢ Wir konkretisieren hier diesen Algorithmus und lernen dann Einflussmöglichkeiten des Programmierers kennen. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-52 Die Warren Abtract Machine“ (WAM) ” Im folgenden verwenden wir zur Darstellung der PROLOG-Auswertungsstrategie die sog. Warren ” Abstract Machine (WAM)“ bzw. eine graphische Darstellung derselben. Sie verwendet ein Boxenmodell“ für die Auswertung von (Teil-)Zielen: ” CALL EXIT FAIL REDO Jede Box ordnet jedem (Teil-)Ziel vier Ports zu: ➢ zwei für den Aufruf (Call, Redo) Call: Über diesen Port wird der erste Aufruf eines Zieles dargestellt Redo: Über den Redo-Port wird ein erneuter Aufruf innerhalb des Backtracking, d.h. zur Suche nach einer weiteren Möglichkeit, das Ziel zu erfüllen, dargestellt ➢ zwei für das Verlassen des (Teil-)Ziels (Exit, Fail) Exit: Über Exit wird das Ziel verlassen, falls der Aufruf erfolgreich war Fail: Über Fail wird es verlassen, wenn das Ziel nicht erfüllbar war c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-53 Auswertungsstrategie am Beispiel ?- geschwister(erika, X). geschwister(erika,X) geschwister(K1,K2) :elternteil(X,K1), elternteil(X,K2), K1 \= K2. 0 1 0 1 2 3 elternteil(X1,erika) ? elternteil(X1,erika) ? redo 1 elternteil(jens,erika) elternteil (anna,erika) (K1) (K1) 2 redo 2 elternteil(jens,K2) ? elternteil(jens,elke) 2 elternteil(jens,K2) ? elternteil(jens,helga) (K2) (X) elternteil(jens,erika) erika \= helga erika \= elke fail fail true true ; X fail elternteil(anna,K2) ? elternteil(anna,elke) (K2) (X) 3 elke elternteil(jens, K2) ? (K2) (X) 3 X 2 redo 3 3 erika \= erika erika \= elke fail fail! helga ; c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme . . . (K2) (X) true X elke ; [ BACKTRK1 ] 9-54 9.4.3 Dynamische Veränderungen der Regel- und Faktenbasis Details hierzu siehe Übungen! Es gibt in PROLOG-Systemen die Möglichkeit, zur Laufzeit die verwendete Fakten- und Regelbasis zu ändern ( Selbstmodifikation“ des laufenden Programms!) ” ➢ Hinzufügen ( Nachladen“) existierender Klauselsammlungen aus Dateien (consult/1, ” reconsult/1) ➢ Hinzufügen einzelner neuer Klauseln am Anfang oder Ende der bisherigen Regelbasis (asserta/1, assertz/1) ➢ Löschen einzelner Regeln (retract/1) ➢ Löschen aller Klauseln zu einem Funktor (abolish(Funktor,Stelligkeit)) Wichtig: Diese Operationen werden beim Backtracking nicht berücksichtigt (rückgängig gemacht)! Allerdings sind hierzu u.U. in verschiedenen PROLOG-Systemen Unterschiede zu beobachten. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-55 9.5 DATALOG – Rein deklarative Logikprogramme Wir haben im vorherigen Abschnitt gesehen, dass für die general purpose“ Programmierung ” in PROLOG gewisse Kompromisse zwischen einer rein deklarativen, und damit streng formal fundierten Herangehensweise einerseits und eher pragmatischen Gesichtspunkten (Performance, Usability) andererseits eingegangen wurden. In einem etwas anderen Kontext, nämlich in sog. deduktiven 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 Reihenfolgeabhängigkeiten zwischen Klauseln oder Teilzielen im Regelrumpf, ➢ ohne Cut, Fail und ähnliche Konstrukte, ➢ ohne Funktionssymbole, ➢ ohne Negation (zumindest in der einfachen Grundversion von DATALOG). Als Konsequenzen hieraus ergeben sich insbesondere ➢ zum einen ein großes Optimierungspotential für die effiziente Ausführung, ➢ zum anderen eine Einschränkung der Ausdruckskraft. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-56 9.5.1 Deduktive Datenbanken In einer deduktiven Datenbank (DDB) werden unterschieden: ➢ 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 ... ... ➢ 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 ??). 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-57 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 ➢ 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 9-21: 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. ➢ dem rein deklarativen Charakter, der es gestattet, Äquivalenztransformationen an DATALOG-Programmen vorzunehmen (Anfrageoptimierung), die eine nochmals gesteigerte Berechnungsgeschwindigkeit nach sich ziehen. c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-58 9.5.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 ProjektionsJoin-Anfrage 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-59 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 1a.2=b.1 b): e 1 = e(E, K) e 2 = e(E, X1), e(X1, K) = e ◦ e e 3 = ... e(E, X1), e(X1, X2), e(X2, K) = e ◦ e ◦ e i = e · · ◦ e} | ◦ ·{z e i mal v = + e = ∞ [ i 2 3 4 e = e ∪ e ∪ e ∪ e ∪ ... i=1 v = LF P (x = x ◦ e ∪ e) Beachte: ➢ Es gilt: e endlich ⇒ e+ endlich ⇔ LF P (. . .) existiert. ➢ Ferner ist dieser kleinste Fixpunkt mit dem minimalen Modell für die gegebenen Logikformeln identisch. (Fixpunkt- und modelltheoretische Semantik stimmen überein.) c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-60 Algorithmus: Naive Iteration Der oben angedeutete Algorithmus zur bottom-up Berechnung der transitiven Hülle kann wie folgt formuliert werden. Seien ➢ EDB = (r1, . . . , rk ) die extensionale DB der gespeicherten Fakten-Relationen r1 bis rk , ➢ IDB = (p1, . . . , pm) die intensionale DB der abgeleiteten Prädikate p1 bis pm und ➢ P1, . . . , Pm, OldP1, . . . , OldPm Variablen für die berechneten Prädikate Mengenvariablen, die Tupel enthalten, für die das jeweilige Prädikat pj ist). (d.h. wahr for i := 1 to m do Pj = {} done; repeat for j := 1 to m do OldPj := Pj done; for j := 1 to m do Pj := evaluate(pj , r1, . . . , rk , OldP1, . . . , OldPm) done until ∀j : 1 ≤ j ≤ m : Pj = OldPj { Jetzt enthalten die Pj das Ergebnis } c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-61 Anwendung Naive Iteration Beispiel 9-22: R := OldR ∪ R0 ◦ OldR R A B 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-62 9.6 Fuzzy-Logik ➢ 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 angegeben, 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-63 Definition 9-3: Eine Sicherheitsskala ist eine linear geordnete Menge mit kleinstem Element 0 (false) und größten Element 1 (true). 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} ➢ Die grundlegenden Arbeiten zu Fuzzy-Logik (und den sog. Fuzzy-Mengen) wurde von Lofty Zadeh bereits 1965 vorgeschlagen. ➢ Wir beschreiben hier eine verbesserte Alternative, in der insbesondere val(F ∧ ¬F ) = 0 gilt. ➢ 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)) 0 wenn v > 0 ❏ val(¬F ) = 1 sonst ( 0 wenn v > 0 ➢ av= 1 sonst wird auch Heyting-Komplement genannt. ➢ Beispiel: ❏ für C1: val(alter(Peter, 30) : 0.2 ∧ alter(Peter, 31) : 0.3) = 0.2 c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-64 ➢ 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 ➢ Ein Fuzzy-Datenbankschema besteht aus einer Sicherheitsskala, einer Menge von Tabellen über S und und einer Menge von Integritätsbedingungen. ➢ Beispiel: d b c 1 0.7 0.1 d d c b c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 0.8 0.3 9-65 9.6.1 Inferenzmechanismen in der Fuzzy-Logik ➢ Eine Fuzzy-Datenbank korrespondiert zu einer Fuzzy-Anfrage-Auswertung 0 CX : LQuery → C die sich in nat( ürlicher Weise ergibt: µ if 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} ➢ Eine Anfrage F wird dann auch mit einer Sicherheitsstufe µ versehen, d.h. es muss getestet werden, ob gilt X ` F : µ ⇔ CX (F ) ≥ µ. ➢ Wenn F für ein festes µ gefolgert werden kann, dann natürlich auch für jedes µ0 < µ. ➢ Manchmal sind auch Intervallanfragen sinnvoll: X ` F : [µ, ν] ⇔ µ ≤ CX (F ) ≤ ν c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-66 9.6.1.1 Update-Operationen in Fuzzy-Datenbanken ➢ In eine Fuzzy-Datenbank können Atome der Form a : µ bzw. ¬a : µ eingetragen werden. ➢ Semantik: ❏ Upd(X, a : µ) = ( X − {a : ν} ∪ {a : µ} wenn CX (a) = ν < µ ❏ Upd(X, ¬a : µ) = X sonst ( {ll.X − {a : ν} wenn CX (a) = ν ∧ µ > 0 X sonst ➢ Fuzzy-Datenbanken sind üblicherweise nicht vollständig, d.h. für viele Anfragen F gilt weder X ` F : 1 noch X ` F : 0. ➢ Zur Wissensintegration wird eine weitere Operation verwendet: Int(X, a : µ) = ( X − {a : ν} ∪ {a : (ν + (1 − ν)µ)} wenn CX (a) = ν > 0 X − ∪{a : µ} c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme wenn CX (a) = 0 9-67 ➢ Erweiterung von Informationen: Eine Fuzzy-Datenbank Y erweitert eine Fuzzy-Datenbank X , (X ≤ Y ), wenn gilt: ∀a : µ ∈ X : µ ≤ CY (a) ➢ Eine Erweiterung kann also im wesentlichen durch zwei Operationen erfolgen: ❏ Hinzufügen weiterer Tupel ❏ Senken der Unsicherheit bei bestehenden Tupeln. ➢ Beispiel: d b 0.9 0.7 ≤ d b c 0.9 0.7 0.1 c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme ≤ d b c 1 0.7 0.1 9-68 9.6.1.2 Operationen auf Fuzzy-Relationen ➢ Zur Beantwortung von Anfragen kann eine Menge von Operatoren verwendet werden, die eine direkte Erweiterung der Relationenalgebra sind. ➢ 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 ∧ ¬(∃t0 : µ0 ∈ R : t = t0 ∧ µ0 > µ)} ✧ πf uzzy [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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-69 ➢ Analog zum sicheren Tupelkalkül gilt folgende Aussage: Jede berechenbare Formel in der Fuzzy-Logik kann durch die gegebene FuzzyRelationenalgebra berechnet werden. ➢ d.h. diese Vorgehensweise ist korrekt und vollständig. ➢ Es sind noch weitere Anfragetypen möglich: ( true wenn µ = CX (F ) > 0 ❏ Ans(X, F ) = false sonst ( true wenn CX (F ) ≥ µ ❏ Ans(X, F : µ) = false sonst ❏ Ans(X, G : µ) = {v|CX (G[v]) ≥ µ} ➢ Vorsicht: Für µ = 0 sind diese Anfragen domänenabhängig! c M. Scholl, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-70 9.6.1.3 Ableitungsregeln in einer Fuzzy-Wissensbasis ➢ Analog zu einem PROLOG-Programm oder einer deduktiven Datenbank besteht eine Fuzzy-Wissensbasis aus ❏ einer Fuzzy-Datenbank X ❏ Ableitungsregeln ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-71 ➢ Obwohl diese Regeln ähnlich wie Horn-Klauseln aussehen, kann es zu Problemen kommen (sog. nicht-monotones Verhalten). ➢ 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}}. ➢ 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-72 9.7 Literaturhinweise Bancilhon, Francois und R. Ramakrishnan (1986). An Amateur’s Introduction to Recursive Query Processing Strategies. In: Proc. ACM SIGMOD Conf. on Managemant 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, 2001/02 – Informationssysteme: 9. Wissensbasierte Informationssysteme 9-73