Reprezentacja wiedzy: Logikawjaworski/RW/1_logika.pdf · Logika i ontologia Nawet proste zdania w...

36
Reprezentacja wiedzy: Logika Wojciech Jaworski Instytut Informatyki Uniwersytet Warszawski Wojciech Jaworski (MIM UW) Logika 1 / 36

Transcript of Reprezentacja wiedzy: Logikawjaworski/RW/1_logika.pdf · Logika i ontologia Nawet proste zdania w...

Reprezentacja wiedzy:Logika

Wojciech Jaworski

Instytut InformatykiUniwersytet Warszawski

Wojciech Jaworski (MIM UW) Logika 1 / 36

Co to jest reprezentacja wiedzy?

Wyrazenie w wiedzy o danej dziedzinie w sposób jawny,uporzadkowany i zrozumiały dla komputera.Reprezentacja wiedzy jest zastosowaniem logiki i ontologii dokonstruowania obliczalnych modeli dla zadanych dziedzin.

I Logika zapewnia formalny jezyk opisu i reguły wnioskowaniaI Ontologia definiuje typy bytówI Obliczalne modele (np. relacyjny model danych) umozliwiaja

zaimplementowanie logiki i ontologii w programach komputerowych.Przykłady zastosowan

I projektowanie baz danychI modelowanie obiektoweI przetwarzanie jezyka naturalnegoI organizacja wiedzy z danej dziedziny

Wojciech Jaworski (MIM UW) Logika 2 / 36

Spis tresci

1 Reprezentacja wiedzy w logice

2 Wariacje logik

3 Nazwy, typy i miary

Wojciech Jaworski (MIM UW) Logika 3 / 36

Reprezentacja wiedzy w logice

Logika pozwala reprezentowac w obliczalnej postaci kazdainformacje, która da sie sformułowac precyzyjnie w dowolnyminnym jezyku.Logika pozwala wyrazic kazda informacje, która moze bycprzechowywana w pamieci komputera.Wiedza nie reprezentowalna w logice nie moze byc przetwarzanaza pomoca komputera niezaleznie od uzytej notacji.

Wojciech Jaworski (MIM UW) Logika 4 / 36

Rachunek zdan

Kazdy samochód ma 4 koła.

Zapis powyzszego zdania za pomoca rachunku zdan:

p

najprostsza forma reprezentacjibrak informacji o szczegółach takich jak samochód, koła, liczba 4 irelacjach miedzy nimi

W niektórych zastosowaniach brak szczegółów jest korzystny.

Wojciech Jaworski (MIM UW) Logika 5 / 36

Logika pierwszego rzeduRozpatrzmy nastepujacy sylogizm (starozytna regułewnioskowania)

Kazdy samochód ma 4 koła.Niektóre Syrenki sa samochodami.Zatem, niektóre Syrenki maja 4 koła.

Mozemy wyrazic go w logice w nastepujacy sposób

(∀x)(samochód(x)⇒ czterokołowiec(x))(∃x)(Syrenka(x) ∧ samochód(x))(∃x)(Syrenka(x) ∧ czterokołowiec(x))

Zauwazmy, ze zdania typu Kazde A jest B tłumaczymy na

∀x(A(x)⇒ B(x))

zas zdania typu Niektóre A sa B tłumaczymy na

∃x(A(x) ∧ B(x))

Wojciech Jaworski (MIM UW) Logika 6 / 36

Dobór predykatów

Predykat „czterokołowiec" nie pozwala wyrazic wprost liczby 4, anijej zwiazku z kołami.Mozemy go zastapic predykatem dwuargumentowym:

liczbaKół(x ,n),

który oznacza „liczba kół dla x wynosi n", albo „x ma n kół".Zdanie Kazdy samochód ma 4 koła otrzyma forme logiczna

(∀x)(samochód(x)⇒ liczbaKół(x ,4))

co mozemy odczytac jako Dla kazdego x, jesli x jestsamochodem, to liczba kół x wynosi 4

Wojciech Jaworski (MIM UW) Logika 7 / 36

Dobór predykatów

W predykacieliczbaKół(x ,n)

x odnosi sie do samochodu, n odnosi sie do liczby, ale nie mazmiennej odnoszacej sie do kół.Z punktu widzenia systemu komputerowego nazwy predykatów sapozbawionymi znaczenia etykietami.Jesli w aplikacji potrzebne jest pojecie koła oraz fakt jego istnieniaw samochodzie, musimy wprowadzic bardziej szczegółowepredykaty.

Wojciech Jaworski (MIM UW) Logika 8 / 36

Dobór predykatówRozpatrzmy predykaty:

samochód(x) x jest samochodemkoło(x) x jest kołemczesc(x , y) y jest czescia xzbiór(s) s jest zbioremlicznosc(s,n) Licznosc zbioru s wynosi nelement(x , s) x jest elementem zbioru s

Otrzymujemy nastepujaca forme logiczna:

(∀x)(samochód(x)⇒ (∃s)(zbiór(s) ∧ licznosc(s,4)

∧(∀w)(element(w , s)⇒ (koło(w) ∧ czesc(x ,w)))))

Mozemy ja odczytac nastepujaco:Dla kazdego x, jesli x jest samochodem, to istnieje s, które jestzbiorem o mocy 4 i dla kazdego w, jesli w jest elementem s, to wjest kołem i w jest czescia x.

Wojciech Jaworski (MIM UW) Logika 9 / 36

DefinicjeFormuła

(∃s)(zbiór(s) ∧ licznosc(s,4)

∧(∀w)(element(w , s)⇒ (koło(w) ∧ czesc(x ,w)))))

opisuje własnosc posiadania 4 kół.Mozemy za jej pomoca zdefiniowac predykat czterokołowiec(x):

czterokołowiec(x) = (∃s)(zbiór(s) ∧ licznosc(s,4)

∧(∀w)(element(w , s)⇒ (koło(w) ∧ czesc(x ,w)))))

Definicja jest skrótem notacyjnym, odpowiednikiem procedury lubmakra w jezyku programowania.x — zmienna wolna formuły definicji — nazywamy parametremformalnym.Rozwijajac definicje dokonujemy α-konwersji: zmieniamy nazwyzmiennych lokalnych na unikalne.

Wojciech Jaworski (MIM UW) Logika 10 / 36

Logika i ontologia

Nawet proste zdania w jezyku naturalnym niosa ze soba wieleukrytych informacji.Podanie wprost wszystkich szczegółów utrudnia odnalezienietego co istotne w przekazie.Nadmiar szczegółów wynika po czesci z jawnego wprowadzaniazmiennych.Poziom dokładnosci zalezy od doboru predykatów, czyli wyboruontologii.Predykaty mozemy podzielic na

I specyficzne dla danej dziedziny: samochód, koło(x)I niezalezne od dziedziny:

czesc(x , y), zbiór(s), licznosc(s,n),element(x , s)

Wojciech Jaworski (MIM UW) Logika 11 / 36

Jezyki specjalistyczne

Podzbiory logiki z własna notacja i wbudowana ontologiaPrzykłady: notacja muzyczna, rozkłady jazdy, systemyinformacyjne, mapy, plany, schematy.Krótsze czytelniejsze niz logika (i jezyk naturalny)Logika jest ontologicznie neutralna notacja, która moze byc uzytado reprezentowania informacji z dowolnej dziedziny poprzezdodanie predykatów opisujacych ta dziedzine.Jezyki specjalistyczne moga byc sprowadzane do postaci formułlogicznych w celu komputerowego przetwarzania zawartych wnich tresci.

Wojciech Jaworski (MIM UW) Logika 12 / 36

Przykład: mapa

Wojciech Jaworski (MIM UW) Logika 13 / 36

Przykład: mapaMamy ulice, które mozemy reprezentowac jako segmentyprostych i łuków.Ulice przecinaja sie na skrzyzowaniach tworzac graf.Nazwy ulic sa etykietami krawedzi w tym grafieOprócz tego mamy punkty takie jak restauracje, przystanki itp.Strukturalna implementacja mapy polegałaby na stworzeniu grafuulic itp., dodanie nowego komponentu mapy wymagazmodyfikowania struktur danych, czyli napisaniu programu odnowa.Obiektowo mozemy stworzyc odpowiednie klasy dla elementówmapy dzielac je na punktowe, liniowe itp., dodanie nowegokomponentu moze byc realizowane przez dodanie podklasy, alenie zawsze jest to mozliwe, np. wprowadzenie etykiet ulic.Mozemy tez wyrazic tresc mapy za pomoca logiki, dodanienowego komponentu polega na wprowadzeniu nowego predykatu.

Wojciech Jaworski (MIM UW) Logika 14 / 36

Logika egzystencjalno-koniunkcyjna

Pozwala wyrazac fakty o konkretnych bytach.Wystarcza jako reprezentacja wiekszosci notacjispecjalistycznych.Jest reprezentacja informacji przechowywanej w bazach danychzarówno relacyjnych jak i obiektowych.Nie moze reprezentowac generalizacji, negacji, implikacji, anialternatywy.Przykład generalizacji: zasada przystanek musi znajdowac sie naulicy.

Wojciech Jaworski (MIM UW) Logika 15 / 36

Spis tresci

1 Reprezentacja wiedzy w logice

2 Wariacje logik

3 Nazwy, typy i miary

Wojciech Jaworski (MIM UW) Logika 16 / 36

Wariacje logikLogiki moga róznic sie od siebie nastepujacymi cechami

składnia: wpływa na czytelnosc, nie zmienia siły wyrazupodzbiór: dozwolone operatory i sposoby ich łaczenia, np logika∃∧, czy rachunek zdanteoria dowodu: ograniczenie systemu dowodowego (np. logikaintuicjonistyczna, liniowa), lub jego rozszerzenie (np. logikaniemonotoniczna); semantyka logiki wynika wtedy z systemudowodowego — odwrotnie niz w FOLteoria modeli: zmiana pojecia prawdy, np logika trójwartosciowa,czy rozmytaontologia: zbiór predykatów i aksjomatów jakie traktujemy jakopodstawowe, niezalezne od dziedziny np. =, teoria mnogosci,teoria czasumetajezyk: jezyk, który słuzy do mówienia o jezyku (np. FOL,gramatyka bezkontekstowa)

Wojciech Jaworski (MIM UW) Logika 17 / 36

Logika z typami

Nadajemy zmiennym typy:

(∀x : t)P(x) ≡ (∀x)(t(x)⇒ P(x))

(∃x : t)P(x) ≡ (∃x)(t(x) ∧ P(x))

Na przykład:Kazdy samochód ma 4 koła.(∀x : Samochód)czterokołowiec(x)Niektóre Syrenki sa samochodami.(∃x : Syrenka)samochód(x))Zatem, niektóre Syrenki maja 4 koła.(∃x : Syrenka)czterokołowiec(x)

Wojciech Jaworski (MIM UW) Logika 18 / 36

Logika z typami

Stosujemy równiez specjalna notacje dla predykatówniezaleznych od dziedzinyZdanie

(∀x)(samochód(x)⇒ (∃s)(zbiór(s) ∧ licznosc(s,4)

∧(∀w)(element(w , s)⇒ (koło(w) ∧ czesc(x ,w)))))

zapiszemy jako

(∀x : Samochód)(∃s : Zbiór)(s@4

∧(∀w ∈ s)(koło(w) ∧ czesc(x ,w)))))

Wojciech Jaworski (MIM UW) Logika 19 / 36

Definiowanie funkcji i relacji anonimowych

Zamiast czterokołowiec(x) =

= (∃s : Zbiór)(s@4 ∧ (∀w ∈ s)(koło(w) ∧ czesc(x ,w)))

mozemy napisac czterokołowiec =

= (λx)((∃s : Zbiór)(s@4 ∧ (∀w ∈ s)(koło(w) ∧ czesc(x ,w))))

Notacja (λx)Ψ(x) jest definicja funkcji anonimowej, w której x jestparametrem formalnym, a Ψ formuła definiujaca funkcje.Aplikacja ((λx)Ψ(x))(a) powoduje wygenerowanie formuły Ψ(a).λ bedziemy stosowac m.in. przy definiowaniu typów anonimowych

(∃x : Czterokołowiec) samochód(x)

(∃x : (λx)((∃s :Zbiór)(s@4∧(∀w ∈s)(koło(w)∧czesc(x ,w)))))samochód(x)

Wojciech Jaworski (MIM UW) Logika 20 / 36

Grafy pojec

Samochód : ∀ // Czesc // Koło : {?}@4

Kazdy samochód ma 4 koła

Notacja dla logiki pozwalajaca uniknac jawnego wprowadzaniazmiennych.Prostokaty nazywamy to pojeciami, a kółka relacjami pojeciowymi.Wewnatrz prostokata znajduje sie opis pojecia (nazwa lubdefinicja) oraz opis odniesienia, który moze zawierac nazwe,kwantyfikator ∀ lub specyfikacje ilosci, oddzielone dwukropkiem.Relacje pokazuja w jaki sposób odniesienia pojec sa powiazane.

Wojciech Jaworski (MIM UW) Logika 21 / 36

Semantyka grafów pojecKazdy prostokat etykietujemy unikalna liczba naturalna.Konstruujemy formułe FOL przetwarzajac prostokaty w kolejnoscirosnacych etykiet:

I jezeli napotkamy na Pojeciei, dopisujemy na koncu formuły

(∃xi : pojecie)I Pojecie : ∀

itłumaczymy na (∀xi : pojecie)

I Pojecie : {?}@nitłumaczymy na

(∃si : zbiór)si @n ∧ (∀xi ∈ si )pojecie(xi )

gdzie i jest etykieta prostokata.Przetwarzamy kółka w dowolnej kolejnosci. Dla relacji postaci

. . .i

// Relacja // . . .j

generujemy ∧relacja(xi , xj) i dopisujemy na koncu formuły („∧”pomijamy przy pierwszej relacji)

Wojciech Jaworski (MIM UW) Logika 22 / 36

Niejednoznacznosc semantykiJesli ograniczymy sie do logiki egzystencjalno-koniunktywnej,kolejnosc predykatów i kwantyfikatorów w formule nie maznaczenia, co zapewnia jednoznaczna translacje grafu na formułeFOL.Jesli wystepuje ∀ translacja przestaje byc jednoznaczna.Na przykład

Chłopak : ∀ // Lubi // Dziewczyna

mozemy zinterpretowac jako

(∀y : chłopak)(∃x : dziewczyna)lubi(y , x)

albo(∃x : dziewczyna)(∀y : chłopak)lubi(y , x)

Zjawisko to wystepuje równiez w jezykach naturalnych (QuantifierScope Ambiguity).

Wojciech Jaworski (MIM UW) Logika 23 / 36

Koreferencja

Kazdy samochód ma 4 koła.(∀x : Samochód)czterokołowiec(x)

W powyzszym przykładzie dwa pojecia maja ten sam desygnat(odniesienie)Mozemy zapisac to za pomoca grafu jako:

Samochód : ∀ // = // Czterokołowiec

Co odpowiada formule:(∀x : Samochód)(∃y : czterokołowiec)x = yMozemy tez skorzystac ze skrótu notacyjnego:

Samochód : ∀ Czterokołowiec

Wojciech Jaworski (MIM UW) Logika 24 / 36

Knowledge Interchange Format (KIF)

Logika z typami majaca składnie w stylu Lisp’a korzystajacajedynie z symboli ASCII.Przykład(forall (?x samochod)(exists (?s set)(and (count ?s 4)(forall (?w in ?s) (and (kolo ?w)

(part ?x ?w))) )))

Wojciech Jaworski (MIM UW) Logika 25 / 36

Logiki modalne

Logika posiadajaca operatory wyrazajace modalnosci.♦ϕ oznacza, ze ϕ jest mozliwe.�ϕ oznacza, ze ϕ jest konieczne.Semantyke operatorów modalnych mozna w skrócie wyrazicnastepujaco:

I mamy zbiór mozliwych swiatów, z wyróznionym swiatem aktualnym;I ϕ oznacza, ze ϕ jest prawdziwe w swiecie aktualnym;I ♦ϕ oznacza, ze istnieje swiat, w którym ϕ jest prawdziwe;I �ϕ oznacza, ze ϕ jest prawdziwe w kazdym mozliwym swiecie.

Istnieja rózne aksjomatyzacje modalnosci majace rózna siłewyrazu.W bazach danych

I informacje przechowywane w bazie sa uznawane za prawdziwe wswiecie aktualnym

I wiezy sa uznawane za koniecznie prawdziwe.

Wojciech Jaworski (MIM UW) Logika 26 / 36

Logiki wyzszego rzedu

Logika pierwszego rzedu pozwala kwantyfikowac po indywiduach.Logika drugiego rzedu pozwala kwantyfikowac po relacjach naindywiduach.Logika trzeciego rzedu pozwala kwantyfikowac po relacjach narelacjach na indywiduach, itd ...Na przykład, aksjomat indukcji dla liczb naturalnych:

(∀P : Predykat)((P(0)∧(∀n ∈ N)(P(n)⇒ P(n+1))⇒ (∀n ∈ N)P(n))

Logiki wyzszego rzedu mozna zdefiniowac za pomoca FOLzaopatrzonej w ontologie dla relacji (np. ZFC)

Wojciech Jaworski (MIM UW) Logika 27 / 36

Metajezyk

Jezyk uzywany do mówienia o jezyku.Na przykład jezyk naturalny uzywany do definiowania logikipierwszego rzedu.Rozpatrzmy zdanie: Zdanie „Jest prawda, ze Jan jest wysoki”znaczy to samo co „Jan jest wysoki.”Cudzysłowy wskazuja na uzycie metajezyka, podobnie słowoprawda.Zatem, cała rozpatrywana wypowiedz nalezy do metametajezyka,a slajd który o niej mówi do metametametajezyka.W logice mozemy wprowadzic specjalny predykat, który pełni rolecudzysłowów i łaczy jezyk z metajezykiem.

Wojciech Jaworski (MIM UW) Logika 28 / 36

Spis tresci

1 Reprezentacja wiedzy w logice

2 Wariacje logik

3 Nazwy, typy i miary

Wojciech Jaworski (MIM UW) Logika 29 / 36

Nazwy własne

Wyrazenie kot Mruczek mozemy reprezentowac jako

kot(Mruczek)

Jest to prosta reprezentacja, ale zawodna, gdyI nazwa jest niejednoznaczna, np. wiele kotów ma na imie „Mruczek”I jeden obiekt ma wiele nazw, np. kot znany w jednym domu jako

„Mruczek”, jest w drugim domu nazywany „Filon”.

Rozwiazaniem sa surogaty, czyli jednoznaczne identyfikatoryprzypisywane indywiduom.W Polsce w przypadku ludzi surogatem jest PESEL.Nazwy własne staja sie zwykłymi cechami obiektów:

Imie(„Mruczek”) ∧ (∃x : Kot)nazywaSie(x , „Mruczek”)

Wojciech Jaworski (MIM UW) Logika 30 / 36

Konwencja unikalnych nazw

Jezeli stałe a i b maja rózne nazwy to a 6= b.KIF ma dwa typy stałych dla jednych zakłada sie unikalnosc, dladrugich nie.W grafach pojec stałe nie sa traktowane jako unikalne, alesymbole postaci #liczba sa unikalne i słuza za surogaty.Wezeł grafu postaci Pojecie : Nazwa zapisujemy w jezyku logikijako

Pojecie(Nazwa)

i oznacza to, ze obiekt o nazwie „Nazwa” jest typu „Pojecie”.Imie : „Mruczek” to imie o brzmieniu „Mruczek”

Kot : #2563 to kot skatalogowany w systemie podidentyfikatorem #2563.

Wojciech Jaworski (MIM UW) Logika 31 / 36

Skolemizacja

Jesli wprowadzimy surogat dla kazdego indywiduum, o którymwiemy, ze istnieje, bedziemy mogli usunac wszystkie ∃ zastepujacwystapienia kwantyfikowanych zmiennych surogatami.Jest to instancjacja egzystencjalna, zwana tez skolemizacja.Skolemizacja zmienia nieco znaczenie, bo zmiennakwantyfikowana egzystencjalnie nie wskazuje jednoznacznieobiektu.

I Jesli wiemy, ze(∃x)kot(x)

to na pytanie „Jaki jest kolor futra tego kota?” mozemy opowiedziecpodajac kolor futra dowolnego istniejacego kota.

I Z kolei, jesli wiemy, zekot(#2563)

to odpowiadajac na pytanie „Jaki jest kolor futra tego kota?”musimy podac kolor futra obiektu wskazanego przez #2563.

Wojciech Jaworski (MIM UW) Logika 32 / 36

Rzeczowniki pospolite

Zdanie Koty lubia ryby mozemy zapisac w logice jako

(∀x : Kot)(∀y : Ryba)lubi(x , y)

Zas Kot lubi rybe mozemy zapisac jako

(∃x : Kot)(∃y : Ryba)lubi(x , y)

Rzeczownikom (nazwom) pospolitym odpowiadaja typy, albopredykaty.

Wojciech Jaworski (MIM UW) Logika 33 / 36

Typ „Typ”Logika pierwszego rzedu pozwala kwantyfikowac jedynie poindywiduach.Aby móc kwantyfikowac po typach wprowadzimy typ „Typ”.Zmiennymi typu „Typ” beda typy.Jest on typem drugiego rzedu.

Koty to ssaki. Kot jest ssakiem. Koty sa ssakami

(∀x : Kot)ssak(x)

Koty to gatunek.

(∃x : Gatunek)(typ(Kot) ∧ x = Kot)

Mruczek jest kotem.

(∃x : Kot)x = Mruczek

kot Mruczek.kot(Mruczek)

Wojciech Jaworski (MIM UW) Logika 34 / 36

Predykat „rodzaj”

Wprowadzimy tez predykat „rodzaj(x , t)”, który oznacza, ze obiektx jest typu t .Stosowanie predykatu „rodzaj” do okreslania typów nazywamyreifikacja:

(∀x)(∀y)(rodzaj(x ,Kot) ∧ rodzaj(y ,Ryba))⇒ lubi(x , y)

Nazwy typów moga miec aliasy podobnie jak nazwy indywiduów,wiec w praktyce równiez sa stosowane dla nich surogaty.Mozemy teraz na przykład zdefiniowac typy niepuste mówiac, zeKazdy typ jest niepusty, gdy zawiera przynajmniej jednoindywiduum:

(∀t : TypNiepusty)(∃x : Indywiduum)rodzaj(x , t)

Wojciech Jaworski (MIM UW) Logika 35 / 36

Reprezentacja miar

Waldemar i Zofia otrzymuja po 30000zł honorarium.

(∃x , y : Zarobic)(∃z,w : Honorarium)

(Osoba(Waldemar) ∧Osoba(Zofia)∧

agnt(x ,Waldemar) ∧ przedmiot(x , z) ∧ ilosc(z,30000zł)∧

agnt(y ,Zofia) ∧ przedmiot(y ,w) ∧ ilosc(w ,30000zł))

Powyzsza formuła nie uwzglednia faktu, ze honoraria sa rozłaczne(co podkresla przyimek „po”).Mozemy zawyrokowac rozłacznosc na nastepujace sposoby:

I dodac do formuły warunek: z 6= wI ustanowic surogaty dla honorariów i ustanowic konwencje

mówiaca, ze kazdy surogat wskazuje inne indywiduum.

Wojciech Jaworski (MIM UW) Logika 36 / 36