A2.XVII AD 2009 Usluga wyszukiwania semantycznego
Transkrypt
A2.XVII AD 2009 Usluga wyszukiwania semantycznego
Usługa wyszukiwania semantycznego zastosowana do integracji systemów na polu walki mgr Paweł Szklarz * mgr inŜ. Dariusz Nogalski * dr inŜ. Anna Wróblewska * * ABG S.A. Al. Jerozolimskie 123A 02-017 Warszawa Podstawowym wyzwaniem wynikającym z nowoczesnych technologii telekomunikacji jest obsługa coraz większej ilości informacji pochodzących z róŜnych źródeł danych. Techniki semantyczne przede wszystkim skupione są na problemie ujednolicenia tej wiedzy. Liczba systemów współdziałających w nowoczesnym polu walki powoduje, Ŝe bezpośrednia integracja prowadzi do usztywnienia tych systemów i uniemoŜliwia ich rozwój. Usługa wyszukiwania semantycznego (UWS) wchodzi w interakcji ze wszystkimi systemami jako pośrednik realizujący funkcjonalności wysoko-poziomowe za pomocą zarejestrowanych usług. Kluczowym elementem integracji z UWS jest fakt, Ŝe nie wymaga ona Ŝadnych zmian w istniejących systemach, a tylko tworzenia formalnego opisu moŜliwości dostępnych usług. Opis moŜliwości usług jest odpowiedzią na pytanie ‘co ta usługa potrafi robić i jak ją wykorzystać/uruchomić, Ŝeby osiągnąć taki wynik?’. Opis ten jest tworzony za pomocą technik semantycznych, co ułatwia komunikację człowiek-maszyna poprzez formalny zapis wiedzy (zrozumiały dla maszyny) w postaci zbliŜonej do języka naturalnego (zrozumiały dla człowieka). Posiadając informację o moŜliwościach usług, UWS na podstawie zapytań dostarczonych przez klienta/uŜytkownika określa swój problem lub cel i szuka rozwiązania za pomocą wywołania usług. Formalne opisy semantyczne są wykorzystane wewnątrz UWS i na pograniczu interakcji z klientem i dostawcami usług, to jest w opisie usług i w tłumaczeniu zapytań na formalny opis semantycznych celów. Siła integracji poprzez UWS zaleŜy od jakości opisów semantycznych usług i zapytań uŜytkownika. Stąd konieczny jest rozwój narzędzi pozwalających na tworzenie i sprawdzanie tych formalnych opisów bez ingerencji w złoŜoną logikę technik semantycznych i wewnętrzną budowę UWS. Na podstawie wniosków z testów integracji za pomocą UWS powstaną podstawy do planowania i realizacji takich narzędzi. 1 Przeznaczenie usługi wyszukiwania semantycznego Celem usługi semantycznego wyszukiwania (UWS) usług i informacji jest integracja dostawców usług oraz ich odbiorców w środowisku federacji heterogenicznych systemów. Wykorzystuje ona technologie semantyczne w celu integracji usług w architekturze zorientowanej usługowo (SOA, ang. Service Oriented Architecture). Łączy ona technologie usług i standardy semantyczne. UWS jest komponentem zintegrowanym z bazą wiedzy i rejestrem usług. Będzie ona zaimplementowana w demonstratorze SOA, ponadto moŜe być zastosowana przez inne usługi i aplikacje. Podstawową funkcjonalnością UWS jest tłumaczenie zapytań uŜytkownika do reprezentacji semantycznej (OWL), bazując na nich zostają wyszukane semantycznie usługi zarejestrowane w rejestrze usług (RU) dostarczające niezbędnych informacji odpowiadające na podane zapytania. Następnie zebrane informacje są agregowane i zwracane do uŜytkownika. Usługa wyszukiwania semantycznego jest usługą bazową w projekcie Integracja Systemów Dowodzenia (ISD). UWS wykorzystana w demonstratorze SOA będzie wspierała wykonywanie szerokiej gamy eksperymentów badawczych na potrzeby poszczególnych uczestników konsorcjum. Zakłada się wykorzystanie UWS zaimplementowanej w demonstratorze w eksperymentach międzynarodowych (środowisko testowe NC3A, MNE-6, itd..). SOA 2 Integracja semantyczna Nowoczesne technologie semantyczne stanowią szczególną realizację rachunku predykatów pierwszego rzędu, często zwanym logiką pierwszego rzędu. Wobec moŜliwości teoretycznych wynikających z programowaniem za pomocą ścisłego modelu logicznego naukowcy oczekiwali, Ŝe zastosowanie rachunku predykatów pierwszego rzędu wprowadzi istotnych zmian w sposobie realizacji algorytmów i systemów informatycznych. JednakŜe bezpośrednie zastosowanie tego rachunku wymaga dokładnego zrozumienia teorii logicznej będącej u jego podstaw, a tym samym bardzo duŜego nakładu wyspecjalizowanej pracy. Podjęcie wyznawania stosowania logiki pierwszego rzędu okazało się więc zbyt wymagającym i z punktu widzenia twórców systemów nieopłacalne. Korzyści stosowania takiej teorii były jednak na tyle wyraźne, Ŝe w ostatnim czasie pojawiło się duŜo implementacji „stycznej inteligencji” wykorzystujących mechanizmów podobnych do wnioskowania logicznego, uproszczających tą skomplikowaną teorię. 2.1 Problem skali Okazuję się, Ŝe problem wdroŜenia czystego rachunku predykatów pierwszego rzędu z całą bogatą logiką nie był w samej teorii, a tylko w wyborze odpowiedniej skali. W erze Internetu, wszystkie implementacje „ad hoc” omijające podstawy logiczne na rzecz oczywistych bezpośrednich rozwiązań zbyt mocno upraszczają wiedzę, a dalszy ich rozwój i utrzymanie stają się praktycznie niemoŜliwe. śeby zrozumieć problem skali, zwróćmy uwagę, iŜ podczas realizacji systemów informatycznych, zrozumianych nie tylko jako oprogramowanie, ale i równieŜ otoczka ludzka i sprzętowa współdziałająca ze sobą, koniecznie jest potwierdzenie zgodności działania systemu z wymaganiami i ograniczeniami wynikające ze specyfikacji. Kiedy mamy do czynienia z systemem działające nawet w obrębie sieci lokalnej kilku komputerów, sprawdzenie działanie systemu i znalezienia błędów są moŜliwe poprzez odpowiednią organizacją pracy i wytyczenie procedur zarówno implementacji jak i wdroŜenia. Dodatkowo, waŜnym elementem tego sprawdzenia jest moŜliwość napisania dokumentacji będącą specyfikacją działania systemu. Scenariusz przed chwilą przedstawionym przestaje być efektywnym i prowadzi do nieścisłości z kilku powodów. Po pierwsze, dokumentacja będącą specyfikacją napisana jest w języku nie formalnym, co prowadzi do sprzecznych interpretacji. Rozwiązaniem powszechnie stosowanym jest uzgadnianie nieścisłości zgodnie z ich pojawieniem się w celu prowadzenia do jednoznacznego określenia celów przedsięwzięcia. Niestety wobec braku ścisłego aparatu logiki i odpowiednich narzędzi weryfikujących wynik takich ustaleń, wynik końcowy jest specyfikacją niemoŜliwą do implementacji z prostego powodu braku jakichkolwiek interpretacji. Drugim powodem powstania nieścisłości jest brak moŜliwości sprawdzenia zgodności systemu ze specyfikacją. Zwróćmy uwagę, Ŝe nie mamy na myśli realizacji zestawu testów i uruchomienia systemów pod odpowiednim rygorem monitorowania w celu znalezienia błędów. Takie testy pozwalają jedynie stwierdzić, Ŝe system działa, nie dają jednak jednoznacznego stwierdzenia poprawności zgodnie z odpowiednim modelem i logiką. 2.2 Ścisłe rozwiązania. Techniki semantyczne stosowane w Usłudze wyszukiwania semantycznego (UWS) zostały przygotowane w celu tworzenia systemów szeroko zrozumianych zgodnie ze ścisłym i jednoznacznym modelem logicznym. Pozwala nam to zrealizować wcześniej wspomnianego sprawdzenia zgodności działanie systemu wykorzystujących UWS ze specyfikacją w kaŜdym kroku jego tworzenia. Zarówno powiem działanie systemu jak i jego specyfikacja są napisane w formalnym języku logiki opisowej, co pozwala tworzyć narzędzi ogarniających całość i sprawdzających spójność i poprawność całego systemu i sposób jednoznaczny. MoŜna stwierdzić, Ŝe w kaŜdym kroku tworzenia systemu mamy pełen dowód poprawności albo co waŜniejsze, powody nieścisłości tworzonych implementacji/specyfikacji i brak moŜliwości uruchomienia bez poprawienia błędów realizacji. 2.2.1 Realizacja integracji. Integracja systemów poprzez usługi wyszukiwania semantycznego odbywa się poprzez opisanie w języku formalnym ontologii moŜliwości, zaleŜności, załoŜeń, ograniczeń i interakcji usług udostępnionych przez kaŜdy system. Na podstawie takich opisów UWS stwierdza poprawność kaŜdej usługi z osobna i zarówno logiczną spójność całego środowiska systemów jako jedna całość. Wspomniany opis zawiera pełną informację potrzebną do wykorzystania usługi zgodnie z jej przeznaczeniem. Pozwala to równieŜ na znalezienia nowych moŜliwości wynikających ze złoŜenia kilku niezaleŜnych usług do realizacji nowych funkcjonalności. 2.3 Semantyczny opis usługi:OWL-S Opis semantyczny usługi wyraŜony jest w języku logiki opisowej zgodnie z formalnymi wymaganiami zawartymi w ontologii OWL-S (http://www.w3.org/Submission/OWL-S/). Ontologia OWL-S składa się z trzech głównych klas (rys. [Rysunek 1]): 1) Profil usługi (ang. Service Profile) Profil opisuje „co usługa robi”. Jest przeznaczony do wykorzystania podczas procesu automatycznego wykrywania usług. 2) Model usługi (ang. Service Model) Model mówi “jak usługa działa”. Opisuje teŜ co jest wynikiem uruchomienia usługi i jaki jest tego skutek. Jest wykorzystywany podczas kompozycji usług podstawowych do usług złoŜonych. 3) Wiązanie usługi (ang. Service Grounding) Wiązanie opisuje sposób uruchomienia usługi. Definiuje przejście z wywołania usługi semantycznej do wywołania konkretnej usługi webowej. Definiuje teŜ mapowanie / transformację typów danych z usługi semantycznej do usługi webowej i na odwrót. Rysunek 1 Ontologia usługi w OWL-S [OWL-S 1.1] Profil usługi (rys. [Rysunek 2]) opisuje organizację dostawcy usługi, funkcjonalność usługi oraz zbiór własności charakterystycznych (ang. features). Opis dostawcy zawiera informacje kontaktowe. Opis funkcjonalny jest wyraŜony poprzez tzw. IOPEs 1 opisujące parametry wejściowe, wyjściowe, zewnętrze warunki wymagane do uruchomienia usługi oraz oczekiwany efekt. Na przykład: usługa realizująca płatność moŜe przyjmować numer karty (parametr wejściowy), drukować potwierdzenie transakcji (parametr wyjściowy), przy czy karta kredytowa powinna być waŜna (warunek wejściowy), natomiast efektem działania usługi będzie aktualizacja salda na koncie (efekt). Własności dodatkowe zawierają takie informacje jak kategoria usługi w systemie UNSPSC2, parametry jakościowe (QoS), np. estymowany średni czas odpowiedzi. Rysunek 2 Profil usługi OWL-S [OWL-S 1.1 ]. 1 2 Ang. Input Output Preconditions Effect United Nations Standard Products and Services Code Model usługi (rys. [Rysunek 3]) opisuje w jaki sposób usługa działa. Podstawową encją w modelu jest Proces, jest on opisany za pomocą IOPEs, podobnie jak Profil. Proces moŜe być atomowy (ang. Atomic Process), prosty (ang. Simple Process) lub złoŜony (ang. Composite Process). Proces atomowy nie ma Ŝadnych podprocesów i jest wykonywany w pojedynczym kroku. Jest on powiązany z Wiązaniem, czyli uruchomieniem konkretnej usługi sieciowej. Proces prosty jest postrzegany jako proces jednokrokowy, nie jest powiązany z Wiązaniem lecz słuŜy do specyfikacji abstrakcji na potrzeba wnioskowania (np. uogólnianie procesów). Procesy złoŜone są dekomponowane na inne procesy atomowe, proste lub złoŜone za pomocą gramatyki z konstruktorami, takimi jak: Sequence, Split, Split+Join, Choice, Unordered, Condition, If-Then-Else, Iterate, Repeat-While, and Repeat-Until. Rysunek 3 Model usługi OWL-S [OWL-S 1.1] Wiązanie usługi (rys. [Rysunek 4]) opisuje, w jaki sposób uruchomić usługę. Definiuje mapowanie między opisem abstrakcyjnym/semantycznym a konkretnymi usługami sieciowymi. Rysunek 4 Wiązanie usługi OWL-S [OWL-S 1.1] OWL-S nie narzuca konkretnego standardu do jakiego usługi abstrakcyjne mają się mapować/wiązać. Usługi sieciowe i WSDL został wybrany z pragmatycznego podejścia, są one powszechne i opracowano kompletny zestaw specyfikacji, języków i narzędzi potrzebny do ich implementacji (WSDL, SOAP, XSD etc.). MoŜna zatem wykorzystać istniejącą infrastrukturę i zbudować na niej warstwę semantyki i skorzystać z jej dobrodziejstw (ekspresyjność języka OWL, wnioskowanie). 3 Logika działania UWS Pełne wykorzystanie informacji zawartej w opisach semantyczny usług jest moŜliwe poprzez podział przetwarzania zapytań uŜytkownika na kilka warstw logicznych danych. KaŜda warstwa komunikuje się tylko i wyłącznie z bezpośrednio sąsiadującą warstwą. Logika działania UWS zostanie opisana poprzez szczegółowy wykaz interakcji między warstwami. 3.1 Abstrakcyjne warstwy komunikacji UWS Przyjęty został podział na 5 warstw zgodnie z rysunkiem [Rysunek 5]. Rysunek 5 Abstrakcyjne warstwy komunikacji UWS. Zdefiniowanie rozgraniczenia między mi tymi warstwami wynika z określenia ślenia rodzaju danych wchodzących cych w skład poszczególnych warstw: 1) AK-GUI (Aplikacja klienta GUI) Zawiera listę komend dostępnych dostę dla uŜytkownika. UŜytkownik ytkownik aplikacji klienta ma dostęp do zestawu narzędzi dzi i operacji umoŜliwiających umo mu współpracę z UWS. Cały ten asortyment zostaje wydzielony do warstwy AK-GUI. AK Z punktu widzenia dzenia UWS, warstwa AK-GUI AK określa zbiór moŜliwych liwych komend i danych, które AK moŜee generować i wysyłać do następnej warstwy AK-Sesja. Sesja. MoŜliwe komendy w AK-GUI GUI to np. pobranie współrzędnych współrz dnych regionu zainteresowania AOI, wybranie jednostki na mapie, prośba o wyszczególnienie wyszczególnienie składu konwoju, sprawdzenie obszaru raŜenia jednostki artylerii. 2) AK-Sesja (Aplikacja klienta Sesja) Zawiera kryteria wyszukiwania (warunki logiczne) i stan wiedzy uŜytkownika. uŜytkownika. Z danych zawartych w tej warstwie wynika definicja zapytań zapyta uŜytkownika ownika jako klienta usługi UWS, będące ce podstawą podstaw do uruchomienia procesu wyszukiwania usług i informacji. 3) Cele Warstwa ta wydziela zbiór celów. Cel jest formalnym zapisem Ŝądania Ŝą informacji i kryteriów poprawności ci wyniku opisana w języku j formalnym ontologii.. 4) Procesy Warstwa procesów składa się, si Ŝee zbioru procesów zarejestrowanych w UWS. Proces jest odzwierciedleniem moŜliwo Ŝliwości zadeklarowanych ch w opisie semantycznym usługi i stanowi podstawą do uruchomienia poszczególnych kroków realizacji rozwiązania rozwiązania problemu. problemu 5) Usługi Poszczególne usługi zarejestrowane w rejestrze usług są widziane jako osobne byty w tej warstwie. Wykorzystana jest jednak tylko część cz opisu semantycznego, mianowicie opis techniczny (WSDL) i „Grounding” z ontologii OWL-S. OWL S. Informacja ta określa okre jednoznacznie dnoznacznie sposób wywołania usługi, czyli: jakie informacje i w jakiej postaci wysłać, wysła sposób połączenia czenia i oczekiwaną oczekiwan postać wyników. 3.2 Wywołanie UWS na poziomie abstrakcyjnych warstw Komunikacja między warstwami określa całościowo sposób interakcji końcowego uŜytkownika z usługami zarejestrowanymi w RU i opisanymi semantycznie. Na poziomie poszczególnych warstw interakcja jest dozwolona tylko z sąsiednimi warstwami. 3.2.1 AK-GUI – AK-Sesja UŜytkownik wykorzystuje AK-GUI do określenie kryteriów wyszukiwania informacji i usług na podstawie ontologii referencyjnej i zestawu narzędzi predefiniowanych w AK. Na tle tej interakcji odbywa się komunikacja z warstwą AK-Sesji, zapisująca te kryteria w stanie sesji w postaci instancji ontologii. Ta interakcja jest zaznaczona na rysunku [Rysunek 5] literą a. 3.2.2 AK-Sesja – Cele Na podstawie danych zawartych w stanie wiedzy uŜytkownika i uruchomieniu przez niego odpowiedniej komendy do AK-Sesji, realizowane jest przeszukiwanie zbioru dostępnych celów, tak aby znaleźć odpowiednio pasujący cel do zdefiniowanych kryteriów uŜytkownika. Po pomyślnym znalezieniu celu, zostaje on uruchomiony i wyniki w postaci instancji zostają zwracane do stanu wiedzy uŜytkownika. Ta interakcja jest zaznaczona na rysunku [Rysunek 5] literą b. 3.2.3 Cele – Procesy Po uruchomieniu celu, odbywa się poszukiwanie najbardziej adekwatnych procesów, których moŜliwości spełniają załoŜenia celu. Na pierwszym etapie prototypowym nie przewiduje się złoŜenie procesów w sposób automatyczny a tylko uruchomienie jednego procesu. Po uruchomieniu procesu wybranego na podstawie celu, oddaje on zbiór instancji wynikowych do wywołującego go celu. Ta interakcja jest zaznaczona na rysunku [Rysunek 5] literą c. 3.2.4 Wewnętrzne odwołania w warstwie procesów. Podczas uruchomienia procesu przewiduje się trzy moŜliwe wywołania na tym poziomie abstrakcji wskazane przez litery d,p,q na rysunku [Rysunek 5]: d) Wywołanie usługi. Patrz punkt dalej: komunikacja między procesem i usługą. p) Wywołanie celu. W ten sposób proces moŜe oddelegować część swojej pracy, określając dokładnie jaki jest oczekiwany wynik. Wywołanie celu odbywa się tak samo jak wywołanie od warstwy AK-Sesji. W tym przypadku, proces nie oczekuje rozwiązanie tego celu przez szczególny wybrany proces i jest przygotowany na brak kandydatów. q) Wywołanie procesu. Proces moŜe zostać napisany w postaci złoŜenia innych procesów. Wskazanie podprocesów odbywa się przez bezpośrednią referencję. 3.2.5 Procesy – Usługi Definicje procesów odwołują się do części opisów semantycznych usług określających sposób wywołania konkretnych metod usługi. Przygotowanie danych do przesyłania przyjmuje jako dane wejściowe instancje z wewnętrznego stanu procesu. Wyniki wywołania są równieŜ przetłumaczone na instancje zgodnie z opisem semantycznym usługi. 4 Wnioski i konkluzje Ścisły, jednoznaczny i bogaty model logiczny będący podstawą formalnych opisów usług wykorzystanych w usłudze wyszukiwania semantycznego zapewnia zgodność działania systemu z wymaganiami uŜytkowników. Wymagania te powinny być opisane równieŜ w sposób ścisły i jednoznaczny w tym samym języku logicznym. Dzięki takiemu podejściu, moŜliwości rozszerzania i integracji systemów nie są ograniczone przez skalę lub złoŜoność przedsięwzięcia. Podział logiczny problemu integracji na dokładnie określone warstwy z wyraźnie zdefiniowanym przeznaczeniem prowadzi do elastycznej oraz uporządkowanej realizacji wyznaczonych przez uŜytkownika celów z maksymalnym wykorzystaniem dostępnych zasobów widzianych jako usługi formalnie zdefiniowane poprzez opisy semantyczne. Stosowanie technik semantycznych stanie się w przyszłości koniecznością wobec korzyści i dogodności wynikających z formalnego opisu problemów i rozwiązań za pomocą ścisłej i ugruntowanej teorii logiki opisowej. 5 Literatura [MITRE 2004] MITRE Technical Report, Netcentric Semantic Linking, październik 2004, Mary K. Pulvermacher, Suzette Stoutenburg, Salim Semy [Gomez 2004] Ontological Engineering, 2004, Asuncion Gomez-Perez, Mariano Fernandez-Lopez, Oscar Corcho [OWL04] Specyfikacja OWL, http://www.w3.org/TR/2004/REC-owl-guide-20040210/ [RDF04] Specyfikacja RDF, http://www.w3.org/RDF [OWL-S1.1] Specyfikacja OWL-S v.1.1 http://www.w3.org/Submission/OWL-S/ Praca naukowa finansowana ze srodków na nauke w latach 2007-2010 jako projekt badawczy zamawiany.