Detalii privind căutarea resurselor Web. De la motoare de căutare și SEO la date structurate. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
7. Dr.SabinBuragawww.purl.org/net/busaco
Roboți
pornind de la un URI, realizează o conexiune HTTP
la un server Web, pentru a întreprinde anumite
acțiuni privitoare la reprezentarea unei resurse și,
recursiv, din toate documentele desemnate de
legăturile existente în cadrul reprezentării
8. Dr.SabinBuragawww.purl.org/net/busaco
Roboți
pornind de la un URI, realizează o conexiune HTTP
la un server Web, pentru a întreprinde anumite
acțiuni privitoare la reprezentarea unei resurse și,
recursiv, din toate documentele desemnate de
legăturile existente în cadrul reprezentării
acțiuni: extragere, copiere, sumarizare,
agregare de conținut, monitorizare etc.
18. Dr.SabinBuragawww.purl.org/net/busaco
roboți: identificare
Fiecare robot Web trebuie să se identifice
(nume, domeniu, creator,...)
roboți 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
19. Dr.SabinBuragawww.purl.org/net/busaco
roboți: identificare
Fiecare robot Web trebuie să se identifice
(nume, domeniu, creator,...)
roboți specializați
(e.g., validarea codului HTML, scurtarea lungimii
URL-urilor, scanare de vulnerabilități, statistici,…)
exemplificări: citeseerxbot,
Page2RSS, extensii Nagios, W3C Validator
24. Dr.SabinBuragawww.purl.org/net/busaco
Orice robot trebuie să respecte
standardul de excludere
fișierul robots.txt
# /robots.txt pentru http://www.info.uaic.ro
User-agent: * # toți roboții
Crawl-delay: 20 # 20 sec. între cereri
Disallow: /tmp/ # date temporare
Disallow: /xwiki/bin/xmlrpc/ # director privat
25. Dr.SabinBuragawww.purl.org/net/busaco
Orice robot trebuie să respecte
standardul de excludere
fișierul robots.txt
de studiat câteva exemple reale:
http://www.amazon.com/robots.txt
http://facebook.com/robots.txt
http://www.google.com/robots.txt
33. Dr.SabinBuragawww.purl.org/net/busaco
Tipuri de căutări – maniera modernă:
pe baza datelor structurate
(determinare și extragere de meta-date & concepte)
Microsoft Satori Entity Engine (bazat pe Trinity)
http://research.microsoft.com/en-us/projects/trinity/
Google Knowledge Graph (utilizează Freebase, Wikipedia)
www.google.com/insidesearch/features/search/knowledge.html
47. Dr.SabinBuragawww.purl.org/net/busaco
motoare: căutarea
Activitatea generală a unui robot (crawler) simplu:
F = mulțimea de URL-uri de start (frontiera)
cât-timp F este nevidă
extrage un URL u din F
preia pagina (resursa Web) p cu adresa u
dacă p este relevantă
stochează p în index
pentru-fiecare legătură v din p
dacă v nu este în index și v nu aparține lui F
și v ar putea fi vizitată
adaugă v la F
58. Dr.SabinBuragawww.purl.org/net/busaco
motoare: indexarea
Necesitatea folosirii sistemelor de baze de date
depozit distribuit de stocare (eventual, în cloud)
optimizarea regăsirii
modele non-relaționale de stocare – „mișcarea” NoSQL
printre primele abordări: BigTable (Chang et al., 2006)
http://labs.google.com/papers/bigtable.html
66. Dr.SabinBuragawww.purl.org/net/busaco
motoare: interogarea
Cererile sunt formulate via o interfață Web
exemplificare: o parte dintre operatorii Google
"expresie" ~termen –termen
numar1 .. numar2 related: URL cache: URL
intitle: termen(i) intext: termen(i) inurl: termen(i)
link: URL site: domeniu info: domeniu
define: termen filetype: extensie unit1 in unit2
detalii la www.googleguide.com/advanced_operators_reference.html
82. Dr.SabinBuragawww.purl.org/net/busaco
motoare: interogarea
Criterii vizând calculul relevanței:
ranking bazat pe conectivitate
analiza relațiilor (legăturilor hipertext) cu alte pagini
eventual, în funcție de reputație
e.g., importanța domeniului Internet
(sunt luați în calcul factori ca vechimea, localizarea,…)
88. Dr.SabinBuragawww.purl.org/net/busaco
motoare: interogarea
Page Rank (Google)
(Larry Page & Sergey Brin, 1996 – doctorat la Stanford)
se baza inițial pe structura hipertext
o legătură de la pagina A la B reprezintă
un vot dat paginii B de către A
cu cât un sit este mai important,
cu atât page rank-ul asociat lui e mai mare
90. Dr.SabinBuragawww.purl.org/net/busaco
motoare: interogarea
Alternative la Page Rank:
TrustRank (Friesen, 2007)
cu cât un sit e mai aproape (în termeni de legături Web)
de siturile evaluate și considerate de încredere
de către oameni, cu atât va avea o importanță mai mare
vizează un sit (domeniu), nu o pagină Web
93. Dr.SabinBuragawww.purl.org/net/busaco
perioadă de timp strategie
înainte de 2000
conținut – indexarea textului
(titlu, anteturi, URL, descriere via <meta>)
2000—2010
conținut
autoritate (via legături)
2010—prezent
conținut
autoritate
personalizare (social media +
informații personale)
2012—prezent
conținut
autoritate
personalizare
concepte
(date-structurate + Web of data)
adaptare după (K. Bodnar & J. Hopkins, 2011)
94. Dr.SabinBuragawww.purl.org/net/busaco
generale Bing, DuckDuckGo, Google, Yahoo!, Volunia,…
regionale
Baidu (China), Daum (Coreea), Goo (Japonia),
Guruji (India), Rambler (Rusia) etc.
meta-căutare Dogpile, Excite, Mamma, Yippy
enterprise search Apache Solr, ElasticSearch, OpenSearchServer,…
răspunsuri
(answer-based)
umane: Stack Overflow, Yahoo! Answers, Quora
automate: AskMeNow, Evi, Wolfram Alpha
news search BingNews, Daylife, Topix, Yahoo! News,…
hărți (maps) Nokia HERE, OpenStreetMap, WikiMapia etc.
cod-sursă Google Code Search, Koders, Krugle
căutare pe baza P2P FAROO, Seeks, YaCy
desktop search DocFetcher, Recoll, Tropes Zoom
pentru dezvoltatori: Apache Lucene, Apache Nutch,
mnoGoSearch, Namazu, Xapian,…
103. Dr.SabinBuragawww.purl.org/net/busaco
Motor de căutare internă (la nivel de sit)
îmbunătățirea interacțiunii – utilizabilitatea
integrarea în designul general al sitului
tactici: oferirea unui următor pas de realizat
(mai ales când nu există rezultate),
sugestii privind căutarea, exemple, rafinarea cererii etc.
105. Dr.SabinBuragawww.purl.org/net/busaco
Motor de căutare internă (la nivel de sit)
în pagina de redare a rezultatelor, va fi afișată și
interogarea inițială, cu posibilitatea modificării ei
oferirea a cel puțin N rezultate/pagină +
indicarea numărului total de pagini de rezultate
sau
încărcarea progresivă a următoarelor rezultate
106. Dr.SabinBuragawww.purl.org/net/busaco
Motor de căutare internă (la nivel de sit)
calitatea rezultatelor oferite e dependentă
și de modul de structurare a datelor
fiecare rezultat să includă informații utile
folosirea unui vocabular înțeles de către vizitator,
utilizarea unor tehnici de vizualizare intuitivă,
facilitarea filtrării & sortării datelor etc.
110. Dr.SabinBuragawww.purl.org/net/busaco
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ă fie
regăsite în urma unei căutări specifice efectuate
cu un instrument de căutare
113. Dr.SabinBuragawww.purl.org/net/busaco
Structurarea codului-sursă – SEO la nivel de pagină
includerea de meta-date:
în antet – elementul <meta />
conținut textual alternativ pentru imagini
(<img alt="..." />), multimedia, legături (<a title="...">),
tabele (<table summary="...">) etc.
atașarea de meta-date externe via elementul <link />
115. Dr.SabinBuragawww.purl.org/net/busaco
Structurarea codului-sursă – SEO la nivel de pagină
conținutul primează (“content is king”)
alegerea judicioasă a cuvintelor-cheie în <meta>
criterii: relevanță, densitate, internaționalizare
o importanță majoră o are titlul paginii
122. Dr.SabinBuragawww.purl.org/net/busaco
Structurarea legăturilor – SEO la nivel de sit
dorim legături spre/de la situri importante
având conținut similar cu situl nostru
tehnici clasice (considerate „demodate”):
interschimb de link-uri – banner-e, blogroll-uri,
marketing bazat pe context
125. Dr.SabinBuragawww.purl.org/net/busaco
Structurarea legăturilor – SEO la nivel de sit
a se evita spam-ul
e.g., legături încrucișate între pagini similare
ale aceluiași sit Web ori ale unei colecții de situri
motoarele detectează & penalizează spam-ul!
http://searchenginewatch.com/topic/web_spam_detection
132. Dr.SabinBuragawww.purl.org/net/busaco
„Estetica” URL-urilor
evitarea numerelor de sesiune (SID) din URL
la nivel de server Web, se poate activa rescrierea
URL-urilor – e.g., utilizarea mod_rewrite la Apache
la nivel de server de aplicații, inhibarea transferului
SID-ului prin URL (PHP: php_flag sesssion.use_trans_sid off)
seo: strategii
136. Dr.SabinBuragawww.purl.org/net/busaco
Navigarea bazată pe interacțiunea cu utilizatorul
legături spre alte resurse
realizate exclusiv via Javascript, Flash sau Silverlight
<p>informații despre burse <a href="javascript:sari(1);">aici</a></p>
de evitat
greșit!
144. Dr.SabinBuragawww.purl.org/net/busaco
Strategii generale:
Google Webmaster Central
http://www.google.com/webmasters/
Studierea accesului (specificării/alegerii unor metrici):
Google Analytics, NetTracker, Urchin, WebTrends,…
Rafinarea cuvintelor-cheie:
KeywordDiscovery, WordTracker, Google Suggest
Optimizări: Google Optimizer, YSlow Smush.it
seo: instrumente – exemple
145. Dr.SabinBuragawww.purl.org/net/busaco
Imposibilitatea accesării unor date transmise
„în fundal” pe parcursul interacțiunii Web
motoarele de căutare nu pot indexa conținutul primit
(asincron) de la server – e.g., prin Ajax
traficul „subteran” nu poate fi accesat în mod normal
roboții Web clasici nu pot interpreta programe JavaScript
seo vs. ajax
146. Dr.SabinBuragawww.purl.org/net/busaco
Imposibilitatea accesării unor date transmise
„în fundal” pe parcursul interacțiunii Web
soluție posibilă:
propunerea “Making Ajax crawlable” (Google, 2009)
disponibilă începând cu 2012
https://developers.google.com/webmasters/ajax-crawling/
seo vs. ajax
156. Dr.SabinBuragawww.purl.org/net/busaco
marcaje HTML (<div>, <span>)
pentru specificarea datelor &
structurii lor
„clase” CSS pentru prezentare
și asocierea de descrieri
ale meta-datelor
structurarea
paginilor Web:
precizarea
înțelesului
(semanticii)
conținutului
174. Dr.SabinBuragawww.purl.org/net/busaco
<!-- specificarea unui eveniment via microformate versiunea 2 -->
<section class="h-event">
<a class="p-name u-url" href="http://designjamiasi2014.eventbrite.com/">
Design Jam Iasi #3</a>
de la <time class="dt-start">2014-10-31</time>
până la <time class="dt-end">2014-11-01</time>, fiind organizat la
<span class="p-location h-card">
<a class="p-name p-org u-url" href="http://www.info.uaic.ro/">
Facultatea de Informatică</a>,
<span class="p-street-address">Strada Berthelot, 16</span>,
<span class="p-locality">Iași</span>,
<abbr class="p-region" title="Iași">IS</abbr>
</span>
</section>
190. Dr.SabinBuragawww.purl.org/net/busaco
Thing – schema cea mai generală, incluzând conceptualizări
Action
BroadcastService
CreativeWork
Event
Intangible
MedicalEntity
Organization
Person
Place
Product
Class
Property
modelare de
cunoștințe
(via o ontologie)
196. Dr.SabinBuragawww.purl.org/net/busaco
Microformatele și microdatele HTML5
sunt indexate de motoarele de căutare
Bing – http://tinyurl.com/b9mx2f2
Google rich snippets – http://tinyurl.com/3c6naq7
Yahoo! BOSS (Build your Own Search Service)
http://developer.yahoo.com/search/boss/
199. Dr.SabinBuragawww.purl.org/net/busaco
Cum ar putea fi detectate și penalizate
siturile Web care „trișează” în ceea ce privește
tehnicile SEO, eventual recurgând la
microformate/microdate HTML5?
discuție (pentru acasă)