Internet Semantyczny i Logika I
Warstwy Internetu Semantycznego Dowód Zaufanie Logika OWL, Ontologie Podpis cyfrowy RDF, schematy RDF XML, schematy XML przestrzenie nazw URI
Po co nam logika? Potrzebujemy formalnego języka, za pomocą którego będziemy mogli zapisad informację w Internecie Semantycznym. Informacja powinna byd zapisana w sposób jednoznaczny. Język za pomocą którego zapiszemy informację powinien umożliwiad przetwarzanie informacji przez maszyny. Język ten powinien także umożliwiad wyprowadzenie nowej wiedzy z wiedzy już posiadanej ( reasoning).
Języki logiczne (logical languages) Logika pierwszego rzędu Logika opisowa (Description Logic) Nasz wykład Logic Programming Frame Logic
Elementy składowe języka Co to jest język? Z jakich elementów się składa? składnia (syntax) musimy mied do dyspozycji symbole oraz sposoby łączenia symboli. Musimy określid jakie ciągi symboli są zdaniami naszego języka. Na przykład w języku polskim zdanie: Tomek poszedł do sklepu jest zdaniem poprawnie zbudowanym, w przeciwieostwie do zdania: Sklepu Tomek do poszedł
Elementy składowe języka (cd) Co to jest język? Z jakich elementów się składa? semantyka musimy określid jakie jest znaczenie poprawnie zbudowanych wyrażeo języka (nośnikami jakiej informacji są te wyrażenia). Na przykład w języku polskim wyrażenie: Zamyślony liść mimo, że jest poprawnie zbudowane nic nie znaczy.
Logika pierwszego rzędu (FOL) W FOL wyróżniamy dwa rodzaje symboli: Symbole logiczne czyli takie które mają ustalone znaczenie lub sposób użycia. Symbole nielogiczne czyli takie których znaczenie zależy np. od aplikacji.
Logika pierwszego rzędu (FOL) Wyróżniamy trzy rodzaje symboli logicznych: interpunkcyjne: (, ),.. konstruktory:,,,,, =. zmienne: oznaczamy przez x, y, z etc.
Logika pierwszego rzędu (FOL) Wyróżniamy dwa rodzaje symboli nielogicznych: funkcje pisane z małej litery np. bliskiprzyjaciel. Funkcje oznaczamy też przez a, b, c, f predykaty pisane z dużej litery np. StarszyOd. Predykaty oznaczamy też czasem przez P, Q, R.
Logika pierwszego rzędu (FOL) Predykaty i funkcje mogą posiadad różną liczbę argumentów (0,1,2, arity). Funkcje nie posiadające argumentów nazywamy stałymi. Oznaczamy je przez a, b, c. Funkcje posiadające argumenty przez f, g. Predykaty nie posiadające argumentów to tzw. propositional symbols.
Logika pierwszego rzędu (FOL) Symbole logiczne możemy interpretowad jako zarezerwowane słowa języka programowania. Predykaty mogą mied różne znaczenie w zależności od aplikacji. Przykłady: Dog predykat z jednym argumentem StarszyOd predykat z dwoma argumentami najlepszyprzyjaciel funkcja z jednym argumentem.
Logika pierwszego rzędu (FOL) W FOL istnieją dwa formuły. rodzaje wyrażeo: terminy i Możemy przyjąd, że terminy związane są z istniejącymi obiektami natomiast formuły są używane do zapisu stwierdzeo. Formalne definicje są następujące
Logika pierwszego rzędu (FOL) Zbiór terminów w FOL to najmniejszy zbiór spełniający warunki: każda zmienna jest terminem. jeżeli t 1,,t n są terminami i f jest funkcją posiadającą n argumentów wówczas f(t 1,,t n ) jest terminem.
Logika pierwszego rzędu (FOL) Zbiór formuł w FOL to najmniejszy zbiór spełniający warunki: jeżeli t 1,,t n są terminami i P jest predykatem posiadającym n argumentów wówczas P(t 1,,t n ) jest formułą. jeżeli t 1 i t 2 są terminami wówczas wyrażenie t 1 =t 2 jest formułą. jeżeli i są formułami i x jest zmienną wówczas wyrażenia,,, x., x. są formułami.
Logika pierwszego rzędu (FOL) Formuły dwóch pierwszych rodzajów (powyższych) nazywamy formułami atomowymi. Formuły nie posiadające zmiennych nazywamy zdaniami. Wprowadzamy następujące skróty: oznacza. oznacza ( ). Ponadto w przypadku funkcji i predykatów nie posiadających argumentów pomijad będziemy nawiasy.
FOL przykłady stwierdzeo Jeśli samochód należy do Karola, to jest on zielony. X Auto(X) Posiada(Karol, X) Kolor(X, zielony) Mirek gra na gitarze lub na skrzypcach Gra_na_inst(Mirek, gitara) skrzypce) Gra_na_inst(Mirek, Niektórzy ludzie lubią żmije X (Człowiek(X) Y (Żmija(Y) Lubi(X, Y)))
Semantyka FOL Semantyka określa jakie jest znaczenie poprawnie zbudowanych wyrażeo języka (nośnikami jakiej informacji są te wyrażenia). W przypadku FOL trudno jednak określid znaczenie zdao zawierających symbole nielogiczne np: PanstwoDemokratyczne(Polska) ulubioneciastko(piotr) SzybszySamochodOd(Audi,Maluch)
Semantyka FOL Znaczenie wyrażeo związane jest z pojęciem interpretacji. Interpretacja w FOL to para <D,I> gdzie D jest niepustym zbiorem obiektów (tzw. dziedzina), a I jest odwzorowaniem ze zbioru nielogicznych symboli do funkcji i relacji na zbiorze D. D nie musi byd zbiorem obiektów matematycznych. Może to byd dowolny zbiór.
Semantyka FOL Odwzorowanie I będzie nadawało znaczenie predykatom w następujący sposób: Dla każdego predykatu P posiadającego n argumentów I(P) jest relacją na zbiorze D czyli: I(P) D D=D n Na przykład rozważmy predykat Pies. W tym przypadku I(Pies) będzie pewnym podzbiorem zbioru D. Podobnie I(StarszyOd) będzie pewnym podzbiorem zbioru D D.
Semantyka FOL Odwzorowanie I będzie nadawało znaczenie funkcjom w następujący sposób: Dla każdej funkcji f posiadającej n argumentów I(f) jest n argumentową funkcją na zbiorze D czyli: I(f):D D D Na przykład I(najlepszyPrzyjaciel) będzie funkcją D D. Podobnie I(Marek) będzie pewnym elementem D.
Semantyka FOL Mając interpretację =<I,D> możemy znaleźd elementy zbioru D odpowiadające dowolnemu terminowi FOL nie zawierającemu zmiennych np.: najlepszyprzyjaciel(m arek) Ponieważ w wyrażeniach FOL mogą pojawiad się zmienne zatem powinniśmy w jakiś sposób przyporządkowad zmiennym elementy zbioru D. Odwzorowanie takie oznaczamy przez i nazywamy waluacją. Jeżeli x jest zmienną wówczas [x] jest elementem D.
Semantyka FOL Załóżmy, że rozważamy interpretację =<I,D> i waluację. Znaczenie (denotation) terminu t,µ definiujemy następująco: jeżeli t jest zmienną wówczas x,µ = t, oznaczone przez jeżeli t 1,,t n są terminami i f jest funkcją posiadającą n argumentów wówczas gdzie F=I[f] i d i = t i,µ. f(t 1,,t n ),µ =F(d 1,,d n ) [x]
Semantyka FOL - prawda, fałsz Mając daną interpretację =<I,D> i odwzorowanie x,µ zdefiniowane powyżej możemy określid które zdania FOL są prawdziwe, a które fałszywe. Na przykład rozważmy zdanie: Pies(najlepszyPrzyjaciel(Marek)) Predykatowi Pies odpowiada pewien podzbiór zbioru D oznaczony I[Pies]. Jeżeli element I[najlepszyPrzyjaciel(Marek))] należy do zbioru I[Pies] wówczas powyższe zdanie jest prawdziwe.
Semantyka FOL - prawda, fałsz W ogólności mając daną interpretację =<I,D> i waluację µ stwierdzamy, że formuła jest spełniona (satisfied) co zapisujemy,µ wykorzystując reguły:
Semantyka FOL - prawda, fałsz W przypadku gdy formuła jest zdaniem wówczas waluacja µ nie odgrywa żadnej roli i dlatego piszemy. Mówimy wówczas, że zdanie jest prawdziwe w interpretacji. W przeciwnym razie mówimy, ze zdanie jest fałszywe. Jeżeli S jest zbiorem zdao wówczas S oznacza, że wszystkie zdania ze zbioru S są prawdziwe w interpretacji. Nazywamy wówczas modelem S.
FOL logiczna konsekwencja Nie S będzie zbiorem zdao. Mówimy, że zdanie jest logiczną konsekwencją S (S pociąga za sobą (entails) ) co zapisujemy S jeżeli dla każdej interpretacji takiej, że S zachodzi. Oznacza to, że każdy model S jest modelem.
FOL logiczna konsekwencja Inaczej: konsekwencja logiczna S oznacza, że nie istnieje interpretacja taka, że S { }. Mówimy, że zbiór zdao S { } jest niespełnialny (unsatisfable).
FOL logiczna konsekwencja Mówimy, że zdanie jest prawdziwe (valid) jeżeli czyli jeżeli jest konsekwencją logiczną zbioru pustego. Łatwo zauważyd, że zdanie jest prawdziwe (valid) jeżeli dla każdej interpretacji.
FOL przykład Chcemy sprawdzid czy: p q p gdzie p i q są predykatami nie posiadającymi argumentów. W każdym modelu p q oba p i q są spełnione (pawdziwe), a zatem spełnione (prawdziwe) jest p. Równoważnie możemy sprawdzid, czy zbiór zdao {p q, p} posiada model. Oczywiście nie ponieważ wówczas zdania p i powinny byd spełnione (prawdziwe) jednocześnie. p
FOL ważny przykład Rozważmy następującą sytuację: Chcemy odpowiedzied na pytanie: Czy na niezielonym bloku leży blok zielony?
FOL ważny przykład Sformalizujmy zagadnienie w języku FOL. a, b, c niech będą nazwami bloków (stałe) predykat O posiadający dwa argumenty oznacza relację leży bezpośrednio na. predykat G posiadający jeden argument oznacza ma kolor zielony.
FOL ważny przykład Zbiór S zdao opisujących sytuację na powyższym rysunku jest następujący: { O(a,b),O(b,c),G(a), G(c)}
FOL ważny przykład Chcemy pokazad, że konsekwencją logiczną zdao S jest: x y.g(x) G(y) O(x,y) Musimy zatem pokazad, że dowolna interpretacja spełniająca S spełnia także powyższą formułę. Niech zatem S będzie interpretacją Mamy dwie możliwości: S taką, że: G(b) albo G(b)
FOL ważny przykład Załóżmy, że Ponieważ G(b) wówczas: G(c) i O(b,c) są w zbiorze S zatem: G(b) G(c) O(b,c) Z powyższego wynika, że: x y.g(x) G(y) O(x,y)
FOL ważny przykład Załóżmy, że G(b) wówczas: Ponieważ G(a) i O(a,b) są w zbiorze S zatem: G(a) G(b) O(a,b) Z powyższego wynika, że: x y.g(x) G(y) O(x,y)
FOL ważna własność W przypadku FOL problem polegający na pokazaniu, że jedno zdanie jest konsekwencją logiczną innych zdao jest w ogólności nierozwiązywalny (nierozstrzygalny). Nie istnieje żadna automatyczna procedura pozwalająca to sprawdzid.