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.

Podobne dokumenty