Hledání na webu
Hledání na webu
Pavel -BVer- Šuchmann
Tento text uveřejnil časopis Živel č. 10 pod názvem Hledej, šmudlo, zde jej publikujeme se svolením redakce.
Hledáte něco? Všechno je na Internetu: předpověď počasí, program Vídeňské státní opery, horoskopy čínských císařů, návod na výrobu bakelitu, tuny pornografie, unabomberův manifest, tibetská kniha mrtvých, dnešní noviny, eskymácká kuchařka, pohyby akcií na burze a Stopařův průvodce po galaxii.
To všechno tam je. Jak ale najít, to, co potřebujete?
Tento problém je starý jako web sám.
První hledací služby sítě WWW se objevují roku 1994, v současnosti existují asi dvě desítky těch, které mají globální charakter. Všechny dnes patří soukromým společnostem, často však začaly jako praktická část univerzitního výzkumu. Jejich příjmy tvoří zejména proužková reklama, joint ventures s významnými softwarovými firmami a prodej licencí. Jistě znáte ty největší z nich - InfoSeek, Alta Vista, Excite, Lycos, Yahoo.
Ačkoliv činnost jednotlivých systémů se může od sebe navzájem i výrazně lišit, pokusíme ve stručnosti popsat principy společné všem těmto hledacím službám.
Databáze a roboty
Jádrem každé hledací služby je indexová databáze, ve většině případů plněná a občerstvovaná automaticky. Může být ale tvořena poloautomaticky (Magellan) nebo i zcela ručně (Yahoo). Většina hledacích služeb také mimoto umožňuje svým uživatelům přidat záznam - odkaz na svoji stránku.
Indexační databáze obsahuje informace potřebné k dohledání stránky na WWW. Často je uchovávana jen adresa (URL), titulek a několik set prvních znaků na stránce. Velikostí databáze se samozřejmě hledací služby od sebe liší a každá o sobě udává - z marketingových důvodů - jiné parametry: počet známých či jedinečných URL odkazů, počet jedinečných WWW stránek, počty částečně a zcela indexovaných stránek, atd. Zdá se, že nejmohutnější indexy vlastní Alta Vista (31 miliónů stránek z 476 000 serverů, přes 200GB dat), Hot Bot, Lycos a Open Text. Velikost databáze však nemusí být to nejdůležitější - porovnejte si například výstup Alta Visty a InfoSeeku po zadání stejných klíčových slov.
Mnohé hledací služby nabízejí obsah své databáze také ve formě stromových katalogů (browsing structure). Použitelnost katalogu do značné míry záleží na tom, jak jsou témata členěna, jak často je katalog aktualizován, kolik obsahuje úrovní a jak intuitivní je postup jednotlivými uzly stromu. Udržovat rozsáhlou databázi tematicky členěných odkazů vyžaduje značné úsilí s velkým podílem ruční práce. Kdo si byť jen zkusil vytvořit katalog knížek ve vlastní knihovničce, ví, o čem je řeč.
O aktualizaci databáze se tedy ve většině případů stará robot "sběrač" (harvesting robot). To je autonomní program, jehož činnost můžete neuměle napodobit, pokud posadíte maniaka k prohlížeči a budete ho nutit, aby si prohlédl celý Internet. Robot je však rychlejší, důslednější a neunaví se. Předně ho nezajímají obrázky a grafická podoba (layout) stránky, "čte" jen čistý HTML text, a na stránce si nejvíce "všímá" odkazů na další stránky. Pracuje rád v noci, v době, kdy je síťový provoz nízký. A pracuje systematicky, ačkoliv jeho rozhodovací pravidla někdy obsahují prvky náhody (Lycos).
Data, která robot "sklidil", předá ke zpracování indexačním programům. To jsou další programy, jacísi knihovníci a archiváři, kteří vyberou z materiálu to podstatné, odstraní informační šum, optimalizují data a připraví je pro vyhledávací subsystém. Výsledkem tohoto procesu jsou nové nebo občerstvené záznamy v hlavní databázi prohledávací služby.
Navzdory nezměrnému úsilí navštíví roboty váš server v průměru dvakrát do roka, ačkoliv některé často obměňované stránky jsou indexovány častěji.
Takový robot to vůbec nemá jednoduché. Nejprve se na webu musí umět pohybovat.
Jak vypadá taková průměrná webovská stránka? Počet odkazů na stránce je sice v průměru větší než 10, což by naznačovalo vysokou propojenost webu, pouhá jedna třetina odkazů však vede mimo stránku. Z vnějšku pak v 59% případů ukazuje na stránku jen jeden jediný odkaz.
WWW tedy není homogenní hmota mezi sebou dobře propojených stránek, spíše jde o ostrovy navzájem tematicky oddělených webů, mezi nimiž je propojení minimální (např. síť akademických serverů a web s erotickým obsahem, apod.). Údajně až 5% všech stránek tvoří jakousi mrtvou hmotu, zcela izolovanou od okolního hypertextového prostoru.
Práci robotů ztěžuje také fakt, že často nejsou schopny číst dynamicky vytvářené stránky, nezařadí do databáze nic, co člověk obdrží po vyplnění nějakého WWW formuláře a mají potíže mimo jiné například se stránkami se serverovým kódováním češtiny. Situaci dále komplikuje to, že autoři dokumentů nedodržují doporučení jazyka HTML, v němž jsou dokumenty psány - často neuvádějí i tak základní informaci, jaknou je např. titulek stránky - a také to, že stále větší procento textového obsahu je zobrazováno formou grafickou.
Uživatelské rozhraní a dotazovací subsystém
Uživatelské rozhraní je ono notoricky známé okno dotazu a tlačítko "Hledej!". Většina služeb kromě tohoto základního režimu (Simple Search) nabízí i rozšířené způsoby hledání (Advanced Search, Refine Query..), avšak jasným trendem je tyto rozšířené režimy neprosazovat. Důvodem je zřejmě nízká úroveň uživatelů, využívajících těchto možností pouze ojediněle.
Po stisknutí tlačítka je předán řetězec klíčových slov dotazovacímu subsystému, což je proces, jenž zadaný text analyzuje, vybírá z hlavní databáze položky splňující daný dotaz, řadí je a vrací výsledek zpět uživatelskému rozhraní.
Na vyhledávací stroj jsou kladeny protichůdné požadavky. Doba odezvy musí být minimální, nejlépe nulová, aby nemusel návštěvník příliš čekat. Na druhé straně stojí pochopitelná snaha provozovatelů hledací služby neustále zvyšovat denní počet přístupů na stránky, což je určující faktor pro cenu vystavovaných reklam.
Výsledek hledání je uživateli předložen ve formě seznamu odkazů, často doplněných o stručné popisy stránek, však to znáte. Zajímavé jsou zejména kritéria, podle kterých hledací subsystém řadí odkazy ve výsledku. Nejdůležitější je počet výskytů hledaných slov. Dále jsou preferovány stránky obsahující hledaná slova v hlavičce či titulku, čím blíže začátku souboru, tím lépe. Někdy je zohledněna vzájemná vzdálenost hledaných slov v hodnoceném textu, měřeno počtem slov mezi nimi (Alta Vista). Některé algoritmy berou v úvahu i jiné charakteristiky hodnotící "popularitu stránky" (Magellan) nebo např. počet odkazů (citací URL) z cizích stránek (Lycos).
Pokud často používáte hledací služby, víte, že většina položek odpovědi je informační šum. Udává se, že až 15% URL odkazů ve výsledcích je mrtvých, tj. jde o neaktuální položky databáze. Dále se do výsledků dostávají i adresy ostatních stránek, které obsahují hledaná klíčová slova v jiném kontextu. Zvolit správná klíčová slova často vyžaduje opakované úsilí, na jehož konci je výsledek s uspokojivým počtem položek (desítky, maximálně stovky odkazů).
Některou stránku se vám naopak nepodaří vyhledat vůbec, což je také častá situace.
Metahledače
Zajímavou odrůdou hledacích služeb jsou tzv. metahledače (Savvy Search, MetaCrawler). Metahledací služba nemá vlastní indexovou databázi, nicméně svým uživatelům nabízí rozhraní podobné formulářům klasických hledacích služeb. Zadaný dotaz posílá simultánně několika hledacím službám, svým způsobem tak "parazituje" na cizích databázích.
Jaké to přináší výhody? Složený výsledek násobného dotazu je úplnější. Dotážeme-li se většího počtu databází, pak jediná z nich údajně pokrývá maximálně 45% celkového počtu odkazů ve složené odpovědi.
Zvláštním případem jsou klientské metahledače (Web Ferret). Namísto centrální služby přístupné přes prohlížeč se jedná o program, který si nainstalujete na počítač. Kromě zmíněných vlastností metahledačů nabízejí tyto hledače určité další možnosti volby hledací strategie (např. jakých databází se chcete dotazovat, jak rozsáhlé výsledky přijímat apod.).
Klientské hledače také nevytvářejí vlastní indexové databáze, jejich hlavní předností je to, co ocení každý, kdo je k Internetu připojen přes komutovanou telefonní linku: dovedou hledat najednou v několika databázích současně.
Pátrací agenti
Největší slabinou hledacích služeb a metahledačů je obecné zaměření databází, které jsou získávány "hrubou silou" a jsou zaměřeny na potřeby průměrného uživatele. Zdá se, že pouhé hledání podle klíčových slov nepostačuje, zvláště, když dopředu nemáme příliš jasnou představu o tom, co vlastně chceme najít (častý případ).
Najít užitečnou informaci v tom bobtnajícím propletenci textů je se zvětšujícím se objemem dat na webu stále složitější. Jistou naději však poslední dobou vzbuzují softwaroví "agenti".
O co jde: "Softwarový agent je samostatný program, který pomáhá uživateli." To je samozřejmě velmi obecná definice, nás zajímají agenti (nebo agenty?) vytvářené za účelem hledání informací na webu. Takový agent může komunikovat s uživatelem (user agent) nebo s ostatními agenty, nebo se zdroji na Internetu (server agent), nebo může plnit specifický cíl (task agent). Robot hledací služby má tedy nejblíže k server agentům (získává data z WWW serverů).
Jaké jsou požadavky na softwarového agenta? Agent by měl být autonomní, tj. nezávisle a samostatně jednat bez vedení uživatele; komunikovat s okolím a zkoumat okolní svět (sociální interakce). Důležitou vlastností je také reaktivita - agent by měl příhodně reagovat na danou situaci - a proaktivita, tedy schopnost vykonávat činnost a dosahovat cílů prostřednictvím vlastní iniciativy.
Představte si selou síť specializovaných softwarových agentů. Osobní agent zjišťuje opakovanými dotazy, co jeho pán vlastně chce na síti najít. Tím nejen že upřesňuje konkrétní dotaz, ale dlouhodobě tak buduje profil "svého" uživatele, učí se na jeho preferencích a vkusu a přizpůsobuje svou činnost podle této zpětné vazby. V síti agentů mají tyto agenty roli personálních asistentů.
Další agenti číhají v druhé vrstvě a nabízejí své hledací služby - říkejme jim zprostředkovatelé. Fungují tak trochu jako metahledači vybavení vlastní zkušeností - tuší, kde by se konkrétní typ informace dal najít, vědí, koho se mají zeptat. Personální asistent se na nějaké zprostředkovatele obrátí, při tom volí ty, se kterými má dlouhodobě dobré vztahy (již dříve mu pomohli najít, co potřeboval). Zprostředkovatelé se ptají dál na informační agentů. To jsou "tiskoví mluvčí" dnešních hledacích služeb, muži v poli, knihovníci, archiváři a databázoví agenti - rozvědčíci. Ti mohou zprostředkovatelům nabízet své informace.
To vše na principu volného trhu a předem dohodnutých komunikačních protokolů, hledání tak může probíhat nepřetržitě, i když žádný z lidských uživatelů této špionážní sítě zrovna žádnou informaci nevyžaduje. Rolí a specializací agentů může být samozřejmě více, nemusí existovat jen tyto tři vrstvy. Celý systém má schopnost adaptace, neustále se zdokonaluje a učí z předchozích zkušeností.
Zdá se vám to šílené? Přesto se těmito úvahami vědci zaobírají (projekt NetAgent). Možná, že právě tudy vede cesta k řešení dnešní webovské rovnice hledat=nenalézát.
Vzpoura robotů
Představa samostatně jednajících agentů vzbuzuje určité obavy.
Co všechno se může stát? Předně je to ztráta kontroly nad činností takových agentů. Aby nám byly agenti k užitku a mohli za nás nejen hledat, ale i jednat, musíme jim odevzdat část svých rozhodovacích a výkonných pravomocí (autonomie, proaktivita). Překročení určité meze pak může navodit situaci, kdy se z dobrého sluhy stává ještě lepší pán: Pokud se naše softwarová sekretářka osvědčí, zvykneme si na její neomylnost a budeme vždy dbát na její doporučení. Takový agent pak jednou může s konečnou platností zbavit člověka "břemena" rozhodování. Proti lidské omylnosti stojí precizní a striktní výpočty, proti pomalému lidskému uvažování pak nanosekundová zpoždění, proti lidské intuici je tu schopnost předvídat mnohonásobně větší množství pravděpodobných vývinů situace. Nikde není psáno, že jen člověk má patent na rozum.
Jak už bylo uvedeno, k tomu, aby mohl agent samostatně jednat za uživatele, musí se "chovat" jako člověk. A v tom je právě háček.
Mezi kritiky agentů nalezneme i známého proroka virtuální reality - Jarona Laniera. Jeho námitky lze shrnout asi takto: rozdíl mezi agentem a jiným programem je pouze v psychologii uživatele. Člověk rád deleguje svoji zodpovědnost na počítač: "Já nic, to počítač!", slyšíme často kolem sebe.
Osobní "softwaroví asistenti" jsou nejenom omluvou neschopných uživatelů, ale také výmluvou líných programátorů. Napsat kvalitní uživatelské rozhraní k programu je tvrdá a nevděčná dřina, zvláště když víte, že devadesát procent lidí, kteří s ním přijdou do styku, bude jen mačkat OK, OK, OK... Když se vám do toho nechce, odhadněte, jak by se choval průměrný uživatel ovládající váš program, dejte to dohromady a máte softwarového agenta. Agent je tedy jen způsob, jakým (ne)ovládáme počítač, tvrdí Lanier.
Tento trend je právě díky softwarovým agentům posvěcen. Zvyšování inteligence agenta bude mít za následek relativní úbytek inteligence člověka. Agent, který se má chovat v souladu s uživatelem, musí jeho chování modelovat a tento zjednodušený softwarový model pak na uživatele zpětně působí vlivem vzájemné komunikace. Aby si se svým osobním agentem rozumněl, člověk se začne chovat podle toho, co si o něm jeho agent "myslí".
A co víc - vznikne svět, v němž bude účinná reklama zajištěna manipulací, podplácením a hackováním uživatelských agentů: "Zajímá vás rituál Bali? Pak se zajímáte o cestování a to, co je pro vás v tuto chvíli nejlepší je - naladit si právě probíhající Infobahn Travel Game Show!".
Spontánní vědomí Internetu
Přes tyto námitky se však pokrok v oblasti návrhu softwarových agentů (ať už se pokrokem rozumí cokoliv) jen těžko zastaví.
Inteligence je schopnost efektivně se rozhodovat v určitém prostředí. Pokud je tímto prostředím Internet, můžeme chápat návrh a konstrukci softwarových agentů jako úlohu umělé inteligence.
Nabízí se otázky: nevznikne díky vzájemné komunikace dostatečného množství autonomních softwarových agentů postupnou evolucí sítě systém, jehož vlastnosti se přiblíží projevům lidského mozku - tedy vědomí? Nevznikne samostatně uvažující společenství, neuronová síť agentů? Protože se lidé nejsou schopni shodnout ani na uspokojivé definici vědomí, natožpak v tom, zda je možné vytvořit vědomí uměle, nemůžeme uvedené spekulace jednoduše odmítnout.
Tedy - zachrání nás chytří softwaroví agenti před vlastní blbostí?
Odkazy
Understanding and Comparing Web Search Tools
http://www.pscw.uva.nl/sociosite/SEARCH/comparing.html
T. Koch, at all: The Building and Maintenance of Robot Based Internet Search Services
http://www.ub.lu.se/desire/radar/reports/D3.11/
Jiří Peterka: Orientace a vyhledávání v Internetu
http://archiv.czech.net/a706p200.htm
David Eichmann: Ethical Web Agents
http://rbse.jsc.nasa.gov/eichmann/www-f94/ethics/ethics.html
Simson Garfinkel: Metadata, Sooner or Later
http://www.wired.com/news/news/technology/story/3996.html
Koster, M: A Standard for Robot Exclusion
http://web.nexor.co.uk/mak/doc/robots/norobots.html
Sverker Janson: Intelligent Software Agents
http://www.sics.se/isl/abc/survey.html
Jaron Lanier: Agents of Alienation
http://www.voyagerco.com/consider/agents/jaron.html
T. Park, K. Chon: NetAgent - A Global Search System over Internet Resources by Distributed Agents
http://www.edu.cn/HMP/PAPER/204/html/paper.html