Sieć semantyczna (ang. Semantic Web)

W dzisiejszych czasach Internet można uznać za uniwersalną bazę dla wymiany i publikowania ogromnego zbioru danych w różnych formatach (głównie tekstowych, plików video i obrazów). Jednak w niedalekiej przyszłości można oczekiwać przyjęcia przez Internet roli aktywnego doradcy, gdzie zbiór tzw. inteligentnych agentów (botów) będzie oferować usługi w sposób zautomatyzowany, tj. bez aktywnego udziału człowieka. Sieć semantyczna opiera się na koncepcji Internetu Rzeczy (ang. Internet of Things). Urządzenie w tym wypadku, w specjalnej warstwie programistycznej, komunikuje się ze sobą dla przetwarzania opisów semantycznych w procesie samodzielnego wykonywania zadań, które są zlecane przez ludzi (użytkowników Internetu).

W wymiarze sieci semantycznej (określanej często jako WEB 3.0) inteligentni agenci (boty) mogą komunikować się ze sobą przez Internet bez interwencji człowieka. Nie chodzi tu tylko o automatyczne wyszukanie i wybór najlepszej usługi (np. wszystkie opcje biletu lotniczy na daną trasę w określonym terminie). Chodzi tu również o negocjowanie warunków korzystania z niej (np. warunków zakupu w zależności od standardu i lokalizacji miejsca w samolocie) z uwzględnieniem indywidulanych oczekiwań danego internauty.

Przykładowo, użytkownik Internetu może zlecić żądanie: „znajdź najtańsze bilety lotnicze 25 września między Warszawą a Pekinem z maksymalnie jednym transferem (nie dłuższym niż 3h). Równocześnie akceptuje płatności kartą kredytową Master Card, przy czym wylot z Warszawy nie może być wcześniej niż 13.00, z miejscem przy oknie i posiłkami wegetariańskimi”. Dzisiaj człowiek wykonuje te zadania samodzielnie – korzysta z wyszukiwarek i serwisów, po czym sprawdza, czy dana usługa jest zgodna z jego oczekiwaniami. W wypadku sieci semantycznej inteligentny agent automatycznie wykona to zapytanie i zrealizuje transakcję po akceptacji, bazując na wszystkich dostępnych zasobach internetowych.

Mimo że funkcjonalność Internetu niweluje znaczenie miejsca i czasu, ma też sporo niedogodności. Przykładowo, po odnalezieniu konkretnej usługi (np. biletu lotniczego) internauta musi przejść do strony internetowej oferującej tę usługę, wypełnić formularz i kliknąć przyciski, aby zakupić usługę (tzw. język obiektowy). Może on ewentualnie wysłać zapytanie http bezpośrednio do adresu URL usługi z odpowiednimi parametrami (tzw. język komputerowy). Jednak w obu tych przypadkach człowiek musi zrozumieć, jakie dane są niezbędne, aby można było wykonać tę usługę.

Sieć semantyczna o tyle ułatwia cały proces, że łączy wspomniane języki obiektowe i komputerowe w jeden system komunikacji. Semantyczny znacznik usług sieci Web zapewnia łatwy do interpretacji dla komputerów interfejs API, który służy do wykonywania usług. Znaczniki informują bota, jakie dane wejściowe są potrzebne, jakie informacje zostaną zwrócone i jak automatycznie połączyć się z daną usługą. Wszystko dzieje się automatycznie. Dlatego też w sieci semantycznej internauta może zlecić polecanie: „Dokonaj wszystkich uzgodnień niezbędnych dla organizacji podróży na konferencję w Tokio przy budżecie określonym na xx PLN". Obecnie, jeśli niektóre zadania wymagają kompozycji usług internetowych, które muszą współpracować, użytkownik musi wybrać usługi sieci Web, ręcznie określić kompozycję, upewnić się, że oprogramowanie dostarcza odpowiednich danych wejściowych w punktach wyboru (na przykład wybierając lot spośród kilku opcji).

Dzięki wykorzystaniu znaczników semantycznych usługi internetowe zawierają potrzebne dane do wybierania, komponowania i aktywowania usług na poziomie ich kodowania w serwisach internetowych. W tym celu wykorzystuje się specjalne oprogramowanie. Komponowanie usług i współpracę zapewniają automatyczne boty, łącznie z procesem zakupu lub zmiany dotychczasowego oferenta (np. banku, ubezpieczyciela, operatora komórkowego). Odbywa się to bez interwencji człowieka.

Świadomość kontekstu zadania w systemach informatycznych jest podstawowym narzędziem sieci semantycznej. Dzięki niej oprogramowanie może być w pełni dostosowane do potrzeb i preferencji człowieka. W tym celu w funkcjonowaniu semantycznej sieci internetowej można wyróżnić następujące czynności:

  • indeksowanie (ang. crawling),
  • odkrywanie (ang. discovery),
  • dopasowanie (ang. matchmaking),
  • rankingowanie (ang. ranking),
  • koordynacja (ang. orchestration),
  • mediacja (ang. mediation),
  • Przenoszenie (ang. lifting).

Indeksowanie jest czynnością, która służy przeglądaniu zawartości sieci internetowej w celu zlokalizowania i skatalogowania istniejących usług związanych z zadanym zapytaniem. Działanie to jest zasadniczo identyczne z każdym innym działaniem polegającym na przeszukiwaniu sieci www, z tą różnicą, że poszukiwane informacje w ramach sieci semantycznej nie są stronami internetowymi, ale raczej plikami WSDL (tj. Web Services Description Language) lub nowszymi stronami HTML, opisującymi interfejs komunikacyjny WebAPI.

Odkrywanie polega natomiast na rozpoznaniu usług, które są w stanie spełnić określone wymagania użytkownika Internetu. Czynność ta obejmuje definiowanie potrzeb internauty, analizowanie części składowych, które mogą być wykorzystywane do określania usług w ramach sieci, a następnie identyfikowanie cech, które pomagają znaleźć najlepszą usługę.

Dopasowanie jest czynnością, które ma za cel ulepszać dany zbiór usług sieciowych, ze względu na pożądane cechy usługi biznesowej. Czynności dopasowywania w sieci internetowej oznacza kroki na rzecz sformalizowania i oceny funkcjonalności usług sieciowych w sposób, aby mogły wspierać rutynowe dopasowywanie za pomocą mechanizmów sprawdzających. Ogólnie rzecz biorąc, stopień funkcjonalności usługi sieciowej jest określany w kategoriach cech danych wejściowych, wyjściowych, warunków wstępnych i spójność efektu końcowego. Rezultatem jest wyselekcjonowany zestaw usług o różnym stopniu dopasowania do żądania, z których ostatecznie automatyczny agent wybiera to najlepsze.

Rankingowanie to czynność oceny zgodności zestawu usług sieciowych uzyskanych z procesu dopasowywania w relacji do zestawu preferencji internauty. Preferencje te są zwykle podawane na początku procesu i są określone w kategoriach niefunkcjonalnych właściwości usług sieci sieciowych, np. cena, czas, jakość usług. W ten sposób można wykorzystać usługi sieciowe, które są w stanie zapewnić wymaganą funkcjonalność w oparciu o podane kryteria.

Selekcja to czynność polegająca na uzyskaniu listy odpowiednich usług sieciowych uszeregowanych według stopnia ważności do realizacji zadania. Zadanie to jest wykonywane automatycznie przez boty na podstawie wcześniejszych kryteriów rankingu. Ponieważ w większości przypadków mogą występować niejednorodności danych, większość systemów wdrażających automatyczny wybór zapewnia również urządzenia do mediacji danych.

Koordynacja jest czynnością łączenia usług sieciowych w większy system w celu osiągnięcia rozwiązania bardziej złożonego zadania. Czynność jest uruchamiana w sieci semantycznej, gdy system nie może znaleźć usługi sieci sieciowej, która spełnia wszystkie wymagania internauty. Wynikiem koordynacji jest współpraca usług sieciowych (na zasadach określonych przez warunki początkowe) oraz parametrów usług sieciowych.

Mediacja jest czynnością w sieci semantycznej, w której kluczowe znaczenie ma ogniowo pośrednie tzw. mediator, którego zadaniem jest rozwiązać problem niejednorodności znaczenia poszczególnych cech żądania wśród usług sieciowych (np. „zamek" ma niejednoznaczne znaczenie semantyczne, tj. jako element drzwi lub jako budowla). Różnorodność w usługach sieciowych może mieć wpływ na trzy główne aspekty:

  • zastosowaną terminologię,
  • reprezentację danych,
  • protokoły na poziomie aplikacji.

Kwestie dotyczące terminologii i reprezentacji danych są powszechnie nazywane mediacją danych. Pośrednictwo danych ma na celu rozwiązywanie niedopasowań między danymi obsługiwanymi przez usługi sieciowe. Odwrotnie, mediacja protokołu ma na celu osiągnięcie udanej interakcji między dwoma procesami przetwarzania danych poprzez zapewnienie, że wymiana komunikatów między obydwoma procesami przebiega zgodnie z oczekiwaniami.

Przenoszenie, jako usługa odnosi się do przekształcenia informacji z jej reprezentacji na poziomie używanym przez usługę sieciową (zazwyczaj XML) do jej semantycznego odpowiednika rozumianego przez człowieka.

Przykład:

Eliza lubi telewizyjne programy o tematyce naukowej i oczekuje, aby jej domowy serwer automatycznie sprawdzał dostępność nowych programów poświęconych medycynie każdego dnia. W tym celu serwer ma łączyć się ze stronami największych sieci telewizyjnych o zasięgu światowym (np. Discovery, BBC) lub dostawcami zewnętrznych mediów internetowych (np. YouTube, Google), aby je ewentualnie kupić (ale wyłącznie do kwoty 18 zł dziennie), i pobrać odcinki w celu oglądania, kiedy ma na to czas. Eliza oczekuje również, że w sytuacji, gdy pobieranie nie jest możliwe, ponieważ dostawca zezwala tylko na transmisję strumieniową lub miejsce na dysku jest ograniczone, tylko minimalna informacja o programie będzie pobrana (np. tytuł, data emisji etc.). W przypadku każdego pobranego programu telewizyjnego, jeśli język jest inny niż polski, napisy do tego odcinka powinny zostać pobrane i automatycznie odtwarzane. Eliza chce, aby jego odtwarzacz multimedialny wyświetlał listę dostępnych nowych programów telewizyjnych z automatyczną kategoryzacją zależną od historii oglądania. W związku z przyjazdami starszych rodziców w weekendy, Eliza preferuje, aby w tych dniach napisy były wyświetlane w dużym rozmiarze czcionki. Ponadto, temperatura, żaluzje i sztuczne oświetlenie w pokoju telewizyjnym Elizy powinny być automatycznie regulowane w celu zagwarantowania najlepszych warunków oświetleniowych do oglądania telewizji.

Bibliografia:

  1. Furno, Angelo, and Eugenio Zimeo. "Context-aware composition of semantic web services." Mobile Networks and Applications 19.2 (2014), s. 235-248.
  2. McIlraith, Sheila A., Tran Cao Son, and Honglei Zeng. "Semantic web services." IEEE intelligent systems 16.2 (2001), s. 46-53.
  3. Nandigam, Jagadeesh, Venkat N. Gudivada, and Mrunalini Kalavala. "Semantic web services." Journal of Computing Sciences in Colleges 21.1 (2005), s. 50-63.
  4. Furno, Angelo, and Eugenio Zimeo. "Context-aware composition of semantic web services." Mobile Networks and Applications 19.2 (2014), s. 235-248.
  5. McIlraith, Sheila A., Tran Cao Son, and Honglei Zeng. "Semantic web services." IEEE intelligent systems 16.2 (2001), s. 46-53.
  6. Nandigam, Jagadeesh, Venkat N. Gudivada, and Mrunalini Kalavala. "Semantic web services." Journal of Computing Sciences in Colleges 21.1 (2005), s. 50-63.
  7. Pedrinaci, Carlos, John Domingue, and Amit P. Sheth. "Semantic web services." Handbook of semantic web technologies. Springer, Berlin, Heidelberg, 2011, s. 977-1035.
  8. Tosi, Davide, and Sandro Morasca. "Supporting the semi-automatic semantic annotation of web services: A systematic literature review." Information and Software Technology 61 (2015), s. 16-32.
Mało? Czytaj kolejny wpis...

Przeczytaj też