pobierz plik referatu

Transkrypt

pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Rozdział 7
w
Mechanizmy deklaratywne w systemie P2P
semantycznej integracji danych
w
w
1 Wstęp
da
.b
Streszczenie. Przedstawiono deklaratywną specyfikację systemu P2P, w którym agenci dysponują lokalnymi bazami danych zorganizowanymi według
różnych schematów. Udostępnianie przez agentów schematów oraz danych
innym agentom odbywa się z użyciem mechanizmów prologowych. W wymianie danych i obsłudze zapytań ważną rolę odgrywają odwzorowania pomiędzy schematami, które faktycznie wyznaczają semantyczne powiązania
pomiędzy danymi przechowywanymi w lokalnych bazach poszczególnych
agentów. Podano semantykę operacyjną operacji prologowych realizowanych
w środowisku P2P z uwzględnieniem stanów mentalnych agentów. Wybrane
działania agentów wyspecyfikowano w Prologu.
pl
s.
W globalnej sieciowej strukturze informacyjnej chcemy, i możemy, sięgać po informacje
z wielu źródeł. Bogactwo i różnorodność udostępnianych danych, to z jednej strony podstawowy walor współczesnych narzędzi informatycznych, a z drugiej – poważne źródło problemów z wyszukiwaniem interesujących nas informacji, a zatem także z pozytywną oceną
proponowanych przez informatyków rozwiązań. Dlatego integracja zasobów informacyjnych i efektywne ich udostępnianie to dwa ważne problemy, które muszą być rozwiązane
w nowoczesnych środowiskach obliczeniowych.
W systemach informatycznych, nawet te same informacje mogą być wyrażane w różny
sposób. Reprezentacja danych ma związek z przyjętą metodą modelowania i rozwiązywania problemu, zbiorem pojęć wykorzystywanych w opisie problemu, zastosowanym językiem, czy sposobem organizowania danych. Wybrana postać danych, przygotowana do określonego trybu ich przetwarzania, choć użyteczna dla konkretnego użytkownika w rozwiązywaniu danego problemu, może się okazać znacznie mniej wygodna dla innych użytkowników, w innych zastosowaniach. Jeśli zatem chcemy efektywnie wykorzystywać dostępne
w sieci dane, to musimy sięgać do istoty danych, ich znaczenia. Takie założenie leży także
Jerzy Bartoszek, Grażyna Brzykcy
Politechnika Poznańska, Instytut Automatyki i Inżynierii Informatycznej,
pl. Skłodowskiej-Curie 5, 60-965 Poznań, Polska
email:{jerzy.bartoszek, grazyna.brzykcy}@put.poznan.pl
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
J. Bartoszek, G. Brzykcy
w
u podstaw Sieci Semantycznej WWW (ang. Semantic Web [3]), czyli wizji rozproszonych
zasobów danych (źródeł wiedzy), które mogą być automatycznie przetwarzane z uwzględnieniem ich semantyki, w sposób bardziej efektywny („inteligentny”) niż dotychczas.
W metodologii tworzenia systemów informatycznych przyjmuje się dzisiaj stanowisko, zorientowane na znaczenie danych (ang. content-oriented processing).
Większość działań zmierzających do ujawnienia znaczenia danych polega na wprowadzaniu i wykorzystywaniu różnych aspektów metawiedzy o tych danych. Opracowano odpowiednie standardy języków do opisywania tej wiedzy, takie jak np. URI (ang. Uniform
Resource Identifier), RDF (ang. Resource Description Framework) i RDFS (ang. RDF
Schema), służące do identyfikowania i opisywania zasobów informacyjnych, czy OWL
(ang. Web Ontology Language) – do definiowania pojęć i relacji pomiędzy pojęciami, czyli
ontologii, którymi można posługiwać się przy tworzeniu i przetwarzaniu danych. Coraz powszechniej wykorzystuje się do reprezentowania danych język XML (ang. Extensible
Markup Language), w którym łatwo można wyrażać nie tylko strukturę danych, ale również inne rodzaje metawiedzy (np. przez dobór odpowiednich nazw znaczników można
ułatwiać, ale także utrudniać, rozumienie danych [17]). Warto w tym miejscu zwrócić uwagę na wzrost zainteresowania informatyków podstawami formalnymi, odpowiednimi do
rozważań o semantyce danych, np. teorią sytuacji (ang. situation theory [1]), uważaną za
jedno z najlepszych narzędzi do definiowania semantyki, i teorią przepływu informacji
(ang. channel theory [2]), szczególnie przydatną w analizie systemów rozproszonych.
Duże znaczenie praktyczne w udostępnianiu informacji ma wykorzystywanie istniejących zasobów baz danych. W tym obszarze informatyki wypracowano już wiele technik
przechowywania i sprawnego wyszukiwania informacji. Formułowane przez użytkownika
zapytanie do zbioru danych jest wyrażane w odpowiednim języku zapytań, przy czym uwzględnia się wiedzę o sposobie zorganizowania danych w bazie, czyli schemat danych (np.
relacyjnych, dokumentów XML). Ten rodzaj metawiedzy, chociaż nie wyraża explicite modelu semantycznego danych, może być z powodzeniem użyty do określenia zbioru pojęć
i zależności pomiędzy tymi pojęciami, definiujących (częściowo) znaczenie danych, a także
do ujawnienia struktury przechowywanych danych.
Dzisiaj, ważnym zadaniem jest integracja danych pochodzących z różnych baz. Odbywa
się ona z wykorzystaniem schematów obowiązujących w poszczególnych repozytoriach.
Można sobie wyobrazić rozwiązanie, w którym ustala się wcześniej globalny schemat
i wszystkie zbiory danych tworzone są zgodnie z tym schematem. Podejście takie proponowane jest zwykle w obszarze określonej dziedziny i przyjmuje postać rozmaitych standardów (np. schematów dokumentów XML wykorzystywanych w hotelarstwie [12]). Nie
można jednak tej metody przygotowania zbiorów danych do integracji zastosować wobec
już istniejących repozytoriów, a także trudno sobie wyobrazić istnienie uniwersalnego schematu dla różnych dziedzin. Praktycznie bardziej uzasadnione jest budowanie schematów,
będących specjalizacją pewnej współdzielonej ontologii. Dopasowywanie tak zdefiniowanych schematów odbywa się wówczas za pośrednictwem tejże ontologii. Jednak w otwartych systemach informatycznych, w których zbiór elementów składowych podlega dynamicznym zmianom, w szczególności pojawiają się nowe zbiory danych, nie da się uniknąć
sytuacji, w których w repozytoriach danych mamy różne, lokalnie i autonomicznie zdefiniowane schematy.
Integrowanie danych z takich zbiorów winno być poprzedzone budowaniem odwzorowań pomiędzy ujawnionymi schematami lokalnymi (jeśli schematy można do siebie dopasować) i wywodzeniem z nich globalnych, wspólnych ontologii. Trwają intensywne prace
nad metodami odkrywania semantycznych odwzorowań pomiędzy schematami i ontologiami (np. [4], [6], [9], [13], [14], [15]). Włączamy się w ten nurt badań proponując środowisko agentowe typu P2P (ang. Peer-to-Peer) do semantycznej integracji danych XML [5].
da
.b
w
w
pl
s.
82
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych
w
W dalszej części rozdziału zostanie przedstawiona architektura prezentowanego systemu
(podrozdział 4), na który składają się agenci – dysponenci zbiorów danych oraz broker
realizujący funkcje administracyjne. Każdy agent pierwszego rodzaju ma dane, zorganizowane według lokalnego schematu, który na żądanie udostępnia innym agentom. Ważne miejsce w systemie mają odwzorowania pomiędzy schematami, faktycznie wyznaczające semantyczne powiązania pomiędzy danymi. Zakłada się, że odwzorowania mogą
powstawać w sposób półautomatyczny, przy współudziale użytkowników systemu (ludzi). Opis systemu został poprzedzony uzasadnieniem stosowania podejścia deklaratywnego, w tym programowania w logice, we współczesnych systemach rozproszonych
(podrozdział 2). Podano semantykę operacyjną operacji prologowych realizowanych
w środowisku P2P z uwzględnieniem stanów mentalnych agentów (podrozdział 3).
Działania różnych rodzajów agentów przedstawiono w Prologu (podrozdział 5), przez co
wykonywalna specyfikacja prologowa może być również traktowana jako specyfikacja
formalna prezentowanego systemu. Przewidywane kierunki rozwoju systemu nakreślono
w podsumowaniu.
w
w
2 Dlaczego podejście deklaratywne (programowanie w Prologu)?
da
.b
Użyty w pytaniu termin „podejście deklaratywne” obejmuje wiele różnych modeli obliczeniowych, w tym np. programowanie funkcyjne (za pomocą funkcji rekurencyjnych), czy
programowanie ograniczeń (za pomocą ograniczeń nakładanych na wartości zmiennych).
Nasza uwaga skupia się na programowaniu w logice, a dokładniej na programowaniu
w Prologu.
Zanim przedstawione zostaną przesłanki wyboru tego właśnie sposobu definiowania
problemów, warto zastanowić się nad tym, na czym ma polegać nowe podejście do obliczeń proponowane w inżynierii oprogramowania, czyli przywołane wcześniej przetwarzanie zorientowane na znaczenie (semantykę) danych. Najprościej rzecz ujmując, chodzi o to,
by systemy informatyczne działały w coraz bardziej inteligentny sposób. Sprowadzając ten
ogólny postulat do konkretu, można sformułować następujące żądanie szczegółowe: system
ma nie tylko umieć znaleźć dane umieszczone w którymś z zasobów (wyszukać je), ale także na podstawie tych danych wywieść nowe dane (takie, które jeszcze w systemie nie występowały). Ważną cechą systemów ma być zatem zdolność do prowadzenia wnioskowań.
To oczekiwanie jawnie wyrażono w strukturze sieci semantycznej WWW, w której
w warstwach najwyższych, ulokowanych ponad poziomem ontologii, wiedza ma być reprezentowana za pomocą reguł, przetwarzanych przez odpowiednie maszyny wnioskujące.
Z takim właśnie sposobem wyrażania i przetwarzania wiedzy mamy do czynienia w Prologu! Programy prologowe to skończone zbiory klauzul (reguł), a obliczenie, podejmowane
zawsze w odniesieniu do jakiegoś zapytania (zadania), polega na próbie skonstruowania
dowodu. Jednak nie tyle formalne podobieństwo Prologu do rekomendowanych w sieci semantycznej języków programowania, co istnienie sprawdzonych, dojrzałych prologowych
środowisk wykonawczych może przesądzać o wyborze właśnie tego języka. Na poparcie tej
tezy warto przywołać doświadczenia twórców systemu Semantic Web Spaces [16], którzy
praktycznie wykorzystywali standardy i technologie sieci semantycznej. Stwierdzili oni
nieefektywność i niestabilność wielu rozwiązań (np. obsługi zapytań do zagregowanych danych RDF) i uznali Prolog, z jego systemem wykonawczym i rozszerzeniami do działań
w sieci, za wygodne narzędzie do definiowania nowoczesnych systemów informatycznych
[8].
pl
s.
83
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
J. Bartoszek, G. Brzykcy
w
Prolog ma także inne cechy, które predestynują go do zastosowań w zadaniach reprezentowania i przekształcania wiedzy, formułowania zapytań i wnioskowania. Po pierwsze,
w Prologu mamy wyższy poziom abstrakcji pojęć niż w językach imperatywnych. Zwarty
kod prologowy jest przejrzysty i czytelny. Warto tu przypomnieć, że programy prologowe
mają formalną semantykę. Po drugie, dane i programy są w tym języku reprezentowane
w analogiczny sposób, co daje szerokie możliwości definiowania metaprogramów. Nie ma,
więc kłopotów z modyfikowaniem wiedzy, w oparciu o którą prowadzone są obliczenia
(wnioskowania). Po trzecie, w systemach Prologu mamy dostępne wprost mechanizmy dopasowywania do wzorca oraz unifikacji, bardzo przydatne do wyszukiwania danych. Nie
musimy się także przejmować sposobem przeglądania przestrzeni możliwych rozwiązań
danego problemu, gdyż system samoczynnie wykonuje nawroty w obliczeniach.
Znane są także różne użyteczne rozszerzenia Prologu, w tym w szczególności do zastosowań w przetwarzaniu rozproszonym i sieci WWW (np. LogicPeer i LogicWeb [10]). Ten
sam autor proponuje także w [11] specjalny typ programów prologowych do reprezentowania sytuacji i uwzględniania ich w działaniach agentów silnie uzależnionych od zmian otoczenia (ang. context-aware pervasive computing).
W systemie semantycznej integracji danych, zwanym systemem SIX-P2P [5], proponujemy użycie środowiska prologowego, w którym:
− mamy zestaw standardowych, predefiniowanych typów,
− można definiować nowe typy z uwzględnieniem wielodziedziczenia,
− definicje nowych typów mogą zawierać ograniczenia w formie klauzul prologowych,
− hierarchia typów jest uwzględniona w mechanizmach unifikacji i wnioskowania,
− termy reprezentują tzw. struktury cech [7], w których poszczególne argumenty mają
nazwy oraz typy,
− argumenty termów można wymieniać w dowolnej kolejności, gdyż ich role są opisane przez nazwy,
− nie trzeba podawać wszystkich argumentów termu. Dla termów danego typu jest określony zestaw argumentów obowiązkowych, a pozostałe argumenty mogą, ale nie
muszą, wystąpić. Za pomocą termów z niepełną listą argumentów można zatem wyrażać informacje niepełne.
da
.b
w
w
pl
s.
3 Reguły opisujące semantykę działań agentów
Jak wspomniano wcześniej, w prezentowanym systemie występują agenci realizujący pewne zadania prologowe. Wiedzę agenta, wyrażaną za pomocą zbioru prologowych procedur
oraz faktów, można traktować jako jego stan mentalny, w którym obsługuje on zadania pochodzące od innych agentów. Z innego (sytuacyjnego) punktu widzenia stan ten można
traktować również jako sytuację, w której realizowane są zadania. Stan mentalny agenta p
oznaczamy przez p. Skierowanie od agenta p do agenta q zadania G (traktowanego jak zapytanie prologowe) wyrażane jest jako wywołanie q*G procedury G agenta q. Procedura G
może być realizowana przez agenta q i/lub, po przekształceniu zadania początkowego G na
podzadania G1, ..., Gn, przez innych agentów.
Stwierdzenie „wykonanie zadania G, skierowanego przez agenta p do agenta q, zostało
zakończone sukcesem (w sensie prologowym), a otrzymane dane, czyli podstawienie θ dotyczące zmiennych z zdania G, zostały przekazane przez q do p” zapisujemy jako relację p
|-θ q*G (por. [10]).
84
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych
w
Niektóre zadania mogą być realizowane lokalnie (przez jednego agenta). Jeśli więc agent
p, będący w stanie p, zakończył realizację zadania G z sukcesem i powstało podstawienie θ,
to fakt ten zapisujemy jako relację p/p |-θ G.
Dane zadanie prologowe może być realizowane równolegle przez wiele agentów. Zgodnie z konwencją przyjętą w [10], jeśli zadanie G ma być wykonywane przez agentów
q1,q2,...,qn, i wszystkie wykonania muszą zakończyć się sukcesem, to zapisujemy to jako
q1,q2,...,qn [] G. Jeżeli sukcesem musi zakończyć się wykonywanie zadania G u co najmniej
jednego agenta, to piszemy q1,q2,...,qn <> G. Oczywiście, różni agenci mogą przekazać
zwrotnie różne podstawienia. Jeżeli nie można połączyć ich w jedno podstawienie (ze
względu na różne wartości przypisywane tym samym zmiennym), to w pierwszym wypadku (czyli dla operatora []) przyjmujemy, że wykonanie zadania G zakończyło się porażką.
W wypadku drugim (czyli dla operatora <>), możliwe jest zastosowanie reguł dodatkowych, decydujących o sposobie złożenia podstawień otrzymanych od różnych agentów.
Poniżej przedstawiamy reguły opisujące tzw. semantykę operacyjną działań agentów.
Ogólną postać reguł zaczerpnięto z [10]. Uzupełniono je jednak o elementy związane ze
stanami mentalnymi agentów. Każda reguła ma postać
da
.b
w
w
przesłanki
konkluzja
Jeśli prawdziwe są wszystkie formuły z przesłanek, to prawdziwa jest także konkluzja.
p / p | –∈ true
(1)
Reguła 2 wyraża fakt, że agent p, będący w stanie p, realizuje zawsze z sukcesem zadanie
puste (reprezentowane przez stałą logiczną true).
θ = mgu ( R(v1 ,K , vn ), R(t1 ,K , tn ) ) ∧ R(v1 ,K , vn ) ∈ p
(3)
pl
s.
p / p | –θ R(t1 ,K , tn )
Reguła 4 opisuje realizację zadania R(t1,...tn) w stanie p, w którym agent p zna fakt
R(v1,...vn), a wartości v1, ..., vn mogą być ukonkretnione z termami t1,..., tn. Wynikiem tego
ukonkretnienia jest podstawienie θ. Nie wpływa ono na zmianę stanu mentalnego agenta p.
γ = mgu ( A, H ) ∧ H : − B ∈ p ∧ p / p | –δ Bγ
p / p | – γδ A
(5)
Powyżej opisano realizację zadania A z wykorzystaniem reguły prologowej H :- B, o nagłówku H i ciele B. Podstawienie γ jest najogólniejszym unifikatorem zadania A i nagłówka H. Jeżeli wykonywanie ciała reguły (po uwzględnieniu podstawienia γ) zakończy się
sukcesem i występujące w regule 3 zmienne zostaną ukonkretnione zgodnie z podstawieniem δ, to realizacja zadania A również zakończy się sukcesem, a złożenie podstawień γ i δ
będzie podstawieniem wynikowym.
85
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
J. Bartoszek, G. Brzykcy
q / q | –θ G
(6)
p / p | –θ q ∗ G
Reguła 7 dotyczy realizacji zadania G przekazanego przez agenta p do agenta q. Zadanie G
jest wykonywane przez agenta q w stanie q.
w
p / p| –θ G1 ∧ p / p | – γ G2θ
p / p | –θγ G1 , G2
(8)
q1/ q1 | –θ 1 G ∧ ... ∧ qn / qn | –θ n G
w
w
Wykonywanie zadania złożonego z podzadań G1 i G2 odbywa się dwuetapowo. Jeżeli
w wyniku wykonania zadania G1 powstanie podstawienie θ, to ma ono wpływ na wykonywanie zadania G2.
p / p | –θ 1...θ n q1 ,K , qn []G
da
.b
q1/ q1 | –θ 1 G ∨ ... ∨ qn / qn | –θ n G
p / p | –θ 1...θ n q1 ,K , qn <> G
(9)
(10)
Reguły 11 i 12 dotyczą zadań realizowanych równocześnie przez wielu agentów. W regule
13 wykonanie zadania G musi zakończyć się sukcesem u każdego z agentów q1,q2,...,qn.
Dlatego też przesłanka ma postać koniunkcji. W regule 14 przesłanka ma postać
alternatywy, gdyż wystarczy, aby tylko jeden agent zakończył pomyślnie wykonywanie
zadania G. Podstawienia θ1, θ2, ..., θn otrzymane od agentów, którzy nie wykonali
pomyślnie zadania G, są podstawieniami pustymi. Wykonywanie tego samego zadania G
przez wielu agentów może być użyteczne, gdy pewien agent koordynujący działania innych
agentów musi zlecić im wykonanie np. zadania o charakterze administracyjnym lub
porządkowym.
pl
s.
4 Struktura systemu
W systemie SIX-P2P [5] poszczególne zasoby danych są reprezentowane przez agentów.
Każdy agent jest autonomiczny w tym sensie, że ma swoją własną ontologię i decyduje
o sposobie zorganizowania swoich danych. Każdy zatem zasób w systemie ma lokalny
schemat danych. Agenci wymieniają dane między sobą, ale nie dążą do wypracowania jednego wspólnego schematu (ontologii). System ma być zdecentralizowany, z rozproszeniem
danych, sterowania i lokalną wymianą informacji. Spełnienie powyższych postulatów ma
służyć przede wszystkim zapewnieniu większej elastyczności systemu i większej odporności na błędy. System jest też otwarty, co oznacza, że mogą do niego przystępować nowi
agenci, a „starzy” mogą system w pewnym momencie opuścić (np. „wypaść” z systemu na
skutek awarii).
Pojedynczy agent „widzi” w systemie pewien podzbiór zbioru wszystkich agentów. Są
to jego partnerzy (sąsiedzi, przyjaciele, ang. peers), od których może pozyskiwać nową
86
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych
w
wiedzę (schematy i dane). Zakładamy, że agent, pytany o jakieś dane przez godnego zaufania sąsiada, stara się obsłużyć zapytanie w najlepszy możliwy sposób. Ponieważ ma on grono swoich sąsiadów, to w efekcie propagowania zapytania w systemie mamy do czynienia
ze wspólnym obsługiwaniem zapytania przez dużą liczbę agentów. W szczególności, w budowaniu odpowiedzi mogą kooperować agenci, którzy nie są bezpośrednio związani
z agentem pytającym. Naturalnym założeniem jest możliwość unikatowej identyfikacji
agentów. Przyjmujemy, że każdy agent ma swój identyfikator, a system ma stosowne mechanizmy zarządzania identyfikatorami. Wprowadzamy także specjalizowanego agenta,
zwanego brokerem, który w aktualnej wersji systemu pełni funkcje administracyjne, związane z „wchodzeniem” i „wychodzeniem” agentów z systemu.
W systemie mogą być realizowane różne działania (np. wymiana danych między agentami, reformułowanie zapytań). Przyjrzyjmy się bliżej scenariuszowi wspólnej obsługi zapytań przez agentów, którzy dysponują wiedzą wyrażaną za pomocą podobnych semantycznie
pojęć. Pomiędzy schematami danych takich agentów muszą zatem istnieć odwzorowania.
Niech Map oznacza odwzorowanie ze schematu agenta a do schematu agenta p, a Mpa –
odwzorowanie w przeciwnym kierunku. Jeśli agent a chce skierować zapytanie do agenta
p, to najpierw próbuje zdefiniować odwzorowania pomiędzy schematami. W tym celu prosi
agenta p o przekazanie jego lokalnego schematu. Na podstawie wiedzy o obu schematach,
być może przy udziale użytkownika, agent a tworzy oba odwzorowania.
w
w
user
da
.b
Q D = merge(Da, Mp1a(D1), Mp2a(D2),
…, Mpna(Dn))
a
Q1 = Map1(Q)
p1
D1
D2
Dn
Qn= Mapn(Q)
Q2 = Map2(Q)
pn
p2
pl
s.
. . .
Rys. 1. Kooperacyjna obsługa zapytania (Q) i budowanie odpowiedzi (D) przez agenta (a)
i jego partnerów semantycznych (p1, p2, …, pn) w systemie SIX–P2P
Obsługa oryginalnego zapytanie Q, kierowanego do agenta a, polega zatem na obsłudze
lokalnej (w bazie danych agenta a) oraz na obsłudze realizowanej przez podzbiór partnerów, dla których agent a utworzył odwzorowania. Zapytanie Q, po zreformułowaniu go za
pomocą odpowiedniego odwzorowania Mapi, jest kierowane do partnera pi. Uzyskiwane
od partnerów odpowiedzi, wyrażone w terminach z ich lokalnych schematów, są przez
agenta a przetwarzane za pomocą odwzorowań odwrotnych do postaci zgodnej
z jego schematem lokalnym. Po połączeniu (za pomocą funkcji merge), wszystkich odpowiedzi, lokalnej Da i częściowych odpowiedzi Dpi od partnerów, agent a przedstawia
efekt D obsługi oryginalnego zapytania Q. Powyższy scenariusz pokazano na rys. 1.
87
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
J. Bartoszek, G. Brzykcy
5 Wybrane fragmenty prologowej specyfikacji systemu
w
Niżej przedstawiono specyfikacje prologowe podstawowych akcji agentów. W systemie
SIX–P2P mamy agentów dwóch typów: brokera i dysponentów danych. Broker utrzymuje
wiedzę o wszystkich agentach (w fakcie o predykacie agents/1) w systemie oraz o związkach pomiędzy agentami i ich partnerami (partners/2). Odpowiada on za wprowadzenie
agenta do systemu (register/2), czyli zarejestrowanie go (dołączenie do listy agentów)
i wskazanie zbioru jego partnerów. Zadanie wprowadzenia (introduce/3) jest inicjowane
przez agenta i skutkuje przyjęciem przez niego do wiadomości (zapisaniem w postaci faktu) listy (Parts) sąsiadów w systemie wskazanych mu przez brokera.
w
introduce(Agent, Broker, Parts) :Broker * register(Agent, Parts),
assert(partners(Parts)).
% zarejestrowanie agenta
% zapamiętanie listy partnerów
w
Podobnie przebiega realizacja akcji „opuszczenia” (log_put/1) systemu przez agenta, która
polega na poinformowaniu o tym zamiarze brokera. Ten ostatni, dysponując wiedzą
o wszystkich agentach w systemie, przekazuje zainteresowanym agentom, czyli tym, którzy
korzystali z danych agenta opuszczającego system, informację o jego odejściu
(logged_out/1).
da
.b
log_out(Agent):agents(As),
a_remove(Agent, As, As1),
% usunięcie agenta z listy agentów
retract(agents(_)), assert(agents(As1)),
set_of(A, (partners(A, Parts),
% wyznaczenie zbioru agentów
member(Agent, Parts)), As2), % zaintersowanych i poinformowal_inform_all(As2, Agent),
% nie ich o odejściu agenta
retract(partners(Agent, _).
l_inform_all([ ], _).
l_inform_all([A | As], Agent):A * logged_out(Agent),
l_inform_all(As, Agent).
pl
s.
Również wszelkie zmiany w sposobie organizowania danych przez agenta powinny być
ujawnione i przekazane brokerowi (modify_schema/1), gdyż mają one zasadniczy wpływ
na kształt powiązań semantycznych w systemie. Broker odpowiada za poinformowanie
o zmianach (modified_schema/1) wszystkich zainteresowanych nimi agentów.
modify_schema(Agent):set_of(A, partners(A, Parts),
% wyznaczenie zbioru agentów wymember(Agent, Parts)), As), % korzystujacych zmieniony sches_inform(As, Agent).
% mat i poinformowanie o zmianie
s_inform_all([], _).
s_inform_all([A | As], Agent):A * modified_schema(Agent),
s_inform_all(As, Agent).
Podstawowe działania dysponentów danych polegają na tworzeniu powiązań semantycznych z innymi agentami i pozyskiwaniu danych od tych agentów. Powiązania są ustalane
przez fakt zbudowania odpowiednich odwzorowań między schematami. Agent, po ustaleniu zbioru swoich sąsiadów w systemie, próbuje dla każdego z nich stworzyć takie odwzorowanie (create_map/3), a właściwie parę odwzorowań. Ponieważ nie zawsze takie odwzorowanie istnieje, to wynikiem może być odwzorowanie puste, reprezentowane przez
wartość null.
create_map(Part, Mpa, Map) :-
88
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
Mechanizmy deklaratywne w systemie P2P semantycznej integracji danych
schema(self, Scha),
Part * schema(self, Schp),
map(Part, Scha, Schp, Mpa, Map),
assert(mappings(Part, Mpa, Map)).
%
%
%
%
odczytanie schematu własnego
pobranie schematu od partnera
utworzenie odwzorowań
zapamiętanie odwzorowań
w
Złożony proces obsługi zapytania (ask/3) w systemie P2P z agentami o różnych schematach danych obejmuje lokalną obsługę zapytania (query/2) oraz pozyskanie (ask_partners/2) i połączenie (merge/3) odpowiedzi wypracowanych przez partnerów semantycznych (bezpośrednich i pośrednich).
w
ask(Agent, Query, Answer) :query(Query, Ansl),
% lokalna obsługa zapytania
choose(QParts),
% wybranie partnerów semantycznych
ask_qparts(Query, QParts, Ansr), % wspólna obsługa zapytania
merge([ ], Ansr, Ans).
% połaczenie odpowiedzi od partnerów
merge([Ansl], Ansr, Answer). % z odpowiedzią lokalną
w
Oryginalne zapytanie jest zamieniane (convert/3) na zestaw zapytań do poszczególnych
partnerów i reformułowane (q_reformulate/3) do postaci zgodnej ze schematem każdego
z nich. W tych działaniach wykorzystuje się odwzorowania pomiędzy schematami. Podobnie jest przy transformowaniu odpowiedzi (a_reformulate/3). Poniżej przywołano specyfikację wspólnej obsługi zapytania przez zbiór (listę) partnerów.
da
.b
ask_qparts(_, [ ], _).
% uwzględniono wszystkich partnerów
ask_qparts(Query, [P|Ps], [A|As]) :convert(Query, P, Qp),
% wyznaczenie pojedynczego podzapytania
mappings(P, Mpa, Map),
q_reformulate(Qp, Map, Qp1), % reformułowanie zapytania
P * ask(Qp1, Ap),
a_reformulate(Ap, Mpa, A),
% reformułowanie odpowiedzi
ask_qparts(Query, Ps, As).
% uwzględnienie pozostałych partnerów
6 Podsumowanie
pl
s.
System P2P, w którym ma miejsce semantyczna integracja danych, jest niewątpliwie systemem złożonym. Dlatego też w projektowaniu jego prototypu trzeba uwzględniać technologie zapewniające odpowiednio wysoki poziom ogólności specyfikowania i weryfikowania
przyjętych rozwiązań. Za takie uważamy systemy agentowe oraz mechanizmy deklaratywne. Technologia agentowa umożliwia wyodrębnianie stosunkowo niewielkich bytów (agentów) o ograniczonym zakresie działania. Dodatkowo, działanie takie może być uzależnione
od stanu mentalnego agenta. W specyfikacjach deklaratywnych łatwo jest połączyć precyzję opisu z wykonalnością tych specyfikacji. Można korzystać z unifikacji, subsumpcji
(przydatnej przy porównywaniu informacji niepełnych) oraz wnioskowania z uwzględnieniem hierarchii typów. W obliczeniach mogą występować nawroty, a dane i reguły składające się na stany mentalne agentów łatwo się w tych obliczeniach uwzględnia. Dlatego
w systemie SIX-P2P zaadaptowaliśmy większość z tych mechanizmów. Skorzystaliśmy
także z propozycji prowadzenia obliczeń prologowych w środowisku rozproszonym [10].
W regułach opisujących takie obliczenia wprowadziliśmy, w sposób jawny, stany mentalne
agentów.
Analizując w [5] funkcje poszczególnych rodzajów agentów szczególną rolę przypisaliśmy brokerowi, który dysponuje pewnymi informacjami wykraczającymi poza wiedzę pojedynczego agenta – dysponenta danych przedmiotowych. W obecnym rozwiązaniu, broker
wyznacza partnerów nowego agenta dołączanego do systemu. Gdy agent kończy swoją
89
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007
Rozdział monografii: 'Bazy Danych: Nowe Technologie', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2007
J. Bartoszek, G. Brzykcy
w
działalność w systemie, broker informuje o tym fakcie innych zainteresowanych agentów.
Rozważając dalsze kierunki rozwoju systemu skłaniamy się ku zwiększeniu roli brokera,
z zachowaniem jednak natury systemu P2P. W szczególności, mógłby on tworzyć dodatkowe odwzorowania schematów poprzez składanie niektórych odwzorowań już istniejących.
Wówczas zakłócenia w działaniu jakiegoś agenta (spowodowane np. problemami komunikacyjnymi) mogłyby być „automatycznie” niwelowanie poprzez przekształcanie zapytań
według tych dodatkowych odwzorowań.
Innym ważnym problemem jest zapewnianie niesprzeczności danych wymienianych
przez agentów. Jak podano w podrozdziale 3, niektóre zadania mogą być realizowane równocześnie przez wielu agentów, a uzyskiwane wyniki mogą być ze sobą sprzeczne. Trzeba
zatem opracować dodatkowe reguły, które mogą ułatwić rozwiązanie tego problemu.
w
Literatura
3.
4.
6.
7.
8.
9.
10.
12.
13.
14.
15.
16.
17.
pl
s.
11.
da
.b
5.
Barwise J., Perry J.: Situations and attitudes. MIT Press, Cambridge, MA 1983.
Barwise J., Seligman J.: Information Flow. The Logic of Distributed Systems. Cambridge
Universtity Press, 1997.
Berners-Lee T., Hendler J., Lassila O.: The Semantic Web. Scientific American, 284(5), 2001.
Bouquet, P., Serafini, L., Zanobini, S.: Peer-to-peer semantic coordination., Journal of Web
Semantics, 2(1), 2004, 81–97.
Brzykcy G., Bartoszek J., Pankowski T.: Semantic data integration in P2P environment using
schema mappings and agent technology, Simposium KES-AMSTA 2007, Wrocław.
Calvanese, D., Giacomo, G. D., Lenzerini, M., Rosati, R.: Logical Foundations of Peer-To-Peer
Data Integration., Proc. of the 23rd ACM SIGMOD Symposium on Principles of Database
Systems (PODS 2004), 2004, 241–251.
Carpenter, B.: The logic of typed feature structures: inheritance, (in)equations and
extensionality. Second European Summer School in Language, Logic and Information. Leuven,
1990.
Garbers J., Niemann M., Mochol M.: A Personalized Hotel Selection Engine. Demons and
Posters of the 3rd European Semantic Web Conference (ESWC 2006), Budva, 2006.
Lenzerini, M.: Data Integration: A Theoretical Perspective., PODS, 2002, 233–246.
Loke, S. W.: Declarative programming of integrated peer-to-peer and Web based systems: the
case of Prolog., Journal of Systems and Software, 79(4), 2006, 523–536.
Loke, S. W.: Representing and Reasoning with Situations for Context-Aware Pervasive
Computing: a Logic Programming Perspective. School of Computer Science and Software
Engineering, Monash University, Australia, 2004.
OpenTravel Alliance, www.opentravel.org/OTA/2003/05.
Pankowski, T., Cybulka, J., Meissner, A.: XML Schema Mappings in the Presence of Key
Constraints and Value Dependencies, ICDT 2007 Workshop on Emerging Research
Opportunities in Web Data Management, EROW'07, 2007, 1–15.
Rahm, E., Bernstein, P. A.: A survey of approaches to automatic schema matching, The VLDB
Journal, 10(4), 2001, 334–350.
Schorlemmer M., Kalfoglou Y.: Progressive ontology alignment for meaning coordination:
An information-theoretic foundation. 4th Int. Join Conf. on Autonomous Agents and Multiagent
Systems, 2005.
Tolksdorf R., Nixon L., Liebsch F., Nguyen D. M., Paslaru Bontas E.: Semantic Web Spaces.
Technical report B-04-11, Freie Universitat Berlin, 2004.
Wrightson A.: Semantics of Well Formed XML as a Human and Machine Readable Language.
Why is some XML so difficult to read? Extreme Markup Languages, Montreal 2005.
w
1.
2.
90
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2007

Podobne dokumenty