Wissensverarbeitung
Logiken
Aussagenlogik
Die Grundlage aller Logiken, Wissensverarbeitungen, Expertensystem u. ä. ist die Aussagenlogik. Sie verknüpft Aussagen mit den Wahrheitswerten "wahr" oder "falsch" mit Operatoren zu neuen Aussagen. Die gebräuchlisten Operatoren im Rahmen einer Wissensverarbeitung sind dabei:
- nicht (not)
- und (and)
- oder (or)
- wenn .., dann .. (implies)
Prädikatenlogik
Eine Erweiterung der Aussagenlogik ist die Prädikatenlogik. Mit Hilfe der Prädikatenlogik können die Aussagen der oben beschriebenen Aussagenlogik definiert werden. Eine Aussage besteht aus einem Prädikat und einem oder mehreren Argumenten. Argumente selbst können wiederum andere Aussagen sein.
Zusätzlich werden mit der Prädikatenlogik Quantoren eingeführt. Die häufigsten sind:
- Allquantor (for all)
- Existenzquantor (there exists)
Wissensrepräsentation
Um Wissen verarbeiten zu können, benötigt man zum einen eine Möglichkeit vorhandenes Wissen zu speichern und zum anderen muss es eine Möglichkeit geben, aus diesem gespeicherten Wissen neues Wissen zu generieren.
Für die Speicherung von vorhandenem Wissen bietet sich die Prädikatenlogik an. Zunächst werden jedoch einige "Grundobjekte" benötigt. Bei der Schreibweise halte ich mich an die Konventionen des Systems Cyc
- Konstanten: #$<Name>
- Variablen: ?<Name>
- Texte: "<Text>"
- Zahlen: <Wert>
Für die Darstellung von Fakten verwende ich die folgende Schreibweise:
(<Prädikat> <Argument1> ...)
Ein Prädikat und die dazugehörenden Elemente werden in runde Klammen eingeschlossen.
Das Prädikat ist immer eine Konstante. Die übrigen Argumente können Konstanten,
Variablen, Texte, Zahl und auch komplette Ausdrücke sein.
Wissensverarbeitung
Für die Verarbeitung des vorhandenen Wissens zu neuem Wissen, werden Regeln gespeichert, nach denen neues Wissen erzeugt werden kann. Eine solche Regel besteht immer aus dem Prädikat "#$implies" und zwei Aussagen als Argument.
Das erste Argument stellt eine Bedingung dar, die für das Ausführen der Regel erfüllt sein muss.
Das zweite Argument stellt ein neues Fakt dar, dass bei erfüllter Bedingung
als neues Wissen gespeichert werden kann. Ein Beispiel:
(#$implies (#$and (#$isa ?X #$Pudel) (#$genls #$Pudel #$Hund)) (#$isa ?X #$Hund))
- #$implies --> wenn .., dann ..
- #$and --> und
- #$isa --> ist ein
- #$genls --> Generalisierung
Wenn also jemand als Fakt (#$isa #$Fido #$Pudel) eingibt, kann mithilfe der Regel das neue Fakt (#$isa #$Fido #$Hund) automatisch erzeugt werden.