Architektury Usług Internetowych. Wyszukiwanie usług w systemie BeesyCluster



Podobne dokumenty
Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych

Zaglądamy pod maskę: podstawy działania silnika wyszukiwawczego na przykładzie Lucene

Wprowadzenie do baz danych

Czytelnik w bibliotece cyfrowej

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Biblioteka Wirtualnej Nauki

Konspekt zajęć dotyczących kwerend

Funkcje standardowe. Filtrowanie

TECHNIKI INFORMACJI I KOMUNIKACJI. Semestr zimowy 2016/2017 I SSA I stopnia

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

Obsługa prawniczych baz danych

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Biblioteka Wirtualnej Nauki

Instrukcja użytkownika

Indeksowanie w bazach danych

dokumentacja Edytor Bazy Zmiennych Edytor Bazy Zmiennych Podręcznik użytkownika

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Wyszukiwanie dokumentów/informacji

SQL (ang. Structured Query Language)

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Multiwyszukiwarka EBSCO Discovery Service przewodnik

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

System Informatyczny CELAB. Terminy, alarmy

Inteligencja obliczeniowa

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Definiowanie filtrów IP

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

Sylabus Moduł 2: Przetwarzanie tekstów

Metody indeksowania dokumentów tekstowych

Bazy danych Access KWERENDY

Podstawowe zapytania SELECT (na jednej tabeli)

Multiwyszukiwarka EBSCO Discovery Service - przewodnik

Orzeczenia Trybunału Konstytucyjnego, Orzeczenia Sądu Najwyższego i Orzeczenia Sądów Administracyjnych

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009

Wydział Elektrotechniki, Informatyki i Telekomunikacji. Instytut Informatyki i Elektroniki. Instrukcja do zajęć laboratoryjnych

Instrukcja obsługi systemu elektronicznego katalogu przedmiotów (sylabusów)

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Nowe funkcje w programie SYMFONIA Handel Premium w wersji 2009.c

Spis treści. I. Czym jest Indeks Haseł 3 II. Wyszukiwanie hasła 4. 1) Alfabetyczna lista haseł 4 2) Wyszukiwarka haseł 4 3) Grupy haseł 6

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

ZAPOTRZEBOWANIE DO MAGAZYNU ZMM_WNMAG NA DRUKI ŚCISŁEGO ZARACHOWANIA (ZD) W REFERENCJI DO MM

INSTRUKCJA UŻYTKOWNIKA Definicje księgowe ISO 9001:2008 Dokument: Wydanie: Definicje księgowe

Multiwyszukiwarka EBSCO Discovery Service - przewodnik

Spis treści(aby przejść automatycznie do strony kliknij jej numer lub tytuł w spisie):

KATEGORIA OBSZAR WIEDZY

Autor: Joanna Karwowska

Kadry Optivum, Płace Optivum

Opis zmian wersji 5.5 programu KOLFK

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

Ewidencja Opłat za Korzystanie ze Środowiska

baton OR mars 282,000, ,000,000 baton OR mars 283,000,000 WYSZUKIWANIE BOOLOWSKIE

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS , Comarch DMS i Comarch DMS

Autor: Joanna Karwowska

Indeksowanie full text search w chmurze

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Relacyjne bazy danych. Podstawy SQL

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

1. Logowanie do systemu

Wyszukiwarka naukowa EBSCO Discovery Service - przewodnik

Ćwiczenia nr 2. Edycja tekstu (Microsoft Word)

The University of Michigan Digital Library Production Service Collection

UONET+ moduł Dziennik. Dokumentowanie lekcji w systemie UONET+

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

JLR EPC. Szybki start. Spis treści. Polish Version 2.0. Przewodnik krok po kroku Przewodnik po ekranach

Systemy GIS Tworzenie zapytań w bazach danych

Matematyczne Podstawy Informatyki

e-wsparcie Barbara Muszko Aktualizacja Twojej witryny internetowej tak prosta, jak obsługa Worda

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Instrukcja obsługi aplikacji Nieodpłatna Pomoc Prawna

5.5. Wybieranie informacji z bazy

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Instrukcja dotycząca konwersji dokumentów LaTeX do plików w formacie RTF

Wyszukiwanie zaawansowane

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Czytelnik w bibliotece cyfrowej

CENTRALNA BAZA DANYCH AKT SĄDOWYCH CEL POWSTANIA I ZASADY FUNKCJONOWANIA

UONET+ moduł Dziennik. Dokumentowanie lekcji w systemie UONET+

Instrukcja użytkownika NAUCZYCIELA AKADEMICKIEGO SYSTEMU ARCHIWIZACJI PRAC

Instrukcja do programu DoDPD 1.0

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Orzeczenia Sądów Administracyjnych oraz System Informacji Podatkowej

Viatoll Calc v1.3. Viatoll Calc. Instrukcja użytkownika. Strona 1

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Wprowadzenie do baz danych

Zmiany funkcjonalne i lista obsłużonych zgłoszeń Comarch DMS

System Obsługi Zgłoszeń Instrukcja Użytkownika

Przewodnik. DynaMed Plus.

Logowanie do systemu. Rys. 1 Strona logowania

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wykład III. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

I. Program II. Opis głównych funkcji programu... 19

Kwerendy (zapytania) wybierające

Multiwyszukiwarka EBSCO Discovery Service - przewodnik

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

Relacyjne bazy danych. Podstawy SQL

Transkrypt:

Architektury Usług Internetowych laboratorium nr 6: Wyszukiwanie usług w systemie BeesyCluster Jakub Kuryłowicz, dr inż. Paweł Czarnul jakub.kurylowicz@eti.pg.gda.pl, pczarnul@eti.pg.gda.pl Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika Gdańska, 2011 1 Wprowadzenie Celem laboratorium jest zapoznanie się z mechanizmem wyszukiwania usług w systemie BeesyCluster (http://beesycluster2.eti.pg.gda.pl:10040/ek/main) oraz oceną jego jakości. Usługami podlegającymi wyszukiwaniu są aplikacje zawarte się w pakietach Linuksowych opublikowanych w systemie BeesyCluster [1], fizycznie znajdujące się na klastrach oraz same pakiety. Mechanizm wyszukiwania usług, ze względu na charakter ich opisu, wykorzystuje techniki wyszukiwania pełnotekstowego [2] zrealizowane w bibliotece Apache Lucene [3], która została wykorzystana w bieżącej wersji systemu. 2 Struktura opisu usługi Ze względu na wykorzystanie biblioteki Apache Lucene w mechanizmie wyszukiwania, opisy usług przechowywane są w odwróconym indeksie, porównywanie zapytania z opisami usług opiera się natomiast na modelu VSM [4]. Indeks złożony jest z dokumentów. Każdy z dokumentów odpowiada pojedynczej usłudze i składa się z następujących pól: AC package(pname) - nazwa pakietu; AC package(pgroup) - grupa pakietu; AC package(psummary) - krótki opis pakietu; AC package(pdescription) - opis pakietu; AC executable(ename) - nazwa aplikacji dostępnej jako usługa w systemie; AC executable(esummary) - krótki opis usługi; AC executable(edescription) - opis usługi przedstawiający jej funkcjonalność; 1

Rysunek 1: Formularz wyszukiwania usług. 3 Określenie kryteriów wyszukiwania Użytkownik określa parametry wyszukiwania korzystając z panelu przedstawionego na Rys. 1. Dostęp do panelu możliwy jest z pozycji Find Service z menu po lewej stronie. Jedynym wymaganym elementem jest zapytanie tekstowe. W panelu wyszukiwania, użytkownik ma możliwość wskazania: uwzględnienia kolejności słów w przypadku zapytania frazowego (w sąsiedztwie) ( consider word order ); domyślnego operatora dla termów występujących w zapytaniu ( query s term operator ); rozwinięcia termów z zapytania przez synonimy ze słownika Wordnet ( query expansion ) wraz z określeniem wag dla użytych synonimów ( boost ); uwzględnienia określonych pól opisu usługi ( include * ), w obrębie których ma odbyć się wyszukiwanie wraz z nadaniem wagi (wzmocnienia) dla określonego pola ( boost * ); wyszukiwania jedynie w obrębie usług dostępnych tj. takich, których aplikacje są dostępne (odpowiadające im pakiety są zainstalowane) ( only over installed packages ); 2

wyszukiwania jedynie wśród pakietów zawierających aplikacje, na bazie których powstały usługi ( only over packages with executables ); grupy usług, w obrębie której ma odbyć się wyszukiwanie ( in group ); liczby usług zwróconych w ramach wyszukiwania ( max results ). Użytkownik w wyniku wyszukiwania otrzymuje listę znalezionych usług, z poziomu której, możliwe jest zgłoszenie komentarza poprzez wybranie send feedback. Na zwróconej liście usług w kolumnie is proper, użytkownik określa również, które ze znalezionych usług są odpowiednie dla danego zapytania. Zaznaczone przez użytkownika pozycje zgłaszane są wraz z komentarzem. 4 Język zapytań 4.1 Termy, pola i znaki specjalne Wprowadzone zapytanie jest rozbijane na termy i operatory. Termem może być pojedyczne słowo lub fraza. Frazą jest grupa słów otoczonych cudzysłowem. W zapytaniu mogą wystąpić operatory logiczne, łączące termy w wyrażenia logiczne, co umożliwia tworzenie złożonych zapytań. W przypadku braku operatorów w zapytaniu, domyślnie wykorzystywany jest operator odpowiadający sumie zbiorów. Każda z usług składa się z pól, dzięki czemu podczas formułowania zapytania można wskazać, które z pól zostaną uwzględnione podczas wyszukiwania. Dla przykładu, w wyniku wywołania zapytania: BC PKG SUMMARY:"image" BC EXEC SUMMARY:"convert" znalezione zostaną usługi zawierające term image w polu BC PKG SUMMARY lub term convert w polu BC EXEC SUMMARY. W formułowanym zapytaniu wykorzystywane są znaki, które domyślnie są zastrzeżone: +,, &&,,!, (, ), {, }, [, ], ˆ,,,,?, :, \. Aby użyć znaku znajdującego się na liście odnoszącego się do opisu usługi, należy poprzedzić go znakiem \. 4.2 Wyszukiwanie z użyciem metaznaków Możliwe jest tworzenie zapytań z wykorzystaniem metaznaków jednokrotnych i wielokrotnych dla pojedynczych termów. Metaznakowi jednokrotnemu odpowiada symbol?, użycie go oznacza wyszukiwanie termów pasujących do wzorca, po zastąpieniu metaznaku jakimkolwiek znakiem. Dla przykładu, w celu znalezienia słowa text lub test należy wprowadzić: te?t Metaznakowi wielokrotnemu odpowiada symbol, użycie go oznacza wyszukiwanie termów pasujących do wzorca, po zastąpieniu metaznaku zerem lub większą liczbą wystąpień znaków w miejscu symbolu. Metaznaku domyślnie można używać na jakiejkolwiek pozycji w termie, oprócz pierwszej, co domyślnie jest niedozwolone ze względów wydajnościowych. W celu znalezienia słów test, tests lub testing należy użyć: test* 3

4.3 Wyszukiwanie rozmyte Terminem wyszukiwanie rozmyte zwykło się określać wyszukiwanie oparte na wykorzystaniu metaznaków w zapytaniu. W tym przypadku, terminem tym określa się wyszukiwanie oparte na podobieństwie w pisowni termów, bazujące na metryce odległości Levenshtein a (odległości edycyjnej). Metryka ta, oznacza miarę odmienności napisów, zdefiniowaną jako najmniejszą liczbę działań prostych (wstawienie, usunięcie lub zamianę) wymaganą do zmiany jednego napisu w drugi. Stosuje się ją dla termów będących pojedynczymi słowami dopisując znak na końcu termu. Zapewnienie dodatkowego parametru w postaci liczby zmiennoprzecinkowej z przedziału 0, 1 po znaku, pozwala określić spodziewany stopień podobieństwa. Wartości bliskie liczbie 1.0 implikują dopasowanie termów różniących się w niewielkim stopniu (w przypadku braku parametru, domyślną wartością jest 0.5). Dla przykładu, po wprowadzeniu: convert 0.7 zwrócone zostaną usługi zawierające w opisie słowa: convert, converter, conversion, converting lub ConTeXt. 4.4 Wyszukiwanie w sąsiedztwie Możliwe jest wyszukiwanie słów w określonej odległości od siebie, poprzez dopisanie znaku na końcu frazy, bezpośrednio po nim podając liczbę całkowitą, określającą maksymalną dopuszczalną odległość pomiędzy słowami. Dla przykładu, chcąc znaleźć usługi, w których opisie występują słowa convert oraz image w odległości nie większej niż 5 słów, należy ułożyć następujące zapytanie: "convert image" 5 4.5 Wyszukiwanie w zakresie Możliwe jest wyszukiwanie w obrębie usług, w których termy z poszczególnych pól znajdują się w wyznaczonym przedziale, określonym porządkiem leksykograficznym. Wyszukiwanie może odbywać się z włączeniem lub wyłączeniem dolnej oraz górnej granicy przedziału. Dla przykładu, w wyniku wywołania zapytania: BC EXEC SUMMARY:[convert TO image] zwrócone zostaną usługi, które w polu o nazwie BC EXEC SUMMARY zawierają termy, z wartościami między convert oraz image. Podobne zapytanie bez uwzględnienia termów występujących w zapytaniu, należy sformułować następująco: BC EXEC SUMMARY:{convert TO image} 4.6 Wzmacnianie termów Możliwe jest nadawanie wag poszczególnym termom poprzez użycie znaku ˆ oraz współczynnika wzmocnienia. Im większy współczynnik, tym ważniejsze będą usługi zawierające wskazany term. Dla przykładu, wyszukując: convert between images można nadać większą wartość dla termu images poprzez: 4

convert between images^5 Wzmocnienia można równie dobrze używać w przypadku fraz: convert "between images"^5 4.7 Wykorzystanie operatorów logicznych Dostępnymi operatorami do łączenia termów w wyrażenia są: OR, AND, +, NOT oraz -. operator OR jest domyślnym operatorem wiążącym termy, co oznacza, że jest wykorzystywany w przypadku, gdy pomiędzy dwoma termami nie występuje żaden inny operator logiczny. Wyszukiwane są usługi, w których występuje przynajmniej jeden z termów. W teorii zbiorów, operator jest odpowiednikiem sumy zbiorów. Alternatywnie wykorzystany może zostać symbol zamiast słowa OR. Dla przykładu w celu znalezienia usług zawierających słowo convert lub frazę between images, należy użyć: convert "between images" lub convert OR "between images" operator AND umożliwia wyszukiwanie usług, w których muszą wystąpić termu powiązane w wyrażeniu. W teorii zbiorów, jest odpowiednikiem przecięcia zbiorów. Alternatywnie, zamiast słowa AND można wykorzystać symbol &&. Dla przykładu, w celu znalezienia usług, w których występują słowa convert i image, należy użyć: "convert" AND "image" operator + określa konieczność wystąpienia termu w opisie usługi. Dla przykładu, w celu znalezienia usług, w których opisie występuje słowo convert oraz może wystąpić słowo image, należy użyć: +convert image operator NOT wyklucza usługi zawierające w opisie term występujący bezpośrednio po operatorze. W teorii zbiorów, odpowiada dopełnieniu zbioru. Alternatywnie, zamiast słowa NOT można wykorzystać symbol!. Dla przykładu, w celu znalezienia usług zawierających frazę between images i nie zawierających słowa convert, należy użyć: "between images" NOT "convert" operator - wyklucza usługi zawierające w opisie term występujący bezpośrednio po operatorze. Dla przykładu, w celu znalezienia usług zawierających w opisie słowo convert i nie zawierających frazy between images, należy użyć: convert -"between images" 5

4.8 Przykłady zapytań W zapytaniu a tool 0.7 for convertingˆ5 eps to pdf 10 można wyróżnić następujące wymagania użytkownika: w wyszukiwaniu uwzględnione zostanie jedynie pole BC EXEC SUMMARY 1 ; słowa eps oraz pdf występują w odległości nie większej niż 10 pozycji; słowo converting jest pięciokrotnie ważniejsze niż pozostałe termy w zapytaniu; słowo tool podlega wyszukiwaniu rozmytemu ze współczynnikiem 0.7 (wyszukiwane będą również termy, niewiele różniące się w pisowni od słowa tool); domyślnym operatorem dla termów jest operator OR. Wyszukiwanie frazowe (w sąsiedztwie) zobrazowane zostało na Rys. 2 dla przykładowego zapytania convert text to html 6. Rysunek 2: Opis usługi txt2html, zwróconej w ramach wyszukiwania z uwzględnieniem odległości pomiędzy termami. Możliwe jest również grupowanie fraz korzystając z operatorów logicznych. Jak pokazano na Rys. 3, w ramach zapytania convert text to 2 AND html rtf 2 zwrócona została usługa, która nie została by znaleziona w ramach zapytania convert text to html rtf 2. [3, 4, 2] Rysunek 3: Opis usługi enscript, zwróconej w ramach wyszukiwania z uwzględnieniem odległości pomiędzy termami oraz grupowaniem fraz. Literatura [1] Pawel Czarnul, Michal Bajor, Marcin Fraczak, Anna Banaszczyk, Marcin Fiszer, and Katarzyna Ramczykowska. Remote Task Submission and Publishing in BeesyCluster: Security and Efficiency of Web Service Interface. In PPAM, volume 3911, pages 220 227, Germany, 2006. Springer. 1 W obecnej implementacji, pola BC PKG NAME oraz BC EXEC NAME uwzględniane są zawsze podczas wyszukiwania. 6

[2] Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schtze. Introduction to Information Retrieval (Online Edition). Cambridge University Press, http://nlp.stanford.edu/ir-book/information-retrieval-book.html, Kwiecien 2009. [3] Apache Lucene: http://lucene.apache.org/, Luty 2010. [4] Dik L. Lee, Huei Chuang, and Kent Seamons. Document Ranking and the Vector-Space Model. IEEE Softw., 14(2):67 75, 1997. 7