Referat, comentariu, eseu, proiect, lucrare bacalaureat, liceu si facultate
Top referateAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Ingineria Web
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
Proiectarea si organizarea site-urilor Web j7q14qk
Robotii Web
Motoarele de cautare

--------------------------------------------------------------------------------

1. Proiectarea si organizarea site-urilor Web
Bazat pe hipertext, spatiul WWW are ca raison d'être oferirea unui mecanism facil de a stoca si de a pune, ulterior, la dispozitie informatii, intr-o maniera intuitiva, non-secventiala.

1.1 Regasirea informatiilor
Cercetatorii au evidentiat mai multe activitati de regasire a informatiilor, in functie de intentiile utilizatorilor:

scanarea (scanning) - utilizatorii acopera, superficial, o arie larga de informatii;

rasfoirea (browsing, surfing) - utilizatorii viziteaza locatiile care le capteaza interesul (fara a avea stabilit un model mental despre informatiile dorite);

cautarea (searching) - utilizatorii sint motivati sa gaseasca o tinta particulara de informatii (folosind de cele mai multe ori o maniera de cautare bazata pe cuvinte cheie sau constructii in limbaj natural, de genul "Unde gasesc documentatii despre XML?");

explorarea (exploring) - utilizatorii investigheaza legaturile referitoare la o anumita informatie si pe cele conexe;

hoinareala (wandering) - utilizatorii realizeaza o navigare complet nestructurata.

Atunci cind ne aflam pe Web, de cele mai multe ori nu parcurgem la un moment dat decit o singura pagina WWW, apartinind unui server particular, fara a avea o vedere de ansamblu a modului de structurare a tuturor documentelor de la acea adresa. Astfel, spatiul Web prezinta urmatoarele caracteristici negative:

modelul plat de memorare a datelor

Documentele nu sint stocate in mod structurat pe serverele Web, ierarhiile putind fi recunoscute de cele mai multe ori doar examinind URI-urile. In mod uzual, paginile nu au legaturi catre documentul parinte ("radacina" site-ului, /index.html sau /default.htm, in functie de serverul Web folosit).




legaturile unidirectionale

Limbajul HTML nu ofera decit posibilitatea de specificare a hiperlegaturilor unidirectionale, simple. Este dificil de a alcatui o harta locala continind toate sursele si destinatiile legaturilor dintre paginile Web ale unui server. Retelele sofisticate de legaturi conduc la o navigare greoaie si devin surse de confuzie.

lipsa unei harti globale de navigare

Nu se poate realiza o harta globala de navigare prin intreg spatiul WWW, intr-o maniera ierarhica.

mentinerea legaturilor

Legaturile fiind stocate in interiorul documentelor, nu exista posibilitatea de a adauga adnotari sau de a modifica legaturile dintr-o pagina fara a fi proprietarul acesteia. Mentinerea integritatii legaturilor pentru site-uri Web continind un numar foarte mare de documente se dovedeste dificila. De cele mai multe ori se utilizeaza programe de verificare a disponibilitatii legaturilor si de construire a ierarhiilor de legaturi intre paginile unui site Web (e.g. aplicatia ICE scrisa in Perl).

1.2 Proiectarea site-urilor Web
Problemele practice de construire si de mentinere a unui site Web de dimensiuni moderate (100 de pagini) pot fi multiple: marea majoritate a documentelor se modifica frecvent, avind un continut dinamic, dificil de controlat, legaturile dintre pagini nu sint statice, schimbari minore pot genera modificari substantiale de structura a site-ului, designul uneori intra in contradictie cu functionalitatea.

O parte dintre rezolvari se intrevad in generarea dinamica a paginilor folosind scripturi si sisteme de baze de date, la nivelul serverului sau clientului Web, generindu-se asa-numitele "structuri virtuale" (Frank Halasz).

Pot fi utilizate si diverse aplicatii vizuale precum Macromedia Dreamwaver sau Microsoft FrontPage pentru a organiza in mod automat paginile compunind un site sau un fragment de site Web.

Ca si la ingineria software, atunci cind trebuie construit un site se iau in consideratie, in vederea rafinarii ulterioare, fazele urmatoare:

cerintele

analiza si proiectarea

implementarea si documentarea

mentinerea

Cerintele sint discutate in amanunt cu beneficiarul, cazindu-se de comun acord asupra unor aspecte generale si/sau particulare ale site-ului respectiv. Beneficiarul, autorul ori ambii pot decide care va fi platforma tinta (sistemul hardware, sistemul de operare, serverul Web, clientul/clientii Web, limbajul de scripting si modul de procesare (interpretare sau compilare), nivelul programarii Web (pe server, la client sau o abordare mixta), sistemul de management al bazelor de date si al altor resurse, cerintele de securitate si de autentificare, design-ul general al site-ului, frecventa actualizarii informatiilor si dinamicitatea lor, audienta si specificul continutului etc.

Proiectarea interfetei cu utilizatorul, partea cea mai vizibila si evidenta a unui site, este una dintre cele mai importante faze in procesul de dezvoltare a unei aplicatii destinate spatiului WWW.


Posibilitatea navigarii structurate intr-un site Web
Putem formula citeva sugestii in acest sens:

Autorii de pagini Web vor trebui sa furnizeze un mecanism de navigare facila, structurata, prin utilizarea unor legaturi de explorare si/sau bidirectionale si oferirea de meniuri, arbori de parcurgere a legaturilor, optiuni de deplasare secventiala (e.g. butoane Pagina urmatoare, Pagina precedenta, La inceputul paginii, Inapoi la pagina principala etc.).

Evitarea scrierii de documente de dimensiuni mari, in care utilizatorul, pentru a parcurge intreg continutul, trebuie sa foloseasca intensiv barele de derulare (scroll). Este indicat ca aceste pagini sa fie divizate in documente mai mici, fiecare continind in jur de 500 de cuvinte/pagina. Aceasta impartire are si avantajul actualizarii mai eficiente a continutului si a parcurgerii totale a documentului de catre cei interesati.

Internationalizarea reprezinta un alt factor important. De evitat frazele lungi, folosind expresii colocviale sau regionalisme. Autorii pot realiza documente separate pentru fiecare limba dorita (de exemplu, in cazul nostru, romana si engleza) si sa detecteze, dupa adresa clientului Web, care ar putea fi localizarea sa (in interiorul sau in afara tarii). De asemeni, trebuie acordata mare atentie corectitudinii gramaticale a textului. Se recomanda ca fiecare document sa fie parcurs, inainte de a fi disponibil pe Web, de un expert filolog.

De evitat utilizarea a mai mult de trei tipuri de fonturi (pentru citirea de pe ecran cele mai lizibile sint Verdana si Georgia, iar pentru tiparire Times Roman si Arial). Fonturile specifice unor platforme particulare nu vor fi corect sau nu vor putea fi afisate pe alte calculatoare.

Este mult mai usor de parcurs un document al carui continut a fost structurat pe capitole, sub-capitole, sectiuni si paragrafe, corect aliniate si indentate (eventual folosind linii orizontale). Folosirea listelor neordonate sau/si ordonate creste gradul de lizibilitate a paginii Web.

Liniile lungi de text nu sint recomandabile, optim fiind un numar de 65-70 de caractere pe o singura linie (nu mai mult de 15-20 de cuvinte/linie). De asemeni, alinierea la dreapta sau centrata, scrierea cu majuscule ori modificari frecvente de culoare ale unui text de dimensiuni mari implica dificultati de parcurgere.

Utilizarea unor imagini de fundal "incarcate" (texturi complicate, fotografii etc.), animate sau contrastind violent cu culoarea textului conduce la evitarea parcurgerii continutului acelei pagini. Nu se recomanda animatiile (fisiere GIF sau applet-uri Java), imaginile de dimensiuni mari, contrastele, fundalurile sonore deranjante. Pentru paginile continind un volum mare de informatie textuala, cea mai buna solutie este fundal alb pentru text negru.

Informatiile vor trebui reactualizate in mod regulat, verificindu-se integritatea tuturor legaturilor (se evita astfel existenta asa-numitelor "legaturi moarte").

Pentru incarcarea mai rapida a documentelor HTML, fiecare element care implica pozitionare va avea atasate atributele care sa indice navigatorului Web locul in cadul ferestrei (pentru imagini si applet-uri se vor specifica inaltimea si latimea, pentru tabele se va furniza latimea celulelor, se vor utiliza proprietati CSS de pozitionare absoluta sau relativa etc.). Tabelele de dimensiuni considerabile nu sint recomandabile, la fel fisierele (multimedia sau arhive) avind lungimi mari, numarul mare de applet-uri, controale ActiveX, cadre sau rutine JavaScript.

De preferat ar fi ca intreg site-ul sa fie testat pe mai multe navigatoare, versiuni si platforme. Codul HTML trebuie scris asa fel incit sa nu foloseasca extensii particulare, nestandard, sau elemente considerate demodate. Trebuie considerata si situatia in care documentele pot fi parcurse si de navigatoare text, nu grafice (e.g. pentru fiecare imagine se va furniza, ca alternativa, o explicatie textuala). Fiecare ancora poate avea atasata o tasta (scurtatura) care o activeaza.

Pentru reutilizarea stilurilor sau script-urilor si a modificarii facile a acestora, este bine ca ele sa fie specificate ca fisiere externe, separindu-le de continutul efectiv al documentului.

Astfel, foile de stiluri pot fi incarcate, in antetul documentelor HTML, prin:

<link rel="stylesheet" type="text/css" href="web.css">

Script-urile pot fi specificate folosind atributul src intr-un element <script>:

<script src="navigate.js" language="JavaScript"></script>

Pentru a asigura independenta de browser, rutinele JavaScript trebuie sa fie atent concepute si testate.

In cadrul paginilor este indicat a se folosi linii de comentarii pentru explicarea modului de marcare si furnizarea altor detalii utile. De asemeni, fiecare document HTML trebuie sa aiba precizat un titlu adecvat (prin intermediul elementului <title>). Folosind tag-ul <meta> pot fi specificate diverse informatii referitoare la autorul, cuvintele cheie, generatorul automat ale documentului (dupa cum vom vedea si mai jos).

2. Robotii Web
2.1 Prezentare generala
Robotii Web, regasiti si sub numele de paianjeni (spiders), reprezinta programe care traverseaza in mod automat structura hipertext a spatiului WWW, in scopuri de extragere a informatiilor folosind protocoalele Web standard.

Trebuie facuta o distinctie clara intre robotii Web si navigatoarele Web care sunt aplicatii actionate de om sau intre robotii Web si agentii Web care se bucura si de alte caracteristici, precum inteligenta, mobilitatea ori autonomia.

Activitatea unui robot Web este cea de a realiza o conexiune HTTP (HyperText Transfer Protocol) la un server Web continind un set de pagini, pornind de la un identificator uniform de resurse (URI), de a extrage informatiile dintr-un document HTML si din toate documentele desemnate de legaturile lui.

2.2 Utilizari
Robotii Web se pot utiliza in scopuri multiple, dintre care amintim:

analiza statistica

Prin traversarea unui intreg site Web, un robot poate furniza date privind media documentelor stocate pe un server, procentul de documente de un anumit tip, marimea medie a unei pagini, gradul de interconectare cu alte documente, locale sau la distanta etc. In fapt, primul robot implementat a fost conceput cu scopul de a contoriza serverele Web din lume, pentru a se cerceta cit de intins este spatiul hipertext.

mentinere

In prezent, este foarte important a se mentine in bune conditiuni starea hiperlegaturilor dintre documentele Web. Un robot poate ajuta la descoperirea si rezolvarea asa-numitelor "legaturi moarte" care pointeaza spre resurse inexistente. Desi serverele Web pot inregistra toate cererile care nu pot fi satisfacute din cauza specificarii adreselor invalide, administratorul unui site Web de proportii poate recurge la asistarea din partea unui robot (ca MOMSpider) pentru descoperirea automata a legaturilor eronate.

Robotii pot verifica si structura documentelor HTML, semnalind erorile de design si de stil ale acestora.

oglindire

Tehnica oglindirii (mirroring) este preluata de la arhivele FTP, reprezentind copierea la alta locatie a intregii structuri arborescente, in mod recursiv, a fisierelor unui site si reactualizarea periodica a acestora. Aceasta asigura fiabilitate, viteza mai mare de transfer, evitarea incarcarii traficului de retea sau acces neconectat (off-line).

Pentru Web, oglindirea poate fi realizata de un robot (e.g. wget din distributiile Linux sau Teleport), care trebuie sa aiba grija de rescrierea referintelor la alte documente, la pastrarea integritatii hipertextului si la actualizarea regulata a paginilor WWW.

Oglindirea poate fi evitata, folosind in mod inteligent memoria cache a serverelor proxy (intermediare), care ofera posibilitati de actualizare selectiva si de organizare a resurselor.

descoperirea resurselor

Probabil cea mai spectaculoasa si importanta aplicatie a robotilor Web este utilizarea lor la descoperirea resurselor. Cresterea progresiva a volumului de informatii a dus la necesitatea conceperii de aplicatii pentru sumarizarea, indexarea, supraveghierea modificarilor informatiilor de pe Web.

Astfel, fiecare motor de cautare, continind baze de date privind localizarea si tipul de informatii dorite de utilizatori, apeleaza la serviciul robotilor Web pentru descoperirea resurselor Internet.

Un avantaj suplimentar este cel dat de monitorizarea modificarilor survenite in cadrul paginilor Web (servicii "Mind-It" sau "What's new").

utilizari combinate

Desigur, robotii Web pot indeplini sarcini multiple, ca de exemplu descoperirea resurselor si realizarea de statistici Web sau mentinerea integritatii legaturilor si, concomitent, detectarea schimbarilor documentelor HTML.

2.3 Pericole si costuri de utilizare ale robotilor
Prin traversarea unui numar mare de hiperlegaturi, robotii necesita o largime buna de banda, deoarece ei pot opera continuu perioade lungi de timp (saptamini sau chiar luni). Pentru a accelera aceste operatii, multi roboti au implementate tehnici de extragere paralela a datelor, metoda denumita operare in foc rapid (rapid fire), rezultind un trafic considerabil (o incetinire temporara a transferului de date). Mai mult, serverele Web pot fi supraincarcate de cereri multiple de accesare venite din partea robotilor in detrimentul cererilor agentilor-utilizator. Asadar implementarea robotilor permitind foc rapid trebuie evitata.

Un alt aspect care trebuie luat in consideratie este timpul de actualizare a bazelor de date ale motoarelor de cautare folosind pentru descoperirea resurselor robotii Web. Robotii de cautare a informatiilor vor trebui sa decida care informatii sunt importante a fi transmise programelor de indexare.

Un alt pericol deriva din exploatarea necontrolata a robotilor Web de catre utilizatorii finali care pot folosi optiuni inadecvate sau pot rula mai multe instante de program, conducind la abuzuri nedorite.

Robotii Web, in special cei netestati indeajuns, pot fi ineficienti sau pot poseda vicii de arhitectura si astfel sa dauneze traficului de informatii pe Internet, mai ales daca sunt folositi de persoane neavizate ori de neprofesionisti. Implementari eronate pot determina robotii sa intre in arii aproape infinite denumite gauri negre (atunci cind de exemplu un document are o legatura care se refera la el insusi, iar programul nu detecteaza acest aspect). De asemeni, robotii nu trebuie sa acceseze tipuri de date fara relevanta, avind dimensiuni considerabile (e.g. arhive, fisiere executabile, fisiere multimedia etc.).

2.4 Tipuri de roboti Web
Criteriile de clasificare a robotilor sunt multiple, vom incerca sa prezentam robotii Web dupa activitatile care pot sa le realizeze.

roboti academici - sunt acei roboti disponibili in medii academice, avind ca scop anumite activitati de colectare a datelor dintr-o universitate sau de mentinere a integritatii legaturilor dintr-un site academic.

roboti de proiectare - poseda capabilitati de proiectare si de asistare in activitatile de design a paginilor Web sau de proiectare a altor tipuri de roboti.

roboti conversationali - ofera un partener virtual de discutii in Internet, fiind de obicei integrati serviciilor de teleconferinte pe Web. Ca exemplu, putem mentiona Eliza.

roboti de comert - sunt roboti inlesnind activitatile de comert electronic, licitatii pe Web, bursa etc.

roboti distractivi - ofera diverse facilitati de amuzament (jocuri, predictii, recomandari de adrese interesante etc.) pentru utilizatorii care parcurg paginile Web.

roboti guvernamentali - sunt acei roboti vizind servere continind informatii de interes guvernamental sau diplomatic ori cu caracter secret.

roboti inteligenti - manipuleaza informatii, posedind inteligenta artificiala, fiind utilizati pentru explorarea inteligenta a resurselor Web (e.g. Harvest sau W3QS).

roboti de stiri - monitorizeaza grupurile de stiri de pe Internet, modificarile din cadrul site-urilor mass-media (ziare electronice, posturi radio sau de televiziune prezente pe Web etc.), schimbarile de adrese si altele.

roboti de cautare - sunt robotii utilizati de motoarele de cautare (ca de exemplu WebCrawler). Vezi mai jos.

roboti de actualizare - se folosesc pentru actualizarea automata a hiperlegaturilor si pentru detectia schimbarii adreselor Web.

2.5 Standardul de excludere a robotilor

Pentru excluderea robotilor din zone Web lipsite de relevanta, continind date temporare ori private, s-a adoptat un standard pentru excluderea robotilor. Acest standard se bazeaza pe accesarea unui fisier text robots.txt (stocat in directorul radacina al serverului WWW) de catre un robot de explorare, fisierul specificind ce parti vor fi evitate de la parcurgerea automata (pentru evitarea gaurilor negre sau din alte ratiuni).

Un exemplu de astfel de fisier este cel de mai jos:

#/robots.txt pentru https://www.infoiasi.ro
User-agent: * # toti robotii
Disallow: /tmp/ # date temporare
Disallow: /busaco/work/ # spatiu privat

In vederea evitarii indexarii continutului unei pagini Web se poate scrie in antetul ei:

<meta name="robots" content="noindex">

Anumiti roboti pot utiliza tag-uri specifice (ascunse) care sa dicteze un anumit comportament pentru acea pagina Web (asa cum se intimpla in cazul de programului de oglindire Teleport).

2.6 Sfaturi in conceperea unui robot Web
Inainte de a purcede la conceperea unui robot, folosind sau nu metode de calcul al hiperinformatiei, trebuiesc avute in vedere urmatoarele:

Chiar avem nevoie de un alt robot sau adoptam nevoilor noastre unul deja existent?

Robotul trebuie identificat usor de administratorul Web si autorul acelui robot trebuie sa fie contactat facil.

Robotul va trebui sa fie mai intii testat pe date locale, intr-o retea proprie, inainte de a fi disponibil in Internet.

Robotul va fi moderat in ceea ce priveste resursele: prevenirea focului rapid, eliminarea cautarilor redundante si inutile.

Robotul se va conforma standardului de excludere a robotilor.

Autorul robotului va analiza continuu activitatile robotului propriu.

Rezultatele furnizate de robot (diversele statistici sau alte date) vor putea fi facute disponibile spre consultare celor interesati.

Majoritatea robotilor Web actuali respecta recomandarile de mai sus.

2.7 Exemple
DataBots - un robot manipulind informatii
Creatie a companiei Imagination Engines Incorporated, DataBots este un robot utilizat in descoperirea informatiilor pe Web, folosind tabelele Excel pentru generarea unor retele neuronale menite a analiza datele luate din Internet. Paradigma utilizata este denumita Creativity Machine, permitind luarea decizilor asistata de calculator pe baza informatiilor extrase de robotul Web.

Wisebot - utilizat pentru administrarea site-urilor Web
Wisebot este o aplicatie a companiei Tetranet, putind fi utilizat la organizarea unui site Web. Robotul efectueaza o analiza a tuturor paginilor Web existente pe un server, retinind intr-o baza de date cele mai importante informatii despre ele (titlu, cuvinte-cheie, timpul ultimei actualizari etc.). Robotul poate automat genera cuvintele cheie aferente unei pagini, utilizind tehnologia Extractor, prin contorizarea celor mai frecvente cuvinte si luind in consideratie pozitia lor in cadrul paginii. Astfel, se construieste un index pentru intreg continutul hipertext al serverului, care va fi sursa pentru harta de navigare in cadrul site-ului (actualizata la momente regulate de timp in mod automat).

Acest robot este disponibil in mediile Windows. Pentru platformele UNIX, exista o multitudine de roboti similari, dintre care se pot mentiona tkWWW (scris in Tcl/Tk) sau RBSE (Repository Based Software Engineering).

Inktomi - statistici Web
Robotul de cautare Inktomi a fost conceput in cadrul unui proiect de cercetare condus de Eric Brewer si Paul Gautier de la Universitatea Berkeley, cu scopul de a utiliza tehnicile de procesare paralela pentru indexarea, cautarea si analiza paginilor Web. Primele seturi de date au fost preluate in perioada iulie-octombrie 1995 colectindu-se 1,3 milioane de documente HTML unice, urmate in noiembrie 1996 de 2,6 milioane de documente HTML.

Experimentul
In cadrul prelucrarii datelor colectate de robot, s-au folosit urmatoarele aplicatii:

libink este o biblioteca de componente pentru extragerea si manipularea datelor hipertext, constind din patru module principale:

analizorul HTML este un scaner lexical inspirat din flex, configurabil si rapid;

analizorul URI este un analizor al identificatorilor uniformi de resurse (URI);

translatorul DNS converteste adresele simbolice ale serviciului numelor de domenii (DNS) in adrese IP numerice, utilizind o memorie cache suplimentara;

serviciile generale pentru tabele hash sunt folosite in cadrul procesului de prelucrare a datelor, implementind tabele hash distribuite.

style este un program standard UNIX raportind diverse proprietati statistice (lungimea medie a unei fraze, numarul mediu de propozitii dintr-o fraza complexa, numarul total de cuvinte etc.) utile analizei documentelor din perspectiva limbajului natural. In cadrul experimentului au fost considerate doar documente scrise in limba engleza.

weblint este un analizator structural de marcaje pentru documentele HTML, inspirat din utilitarul UNIX lint.

Rezultatele
Criteriile de analiza au fost urmatoarele:

lungimea documentelor

media numar de marcatori/lungimea paginii

utilizarea marcatorilor

utilizarea atributelor

utilizarea marcatorilor specifici unor navigatoare particulare

utilizarea portului de conectare

protocoalele in cadrul URI-urilor

tipurile fisierelor specificate in componenta URI-urilor

erorile de sintaxa

Iata citeva dintre rezultatele obtinute.

Lungimea documentelor

Pentru cele 2,6 milioane de documente HTML colectate de Inktomi, dupa inlaturarea marcajelor s-a calculat lungimea fiecarui document. Lungimea minima gasita a fost de 4,4 KB, lungimea maxima de 1,6 MB, iar lungimea medie a fost de 2,0 KB.

Utilizarea marcatorilor

In ceea ce priveste distributia tag-urilor, numarul mediu de marcatori pe document a fost 71, iar numarul de marcatori unici pe document a fost 11. In figura de mai jos se poate remarca ponderea in procente a celor mai populare 10 tag-uri si numarul mediu de aparitii ale lor.


Cele mai utilizate 10 tag-uri
Utilizarea atributelor

Numarul mediu de atribute prezente intr-un document a fost 29, iar numarul mediu de atribute unice pe document a fost 4. In figura 9 se poate observa procentul de aparitie a primelor 10 atribute (firesc, atributul cel mai popular a fost href, urmat de src).


Cele mai utilizate 10 atribute
Utilizarea portului de conectare

Protocolul de transfer HTTP uzual foloseste portul 80 pentru accesarea paginilor Web. Acest port este utilizat in proportie de 93,6%. Numarul de porturi unice specificate in documentele hipertext a fost 418.

Protocoalele in cadrul URI-urilor

Extragind URI-urile specificate in fiecare pagina Web, s-au putut calcula procentele de aparitie a celor mai utilizate protocoale: HTTP, SMTP (mailto), FTP, GOPHER, NNTP (news) si TELNET.


Frecventa de utilizare a protocoalelor
Erorile de sintaxa

Programul weblint a gasit aproximativ 92000 (0,7%) de documente continind erori sintactice. Figura urmatoare furnizeaza primele 10 cele mai comune erori.


Cele mai frecvente 10 erori detectate
Legenda:

html-outer - nu exista tag-urile <html>...</html>

no-head - lipseste elementul <head>

head-element - tag-urile specifice antetului paginii Web (<title>, <link>, <base> sau <base>) apar in afara acestuia

no-body - lipseste elementul <body>

must-follow - lipsesc marcatorii obligatorii in cadrul altui tag

unclosed-element - tag-urile de sfirsit lipsesc

netscape-markup - marcaje specifice Netscape (nu trebuie considerata neaparat o eroare, ci mai mult o abatere de la standardul HTML definit de Consortiul Web)

empty-container - elemente vide, fara continut

mis-match - tag-uri nepotrivite (de exemplu <h2>...</h3>)

heading-order - ordine inadecvata a elementelor de tip Hx

LiveAgent Pro - pentru realizarea oglindirilor Web
Dezvoltat de AgentSoft, robotul LiveAgent Pro este destinat efectuarii automate a oglindirilor unui server Web la alta locatie. Alte facilitati ale aplicatiei sunt completarea automata a formularelor electronice, posibilitatea de programare prin intermediul scripturilor sau utilizarea robotului in Intranet.

3. Motoarele de cautare
Studiile recente (efectuate la mijlocul anului 2000) estimeaza volumul Web-ului ca fiind de 1-2 miliarde de pagini, utilizatorii care petrec mai mult de cinci ore pe Internet alocind 70% din timp pentru cautarea de informatii. Intre 85% si 90% dintre utilizatori se bazeaza pe motoarele de cautare pentru a localiza resursele dorite.

Astfel, importanta acestora se dovedeste de necontestat, in prezent existind o multitudine de cautatoare si meta-cautatoare, generale sau specializate.

Motoarele de cautare pot oferi servicii de cautare pe baza de indecsi (i.e. Altavista) sau pe baza unor ierarhii de termeni - asa-numitele servicii director (Yahoo). In ultima perioada, aceste servicii au devenit hibride (primul care a adoptat tehnicile mixte fiind Excite).


Structura interna generala a unui motor de cautare
3.1 Anatomia unui motor de cautare
In principiu, un motor de cautare este constituit din trei componente de baza:

o aplicatie, denumita robot Web (spider, crawler), care parcurge spatiul WWW si viziteaza anumite pagini, extragind informatii despre ele care vor fi stocate pe serverul/serverele motorului de cautare, intr-o baza de date sau index. Robotii Web au fost prezentati in detaliu in sub-capitolul precedent.

o modalitate de memorare a informatiilor despre paginile parcurse de robot, numit index (catalog). Acest index de obicei contine o copie a fiecarei pagini si a URI-ului corespunzator ei, organizarea informatiilor in cadrul indexului efectuindu-se conform unor criterii specifice.

un mecanism de evaluare (ranking) a importantei paginilor din index in conformitate cu cererea formulata de utilizator. In ordinea importantei, adresele paginilor (plus alte informatii) sint returnate clientului utilizatorului care a formulat cererea. Utilizatorul va decide care pagina (sau grup de pagini) intruneste preferintele sale.

De cele mai multe ori, fiecare motor de cautare are propriul robot Web care respecta standardul de excludere a robotilor. Robotii de la Excite (Inktomi), Go (InfoSeek) si Lycos nu pot indexa paginile continind cadre, iar cei de la FAST si Google au probleme cu hartile de imagini senzitive (care pot ingloba legaturi spre alte documente). Majoritatea robotilor de cautare pentru a accelera procesul de traversare a legaturilor poseda o tabela interna de perechi (adresa simbolica, adresa IP) evitind interogarile DNS lente.

Cautarea se realizeaza folosind algoritmi de parcurgere locala de tip DFS sau BFS sau prin procesarea intr-o ordine inteligenta a legaturilor spre alte documente.

Pentru a optimiza activitatea de extragere a paginilor Web s-au propus mai multe metode, dintre care vom aminti pe urmatoarele.

Cautare bazata pe invatare
Robotul foloseste in cautarea paginilor un algoritm de invatare speciala (reinforcement learning). Decizia robotului se bazeaza pe o politica de primire a unei "recompense" sau "pedepse" in functie de starea in care a ajuns la un moment dat si de contextul ei. Scopul robotului este sa adopte, deci, o "politica" (regula de asociere a starilor lui la actiunile care trebuie sa le intreprinda) prin maximizarea sumei recompenselor primite. Pentru fiecare stare a robotului, valoarea recompensei va fi calculata conform unei relatii prestabilite si robotul va incerca sa execute in viitor o actiune pentru care sa primeasca recompensa cea mai mare. Implementarea acestei metode se bazeaza pe programarea dinamica.

In cazul motorului de cautare, recompensele primite de robot vor fi cu atit mai mari cu cit un document destinatie are o tematica apropiata de documentul sursa de la care exista hiperlegatura. Astfel, robotul va urma la un moment dat legaturile spre documente apartinind aceluiasi subiect cu al documentului de la care a pornit cautarea. Performanta va fi masurata in functie de recompensa totala primita in timpul cel mai scurt. Mediul prin care evolueaza robotul prezinta situatii cu recompense intirziate (aflate undeva in viitor).

Experimentele folosind aceasta metoda descrisa succint mai sus au debutat in august 1998 in cadrul proiectului Cora al Universitatii din Pittsburgh.

Formalizarea procesului de cautare
Vom descrie in continuare o metoda formala utilizata in cautarea pe Web.

In general, putem considera o structura Web (netemporala) ca o functie partiala de la multimea URI-urilor la secvente finite de octeti. Intuitiv, fiecare structura Web desemnata de un identificator din multimea URI corespunde unui obiect (un document HTML, un fisier text, o imagine etc.). Functia este partiala deoarece anumitor URI-urilor nu le corespunde nici o resursa.

Pentru intregul spatiu Web vom considera structura denumita WWW. In realitate structura WWW variaza in timp, fiindca URI-urile pot sa se modifice (la un moment de timp t, vom avea starea Web WWWt). Vom presupune ca WWW este consistenta local din punct de vedere temporal, pentru intervalul de timp d, probabilitatea ca din WWWt(url) = seq, t > t' > t + d sa rezulte WWWt' (url) = seq fiind extrem de ridicata, unde url apartine multimii de URI-uri, iar seq este o secventa de date. Altfel spus, exista un interval de timp suficient de mare astfel incit pentru acel interval structura Web poseda acelasi identificator uniform de resursa.

Vom defini un obiect Web ca o pereche (url, seq), unde url este un element din multimea de identificatori URI, iar seq reprezinta o secventa de octeti, cu seq = WWW(url). Spatiul Web poate fi privit, asadar, ca o multime numarabila de obiecte Web.

Marea problema a motoarelor conventionale de cautare este ca se realizeaza numai indexarea textului si nu a structurii hipertext a documentelor HTML. Achizitia si indexarea automate a informatiilor text duc la o relevanta scazuta a rezultatelor cautate. Pentru indexarea hipertextului, trebuie avut in vedere aspectul dinamic al acestuia, reprezentat de diversele legaturi care trimit catre alte documente. Metodele traditionale folosite pur si simplu "uita" structura hipertext a documentelor, explorind doar continutul liniar, oferind astfel doar informatii textuale despre acel document si nu informatiile structurale, de tip hipertext. Din punct de vedere formal, cautarea se rezuma doar la informatiile date de seq si nu si cele furnizate de a doua componenta (url) a unui obiect Web. Ca exceptie partiala poate fi descrisa asa-numita vizibilitate a unui obiect Web, masurind numarul de documente conectate de acel obiect. Motoare de cautare precum Excite sau Lycos exploateaza aceasta informatie. Problema este ca vizibilitatea nu ofera nimic despre continutul informativ al obiectului in cauza. Putem privi vizibilitatea ca o masura pentru popularitatea unei pagini Web, care nu are nimic de a face cu calitatea denotata de continutul ei intrinsec.

Informatia data de dinamismul legaturilor dintr-un document Web va fi denumita hiperinformatie, care va fi adaugata informatiei textuale a obiectului, reuniunea celor doua tipuri de informatie furnizind informatia totala asupra Web-ului. Vom desemna aceste trei tipuri de informatie ca HYPERINFO, TEXTINFO si, respectiv, INFORMATION. Astfel, pentru fiecare obiect Web O vom avea INFORMATION(O) = HYPERINFO(O) + TEXTINFO(O). Aceste functii de masurare a informatiei vor fi dependente de cererea utilizatorului, cuantificind continutul informativ al unui obiect pentru o cerere specifica. Desigur, analiza continutului informativ a unui obiect Web O implica toate obiectele Web care sint accesibile via hiperlegaturi (i.e. "navigind" pe Web). Din ratiuni practice, aceasta explorare in profunzimea hipertextului va trebui sa se realizeze doar cu un numar finit de pasi (vizitari de legaturi).

Dat un obiect Web O, adincimea (relativa) a unui alt obiect Web O' este data de numarul minim de legaturi care pot fi activate (parcurse) pentru accesarea lui O' pornind de la O.

Fixind o anumita adincime, putem selecta o vecinatate locala finita a unui obiect Web din spatiul hipertext World Wide Web. Problema este sa stabilim hiperinformatia de o adincime k pentru un obiect O, notind aceasta cu HYPERINFOaki. Informatia totala de adincime k va fi notata cu INFORMATIONaki.

Vom considera astfel functiile HYPERINFO, TEXTINFO si INFORMATION definite de la multimea obiectelor Web la multimea numerelor reale nenegative. Intuitiv, cu cit valoarea unei functii este mai mare, cu atit continutul informational al acelui obiect este mai relevant. Aceste functii vor fi marginite (exista un numar M astfel incit M > INFORMATION(O), pentru orice obiect O).

Legaturi simple

Vom avea in vedere mai intii cazul in care fiecare obiect Web poseda cel mult o legatura. Exista doua posibilitati: acea legatura sa fie o legatura interna (catre un fragment de informatie din acel document) sau legatura este stabilita intre obiectul Web A spre obiectul Web B (vezi figura de mai jos):


Legatura de la A la B
Solutia, simpla dar eronata, este sa se asocieze continutului textual al obiectului A si continutul textual al obiectului B, inlocuind legatura cu obiectul Web spre care pointeaza. Astfel, continutul informational al celor doua obiecte va fi similar, desi poate in realitate utilizatorul era interesat numai de informatiile din obiectul B. Aceasta problema devine mai evidenta daca adincimea creste, avind situatia in care Bk este la adincime k de A, cu k destul de mare (e.g. k > 10):


Legatura de la A la Bk
Presupunem ca obiectele A, B1,..., Bk-1 au un continut informativ apropiat de zero, iar Bk are un continut informativ total ridicat. Conform metodei de mai sus, A va avea informatia totala mai mare decit cea a lui Bk, ceea ce este complet fals in realitate, conducind la o cautare eronata.

Informatia textuala ca sursa a unei legaturi dintr-un document nu poate fi considerata drept actuala, ci numai potentiala. Pentru utilizator exista un cost pentru a retine acea informatie textuala disponibila dupa parcurgerea legaturii (se pierde un timp de asteptare pentru incarcarea documentului). Astfel, intervine in calcul si adincimea (numarul de legaturi pe care trebuie sa le parcurga utilizatorul pina la accesarea documentului conectat cu documentul de la care a plecat).

Contributia informatiei textuale a obiectului B, avind adincimea k, la hiperinformatia obiectului A este data de relatia Fk·TEXTINFO(B), unde 0 < F < 1. Pentru situatia din figura de mai sus, hiperinformatia lui A nu este:

TEXTINFO(B1) + TEXTINFO(B2) +...+ TEXTINFO(Bk)

ci este furnizata de:

F·TEXTINFO(B1) + F2·TEXTINFO(B2) +...+ Fk·TEXTINFO(Bk)

Informatia textuala a lui A poate fi considerata ca fiind data de formula F0·TEXTINFO(A), obiectul A fiind la distanta nula de el insusi.

Se poate da si o relatie de recursie: INFORMATIONaki(A) = F·INFORMATIONak-1i(B), care furnizeaza tocmai formula enuntata mai sus.

Legaturi multiple
Vom considera acum cazul in care un obiect Web poseda mai mult de o legatura, luind insa adincimea egala cu 1. Vom avea situatia ilustrata in figura urmatoare:


Legaturi multiple
Nu putem masura hiperinformatia ca in situatia de la legaturi simple, deoarece am presupus functia de calcul marginita (nu putem suma contributia informationala a fiecarei legaturi: F·TEXTINFO(B1) + F·TEXTINFO(B2) +...+ F·TEXTINFO(Bn), fiindca numarul de legaturi ale unui document poate tinde la infinit).

De remarcat ca utilizatorul nu poate parcurge toate legaturile in paralel, ci in maniera secventiala, selectind la un moment dat doar una dintre ele. In cel mai bun caz, utilizatorul va urma cea mai informativa legatura, apoi cea de a doua in ordinea continutului informational si asa mai departe. Astfel, vom ordona legaturile in functie de continutul lor informational, presupunind ca TEXTINFO(B1) > TEXTINFO(B2) >...> TEXTINFO(Bn). Hiperinformatia asadar poate fi calculata prin relatia:

F·TEXTINFO(B1) + F2·TEXTINFO(B2) +...+ Fn·TEXTINFO(Bn)

Se poate observa ca functia este marginita de F/(F+1). In exemplul de fata am ales cea mai buna secventa de legaturi, considerind ca hiperinformatia reprezinta functia care masoara cel mai bine continutul informational potential, insa in realitate utilizatorul s-ar putea sa nu viziteze legaturile in ordinea relevantei lor si nu putem impune a priori ca oricare legatura ar avea vreo relevanta pentru utilizator. Legaturile nerelevante, cu scor nul, vor putea fi insa ignorate.

Cazul general - un exemplu
In cazul general vom avea legaturi multiple, cu un factor arbitrar k de adincime, si-l vom trata luind in consideratie cele enuntate mai sus. Informal, toate obiectele Web avind adincime mai mica decit k vor fi sortate, generind o secventa de selectie, in ordinea hiperinformatiei. Iata un exemplu:


Un exemplu de obiecte Web
Vom presupune ca F=0,5, TEXTINFO(B)=0,4, TEXTINFO(C)=0,3, TEXTINFO(D)=0,2 si TEXTINFO(E)=0,6. Prin secventa de selectie A-B-C-E-D (secventa optima de maximizare a hiperinformatiei), vom avea: 0,5·TEXTINFO(B) + 0,52·TEXTINFO(C) + 0,53·TEXTINFO(E) + 0,54·TEXTINFO(D) (=0,3625).

Remarci
O alta problema care poate apare este cea a legaturilor de intoarcere. Multe pagini Web au legaturi de intoarcere la documentul din care au fost accesate. Astfel, avem situatia din figura de mai jos, cind obiectele A si B au legaturi de la unul la altul:


Legaturi de intoarcere
In acest caz, informatia textuala a lui A se adauga in mod recursiv de un numar neprecizat de ori atunci cind vom calcula hiperinformatia obiectului A.

Exista posibilitatea aparitiei legaturilor duplicate (doua legaturi intr-un obiect Web pointind spre acelasi obiect Web). Solutia este evitarea unor astfel de probleme prin considerarea unei submultimi a multimii tuturor secventelor de selectie a legaturilor.

Un alt aspect interesant este cel de considerare a definitiei legaturii intr-un obiect Web. O legatura se numeste activa daca legatura poate fi vizualizata (vizitata) prin accesarea perechii (url, seq) cu ajutorul unui navigator HTML. In cadrul modelului vor trebui considerate numai legaturile active, care pot fi explorate in realitate, corespunzindu-le un URI valid.

Pentru procesul de cautare, fiecare tip de legatura va fi tratat in mod corespunzator. Legaturile locale (interne) specificate in documentele HTML prin #fragment vor fi ignorate. Cadrele (frames) vor trebui expandate, fiind inlocuite de continutul documentelor spre care pointeaza. Alte legaturi (catre imagini, de exemplu) vor fi activate automat, desi in prezent este foarte dificil de a exploata continutul informational al documentelor care nu sunt de tip text.

Ordonarea legaturilor
Cercetatorii de la Universitatea Stanford au observat ca vizitarea tuturor documentelor prezente pe Web nu se poate realiza practic din cel putin doua motive:

Indexul are o capacitate limitata si deci motorul nu poate indexa sau analiza toate paginile (Web-ul se dezvolta intr-un ritm foarte alert).

Web-ul se modifica foarte rapid si robotul nu va avea sansa de a parcurge o serie de pagini (la fiecare luna se estimeaza ca peste 800GB de date isi schimba continutul).

Nu toate paginile vor avea aceeasi importanta pentru robot, tinindu-se cont de mai multi factori, fiecare fiind considerat cu o anumita pondere. Se pot lua in calcul: similaritatea cu posibilele cereri ale utilizatorilor, numarul legaturilor care au legaturi spre pagina analizata pe robot, adica gradul de "citare" a documentului, relevanta paginii (continutul ei), numarul de legaturi continute de pagina si metrica locatiei (o pagina din domeniul ".com" se considera a fi mai importanta decit una a domeniului ".za"). Importanta paginii este, deci, data de contextul in care apare.

Paginile vor fi ordonate conform acestor criterii si vor fi indexate doar primele N. In fapt, aceasta metoda poate fi privita ca o rafinare a precedentei.

Abordarea prezentata aici a fost experimentata incepind cu anul 1997 (proiectul WebBase) si in prezent se regaseste in cadrul popularului motor de cautare Google.

Managementul indexului
A doua componenta a unui motor de cautare este indexul (catalogul) reprezentat dintr-o serie de baze de date memorate pe discurile unui server (modul) de stocare, constituindu-se un depozit (distribuit) de date de mari dimensiuni.

Modulul de stocare realizeaza diverse activitati importante ca introducerea de noi date despre paginile parcurse de roboti, actualizarea continutului celor vechi, programarea diverselor cereri de accesare a informatiilor despre o serie de documente etc. De cele mai multe ori aceste date sint compresate (Google foloseste biblioteca de compresie bzip), utilizindu-se clustere pentru memorarea lor.

Fiecare pagina va primi un identificator docID stabilit pe baza URI-ului absolut al paginii respective. URI-urile vor fi normalizate conform algoritmului urmator:

Pasul algoritmului Exemplu
Se elimina prefixul protocolului (https://) daca este prezent https://www.InfoIasi.Ro:80/ devine www.InfoIasi.Ro:80/
Se elimina numarul portului implicit (:80) daca exista, dar se pastreaza orice alt numar de port (e.g. 8000) www.InfoIasi.Ro:80/ devine www.InfoIasi.Ro/
Adresa simbolica a serverului este convertita in litere mici www.InfoIasi.Ro/ devine www.infoiasi.ro/
Caracterele "/" de la finalul URI-ului sint eliminate www.infoiasi.ro/ devine www.infoiasi.ro

Algoritmul de normalizare a unui URI
Conform unei functii de dispersie alese de proiectantul motorului, textul rezultat va fi convertit intr-o valoare numerica (de dimensiune de 64 de biti sau 128 de biti) - identificatorul de document docID.

Modulul de indexare si metadate este responsabil pentru extragerea metadatelor din paginile colectate si indexarea atit a metadatelor cit si a paginilor (documentelor HTML). Pentru indexarea continutului textual al documentelor, uzual vor fi considerate toate cuvintele, exceptind asa-numitele cuvinte stop (de lungime mai mica decit trei caractere si desemnind prepozitii, conjunctii sau interjectii; de exemplu "a", "the", "in" din limba engleza). Unele motoare de cautare (e.g. Google sau Lycos) vor contoriza si numarul de aparitii ale celor mai frecvente cuvinte dintr-o pagina Web si vor realiza indecsi suplimentari si/sau vor stabili categoria in care va fi incadrata acea pagina. O alta tehnica abordata este cea a indexarii semantice.

Extragerea metadatelor variaza in functie de motorul de cautare. Cea mai populara tehnica este cea a indexarii documentelor pe baza cuvintelor cheie furnizate fie explicit de creatorul acestor documente, fie in urma unei catalogari automate realizate de un robot. Anumite motoare de cautare (e.g. Altavista) permit inscrierea unei pagini in baza de date, solicitind introducerea unor cuvinte cheie pe baza carora sa se efectueze indexarea. Un utilizator poate apela la un serviciu de inregistrare automata la o suita de motoare de cautare, de obicei in mod gratuit, ca de exemplu AddMe!.

Intrebarile care se pun sunt:

Cit de relevante sunt activitatile de indexare automata?

Documentelor HTML le pot fi atasate anumite atribute care sa le descrie continutul?

Raspunsul la ultima intrebare este dat de urmatoarele aspecte:

Standardul HTML permite autorilor de pagini WWW sa enumere cuvintele cheie care sa descrie cel mai adecvat continutul lor informational, prin folosirea in antet a tag-ului <meta>. Iata un exemplu:

<meta name="description" -- descriere succinta - content="Manipularea informatiilor multimedia">

<meta name="keywords" -- cuvinte cheie - content="Internet, multimedia, hypertext, document, robots, agents, logic, real-time, protocol, WWW, Web">
<meta name="author" -- autor - content="Sabin Corneliu Buraga <busaco@infoiasi.ro>">
<meta name="owner" -- proprietar - content="Sabin Corneliu Buraga <busaco@infoiasi.ro>">

Nu toate motoarele de cautare iau in consideratie informatiile continute de tag-ul <meta>. Este cazul motoarelor Excite, Google si Northern Light care vor ignora constructia <meta name="keywords"...>, iar FAST, Google, Lycos nu vor lua in seama <meta name="description"...>.

Descrierea inteligenta a resurselor poate fi realizata cel mai bine cu RDF (Resource Description Framework). Deja exista tehnici de generare automata a metadatelor RDF pentru descoperirea resurselor Web, pornind de la titluri, cuvinte cheie, descrieri, data crearii, numarul total de cuvinte dintr-un document etc.

Metode mai sofisticate includ sumarizari automate, utilizarea de sinonime a cuvintelor cheie ori utilizarea algoritmilor genetici sau a retelelor neuronale. In activitatea de catalogare a informatiilor, de multe ori intervine ierarhizarea datelor in functie de subiectul pe care-l trateaza, aceasta clasificare ducind la aparitia serviciilor director (de genul GENVL sau Yahoo). Clasificarea dupa subiect este similara retelei lingvistice WordNet.

De asemeni, se calculeaza numarul de legaturi care pointeaza spre o anumita pagina si numarul de legaturi continute de acea pagina. Aceste valori sint denumite tehnic hit-uri.

Indecsii pot cuprinde indecsii text obisnuiti, dar si indecsi ai metadatelor extrase (construiti pe baza docID-urilor si a altor informatii). In mod uzual, se folosesc tehnici bazate pe tabele de dispersie (hash) multiple si pe sortarea eficienta a indecsilor.

Metadatele si indecsii se stocheaza pe dispozitive separate de cele ale depozitului de date (de cele mai multe ori se utilizeaza un sistem de management al bazelor de date relationale).

Depozitul de documente indexate suporta trei moduri de acces:

acces direct (random access)

Se realizeaza pe baza identificatorului asociat fiecarei pagini.

acces bazat pe interogari (query-based access)

In acest caz, se vor furniza toate documentele care satisfac o anumita cerere. Cererea poate sa se refere la diverse atribute ale metadatelor (e.g. autor, titlu, locatie) sau la continutul textual al paginilor. De exemplu, daca presupunem ca avem un index al cuvintelor din titlul paginilor si un alt index al legaturilor care se refera la o anumita locatie, putem sa extragem toate documentele care satisfac urmatoarea cerere: "furnizeaza toate URI-urile paginilor continind cuvintul Informatica in titlu si care au legaturi spre https://www.infoiasi.ro". De cele mai multe ori, se utilizeaza interogari SQL sau bazate pe limbaje de interogare XML (XML Query Languages).

acces flux de date (streaming access)

Este folosit atunci cind din depozitul de date se extrage un grup de pagini pentru a fi trimis ca flux de date spre o anumita aplicatie (de exemplu, atunci cind se reindexeaza o serie de pagini).

In cadrul depozitului de date este de dorit sa se memoreze cea mai recenta versiune a paginilor traversate de robotii Web. Trebuiesc avute in vedere aspecte importante precum consistenta indecsilor si eliminarea paginilor vechi/inexistente pe Web. Astfel, pentru fiecare pagina pot fi atasate doua valori numerice pentru a specifica timpul de viata permis si contorizarea timpului de viata. Timpul de viata permis reprezinta perioada de stocare a unui document fara a necesita actualizarea ori stergerea sa din depozit. Contorul este decrementat periodic pina cind devine nul, caz in care robotul Web va trebui sa aduca informatii despre acea pagina. Desigur, fiecare motor de cautare va adopta propria maniera de stabilire a timpului de viata. De asemeni, robotii Web pot avea proprii lor parametri pentru realizarea acestei actualizari regulate, tinind cont de ratiuni de congestie a retelei sau de traversarea in foc rapid despre care am discutat mai sus.

Pentru asigurarea scalabilitatii, depozitul de date poate fi distribuit, constituindu-se o colectie de noduri de stocare interconectate, controlul realizindu-se prin intermediul unui server de management al nodurilor. Acest server mentine o tabela cu starea fiecarui nod de stocare: capacitatea totala de memorare, spatiul liber, nivelul fragmentarii datelor, numarul si tipul de accesari, modul de operare a nodului etc.

Mai mult, serverul controleaza cererile pentru accesari de tip flux de date si maniera de stocare a paginilor noi colectate de roboti. Problemele care se pun in discutie sint cele de distributie, de organizare si de actualizare a paginilor in cadrul nodurilor depozitului. Paginile se pot distribui uniform sau printr-o metoda de tip hash. Organizarea se realizeaza fie folosindu-se tehnici hash, fie fisiere de jurnalizare sau o metoda mixta. In cazul actualizarii, se iau in consideratie scheme bazate pe actualizari secventiale (batch) ori incrementale. La actualizarea secventiala nodurile se partitioneaza in doua categorii: noduri de actualizare (care nu vor mai fi folosite pentru cereri de acces la pagini) si noduri de citire. Astfel, se evita aparitia conflictelor intre operatiunile executate asupra depozitului de date. La actualizarea incrementala nu se mai face distinctie intre noduri, fiecare nod fiind permanent operational, cu penalizari de performanta si modificarea dinamica a indecsilor locali.

Pentru sporirea eficientei, nodurile pot contine pagini grupate pe diverse criterii (cuvinte-cheie, tematica, localizare etc.).

Cautarea
A treia componenta a motorului o reprezinta mecanismul de cautare si de evaluare a paginilor Web dorite de un utilizator in urma formularii unei cereri adresate prin intermediul interfetei cu aplicatia.

Interfata de cautare (denumita frecvent motor de interogare) este o componenta importanta a sistemului, oferind in functie de motor posibilitati de formulare a cererilor prin intermediul diversilor operatori logici, in limbaj natural, explorind ierarhii de domenii catalogate (directoare Web), alegind localizarea paginilor etc.


Interfata Google pentru formularea cererilor avansate de interogare
Majoritatea motoarelor de cautare utilizeaza o conventie de compunere a interogarilor. Pot fi date si relatii create prin intermediul operatorilor AND, OR, NOT si NEAR:

termen1 AND termen2

Se doreste ca paginile sa aiba in componenta ambii termeni. De multe ori, semnul plus (+) prefixind fiecare termen inlocuieste functia lui AND: +termen1 +termen2.

termen1 OR termen2

Se doreste ca paginile sa contina macar unul dintre cei doi termeni.

NOT termen

Se doreste ca paginile sa nu contina termenul specificat (se poate folosi si constructia echivalenta -termen).

termen1 NEAR termen2

Se doreste ca paginile sa contina cei doi termeni localizati la mica departare unul de celalalt (vecinatate de 20-200 de cuvinte, in functie de motorul de cautare).

Pentru gruparea si schimbarea precedentei operatorilor se pot utiliza parantezele. Se mai poate folosi si constructia "lista de termeni", ghilimelele insemnind ca se va realiza o cautare exacta a secventei de termeni din lista data.

Un utilizator obisnuit se va sluji foarte rar de aceste facilitati, preferind formularea unui interogari compuse dintr-un singur cuvint sau a unei propozitii in limbaj natural. Tehnologia Ask Jeeves incorporata de Altavista este utilizata pentru procesarea cererilor in limbaj natural (in speta, in limba engleza), unele probleme care trebuiesc rezolvate fiind dezambiguizarea termenilor, eliminarea cuvintelor nerelevante sau expandarea interogarii (pot fi formulate automat noi cereri continind sinonime ale cuvintelor furnizate de utilizator, folosindu-se reteaua lingvistica WordNet).

Majoritatea serviciilor de cautare ofera posibilitatea de rafinare a interogarii, prin intermediul unor optiuni refine sau advanced search.

Evaluarea cererii utilizatorului se poate realiza conform urmatoarelor etape:

analizarea interogarii

cautarea in indecsii corespunzatori termenilor ramasi dupa analiza cererii

scanarea tuturor documentelor care intrunesc toate conditiile de cautare

evaluarea gradului de relevanta a paginilor in functie de interogarea data de utilizator

eliminarea duplicatelor si sortarea in ordinea relevantei

afisarea adreselor primelor celor mai relevante N documente

Nu toate motoarele de cautare trec prin toate fazele descrise mai sus. Unele nu realizeaza decit partial sau deloc eliminarea duplicatelor (eg. Excite sau Lycos).

O serie de motoare vor afisa paginile gasite grupate pe termeni sau vor oferi legaturi catre altele stocate pe acelasi server Web.

Sistemul de evaluare depinde de motorul de cautare ales. De exemplu, in cazul lui Google, se mentin mai multe metadate despre documentele indexate decit la alte motoare, ceea ce conduce la o precizie ridicata. Se memoreaza chiar si pozitia in cadrul documentului, tipul de font si modul de scriere ale informatiilor. In plus, datele calculate in urma fiecarei interogari emise de utilizator sint salvate temporar, putind fi folosite la evaluarea unor cereri similare viitoare.

Alte abordari includ:

evaluarea relevantei pe baza contextului de aparitie

determinarea corelatiei dintre relevanta calculata de motor si cea exprimata de operatorul uman

utilizarea de tehnici adaptive, euristice

exploatarea relatiilor care se pot stabili intre diferite pagini Web (e.g. sistemul Ulixes)


Arhitectura interna a motorului de cautare Google
Nici un motor nu poate fi perfect. Pentru testarea serviciilor de cautare se considera mai multi factori, dintre care pot fi amintiti: acuratetea, posibilitatea de cautare avansata, ergonomia in utilizare si acordarea de alte facilitati.

3.2 Meta-cautatoare
Utilizatorii au posibilitatea de a apela la un meta-cautator pentru a formula interogari si a primi rezultate de la o multitudine de motoare de cautare carora li se transmite acea cerere. Functia principala a meta-cautatorului este aceea de a compila toate listele de pagini obtinute de la motoarele obisnuite (eventual interogate in paralel) si de a prezenta utilizatorului cele mai relevante documente gasite. De cele mai multe ori, un meta-cautator are implementat propriul sistem de evaluare a relevantei paginilor, in functie de anumite criterii (e.g. Mamma). De asemeni, un meta-cautator poate oferi o vedere ierarhizata, de genul directoarelor Web, a paginilor gasite.

Nu toate meta-cautatoarele elimina duplicatele (e.g. Dogpile). O serie de meta-cautatoare sint directionate spre domenii specifice, pentru cautarea de:

fisiere - in general aplicatii si documentatii (Filez, FTPSearch)

adrese e-mail si numere de telefon (Four11)

informatii in cadrul grupurilor de discutii (DejaNews)

fisiere audio (MP3Search)

imagini (MetaSEEk)

pagini localizate intr-un areal geografic comun (EuroSeek)

informatii specifice unui domeniu: afaceri, comunitati umane etc. (cazul portalurilor Web)

O parte dintre serviciile de cautare specializata se regasesc si in cadrul motoarelor clasice (de exemplu, la Altavista).

Anatomia unui meta-motor de cautare este ilustrata in figura de mai jos:


Structura generala a unui meta-motor de cautare
Dispecerul de cereri poate diviza interogarile complexe date de utilizator in sub-cereri, fiecare sub-cerere fiind expediata unui motor de cautare clasic. Nu toate meta-motoarele de cautare trimit cereri in maniera concurenta motoarelor de cautare.

Monitorul de performanta supravegheaza starea fiecarui motor de cautare. Atunci cind unul dintre motoare devine inoperational sau inaccesibil din ratiuni legate de retea, se poate decide automat ca respectiva cerere sa fie data spre prelucrare altui motor. Monitorul de performanta are in responsabilitate si primirea listelor de adrese ale paginilor gasite.

Modulul responsabil cu interfata cu utilizatorul va prezenta un formular electronic pentru a fi completat cu interogarea dorita. Dupa primirea rezultatelor de la motoarele de cautare, listele cu URI-uri vor fi compilate, eliminindu-se informatiile redundante si cele contradictorii. Deoarece fiecare motor de cautare va returna o lista de pagini intr-un format propriu, meta-motorul de cautare va realiza si o convertire la un format comun care va fi prezentat clientului.


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui referat, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza referatul:
In prezent referatul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite referat | Harta site | Adauga in favorite
Colt dreapta