Căutarea resurselor Web

85
Căutarea resurselor Web Dr. Sabin Buraga Facultatea de Informatică UAIC – Iași, România profs.info.uaic.ro/~busaco/

Transcript of Căutarea resurselor Web

Căutarea

resurselor Web

Dr. Sabin BuragaFacultatea de Informatică

UAIC – Iași, Româniaprofs.info.uaic.ro/~busaco/

www.worldometers.info

Ce activități realizează

un motor de căutare?

scop: localizarea resurselor existente pe Webconținut textual

documente Web, știri, comentarii, cod-sursă,însemnări în cadrul aplicațiilor Web sociale etc.

scop: localizarea resurselor existente pe Webconținut multimedia

imagini (fotografii, diagrame, ilustrații), audio, video, prezentări,…

(în formă fizică și/sau electronică – gratuite ori comerciale)

scop: localizarea resurselor existente pe Webentități

persoane, organizații, evenimente, cunoaștere (cărți, software), de interes personal/social

(bunuri reale/digitale – produse și/sau servicii),…

Tipuri de căutări – maniera tradițională:

pe bază de indecși de termeni

explorare a Web-ului (crawling) +prelucrarea conținutului textual (indexing)

Lycos (1994, proiect de cercetare al lui Michael Loren Mauldin,

CMU – Carnegie Mellon University)

AltaVista(1995, Paul Flaherty, Louis Monier & Michael Burrows,

proiect de cercetare la DEC – Digital Equipment Corporation)

Tipuri de căutări – maniera tradițională:

pe baza ierarhiilor de termeni (cuvinte)(servicii de tip catalog – topic directory, taxonomii)

Yahoo! – Yet Another Hierarchical Officious Oracle

fondat în 1994 de Jerry Yang and David Filo (absolvenți Stanford)Jerry and David’s guide to the World Wide Web

Tipuri de căutări – maniera tradițională:

hibrideindecși + taxonomiiportal Web

Excite

inițial Architext, creat în 1994 de Graham Spencer, Joe Kraus, Mark Van Haren, Ryan McIntyre, Ben Lutch, Martin Reinfried

(studenți la Stanford)

Tipuri de căutări – maniera tradițională:

pe baza legăturilor hipertext (hyperlink analysis)

Google

inițial BackRub, o inițiativă demarată în 1996, disponibilă din 1998 Sergey Brin și Larry Page (studenți la doctorat – Stanford)

Un motor de căutare trebuie să satisfacănevoia de informații a utilizatorului

(user information-seeking)

caracteristici ale unui motor de căutare idealscop

căutarea oricărei resurse existente

caracteristici ale unui motor de căutare idealviteză

rezultate disponibile imediat

caracteristici ale unui motor de căutare idealdisponibilitate

orice modificare să fie indexată „instantaneu”(în timp-real)

caracteristici ale unui motor de căutare ideal„reamintire” – recall

găsirea tuturor resurselor relevantepentru o cerere dată

caracteristici ale unui motor de căutare idealprecizie

răspunsul oferit conține doar resurse relevante

caracteristici ale unui motor de căutare idealcategorisire eficientă – rankingcele mai relevante resurse Web

sunt plasate primele

Care sunt principalele componente

ale unui motor de căutare?

Robot Webextrage informații

Index (catalog)stochează – în mod persistent – (meta)date

despre resursele existente pe Web

Mecanism de evaluarepe baza cererii utilizatorului,

oferă răspunsuri – de dorit, utile

structura generică a unui motor de căutare (Chakrabarti, 2003)

roboții Web

Roboți Web

programe ce traversează automat Web-ul,cu scopul de a extrage date

spiders crawlers Web bots

robot Web navigator Web

Roboți Web

pornind de la o adresă Web (URL – Uniform Resource Locator), realizează o conexiune HTTPla un server Web, pentru a întreprinde anumiteacțiuni privitoare la reprezentarea unei resurse– uzual, HTML – și, recursiv, din toate resursele (documentele) desemnate de legăturile existente

în cadrul reprezentării

Roboți Web

pornind de la o adresă Web (URL – Uniform Resource Locator), realizează o conexiune HTTPla un server Web, pentru a întreprinde anumiteacțiuni privitoare la reprezentarea unei resurse– uzual, HTML – și, recursiv, din toate resursele (documentele) desemnate de legăturile existente

în cadrul reprezentării

acțiuni: extrage de date, copiere, agregare de conținut, monitorizare, realizare a unui rezumat etc.

Roboți Web

ai motoarelor de căutare majore

Baiduspider – www.baidu.com/search/spider.html

bingbot – www.bing.com/bingbot.htm

Googlebot – www.google.com/bot.html

Slurp – http://help.yahoo.com/help/us/ysearch/slurp

YandexBot – yandex.com/bots

Roboți Web

specializați

roluri: validarea codului HTML, scurtarea lungimii URL-urilor,

scanare de vulnerabilități, statistici,…

exemple: citeseerxbot, Page2RSS, extensii Nagios, W3C Validator

Roboți Web

personali

rulați de utilizatori

exemplificare: software de „oglindire” (copiere) a conținutului unui (fragment de) sit Web

aplicații notorii disponibile în regim deschis:curl – https://curl.haxx.se/

wget – www.gnu.org/software/wget/

Roboți Web

(potențial) malefici

pot cauza breșe de securitate, exploatând diverse vulnerabilități ale siturilor/aplicațiilor Web

exemple tipice: SQL injections

atacuri XSS – Cross-Site Scripting

statistici + detalii: www.botsvsbrowsers.com

Roboți Web

trebuie să respecte standardul de excludere

„inhibă” vizitarea anumitor zone (secțiuni) ale unui sit Web

Roboți Web

în rădăcina unui domeniu Web se poate plasa fișierul robots.txt

www.robotstxt.org/robotstxt.html

# https://developer.mozilla.org/robots.txt

User-agent: *Crawl-delay: 5Sitemap: https://developer.mozilla.org/sitemap.xmlRequest-rate: 1/5

Disallow: /admin/Disallow: /*/dashboards/*Disallow: /*docs/feeds...

exemplu

indexul

Index

Necesitatea folosirii sistemelor de baze de datedepozit distribuit de stocare – actualmente, în cloud

aspect important: optimizarea regăsirii

context mai larg: procesarea volumelor mari de date (big data)

Index

utilizarea nu doar a datelor propriu-zise(conținutul textual),

ci și a meta-datelor asociate unei resurse Web

e.g., limbă, cuvinte-cheie, autor, format,data ultimei actualizări, frecvența modificărilor,…

Index

indexare bazată pe cuvinte-cheie (termeni)

relevanță, plasament – e.g., context de apariție –, meta-date, procesarea limbajului natural,

clasificare (semi-)automată via învățare automată (machine learning) sau alte tehnici,...

Index

indexare semantică – recurgând la concepte

clasificare socială via adnotare de resurse – tagging(folksonomy)

+ folosirea tehnologiilor Web-ului semantic

(RDF, RDFa, SKOS, OWL,…)

vezi și Sabin Buraga, „Dezvoltarea aplicațiilor Web”:http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html

interogarea

Interfața de interogare

cererile sunt formulate via o interfață Web

unele motoare de căutare acceptăfolosirea unor operatori specifici

o parte dintre operatorii Google

"expresie" ~termen –termen

related: URL cache: URL link: URL

intitle: termen(i) allintitle: termen(i) intext: termen(i) allintext: termen(i)inurl: termen(i) allinurl: termen(i)

site: domeniu info: domeniu

define: termen filetype: extensie

um1 in um2 număr1 .. număr2

www.googleguide.com/advanced_operators_reference.html

digital camera $700 .. 1400~book

intitle:design –intitle:web"burse de merit" site:uaic.ro

inurl:art nouveauallinurl:ES6 library

16 cm in inchrelated:www.w3.org

php mvc inanchor:slidesharedefine:design

cache:http://devdocs.io/map:macea,arad

linux filetype:svg OR filetype:png

exemple

Mult succes!unii operatori sunt permiși doar pentru anumite tipuri de căutări – aici: știri

exemplu

interacțiunea cu motorul de interogare poate fi facilitată și de un agent software conversațional

Apple Siri, Google Now, Microsoft CortanaDragon Go, Sherpa, SpeakToIt Assistant

calculul relevanței

Evaluarea relevanței

1. Analizarea interogării (tokenizing)2. Căutarea în indecșii termenilor3. Procesarea documentelor4. Evaluarea relevanței paginilor5. Eliminarea duplicatelor + sortarea6. Afișarea primelor N documente relevante

(URL + alte informații)

Evaluarea relevanței

se bazează pe…

clasificare umană

resurse categorisite de oameni

Evaluarea relevanței

se bazează pe…

informații vizând utilizarea unei resurse

factori: timp de viață, periodicitatea accesului la acea resursă, frecvența actualizării conținutului,

importanța relativă etc.

Evaluarea relevanței

se bazează pe…

conectivitatea cu alte resurse

analiza relațiilor (legăturilor hipertext) cu alte pagini

reputația – e.g., importanța domeniului Internet(sunt luați în calcul factori ca vechimea, localizarea,…)

timp strategie

înaintede 2000

conținut – indexarea textului(titlu, anteturi, URL, descriere via <meta>)

2000—2010conținutautoritate (via legături desemnate de URL-uri)

2010—

prezent

conținutautoritatepersonalizare (social media + profil de utilizator)

2012—

prezent

conținutautoritatepersonalizareconcepte (date structurate + Web of data)context (localizare geo., limbă, timp, dispozitiv,…)

adaptare după (K. Bodnar & J. Hopkins, 2011)de studiat și www.slideshare.net/randfish/presentations

vizând anonimitatea DuckDuckGo, Gibiru, Qwant, Unbubble,…

regionaleBaidu (China), Daum (Coreea), Goo (Japonia),

Guruji (India), MetaGer (Germania) etc.

meta-căutare Dogpile, Excite, Mamma, Searx, Yippy Search

enterprise search ElasticSearch, OpenSearchServer,…

răspunsuri(answer-based)

umane: Stack Overflow, Quora etc.automate: Evi, Wolfram Alpha

căutare de știri Daylife, Topix,…

hărți (maps) Nokia HERE, OpenStreetMap, WikiMapia

cod-sursă Open Hub, Krugle, Searchcode

folosind puterea umană (crowd-search)

Dunno + abordări distribuite (P2P): FAROO, Seeks, YaCy

desktop searchcăutare pe dispozitiv

Dash, DocFetcher,Recoll, Terrier, Tracker

https://searchcode.com/

instrumente software open source pentru implementatori: Apache Lucene, Apache Nutch, Apache Solr,

mnoGoSearch, Namazu, Xapian,…

API-uri publice: www.programmableweb.com/category/search

disponibilitatea datelor indexate în regim deschis în vederea analizării ulterioare:

https://commoncrawl.org/

prezentarea rezultatelor

Prezentarea rezultatelor

SERP – Search Engine Result Page

specifică maniera de redare a rezultateloroferite de motorul de căutare

Prezentarea rezultatelor

se includ recomandări pe baza:preferințelor utilizatorului

istoricului căutărilorURL-urilor partajate via rețele sociale

meta-datelor (rich snippets)adnotărilor realizate de utilizatorilocalizării geografice (local search)

exemplu

dezvoltatorii pot participa la DuckDuckHack: duckduckhack.com

motorul de căutareDuckDuckGo este axat

asupra asigurării intimitățiiutilizatorului în ceea ce privește

căutările acestuia pe Web

exemplu

Google

“At any one time you rank #1 or #8 or #40based on who is searching, where they search,

and what is happening.”

K. Bodnar & J. Hopkins, 2011

Cum putem obține o relevanță

(mai) bună a conținutului indexat?

SEO – Search Engine Optimization

suită de strategii de redactare a codului HTMLîn vederea obținerii unei relevanțe ridicate

a conținutului, astfel încât pagina/situl să fieregăsite în urma unei căutări specifice efectuate

cu un instrument de căutare

Structurarea…

codului-sursă al paginilor Web

conținutului (textual, grafic,…)

legăturilor cu alte resurse

Se recurge la semnificația logică a marcatorilor HTML

POSH (Plain Old Semantic HTML)

titluri plasate ierarhic via elementele <h1>, <h2>,…

conținut tabelar cu <table>

aranjament vizual (layout) via stiluri CSS și nu tabele (<table>, <tr>,…)

Se recurge la semnificația logică a marcatorilor HTML

POSH (Plain Old Semantic HTML)

divizarea conținutului: <section>, <article>, <header>, <footer>, <aside> etc.

marcajarea elementelor vizând navigabilitatea cu <nav>

liste specificate cu <ul> <ol> <li>…

detalii la HTML5 Doctor: html5doctor.com/element-index/

h1

nav

aside

section

h2

ul

h2

articlep

header

Se recurge la semnificația logică a marcatorilor HTML

POSH (Plain Old Semantic HTML)

conținut textual alternativ pentru imagini (<img alt="..." />), legături (<a title="...">),

tabele (<table summary="...">), multimedia,…

atașarea de meta-date externe în antetul paginii Web via <head>, <meta /> și <link />https://github.com/joshbuchea/HEAD

Se recurge la semnificația logică a marcatorilor HTML

POSH (Plain Old Semantic HTML)

de evitat elementele învechite – e.g., cadre (frame-uri) –sau proprietare (<blink> ori <marquee>)

documentul trebuie să fie bine-formatatverificarea corectitudinii codului HTML cu instrumentul

oferit de Consorțiul Web – validator.w3.org

a se considera și https://github.com/h5bp/html5-boilerplate

Includerea de meta-date (date privind datele)în cadrul documentelor HTML pentru a „explica”

resursele Web unui program (software – e.g., motor de căutare)

soluții actuale aliniate problematicilor Web-ului semantic – Web of Data

scheme de microdate HTML5 – schema.org

RDFa (standard al Consorțiului Web) – rdfa.info

pentru detalii, de parcurs: S. Buraga, Why 5-Star Data? – www.slideshare.net/busaco/why-5star-data

http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html#week6

Conținutul primează – content is king

o importanță majoră o are titlul paginiiUntitled Document – aproape 22 de milioane de rezultate

situl trebuie actualizat periodic, frecvent

numele fișierelor (imagini, stiluri,…) conteazătehnică utilă:

„transformarea” URL-urilor – mod_rewrite la Apache

anumite date pot fi „ascunse” de roboțivia robots.txt

Realizarea legăturilor între pagini (hipermedia)

obligatoriu, de inclus legături spre alte resurse(ale sitului propriu ori ale altor situri)

dorim legături spre/de la situri importanteavând conținut similar cu situl nostru

de verificat și menținut structura hipertextuluiinstrumentul LinkChecker – validator.w3.org/checklink

Realizarea legăturilor între pagini (hipermedia)

tehnici clasice – considerate „demodate”:interschimb de adrese (link-uri) – banner-e, blogroll-uri

marketing bazat pe context – i.e. articole/produse înrudite

Realizarea legăturilor între pagini (hipermedia)

recurgerea la aplicații Web socialeSMO – Social Media Optimization

partajare în rețeaua de „prieteni”,apreciere, comentarii, opinii,…

S. Buraga, Design Patterns for Social (Web/mobile) Interactions, 2016http://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html#week7

Social UX

Realizarea legăturilor între pagini (hipermedia)

de evitat paginile de eroare – 404 Not Found

orice pagină de eroare poate fi „convertită”într-o resursă folositoare omului/robotului

uzual, se oferă harta sitului (site map), legături relevante, motor intern de căutare,…

http://alistapart.com/article/perfect404

http://alistapart.com/article/amoreuseful404

Realizarea legăturilor între pagini (hipermedia)

a nu se folosi navigarea bazată pe JavaScript ori – mai desuet – pe tehnologii proprietare (Flash/Silverlight)

<p>participanții: <a href="javascript:sari(1);">aici</a></p>

Alte aspecte de interes despre SEO?

Crearea documentului sitemap.xml pentru a-l expedia la Google Sitemaps

http://sitemaps.org/

complementar fișierului robots.txt

furnizează structura hipertext a unui sit Web

formate acceptate: text obișnuit, XML (Extensible MarkupLanguage), RSS (Really Simple Syndication)

un instrument Web util: www.xml-sitemaps.com

Regăsirea informațiilor disponibile pe Web trebuie considerată într-un context mai larg

accesibilitatea – utilizatorii cu nevoi speciale

Web Accessibility Initiativewww.w3.org/WAI/

Web Accessibility in Mindwebaim.org

Regăsirea informațiilor disponibile pe Web trebuie considerată într-un context mai larg

performanța aplicațiilor Web

aspect important: timpul de încărcare a unei pagini Web

profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html#week12

Invisible Web (Deep Web)

acea parte a spațiului WWW care nu este detectată de motoarele de căutare sau

de alte tipuri de aplicații de regăsire a resurselordisponibile pe Web

S. Buraga, Proiectarea siturilor Web (ed. II), Polirom, 2005www.slideshare.net/busaco/sabin-buraga-proiectarea-siturilor-web

Google Webmaster Centralhttps://developers.google.com/webmasters/

Learn SEO and Search Marketinghttps://moz.com/learn/seo

Search Engine Landhttp://searchengineland.com/

Search Engine Watchhttp://searchenginewatch.com/

Search Engines @ VideoLectureshttp://videolectures.net/Top/Computer_Science/Search_Engines

Căutarea resurselor Webde la roboți Web și motoare de căutare la SEO

Dr. Sabin BuragaFacultatea de Informatică, UAIC – Iași, România

http://profs.info.uaic.ro/~busaco/

ilustrații: tango2010weibo.tumblr.com/