model systemu wieloagentowego korzystającego z
Transkrypt
model systemu wieloagentowego korzystającego z
JAKUB BILSKI E-mail: [email protected] Katedra Inżynierii Komputerowej, Wydział Elektroniki i Informatyki Politechnika Koszalińska Śniadeckich 2, 75-453 Koszalin MODEL SYSTEMU WIELOAGENTOWEGO KORZYSTAJĄCEGO Z DANYCH SIECI SEMANTYCZNEJ W PROJEKCIE OPEN NATURA 2000 Streszczenie: Aplikacje nazywane agentami są powiązane z Siecią semantyczną od pierwszych artykułów z nią związanych. Poniższa praca podejmuje tematykę modelu systemu wieloagentowego korzystającego z danych znajdujących się w Sieci semantycznej z praktycznym jego wdrożeniem w projekcie OpenNatura 2000. Poza opisem struktury agentów dostarcza także informacji o potencjalnych kierunkach rozwoju zaprojektowanego systemu wieloagentowego Słowa kluczowe: system wieloagentowy, semantyka, sieć semantyczna, wiedza, Natura 2000 1. Wstęp Niniejsza praca opisuje mechanizmy wykorzystane w systemie wieloagentowym stanowiącym część aplikacji demonstrującej zawartość bazy wiedzy Sieci semantycznej Open Natura 2000. 1.1. Sieć semantyczna Sieć semantyczna (ang. The Semantic Web) to zbiór idei związanych z udostępnianiem danych w internecie w sposób umożliwiający ich „rozumienie” przez komputery. W 2001 roku jeden z twórców protokołu HTTP, Tim BernersLee, roztoczył wizję komunikujących się ze sobą aplikacji, agentów, wykonują- 18 Jakub Bilski cych zadania zlecane przez ludzi, poprzez korzystanie z powiązanych ze sobą danych zawieszonych w sieci internet [1]. Dziś część z tych pomysłów została już zrealizowana w postaci standardów lub rekomendacji. Aby umożliwić komputerom „rozumienie” danych, należy dane te opisać, stosując standaryzowane metadane, a następnie udostępnić je w internecie tak, aby mogły z nich korzystać wyspecjalizowane aplikacje. Sieć semantyczna to jedna sieć powiązanych ze sobą baz danych nazywanych bazami wiedzy, realizowanych najczęściej w postaci grafów. Jednym z głównych węzłów Sieci semantycznej jest baza wiedzy DBpedia [2] udostępniająca dane otwartej encyklopedii, Wikipedii. System wieloagentowy, którego model jest przedmiotem tej pracy, korzysta z danych znajdujących się w wybranych bazach wiedzy Sieci semantycznej. 1.2. Systemy wieloagentowe Niezależnie od Sieci semantycznej rozwojowi podlegały systemy wieloagentowe – środowiska umożliwiające realizację i uruchamianie rozproszonych aplikacji opartych o komponenty nazywane agentami. Standaryzacją i opisem systemów wieloagentowych zajmuje się organizacja FIPA [3]. Prace organizacji obejmują między innymi sposób komunikacji agentów, zarządzanie agentami w systemie oraz architekturę pojedynczej jednostki agenta. Sam agent nie posiada jednak oficjalnej definicji, przyjmuje się jednak, że w rozumieniu sztucznej inteligencji agent to autonomiczna jednostka obserwująca i reagująca na środowisku w którym się znajduje. Niniejsza praca dotyczy zaprojektowania typów agentów wykorzystanych do realizacji zadań pozyskiwania wiedzy z różnych źródeł Sieci semantycznej, nie zaś niskopoziomowych mechanizmów umożliwiających tworzenie agentów i systemów wieloagentowych. 1.3. OpenNatura 2000 Projekt OpenNatura 2000 (dalej ON2K) to inicjatywa udostępnienia danych opisujących obszary objęte ochroną w ramach europejskiego programu Natura 2000 w postaci bazy wiedzy Sieci semantycznej oraz dostarczenia praktycznych aplikacji operujących na tych danych w celach edukacyjnych oraz dla zaprezentowania i popularyzowania technologii sieci semantycznej. Program Natura 2000 ma za zadanie ochronę najcenniejszych gatunków i siedlisk przyrodniczych Unii Europejskiej, a swoim zakresem obejmuje sieć Model systemu wieloagentowego… 19 ponad 25 000 chronionych obszarów stanowiących niemal 20% obszaru lądowego UE (stan na 2008 rok) [4]. Prototyp bazy wiedzy ON2K zawiera w sobie zakres danych dotyczący gatunków ptactwa występujących na obszarach Natura 2000 w obrębie terytorium Polski. Baza wiedzy została utworzona poprzez przetworzenie dokumentów tekstowych na semantyczną reprezentację danych [5]. W obrębie projektu przygotowana została aplikacja internetowa obejmująca system wieloagentowy [6], którego model przedstawia poniższy dokument. Aplikacja korzysta z bazy wiedzy ON2K oraz baz DBpedia i Freebase [7] łącząc i prezentując pozyskane z tych źródeł dane dla obszarów Natura 2000 na terenie Polski. Docelowo ON2K obejmie pełen zakres danych opisujących obszary Natura 2000 na terenie Unii Europejskiej. 2. Model Model systemu został przedstawiony od ogólnego schematu do szczegółowych opisów kompetencji poszczególnych agentów systemu. 2.1. Schemat komunikacji W systemie występują cztery podstawowe typy agentów: agenci bramki (dalej GA), agenci dyspozytorów (dalej DA), agenci akcji (dalej AA) oraz agenci baz wiedzy (dalej QA). Pomiędzy agentami zachodzi komunikacja sterująca zlecaniem wykonania operacji i zwrotu rezultatów z wykonanych operacji do pierwotnych nadawców. 20 Jakub Bilski Rys. 1. Schemat komunikacji pomiędzy agentami systemu 2.2. Technologie Zaprezentowany model systemu został zrealizowany w języku Java, przy użyciu platformy JADE będącej implementacją standardów FIPA. Gotowa infrastruktura systemu wieloagentowego umożliwiła skupienie się na przygotowaniu samych agentów, a nie na mechanizmów zarządzania czy komunikacji między agentami. Na potrzeby komunikacji ze światem zewnętrznym skorzystano z formatu wymiany danych JSON. Komunikacja z bazami wiedzy była realizowana w językach SPARQL oraz MQL. 2.3. Agent bramki Interfejs zewnętrzny zaprojektowanego systemu wieloagentowego jest obsługiwany przez GA. GA jest opcjonalnym agentem odpowiedzialnym jedynie za przyjmowanie zgłoszeń z zewnętrznych systemów, przekazywanie ich do wnętrza systemu wieloagentowego i zwracanie odpowiedzi poza system. Kompetencje GA powinny być jak najmniejsze, aby zapobiegać opóźnieniom na styku systemu wie- Model systemu wieloagentowego… 21 loagentowego ze światem zewnętrznym. Wydajność GA może być zwiększona poprzez wprowadzanie dodatkowych instancji agentów. Praktyczna realizacja polegała na przygotowaniu pojedynczego typu agenta przyjmującego zgłoszenia w formacie JSON i przetwarzający je na wewnętrzną dla systemu wieloagentowego strukturę danych. 2.4. Agent dyspozytora Kolejnym agentem systemu jest DA odpowiedzialny za rozpoznanie żądania, utworzenie odpowiedniego agenta akcji oraz przekazanie do niego parametrów akcji. Agent akcji zwraca rezultat swoich działań do DA, co jest równoznaczne dla DA z wysłaniem sygnału zakończenia życia agenta akcji. Podobnie jak w przypadku GA, wydajność obsługi żądań może być zwiększona przez zwiększenie ilości instancji DA funkcjonujących w systemie wieloagentowym. Przygotowana implementacja DA zawiera w sobie mechanizm rozwiązywania nazwy akcji na żądanego agenta akcji poprzez system refleksji języka Java. 2.5. Agent akcji Dla każdego żądania pojawiające się w systemie tworzona jest dedykowana instancja AA. Są to agenci o najkrótszym cyklu życia w systemie, ponieważ po skończeniu przetwarzania akcji są likwidowani przez DA. AA posiada w sobie zestaw instrukcji, które stanowią implementację algorytmu realizacji akcji, najczęściej w postaci skończonej maszyny stanów. Agent wykonuje kolejne instrukcje i na bazie odpowiedzi uzyskanych od agentów QA kontynuuje pobieranie i przetwarzanie danych lub zwraca rezultat do DA. Przykładem realizacji AA operującego na danych z Sieci semantycznej jest agent prezentujący listę gatunków ptaków tej samej rodziny co wskazany gatunek, występujących na obszarach Natura 2000 w Polsce. Po otrzymaniu zgłoszenia AA odpytuje QA dla DBpedia o listę gatunków ptaków tego samego rodzaju systematycznego dla wskazanego gatunku identyfikowanego nazwą łacińską. Odpowiedź jest analizowana i następnie wysyłane jest zapytanie do QA dla ON2K sprawdzające, czy pozyskane wcześniej gatunki występują na którymś z obszarów Natura 2000 w Polsce. Po przetworzeniu odpowiedzi następuje odpytanie kolejno QA dla DBpedia i Freebase po zdjęcia danego gatunku oraz jego nazwę w języku polskim. 22 Jakub Bilski Rys. 2. Diagram maszyny stanów dla ogólnego przypadku agenta akcji Schemat przedstawia podstawowe stany AA. Stany odpytywania i przetwarzania odpowiedzi są parą stanów mogącą wystąpić wielokrotnie, dzięki czemu możliwe jest uzyskanie danych z wielu źródeł i połączenie ich w jeden docelowy zestaw wyników. 2.6. Agent bazy wiedzy Ostatnią warstwą w zaprojektowanym systemie stanowią QA, agenci wyspecjalizowani w odpytywaniu wybranych baz wiedzy. Specjalizacja polega na posługiwaniu się odpowiednim protokołem komunikacyjnym. Dla parametrów wejściowych agent generuje zapytanie. Zapytanie wysyłane jest do skojarzonej z agentem bazy wiedzy, najczęściej poprzez wystawioną przez bazę wiedzy usługę sieciową. Otrzymaną odpowiedź agent przekazuje z powrotem do agenta od którego uzyskał zlecenie. Wydajność systemu może być zwiększana poprzez wprowadzanie dodatkowych instancji QA. Praktyczna realizacja objęła dwa języki zapytań, które zaowocowały trzema typami QA: agenta posługującego się językiem SPARQL do odpytywania bazy wiedzy DBpedia oraz ON2K i agenta składającego zapytania w języku MQL do komunikacji z bazą Freebase. 2.7. Skalowalność Komunikację między agentami w systemie oparto o mechanizmy katalogu usług, gdzie agenci rozpoczynający komunikację nie kontaktują się z innymi agentami bezpośrednio, a wysyłają wiadomość do losowego agenta, który jest w stanie obsłużyć ich wiadomość. Przy odpowiednio dużej ilości agentów różnych klas orientacja na usługi z mechanizmem losowości odbiorcy wiadomości zapewnia równomierne obciążenie poszczególnych agentów. Model systemu wieloagentowego… 23 Komunikaty zwrotne odsyłane są zawsze do nadawców komunikatów pierwotnych. 2.8. Rozszerzalność Poprzez wprowadzanie kolejnych typów agentów system jest otwarty na rozbudowę. GA mogą być uzupełnieni o współpracę z innymi wyspecjalizowanymi agentami interfejsów, np. z agentem potrafiącym przetwarzać żądania wpisywane w języku naturalnym. Dla nowych GA system może być rozszerzony o dedykowanych DA posiadających kompetencję obsługi żądań z bramek oraz rozpoznania bramki pierwotnej, do której należy zwrócić rezultat działania akcji. Do AA mogą dołączyć kolejne typy agentów realizujących nowe akcje, nieprzewidziane na etapie realizacji prototypu systemu. AA mogą być wykorzystywani jako agenci dostarczający wyniki cząstkowe dla innych AA. Agenci QA mogą zostać wsparci wyspecjalizowanymi typami agentów dla kolejnych, generycznych interfejsów baz wiedzy lub agentami dedykowanymi dla konkretnych systemów dostarczających danych. 3. Podsumowanie Praca zaprezentowała model systemu wieloagentowego zaprojektowany do pozyskiwania danych z różnych źródeł zawieszonych w Sieci semantycznej od momentu uzyskania żądania z zewnętrznego systemu, przez jego wykonanie i zwrócenie odpowiedzi. Poprzez skorzystanie z architektury wieloagentowej system otwarty jest na dalszą rozbudowę: usprawnienia wewnętrznej architektury poprzez wymianę agentów na bardziej wyspecjalizowanych czy wprowadzanie kolejnych warstw agentów do systemu. Multiplikacja instancji agentów w systemie umożliwia zaś zwiększanie skalowalności systemu. Prototyp systemu stanowi implementację zaproponowanego modelu. Jednocześnie jest fragmentem pierwszej aplikacji operującej na bazie wiedzy ON2K, rozwojowego projektu, który ma objąć swym zakresem dane o wszystkich obszarach Natura 2000 w Europie i zostać jednym z węzłów Sieci semantycznej. 24 Jakub Bilski Literatura 1. 2. 3. 4. 5. 6. 7. Berners-Lee Tim: The Semantic Web. Maj 1, 2001. Scientific American. Internet, strona domowa bazy wiedzy DBpedia: http://dbpedia.org/About. Internet, strona domowa FIPA: http://www.fipa.org/. Internet, materiały promocyjne projektu Natura 2000: http://ec.europa.eu/environment/nature/info/pubs/docs/nat2000/factsheet_en.pdf. Kuczyński Adrian: Zaprojektowanie ontologii i akwizycja wiedzy w oparciu o technologię Semantic Web. 2010. Politechnika Koszalińska, Wydział Elektroniki i Informatyki, praca dyplomowa magisterska. Bilski Jakub: Agent inteligentny do połączenia baz wiedzy i konstruowania zapytań w środowisku Semantic Web, 2011, Politechnika Koszalińska, Wydział Elektroniki i Informatyki, praca dyplomowa magisterska. Internet, strona domowa encyklopedii Freebase: http://wiki.freebase.com/wiki/What_is_Freebase.