6 Metoda ekstrakcji modeli wyceny składki ze źródeł internetowych
6.2 Reprezentacja strukturalna źródła
6.2.3 Opis wierzchołków odpowiadających elementom procesu nawigacji
Zasadniczą część opisu procesu nawigacji i ekstrakcji zajmuje definicja wierz-chołków grafu nawigacji. Kolejność definiowanych wierzwierz-chołków jest nieistotna, a wszelkie ewentualne referencje pomiędzy elementami odbywają się za pomocą jed-noznacznych i unikalnych w ramach opisu źródła identyfikatorów, jakimi opatrzony jest każdy wierzchołek.
W podrozdziale 5.3 zestawiono w tabeli 7 możliwe elementy opisu procesu nawi-gacji i ekstrakcji. W zestawieniu tym wyróżniono przede wszystkim te elementy, które stanowią autonomiczne wierzchołki grafu procesu ekstrakcji. Obecnie zostaną one omówione.
Element startowy (Source) oraz Terminator są typami wierzchołków granicznych w grafie. Element startowy oznacza wierzchołek, który inicjuje proces nawigacji i eks-trakcji. Z kolei Terminator jest wierzchołkiem kończącym przejście przez graf. Przej-ście przez graf oznacza zakończenie pojedynczego, pełnego cyklu nawigacji. Proces ekstrakcji składa się z wielu cykli nawigacji po źródle. Stąd osiągnięcie wierzchołka terminalnego oznacza cofnięcie się automatu realizującego proces do wierzchołka star-towego, a następnie sprawdzenie warunku stopu. Jeżeli warunek ten nie został osią-gnięty, rozpoczyna się kolejny cykl nawigacji.
Element startowy, poza wyznaczeniem punktu zapoczątkowania cyklu procesu, jest jednocześnie kontenerem przechowującym definicje właściwości wykorzystywa-nych w procesie nawigacji i ekstrakcji oraz aktualnie przypisane im wartości. Z racji pełnionych ról zakłada się, że w poprawnym grafie istnieje tylko jeden punkt począt-kowy. Dozwolona jest dowolna liczba Terminatorów, aczkolwiek w typowych scena-riuszach ekstrakcji także i ten typ wierzchołka ma pojedynczą reprezentację.
97
Ekstraktory to typ wierzchołków odpowiadających procesowi ekstrakcji danych z aktualnie przetwarzanej, tj. w miejscu wystąpienia wierzchołka w grafie, treści po-chodzącej ze źródła. Zadaniem abstrakcyjnego ekstraktora jest wykonanie konkretnej procedury ekstrakcji na podstawie informacji dostarczonej w definicji wierzchołka. Procedura ekstrakcji polega na zlokalizowaniu użytecznych danych oraz przepisaniu ich jako wartości do jednej lub wielu właściwości. Tak przypisane wartości są dowol-nie osiągalne i wykorzystywane przez automat wykonujący proces nawigacji w trakcie przetwarzania kolejnych wierzchołków grafu.
Zgodnie ze stanem zaprezentowanym w tabeli 7 przedstawiającej typy wierzchoł-ków, w prototypie zaimplementowano trzy rodzaje ekstraktorów wykorzystujących różne mechanizmy i reguły ekstrakcji. Są to:
ekstraktor wyrażeń regularnych – wykorzystuje mechanizm wyrażeń
regu-larnych do przeszukiwania strumienia danych pochodzących ze źródła w celu wykrycia występowania dowolnej liczby wzorców; identyfikatory właściwości zaszyte są w oznaczenia grup przechwytywania (capture gro-up),
ekstraktor języka XPath – zawiera listę zapytań w formalizmie XPath, które
są sekwencyjnie wykonywane na strumieniu (zazwyczaj w języku (X)HTML) z serwera; każde zapytanie jest skojarzone z jednym lub więk-szą liczbą identyfikatorów właściwości,
ekstraktor Przekształcenia Rozszerzalnego Języka Arkuszy Stylów
(XSLT)198 – zawiera skrypt przekształceń, który jest uruchamiany z
wyko-rzystaniem procesora XSLT na dokumencie pochodzącym ze źródła; skrypt ma za zadanie wygenerować ciągi par postaci <identyfikator właściwości, wartość>.
Wzorce nawigacji jako podstawowa struktura nawigacji w prezentowanym proto-typie zostały przedstawione w podrozdziale 5.4. Element tego typu reprezentuje poje-dyncze przejście pomiędzy podstronami w procesie nawigacji. Stąd w grafie znajdują się one wszędzie tam, gdzie w procesie nawigacji następuje wczytanie nowego
198
98
mentu z adresu URL za pomocą metody GET oraz w części przypadków
wykorzysta-nia metody POST199.
Automatyzujące wzorce nawigacji stanowią rozszerzenie wzorców nawigacji. Istotna różnica wpływająca na decyzję o utworzeniu odrębnego typu polega na dodat-kowym przechowywaniu przez ten typ wzorca nawigacji informacji o symulowanych działaniach potencjalnego użytkownika wykonywanych na aktualnie przetwarzanym dokumencie. W praktyce oznacza to, że automatyzujące wzorce nawigacji opisują po-szczególne formularze generowane przez źródło webowe. Opis formularza składa się z drzewa czynności (AutomationTask), jakie wykonywałby potencjalny użytkownik, gdyby jego celem było poprawne wypełnienie istotnych informacji na formularzu oraz jego odesłanie na serwer.
Symulacja wykonania poszczególnych czynności w drzewie ma charakter warun-kowy. Oznacza to, że formalizm opisu tego typu elementów przewiduje możliwość wykonania określonego podciągu czynności wtedy i tylko wtedy, gdy prawdziwy jest określony warunek. Sposób deklarowania warunków jest analogiczny do zapisu sto-sowanego w przypadku omówionych w podrozdziale 5.4 warunkowych zbiorów war-tości właściwości.
W celu poprawy jakości symulacji użytkownika oraz eliminacji ewentualnych problemów w komunikacji pomiędzy klientem webowym a serwerem, każda z czyn-ności wykonywanych w sekwencji oddzielona jest w czasie za pomocą jednej z kilku możliwych do wyboru implementacji miernika czasu (AbstractTimer). Wybór imple-mentacji oraz szczegóły konfiguracji mierników czasu używanych w danym drzewie czynności zależą od definicji wierzchołka. W szczególnym przypadku, jeżeli z defini-cji wierzchołka wynika, że formularz, który jest przez niego opisywany ma charakter dynamiczny, tj. zawiera pola, których wartość jest w trakcie wypełniania modyfiko-wana lub zależna od innych pól, wówczas możliwy jest do wykorzystania specjalny miernik czasu nadzorujący proces wymiany dodatkowych danych z serwerem, który zwraca sterowanie dopiero po zakończeniu obsługi asynchronicznego żądania HTTP(S).
199 O wykorzystaniu obydwu metod w kontekście komunikacji serwera z przeglądarką internetową wspominamy w podrozdziale 2.1.2.
99
W tabeli 9 zestawiono rodzaje czynności obsługiwane przez automatyzujące wzorce nawigacji w charakterze symulacji czynności użytkownika.
Tabela 9. Rodzaje czynności obsługiwane przez automatyzujące wzorce nawigacji Źródło: opracowanie własne
Czynność Argumenty Uwagi
Nawigacja za pomocą hiperłącza URL lub nazwa lub
identyfika-tor węzła HTML
W przypadku nazwy
lub identyfikatora
poprzez metodę
click()
Naciśnięcie przycisku (ClickButton) Nazwa lub identyfikator
wę-zła HTML
W przypadku przyci-sku typu „submit” może służyć do za-twierdzenia formula-rza
Zaznaczenie lub zwolnienie dwustanowego przyci-sku zaznaczenia (ToggleCheckBox)
Nazwa lub identyfikator wę-zła HTML, stan
Wprowadzenie danych do pola tekstowego (Enter-Data)
Nazwa lub identyfikator wę-zła HTML, wartość wpisywana Wypełnienie obszaru tekstowego
(EnterDataTextA-rea)
Nazwa lub identyfikator wę-zła HTML, wartość wpisywana
Wybór elementu z listy (SelectListItem) Nazwa lub identyfikator
wę-zła HTML listy, zbiór zazna-czonych wartości lub ich pre-zentowanych odpowiedników Akceptacja aktualnego formularza (SubmitForm) Nazwa lub identyfikator
wę-zła HTML
Poprzez wywołanie
metody submit() Zaznaczenie lub zwolnienie jednego z serii
przyci-sków wyboru alternatywy (SelectRadioButton)
Nazwa lub identyfikator wę-zła HTML, stan (opcjonalnie) Zaznaczenie lub zwolnienie jednego z serii
przyci-sków wyboru alternatywy (SelectRadioButton2)
Nazwa lub identyfikator wę-zła HTML, wartość odpowia-dająca przyciskowi
Elementy zrzucające (Dumper) reprezentują w grafie węzły wynikowe. Ich zada-niem jest przygotowanie i sformatowanie zbieranych przez automat nawigujący in-formacji oraz wydelegowanie pojedynczo lub w zagregowanej formie poza system ekstrakcji. W tym celu element zrzucający może wykorzystać urządzenie
wejścia-100
wyjścia lub dowolne dostępne repozytorium danych. W prezentowanym prototypie zaimplementowano dwa rodzaje elementów zrzucających:
generujący plik w formacie CSV200
,
zapisujące dane w wybranej bazie danych201.
Element zrzucający jest zasadniczo umiejscawiany na końcu cyklu nawigacji, je-żeli przetwarzany jest w każdym cyklu. W rzadkich przypadkach może być przetwo-rzony raz w całym procesie ekstrakcji. Teoretycznie możliwa jest konfiguracja grafu, w której występuje więcej niż jeden element zrzucający. Niemniej, takie rozwiązanie wydaje się mieć ograniczone zastosowanie praktyczne.