Database Reference
In-Depth Information
9.1
Klassische logische Programme
Wir verwenden im Folgenden als Basis zur Definition logischer Programme die
Pradikatenlogik (s. Kapitel 3.5), die zu jeder Signatur Σ eine Menge von Funktions-
und Pradikatensymbolen Func (Σ) und Pred (Σ) zur Verfugung stellt.
Ein logisches Programm
zur Spezifikation von Verwandschaftsbeziehungen
und eine zugehorige Anfrage G konnten wie folgt aussehen:
P
P
:
Vater ( hans , franz ).
Vater ( sabine , franz ).
Geschwister (v, w)
Vater (v, q), Vater (w, q).
G:
Geschwister ( sabine ,x).
wobei q, v, w, x Variablen, Vater , Geschwister binare Pradikatensymbole und hans ,
franz , sabine Konstantensymbole sind.
Definition 9.1 (logisches Programm, definite Klausel, Hornklausel) Eine
Hornklausel ist eine Klausel, die maximal ein nicht negiertes Literal enthalt. Eine
definite Klausel ist eine Hornklausel,
{
H,
¬
B 1 ,...,
¬
B n }
, die genau ein positives
Literal H enthalt; sie wird notiert als
H
B 1 ,...,B n .
(9.1)
wobei
als Implikationspfeil von rechts nach links zu lesen ist: “H gilt, falls B 1
und ... und B n gelten.” 1 Eine Formel der Form (9.1) heißt Regel ; H ist der Kopf
( head ) und B 1 ,...,B n der Rumpf ( body )derRegel.Fur n =0schreibenwirH.
und nennen dies Fakt .
Ein (klassisches) logisches Programm ist eine Menge von definiten Klauseln.
Eine Anfrage (oder Zielklausel , Ziel ; query ) ist eine Hornklausel ohne ein positives
Literal, notiert als ← B 1 ,...,B n .
9.2
Anfragen und Antwortsubstitutionen
Wesentlich bei den folgenden Ausfuhrungen ist die Tatsache, dass es sich bei Fak-
ten und Regeln, also den Hornklauseln, die ein logisches Programm ausmachen, um
definite Klauseln handelt. Mit definiten Klauseln kann man nur positive Informatio-
nen ausdrucken, nicht jedoch die Negation eines Literals, da der Kopf einer Klausel
immer ein positives Literal ist.
Die Einschrankung auf Hornklauseln hat den Effekt, dass sich alle Anfragen
- wenn sie denn uberhaupt gelten - auf konstruktive Weise beantworten lassen.
Zweck einer Anfrage
B 1 ,...,B n .
an ein logisches Programm
P
ist die Beantwortung der Frage, ob die logische Fol-
gerung
1 In Prolog wird “ :- ” anstelle des hier verwendeten Pfeils “ ” geschrieben.
Search WWH ::




Custom Search