45
Dedukcyjne bazy danych mgr in˙ z. Olga Siedlecka [email protected] Instytut Informatyki Teoretycznej i Stosowanej Dedukcyjne bazy danych – p.1/37

Dedukcyjne bazy danych

  • Upload
    vuquynh

  • View
    241

  • Download
    0

Embed Size (px)

Citation preview

Dedukcyjne bazy danych

mgr inz. Olga [email protected]

Instytut Informatyki Teoretycznej i Stosowanej

Dedukcyjne bazy danych – p.1/37

Plan seminarium

Wprowadzenie

Podstawy matematyczne

Podstawowe pojecia

Prolog - logiczny jezyk programowania

Podsumowanie

Dedukcyjne bazy danych – p.2/37

Wprowadzenie (1)

Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,

administracji.

Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-

nie.

Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-

pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na

nich operacji.

Dedukcyjne bazy danych – p.3/37

Wprowadzenie (1)

Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,

administracji.

Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-

nie.

Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-

pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na

nich operacji.

Dedukcyjne bazy danych – p.3/37

Wprowadzenie (1)

Bazy danych wykorzystuje sie aktualnie w gospodarce, polityce, nauce,

administracji.

Co piec lat ilosc zapisanych informacji na swiecie zwieksza sie dwukrot-

nie.

Od baz danych wymaga sie zgodnosci z rzeczywistoscia, trwałosci, za-

pewnienia bezpieczenstwa danych, a takze łatwosci dokonywania na

nich operacji.

Dedukcyjne bazy danych – p.3/37

Wprowadzenie (2)

Powstało wiele modeli budowania i organizacji baz danych, miedzy inny-

mi:

Model hierarchiczny

Model sieciowy

Model relacyjny

Model obiektowy

Model dedukcyjny

Model rozproszony

Model kwantowy

Dedukcyjne bazy danych – p.4/37

Wprowadzenie (3)

Dedukcyjne bazy danych, to bazy oparte na logice.

Technologia ta poszerza model relacyjnych baz danych o idee logicznego

programowania.

Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.

Semantyka ograniczen integralnosci takze opiera sie na logice matema-

tycznej.

Dedukcyjne bazy danych – p.5/37

Wprowadzenie (3)

Dedukcyjne bazy danych, to bazy oparte na logice.

Technologia ta poszerza model relacyjnych baz danych o idee logicznego

programowania.

Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.

Semantyka ograniczen integralnosci takze opiera sie na logice matema-

tycznej.

Dedukcyjne bazy danych – p.5/37

Wprowadzenie (3)

Dedukcyjne bazy danych, to bazy oparte na logice.

Technologia ta poszerza model relacyjnych baz danych o idee logicznego

programowania.

Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.

Semantyka ograniczen integralnosci takze opiera sie na logice matema-

tycznej.

Dedukcyjne bazy danych – p.5/37

Wprowadzenie (3)

Dedukcyjne bazy danych, to bazy oparte na logice.

Technologia ta poszerza model relacyjnych baz danych o idee logicznego

programowania.

Uzytkownik pyta poprzez wskazanie celu. Cel to takze formuła logiczna.

Semantyka ograniczen integralnosci takze opiera sie na logice matema-

tycznej.

Dedukcyjne bazy danych – p.5/37

Podstawy matematyczne (1)

Relacje

Grafy i drzewa

Wnioskowanie i wyprowadzenie

Reguła wnioskowania jest n-arna relacja na wyrazeniach, gdzie n > 1

Elementy takiej relacji maja postac:

E1, · · · ,En−1

E

Załozeniami wnioskowania sa obiekty E1, · · · ,En−1, zas wnioskiem wy-

razenie E .

Dedukcyjne bazy danych – p.6/37

Podstawy matematyczne (2) - syntaktyka

Syntaktyka dedukcyjnych baz danych:

Jezyk pierwszego rzedu L to trójka (ConL,FunL,PredL), zawierajaca

trzy rozłaczne zbiory:

ConL - Zbiór stałych L

FunL - Zbiór symboli funkcji L

PredL - Zbiór symboli predykatów L, które nazywamy elementarny-

mi

Dedukcyjne bazy danych – p.7/37

Podstawy matematyczne (3) - syntaktyka

Niech L bedzie jezykiem predykatów pierwszego rzedu i Var zbiorem

zmiennych. Wtedy zbiór termów jezyka L ze zmiennymi ze zbioru Var

definiujemy nastepujaco:

kazda stała c ∈ConL jest termem

kazda zmienna v ∈Var jest termem

jezeli f ∈ FunL jest funkcja n-arna i t1, · · · , tn sa termami, wtedy

f (t1, · · · , tn) jest termem

term nazywamy podstawowym, jezeli nie zawiera zmiennych

t(x) oznacza wszystkie wystapienia zmiennej x w termie t

zastapienie (substytucje) zmiennej x przez stała s w termie t, zapi-

sujemy jako t(s)

Dedukcyjne bazy danych – p.8/37

Podstawy matematyczne (4) - syntaktyka

W logice twierdzenia o obiektach sa reprezentowane przez formuły. For-

muły pierwszego rzedu jezyka L definujemy nastepujaco:

jezeli p ∈ PredL jest predykatem elementarnym, n-arnym, a

t1, · · · , tn sa termami, wtedy p(t1, · · · , tn) jest formuła, zwana takze

formuła atomowa lub atomem

jezeli d,e sa formułami, wtedy nastepujace wyrazenia ¬d,(d ∧

e),(d ∨ e),(d ⊃ e)) takze sa formułami

majac formułe d i zmienna x, wyrazenia ∀xd,∃xd sa formułami

Dedukcyjne bazy danych – p.9/37

Podstawy matematyczne (5) - rachunek

predykatów

Rachunek predykatów K zawiera dwa zbiory aksjomatów: aksjomaty logiczne

i własne.

Aksjomaty logiczne - dla wszystkich formuł A,B,C,∈ K nastepujace

formuły sa schematami aksjomatów:

A → (B → A)

(A → (B →C)) → ((A → B) → (A →C))

(¬B →¬A) → ((¬B → A) → B)

∀xiA(xi) → A(t), gdzie A(xi) jest formuła z K a t jest termem z K,

który jest wolny dla xi w A(xi)

∀xi(A → B) → (A → ∀xiB), jezeli formuła A nie zawiera wolnych

wystapien xi

Dedukcyjne bazy danych – p.10/37

Podstawy matematyczne (6) - rachunek

predykatów

Aksjomaty własne nie sa definiowane w ogólnej postaci, poniewaz

zmieniaja sie od teorii do teorii.

Jezeli zbiór aksjomatów własnych jest pusty, to taki rachunek nazywamy

rachunkiem predykatów pierwszego rzedu. Jezeli zbiór aksjomatów

własnych nie jest pusty, to taki rachunek nazywamy teoria pierwszego

rzedu.

Dedukcyjne bazy danych – p.11/37

Podstawy matematyczne (7) - substytucja

Substytucja σ jest zbiorem postaci {x1/t1,x2/t2, · · · ,xn/tn}, gdzie xi sa zmie-

nymi, ti sa termami, xi 6= x j oraz i 6= j i xi 6= ti dla i = 1,2, · · · ,n j = 1,2, · · · ,n

Mamy wyrazenie E , które jest termem, formuła, alternatywa lub koniunkcja for-

muł, oraz substytucje σ = {x1/t1,x2/t2, · · · ,xn/tn}. Wyrazenie Eσ, powstaje

poprzez zastapienie wszystkich zmiennych xi wystepujacych jednoczesnie w E

i w σ odpowiednimi termami ti. Na przykład:

E = p(x,y, f (a)) σ = {x/b,y/x} Eσ = p(b,x, f (a))

Dedukcyjne bazy danych – p.12/37

Podstawy matematyczne (8) - substytucja

Niech Θ i σ beda substytucjami postaci:

Θ = {x1/s1,x2/s2, · · · ,xn/sn} σ = {y1/t1,y2/t2, · · · ,ym/tm}

Substytucja Θσ to zbiór:

{x1/s1σ,x2/s2σ, · · · ,xn/snσ,y1/t1,y2/t2, · · · ,ym/tm}

w którym skreslamy wszelkie wyrazenia postaci xi/siσ, gdzie xi = siσ, orazwyrazenia yi/ti takie, ze yi ∈ {x1,x2, · · · ,xn}.

Dedukcyjne bazy danych – p.13/37

Podstawy matematyczne (9) - substytucja

Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:

Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}

Dokonujemy ich wymnozenia:

Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}

W nastepnym kroku otrzymujemy:

Θσ = {x/ f (b),y/y,x/a,y/b,z/y}

Po dokonaniu skreslen, substytucja ostatecznie ma postac:

Θσ = {x/ f (b),z/y}

Dedukcyjne bazy danych – p.14/37

Podstawy matematyczne (9) - substytucja

Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:

Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}

Dokonujemy ich wymnozenia:

Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}

W nastepnym kroku otrzymujemy:

Θσ = {x/ f (b),y/y,x/a,y/b,z/y}

Po dokonaniu skreslen, substytucja ostatecznie ma postac:

Θσ = {x/ f (b),z/y}

Dedukcyjne bazy danych – p.14/37

Podstawy matematyczne (9) - substytucja

Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:

Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}

Dokonujemy ich wymnozenia:

Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}

W nastepnym kroku otrzymujemy:

Θσ = {x/ f (b),y/y,x/a,y/b,z/y}

Po dokonaniu skreslen, substytucja ostatecznie ma postac:

Θσ = {x/ f (b),z/y}

Dedukcyjne bazy danych – p.14/37

Podstawy matematyczne (9) - substytucja

Rozwazmy krok po kroku przykład: Niech Θ i σ beda substytucjami postaci:

Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y}

Dokonujemy ich wymnozenia:

Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y}

W nastepnym kroku otrzymujemy:

Θσ = {x/ f (b),y/y,x/a,y/b,z/y}

Po dokonaniu skreslen, substytucja ostatecznie ma postac:

Θσ = {x/ f (b),z/y}

Dedukcyjne bazy danych – p.14/37

Podstawy matematyczne (10) - unifikacja

Majac atomy lub termy A i B, oraz substytucje σ:

unifikatorem dwóch termów nazywamy substytucje, która czyni oba ter-

my identycznymi Aσ = Bσ

σ nazwiemy najogólniejszym unifikatorem termów A i B, jezeli σ jest uni-

fikatorem i dla kazdego unifikatora Θ termów A i B zachodzi nierównosc

σ 6 Θ

substytucje σ nazywamy rozwiazaniem zbioru równan

A1 ≈ B1,A2 ≈ B2, · · · ,An ≈ Bn

jezeli dla kazdego i = 1,2, · · · ,n zachodzi Aiσ = Biσ

rozwiazanie nazywamy najogólniejszym, jezeli dla kazdego rozwiazania

Θ powyzszego zbioru zachodzi nierównosc σ 6 ΘDedukcyjne bazy danych – p.15/37

Podstawy matematyczne (11) - rezolucja SLD

Rezolucja SLD jest oparta na zaprzeczeniu. Majac cel G dla bazy D, rezolu-

cja SLD próbuje dowiesc sprzecznosc D∪{¬G}. Rezolucje SLD mozna łatwiej

przedstawic jako system wnioskowania oparty na regule rezolucji.

Wyprowadzenie SLD mozemy rozpatrywac jako system wnioskowania zawiera-

jacy dwie reguły:

wnioskowanie G → G′, gdzie załozeniem jest G′ a wnioskiem G:

G′

G

aksjomat �. Wyprowadzenie SLD konczace sie �, nazywamy dowo-

dem. Jezeli istnieje dowód SLD celu G dla bazy D, z wyliczona substy-

tucja θ, mozemy po prostu powiedziec, ze θ jest odpowiedzia dla G i

D.

Dedukcyjne bazy danych – p.16/37

Podstawy matematyczne (12) - rezolucja SLD

Rozpatrzmy przykład zapisany w jezyku Prolog. Mamy baze:

dumny(X) :- rodzic(X,Y),nowonarodzone(Y).

rodzic(X,Y) :- ojciec(X,Y).

rodzic(X,Y) :- matka(X,Y).

ojciec(jan,jadwiga).

nowonarodzone(jadwiga).

Zadajemy pytanie

? - dumny(jan).a nastepnie dokonujemy przekształcenia formuł do postaci alternatyw:

dumny(X) ∨¬ rodzic(X,Y) ∨¬ nowonarodzone(Y).rodzic(X,Y) ∨¬ ojciec(X,Y).rodzic(X,Y) ∨¬ matka(X,Y).ojciec(jan,jadwiga).nowonarodzone(jadwiga).

Dedukcyjne bazy danych – p.17/37

Podstawy matematyczne (13) - rezolucja SLD

Dedukcyjne bazy danych – p.18/37

Podstawy matematyczne (14) - rezolucja SLD

Drzewo SLD ma nastepujace własciwosci:

wezły drzewa sa celami

kazdy wewnetrzny wezeł drzewa jest niepusty i zawiera wybrana formułe

mówimy, ze substytucja θ odnosi sie do wezła

Oto przykład drzewa SLD dla nastepujacej bazy:

pracownik(X,Y) :- imie(X),nazwisko(Y).

pracownik(X,Y) :- osoba(X,Y).

imie(adam).

nazwisko(raczynski).

osoba(marcin,dawid).

osoba(dawid,raczynski).

Dedukcyjne bazy danych – p.19/37

Podstawy matematyczne (15) - rezolucja SLD

Zadajemy pytanie:

?-pracownik(I,N).

Dedukcyjne bazy danych – p.20/37

Podstawy matematyczne (16) - rezolucja SLD

Rozwazmy rózne podejscia przeszukiwania drzewa SLD dla bazy:

rodzic :- dziecko(X),ulubione(X).

dziecko(adam) :- dziecko(X).

ulubione(tomasz).

Zadajemy pytanie:

?-rodzic.

Dedukcyjne bazy danych – p.21/37

Podstawy matematyczne (17) - rezolucja

SLDNF

Rezolucja SLDNF to rezolucja SLD po dodaniu do niej reguł dowodzenia ne-

gacji. W tej metodzie wystepuje zazwyczaj wiecej niz jedno drzewo. Drzewa

SLDNF maja nastepujace cechy:

niektóre liscie w drzewie sa zaznaczone

wystepuja trzy rodzaje zaznaczen: fałsz, oczekiwanie i nieskonczone

jedno drzewo w zbiorze drzew SLDNF nazywamy głównym

Dedukcyjne bazy danych – p.22/37

Podstawy matematyczne (18) - rezolucja

SLDNF

Reguły postepowania sa nastepujace:

poczatkowo mamy jedno drzewo główne

zatrzymujemy sie w momencie, gdy kazdy lisc drzewa konczy sie � lub

jest zaznaczony

w kazdym kroku wybieramy niezaznaczony lisc wezła rózny od �, jeze-

li lisc zawiera literał zanegowany, gałaz zaznaczamy jako oczekujaca i

rozpatrujemy poddrzewo

jezeli poddrzewo zakonczy sie �, wtedy wracamy do drzewa głównego i

gałaz, od której wyszlismy zaznaczamy jako fałszywa

jezeli poddrzewo zakonczy sie fałszem, gałaz drzewa głównego, od której

wyszlismy zaznaczamy jako �

Dedukcyjne bazy danych – p.23/37

Podstawy matematyczne (19) - rezolucja

SLDNF

trujacy(muchomor).

grzyb(pieczarka).

grzyb(borowik).

grzyb(muchomor).

jadalny(X) :- grzyb(X), not trujacy(X).

?-jadalny(X).

Dedukcyjne bazy danych – p.24/37

Podstawowe pojecia (1)

Dedukcyjne bazy danych sa standardowo podzielone na dwie czesci:

EDB (extensional database) - relacje sa zdefiniowane bezposrednio po-

przez wymienienie wszystkich obiektów spełniajacych te relacje. Na przy-

kład:

wyzsze_wyksztalcenie(wyzsze,srednie).

wyzsze_wyksztalcenie(srednie,podstawowe).

IDB (intensional database) - zawiera definicje zaleznosci miedzy relacja-

mi - reguły.

lepiej_wyksztalcony(A,B) :-

wyksztalcenie(A,WA),

wyksztalcenie(B,WB),

wyzsze_wyksztalcenie(WA,WB).Dedukcyjne bazy danych – p.25/37

Podstawowe pojecia (2)

Alternatywa - DDB jest opisana jako zbiór reguł i faktów. Wiele reguł

definiujacych ta sama relacje, musi byc rozumianych jako alternatywne

podejscie do tej samej relacji.

Cel - Uzytkownik zadaje pytanie poprzez wskazanie celu: Czy cel jest

logiczna konsekwencja bazy danych? Upraszczajac, czy jest zgodny z

prawda.

Dedukcyjne bazy danych – p.26/37

Podstawowe pojecia (3)

Rekurencja - Klauzula rekurencyjna definiuje relacje przy uzyciu jej sa-

mej. Na przykład:

polaczone(Punkt_startowy,Punkt_koncowy):-

najkrotsza_droga(Punkt_startowy,Punkt_koncowy).

polaczone(Punkt_startowy,Punkt_koncowy):-

najkrotsza_droga(Punkt_startowy,Punkt_posredni),

polaczone(Punkt_posredni,Punkt_koncowy).

Dedukcyjne bazy danych – p.27/37

Prolog (1)

PROLOG - PROgrammation en LOGique - programowanie oparte na logice.

Logiczny program to zbiór aksjomatów, reguł definujacych rela-

cje miedzy obiektami. Obliczenia w programowaniu logicznym to

wnioskowanie, wyprowadzenie dowodu. Program definiuje zbiór

klauzul nadajacych mu znaczenie. Sztuka logicznego programo-

wania, to sztuka zwiezłego konstruowania programów, które maja

pozadane znaczenie.

Shapiro, Sterling

Dedukcyjne bazy danych – p.28/37

Prolog (2) - syntaktyka

Syntaktyka Prologa

Formuły sa zapisane w postaci:

predykat(term1, term2,...,termn).

Pytania:

?-predykat1(term1, term2,...,termn),

predykat2(term1, term2,...,termk),

...,

predykatz(term1, term2,...,termm).

Dedukcyjne bazy danych – p.29/37

Prolog (3) - syntaktyka

Koniunkcje wyraza sie przecinkiem, alternatywe kropka, zas indukcje

znakiem :-

Symbol komentarza: % lub /* */

Podstawowe atomy w Prologu moga w nazwach zawierac litery, cyfry i

podkreslenia, ale zaczynaja sie z małej litery.

Nazwy zmiennych zaczynaja sie z duzej litery i moga zawierac litery,

cyfry i podkreslenia.

Anonimowe zmienne sa oznaczone symbolem podkreslenia.

Dedukcyjne bazy danych – p.30/37

Prolog (4) - syntaktyka

Prolog przechowuje dane złozone takie jak: listy, złozenia funkcji. Listy

sa oznaczane symbolami:

[Pierwszy|Reszta]

gdzie Pierwszy oznacza pierwszy element listy, zas Reszta to nazwa

reprezentujaca pozostałe elementy listy.

Inna metoda to wymienianie kolejnych elementów listy:

[a,b,c,d,e]

Prolog uzywa operatorów arytmetycznych: +,-,*,/, oraz operatorów:

X is Y, X < Y, X =< Y, X > Y, X => Y

Dedukcyjne bazy danych – p.31/37

Prolog (5) - semantyka

Jadro Prologa - logika predykatów pierwszego rzedu

Semantyka operacyjna - rachunek rezolucji dla logiki predykatów pierw-

szego rzedu

Metoda rezolucji - metoda dowodzenia wychodzaca od reguły kluczowej

Sposób postepowania w metodzie rezolucji - wyjscie z formuły predykatu

w postaci znormalizowanej (alternatywy), a nastepnie tak długie stoso-

wanie zasady rezolucji, az dojdziemy do sprzecznosci lub dalsze dowo-

dzenie nie bedzie mozliwe

Elementarna sprzecznosc - �

Wykorzystane algorytmy - substytucja, unifikacja, rezolucja SLDNF

Metoda wyszukiwania w drzewie SLD - w głab, wybierany jest zawsze

predykat stojacy z lewej strony

Dedukcyjne bazy danych – p.32/37

Prolog (6)

Komponenty kontroli przepływu:

Ciecie - oznaczane symbolem: !. Ciecie nastepuje natychmiast i zmusza

Prolog do unifikacji wszystkich wyborów przed celem wezła nadrzedne-

go, za pomoca nagłówka klauzuli, w której pojawia sie ciecie.

Ciecie zmniejsza przestrzen jaka przeszukuje Prolog, poprzez dynamicz-

ne obciecie drzewa przeszukiwan:

wszystkie klauzule wystepujace w predykacie po cieciu, nie beda

brane w dowodzie pod uwage, jezeli ciecie jest udowodnione

alternatywne rozwiazania ciecia w poddrzewach moga nie zostac

znalezione

ciecie nie ma wpływu na podcele klauzul stojacych za nim w predy-

kacie

Fail - stała bedaca znacznikiem niepowodzenia w dowodzeniu.Dedukcyjne bazy danych – p.33/37

Prolog (7)

istota_zywa(roza).

istota_zywa(pies).

istota_zywa(ewa).

roslina(roza).

zwierze(pies).

czlowiek(X) :- roslina(X),!,fail.

czlowiek(X) :- zwierze(X),!,fail.

czlowiek(X) :- istota_zywa(X).

?-istota_zywa(X),czlowiek(X).

Dedukcyjne bazy danych – p.34/37

Prolog (8)

Dedukcyjne bazy danych – p.35/37

Prolog (9)

Proces powstawania programu w Prologu obejmuje:

okreslenie problemu

definiowanie modelu interpretacji (domen, symboli...)

odnalezienie pasujacej teorii tak by prowadziła do wydajnego dowodze-

nia

uzycie komponentów kontroli przepływu

Dedukcyjne bazy danych – p.36/37

Podsumowanie

PRO

wyciaganie niejawnych informacji z zapisanych jawnie faktów i reguł

łatwe tworzenie klauzul rekurencyjnych

intuicyjne wyznaczanie celów

CONTRA

brak determinizmu

słabo rozwiniety system zabezpieczen

mimo istnienia standardu Prologa poszczególne implementacje znacznie

sie róznia

Dedukcyjne bazy danych – p.37/37