9 Wissensbasierte Informationssysteme Motiviation Bisherige

Werbung
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
Herunterladen