Vyhledávací nástroje

Dnes jsou na Internetu využívány zejména techniky fulltextového vyhledávání. Schopnosti fulltextových technologií však narážejí na velký objem informací, které jsou na Webu přítomny. Pokud tedy zadáme nějakému fulltextovému vyhledávači slovo, které nás zajímá, dostaneme jako odpověď tisíce stránek.

Pokud by byly dnešní fulltextové vyhledávače schopné využít přídavné informace uložené v XML dokumentech, byla by možnost efektivního vyhledávání na Internetu opět o něco lepší. Vyhledávací servery by mohly lépe rozpoznat důležitost dokumentů podle částí textu, kde se hledané slovo vyskytuje. Dokument, který dané slovo obsahuje v nadpisu, je jistě více relevantní, než když ho obsahuje pouze v nějaké poznámce pod čarou. Zlepšení přinese i kontextové vyhledávání, které umožní u hledaného slova zadat, zda se jedná o jméno člověka, jméno ulice, nebo popis fotografie.

Bez toho, aby počítače porozuměly přirozenému jazyku, nebude vyhledávání informací nikdy dokonalé. Nicméně již dnes se experimentuje s technikami, které mohou lecčemu pomoci. Problém kontextového vyhledávání spočívá v tom, že v různých DTD a schématech se pro označování téhož využívají elementy s různými názvy. Pokročilé vyhledávače proto budou obsahovat slovníky, které umožní překlad významu značek mezi několika DTD.

Internetové vyhledávací služby podporující XML

Na Internetu je dnes k dispozici velké množství vyhledávacích služeb. Jejich společným znakem je, že jsou převážně založeny jen fulltextově – indexují textový obsah stránky. Nestarají se však o strukturu dokumentu a o význam jednotlivých částí textu. Na Webu se začínají objevovat stránky, které jsou dostupné pouze v XML a logicky tak začaly vznikat vyhledávací služby, které podporují kontextové vyhledávání.

Služba GoXML se snaží kontextové prohledávání učinit hodně uživatelsky přátelské. Po zadání hledaných slov se nám zobrazí stránka s nalezenými dokumenty. Kromě toho se zobrazí seznam názvů elementů, ve kterých se hledaná slova vyskytují. Pokud si vybereme nějaký z nabízených elementů, ve výsledku se objeví jen dokumenty, kde jsou hledaná slova v daném elementu. Nejedná se tedy o nic převratného, ale pro rychlé upřesnění výsledků to stačí. GoXML nabízí i zajímavou službu, kdy se dotaz serveru zašle v podobě XML dokumentu a seznam výsledků dostaneme zpět opět v podobě XML dokumentu.

Obrázek 6. GoXML je první vyhledávací službou, která je zaměřena vyhledávání v XML dokumentech

Experimentální služba IBM xCentral spíše než k vyhledávání v XML dokumentech slouží k vyhledávání informací o XML. Můžeme si totiž vybrat, zda chceme prohledávat dokumenty, DTD, archivy XML konferencí nebo jiné materiály vztahující se k XML.

Vyhledávač pro „osobní použití“

Nejméně stejně důležité jako internetové vyhledávače jsou systémy, které umožňují prohledávání XML dokumentů, které máme na svém počítači nebo třeba na firemním Intranetu. Již dnes existuje poměrně široká nabídka nástrojů, které pro to můžeme použít.

Pokud dokumenty ukládáme do databáze, máme většinou vyhráno. Většina dnešních databázových serverů již nějakou dobu obsahuje možnosti fulltextového vyhledávání. S příchodem XML postupně výrobci databází rozšiřují funkčnost hledání tak, aby šlo zadávat i kontextové dotazy. Nové možnosti lze obvykle využít pomocí nových operátorů, které rozšiřují jazyk SQL (Structured Query Language) používaný v relačních databázích k dotazování.

Průkopníkem v podpoře XML v databázích je Oracle, ale ani IBM se svojí DB2 a Microsoft s SQL Serverem nespí a podporu XML ve svých produktech neustále zlepšují.

Ne vždy máme to štěstí (smůlu;–), že máme všechny dokumenty v databázi nebo na svém Intranetu. Zajímavé služby nám pak může nabídnout program Xdex, který umožňuje indexování a následovné vyhledávání v XML dokumentech. Indexované dokumenty přitom mohou být na mnoha místech. Xdex umí indexovat dokumenty uložené na WWW a FTP serverech, na síťových i lokálních discích. Lze jej požádat i o to, aby zaindexoval dokumenty uložené v databázi.

Mezi unikátní vlastnost Xdexu patří možnost vytvoření tezauru pro názvy elementů. Pokud indexované dokumenty odpovídají různým DTD nebo schématům, ale některé elementy mají stejný význam, můžeme říci, které elementy jsou vzájemná synonyma. Kontextové hledání pak hledá ve všech elementech s daným významem.

Rozhraní k Xdexu je webové, vyhledávač obsahuje i XSL procesor, takže lze dokumenty pro zobrazení převést do HTML pro starší prohlížeče.

Všechny předchozí vyhledávače fungovaly na principu, kdy nejsou prohledávány přímo originální dokumenty, ale pomocná datová struktura, tzv. index, který hledání výrazně urychluje. Index se však musí neustále aktualizovat, aby odrážel skutečný obsah dokumentů. Navíc je index obvykle stejně velký (ne-li větší) než indexované dokumenty, takže dochází ke zbytečnému plýtvání místem na disku. Pokud potřebujeme kontextové prohledávání použít jen občas na nějakou menší skupinu dokumentů, může se nám hodit program sgrep. Tato jednoduchá utilitka pracuje podobně jako známý program grep, s tím rozdílem, že můžeme vytvářet kontextové dotazy, které zadané fráze hledají jen v určitých částech dokumentu.

Dotazovací jazyky

Všechny výše popsané druhy prohledávačů používaly vlastní jazyk pro zadávání dotazů nad XML dokumentem. Často je tento jazyk od uživatele ještě odstíněn nějakým příjemným uživatelským rozhraním. Pro všechny by však jistě bylo výhodné, kdyby existoval nějaký standardizovaný jazyk pro dotazování v XML dokumentech. Převážná většina relačních databází podporuje dotazovací jazyk SQL. Kdyby se pro dotazování v XML používal nějaký stejně rozšířený a standardizovaný jazyk, bylo by to jen dobře.

Mezi jednoduché dotazovací jazyky pro XML můžeme zařadit XPath a XSLT. Ty umožňují vybírat určité části dokumentu. Jsou však orientovány na XML dokumenty, které se používají pro data textového charakteru. Pro vyhledávání v silně strukturovaných datech nejsou příliš vhodné. Konsorcium W3C proto pracuje na dotazovacím jazyku pro XML, tzv. XML-QL (XML Query Language). Ten má kromě snadného výběru informací v XML dokumentu umožnit i jejich uspořádání do formy, ve které potřebujeme výsledek.

Existují i iniciativy, které se snaží podporu pro XML přidat do jazyka SQL. Nové verze komerčních databázových serverů často již nějaký dotazovací pro XML mají v sobě zahrnutý. Zatím však nelze hovořit o nějakém standardu. Bude ještě potřeba nějaký čas, než se na základě zkušeností a požadavků vytvoří jednotný a všemi používaný standard.

© Jiří Kosek 2000-2001