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−