Database Reference
In-Depth Information
C 1
G
σ 1
G 1
C 2
σ 2
.
G 2
.
G n−1
C n
σ n
G n
Abbildung 9.2 SLD-Resolution
9.3.1
SLD-Ableitungen
Jede Programmklausel (d.h. Fakt oder Regel) enthalt genau ein positives Literal,
wahrend die Zielklausel (Anfrage) nur negative Literale enthalt. Resolution zwi-
schen zwei Programmklauseln allein kann daher niemals zur leeren Klausel fuhren.
Andererseits fuhrt ein Resolutionsschritt zwischen einer Zielklausel und einer defini-
ten Klausel immer wieder zu einer neuen Zielklausel (bzw. zur leeren Klausel). Die
SLD-Resolution beruht gerade auf diesen Eigenschaften. Der Name SLD-Resolution
steht fur “ SL -Resolution for D efinite clauses”, wobei SL-Resolution fur “ L inear re-
solution with S election function” steht.
Bei der SLD-Resolution erfolgt jeder Resolutionsschritt zwischen einer definiten
Klausel und einer Zielklausel. Fur eine Menge
von definiten Klauseln und eine
Zielklausel G als Anfrage muss eine SLD-Resolution aus
P
und G daher wie in
Abbildung 9.2 skizziert aussehen. Dabei sind die C i Varianten von Klauseln aus P
mit jeweils neuen Variablen (d.h. variablen-umbenannte Klauseln von P,sodass
kein C i einen Variablennamen enthalt, der schon vorher einmal benutzt wurde,
und daher insbesondere alle Elternklauseln variablendisjunkt sind), und die G i sind
Zielklauseln.
Anstelle der allgemeinen Resolutionsregel wird fur die SLD-Resolution die SLD-
Resolutionsregel im Allgemeinen wie folgt angegeben, wobei
P
P
wieder eine Menge
von definiten Klauseln ist:
falls H
B 1 ,...,B m eine
Variante einer Klausel aus
A 1 ,...,A k−1 ,A k ,A k+1 ,...,A n .
P
ist und σ der allgemeinste
Unifikator von A k und H.
σ(
A 1 ,...,A k−1 ,B 1 ,...,B m ,A k+1 ,...,A n .)
 
Search WWH ::




Custom Search