• Nie Znaleziono Wyników

Opis wierzchołków odpowiadających elementom procesu nawigacji

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.