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 slot-constraint zjada value-type zwierzę class-def definicja roślinożernych slot-constraint zjada value-type roślina OR (slot-constraint is-part-of has-value roślina class-def żyrafa slot-constraint zjada value-type liść class-def lew 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