Krzysztof Dorosz. Strategie monitorowania polskojęzycznej informacji w Internecie

Wielkość: px
Rozpocząć pokaz od strony:

Download "Krzysztof Dorosz. Strategie monitorowania polskojęzycznej informacji w Internecie"

Transkrypt

1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Informatyki Krzysztof Dorosz Strategie monitorowania polskojęzycznej informacji w Internecie Rozprawa doktorska pod kierunkiem prof. dr hab. Wiesława Lubaszewskiego Kraków, 2012

2 Dla Żony

3 Spis treści Spis treści i 1 Wprowadzenie 1 2 Wprowadzenie do zagadnień crawlingu Definicja i cechy crawlingu Cele crawlingu Crawling zorientowany tematycznie Modele architektur systemów crawlingowych Crawler jednostanowiskowy Crawler scentralizowany klient-serwer Crawler rozproszony wieloagentowy Repozytorium linków URL Wymagania dotyczące repozytoriów linków Relacyjna baza danych Dedykowane struktury pamięciowe Porównanie i wybór metody Definicja zadania crawlingowego i rozwiązywanie konfliktów Eksperymenty z użyciem metod klasycznych doboru linków Architektura systemu crawlingowego Korpusy testowe Korpus sport.onet.pl Korpus wiadomosci.onet.pl Metody klasyczne strategii doboru linków Metoda BFS Metoda DFS Metoda Backlink Metoda Reverse Backlink Wyniki i analiza eksperymentów i

4 ii Eksperyment Eksperyment Eksperyment Eksperyment Eksperyment Wnioski Semantyczna ocena tekstu Rozpoznawanie języka dokumentu Słownik fleksyjny języka polskiego Segmentacja dokumentu na teksty spójne Ocena informacji tekstowej metodą słów kluczowych Ocena informacji tekstowej metodą Conceptual Dependency Semantyczne strategie doboru linków Architektura i implementacja ekstraktora skryptów Klasa Pyxtractor Klasa Script Klasa Text Klasa Token Klasy TokenWord, TokenCite, TokenUnknownWord Reguły dopasowania skryptu Skrypty Skrypt emerytury.yml Skrypt sukcesy naukowe.yml Semantyczne strategie doboru linków Strategia Page Strategia Url Strategia Url+Page Złożoność pamięciowa i czasowa strategii crawlingu Pomocnicza miara zbieżności tematycznej crawlingu Wyniki eksperymentów Eksperyment Eksperyment Eksperyment Eksperyment Eksperyment Wnioski Podsumowanie Zastosowania...100

5 iii Bibliografia 101 Dodatki 107 A Edytor i tester skryptów 108 B System Monitoringu Polskojęzycznego Internetu 119 B.1 Architektura MPI B.2 Moduł crawlingowy B.3 Moduł ekstrakcji informacji z tekstu B.4 Moduł korpusów tekstów Spis rysunków 123 Spis tabel 126 Skorowidz 127

6 Rozdział 1 Wprowadzenie Wyszukiwanie informacji (ang. IR Information Retrieval ) jest od dawna obszarem badań naukowych. Szczególną rolę odgrywa ono w kontekście analizy zbiorów tekstowych, które zaczęły masowo pojawiać się od czasów Gutenberga umożliwiając ich składowanie szczególnie intensywniejsze wraz z nastaniem ery treści cyfrowych. Posiadając obszerne zbiory tekstów czyli takie, w których już sama ilość stanowi problem dla człowieka ze względu czas potrzebny do przeczytania całości zbioru, pojawia się naturalne pytanie: w jaki sposób korzystać z tej wiedzy? Typowymi problemami jakie się pojawiają są zagadnienia budowy metody odnajdywania danych faktograficznych (ang. data retrieval ), odnajdywania dokumentów interesujących ze względu na tematykę/wzorzec (ang. document retrieval ), czy w końcu metod odnajdywania odpowiedzi na zadane pytanie (ang. information extraction ). Wszystkie te zagadnienia powiązane są ze sobą i często występują zamiennie, choć posiadają odrębne metody, teorię i praktykę. W roku 1945 Vannevar Bush opublikował wizjonerski artykuł As We May Think [5], który uznaje się za początek etapu nowoczesnego podejścia do wyszukiwania informacji. Choć różne uniwersalne techniki indeksowania i katalogowania tekstów, np. z użyciem słów kluczowych, były już znane od czasów antycznych (np. w Bibliotece Aleksandryjskiej), to dopiero powojenny XX-wieczny rozwój przemysłu elektroniczno-informatycznego (w dużej mierze inicjowany pobudkami militarnymi) katalizowany przez potrzebę przetwarzania i wyszukiwania niezwykle dużej ilości materiałów tekstowych umożliwił zdecydowany rozwój tej dziedziny naukowej. Praca Busha wśród wielu różnych przemyśleń zawierała wizjonerski pomysł związany z utworzeniem maszyny dysponującej kolektywną pamięcią zorganizowaną poprzez wprowadzoną przez niego koncepcją memexu. Koncepcja ta, której nazwa stanowi złączenie angielskich słów memory i index, stanowiła pewnego rodzaju protoplastę technologii hipertekstowych. Bush w swym błyskotliwym artykule przewidział również koncepcje komputerów osobistych, sieci 1

7 Internet, rozpoznawania mowy, encyklopedie elektroniczne. Wyrażone przez Busha wizje i obawy związane ze sposobem dostępu do wiedzy w sposób taki jaki umysł człowieka potrafi przetwarzać (a więc za pomocą pojęć i skojarzeń, a nie numerów identyfikacyjnych kolejnych zbiorów) inspirowały naukowców przez kolejne lata. Pierwsze zautomatyzowane systemy wyszukiwania informacji pojawiły się w latach 50 i 60 XX wieku i stanowiły echo militarnych problemów USA związanych z umożliwieniem indeksowania i przeszukiwania wojskowych doświadczeń naukowych [65]. W latach 70 XX wieku powstał pierwszy system dużej skali wyszukiwania informacji o nazwie Lockheed Dialog. Przełomowymi dla dziedziny wydarzeniami były również powołanie w roku 1987 przez Defense Advanced Research Projects Agency (DARPA) programu konferencji MUC (Message Understanding Conference) [25] oraz powołanie programu TREC (Text Retrieval Conference) w 1992 roku przez National Institute of Standards and Technology razem z US Department of Defense. Oba działania skupiały się silnie na utworzeniu infrastruktury dla naukowców w postaci sesji warsztatowych, która umożliwiłaby powstanie zaawansowanych badań w dziedzinie przetwarzania i wyszukiwania informacji z tekstów. MUC został zakończony w roku 1997, natomiast TREC odbywa się do dnia dzisiejszego. Typowym modelowym problemem dziedziny Document Retrieval jest klasyfikacja dokumentów ze względu na przynależność do zadanej klasy tematycznej. Rolą algorytmu jest klasyfikacja dokumentów w zbiorze wejściowym względem konkretnego tematu wyszukania. Wyjście algorytmu stanowi podzbiór dokumentów należących do zadanej klasy związanej z tematem wyszukania. Innymi słowy na wyjściu oczekuje się dokumentów, które są interesujące z punktu widzenia zadanego tematu wyszukania. Stosuje się także bardziej precyzyjne podejścia, w których zakłada się że metoda zwraca uporządkowany ciąg dokumentów posortowany według stopnia przynależności do klasy. Stopień ten, najczęściej wyrażony za pomocą liczby, odzwierciedlać ma jak bardzo dokument jest interesujący z punktu widzenia tematu wyszukania. W celu oceny jakości działania algorytmu document retrieval należy dysponować zbiorem dokumentów wraz z przypisanymi ocenami, tzn. każdy element powinien posiadać znaną z góry przynależność do zadanej klasy. Do porównania jakości różnych metod IR należy skorzystać z miar pozwalających na precyzyjne (liczbowe) wyrażenie tej jakości i jej porównanie. Jedną z najbardziej znanych i popularnych miar jest miara precision recall fall-out (dokładność pełność fall-out). Miara dokładności (ang. precision ) odpowiada na pytanie w jakim stopniu metoda poprawnie klasyfikuje dokumenty, które zwróciła jako pasujące do wzorca. Miarę liczy się jako stosunek ilości dokumentów rzeczywiście należących do zadanej klasy jaką zwróciła metoda do ilości wszystkich dokumentów jaką zwróciła metoda. Warto zauważyć, że sam parametr dokładności niewiele mówi o pełnej jakości metody. Przykładowo innym wyznacznikiem jakości może być liczba dokumentów, która w ogóle nie została 2

8 odkryta podczas klasyfikacji. Łatwo bowiem utworzyć algorytm z bardzo silnym warunkiem pasującym tylko do jednego dokumentu należący do klasy tematu wyszukania i w ten sposób uzyskać dokładność równą 1 (najlepszą). O ile dokładność w tym przypadku będzie najwyższa naturalnie wiadomo, że metoda taka nie ma dobrej jakości, ponieważ pominęła potencjalnie dużą liczbę innych dokumentów z tej klasy. Poszerzenie oceny jakości wymaga więc skorzystania z drugiej miary pełności (ang. recall ), którą definiuje się jako stosunek ilości wszystkich dokumentów z zadanej klasy zwróconych przez metodę do liczby wszystkich dokumentów z zadanej klasy w całym zbiorze stanowiącym wejście metody IR. Połączenie informacji powyższych dwóch miar daje więc bardzo dobry obraz na temat jakości metody, mówiący jak wiele dokumentów danej klasy zostało odkrytych oraz jednocześnie jaki był stopień pomyłek przy klasyfikacji. Dodatkową miarą pomocniczą jest fall-out, która może być interpretowana jako prawdopodobieństwo błędnej klasyfikacji dokumentu, liczona jako stosunek liczby dokumentów nienalężących do zadanej klasy zwróconych przez metodę do liczby wszystkich dokumentów w zbiorze nienależących do zadanej klasy. W tym przypadku najlepszym wynikiem jest 0 a najgorszym 1. Poza tymi podstawowymi miarami, stosuje się jeszcze inne miary pochodne, jak na przykład F-score, która stanowi ważoną średnią harmoniczną precision i recall. Kolejne metody takie jak average precision, R-Precision, mean average precision czy discounted cumulative gain, umożliwiają uwzględnienie kolejności zwracanych dokumentów jako istotnego warunku precyzji. Wszystkie powyższe metody posiadają pewną cechę wspólną, mianowicie do ich policzenia należy posiadać: korpus, czyli statyczny zbiór dokumentów, zapytanie stanowiące temat poszukiwania oraz ocenę dokumentów względem ich przynależności do klas tematycznych. Testowanie metod tymi miarami jest niezależne od specyfiki samego zbioru tekstów (w sensie jego doboru, kolejności, itp.) i umożliwia porównywanie samej jakości oceny metod wyszukiwania dokumentów. Elementy takie jak kolejność analizowanych dokumentów, wielkość zbioru dokumentów, stosunek liczby dokumentów odpowiadających wzorcowi wyszukiwania do nieodpowiadających w zbiorze są nieistotne dla samej metody. Jeśli metoda potrafi poprawnie klasyfikować teksty, otrzyma zawsze odpowiednio podobny wskaźnik dokładność pełność. Wyszukiwanie dokumentów w sieci WWW przynosi dodatkowy poziom skomplikowania, ze względu na aspekt związany z istnieniem odsyłaczy pomiędzy dokumentami i sposobie dostępu do nich poprzez trawersowanie po grafie tych odsyłaczy. Można jednak w pewnym określonym kontekście traktować graf połączonych odsyłaczami dokumentów WWW jako korpus (statyczny zbiór dokumentów). Dysponując automatem crawlingowym czyli systemem umożliwiającym zautomatyzowane systematycznie przeglądanie sieci WWW dokument po dokumencie, można wykonać przejście po wycinku sieci w celu zebrania do- 3

9 kumentów WWW. Typowym sposobem formalnego reprezentowania struktury odsyłaczy tak pobranego wycinka sieci WWW jest graf skierowany, którego węzły stanowią dokumenty (np. HTML), natomiast krawędzie stanowią odsyłacze pomiędzy dokumentami. Znając pojedynczy węzeł takiego grafu, możliwe jest trawersowanie po nim w celu odkrywania kolejnych węzłów. Upraszczając można więc przyjąć, że taka statyczna reprezentacja grafowa powstała poprzez pobranie crawlerem wycinka sieci odpowiada w pewnym sensie reprezentacji korpusowej. Mianowicie statyczny zbiór dokumentów stanowi pewną uproszczoną postać grafu będącą jedynie zbiorem wierzchołków, przy czym porządek ułożenia wierzchołków w korpusie jest nieistotny. Ilość wierzchołków w grafie, jak i elementów w zbiorze, jest skończona i możliwa jest ich ręczna ocena, a następnie zastosowanie miar wymienionych powyżej. W takim rozumieniu i reprezentacji dokumentów znajdujących się w sieci WWW możliwe jest zastosowanie metod ekstrakcji i miar oceny jakości algorytmów, analogicznie jak w przypadku statycznych korpusów, z dokładnością do kolejności przeglądania korpusu (która jak wynika z przedstawionych wcześniej miar, nie wpływa na ocenę jakościową metody jedynie wpływ może mieć kolejność rankingowa znalezionych dokumentów). Tego typu podejście stosowane było przez uczestników konferencji TREC gdzie wykorzystywano np. korpus ClueWeb09. Korpus ten zawiera ponad 1 mld dokumentów, z czego około 50% stanowią teksty w języku angielskim, a kolejną część korpusu stanowią teksty w 9 pozostałych najważniejszych językach takich jak chiński, japoński, hiszpański, itd. Zespoły biorące udział w TREC często do badań wykorzystywały tzw. korpus TREC kategorii B, który był podzbiorem pierwszych 50 mln dokumentów anglojęzycznej części korpusu ClueWeb09 [6]. Sytuacja ulega zmianie w sytuacji gdy przeprowadza się wyszukiwanie dokumentów on-line w sieci WWW. Okazuje się, że reprezentacja dokumentów w postaci korpusowej (zbioru dokumentów) nie jest możliwa, co warunkuje także niemożność użycia wcześniej przedstawionych miar oceny jakości algorytmów IR. W przypadku wyszukiwania w sposób on-line algorytm IR jest ściśle połączony z crawlerem. Analiza i wyszukanie dokumentów następuje w momencie przechodzenia crawlera po sieci, gdzie podejmowana jest natychmiastowa decyzja o klasyfikacji dokumentów. Taka natychmiastowa ocena dokumentu pozwala uniknąć tworzenia korpusu wszystkich dokumentów. Jest to ważna cecha tego podejścia przede wszystkim dlatego, że rozmiar grafu stanowiącego odwzorowanie całej sieci WWW jest zdecydowanie zbyt duży, aby mówić o możliwości praktycznego zeskładowania takiego grafu w całości w ograniczonym czasie, nawet posiłkując się instalacjami systemów crawlingowych niezwykle wyspecjalizowanych i dedykowanych do tego celu. Kolejny aspekt stanowi czas związany z operacją crawlingu który sprawia, że typowy system crawlingowy ograniczony jest jedynie do możliwości przeglądnięcia wybranego wycinka sieci w skończonym czasie. Następnym aspektem jaki należy wziąć pod uwagę jest bardzo duży stopień dy- 4

10 namiczności sieci WWW. Wiele treści (w tym zawierających odsyłacze) stanowią elementy wygenerowane dynamicznie (zmienne), a nawet losowe. Trawersowanie po tak skonstruowanym grafie skierowanym, który z natury dynamicznie lub nawet losowo zmienia swoją topografię prowadzi do wniosku, że graf ten posiadałby nieskończoną liczbę krawędzi i wierzchołków. Tak więc próba ograniczenia zakresu tego grafu tak, by reprezentować go jako graf o skończonej liczbie krawędzi i wierzchołków, wymaga stosowania heurystyk odróżniające treści i odsyłacze potencjalne od rzeczywistych. W praktyce w typowym przypadku nie jest więc możliwe wykonanie dwóch następujących po sobie sekwencji przejść po ścieżce odsyłaczy w sieci WWW zgodnej z jedną strategią, przy założeniu że obie ścieżki będą miały identyczne przebiegi oraz dostarczą identycznych treści (wierzchołków grafów). Podejście on-line do wyszukiwania dokumentów w sieci WWW charakteryzuje się więc niemożnością zbudowania odpowiedniego korpusu statycznego, ponieważ próby wyszukań mają charakter unikalny, rozpinając za każdym razem różny, rozbieżny graf dokumentów, co implikuje zmienność korpusu pozyskanego na bazie tego grafu. Z przytoczonych powyżej faktów wynika, że przy wyszukiwaniu informacji on-line z WWW nie da się użyć miary pełności (recall) [48]. Można zaproponować wykorzystanie samej miary dokładności (precision), której wyznaczenie w najprostszy sposób wymaga ręcznej analizy wyników zwróconych przez algorytm IR. Jest to możliwe ponieważ rezultat zwracany przez metodę stanowi skończony (w przypadku szczegółowych zapytań zwykle niewielki) zbiór. Wyznaczenie dokładności na zbiorze wyników nie jest więc problematyczne, a jedynie czasochłonne. Problematyczne natomiast jest wyliczenie pełności (recall). Nie da się bowiem wyznaczyć całkowitej liczby dokumentów w sieci WWW, lub przynajmniej nie da się jej podać wprost w sposób jednoznaczny do danego uruchomienia procesu crawlingu. Nawet jeśli liczba ta mogła być wyznaczona, byłaby ona zbyt wielka, aby udało się annotować zbiór dokumentów przynależnością klas tematycznych. Brak wiedzy o tym ile w Internecie znajduje się wszystkich dokumentów należących do zadanej klasy uniemożliwia policzenie miary pełności, co powoduje, że ocena dokładności samodzielnie nie dostarcza wiedzy o jakości metody. Kolejnym aspektem jest zmienność środowiska WWW w czasie. Metoda powinna uwzględniać upływ czasu, ponieważ przeprowadzenie kolejnych eksperymentów na sieci WWW przyniesie odmienne wyniki (ze względu na dynamiczne zmiany). W praktyce jednak nie jest możliwe uwzględnienie tego czynnika, ponieważ sam czas fizyczny trwania przetwarzania tekstu wprowadza już niezerowy moment, w którym mogła nastąpić zmienność, tak więc przetwarzanie musiałoby się odbywać w czasie zerowym co oczywiście nie jest możliwe. Poza tym faktem istnieje jeszcze drugi problem. Każde pobranie strony w sieci WWW może samo w sobie zmienić stan tej strony (np. zmiana licznika wejść na stronę), co powoduje że nie istnieje możliwość powtórzenia wyniku pomiaru na dokładnie tych samych 5

11 6 danych, ponieważ sam fakt wykonania eksperymentu w środowisku, zmienia to środowisko. Przedstawiony powyżej problem stosowania pełnej miary precision recall w odniesieniu do wyszukiwania dokumentów on-line w WWW powoduje konieczność posiłkowania się innym rodzajem miary niż recall w przypadku oceny i porównania algorytmów IR. Zagadnienie doboru miar oceny strategii crawlingowych przy wyszukiwaniu dokumentów on-line posiada bogatą literaturę. W pracach Menczera i Panta [41], [48] ale także Saha et. al. [55] odnaleźć można podejścia starające się estymować recall. Proponowane są dwie miary target recall oraz robustness. Pierwsza z tych miar w głównej mierze opiera się na bezpośrednim podziale zbioru testowego na zbiory źródeł (ang. seeds ) i celów (ang. targets ). Ocena jakości crawlingu wynika z umiejętności odkrywania elementów zbioru celów startując ze zbioru źródeł. Druga metoda także dzieli zbiór testowy na dwie części wykonując dwa przebiegi crawlingowe używając tych podzbiorów osobno jako strony startowe. Miara mierzy część wspólną zbiorów wynikowych obu przejść. Miary te zdolne są jedynie do estymacji i silnie zależą od losowości podziału zbioru testowego. W celu uniknięcia oceny jakości crawlingu za pomocą wartości estymowanych proponuje się wykorzystanie innej miary np. miary postulowanej w rozdziale 5.5, którą jest pomocnicza miara zbieżności tematycznej 1, oceniająca jakość mechanizmu crawlera sprzężonego z algorytmem IR poprzez jego umiejętność odkrywania wartościowych dokumentów (tj. pasujących do wzorca wyszukania, ang. valid, relevant ). Wpływ tej miary na ocenę jakości algorytmu bardzo łatwo przedstawić intuicyjnie. Strategia crawlingu to zewnętrzna (w stosunku do IR) metoda sterująca pracą crawlera, która definiuje porządek w jakim następuje trawersowanie po sieci w poszukiwaniu dokumentów. Sposób konstrukcji metody strategii crawlingu determinuje zakres grafu jaki zostanie przeszukany w ograniczonej ilości czasu, a wynika to z przytoczonego wcześniej faktu, że sieć WWW stanowiąca graf o nieskończonej liczbie krawędzi i wierzchołków, podczas skończonego czasu, zostanie przeglądnięta jedynie w pewnym konkretnym podgrafie o skończonej liczbie wierzchołków i krawędzi. W zależności od ułożenia dokumentów z danej klasy tematycznej w grafie, jedna metoda strategii crawlingu przeglądać może podgraf nie zawierający żadnych takich dokumentów, inna metoda w tym samym czasie poprzez odpowiednie trawersowanie po linkach odkryć może wszystkie takie dokumenty. Od strategii crawlingu zależeć będzie więc jaki zakres tego podgrafu zostanie użyty w celu odnalezienia treści spełniającej warunki zapytania. Sposobem na zmierzenie jakości strategii crawlingu w tak postawionym problemie będzie zmierzenie jej zbieżności tematycznej, czyli stosunku liczby znalezionych dokumentów odpowiadających wzorcowi wyszukiwania do wszystkich dokumentów przeszukanych na danym etapie. Crawler idealnie zbieżny tematycznie uzyska wynik 1 w każdym 1 w ang. literaturze nazywanej często miarą harvest-ratio lub harvest-rate [58, 72, 70, 28]

12 7 kroku działania, gdy w każdym momencie crawlingu wszystkie dokumenty przez niego odkryte zawierają treść odpowiadającą kryteriom wyszukiwania. Dla systemów wyszukiwania on-line dokumentów WWW potrzeba więc nowej miary. W niniejszej pracy w przypadku wyszukiwania on-line w sieci WWW postuluje się użycie pomocniczej miary zbieżności tematycznej opisanej w rozdziale 5.5 jako miary będącej surogatem miary pełności (recall). Przyjęcie zbieżności tematycznej jako miary oceny implikuje warunek, że strategie klasyczne (np. BFS, DFS) uzyskają dobry wynik zbieżności tematycznej tylko w przypadku gdyby dokumenty pasujące do wzorca wyszukiwania rozłożone były w grafie odsyłaczy w sposób odpowiadający sekwencjom przejść w tych metodach. Celem pracy jest wykazanie słuszności tez: 1. Postulowana miara zbieżności tematycznej użyta jako surogat miary pełności (recall) w przeszukiwaniu sieci WWW on-line jest zależna od przyjętej strategii crawlingu. 2. Zastosowanie aparatu semantycznego w strategiach crawlingu w każdym przypadku przynosi poprawę zbieżności tematycznej crawlingu zorientowanego na zapytanie. Do wykazania przedstawionych tez użyty zostanie system crawlingowy, za pomocą którego przetwarzany zostanie wybrany wycinek ogólnodostępnej sieci Internet. Problematyka utworzenia takiego systemu została opisana w rozdziale 2. Wprowadzenie do zagadnień crawlingu. W rozdziale 2.5 omówiono szczegóły budowy repozytorium linków URL, ponieważ repozytorium to zapewnia realizację strategii crawlingu. Architektura i implementacja systemu crawlingowego zorientowanego na zapytanie została przedstawiona w rozdziale 3.1. W celu sprawdzenia tez przedstawionych w pracy opracowano dwie serie eksperymentów. Pierwsza seria została opisana w rozdziale 3. Eksperymenty z użyciem metod klasycznych doboru linków. W sekcji 3.2 przedstawiono sposób wykonania korpusów na których wykonano eksperymenty. Korpusy odwzorowywały topologię wybranego wycinka sieci na którym w sposób powtarzalny testować można zbieżność tematyczną strategii crawlingu. Przetwarzany zakres zostanie zebrany w postaci statycznych korpusów zapewniających powtarzalność kolejnych eksperymentów. Przetestowane zostaną metody klasyczne. Eksperymenty zakładały sprawdzenie jaką zbieżność tematyczną uzyskuje się stosując wybraną strategie klasyczną crawlingu, przy użyciu konkretnej metody IR na konkretnym korpusie. W rozdziale 3.3 wprowadzono definicje klasycznych strategii, które bazują na typowych algorytmach przechodzenia po grafie. Jako metody klasyczne opisano: 1. BFS przeglądanie wszerz,

13 8 2. DFS przeglądanie w głąb, 3. Backlink przeglądanie zgodnie z porządkiem wynikającym z największej ilości odkrytych krawędzi (odsyłaczy) przychodzących (strony najczęściej wskazywane są najważniejsze), 4. Reverse Backlink - przeglądanie zgodnie z porządkiem wynikającym z najmniejszej ilości odkrytych krawędzi (odsyłaczy) przychodzących (strony najbardziej ukryte są najważniejsze). Przeprowadzone eksperymenty zostały opisane w rozdziale 3.4 Następnie wprowadzono w rozdziale 4 aparat semantyczny, którym posłużono się do utworzenia semantycznych strategii doboru adresów (i które również służyły za metody IR użyte w eksperymentach). Przewidywał on użycie dwóch biegunowych metod semantycznej analizy tekstu płytkiej i głębokiej: 1. metodę słów kluczowych, będącą jedną z metod płytkiej analizy semantycznej, opisaną w rozdziale 4.3, 2. metodę skryptów Conceptual Dependency będącą jedną z metod głębokiej analizy semantycznej opisaną w rozdziale 4.4. Na bazie tych metod IR przedstawiono w rozdziale 5 nowe strategie semantyczne: 1. metoda Page waga oceny semantycznej strony wejściowej wpływa na ranking stron wskazywanych przez stronę wejściową, 2. metoda Url waga oceny semantycznej treści odsyłacza wpływa na ranking strony wskazywanej przez odsyłacz, 3. metoda Page+Url złożenie dwóch powyższych metod. Wyniki powtórzono na utworzonych uprzednio korpusach dla nowych strategii semantycznych w eksperymentach odpowiadających kolejno poprzednim eksperymentom. Rezultaty porównano i zestawiono z metodami klasycznych strategii w rozdziale 5.6. Zbadano wpływ doboru strategii crawlingu na zbieżność tematyczną crawlingu. Wybrano metody, które otrzymały najlepszą skuteczność. Wnioski wynikające z analizy wyników przedstawiono w podsumowaniu w rozdziale 6.

14 Rozdział 2 Wprowadzenie do zagadnień crawlingu Przetwarzanie dokumentów z Internetu wymaga użycia specjalnego oprogramowania sieciowego zdolnego do automatycznego pobierania treści z sieci. Systemy takiej klasy nazywa się mianem systemów crawlingowych, od ang. crawling co tłumaczy się jako pełzać. Najbardziej prawdopodobną interpretacją genezy tego nazewnictwa jest analogia procesu crawlingowego do świata naturalnego. W procesie crawligowym jednostki robocze zwane crawlerami w sposób ciągły przechodzą przez kolejne odsyłacze URL co może nasuwać luźne skojarzenia do pełzania robaków. Pojedynczy crawler nazywany jest także często w literaturze jako pająk (ang. spider ), robak internetowy, robot, bot. Budowa systemów crawlingowych stanowi względnie duży problem ze względu na bardzo dużą skalę i wolumen adresów URL w Internecie na konieczność jednoczesnego uwzględnienia wielu zagadnień sieciowych z różnych warstw modelu OSI/ISO oraz ze względu na duże różnice w standardach technologii internetowych. Zakres całej tematyki crawlingu (szczególnie tematyka ściśle sieciowa) jest bardzo szeroki i nie mieści się w zakresie podejmowanym w niniejszej pracy, która skupia się na aplikowaniu aparatu semantycznego do systemu crawlingowego. Niemniej w niniejszym rozdziale przedstawione zostaną kluczowe elementy budowy systemu crawlingowego. 2.1 Definicja i cechy crawlingu Manning w [38] podaje dość ograniczoną definicje web crawlingu przedstawiając go jako proces gromadzenia stron WWW w celu indeksacji treści i wsparcia 9

15 10 wyszukiwarki internetowej. Celem crawlingu jest szybkie i wydajne zgromadzenie interesujących zbiorów danych wraz z topologią odsyłaczy URL. W tej pracy termin crawling jest rozumiany szerzej niż w zacytowanym zakresie podanym przez Manninga: Web crawling jest to systematyczne gromadzenie treści z sieci komputerowej z użyciem wyspecjalizowanego narzędzia zdolnego pracy ciągłej oraz do samoczynnego rozpoznawania topologii połączeń między dokumentami i trawersowania po nich w celu odkrywania treści nie znanych przed rozpoczęciem przetwarzania. Podana definicja zwraca uwagę na kilka aspektów crawlingu. Przede wszystkim gromadzenie treści przez system crawlingowy wymaga odpowiedniego sprofilowania, co zostało ujęte w rozdziale 2.2. Zdolność do pracy ciągłej wymaga specjalnej konstrukcji bazy odsyłaczy, w którym przechowywany będzie stan crawlingu opisany w rozdziale 2.5 oraz wymaga przyjęcia odpowiedniej architektury systemowej, która zidentyfikowana jest w rozdziale Cele crawlingu Ze względu na dużą złożoność procesu crawlingu związaną szczególnie z dużą ilością danych na jakich system crawlingowy operuje nie jest możliwe stworzenie uniwersalnego systemu crawlingowego dużej skali. Przeprowadzony crawling zawsze związany jest z zadanym celem jaki postawiono systemowi. Cel ten determinuje sposób i ilość wykorzystanych zasobów, co ma znaczący wpływ na ostateczną architekturę rozwiązania (np. sposób przetwarzania danych, model komunikacji elementów systemu, ilość zapisywanych informacji, itd.). Cele systemów crawlingowych można podzielić na dwie kategorie: przetwarzanie treści strony oraz przetwarzanie adresów URL. Do celów kategorii przetwarzanie treści stron należą: Indeksowanie stron polega na ekstrahowaniu jednostek z treści przeglądanych dokumentów (najczęściej strony WWW) w celu przyspieszenia wyszukiwania dokumentów zawierających te jednostki. Najprostszymi jednostkami mogą być wyrazy, jednak mogą nimi także być liczby, daty itp. Wyszukiwarki internetowe stosują szereg metod indeksacji sieci w celu konstrukcji odwróconego indeksu stron WWW umożliwiający wyszukiwanie stron za pomocą słów kluczowych. Przeszukiwanie stron metoda polega na zdefiniowaniu precyzyjnego wzorca wyszukiwania, który jest następnie ewaluowany na treści kolejnych stron. System crawlingowy przetwarzając treść zapisuje jedynie informacje zgodne ze wzorcem wyszukania. Metoda ta bez stosowania metod indeksacji nie

16 11 zapewnia szybkości działania, jednak ogranicza liczbę zasobów potrzebnych podczas wyszukania. Katalogowanie stron celem katalogowania stron jest próba automatycznej klasteryzacji adresów URL (lub też adresów domen) na kategorie tematyczne. Tworzenie hierarchicznych kategorii stron WWW jest alternatywnym sposobem wyszukiwania stron na zadany temat w porównaniu do systemów opartych na indeksacji. Budowanie korpusów tekstów cel ten realizuje automatyczne zbieranie tekstów ze stron internetowych w celu budowy korpusów lingwistycznych. Korpusy tekstowe są ważnym elementem przy badaniach nad algorytmami lingwistycznymi. Najczęściej zapisane teksty powinny spełniać odpowiednie kryteria jakościowe, dlatego podczas zbierania danych potrzebne są dedykowane strategie przechodzenia po stronach oraz ograniczanie tekstów redundantnych. Tworzenie kopii serwisów (ang. mirroring) technika tworzenia redundancji, w celu zapewnienia większej dostępności. Technika ta była szczególnie popularna we wcześniejszych latach, gdzie szybkość łącz i wydajność serwerów była niewielka. Obecnie technika ta jest stosowana dla zasobów o stosunkowo dużych rozmiarach lub niezwykle dużej popularności. Alternatywną technologią dla tworzenia kopii stron są sieci peer-to-peer. Mirroring może służyć także jako sposób na skopiowanie treści dostępnej online do użytku offline. Monitoring zmian systematyczne przeglądanie wycinku sieci oraz porównywanie informacji znalezionej na stronach prowadzi do monitorowania zmian informacji na stronach. Istnieje wiele strategii porównywania zmian tekstu, najprostsza z nich zastosowana jest w narzędziu diff systemów *nix. Polega ona na porównywaniu zmian w poszczególnych liniach tekstu. Monitorowanie zmian za pomocą cyklicznego odwiedzania stron jest nieodporne na przypadkowe (np. automatyczne) zmiany treści. W przypadku portali internetowych do monitorowania zmian stosuje się także technologię RSS Feed. Do celów kategorii przetwarzanie adresów URL należą: Wyznaczanie topologii odsyłaczy dzięki analizie informacji na stronach internetowych dotyczących hiperłączy, możliwe jest zbudowanie grafów skierowanych przejść pomiędzy stronami. Informacje takie mogą prowadzić do wyznaczania topologii serwisów internetowych (np. wyznaczyć kluczowe strony serwisu, które są ważne ze względu na rolę nawigującą po serwisie). Użyteczną część linku stanowi także jego opis tekstowy, który charakteryzuje treść znajdującą się pod wskazywanym adresem. Nowoczesne systemy

17 12 indeksujące sieć korzystają z tego typu informacji w metryce oceny dopasowania słów kluczowych do treści strony. Walidowanie stron przy obsłudze dużych serwisów internetowych stosuje się automatyczne metody walidowania działania stron. Spośród wielu możliwych aspektów walidacji najprostszą jej formą jest wykrywanie wszystkich niepoprawnych lub nieaktywnych odsyłaczy URL w celu uniknięcia błędów typu HTTP 404. System crawlingowy może realizować wiele celów jednocześnie współdzieląc pulę zasobów pomiędzy celami crawlingu. 2.3 Crawling zorientowany tematycznie Podejmowane w pracy zagadnienia związane z doborem strategii crawlingowej mieszczą się w celu crawlingu zdefiniowanym jako przeszukiwania stron pod kątem zapytania (technik tych także można użyć w celu katalogowania stron WWW lub budowania korpusów tematycznych). Literatura wyszczególnia tego typu zastosowanie jako specjalny typ crawlingu zwany crawlingiem zorientowanym tematycznie (ang. topic crawling, topical crawling, focused crawling ) [7, 40]. Specjalizacją tego typu systemu crawlingowego jest selektywne przeszukiwanie sieci w celu odkrycia dokumentów pasujących do z góry określonego tematu wyszukiwania. W crawlerze takim definiuje się specjalną funkcję podobieństwa (ang. similarity function), która zwraca liczbę v stanowiąca stopień podobieństwa dokumentu P do zadanego tematu (czyli wzorca wyszukania) T. similarity T : P v [0, 1] Sposób implementacji tej funkcji jest zróżnicowany ze względu na istnienie wielu metod statystycznych czy semantycznych umożliwiających reprezentacje wzorców wyszukiwawczych i sposób ich dopasowania do tekstów dokumentów. Przegląd literatury pokazuje użycie szerokiej gamy metod m.in.: dopasowanie słów kluczowych [12], VSM (Vector Space Model) [56, 23], ontologie [27], logika rozmyta z ważeniem konceptów ontologii [30, 21, 73], probabilistyczne metody Bayesowskie (ang. naive Bayes classifiers ) [72], LSI (Latent Semantic Indexing) [16, 34]. W niniejszej pracy wykorzystano inne podejście semantyczne, różniące się od wyżej przedstawianych konstrukcją wzorca poszukiwanej informacji poprzez użycie skryptów Conceptual Dependency [62, 60, 61, 59]. Wykorzystane podejście semantyczne wraz z opisem teorii Conceptual Dependency, jak i budową skryptów CD, zostało szczegółowo opisane w rozdziale 5. W crawlingu tematycznym wyróżnia się strony pasujące do wzorca (ang. authorities ) oraz strony agregujące odsyłacze do stron pasujących do wzorca (ang. hubs ). Poprawny crawler tematyczny powinien możliwie szybko odnajdywać

18 13 strony pasujące do wzorca, w tym realizując cel także poprzez odnajdywanie stron agregujących. W tym celu crawling rozpoczynany jest ze zbioru odsyłaczy startowych (ang. seed ). Przetwarzając kolejne dokumenty crawler ekstrahuje odsyłacze umieszczając je w kolejce stron do przeglądnięcia (ang. frontier ). Zwykle zbiór odsyłaczy startowych dobierany jest ręcznie i stanowi wyselekcjonowany zestaw dokumentów zawierających informacje pasujące do wzorca. Celem crawlingu tematycznego jest zebranie w jak najkrótszym czasie jak największej liczby dokumentów pasujących, co pociąga za sobą problem wyboru kolejności odwiedzanych linków z kolejki stron do przeglądnięcia. Istnieje wobec tego uporządkowanie, które można wprowadzić w zbiorze odsyłaczy do przeglądnięcia, zależne od kontekstu działania crawlera, uwzględniające możliwość predykcji, który z odsyłaczy zawiera dokument pasujący do wzorca. Kontekst taki stanowi informacja o dotychczasowej klasyfikacji znalezionych dokumentów. Za pomocą zbioru wartości funkcji podobieństwa do wzorca dla każdego przeglądniętego dokumentu wyznaczyć można metodę przypisująca każdemu odsyłaczowi w zbiorze odsyłaczy do przeglądnięcia wartość rankingową, którą można interpretować jako prawdopodobieństwo znalezienia pod tym odsyłaczem dokumentu pasującego do wzorca. Metody te mogą skupiać się na wykorzystywaniu samej wartości klasyfikacji treści dokumentu, treści nazwy tekstowej odsyłacza, zawartości adresu odsyłacza i innych metodach wykorzystujących informacje strukturalne (np. liczby cytowań) [12]. Rankingowanie puli odsyłaczy następuje cyklicznie w trakcie odkrywania stron, z tym że przypadek idealny tj. rankingowanie po każdym jednostkowym przetworzeniu strony może być w praktyce trudny do implementacji ze względów wydajnościowych. Dobór puli adresów początkowych wraz z metodą oceny podobieństwa oraz metodą rankingowania odsyłaczy stanowi kompletną strategię crawlingu zorientowanego tematycznie. 2.4 Modele architektur systemów crawlingowych Implementacja rzeczywistego systemu crawlingowego wymaga rozważenia modelu architektury, w której system taki zostanie zrealizowany. Możliwe do zastosowania architektury różnią się poziomem złożoności implementacyjnej i zależą od celu oraz skali crawlingu jaki ma zostać zrealizowany Crawler jednostanowiskowy Jest to najprostszy model crawlera wykorzystywany głównie do tworzenia mirrorów małych stron internetowych oraz w badaniach naukowych. Konstrukcja crawlera uwzględnia jeden proces, który przegląda kolejne strony i zapisuje stan crawlingu do podręcznej bazy danych. Najczęściej dane te są przechowywane w sposób nie persystentny i są tracone po zakończeniu przetwarzania. Najprost-

19 14 szym narzędziem służącym za crawler jednostanowiskowy może być narzędzie Unix o nazwie wget 1, które posiada wśród swoich mnogich opcji konfiguracyjnych przełącznik --spider. Zaletami tego typu crawlerów jest niezwykła prostota budowy oraz użycia w typowych zastosowaniach. Wadą jest niska wydajność i praktyczny brak możliwości skalowania crawlingu w przypadku ogólnym Crawler scentralizowany klient-serwer Architektura klient-serwer jest jedną z najczęściej spotykanych architektur systemów sieciowych. Ze względu na dość prostą koncepcję, w której serwer przejmuje centralną rolę (np. nadzorczą), w sposób stosunkowo prosty można przenieść idee działania klasycznego systemu jednoprocesowego na tą architekturę. W przypadku konstrukcji systemów crawlingowych jest to więc jedna z najlepiej opisanych w architekturze i najczęściej wykorzystywanych architektur. W oparciu o model scentralizowany zbudowane są crawlery Google [3], Mercator [26, 43], WebFountain [20], UbiCrawler [1, 2], crawler opisany przez Garcia- Molina [9] oraz Shkapenyuk i Suel [64]. Główną koncepcją budowy systemu crawlingowego w tej architekturze jest wydzielenie z systemu crawlera elementu decyzyjnego w postaci repozytorium odsyłaczy URL wraz z mechanizmami priorytetyzowania ich i umieszczenie tych elementów w postaci scentralizowanego serwera. Crawlery pozostają klientami systemu centralnego. Pobierają od niego pule adresów URL do przeglądania, w ten sposób są zarządzane i kontrolowane. W wielu detalach budowa takich systemów między sobą może się różnić, w zależności od tego w jaki sposób crawlery dysponują następnie pobranymi z sieci treściami. Jest to już jednak ściśle zależne od celów systemu crawlingowego opisanych w rozdziale 2.2 i podlega dostosowaniom do konkretnych przypadków użycia. Do zalet crawlerów tworzonych w tej architekturze wymienić należy stosunkową prostotę implementacyjną ze względu na centralny charakter synchronizacji i sterowania pracy crawlerów, łatwość zarządzania systemem. Do zdecydowanych wad tego rozwiązania należy fakt, że każdy system typu klient-serwer jest podatny na tak zwany bottleneck, czyli efekt wąskiego gardła, który może wystąpić na styku centralnego serwera i wielu klientów. W związku z tym przeważnie architektura taka ma ograniczone możliwości skalowania, co może stanowić duży problem w przypadku crawlingu na bardzo szeroką skalę Crawler rozproszony wieloagentowy Systemy agentowe zyskały popularność wśród niektórych zastosowań sieciowych, szczególnie tam gdzie potrzebna jest silna decentralizacja, odporność na 1

20 15 błędy i sytuacje kryzysowe. Koncepcja bazuje na podejściu do jednostek przetwarzających jako niezależnych autonomicznych jednostek, które posiadają własne cele do realizacji. Cele te mogą pokrywać się bądź pozostawać sprzeczne wśród grupy agentów, które aby maksymalizować własną funkcję celu mogą negocjować kompromisowe rozwiązania pomiędzy sobą np. współdzieląc zasoby. Agent posiada wycinkową i niepełną wiedzę o całości środowiska w którym został uruchomiony, często powielając czynności realizowane przez innych agentów. Ta cecha systemów agentowych o ile niekiedy pożądana stanowi główną trudność do adaptacji tej architektury jako systemu crawlingowego. W literaturze można odnaleźć prace związane z implementacją crawlerów w oparciu o systemy agentowe takie jak [68], jednak tego typu rozwiązania nie zyskały popularności wśród dostawców wyszukiwarek internetowych (właścicieli największych sieci crawlingowych). Główna trudność wynika z faktu, że zapewnienie autonomiczności crawlera, przy jednoczesnej synchronizacji pracy całego środowiska crawlerów i unikania konfliktów jest niezwykle trudne koncepcyjnie i implementacyjnie. Przy założeniu, że każdy crawler jest całkowicie autonomiczny, musi on utrzymywać własną podręczną bazę adresów URL co powoduje, że bardzo szybko wyczerpałby własne zasoby, ponieważ przechowywałby zwielokrotnione informację w stosunku do innych agentów. Potrzebne są więc wyrafinowane techniki i cele agentów, względem których minimalizacja kosztu przechowywania wiedzy o stanie crawlingu oraz omijanie kolizji byłoby nagradzane dla agenta. Pozostaje wobec tego narzut komunikacyjny, jaki agenci musieliby utrzymywać, aby negocjować kontrakty między sobą. Narzut ten przy wolumenie odsyłaczy URL znajdujących się w sieci mógłby być większy niż sama komunikacja agenta z siecią w celu pobierania treści. 2.5 Repozytorium linków URL Repozytorium odsyłaczy stanowi element krytyczny dla wydajności systemu crawlingowego. Ze względu na duży wolumen adresów internetowych, a także z uwagi na ich specyfikę, wydajne przetwarzanie baz adresów URL wymaga dedykowanego podejścia. Przed analizą konkretnych rozwiązań należy sprecyzować formalne wymagania stawiane takiemu repozytorium z punktu widzenia celu crawlingowego Wymagania dotyczące repozytoriów linków Następujące zagadnienia mają wpływ na architekturę i wymagania funkcjonalne stawiane repozytoriom linków. Warto nadmienić, iż nie są to wszystkie możliwe aspekty tego zagadnienia, a jedyne te które związane były z realizacją postawionego celu crawlingu.

21 16 Użycie zasobów systemowych Powołując się na [35] każdy system crawlingowy może być opisany używając następujących parametrów: liczba N stron, które crawler może obsłużyć do momentu, w którym nie może przetwarzać dalej ze względu na brak zasobów, szybkość przeglądania sieci S jako funkcja zależna od argumentu będącego liczbą stron już odwiedzonych, liczba zasobów Σ (CPU i RAM) wymaganych do podtrzymania przetwarzania N stron w średnim czasie S. Cytując dalej za [35] in most crawlers, larger N implies higher complexity of checking URL uniqueness, verifying robots.txt, and scanning the DNS cache, which ultimately results in lower S and higher Σ. At the same time, higher speed S requires smaller data structures, which often can be satisfied only by either lowering N or increasing Σ. Komentując przytoczony cytat, przy tworzeniu systemu potrafiącego pokryć dużą liczbę stron N przy założonej szybkości S wymaga, aby repozytorium linków potrafiło obsłużyć zadane natężenie operacji dodania i modyfikacji, co pociąga za sobą konieczność zwiększania zasobów Σ. Wobec tego repozytorium URL staje się głównym konsumentem zasobów całego systemu, co potwierdza istotność roli tego elementu w całym systemie. Unikanie pułapek Angielski termin spider trap, a także często spotykany w literaturze termin black hole odnosi się do specyficznej dla struktury odsyłaczy w dokumentach HTML nieskończonej pętli odsyłaczy. Niektóre takie pętle są naturalną konsekwencją stosowania na stronach dynamicznych skryptów generujących treści. Najprostszymi przykładami mogą być: dynamiczny kalendarz na stronie WWW, który umożliwia nawigowanie w nieskończoność kolejnych dni, źle zaprojektowana strona WWW z paginacją umożliwiającą nieskończone przechodzenie po kolejnych (pustych) stronach materiału. Inne opisane tutaj pułapki mogą być związane z intencjonalnym działaniem webmasterów chcących zakłócić pracę robota internetowego. Przykładami takich działań mogą być: tzw. farmy linków, ukrywanie treści na stronach. W związku z tym należy traktować graf linków URL w sieci Internet jako graf o nieskończonej ilości węzłów i krawędzi, potencjalnie nawet dla grafu dotyczącego jednej domeny. Takie podejście wymaga więc, aby repozytorium linków zapewniało w czasie rzeczywistym analizę wartości informacji w danej domenie, umożliwiając przeglądanie jedynie skończonego jej fragmentu, czyli z góry zadanego wolumeny linków URL w ramach jednej domeny.

22 17 Zgodnie z [35] poprzednie implementacje tego typu systemów crawlingowych, takie jak opisywane przez [26], [43], [64] oraz [11] oparte były na metodzie BFS 2 i nie brały pod uwagę faktu istnienia pułapek. Powodowało to bardzo szybką zbieżność procesu crawlingowego (około 3 do 4 poziomów BFS), przy bardzo ograniczonej liczbie domen, co wyczerpywało zasoby systemu czyniąc dalsze przetwarzanie bezskutecznym. W celu ograniczenia takich sytuacji stosuje się różne techniki dostosowane do konkretnych zastosowań. Jednym z przykładów rozwiązania jest stosowanie progu odcięcia drzewa BFS do ustalonej wysokości drzewa oraz wolumenu linków dla każdej domeny. Takie podejście jednak przynosi niższą dokładność w przetwarzaniu globalnego Internetu, ponieważ trudno przewidzieć i ustalić pojedynczą granicę takiego odcięcia. Wzięcie dowolnej liczby może spowodować albo zbyt płytkie przeglądnie domen, albo zbyt głębokie (co spowoduje wyczerpanie zasobów). Cytując za [35] Yahoo currently reports indexing 1.2 billion objects just within its own domain and blogspot claims over 50 million users, each with a unique hostname. Przytoczony cytat wskazuje jak duży jest rozrzut pomiędzy pojemnością poszczególnych portali oraz jak ciężki jest on do przewidzenia. Inne techniki wykorzystują dodatkowe metryki takie jak Page Rank opisaną w [3] i [46], które umożliwiają ocenę jakości domeny i przypisanie jej funkcji progu odcięcia drzewa w zależności od wyniku metryki. Z tego powodu repozytorium URL powinno zapewniać metodę umożliwiającą kontrolę poziomu zagłębienia oraz wolumenu linków dla każdej przetwarzanej domeny. Czas życia informacji Każda informacja opublikowana na stronie jest powiązana z adresem URL. Jeśli zawartość strony zmieni się w trakcie okresu czasu, może to oznaczać że nowa informacja została dodana lub stara informacja została zmodyfikowana/usunięta. System crawlingowy, który ma na celu utrzymanie dobrego stopnia synchronizacji informacji musi posiadać mechanizmy, związane z obsługą zmiany treści dostępnej pod adresem URL uprzednio odwiedzonym. Zadanie to jest dziś szczególnie trudne ze względu na bardzo dynamiczny charakter treści portali. Termin Web 2.0 powstał, aby zdefiniować ten nowy trend, gdzie to użytkownicy portalu stają się producentami treści, a dostarczanie treści trwa praktycznie nieprzerwanie i ciągle. W związku z tym istnieje problem czasu życia informacji, który możemy zdefiniować jako problem oceny, jak długo informacja, która została pobrana przez system, pozostaje aktualna. Olston et al. w [45] stwierdzają, że kluczową rolą w radzeniu sobie z oceną czasu życia informacji jest zdolność do odróżnienia informacji efemerycznej od persystentnej. Definiują oni dwa ważne wskaźniki: 2 BFS Breadth-first search.

23 18 częstotliwość zmian (change frequency) jak często strona jest uaktualniana przez właściciela (także w [10], [31] i [20]) wpływ (relevance) jak duży wpływ poprzednia i nowa strona ma wpływ na wynik wyszukiwania (także w [47] i [69]) Analizując strukturę dzisiejszych wiodących portali można stwierdzić, że zbudowane one są z elementów o bardzo zróżnicowanym typie (teksty, grafiki, nagrania audio, nagrania video, elementy interaktywne flash, itp... ). Elementy te mogą mieć charakter dynamiczny, co powoduje, że odświeżenie tej samej strony w jednym momencie powoduje wygenerowanie różnych treści (np. polecane artykuły mogą losować się przy każdym przeładowaniu strony). Przynosi to problematyczną kwestię rozpoznania, w którym momencie nastąpiła rzeczywista zmiana treści, a w którym jedynie zmieniono dobór materiałów. Olston et al. [45] skupili się w swojej pracy na wyróżnieniu tzw. individual content fragments czyli na fragmentaryzacji strony na spójne treściowo fragmenty poddawane monitoringowi. Koncepcja ta jest analogiczna do przedstawianej w rozdziale 4.2 segmentacji tekstu na potrzeby algorytmów lingwistycznych. Repozytorium linków URL powinno wobec tego umożliwiać oznaczenie poszczególnych linków URL jako gotowych do ponownego odwiedzenia po upływie pewnego momentu czasu. Taki mechanizm może być wykorzystany przez dowolną strategię odświeżania stron stosującą własną metodę określenia czasu po którym należy odświeżyć link. Formalne wymagania dla repozytoriów linków Podsumowując omówione zagadnienia i warunki jakie nałożone są na konstrukcję repozytorium linków URL zdefiniowano następujące wymagania. Repozytorium powinno umożliwiać: przechowywanie unikalnych linków URL z użyciem metody umożliwajacej szybki test unikalności adresu URL w bazie, przechowywanie głębokości adresu URL w odniesieniu do domeny w celu restrykcji dotyczących wolumenu przeglądanych stron, przechowywanie kolejki linków do odwiedzenia w sposób priorytetyzowany, rozróżnianie stanów adresów URL związanych z gotowością do odwiedzenia, zakończenia przeglądania, ponownej gotowości do odwiedzenia, odporność na błędy gwarantującą, że każdy link zostanie przetworzony niezależnie od awarii poszczególnych crawlerów.

24 Relacyjna baza danych W teście porównawczym użyty został silnik relacyjnych baz danych PostgreSQL w wersji 8.2. System ten jest popularną bazą obiektowo-relacyjną udostępnioną na zasadzie otwartych źródeł. PostgreSQL jest aktywnie rozwijany od ponad 15 lat, w ciągu których dojrzała architektura tego systemu potwierdziła swoją jakość, niezawodność, spójność i poprawność uzyskując dobrą reputację wśród dużego grona użytkowników na całym świecie. PostgreSQL posiada wersje na większość głównie używanych systemów operacyjnych w tym Linux, UNIX (AIX, BSD, HP-UX, SGI IRIS, Mac OS X, Solaris, Tru64) oraz Windows. Silnik bazodanowy w pełni obsługuje ACID (atomicity, consistency, isolation, durability), tzn. zapewnia atomowość transakcji, spójność transakcji, izolację transakcji oraz trwałość danych. 3 W celu przetestowania wydajności przechowywania odsyłaczy URL w relacyjnej bazie danych utworzono prosty schemat bazy danych oparty na dwóch tabelach: pages oraz pagestoupdate. Pierwsza tabela pages była odpowiedzialna za przechowywanie odsyłaczy URI wraz z dodatkowymi metainformacjami. W języku SQL tabela posiadała następującą strukturę: CREATE TABLE pages ( id bigserial primary key, url character(300) unique, checksum character(32) default, page_size int default 0, last_visit timestamp default null ); Druga tabela pagestoupdate zawierała kolejkę stron, które należało odwiedzić w dalszym toku crawlingu: CREATE TABLE pagestoupdate ( page_id bigserial primary key REFERENCES pages(id) ON DELETE CASCADE, newpage boolean default true, blockade timestamp default null ); Dodawanie elementów oparte było na kwerendach w języku SQL opartych na poleceniu INSERT. Wybieranie elementów do przetwarzania oparte było także na kwerendach SQL wykorzystujących warunki czasowe związane z przeterminowaniem ważności ostatniej wizyty. W celu przyspieszenia operacji SELECT utworzono następujące indeksy. 3

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe. Autor: Mariusz Sasko Promotor: dr Adrian Horzyk Plan prezentacji 1. Wstęp 2. Cele pracy 3. Rozwiązanie 3.1. Robot

Bardziej szczegółowo

Pojęcie bazy danych. Funkcje i możliwości.

Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Badanie struktury sieci WWW

Badanie struktury sieci WWW Eksploracja zasobów internetowych Wykład 1 Badanie struktury sieci WWW mgr inż. Maciej Kopczyński Białystok 214 Rys historyczny Idea sieci Web stworzona została w 1989 przez Tima BernersaLee z CERN jako

Bardziej szczegółowo

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych Marcin Deptuła Julian Szymański, Henryk Krawczyk Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Architektury

Bardziej szczegółowo

!!!!!!!!!!! PORTFOLIO: Analiza zachowań użytkowników serwisów internetowych. Autorzy: Marek Zachara

!!!!!!!!!!! PORTFOLIO: Analiza zachowań użytkowników serwisów internetowych. Autorzy: Marek Zachara PORTFOLIO: Analiza zachowań użytkowników serwisów internetowych Autorzy: Marek Zachara Opis merytoryczny Cel naukowy (jaki problem wnioskodawca podejmuje się rozwiązać, co jest jego istotą, co uzasadnia

Bardziej szczegółowo

Faza Określania Wymagań

Faza Określania Wymagań Faza Określania Wymagań Celem tej fazy jest dokładne określenie wymagań klienta wobec tworzonego systemu. W tej fazie dokonywana jest zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie

Bardziej szczegółowo

Indeksowanie w bazach danych

Indeksowanie w bazach danych w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka

Modelowanie jako sposób opisu rzeczywistości. Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka Modelowanie jako sposób opisu rzeczywistości Katedra Mikroelektroniki i Technik Informatycznych Politechnika Łódzka 2015 Wprowadzenie: Modelowanie i symulacja PROBLEM: Podstawowy problem z opisem otaczającej

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią

Tomasz Grześ. Systemy zarządzania treścią Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,

Bardziej szczegółowo

Nauczanie na odległość

Nauczanie na odległość P o l i t e c h n i k a W a r s z a w s k a Nauczanie na odległość a standaryzacja materiałów edukacyjnych Krzysztof Kaczmarski Nauczanie na odległość T Nauczanie ustawiczne T Studia przez Internet? T

Bardziej szczegółowo

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie Wykaz tabel Wykaz rysunków Przedmowa 1. Wprowadzenie 1.1. Wprowadzenie do eksploracji danych 1.2. Natura zbiorów danych 1.3. Rodzaje struktur: modele i wzorce 1.4. Zadania eksploracji danych 1.5. Komponenty

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r.

Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Załącznik nr 1. Specyfikacja techniczna portalu internetowego Łódź, 15.10.2012 r. Stworzenie platformy internetowej na potrzeby projektu. 1 Wykonanie portalu internetowego na potrzeby e-usługi, obejmującego

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

W poszukiwaniu sensu w świecie widzialnym

W poszukiwaniu sensu w świecie widzialnym W poszukiwaniu sensu w świecie widzialnym Andrzej Śluzek Nanyang Technological University Singapore Uniwersytet Mikołaja Kopernika Toruń AGH, Kraków, 28 maja 2010 1 Podziękowania Przedstawione wyniki powstały

Bardziej szczegółowo

Transformacja wiedzy w budowie i eksploatacji maszyn

Transformacja wiedzy w budowie i eksploatacji maszyn Uniwersytet Technologiczno Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy Wydział Mechaniczny Transformacja wiedzy w budowie i eksploatacji maszyn Bogdan ŻÓŁTOWSKI W pracy przedstawiono proces

Bardziej szczegółowo

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0> Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą

Bardziej szczegółowo

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. 1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie

Bardziej szczegółowo

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak makrakowiak@wi.zut.edu.pl Co to jest model związków encji? Model związków

Bardziej szczegółowo

Galileo - encyklopedia internetowa Plan testów

Galileo - encyklopedia internetowa Plan testów Galileo - encyklopedia internetowa Plan testów Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Matek Sobierajski 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................

Bardziej szczegółowo

Wstęp do Sztucznej Inteligencji

Wstęp do Sztucznej Inteligencji Wstęp do Sztucznej Inteligencji Rozwiązywanie problemów-i Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki Rozwiązywanie problemów Podstawowe fazy: Sformułowanie celu -

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY

METODY INŻYNIERII WIEDZY METODY INŻYNIERII WIEDZY WALIDACJA KRZYŻOWA dla ZAAWANSOWANEGO KLASYFIKATORA KNN ĆWICZENIA Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

Web frameworks do budowy aplikacji zgodnych z J2EE

Web frameworks do budowy aplikacji zgodnych z J2EE Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym

Bardziej szczegółowo

Wykład 2. Relacyjny model danych

Wykład 2. Relacyjny model danych Wykład 2 Relacyjny model danych Wymagania stawiane modelowi danych Unikanie nadmiarowości danych (redundancji) jedna informacja powinna być wpisana do bazy danych tylko jeden raz Problem powtarzających

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

Metody indeksowania dokumentów tekstowych

Metody indeksowania dokumentów tekstowych Metody indeksowania dokumentów tekstowych Paweł Szołtysek 21maja2009 Metody indeksowania dokumentów tekstowych 1/ 19 Metody indeksowania dokumentów tekstowych 2/ 19 Czym jest wyszukiwanie informacji? Wyszukiwanie

Bardziej szczegółowo

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 Bazy Danych LITERATURA C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000 J. D. Ullman, Systemy baz danych, WNT - W-wa, 1998 J. D. Ullman, J. Widom, Podstawowy

Bardziej szczegółowo

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak OpenAI Gym Adam Szczepaniak, Kamil Walkowiak Plan prezentacji Programowanie agentowe Uczenie przez wzmacnianie i problemy związane z rozwojem algorytmów Charakterystyka OpenAI Gym Biblioteka gym Podsumowanie

Bardziej szczegółowo

Nowe spojrzenie na prawo

Nowe spojrzenie na prawo LEX 2 Nowe spojrzenie na prawo Od 25 lat informujemy o prawie i tworzymy narzędzia przekazujące tę wiedzę. Szybko. Intuicyjnie. Nowocześnie. Stawiamy sobie za cel sprostanie wymaganiom naszych Klientów.

Bardziej szczegółowo

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne Architektury i technologie integracji danych Systemy Mediacyjne Multi-wyszukiwarki Wprowadzenie do Mediacyjnych Systemów Zapytań (MQS) Architektura MQS Cechy funkcjonalne MQS Cechy implementacyjne MQS

Bardziej szczegółowo

WPROWADZENIE DO BAZ DANYCH

WPROWADZENIE DO BAZ DANYCH WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

Wykład XII. optymalizacja w relacyjnych bazach danych

Wykład XII. optymalizacja w relacyjnych bazach danych Optymalizacja wyznaczenie spośród dopuszczalnych rozwiązań danego problemu, rozwiązania najlepszego ze względu na przyjęte kryterium jakości ( np. koszt, zysk, niezawodność ) optymalizacja w relacyjnych

Bardziej szczegółowo

AUTOMATYKA INFORMATYKA

AUTOMATYKA INFORMATYKA AUTOMATYKA INFORMATYKA Technologie Informacyjne Sieć Semantyczna Przetwarzanie Języka Naturalnego Internet Edytor Serii: Zdzisław Kowalczuk Inteligentne wydobywanie informacji z internetowych serwisów

Bardziej szczegółowo

Podstawy pracy w systemie Doradca.

Podstawy pracy w systemie Doradca. Podstawy pracy w systemie Doradca. Wstęp. Program Doradca jest aplikacją systemu Windows typu klient- serwer. Oznacza to że baza z dokumentami, użytkownikami, klientami i innymi zasobami znajduje się na

Bardziej szczegółowo

Administracja bazami danych

Administracja bazami danych Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi

Bardziej szczegółowo

Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI

Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI Projekt przejściowy 2016/2017 BARTOSZ JABŁOŃSKI Kto, co, jak i kiedy Kto? dr inż. Bartosz Jabłoński bartosz.jablonski@pwr.edu.pl s. P0.2, C-16 http://jablonski.wroclaw.pl O co chodzi? Celem przedmiotu

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Internet, jako ocean informacji. Technologia Informacyjna Lekcja 2

Internet, jako ocean informacji. Technologia Informacyjna Lekcja 2 Internet, jako ocean informacji Technologia Informacyjna Lekcja 2 Internet INTERNET jest rozległą siecią połączeń, między ogromną liczbą mniejszych sieci komputerowych na całym świecie. Jest wszechstronnym

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny? Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA Dlaczego DNS jest tak ważny? DNS - System Nazw Domenowych to globalnie rozmieszczona usługa Internetowa. Zapewnia tłumaczenie nazw domen

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

Priorytetyzacja przypadków testowych za pomocą macierzy

Priorytetyzacja przypadków testowych za pomocą macierzy Priorytetyzacja przypadków testowych za pomocą macierzy W niniejszym artykule przedstawiony został problem przyporządkowania priorytetów do przypadków testowych przed rozpoczęciem testów oprogramowania.

Bardziej szczegółowo

Dziennik Urzędowy Unii Europejskiej L 274/9

Dziennik Urzędowy Unii Europejskiej L 274/9 20.10.2009 Dziennik Urzędowy Unii Europejskiej L 274/9 ROZPORZĄDZENIE KOMISJI (WE) NR 976/2009 z dnia 19 października 2009 r. w sprawie wykonania dyrektywy 2007/2/WE Parlamentu Europejskiego i Rady w zakresie

Bardziej szczegółowo

PageRank i HITS. Mikołajczyk Grzegorz

PageRank i HITS. Mikołajczyk Grzegorz PageRank i HITS Mikołajczyk Grzegorz PageRank Metoda nadawania indeksowanym stronom internetowym określonej wartości liczbowej, oznaczającej jej jakość. Algorytm PageRank jest wykorzystywany przez popularną

Bardziej szczegółowo

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych Laboratorium Technologii Informacyjnych Projektowanie Baz Danych Komputerowe bazy danych są obecne podstawowym narzędziem służącym przechowywaniu, przetwarzaniu i analizie danych. Gromadzone są dane w

Bardziej szczegółowo

Algorytm genetyczny (genetic algorithm)-

Algorytm genetyczny (genetic algorithm)- Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie

Bardziej szczegółowo

Ontologie, czyli o inteligentnych danych

Ontologie, czyli o inteligentnych danych 1 Ontologie, czyli o inteligentnych danych Bożena Deka Andrzej Tolarczyk PLAN 2 1. Korzenie filozoficzne 2. Ontologia w informatyce Ontologie a bazy danych Sieć Semantyczna Inteligentne dane 3. Zastosowania

Bardziej szczegółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka projektowania komputerowych systemów sterowania Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania

Bardziej szczegółowo

SQL SERVER 2012 i nie tylko:

SQL SERVER 2012 i nie tylko: SQL SERVER 2012 i nie tylko: Wstęp do planów zapytań Cezary Ołtuszyk coltuszyk.wordpress.com Kilka słów o mnie Starszy Administrator Baz Danych w firmie BEST S.A. (Bazy danych > 1TB) Konsultant z zakresu

Bardziej szczegółowo

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:

Bardziej szczegółowo

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku z wykorzystaniem systemu ADONIS Krok po kroku BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H W O J S K O W A A K A D E M I A T E C H N I C Z N A W Y D Z I A Ł E L E K T R O N I K I Drukować dwustronnie P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H Grupa... Data wykonania

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PRZESTRZENNE BAZY DANYCH WYKŁAD 2 PRZESTRZENNE BAZY DANYCH WYKŁAD 2 Baza danych to zbiór plików, które fizycznie przechowują dane oraz system, który nimi zarządza (DBMS, ang. Database Management System). Zadaniem DBMS jest prawidłowe przechowywanie

Bardziej szczegółowo

Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego

Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego Ewaluacja biegłości językowej Od pomiaru do sztuki pomiaru Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego Tomasz Żółtak Instytut Badań Edukacyjnych oraz

Bardziej szczegółowo

Struktura drzewa w MySQL. Michał Tyszczenko

Struktura drzewa w MySQL. Michał Tyszczenko Struktura drzewa w MySQL Michał Tyszczenko W informatyce drzewa są strukturami danych reprezentującymi drzewa matematyczne. W naturalny sposób reprezentują hierarchię danych toteż głównie do tego celu

Bardziej szczegółowo

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204 Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego

Bardziej szczegółowo

Standard określania klasy systemu informatycznego resortu finansów

Standard określania klasy systemu informatycznego resortu finansów Dane dokumentu Nazwa Projektu: Kontrakt Konsolidacja i Centralizacja Systemów Celnych i Podatkowych Studium Projektowe Konsolidacji i Centralizacji Systemów Celnych i Podatkowych (SPKiCSCP) Numer wersji

Bardziej szczegółowo

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy

Podrozdziały te powinny zawierać informacje istotne z punktu widzenia przyjętego celu pracy Uwaga: 1. Praca powinna być napisana z użyciem formy bezosobowej np. wykonano. Nazwa rozdziału Zawartość Liczba stron 1. Wstęp Rozdział ten powinien zawierać zarys najważniejszych elementów pracy Krótki

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Opracowanie systemu monitorowania zmian cen na rynku nieruchomości

Opracowanie systemu monitorowania zmian cen na rynku nieruchomości Opracowanie systemu monitorowania zmian cen na rynku nieruchomości Ogólne założenia planowanego projektu Firma planuje realizację projektu związanego z uruchomieniem usługi, która będzie polegała na monitorowaniu

Bardziej szczegółowo

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Usługi analityczne budowa kostki analitycznej Część pierwsza. Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Wprowadzenie w tematykę zarządzania projektami/przedsięwzięciami

Wprowadzenie w tematykę zarządzania projektami/przedsięwzięciami Wprowadzenie w tematykę zarządzania projektami/przedsięwzięciami punkt 2 planu zajęć dr inż. Agata Klaus-Rosińska 1 DEFINICJA PROJEKTU Zbiór działań podejmowanych dla zrealizowania określonego celu i uzyskania

Bardziej szczegółowo

3.1. Na dobry początek

3.1. Na dobry początek Klasa I 3.1. Na dobry początek Regulamin pracowni i przepisy BHP podczas pracy przy komputerze Wykorzystanie komputera we współczesnym świecie Zna regulamin pracowni i przestrzega go. Potrafi poprawnie

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA SYSTEMY ROZMYTE Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium

Bardziej szczegółowo

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA Symbol Efekty kształcenia dla kierunku studiów INFORMATYKA, specjalność: 1) Sieciowe systemy informatyczne. 2) Bazy danych Absolwent studiów I stopnia kierunku Informatyka WIEDZA Ma wiedzę z matematyki

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

Lokalizacja Oprogramowania

Lokalizacja Oprogramowania mgr inż. Anton Smoliński anton.smolinski@zut.edu.pl Lokalizacja Oprogramowania 16/12/2016 Wykład 6 Internacjonalizacja, Testowanie, Tłumaczenie Maszynowe Agenda Internacjonalizacja Testowanie lokalizacji

Bardziej szczegółowo

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz Temat Gdańsk 30.06.2006 1 Praca dyplomowa Temat pracy: Program do monitorowania i diagnostyki działania sieci CAN. Autor: Łukasz Olejarz Opiekun: dr inż. M. Porzeziński Recenzent: dr inż. J. Zawalich Gdańsk

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK

Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK Projekt przejściowy 2015/2016 BARTOSZ JABŁOŃSKI, TOMASZ JANICZEK Kto? dr inż. Tomasz Janiczek tomasz.janiczek@pwr.edu.pl s. P1.2, C-16 dr inż. Bartosz Jabłoński bartosz.jablonski@pwr.edu.pl s. P0.2, C-16

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska System gromadzenia, indeksowania i opisu słownikowego norm i rekomendacji Praca magisterska Jakub Reczycki Opiekun : dr inż. Jacek Rumiński Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Bardziej szczegółowo

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych. *Grafomania z Neo4j Praktyczne wprowadzenie do grafowej bazy danych. Jak zamodelować relacyjną bazę danych reprezentującą następujący fragment rzeczywistości: Serwis WWW opisuje pracowników różnych firm

Bardziej szczegółowo

Systemy GIS Systemy baz danych

Systemy GIS Systemy baz danych Systemy GIS Systemy baz danych Wykład nr 5 System baz danych Skomputeryzowany system przechowywania danych/informacji zorganizowanych w pliki Użytkownik ma do dyspozycji narzędzia do wykonywania różnych

Bardziej szczegółowo

Referat pracy dyplomowej

Referat pracy dyplomowej Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.

Bardziej szczegółowo

Wyszukiwanie plików w systemie Windows

Wyszukiwanie plików w systemie Windows 1 (Pobrane z slow7.pl) Bardzo często pracując na komputerze prędzej czy później łapiemy się na pytaniu - Gdzie jest ten plik? Zapisujemy i pobieramy masę plików i w nawale pracy pewne czynności są wykonywane

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania Przedmiot: Bazy danych Rok: III Semestr: V Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 21 Ćwiczenia Laboratorium 30 21 Projekt Liczba punktów ECTS: 4 C1 C2 C3 Cel przedmiotu

Bardziej szczegółowo

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny. PI-14 01/12 Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.! Likwidacja lub znaczne ograniczenie redundancji (powtarzania się) danych! Integracja danych!

Bardziej szczegółowo

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

2010-11-22 PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH PLAN WYKŁADU Bezpieczeństwo w języku SQL Użytkownicy Uprawnienia Role BAZY DANYCH Wykład 8 dr inż. Agnieszka Bołtuć OGRANICZENIA DOSTĘPU DO DANYCH Ograniczenie danych z tabeli dla określonego użytkownika

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4 Wdrożenie modułu płatności eservice dla systemu Gekosale 1.4 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie do integracji...

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

Bardziej szczegółowo

Darmowy fragment www.bezkartek.pl

Darmowy fragment www.bezkartek.pl Wszelkie prawa zastrzeżone. Rozpowszechnianie całości lub fragmentów niniejszej publikacji w jakiejkolwiek postaci bez zgody wydawcy zabronione. Autor oraz wydawca dołożyli wszelkich starań aby zawarte

Bardziej szczegółowo

Procesy integracji modeli danych do jednolitej struktury WBD. Tadeusz Chrobak, Krystian Kozioł, Artur Krawczyk, Michał Lupa

Procesy integracji modeli danych do jednolitej struktury WBD. Tadeusz Chrobak, Krystian Kozioł, Artur Krawczyk, Michał Lupa Procesy integracji modeli danych do jednolitej struktury WBD Tadeusz Chrobak, Krystian Kozioł, Artur Krawczyk, Michał Lupa Koncepcja Wielorozdzielczej Bazy Danych Kluczowe uwarunkowania systemu generalizacji:

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Splunk w akcji. Radosław Żak-Brodalko Solutions Architect Linux Polska Sp. z o.o.

Splunk w akcji. Radosław Żak-Brodalko Solutions Architect Linux Polska Sp. z o.o. Splunk w akcji Radosław Żak-Brodalko Solutions Architect Linux Polska Sp. z o.o. 1 Splunk agent wiedzy o infrastrukturze czyli SIEM i coś więcej 2 Splunk gromadzi oraz integruje informacje dotyczące funkcjonowania

Bardziej szczegółowo