Dedukcyjne bazy danych

Podobne dokumenty
Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Adam Meissner.

Programowanie w logice

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Programowanie deklaratywne

Programowanie w logice Wykład z baz danych dla

Metoda Tablic Semantycznych

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Składnia rachunku predykatów pierwszego rzędu

Monoidy wolne. alfabetem. słowem długością słowa monoidem wolnym z alfabetem Twierdzenie 1.

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

Adam Meissner STUCZNA INTELIGENCJA

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Programowanie logiczne a negacja

PODSTAWY SZTUCZNEJ INTELIGENCJI

vf(c) =, vf(ft 1... t n )=vf(t 1 )... vf(t n ).

Dedukcyjne bazy danych i rekursja

Np. Olsztyn leży nad Łyną - zdanie prawdziwe, wartość logiczna 1 4 jest większe od 5 - zdanie fałszywe, wartość logiczna 0

Wykład 1. Informatyka Stosowana. 3 października Informatyka Stosowana Wykład 1 3 października / 26

Semantyka rachunku predykatów

Programowanie w logice Prolog 2

Podstawy Sztucznej Inteligencji (PSZT)

Interpretacja Niech U będzie zbiorem formuł takim, że zbiór {p 1,..., p k } jest zbiorem wszystkich symboli predykatywnych, {f 1,..., f l } jest zbior

Dedukcyjne bazy danych i rekursja

Semantyka rachunku predykatów pierwszego rzędu. Dziedzina interpretacji. Stałe, zmienne, funkcje. Logika obliczeniowa.

III rok kognitywistyki UAM,

Programowanie deklaratywne

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykłady 12 i 13. Dowód i dowodzenie w KRP. Tezy KRP

Programowanie deklaratywne

RACHUNEK ZDAŃ 7. Dla każdej tautologii w formie implikacji, której poprzednik również jest tautologią, następnik także jest tautologią.

Logika Matematyczna (10)

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki. Wykład 14. Wprowadzenie do logiki intuicjonistycznej

Modele Herbranda. Logika obliczeniowa. Joanna Józefowska. Szukamy modelu. Przykład Problemy. Model Herbranda

Struktury formalne, czyli elementy Teorii Modeli

Rachunek logiczny. 1. Język rachunku logicznego.

Elementy logiki matematycznej

Internet Semantyczny i Logika I

Logika Matematyczna (1)

Prolog (Pro-Logic) Programowanie w Logice. Dr inż. Piotr Urbanek

Konsekwencja logiczna

Tautologia (wyrażenie uniwersalnie prawdziwe - prawo logiczne)

Wstęp do Techniki Cyfrowej... Algebra Boole a

a) symbole logiczne (wspólne dla wszystkich języków) zmienne przedmiotowe: x, y, z, stałe logiczne:,,,,,, symbole techniczne: (, )

Logika Matematyczna (1)

Projekt 4: Programowanie w logice

Logika Stosowana. Wykład 7 - Zbiory i logiki rozmyte Część 3 Prawdziwościowa logika rozmyta. Marcin Szczuka. Instytut Informatyki UW

LOGIKA I TEORIA ZBIORÓW

Matematyczne Podstawy Informatyki

Uzgadnianie formuł rachunku predykatów

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

1. Składnia. Logika obliczeniowa - zadania 1 SKŁADNIA Teoria

Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 10. Twierdzenie o pełności systemu aksjomatycznego KRZ

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Logika Stosowana. Wykład 2 - Logika modalna Część 2. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Rachunek predykatów. Formuły rachunku predykatów. Plan wykładu. Relacje i predykaty - przykłady. Relacje i predykaty

Elementy logiki i teorii mnogości

Paradygmaty dowodzenia

Metody dowodzenia twierdzeń i automatyzacja rozumowań Systemy aksjomatyczne I

Rachunek zdań. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Internet Semantyczny i Logika II

Alfred N. Whitehead

Drzewa Semantyczne w KRZ

Andrzej Wiśniewski Logika II. Wykład 6. Wprowadzenie do semantyki teoriomodelowej cz.6. Modele i pełność

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Problem. Uzgadnianie wyrażeń rachunku predykatów. Instancja wyrażenia. Podstawienie termu za zmienną. Joanna Józefowska

Logika. Michał Lipnicki. 15 stycznia Zakład Logiki Stosowanej UAM. Michał Lipnicki () Logika 15 stycznia / 37

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

Języki programowania deklaratywnego

Adam Meissner SZTUCZNA INTELIGENCJA

Paradygmaty programowania

Wykład 11b. System aksjomatyczny Klasycznego Rachunku Predykatów. Aksjomaty i reguły inferencyjne

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Programowanie w Logice

Poprawność semantyczna

Programowanie deklaratywne i logika obliczeniowa

Wprowadzenie do logiki Zdania, cz. III Język Klasycznego Rachunku Predykatów

Andrzej Wiśniewski Logika II. Materiały do wykładu dla studentów kognitywistyki

Podstawy Sztucznej Inteligencji (PSZT)

Podstawowe Pojęcia. Semantyczne KRZ

Wprowadzenie do Sztucznej Inteligencji

1. Klasyczny Rachunek Zdań

Uwagi wprowadzajace do reguł wnioskowania w systemie tabel analitycznych logiki pierwszego rzędu

Matematyka ETId Elementy logiki

Internet Semantyczny. Logika opisowa

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

5. Algebra działania, grupy, grupy permutacji, pierścienie, ciała, pierścień wielomianów.

Jak wnioskują maszyny?

Logika Matematyczna (2,3)

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Programowanie w logice

Logika stosowana. Ćwiczenia Programowanie w logice i PROLOG. Marcin Szczuka. Instytut Informatyki, Uniwersytet Warszawski

Drobinka semantyki KRP

Arytmetyka liczb binarnych

Programowanie w Logice Struktury danych (Lista 2)

Logika predykatów pierwszego rzędu PROLOG. Zarządzanie wiedzą. Wykład Reprezentacja wiedzy logika predykatów. Joanna Kołodziejczyk.

Laboratorium przedmiotu Paradygmaty Programowania

Dana jest baza: kobieta(katarzyna). kobieta(anna). kobieta(maria). kobieta(marianna). kobieta(marta). Zdefiniujemy predykat kobiety/0 następująco:

Przykładami ciągów, które Czytelnik dobrze zna (a jeśli nie, to niniejszym poznaje), jest ciąg arytmetyczny:

4 Klasyczny rachunek zdań

Transkrypt:

Dedukcyjne bazy danych mgr inż. Olga Siedlecka olga@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Dedukcyjne bazy danych p.1/37

Plan seminarium Wprowadzenie Podstawy matematyczne Podstawowe pojęcia Prolog - logiczny język programowania Podsumowanie Dedukcyjne bazy danych p.2/37

Wprowadzenie (1) Bazy danych wykorzystuje się aktualnie w gospodarce, polityce, nauce, administracji. Dedukcyjne bazy danych p.3/37

Wprowadzenie (1) Bazy danych wykorzystuje się aktualnie w gospodarce, polityce, nauce, administracji. Co pięć lat ilość zapisanych informacji na świecie zwiększa się dwukrotnie. Dedukcyjne bazy danych p.3/37

Wprowadzenie (1) Bazy danych wykorzystuje się aktualnie w gospodarce, polityce, nauce, administracji. Co pięć lat ilość zapisanych informacji na świecie zwiększa się dwukrotnie. Od baz danych wymaga się zgodności z rzeczywistościa, trwałości, zapewnienia bezpieczeństwa danych, a także łatwości dokonywania na nich operacji. Dedukcyjne bazy danych p.3/37

Wprowadzenie (2) Powstało wiele modeli budowania i organizacji baz danych, między innymi: 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. 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. 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. Użytkownik pyta poprzez wskazanie celu. Cel to także formuła logiczna. 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. Użytkownik pyta poprzez wskazanie celu. Cel to także formuła logiczna. Semantyka ograniczeń integralności także opiera się na logice matematycznej. Dedukcyjne bazy danych p.5/37

Podstawy matematyczne (1) Relacje Grafy i drzewa Wnioskowanie i wyprowadzenie Reguła wnioskowania jest n-arna relacja na wyrażeniach, gdzie n 1 Elementy takiej relacji maja postać: E 1,,E n 1 E Założeniami wnioskowania sa obiekty E 1,,E n 1, zaś wnioskiem wyrażenie E. Dedukcyjne bazy danych p.6/37

Podstawy matematyczne (2) - syntaktyka Syntaktyka dedukcyjnych baz danych: Język pierwszego rzędu L to trójka (Con L,Fun L,Pred L ), zawierajaca trzy rozłaczne zbiory: Con L - Zbiór stałych L Fun L - Zbiór symboli funkcji L Pred L - Zbiór symboli predykatów L, które nazywamy elementarnymi Dedukcyjne bazy danych p.7/37

Podstawy matematyczne (3) - syntaktyka Niech L będzie językiem predykatów pierwszego rzędu i Var zbiorem zmiennych. Wtedy zbiór termów języka L ze zmiennymi ze zbioru Var definiujemy następujaco: każda stała c Con L jest termem każda zmienna v Var jest termem jeżeli f Fun L jest funkcja n-arna i t 1,,t n sa termami, wtedy f (t 1,,t n ) jest termem term nazywamy podstawowym, jeżeli nie zawiera zmiennych t(x) oznacza wszystkie wystapienia zmiennej x w termie t zastapienie (substytucję) zmiennej x przez stała s w termie t, zapisujemy jako t(s) Dedukcyjne bazy danych p.8/37

Podstawy matematyczne (4) - syntaktyka W logice twierdzenia o obiektach sa reprezentowane przez formuły. Formuły pierwszego rzędu języka L definujemy nastepujaco: jeżeli p Pred L jest predykatem elementarnym, n-arnym, a t 1,,t n sa termami, wtedy p(t 1,,t n ) jest formuła, zwana także formuła atomowa lub atomem jeżeli d,e sa formułami, wtedy nastepujace wyrażenia d,(d e),(d e),(d e)) także sa formułami majac formułę d i zmienna x, wyrażenia 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 następujace formuły sa schematami aksjomatów: A (B A) (A (B C)) ((A B) (A C)) ( B A) (( B A) B) x i A(x i ) A(t), gdzie A(x i ) jest formuła z K a t jest termem z K, który jest wolny dla x i w A(x i ) x i (A B) (A x i B), jeżeli formuła A nie zawiera wolnych wystapień x i Dedukcyjne bazy danych p.10/37

Podstawy matematyczne (6) - rachunek predykatów Aksjomaty własne nie sa definiowane w ogólnej postaci, ponieważ zmieniaja się od teorii do teorii. Jeżeli zbiór aksjomatów własnych jest pusty, to taki rachunek nazywamy rachunkiem predykatów pierwszego rzędu. Jeżeli zbiór aksjomatów własnych nie jest pusty, to taki rachunek nazywamy teoria pierwszego rzędu. Dedukcyjne bazy danych p.11/37

Podstawy matematyczne (7) - substytucja Substytucja σ jest zbiorem postaci {x 1 /t 1,x 2 /t 2,,x n /t n }, gdzie x i sa zmienymi, t i sa termami, x i x j oraz i j i x i t i dla i = 1,2,,n j = 1,2,,n Mamy wyrażenie E, które jest termem, formuła, alternatywa lub koniunkcja formuł, oraz substytucję σ = {x 1 /t 1,x 2 /t 2,,x n /t n }. Wyrażenie Eσ, powstaje poprzez zastapienie wszystkich zmiennych x i wystepujacych jednocześnie w E i w σ odpowiednimi termami t i. 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 σ będa substytucjami postaci: Θ = {x 1 /s 1,x 2 /s 2,,x n /s n } σ = {y 1 /t 1,y 2 /t 2,,y m /t m } Substytucja Θσ to zbiór: {x 1 /s 1 σ,x 2 /s 2 σ,,x n /s n σ,y 1 /t 1,y 2 /t 2,,y m /t m } w którym skreślamy wszelkie wyrażenia postaci x i /s i σ, gdzie x i = s i σ, oraz wyrażenia y i /t i takie, że y i {x 1,x 2,,x n }. Dedukcyjne bazy danych p.13/37

Podstawy matematyczne (9) - substytucja Rozważmy krok po kroku przykład: Niech Θ i σ będa substytucjami postaci: Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y} Dedukcyjne bazy danych p.14/37

Podstawy matematyczne (9) - substytucja Rozważmy krok po kroku przykład: Niech Θ i σ będa substytucjami postaci: Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y} Dokonujemy ich wymnożenia: Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y} Dedukcyjne bazy danych p.14/37

Podstawy matematyczne (9) - substytucja Rozważmy krok po kroku przykład: Niech Θ i σ będa substytucjami postaci: Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y} Dokonujemy ich wymnożenia: Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y} W następnym kroku otrzymujemy: Θσ = {x/ f (b),y/y,x/a,y/b,z/y} Dedukcyjne bazy danych p.14/37

Podstawy matematyczne (9) - substytucja Rozważmy krok po kroku przykład: Niech Θ i σ będa substytucjami postaci: Θ = {x/ f (y),y/z} σ = {x/a,y/b,z/y} Dokonujemy ich wymnożenia: Θσ = {x/ f (y)σ,y/zσ,x/a,y/b,z/y} W następnym kroku otrzymujemy: Θσ = {x/ f (b),y/y,x/a,y/b,z/y} Po dokonaniu skreśleń, substytucja ostatecznie ma postać: Θσ = {x/ f (b),z/y} Dedukcyjne bazy danych p.14/37

Podstawy matematyczne (10) - unifikacja Majac atomy lub termy A i B, oraz substytucję σ: unifikatorem dwóch termów nazywamy substytucję, która czyni oba termy identycznymi Aσ = Bσ σ nazwiemy najogólniejszym unifikatorem termów A i B, jeżeli σ jest unifikatorem i dla każdego unifikatora Θ termów A i B zachodzi nierówność σ Θ substytucję σ nazywamy rozwiazaniem zbioru równań A 1 B 1,A 2 B 2,,A n B n jezeli dla każdego i = 1,2,,n zachodzi A i σ = B i σ rozwiazanie nazywamy najogólniejszym, jeżeli dla każdego rozwiazania Θ powyższego zbioru zachodzi nierówność σ Θ Dedukcyjne bazy danych p.15/37

Podstawy matematyczne (11) - rezolucja SLD Rezolucja SLD jest oparta na zaprzeczeniu. Majac cel G dla bazy D, rezolucja SLD próbuje dowieść sprzeczność D { G}. Rezolucję SLD można łatwiej przedstawić jako system wnioskowania oparty na regule rezolucji. Wyprowadzenie SLD możemy rozpatrywać jako system wnioskowania zawierajacy dwie reguły: wnioskowanie G G, gdzie założeniem jest G a wnioskiem G: G G aksjomat. Wyprowadzenie SLD kończace się, nazywamy dowodem. Jeżeli istnieje dowód SLD celu G dla bazy D, z wyliczona substytucja θ, możemy po prostu powiedzieć, że θ jest odpowiedzia dla G i D. Dedukcyjne bazy danych p.16/37

Podstawy matematyczne (12) - rezolucja SLD Rozpatrzmy przykład zapisany w języku Prolog. Mamy bazę: 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 następnie 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 następujace właściwości: węzły drzewa sa celami każdy wewnętrzny węzeł drzewa jest niepusty i zawiera wybrana formułę mówimy, że substytucja θ odnosi się do węzła Oto przykład drzewa SLD dla następujacej 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 Rozważmy różne podejścia 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 negacji. W tej metodzie występuje zazwyczaj więcej niż jedno drzewo. Drzewa SLDNF maja następujace cechy: niektóre liście w drzewie sa zaznaczone występuja trzy rodzaje zaznaczeń: fałsz, oczekiwanie i nieskończone jedno drzewo w zbiorze drzew SLDNF nazywamy głównym Dedukcyjne bazy danych p.22/37

Podstawy matematyczne (18) - rezolucja SLDNF Reguły postępowania sa następujace: poczatkowo mamy jedno drzewo główne zatrzymujemy się w momencie, gdy każdy liść drzewa kończy się lub jest zaznaczony w każdym kroku wybieramy niezaznaczony liść węzła różny od, jeżeli liść zawiera literał zanegowany, gałaź zaznaczamy jako oczekujac a i rozpatrujemy poddrzewo jeżeli poddrzewo zakończy się, wtedy wracamy do drzewa głównego i gałaź, od której wyszliśmy zaznaczamy jako fałszywa jeżeli poddrzewo zakończy się fałszem, gałaź drzewa głównego, od której wyszliśmy 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 pojęcia (1) Dedukcyjne bazy danych sa standardowo podzielone na dwie części: EDB (extensional database) - relacje sa zdefiniowane bezpośrednio poprzez wymienienie wszystkich obiektów spełniajacych te relacje. Na przykład: wyzsze_wyksztalcenie(wyzsze,srednie). wyzsze_wyksztalcenie(srednie,podstawowe). IDB (intensional database) - zawiera definicje zależności między relacjami - reguły. lepiej_wyksztalcony(a,b) :- wyksztalcenie(a,wa), wyksztalcenie(b,wb), wyzsze_wyksztalcenie(wa,wb). Dedukcyjne bazy danych p.25/37

Podstawowe pojęcia (2) Alternatywa - DDB jest opisana jako zbiór reguł i faktów. Wiele reguł definiujacych ta sama relację, musi być rozumianych jako alternatywne podejście do tej samej relacji. Cel - Użytkownik 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 pojęcia (3) Rekurencja - Klauzula rekurencyjna definiuje relację przy użyciu jej samej. 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 relacje między obiektami. Obliczenia w programowaniu logicznym to wnioskowanie, wyprowadzenie dowodu. Program definiuje zbiór klauzul nadajacych mu znaczenie. Sztuka logicznego programowania, to sztuka zwięzłego konstruowania programów, które maja pożadane 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 Koniunkcję wyraża się przecinkiem, alternatywę kropka, zaś indukcję znakiem :- Symbol komentarza: % lub /* */ Podstawowe atomy w Prologu moga w nazwach zawierać litery, cyfry i podkreślenia, ale zaczynaja się z małej litery. Nazwy zmiennych zaczynaja się z dużej litery i moga zawierać litery, cyfry i podkreślenia. Anonimowe zmienne sa oznaczone symbolem podkreślenia. Dedukcyjne bazy danych p.30/37

Prolog (4) - syntaktyka Prolog przechowuje dane złożone takie jak: listy, złożenia funkcji. Listy sa oznaczane symbolami: [Pierwszy Reszta] gdzie Pierwszy oznacza pierwszy element listy, zaś Reszta to nazwa reprezentujaca pozostałe elementy listy. Inna metoda to wymienianie kolejnych elementów listy: [a,b,c,d,e] Prolog używa 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 rzędu Semantyka operacyjna - rachunek rezolucji dla logiki predykatów pierwszego rzędu Metoda rezolucji - metoda dowodzenia wychodzaca od reguły kluczowej Sposób postępowania w metodzie rezolucji - wyjście z formuły predykatu w postaci znormalizowanej (alternatywy), a nastepnie tak długie stosowanie zasady rezolucji, aż dojdziemy do sprzeczności lub dalsze dowodzenie nie będzie możliwe Elementarna sprzeczność - 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: Cięcie - oznaczane symbolem:!. Cięcie następuje natychmiast i zmusza Prolog do unifikacji wszystkich wyborów przed celem węzła nadrzędnego, za pomoca nagłówka klauzuli, w której pojawia się cięcie. Cięcie zmniejsza przestrzeń jaka przeszukuje Prolog, poprzez dynamiczne obcięcie drzewa przeszukiwań: wszystkie klauzule występujace w predykacie po cięciu, nie będa brane w dowodzie pod uwagę, jeżeli cięcie jest udowodnione alternatywne rozwiazania cięcia w poddrzewach moga nie zostać znalezione cięcie nie ma wpływu na podcele klauzul stojacych za nim w predykacie Fail - stała będaca 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: określenie problemu definiowanie modelu interpretacji (domen, symboli...) odnalezienie pasujacej teorii tak by prowadziła do wydajnego dowodzenia użycie komponentów kontroli przepływu Dedukcyjne bazy danych p.36/37

Podsumowanie PRO CONTRA wyciaganie niejawnych informacji z zapisanych jawnie faktów i reguł łatwe tworzenie klauzul rekurencyjnych intuicyjne wyznaczanie celów brak determinizmu słabo rozwinięty system zabezpieczeń mimo istnienia standardu Prologa poszczególne implementacje znacznie sie różnia Dedukcyjne bazy danych p.37/37