08.11.2014 Views

pobierz plik referatu - Politechnika Śląska

pobierz plik referatu - Politechnika Śląska

pobierz plik referatu - Politechnika Śląska

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

www.bdas.pl<br />

Rozdział 7<br />

Mechanizmy deklaratywne w systemie P2P<br />

semantycznej integracji danych<br />

Streszczenie. Przedstawiono deklaratywną specyfikację systemu P2P, w którym<br />

agenci dysponują lokalnymi bazami danych zorganizowanymi według<br />

różnych schematów. Udostępnianie przez agentów schematów oraz danych<br />

innym agentom odbywa się z użyciem mechanizmów prologowych. W wymianie<br />

danych i obsłudze zapytań ważną rolę odgrywają odwzorowania pomiędzy<br />

schematami, które faktycznie wyznaczają semantyczne powiązania<br />

pomiędzy danymi przechowywanymi w lokalnych bazach poszczególnych<br />

agentów. Podano semantykę operacyjną operacji prologowych realizowanych<br />

w środowisku P2P z uwzględnieniem stanów mentalnych agentów. Wybrane<br />

działania agentów wyspecyfikowano w Prologu.<br />

1 Wstęp<br />

W globalnej sieciowej strukturze informacyjnej chcemy, i możemy, sięgać po informacje<br />

z wielu źródeł. Bogactwo i różnorodność udostępnianych danych, to z jednej strony podstawowy<br />

walor współczesnych narzędzi informatycznych, a z drugiej – poważne źródło problemów<br />

z wyszukiwaniem interesujących nas informacji, a zatem także z pozytywną oceną<br />

proponowanych przez informatyków rozwiązań. Dlatego integracja zasobów informacyjnych<br />

i efektywne ich udostępnianie to dwa ważne problemy, które muszą być rozwiązane<br />

w nowoczesnych środowiskach obliczeniowych.<br />

W systemach informatycznych, nawet te same informacje mogą być wyrażane w różny<br />

sposób. Reprezentacja danych ma związek z przyjętą metodą modelowania i rozwiązywania<br />

problemu, zbiorem pojęć wykorzystywanych w opisie problemu, zastosowanym językiem,<br />

czy sposobem organizowania danych. Wybrana postać danych, przygotowana do określonego<br />

trybu ich przetwarzania, choć użyteczna dla konkretnego użytkownika w rozwiązywaniu<br />

danego problemu, może się okazać znacznie mniej wygodna dla innych użytkowników,<br />

w innych zastosowaniach. Jeśli zatem chcemy efektywnie wykorzystywać dostępne<br />

w sieci dane, to musimy sięgać do istoty danych, ich znaczenia. Takie założenie leży także<br />

Jerzy Bartoszek, Grażyna Brzykcy<br />

<strong>Politechnika</strong> Poznańska, Instytut Automatyki i Inżynierii Informatycznej,<br />

pl. Skłodowskiej-Curie 5, 60-965 Poznań, Polska<br />

email:{jerzy.bartoszek, grazyna.brzykcy}@put.poznan.pl<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

J. Bartoszek, G. Brzykcy<br />

u podstaw Sieci Semantycznej WWW (ang. Semantic Web [3]), czyli wizji rozproszonych<br />

zasobów danych (źródeł wiedzy), które mogą być automatycznie przetwarzane z uwzględnieniem<br />

ich semantyki, w sposób bardziej efektywny („inteligentny”) niż dotychczas.<br />

W metodologii tworzenia systemów informatycznych przyjmuje się dzisiaj stanowisko, zorientowane<br />

na znaczenie danych (ang. content-oriented processing).<br />

Większość działań zmierzających do ujawnienia znaczenia danych polega na wprowadzaniu<br />

i wykorzystywaniu różnych aspektów metawiedzy o tych danych. Opracowano odpowiednie<br />

standardy języków do opisywania tej wiedzy, takie jak np. URI (ang. Uniform<br />

Resource Identifier), RDF (ang. Resource Description Framework) i RDFS (ang. RDF<br />

Schema), służące do identyfikowania i opisywania zasobów informacyjnych, czy OWL<br />

(ang. Web Ontology Language) – do definiowania pojęć i relacji pomiędzy pojęciami, czyli<br />

ontologii, którymi można posługiwać się przy tworzeniu i przetwarzaniu danych. Coraz powszechniej<br />

wykorzystuje się do reprezentowania danych język XML (ang. Extensible<br />

Markup Language), w którym łatwo można wyrażać nie tylko strukturę danych, ale również<br />

inne rodzaje metawiedzy (np. przez dobór odpowiednich nazw znaczników można<br />

ułatwiać, ale także utrudniać, rozumienie danych [17]). Warto w tym miejscu zwrócić uwagę<br />

na wzrost zainteresowania informatyków podstawami formalnymi, odpowiednimi do<br />

rozważań o semantyce danych, np. teorią sytuacji (ang. situation theory [1]), uważaną za<br />

jedno z najlepszych narzędzi do definiowania semantyki, i teorią przepływu informacji<br />

(ang. channel theory [2]), szczególnie przydatną w analizie systemów rozproszonych.<br />

Duże znaczenie praktyczne w udostępnianiu informacji ma wykorzystywanie istniejących<br />

zasobów baz danych. W tym obszarze informatyki wypracowano już wiele technik<br />

przechowywania i sprawnego wyszukiwania informacji. Formułowane przez użytkownika<br />

zapytanie do zbioru danych jest wyrażane w odpowiednim języku zapytań, przy czym uwzględnia<br />

się wiedzę o sposobie zorganizowania danych w bazie, czyli schemat danych (np.<br />

relacyjnych, dokumentów XML). Ten rodzaj metawiedzy, chociaż nie wyraża explicite modelu<br />

semantycznego danych, może być z powodzeniem użyty do określenia zbioru pojęć<br />

i zależności pomiędzy tymi pojęciami, definiujących (częściowo) znaczenie danych, a także<br />

do ujawnienia struktury przechowywanych danych.<br />

Dzisiaj, ważnym zadaniem jest integracja danych pochodzących z różnych baz. Odbywa<br />

się ona z wykorzystaniem schematów obowiązujących w poszczególnych repozytoriach.<br />

Można sobie wyobrazić rozwiązanie, w którym ustala się wcześniej globalny schemat<br />

i wszystkie zbiory danych tworzone są zgodnie z tym schematem. Podejście takie proponowane<br />

jest zwykle w obszarze określonej dziedziny i przyjmuje postać rozmaitych standardów<br />

(np. schematów dokumentów XML wykorzystywanych w hotelarstwie [12]). Nie<br />

można jednak tej metody przygotowania zbiorów danych do integracji zastosować wobec<br />

już istniejących repozytoriów, a także trudno sobie wyobrazić istnienie uniwersalnego schematu<br />

dla różnych dziedzin. Praktycznie bardziej uzasadnione jest budowanie schematów,<br />

będących specjalizacją pewnej współdzielonej ontologii. Dopasowywanie tak zdefiniowanych<br />

schematów odbywa się wówczas za pośrednictwem tejże ontologii. Jednak w otwartych<br />

systemach informatycznych, w których zbiór elementów składowych podlega dynamicznym<br />

zmianom, w szczególności pojawiają się nowe zbiory danych, nie da się uniknąć<br />

sytuacji, w których w repozytoriach danych mamy różne, lokalnie i autonomicznie zdefiniowane<br />

schematy.<br />

Integrowanie danych z takich zbiorów winno być poprzedzone budowaniem odwzorowań<br />

pomiędzy ujawnionymi schematami lokalnymi (jeśli schematy można do siebie dopasować)<br />

i wywodzeniem z nich globalnych, wspólnych ontologii. Trwają intensywne prace<br />

nad metodami odkrywania semantycznych odwzorowań pomiędzy schematami i ontologiami<br />

(np. [4], [6], [9], [13], [14], [15]). Włączamy się w ten nurt badań proponując środowisko<br />

agentowe typu P2P (ang. Peer-to-Peer) do semantycznej integracji danych XML [5].<br />

www.bdas.pl<br />

82<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych<br />

www.bdas.pl<br />

W dalszej części rozdziału zostanie przedstawiona architektura prezentowanego systemu<br />

(podrozdział 4), na który składają się agenci – dysponenci zbiorów danych oraz broker<br />

realizujący funkcje administracyjne. Każdy agent pierwszego rodzaju ma dane, zorganizowane<br />

według lokalnego schematu, który na żądanie udostępnia innym agentom. Ważne<br />

miejsce w systemie mają odwzorowania pomiędzy schematami, faktycznie wyznaczające<br />

semantyczne powiązania pomiędzy danymi. Zakłada się, że odwzorowania mogą<br />

powstawać w sposób półautomatyczny, przy współudziale użytkowników systemu (ludzi).<br />

Opis systemu został poprzedzony uzasadnieniem stosowania podejścia deklaratywnego,<br />

w tym programowania w logice, we współczesnych systemach rozproszonych<br />

(podrozdział 2). Podano semantykę operacyjną operacji prologowych realizowanych<br />

w środowisku P2P z uwzględnieniem stanów mentalnych agentów (podrozdział 3).<br />

Działania różnych rodzajów agentów przedstawiono w Prologu (podrozdział 5), przez co<br />

wykonywalna specyfikacja prologowa może być również traktowana jako specyfikacja<br />

formalna prezentowanego systemu. Przewidywane kierunki rozwoju systemu nakreślono<br />

w podsumowaniu.<br />

2 Dlaczego podejście deklaratywne (programowanie w Prologu)?<br />

Użyty w pytaniu termin „podejście deklaratywne” obejmuje wiele różnych modeli obliczeniowych,<br />

w tym np. programowanie funkcyjne (za pomocą funkcji rekurencyjnych), czy<br />

programowanie ograniczeń (za pomocą ograniczeń nakładanych na wartości zmiennych).<br />

Nasza uwaga skupia się na programowaniu w logice, a dokładniej na programowaniu<br />

w Prologu.<br />

Zanim przedstawione zostaną przesłanki wyboru tego właśnie sposobu definiowania<br />

problemów, warto zastanowić się nad tym, na czym ma polegać nowe podejście do obliczeń<br />

proponowane w inżynierii oprogramowania, czyli przywołane wcześniej przetwarzanie<br />

zorientowane na znaczenie (semantykę) danych. Najprościej rzecz ujmując, chodzi o to,<br />

by systemy informatyczne działały w coraz bardziej inteligentny sposób. Sprowadzając ten<br />

ogólny postulat do konkretu, można sformułować następujące żądanie szczegółowe: system<br />

ma nie tylko umieć znaleźć dane umieszczone w którymś z zasobów (wyszukać je), ale także<br />

na podstawie tych danych wywieść nowe dane (takie, które jeszcze w systemie nie występowały).<br />

Ważną cechą systemów ma być zatem zdolność do prowadzenia wnioskowań.<br />

To oczekiwanie jawnie wyrażono w strukturze sieci semantycznej WWW, w której<br />

w warstwach najwyższych, ulokowanych ponad poziomem ontologii, wiedza ma być reprezentowana<br />

za pomocą reguł, przetwarzanych przez odpowiednie maszyny wnioskujące.<br />

Z takim właśnie sposobem wyrażania i przetwarzania wiedzy mamy do czynienia w Prologu!<br />

Programy prologowe to skończone zbiory klauzul (reguł), a obliczenie, podejmowane<br />

zawsze w odniesieniu do jakiegoś zapytania (zadania), polega na próbie skonstruowania<br />

dowodu. Jednak nie tyle formalne podobieństwo Prologu do rekomendowanych w sieci semantycznej<br />

języków programowania, co istnienie sprawdzonych, dojrzałych prologowych<br />

środowisk wykonawczych może przesądzać o wyborze właśnie tego języka. Na poparcie tej<br />

tezy warto przywołać doświadczenia twórców systemu Semantic Web Spaces [16], którzy<br />

praktycznie wykorzystywali standardy i technologie sieci semantycznej. Stwierdzili oni<br />

nieefektywność i niestabilność wielu rozwiązań (np. obsługi zapytań do zagregowanych danych<br />

RDF) i uznali Prolog, z jego systemem wykonawczym i rozszerzeniami do działań<br />

w sieci, za wygodne narzędzie do definiowania nowoczesnych systemów informatycznych<br />

[8].<br />

83<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

J. Bartoszek, G. Brzykcy<br />

www.bdas.pl<br />

Prolog ma także inne cechy, które predestynują go do zastosowań w zadaniach reprezentowania<br />

i przekształcania wiedzy, formułowania zapytań i wnioskowania. Po pierwsze,<br />

w Prologu mamy wyższy poziom abstrakcji pojęć niż w językach imperatywnych. Zwarty<br />

kod prologowy jest przejrzysty i czytelny. Warto tu przypomnieć, że programy prologowe<br />

mają formalną semantykę. Po drugie, dane i programy są w tym języku reprezentowane<br />

w analogiczny sposób, co daje szerokie możliwości definiowania metaprogramów. Nie ma,<br />

więc kłopotów z modyfikowaniem wiedzy, w oparciu o którą prowadzone są obliczenia<br />

(wnioskowania). Po trzecie, w systemach Prologu mamy dostępne wprost mechanizmy dopasowywania<br />

do wzorca oraz unifikacji, bardzo przydatne do wyszukiwania danych. Nie<br />

musimy się także przejmować sposobem przeglądania przestrzeni możliwych rozwiązań<br />

danego problemu, gdyż system samoczynnie wykonuje nawroty w obliczeniach.<br />

Znane są także różne użyteczne rozszerzenia Prologu, w tym w szczególności do zastosowań<br />

w przetwarzaniu rozproszonym i sieci WWW (np. LogicPeer i LogicWeb [10]). Ten<br />

sam autor proponuje także w [11] specjalny typ programów prologowych do reprezentowania<br />

sytuacji i uwzględniania ich w działaniach agentów silnie uzależnionych od zmian otoczenia<br />

(ang. context-aware pervasive computing).<br />

W systemie semantycznej integracji danych, zwanym systemem SIX-P2P [5], proponujemy<br />

użycie środowiska prologowego, w którym:<br />

− mamy zestaw standardowych, predefiniowanych typów,<br />

− można definiować nowe typy z uwzględnieniem wielodziedziczenia,<br />

− definicje nowych typów mogą zawierać ograniczenia w formie klauzul prologowych,<br />

− hierarchia typów jest uwzględniona w mechanizmach unifikacji i wnioskowania,<br />

− termy reprezentują tzw. struktury cech [7], w których poszczególne argumenty mają<br />

nazwy oraz typy,<br />

− argumenty termów można wymieniać w dowolnej kolejności, gdyż ich role są opisane<br />

przez nazwy,<br />

− nie trzeba podawać wszystkich argumentów termu. Dla termów danego typu jest określony<br />

zestaw argumentów obowiązkowych, a pozostałe argumenty mogą, ale nie<br />

muszą, wystąpić. Za pomocą termów z niepełną listą argumentów można zatem wyrażać<br />

informacje niepełne.<br />

3 Reguły opisujące semantykę działań agentów<br />

Jak wspomniano wcześniej, w prezentowanym systemie występują agenci realizujący pewne<br />

zadania prologowe. Wiedzę agenta, wyrażaną za pomocą zbioru prologowych procedur<br />

oraz faktów, można traktować jako jego stan mentalny, w którym obsługuje on zadania pochodzące<br />

od innych agentów. Z innego (sytuacyjnego) punktu widzenia stan ten można<br />

traktować również jako sytuację, w której realizowane są zadania. Stan mentalny agenta p<br />

oznaczamy przez p. Skierowanie od agenta p do agenta q zadania G (traktowanego jak zapytanie<br />

prologowe) wyrażane jest jako wywołanie q*G procedury G agenta q. Procedura G<br />

może być realizowana przez agenta q i/lub, po przekształceniu zadania początkowego G na<br />

podzadania G 1 , ..., G n , przez innych agentów.<br />

Stwierdzenie „wykonanie zadania G, skierowanego przez agenta p do agenta q, zostało<br />

zakończone sukcesem (w sensie prologowym), a otrzymane dane, czyli podstawienie θ dotyczące<br />

zmiennych z zdania G, zostały przekazane przez q do p” zapisujemy jako relację p<br />

|- θ q*G (por. [10]).<br />

84<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych<br />

www.bdas.pl<br />

Niektóre zadania mogą być realizowane lokalnie (przez jednego agenta). Jeśli więc agent<br />

p, będący w stanie p, zakończył realizację zadania G z sukcesem i powstało podstawienie θ,<br />

to fakt ten zapisujemy jako relację p/p |- θ G.<br />

Dane zadanie prologowe może być realizowane równolegle przez wiele agentów. Zgodnie<br />

z konwencją przyjętą w [10], jeśli zadanie G ma być wykonywane przez agentów<br />

q 1<br />

,q 2<br />

,...,q n<br />

, i wszystkie wykonania muszą zakończyć się sukcesem, to zapisujemy to jako<br />

q 1 ,q 2 ,...,q n<br />

[] G. Jeżeli sukcesem musi zakończyć się wykonywanie zadania G u co najmniej<br />

jednego agenta, to piszemy q 1 ,q 2 ,...,q n<br />

G. Oczywiście, różni agenci mogą przekazać<br />

zwrotnie różne podstawienia. Jeżeli nie można połączyć ich w jedno podstawienie (ze<br />

względu na różne wartości przypisywane tym samym zmiennym), to w pierwszym wypadku<br />

(czyli dla operatora []) przyjmujemy, że wykonanie zadania G zakończyło się porażką.<br />

W wypadku drugim (czyli dla operatora ), możliwe jest zastosowanie reguł dodatkowych,<br />

decydujących o sposobie złożenia podstawień otrzymanych od różnych agentów.<br />

Poniżej przedstawiamy reguły opisujące tzw. semantykę operacyjną działań agentów.<br />

Ogólną postać reguł zaczerpnięto z [10]. Uzupełniono je jednak o elementy związane ze<br />

stanami mentalnymi agentów. Każda reguła ma postać<br />

przesłanki<br />

konkluzja<br />

Jeśli prawdziwe są wszystkie formuły z przesłanek, to prawdziwa jest także konkluzja.<br />

p / p |– true<br />

∈<br />

(1)<br />

Reguła 2 wyraża fakt, że agent p, będący w stanie p, realizuje zawsze z sukcesem zadanie<br />

puste (reprezentowane przez stałą logiczną true).<br />

( )<br />

θ = mgu R( v , K, v ), R( t , K, t ) ∧R( v , K, v ) ∈ p<br />

1 n 1 n 1 n<br />

p/ p |– R( t , K, t )<br />

θ<br />

1<br />

n<br />

(3)<br />

Reguła 4 opisuje realizację zadania R(t 1 ,...t n ) w stanie p, w którym agent p zna fakt<br />

R(v 1 ,...v n ), a wartości v 1 , ..., v n mogą być ukonkretnione z termami t 1 ,..., t n . Wynikiem tego<br />

ukonkretnienia jest podstawienie θ. Nie wpływa ono na zmianę stanu mentalnego agenta p.<br />

( )<br />

γ = mgu A, H ∧H : −B ∈ p ∧ p / p |– Bγ<br />

p/ p |–<br />

γδ<br />

A<br />

δ<br />

(5)<br />

Powyżej opisano realizację zadania A z wykorzystaniem reguły prologowej H :- B, o nagłówku<br />

H i ciele B. Podstawienie γ jest najogólniejszym unifikatorem zadania A i nagłówka<br />

H. Jeżeli wykonywanie ciała reguły (po uwzględnieniu podstawienia γ) zakończy się<br />

sukcesem i występujące w regule 3 zmienne zostaną ukonkretnione zgodnie z podstawieniem<br />

δ, to realizacja zadania A również zakończy się sukcesem, a złożenie podstawień γ i δ<br />

będzie podstawieniem wynikowym.<br />

85<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

J. Bartoszek, G. Brzykcy<br />

q/ q |–<br />

θ<br />

G<br />

p / p |– q∗G<br />

θ<br />

(6)<br />

www.bdas.pl<br />

Reguła 7 dotyczy realizacji zadania G przekazanego przez agenta p do agenta q. Zadanie G<br />

jest wykonywane przez agenta q w stanie q.<br />

p / p|– G ∧ p/ p |– Gθ<br />

θ<br />

1 γ 2<br />

p/ p |– G , G<br />

θγ<br />

1 2<br />

(8)<br />

Wykonywanie zadania złożonego z podzadań G 1 i G 2 odbywa się dwuetapowo. Jeżeli<br />

w wyniku wykonania zadania G 1 powstanie podstawienie θ, to ma ono wpływ na wykonywanie<br />

zadania G 2 .<br />

q/ q |– G∧... ∧q / q |– G<br />

1 1 θ1<br />

p/ p |– q , K, q [] G<br />

θ1... θn<br />

1<br />

n n θn<br />

n<br />

(9)<br />

q/ q |– G∨... ∨q / q |– G<br />

1 1 θ1<br />

p / p |– q , K,<br />

q G<br />

θ1... θn<br />

1<br />

n n θn<br />

n<br />

(10)<br />

Reguły 11 i 12 dotyczą zadań realizowanych równocześnie przez wielu agentów. W regule<br />

13 wykonanie zadania G musi zakończyć się sukcesem u każdego z agentów q 1 ,q 2 ,...,q n .<br />

Dlatego też przesłanka ma postać koniunkcji. W regule 14 przesłanka ma postać<br />

alternatywy, gdyż wystarczy, aby tylko jeden agent zakończył pomyślnie wykonywanie<br />

zadania G. Podstawienia θ 1 , θ 2 , ..., θ n otrzymane od agentów, którzy nie wykonali<br />

pomyślnie zadania G, są podstawieniami pustymi. Wykonywanie tego samego zadania G<br />

przez wielu agentów może być użyteczne, gdy pewien agent koordynujący działania innych<br />

agentów musi zlecić im wykonanie np. zadania o charakterze administracyjnym lub<br />

porządkowym.<br />

4 Struktura systemu<br />

W systemie SIX-P2P [5] poszczególne zasoby danych są reprezentowane przez agentów.<br />

Każdy agent jest autonomiczny w tym sensie, że ma swoją własną ontologię i decyduje<br />

o sposobie zorganizowania swoich danych. Każdy zatem zasób w systemie ma lokalny<br />

schemat danych. Agenci wymieniają dane między sobą, ale nie dążą do wypracowania jednego<br />

wspólnego schematu (ontologii). System ma być zdecentralizowany, z rozproszeniem<br />

danych, sterowania i lokalną wymianą informacji. Spełnienie powyższych postulatów ma<br />

służyć przede wszystkim zapewnieniu większej elastyczności systemu i większej odporności<br />

na błędy. System jest też otwarty, co oznacza, że mogą do niego przystępować nowi<br />

agenci, a „starzy” mogą system w pewnym momencie opuścić (np. „wypaść” z systemu na<br />

skutek awarii).<br />

Pojedynczy agent „widzi” w systemie pewien podzbiór zbioru wszystkich agentów. Są<br />

to jego partnerzy (sąsiedzi, przyjaciele, ang. peers), od których może pozyskiwać nową<br />

86<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych<br />

www.bdas.pl<br />

wiedzę (schematy i dane). Zakładamy, że agent, pytany o jakieś dane przez godnego zaufania<br />

sąsiada, stara się obsłużyć zapytanie w najlepszy możliwy sposób. Ponieważ ma on grono<br />

swoich sąsiadów, to w efekcie propagowania zapytania w systemie mamy do czynienia<br />

ze wspólnym obsługiwaniem zapytania przez dużą liczbę agentów. W szczególności, w budowaniu<br />

odpowiedzi mogą kooperować agenci, którzy nie są bezpośrednio związani<br />

z agentem pytającym. Naturalnym założeniem jest możliwość unikatowej identyfikacji<br />

agentów. Przyjmujemy, że każdy agent ma swój identyfikator, a system ma stosowne mechanizmy<br />

zarządzania identyfikatorami. Wprowadzamy także specjalizowanego agenta,<br />

zwanego brokerem, który w aktualnej wersji systemu pełni funkcje administracyjne, związane<br />

z „wchodzeniem” i „wychodzeniem” agentów z systemu.<br />

W systemie mogą być realizowane różne działania (np. wymiana danych między agentami,<br />

reformułowanie zapytań). Przyjrzyjmy się bliżej scenariuszowi wspólnej obsługi zapytań<br />

przez agentów, którzy dysponują wiedzą wyrażaną za pomocą podobnych semantycznie<br />

pojęć. Pomiędzy schematami danych takich agentów muszą zatem istnieć odwzorowania.<br />

Niech Map oznacza odwzorowanie ze schematu agenta a do schematu agenta p, a Mpa –<br />

odwzorowanie w przeciwnym kierunku. Jeśli agent a chce skierować zapytanie do agenta<br />

p, to najpierw próbuje zdefiniować odwzorowania pomiędzy schematami. W tym celu prosi<br />

agenta p o przekazanie jego lokalnego schematu. Na podstawie wiedzy o obu schematach,<br />

być może przy udziale użytkownika, agent a tworzy oba odwzorowania.<br />

user<br />

Q D = merge(Da, Mp1a(D1), Mp2a(D2),<br />

…, Mpna(Dn))<br />

a<br />

Q1 = Map1(Q)<br />

p1<br />

D1<br />

Q2 = Map2(Q)<br />

p2<br />

D2<br />

Dn<br />

. . .<br />

Qn= Mapn(Q)<br />

pn<br />

Rys. 1. Kooperacyjna obsługa zapytania (Q) i budowanie odpowiedzi (D) przez agenta (a)<br />

i jego partnerów semantycznych (p1, p2, …, pn) w systemie SIX–P2P<br />

Obsługa oryginalnego zapytanie Q, kierowanego do agenta a, polega zatem na obsłudze<br />

lokalnej (w bazie danych agenta a) oraz na obsłudze realizowanej przez podzbiór partnerów,<br />

dla których agent a utworzył odwzorowania. Zapytanie Q, po zreformułowaniu go za<br />

pomocą odpowiedniego odwzorowania Mapi, jest kierowane do partnera pi. Uzyskiwane<br />

od partnerów odpowiedzi, wyrażone w terminach z ich lokalnych schematów, są przez<br />

agenta a przetwarzane za pomocą odwzorowań odwrotnych do postaci zgodnej<br />

z jego schematem lokalnym. Po połączeniu (za pomocą funkcji merge), wszystkich odpowiedzi,<br />

lokalnej Da i częściowych odpowiedzi Dpi od partnerów, agent a przedstawia<br />

efekt D obsługi oryginalnego zapytania Q. Powyższy scenariusz pokazano na rys. 1.<br />

87<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

J. Bartoszek, G. Brzykcy<br />

5 Wybrane fragmenty prologowej specyfikacji systemu<br />

www.bdas.pl<br />

Niżej przedstawiono specyfikacje prologowe podstawowych akcji agentów. W systemie<br />

SIX–P2P mamy agentów dwóch typów: brokera i dysponentów danych. Broker utrzymuje<br />

wiedzę o wszystkich agentach (w fakcie o predykacie agents/1) w systemie oraz o związkach<br />

pomiędzy agentami i ich partnerami (partners/2). Odpowiada on za wprowadzenie<br />

agenta do systemu (register/2), czyli zarejestrowanie go (dołączenie do listy agentów)<br />

i wskazanie zbioru jego partnerów. Zadanie wprowadzenia (introduce/3) jest inicjowane<br />

przez agenta i skutkuje przyjęciem przez niego do wiadomości (zapisaniem w postaci faktu)<br />

listy (Parts) sąsiadów w systemie wskazanych mu przez brokera.<br />

introduce(Agent, Broker, Parts) :-<br />

Broker * register(Agent, Parts),<br />

assert(partners(Parts)).<br />

% zarejestrowanie agenta<br />

% zapamiętanie listy partnerów<br />

Podobnie przebiega realizacja akcji „opuszczenia” (log_put/1) systemu przez agenta, która<br />

polega na poinformowaniu o tym zamiarze brokera. Ten ostatni, dysponując wiedzą<br />

o wszystkich agentach w systemie, przekazuje zainteresowanym agentom, czyli tym, którzy<br />

korzystali z danych agenta opuszczającego system, informację o jego odejściu<br />

(logged_out/1).<br />

log_out(Agent):-<br />

agents(As),<br />

a_remove(Agent, As, As1),<br />

% usunięcie agenta z listy agentów<br />

retract(agents(_)), assert(agents(As1)),<br />

set_of(A, (partners(A, Parts), % wyznaczenie zbioru agentów<br />

member(Agent, Parts)), As2), % zaintersowanych i poinformowal_inform_all(As2,<br />

Agent),<br />

% nie ich o odejściu agenta<br />

retract(partners(Agent, _).<br />

l_inform_all([ ], _).<br />

l_inform_all([A | As], Agent):-<br />

A * logged_out(Agent),<br />

l_inform_all(As, Agent).<br />

Również wszelkie zmiany w sposobie organizowania danych przez agenta powinny być<br />

ujawnione i przekazane brokerowi (modify_schema/1), gdyż mają one zasadniczy wpływ<br />

na kształt powiązań semantycznych w systemie. Broker odpowiada za poinformowanie<br />

o zmianach (modified_schema/1) wszystkich zainteresowanych nimi agentów.<br />

modify_schema(Agent):-<br />

set_of(A, partners(A, Parts), % wyznaczenie zbioru agentów wymember(Agent,<br />

Parts)), As), % korzystujacych zmieniony sches_inform(As,<br />

Agent).<br />

% mat i poinformowanie o zmianie<br />

88<br />

s_inform_all([], _).<br />

s_inform_all([A | As], Agent):-<br />

A * modified_schema(Agent),<br />

s_inform_all(As, Agent).<br />

Podstawowe działania dysponentów danych polegają na tworzeniu powiązań semantycznych<br />

z innymi agentami i pozyskiwaniu danych od tych agentów. Powiązania są ustalane<br />

przez fakt zbudowania odpowiednich odwzorowań między schematami. Agent, po ustaleniu<br />

zbioru swoich sąsiadów w systemie, próbuje dla każdego z nich stworzyć takie odwzorowanie<br />

(create_map/3), a właściwie parę odwzorowań. Ponieważ nie zawsze takie odwzorowanie<br />

istnieje, to wynikiem może być odwzorowanie puste, reprezentowane przez<br />

wartość null.<br />

create_map(Part, Mpa, Map) :-<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

schema(self, Scha),<br />

Part * schema(self, Schp),<br />

map(Part, Scha, Schp, Mpa, Map),<br />

assert(mappings(Part, Mpa, Map)).<br />

Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych<br />

% odczytanie schematu własnego<br />

% pobranie schematu od partnera<br />

% utworzenie odwzorowań<br />

% zapamiętanie odwzorowań<br />

Złożony proces obsługi zapytania (ask/3) w systemie P2P z agentami o różnych schematach<br />

danych obejmuje lokalną obsługę zapytania (query/2) oraz pozyskanie (ask_partners/2)<br />

i połączenie (merge/3) odpowiedzi wypracowanych przez partnerów semantycznych<br />

(bezpośrednich i pośrednich).<br />

ask(Agent, Query, Answer) :-<br />

query(Query, Ansl),<br />

% lokalna obsługa zapytania<br />

choose(QParts),<br />

% wybranie partnerów semantycznych<br />

ask_qparts(Query, QParts, Ansr), % wspólna obsługa zapytania<br />

merge([ ], Ansr, Ans). % połaczenie odpowiedzi od partnerów<br />

merge([Ansl], Ansr, Answer). % z odpowiedzią lokalną<br />

Oryginalne zapytanie jest zamieniane (convert/3) na zestaw zapytań do poszczególnych<br />

partnerów i reformułowane (q_reformulate/3) do postaci zgodnej ze schematem każdego<br />

z nich. W tych działaniach wykorzystuje się odwzorowania pomiędzy schematami. Podobnie<br />

jest przy transformowaniu odpowiedzi (a_reformulate/3). Poniżej przywołano specyfikację<br />

wspólnej obsługi zapytania przez zbiór (listę) partnerów.<br />

ask_qparts(_, [ ], _).<br />

% uwzględniono wszystkich partnerów<br />

ask_qparts(Query, [P|Ps], [A|As]) :-<br />

convert(Query, P, Qp), % wyznaczenie pojedynczego podzapytania<br />

mappings(P, Mpa, Map),<br />

q_reformulate(Qp, Map, Qp1), % reformułowanie zapytania<br />

P * ask(Qp1, Ap),<br />

a_reformulate(Ap, Mpa, A), % reformułowanie odpowiedzi<br />

ask_qparts(Query, Ps, As). % uwzględnienie pozostałych partnerów<br />

www.bdas.pl<br />

6 Podsumowanie<br />

System P2P, w którym ma miejsce semantyczna integracja danych, jest niewątpliwie systemem<br />

złożonym. Dlatego też w projektowaniu jego prototypu trzeba uwzględniać technologie<br />

zapewniające odpowiednio wysoki poziom ogólności specyfikowania i weryfikowania<br />

przyjętych rozwiązań. Za takie uważamy systemy agentowe oraz mechanizmy deklaratywne.<br />

Technologia agentowa umożliwia wyodrębnianie stosunkowo niewielkich bytów (agentów)<br />

o ograniczonym zakresie działania. Dodatkowo, działanie takie może być uzależnione<br />

od stanu mentalnego agenta. W specyfikacjach deklaratywnych łatwo jest połączyć precyzję<br />

opisu z wykonalnością tych specyfikacji. Można korzystać z unifikacji, subsumpcji<br />

(przydatnej przy porównywaniu informacji niepełnych) oraz wnioskowania z uwzględnieniem<br />

hierarchii typów. W obliczeniach mogą występować nawroty, a dane i reguły składające<br />

się na stany mentalne agentów łatwo się w tych obliczeniach uwzględnia. Dlatego<br />

w systemie SIX-P2P zaadaptowaliśmy większość z tych mechanizmów. Skorzystaliśmy<br />

także z propozycji prowadzenia obliczeń prologowych w środowisku rozproszonym [10].<br />

W regułach opisujących takie obliczenia wprowadziliśmy, w sposób jawny, stany mentalne<br />

agentów.<br />

Analizując w [5] funkcje poszczególnych rodzajów agentów szczególną rolę przypisaliśmy<br />

brokerowi, który dysponuje pewnymi informacjami wykraczającymi poza wiedzę pojedynczego<br />

agenta – dysponenta danych przedmiotowych. W obecnym rozwiązaniu, broker<br />

wyznacza partnerów nowego agenta dołączanego do systemu. Gdy agent kończy swoją<br />

89<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007


Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007<br />

J. Bartoszek, G. Brzykcy<br />

www.bdas.pl<br />

działalność w systemie, broker informuje o tym fakcie innych zainteresowanych agentów.<br />

Rozważając dalsze kierunki rozwoju systemu skłaniamy się ku zwiększeniu roli brokera,<br />

z zachowaniem jednak natury systemu P2P. W szczególności, mógłby on tworzyć dodatkowe<br />

odwzorowania schematów poprzez składanie niektórych odwzorowań już istniejących.<br />

Wówczas zakłócenia w działaniu jakiegoś agenta (spowodowane np. problemami komunikacyjnymi)<br />

mogłyby być „automatycznie” niwelowanie poprzez przekształcanie zapytań<br />

według tych dodatkowych odwzorowań.<br />

Innym ważnym problemem jest zapewnianie niesprzeczności danych wymienianych<br />

przez agentów. Jak podano w podrozdziale 3, niektóre zadania mogą być realizowane równocześnie<br />

przez wielu agentów, a uzyskiwane wyniki mogą być ze sobą sprzeczne. Trzeba<br />

zatem opracować dodatkowe reguły, które mogą ułatwić rozwiązanie tego problemu.<br />

Literatura<br />

1. Barwise J., Perry J.: Situations and attitudes. MIT Press, Cambridge, MA 1983.<br />

2. Barwise J., Seligman J.: Information Flow. The Logic of Distributed Systems. Cambridge<br />

Universtity Press, 1997.<br />

3. Berners-Lee T., Hendler J., Lassila O.: The Semantic Web. Scientific American, 284(5), 2001.<br />

4. Bouquet, P., Serafini, L., Zanobini, S.: Peer-to-peer semantic coordination., Journal of Web<br />

Semantics, 2(1), 2004, 81–97.<br />

5. Brzykcy G., Bartoszek J., Pankowski T.: Semantic data integration in P2P environment using<br />

schema mappings and agent technology, Simposium KES-AMSTA 2007, Wrocław.<br />

6. Calvanese, D., Giacomo, G. D., Lenzerini, M., Rosati, R.: Logical Foundations of Peer-To-Peer<br />

Data Integration., Proc. of the 23rd ACM SIGMOD Symposium on Principles of Database<br />

Systems (PODS 2004), 2004, 241–251.<br />

7. Carpenter, B.: The logic of typed feature structures: inheritance, (in)equations and<br />

extensionality. Second European Summer School in Language, Logic and Information. Leuven,<br />

1990.<br />

8. Garbers J., Niemann M., Mochol M.: A Personalized Hotel Selection Engine. Demons and<br />

Posters of the 3rd European Semantic Web Conference (ESWC 2006), Budva, 2006.<br />

9. Lenzerini, M.: Data Integration: A Theoretical Perspective., PODS, 2002, 233–246.<br />

10. Loke, S. W.: Declarative programming of integrated peer-to-peer and Web based systems: the<br />

case of Prolog., Journal of Systems and Software, 79(4), 2006, 523–536.<br />

11. Loke, S. W.: Representing and Reasoning with Situations for Context-Aware Pervasive<br />

Computing: a Logic Programming Perspective. School of Computer Science and Software<br />

Engineering, Monash University, Australia, 2004.<br />

12. OpenTravel Alliance, www.opentravel.org/OTA/2003/05.<br />

13. Pankowski, T., Cybulka, J., Meissner, A.: XML Schema Mappings in the Presence of Key<br />

Constraints and Value Dependencies, ICDT 2007 Workshop on Emerging Research<br />

Opportunities in Web Data Management, EROW'07, 2007, 1–15.<br />

14. Rahm, E., Bernstein, P. A.: A survey of approaches to automatic schema matching, The VLDB<br />

Journal, 10(4), 2001, 334–350.<br />

15. Schorlemmer M., Kalfoglou Y.: Progressive ontology alignment for meaning coordination:<br />

An information-theoretic foundation. 4 th Int. Join Conf. on Autonomous Agents and Multiagent<br />

Systems, 2005.<br />

16. Tolksdorf R., Nixon L., Liebsch F., Nguyen D. M., Paslaru Bontas E.: Semantic Web Spaces.<br />

Technical report B-04-11, Freie Universitat Berlin, 2004.<br />

17. Wrightson A.: Semantics of Well Formed XML as a Human and Machine Readable Language.<br />

Why is some XML so difficult to read? Extreme Markup Languages, Montreal 2005.<br />

90<br />

(c) Copyright by <strong>Politechnika</strong> Śląska, Instytut Informatyki, Gliwice 2007

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!