konspekt wykładu

Transkrypt

konspekt wykładu
WYKŁAD 8
Strukturalizacja otoczenia agentów:
ontologie, CYC, sieci semantyczne
Jan widział X , gdy leciał nad miastem.
Jan widział samolot, gdy leciał nad miastem.
Jan widział dom, gdy leciał nad miastem.
Wieczorem Tomek dojdzie do Y .
Wieczorem Tomek dojdzie do celu.
Wieczorem Tomek dojdzie do siebie.
Dla poprawnego zinterpretowania w/w zdań potrzebna jest rozległa wiedza
„zdroworozsądkowa”, która obecnie jest trudno dostępna dla komputerów:
! Ludzie śpią w swoich domach
! (#$forAll ?X
(#$forAll ?Y
(#$forAll ?Z
(#$implies
(#$and
(#$isa ?X #$Czlowiek)
(#$isa ?Y #$Spanie)
(#$performer ?Y ?X)
(#$location ?Y ?Z)
)
(#$home ?X ?Z)
)
)
)
)
! Jeżeli obiekt X jest człowiekiem i jeżeli wykonuje operację Y ,
a operacja Y jest „spaniem”, to miejscem Z wykonywania
tego „spania”, jest dom obiektu X
−1−
W obecnych systemach informatycznych brakuje dostatecznie szerokiej
bazy wiedzy. Nawet niewielkie bazy wiedzy rzędu 100-1000 reguł
prowadzą do interesujących rezultatów ale w bardzo wąskiej dziedzinie
(systemy doradcze – ekspertowe).
Oczekujemy, że reprezentacja podstawowych pojęć i własności: czas,
przestrzeń, materia, obiekt, wydarzenie, kolekcja, rodzaj substancji itp,
powinna być wspólna dla wszystkich systemów (podobnie jak dla ludzi
pochodzących z różnych ras czy kontynentów)
ONTOLOGIA
! wywodzi się z filozofii,
! ogólna teoria bytu,
! dziedzina metafizyki, która para się badaniem i wyjaśnianiem natury,
kluczowych właściwości oraz relacji rządzących wszystkimi bytami,
bądź głównych zasad i przyczyn bytu (Webster)
! reprezentacja dystrybuowanej konceptualizacji określonej domeny
(formalna specyfikacja konceptualizacji)
gdzie „konceptualizacja” oznacza abstrakcyjny ogląd świata.
! to para {D,R},
gdzie D jest opisywaną domeną / dziedziną
a R jest zestawem relacji określonych na D
Ontologia łączy terminy ze słownika (tej ontologii) z jednostkami
identyfikowanymi w trakcie konceptualizacji oraz udostępnia
definicje służące uściśleniu znaczenia tych terminów (M.Nahotko)
! jest logiczną teorią reprezentowaną przez intencjonalne znaczenie
sformalizowanego słownika,
! pozwala na jednoznaczne rozumienie domeny, które to rozumienie
może być przekazywane osobom i systemom aplikacyjnym,
! zawiera hierarchiczny opis istotnych pojęć w danej domenie
oraz przedstawia zasadnicze właściwości każdego pojęcia
przy pomocy mechanizmu atrybut-wartość
! spełnia rolę trochę podobną do schematów baz danych.
−2−
Przykład prostej ontologii wyrażonej w języku OIL
( Ontology Inference Layer - http://www.ontoknowledge.org/oil/ )
class-def zwierzę
class-def roślina
subclass-of NOT zwierzę
class-def drzewo
subclass-of roślina
class-def gałąź
slot-constraint is-part-of has-value drzewo
class-def liść
slot-constraint is-part-of has-value gałąź
class-def definicja drapieżników
subclass-of zwierzę
slot-constraint zjada value-type zwierzę
class-def definicja roślinożernych
subclass-of zwierzę
slot-constraint zjada value-type roślina
OR (slot-constraint is-part-of has-value roślina)
class-def żyrafa
subclass-of zwierzę
slot-constraint zjada value-type liść
class-def lew
subclass-of zwierzę
slot-constraint zjada value-type roślinożerne
class-def rośliny jadalne
subclass-of roślina
slot-constraint zjadany has-value roślinożerny,
drapieżnik
%zwierzęta są klasą
%rośliny są klasą
%wyłączenie ze zwierząt
%drzewa są rodzajami roślin
%gałęzie są częścią drzew
%liście są częścią gałęzi
%drapieżniki są zwierzętami
%które zjada tylko inne zwierzęta
%roślinożerne są zwierzętami
%które zjada tylko rośliny lub części
roślin
%żyrafy są zwierzętami
%oraz jedzą liście
%lwy też są zwierzętami
%ale zjadają one roślinożerne
%rośliny jadalne to rośliny zjadane
%przez drapieżników i roślinożerców
(z artykułu Marka Nahotko „Semantyczny Web i jego ontologie”)
−3−
Projekt CYC
! zbudowanie „zdroworozsądkowej” bazy wiedzy o otaczającym
świecie, wspólnej dla większości ludzi,
! projekt prowadzony od roku 1984 (prof. Douglas Lenat)
! na początku MIT, Stanford, od 1995 firma Cycorp
! nazwa pochodzi od współbrzmienia z ang. „psych”
! 600 osobolat pracy, 155 tys. koncepcji, 2.5 miliona reguł (w r.2004)
Przy czym liczba reguł jaką powinien posiadać system
„zdroworozsądkowy” jest szacowana na rzędu 100 milionów.
! OpenCyc – otwarta, publicznie dostępna wersja systemu Cyc –
oprogramowanie dostępne nieodpłatnie pod adresem
http://sourceforge.net/project/showfiles.php?group_id=27274
Wersja 0.9 zawiera 50 tys. koncepcji „wyższej” ontologii opisującej
podstawowe elementy rzeczywistości oraz 300 tys. asercji
definiujących wzajemne relacje tych podstawowych koncepcji
! Składowe systemu Cyc:
• leksykon
• parser syntaktyczny
• interpreter semantyczny
! reprezentacja wiedzy za pomocą języka CycL
Język CycL:
! rachunek predykatów logiki pierwszego rzędu
! oparty o język Lisp:
o notacja prefiksowa: (+ 2 3)
o każde wyrażenie nie będące stałą musi być otoczone nawiasami
! Słownik języka CycL składa się z termów.
Termami mogą być stałe, zmienne, formuły (składające się ze
stałych, zmiennych, spójników, kwantyfikatorów)
−4−
Stałe:
Określają pojedyncze obiekty-indywidua lub kolekcje
Nazwy stałych rozpoczynają się od znaków #$
np. #$Zielony
(kolor)
#$Dostateczna
(ocena)
#$Sienkiewicz
(nazwisko)
Nazwy stałych oznaczających predykaty muszą się rozpoczynać od
małej litery:
#$isa
(predykat „jest”)
#$implies
(predykat „jeżeli to” ⇒ )
#$comment
(predykat „komentarza”)
#$forAll
(kwantyfikator „dla każdego” ∀ )
Przykłady wykorzystania stałych:
(#$isa #$Zielony #$Color)
(#$colorOfObject #$MojSamochod #$Zielony)
Zmienne:
Identyfikują stałe, które nie zostały jawnie podane.
Nazwy zmiennych rozpoczynają się od znaku zapytania ’?’
Formuły:
Mają strukturę listy ograniczonej nawiasami.
Obiekt występujący na początku listy może być predykatem,
spójnikiem logicznym lub kwantyfikatorem.
Najprostszym rodzajem są „formuły atomowe”, których pierwszym
elementem jest predykat a pozostałymi elementami są termy.
● (#$mother #$TomekKowalski #$AnnaKowalska)
● (#$isa #$Guest #$HumanCyclist)
● (#$implies (#$mother ?Dziecko ?Mama)
(#$loves ?Mama ?Dziecko))
● (#$forAll ?X (#$implies (#$isa ?X #$Lisc)
(#$colorOfObject ?X #$Zielony)
−5−
Przykładowe polecenia Cyc API:
! (+ 2 3)
! (GENLS #$Person)
! (FIND-CONSTANT nazwa) – funkcja zwracająca stałą o zadanej
nazwie lub NIL np. (FIND-CONSTANT ”Guest”)
! (CREATE-CONSTANT nazwa [id]) – funkcja tworząca nową stałą
o zadanej nazwie, jeżeli stała już istnieje to wystąpi błąd
! (RENAME-CONSTANT stała nowa-nazwa) zmienia nazwę
istniejącej stałej np. (RENAME-CONSTANT #$Error ”Blad”)
! (REMOVE-CONSTANT stała) – usuwa istniejącą stałą
! (CYC-ASSERT zdanie mt) funkcja dodaje nowy fakt „zdanie” do
zadanej mikroteorii „mt” np.
(CYC-ASSERT ' (#$isa #$Marek #$MalePerson) #$InferencePSC)
! (CYC-QUERY zapytanie [mt]) – wykonuje zapytanie- kwerendę,
opcjonalnie można podać mikroteorię.
np.
(CYC-QUERY '(#$isa #$Collection ?what-collection) #$InferencePSC )
−6−
SIEĆ SEMANTYCZNA
Jak człowiek widzi informacje prezentowane przez komputer
np. wynik wyszukiwania z zadanym hasłem „mysz”:
Jak komputer „widzi” te same informacje:
( Ilustracje z artykułu Mariusza Jacyno ”Sieci Semantyczne ...” )
Narzędzia umożliwiające rozwój sieci semantycznych:
! URI (Uniform Resource Identifier)
Uniwersalny identyfikator zasobu definiujący dany obiekt.
(w sieci WWW najczęściej spotykanym URI jest adres URL)
! XML (eXtensible Markup Language)
Rozszerzalny język znaczników, który pozwala wprowadzić do dokumentów
dowolną strukturę znaczników, ale nie określa ich znaczenia.
! RDF (Resource Description Framework)
Schemat opisu zasobów – system definiowania informacji, pozwalający określać znaczenie różnych terminów i pojęć, tak, aby było ono rozpoznawane
przez komputery. Można przy tym posługiwać się składnią języka XML
i stosować URI do specyfikacji obiektów, pojęć, własności i relacji.
−7−