WebTrendsCrawler

Last modified by Teofil Achirei on 2009/04/03 00:34

Analiza temporală a trendurilor, semantica și rela ț iile dintre ele

Brândușa Gămăniață

Teofil Achirei

Florin Ciubotaru

Dragoș Dumitriu

1. Introducere

In anii '90, site-urile web erau relativ putine, iar accentul se punea pe expunerea informatiei si directionarea catre ea prin link-uri si ulterior directoare web.

Pe masura ce cantitatea de informatie a crescut a aparut nevoia de cautare mai rapida si eficienta. Astfel au intrat in joc marile motoare de cautare.

A fi la curent cu tot ce este nou in IT&C, a avea ultimele informatii din unul sau mai multe domenii de interes propriu, precum si parerile/recomandarile oamenilor din online capata o deosebita importanta in viata noastra.

Era web 2.0 a adus noi modalitati de expunera a informatiilor, de relationare si interactionare cu utilizatorul. Exemple de tehnologii ce aplica principile web 2.0 sunt: blogurile, wiki-uri, retele sociale, microblog-uri, iar tehnologiile de noi de accesare ale acestora sunt servicile web, feed-urile RSS sau ATOM.

Cu toate ca sursele de date au evoluat, motoarele de cautare mari interpreteaza si evalueaza in continuare paginile in maniera traditionala.

Alte neajunsuri ale motoarelor de cautare sunt:

· Nu localizeaza informatia temporal;

· Nu o prezinta intr-un context;

· Nu o analizeaza semantic

· Este necesar un string de cautare bine definit.

2. Prezentare generala

Ne propunem sa realizam un sistem software care sa rezolve o parte din aceste probleme.

· Extragem informatii din surse de date bine localizate in timp

· Articole postate pe bloguri;

· Feed-uri RSS sau ATOM ale unor site-uri de stiri;

· Servicii web ale agentiilor de presa;

· Retele sociale bazate pe content sharing

· Aplicatia ia in considerare doar informatii si subiecte relevante la un moment dat sau relevante pe termen lung.

· Se pun la dispozitie statistici despre evolutia anumitor trenduri pe parcursul anumitor perioade

· Se afectueaza analiza si monitorizarea la cerere pentru un anumit subiect.

3. Arhitectura aplicatiei

Aplicatia este dezvoltata dupa principiile "component oriented development", fiecare componeta fiind independenta ca implementare de restul aplicatiei. Fiecare modul este un black-box pentru celelalte, expuand doar un set de interfete sau servicii publice.

Faptul ca aceste componente/module sunt slab cuplate intre ele, dar bine definite, face ca dezvoltarea si intretinerea aplicatiei sa fie mult mai usoara.

· Diagrama componentelor aplicatiei:

image001.png

· Module de citire a datelor de pe internet

· Crawler: Componenta se ocupa de parcurgerea paginilor web si trimiterea continutului acestora catre Data Access Manager si pre-analizator;

· Agregatorul: extrage datele din feed-uri RSS si ATOM. In cazul in care se intalnesc link-uri catre alte pagini, acestea vor constitui intrari pentru crawler, urmand ca acesta sa le parcurga pe un numar de N nivele.

· Crawlerele de retele sociale: folosescapi-urispecialepentru a naviga de la o pagina la altasipentru a extrageinformatii . Infomatiileextrasesuntbinestructurate cu ajutorulformatelor definite prin XML+XML Schema.

· Module de tip buffer si adaptor

· Data access manager:

§ Converteste datele, din formatele specifice .NET, in formate specifice SQL si invers;

§ Asigura conexiunea cu baza de date;

§ Creaza un strat suplimentar de abstractizare a datelor;

§ Stocheaza si extrage informatii din baza de date.

· Pre-analizator:

§ Contine un cache de date referitoare la subiectele paginilor analizate in ultimul interval de timp;

§ Cache-ul este actualizat la fiecare citire a unei pagini web si la fiecare raspuns al serviciilor externe.

§ Un topic este trimis catre baza de date doar daca depaseste un numar Q de aparitii intr-un anumit interval de timp. In cazul in care paritiilor este mai mic decat Q, dar topicul este are deja stocate date despre el, atunci acestea vor fi actualizate cu datele din cache. In caz contrar el este considerat irelevant.

§ Task-urile pre-analizatorului sunt executate la intervale regulate de timp sau sunt declansate de accesarea managerului de date de catre crawlere sau nucleul aplicatiei.

· Baza de date contine

· Date structurate: tabele relationale traditionale cu date si statistici referitoare la topicurile gasite de-a lungul timpului in paginile analizate.

· Date nestructurate:

§ paginile sunt stocate in format html in vederea unei analize ulterioare, la cererea unui utilizator sau sistem extern, despre un topic neevaluat sau neactualizat.

§ Indexarea si interogarea se face pe baza unor algoritmi asemanatori de cei folositi de apache Lucene.

· Logica aplicatiei

· Contine componente pentru analiza, clasificarea si predictia evolutiei trendurilor.

· Are un modul responsabil cu asigurarea securitatii sistemului, impiedicarea abuzurilor si detectarea apelurilor sau factorilor ce pot impiedica afisarea obiectiva a rezultatelor.

· Este modulul ce efectueaza analiza efectiva a paginilor indexate, stabilind in acelasi timp si relevanta sau cuantumul fiecarei surse de date.

· Genereaza statistici pe care le stocheaza in baza de date, le afiseaza utilizatorului prin interfate web, sau le trimite prin servicii web catre un sistem extern.

· Creaza diagrame ce pot fi vizualizate de catre utilizator.

· Interfata web

· Pune la dispozitia utilizatorului medode de vizualizare a datelor si statisticilor stocate

· Îi dă acestuia posibilitatea de a cere analizarea unui subiect ce a fost omis de analizele făcute până în prezent.

· Serviciile web expuse

· Au acelasi rol ca si interfata grafica web, doar ca se adreseaza sistemelor informatice externe si nu operatorului uman.

· Tehnologiile folosite in serviciile web sunt derivate XML ca:

§ WSDL pentru descrierea serviciului web;

§ SOAP sau REST pentru formatul in care se transmit datele.