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 … 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ę
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 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ą
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

Podobne dokumenty