pobierz plik referatu - Politechnika ÅlÄ ska
pobierz plik referatu - Politechnika ÅlÄ ska
pobierz plik referatu - Politechnika ÅlÄ ska
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