|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Ingineria Web | ||||||
|
||||||
Proiectarea si organizarea site-urilor Web j7q14qk Robotii Web Motoarele de cautare -------------------------------------------------------------------------------- 1. Proiectarea si organizarea site-urilor Web 1.1 Regasirea informatiilor 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 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. 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 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 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 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 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 Un exemplu de astfel de fisier este cel de mai jos: #/robots.txt pentru https://www.infoiasi.ro 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 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 Wisebot - utilizat pentru administrarea site-urilor Web 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 Experimentul 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 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. 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). 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. Programul weblint a gasit aproximativ 92000 (0,7%) de documente continind erori sintactice. Figura urmatoare furnizeaza primele 10 cele mai comune erori. 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 3. Motoarele de cautare 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). 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 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 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 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 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 Remarci 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 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 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 Algoritmul de normalizare a unui URI 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="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 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. 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) 3.2 Meta-cautatoare 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: 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. |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|