Internet Semantyczny i Logika I
Transkrypt
Internet Semantyczny i Logika I
Internet Semantyczny i Logika I Warstwy Internetu Semantycznego Zaufanie Dowód Logika OWL, Ontologie RDF, schematy RDF XML, schematy XML przestrzenie nazw URI Podpis cyfrowy 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) • Logic Programming • Frame Logic Nasz wykład 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 przeciwieostwie do zdania: zbudowanym, Sklepu Tomek do poszedł w 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 zarezerwowane słowa języka programowania. jako 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 rodzaje wyrażeo: terminy i formuły. 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 t1,…,tn są terminami i f jest funkcją posiadającą n argumentów wówczas f(t1,…,tn) jest terminem. Logika pierwszego rzędu (FOL) Zbiór formuł w FOL to najmniejszy zbiór spełniający warunki: • jeżeli t1,…,tn są terminami i P jest predykatem posiadającym n argumentów wówczas P(t1,…,tn) jest formułą. • jeżeli t1 i t2 są terminami wówczas wyrażenie t1=t2 jest formułą. • jeżeli i wyrażenia są formułami i x jest zmienną wówczas , , , 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 interpretacji. związane jest z pojęciem 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 predykatom w następujący sposób: znaczenie Dla każdego predykatu P posiadającego n argumentów I(P) jest relacją na zbiorze D czyli: I(P) D … D=Dn 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 … DD Na przykład I(najlepszyPrzyjaciel) będzie funkcją DD. 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ę waluację . =<I,D> i Znaczenie (denotation) terminu t, oznaczone przez ||t|| ,µ definiujemy następująco: • jeżeli t jest zmienną wówczas ||x|| ,µ = [x] • jeżeli t1,…,tn są terminami i f jest funkcją posiadającą n argumentów wówczas ||f(t1,…,tn)|| gdzie F=I[f] i di=||ti|| ,µ . ,µ=F(d1,…,dn) 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 S { }. Mówimy, że zbiór zdao S { (unsatisfable). taka, że } jest niespełnialny 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 qp 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ą taką, że: S Mamy dwie możliwości: G(b) albo G(b) FOL – ważny przykład Załóżmy, że G(b) wówczas: • Ponieważ 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 pozwalająca to sprawdzid. procedura