Zastosowanie ontologii w systemach agentowych.
Anna Romanowska
Karol Cichosz
Piotr Pawliczek
Łukasz Skitał
Spis treści:
1. Wstęp 3
2. Pojęcia 3
3. Architektura systemu 4
4. Implementacja 4
5. Przykłady mapowania 5
6. Przypadek zastosowania systemów agentowych 6
7. Definicja problemu 6
8. Rozwiązanie 7
9. Relacyjne podejście do HTML'a 7
10. SHOE 8
11. Przykład użycia SHOE 9
12. Podsumowanie 11
1. Wstęp
Ontologia jest semantyczną reprezentację pojęć (termów) występujących w rzeczywistym świecie, zapisaną w formie łatwej do wykorzystania w świecie komputerów. Z powodu braku ogólnego sposobu rozumienia różnych pojęć, powstało wiele ontologii opisujących
te pojęcia. Różne środowiska pojmują i definiują pojęcia na swój sposób, dlatego potrzebny jest jakiś pośrednik, który ułatwi wyszukiwanie potrzebnych informacji wśród baz wiedzy wykorzystujących różne ontologie.
Mapper, czyli serwis odwzorowujący, ontologie może być zrealizowany jako system wieloagentowy (MAS), który zapewnia tłumaczenie jednych ontologii na drugie. Umożliwia on łatwą wymianę wiedzy między środowiskami używającymi różnych ontologii. Na wydziale Informatyki Uniwersytetu
w Maryland stworzono taki system dla środowisk akademickich, co jest naturalne, ponieważ uniwersytety dzielą się wiedzą między sobą, ale każdy
z nich tworzy swoje własne ontologie, ta sama sytuacja może zachodzić na poziomie poszczególnych wydziałów jednego uniwersytetu.
Agent - przedstawiciel - danego wydziału przechowuje między innymi ontologie dotyczące dziedziny, którą zajmuje się jego wydział. Ontologie przechowywane przez jednego agenta są mapowane przez MAS
na odpowiadające im ontologie innych agentów.
2. Pojęcia
Ontologia
Jest to dział filozofii zajmujący się ogólną teorią bytu, charakterem
i strukturą rzeczywistości, określa specyfikację pojmowania. W naszym rozumieniu ontologia to specyfikacja słownika używanego do reprezentacji wiedzy -- są to definicje klas, relacji, funkcji i innych obiektów.
Aby umożliwić łatwe dzielenie wiedzy między systemami sztucznej inteligencji (AI), należy zdefiniować wspólną ontologię, za pomocą której wiedza będzie reprezentowana, za jej pomocą będą tworzone zapytania
i twierdzenia wymieniane między agentami. Istnieje wiele narzędzi do tworzenia ontologii np. Porte'ge' lub Ontolingua itp.
Mapowanie
Wyobraźmy sobie, że mamy mechanizm wnioskujący posiadający informację na temat hierarchii jednej korporacji, następnie przekazujemy mu informacje dotyczące innej korporacji, która posiada całkiem inny system nazw i relacji (czyli inną ontologię). Aby nasz mechanizm wnioskujący działał poprawnie dla nowego zestawu danych (wiedzy) musimy stworzyć powiązanie poszczególnych definicji jednej ontologii z odpowiednimi definicjami drugiej. Proces ten jest skomplikowany i czasochłonny.
Agenci
Są to proste programy potrafiące samodzielnie rozwiązywać problemy
o małej złożoności. Ich siła leży w możliwości współpracy różnych agentów
ze sobą w celu rozwiązywania problemów o dużej złożoności. Podstawowe założenia sytemów wieloagnetowych to:
· każdy agent ma niekompletne informacje potrzebne do rozwiązania problemu, w skutek czego ma ograniczony "punk widzenia"
· brak globalnej kontroli
· dane nie są scentralizowane.
Agenci komunikują się w sposób peer-to-peer. Istnieją podobieństwa między charakterystyką systemów agentowych, a naturą problemów rzeczywistego świata.
3. Architektura systemu
Omawiany system składa się z agentów wydziałowych w środowisku akademickim. Każdy agent przechowuje ontologie reprezentujące jego wydział oraz zapewnia mapowanie ontologii. Agenci rozgłaszają swój serwis mapujący.
Użytkownicy wysyłają zapytania do swojego wydziałowego agenta
z żądaniem odwzorowania (mapowania) termu (pojęcia) na inną znaną ontologie lub na wszystkie wydziałowe ontologie w bazie wiedzy agenta. Agent wyszukuje agenta posiadającego odpowiednią ontologię w skorowidzu (Directory Facilitator - DF) i przekazuje mu zapytanie. Agent wykonujący usługę zwraca odpowiedź, która następnie jest przekazana do użytkownika.
Komunikacja między agentami jest za pomocą wiadomości adresowanych bezpośrednio do konkretnego agenta lub rozgłaszanych.
4. Implementacja
System został zaimplementowany za pomocą JADE. JADE
jest zorientowaną obiektowo technologią zaimplementowaną w Javie. Upraszcza ona implementacje sytemów wieloagnetowych dostarczając elastycznych mechanizmów komunikacji polegających na wymianie wiadomości. Platforma zapewnia także GUI, które jest wykorzystywane do kontrolowania agenta.
Agenci wykonują następujące funkcje:
- rejestruje swoje usługi w skorowidzu (DF)
- przechowuje wiedzę dotyczącą jego ontologii
- wyszukuje w skorowidzu agentów posiadających wymaganą ontologię
- zapewnia interfejs do generowania zapytań
- serwis mapujący
- odbiera zapytania od innych agentów i zwraca odpowiedzi
Rdzeniem serwisu mapującego jest "Rainbow Classifier" z interfejsem w Perlu.
Jest to program wykonujący statystyczną klasyfikacje testów za pomocą biblioteki "Bow" napisanej w C. Wykorzystywane s± następujące metody: naiv bayes, TFIDF, knn, maximum entropy i SVM. Rainbow jest uruchamiany
na każdej maszynie agenta. Agent otrzymujścy wiadomość typy REQUEST (żądanie) przekazuje dane poprzez skrypt napisany w Perlu do klasyfikatora Rainbow.
Ontologie przechowywane przez każdego agenta są napisane w języku DAML (DARPA Agent Markup Language). Język ten ma większe możliwości od XML'a w dziedzinie opisu obiektów i zachodzących relacji między nimi.
5. Przykłady mapowania
Użytkownik może zlecić trzy rodzaje mapowań, poniżej podaje przykłady:
Przypadek 1: Chce znaleźć odwzorowanie pojęcia "Algorytmy Genetyczne"
na ontologię w wydziale BioInformatyki. Użytkownik zleca to zadanie swojemu wydziałowemu agentowi, który wyszukuje agenta wydziału BI.
Przypadek 2: Chce znaleźć odwzorowanie swojej ontologii na ontologię
w wydziale BioInformatyki. Zleca to zadanie swojemu agentowi, który tak samo jak poprzednio wyszukuje agenta wydziału BI.
Przypadek 3: Chce poznać znaczenie pojęcia "Algorytmy Genetyczne". Zleca
to zadanie agentowi, który wyszukuje wszystkich agentów udostępniających serwis mapujący.
Agent wydziału Informatyki wysyła żądanie (REQUEST) do znalezionego agenta z pojęciem lub ontologią podaną przez użytkownika. Agent odbierający żądanie akceptuje je i następnie przekazuje do serwisu mapującego, odpowiedź przekazuje z powrotem w postaci wiadomości informującej (INFORM)
do agenta wydziału Informatyki, który rezultaty odwzorowania zwraca użytkownikowi.
6. Przypadek zastosowania systemów agentowych
Systemy agentowe pomagają rozwiązać wiele współczesnych problemów. W dobie szybkiego rozwoju cywilizacyjnego i nienotowanej wcześniej ekspansji sieci komputerowych ilość web serwisów i stron WWW zaczęła gwałtownie narastać. Pojawiła się zatem konieczności przetwarzania ogromnej ilości danych w celu znalezienia potrzebnej nam informacji. Jednym z rozwiazań umożliwiającym efektywne przeszukiwanie bez konieczności przeglądania setek, bądź nawet tysięcy linków jest SHOE (z ang. Simple HTML Ontology Extensions) realizowany właśnie przy pomocy systemów agentowych.
7. Definicja problemu
Głównym problemem podczas zwykłego przeszukiwania sieci jest fakt,
że dane w niej dostępne mając słabą organizację semantyki, poza prostymi strukturami tekstowymi, deklarowanymi kluczami przeszukiwań, tytułami
oraz abstrakcjami. Wyobraźmy sobie, że poszukujemy stron domowych Pani
i Pana Cook. Nie pamiętamy adresów internetowych tych stron, ale wiemy,
że Państwo Cook są zatrudnieni w Departamencie Obrony w oddziale 123-123. Ta baza wiedzy powinna być wystarczająca do szybkiego znalezienia poszukiwanych stron. Posługując się istniejącymi katalogami wpisując jako słowo kluczowe "Department of Defence" znajdziemy setki stron nawet
o samym oddziale 123-123. Wpisując hasło kluczowe "Cook", znajdziemy tysiące stron o gotowaniu. Wyszukiwanie wszystkich słów na raz również niewiele pomoże. Nie ma zatem efektywnego sposobu odpowiedzenia
na pytanie:
Znajdź strony WWW dla wszystkich x, y, z takich, że
x jest osobą, y jest osobą, z jest organizacją, gdzie:
nazwisko(x,"Cook"), nazwisko(y,"Cook"),
zatrudniony(z,x), zatrudniony(z,y),
małżeństwo(x,y) i typorganizacji(z,"DoD 123-123").
Głównym zadaniem protokołów HTTP i HTML jest wspomaganie prezentacji nawigacji Internetu na poziomie użytkownika. Automatyczne wyszukiwanie lub łączenie słów skomplikowanego języka jest obdarzone znacznie niższym priorytetem. Większość użytych tam rozwiązań można podzielić na trzy kategorie:
· mechanizmy indeksujące tekst
· ręcznie budowane katalogi
· "roboty" posługujące się prostymi metodami do gromadzenia wybiórczej semantycznie informacji o stronach
Żadna z w/w kategorii nie pozwala jednak na efektywne przeszukiwanie sieci przy pomocy chociażby podanych w przykładzie zależności.
8. Rozwiązanie
Rozważmy inne podejście. Zamiast próbować "wydostać" odpowiednie informacje, których będziemy używać do wyszukiwania konkretnych danych pozwólmy webmasterom wbudowywać je prosto do HTML'a ułatwiając ich odszukiwanie i magazynowanie "robotom" i agentom użytkownika. Najprostszym sposobem korzystania z takiego mechanizmu jest dodanie nowej składni do istniejącego już HTML'a umożliwiającej umieszczenie informacji odnośnie bezpośredniej klasyfikacji strony, jej relacji i atrybutów w postaci nadającej się do weryfikacji przez maszynę. Takie podejście zapewnia znalezienie odpowiednich zależności, pomiędzy konkretnymi informacjami, np., że "Cook" jest nazwiskiem abiturienta, a nie początkiem tytułu książki: "Cooking in 24 hours". "Cook" nie jest już zwykłym słowem kluczowym,
ale raczej semantyczną etykietą definiowaną w ustawieniach atrybutów
i relacji.
[ontologia w tym znaczeniu jest opisem różnych klasyfikacji HTML'a, instancji (tzn. elementów, które dają się przypisać do określonej kategorii) i różnorakich relacji pomiędzy instancjami, a innymi elementami.]
W przedstawionym na początku przykładzie ontologia zawierałaby atrybuty takie jak nazwisko, klasyfikacje takie, jak osoba i relacje takie, jak zatrudniony. System takiego typu byłby wstanie "odpowiedzieć" ma złożone zapytania skomplikowanych baz wiedzy. Ponadto agenci użytkownika
i "roboty" mogliby korzystać ze zgromadzonych wcześniej semantycznych informacji dla poprawienia wydajności przeszukiwania.
9. Relacyjne podejście do HTML'a
Jednym z pomysłów na wprowadzenie powyższego rozwiązania było pogodzenie HTML'a z modelem relacyjnej bazy danych. Dokonano tego poprzez dodanie prostych ustawień etykiet zwanych encjami w obrębie dokumentów, etykietowanych części ciała tekstowego, jako atrybutów tych encji i zdefiniowanie relacji, jako zależności pomiędzy encjami "wewnętrznymi"
oraz "zewnętrznymi" (spoza dokumentu). Dokumenty oparte na relacyjnym HTML'u mogły zawierać potrzebną ilość encji przedstawionych w postaci unikalnych kluczy. Relacje zostały ustanowione pomiędzy tymi kluczami, a nie adresami URL. Pomimo tego, że wprowadzenie encji znacznie polepszyło funkcjonowanie istniejących mechanizmów, to nie prowadziło do jakichkolwiek ontologicznych deklaracji. Nie było, żadnego jasnego mechanizmu hierarchicznej klasyfikacji klas. Ponadto relacyjny model nie pozwalał
na ingerencje w zależności pomiędzy stronami WWW. Aby umożliwić realizację ontologii, potrzebowano skuteczniejszego mechanizmu.
10. SHOE
Shoe umożliwia agentom użytkownika łatwy dostęp do semantyki stron WWW nadającej się do czytania przez maszynę. Osiąga się po poprzez dodanie do HTML'a prostej reprezentacji językowej. Shoe daje możliwość:
· definiowania ontologii dowołujących się do HTML'a, z możliwością klasyfikacji powłok i ustanowienia relacji pomiędzy encjami.
· tworzenia ontologii opartych na już instniejących
· deklarowania encji dla dokumentów
· deklarowania relacji pomiędzy encjami
· deklarowania atrybutów
· clasyfikacji encji
Shoe próbuje zachować równowagę pomiędzy pełną reprezentacją semantyki, a unikalnymi potrzebami web agentów, którzy często muszą przetwarzać bardzo duże ilości informacji znajdujących się w rozproszonych domenach. Potrzebuje web agenta który parsuje dokumenty HTML i dodaje znajdujące się tam odpowiednie informacje do swojej wewnętrznej bazy wiedzy.
Aby zaprezentować użycie SHOE potrzebujemy dwóch agentów. Pierwszych agent pobiera ontologie prosto ze stron WWW i ładuje je do bazy wiedzy systemu PARKA (równoległy semantyczny system sieciowy zajmujący się reprezentacją "wiedzy"). Kiedy pobierane są ontologie, których ontologie pierwotne (parent) są jeszcze nieznane, agent również je pobierze. Drugi agent przeszukuje strony WWW, w celu znalezienia tych dokumentów HTML, które są zredagowane dla Shoe., dodając znalezione tam informacje do bazy wiedzy. Kiedy znajdzie taki dokument, używa swojej bazy wiedzy w celu interpretacji danych dla Shoe w kontekście znanych ontologii, wykrytych błędów
i niepotrzebnych informacji i znajduje następne strony do odwiedzenia Jeżeli drugi agent nie posiada potrzebnych ontologii do interpretacji danego dokumentu, może poprosić pierwszego agenta, aby je wczytał przed rozpoczęciem procedury.
Baza wiedzy jest potrzebna nie tylko do przechowywania nowo znalezionych informacji dla Shoe, ale również do kojarzenia ze sobą odpowiednich ontologii. Jest to wbrew pozorom duża ilość informacji, ponieważ strony mogą udostępniać setki powszechnie używanych ontologii i setki tysięcy dokumentów obsługujących Shoe, a informacje w bazie wiedzy są sprawdzane kilka razy dla każdego dokumentu. W uporaniu się tym wszystkim pomaga PARKA (umożliwia zapytania w czasie rzeczywistym dla baz wiedzy
z milionami encji i twierdzeniami) Kiedy dane ze stron zostaną zgromadzone, możemy użyć tych informacji do odpowiedzi na wyszukane zapytania odnoście encji i relacji pomiędzy nimi. Np. kiedy zostaną zgromadzone wszystkie stwierdzenia ze strony Pani Cook, możemy użyć zapytania do PARKA, aby znaleźć jej męża.
Interfejsy użytkownika są aplikacjami napisanymi najczęściej w Javie. Pomagają powiązać strony WWW z odpowiednią semantyką i kierować zapytania do serwerów używających Shoe. Aby ułatwić komunikację pomiędzy klientami i serwerami wprowadzono sandardy reprezentacji językowej takie jak KQML i KIF.
Istnieją różne sposoby aktualizacji ontologii. Np. ontologie mogą być aktualizowane z nowymi wersjami w ten sposób, aby cała kompozycja zachować integralność. Drugi sposób, to rozszerzanie starych ontologii w taki sposób, aby mogły dotyczyć bardziej wyspecjalizowanych informacji.
11. Przykład użycia SHOE
Rozważmy przypadek stron domowych George'a i Helen'y Cook.
Potrzebujemy następującej ontologii:
· "Osoba" (Person) - klasyfikacja
· "Organizacja" (Organization) - klasyfikacja
· "małżeństwo" (marriedTo)- relacja pomiędzy osobami
· "imię" (firstName) i "nazwisko" (lastName) - atrybuty osób
· "zartudniony" (employee) - relacja pomiędzy organizacjami i osobami
Zbudujemy nową ontologię, która zawiera te klasyfikacje i relacje. Normalnie jednak powinniśmy skorzystać z istniejących ontologii w powszechnych bibliotekach na stronie. Załóżmy, że istnieje ontologia zwana organization-ontology v. 2.1, która definiuje klasyfikacje organizacji (Organization) i rzeczy (Thing) oraz jest dostępna pod adresem URL http://www.ont.org/orgont.html. Rozszerzymy istniejącą organization-ontology, aby zawierała inne potrzebne klasyfikacje oraz relacje. W sposób bezpośredni zapożyczymy definicję "Organizacji", a kiedy zdefiniujemy "Osobę", będziemy uważać, że jest ona "Rzeczą". Nazwijmy naszą rozszerzoną ontologię: ourontology version 1.0. Jej definicja będzie kawałkiem HTML'a:
Oficjalną lokalizacją ourontology będzie dokument HTML na stronie http://www.ont.org/our-ont.html George Cook może opisać swoją stronę domową używając tej właśnie ontologii. Załóżmy, że strona Helen'y Cook została już sklasyfikowana, jako "Osoba" i jej unikalny klucz jest taki sam jak jej oficjalny URL: http://www.cs.umd.edu/ ~helena. Ponadto Helena i George pracują W katedrze informatyki MIT, której strona domowa
jest zaklasyfikowana jako organizacja i jej klucz jest taki sam jak jej URL: http://www.cs.umd.edu Przypiszmy stronie domowej George'a klucz, który jest identyczny jak jego URL: http://www.cs.umd.edu/ ~george, dodawjąc
w HEAD'dzie:
Strona domowa George'a jest encją o unikatowym kluczu i do własnego opisu będzie używać our-ontology. Za każdym razem, kiedy elementy z our-ontology są używane, będą etykietowane prefix'em "our".
W części BODY możemy teraz umieścić konkretne dane:
Jeżeli George nie ma własnej strony internetowej tylko rezyduje na małej części strony jego żony, to nadal istnieje możliwość nadania George'owi jego klucza (postaci http://www.cs.umd.edu/~helena#GEORGE) oraz zdefiniowania powyższych relacji. W BODY deklarujemy George'a, jako instacje encji (poprzez dodanie w pobliżu jego części):
12. Podsumowanie
W dzisiejszej sieci znajdowanie potrzebnych informacji przy pomocy systemów ideksujących, katalogów stron i inteligentnych agentów staje się coraz trudniejsze. Systemy wieloagentowe wykorzystujące ontlogie dają nam nadzieje, że w przyszłości wyszukiwanie potrzebnych nam informacji
w internecie będzie szybsze i łatwiejsze. W chwili obecnej powszechnie stosuje się wyszukiwanie za pomocą słów kluczowych, które zależności od kotekstu mają wiele znaczeń, wraz ze wzrostem ilości dostępnych w internecie informacji mechanizm ten będzie coraz bardziej zawodny. Zamieszczanie dodatkowych informacji na stronach www, w postaci kodu ontologii (np. SHOE) powinno polepszyć teraźniejszą sytuację.
SHOE daje webdesigner'om łatwy i efektywny sposób zakodowania potrzebnych informacji w web dokumentach i udostępnia inteligentnym agentom bardziej wyszukany mechanizm odnajdywania potrzebnych informacji. W sposób znaczny przyspiesza wyszukiwanie. Natomiast nie umożliwia jeszcze opisu takich zależności, jak klauzury przejściowe i relacje odwrotne. Problemem jest również wielość różnorakich ontologii tworzonych przez różne środowiska ludzi, a opisujące te same rzeczy.
Systemy wieloagentowe są jedną z propozycji rozwiązania tego problemu, poprzez sprawne i automatyczne tłumaczenie ontologii.