neděle 7. července 2013

VikiTron - chytrý vyhledávač (jak funguje)

Ahoj,
už jsou tomu 2 roky, co jsem poprvé dostal myšlenku utřídit všechny informace které znám nebo mám uložené v obsáhlých databázích. Přemýšlel jsem dále co s tím. Napadlo mě vytvořit web, kterému když položíte konkrétní otázku, tak se pokusí sestavit stručnou a jasnou odpověď. To jsem ještě netušil, že se z toho po čase vyklube vyhledávač tabulkových dat, faktů a "chytrý" kalkulátor. Tolik k příběhu a teď k realitě:

Navrhl jsem (a naprogramoval) funkční prototyp vyhledávače (jmenuje se VikiTron a je volně dostupný na adrese http://vikitron.com), který si klade za cíl co nejrychleji najít odpověď (běžně do 10ms!), funguje jinak než všechny ostatní dosud známé vyhledávací programy. Nevyužívá informace sesbírané z otevřeného internetu (protože bych musel řešit licence, ověřovat pravdivost, ...), ale vychází z ověřených databází. Domluvil jsem se s majiteli práv (nebo využívám API, které je volně dostupné => třeba Wikipedie, Google Maps, ...) nejrůznějších databází a postupným indexováním jsem sestavil obrovskou databázi (v současnosti něco kolem 500 000 záznamů => a neustále to roste). Data jsou dostupná pod volnou licencí (můžete si je zdarma stáhnout a používat kde chcete) pod podmínkou uvedení zdroje. Zdroje jsou vždy přehledně uvedené v pravém menu (pokud ne, uvádějte adresu: http://vikitron.com). Celý projekt je přeložený kompletně do češtiny a slovenštiny. V brzké době přidám angličtinu (překlad tolika textů je časově náročné).

Když to shrnu, tak VikiTron v současnosti umí:
- Globální příkazy, na př. porovnání. Příklad: Praha vs Brno
- Zeměpis českých měst a obcí (najde i nejmenší vesničky) + se vás snaží lokalizovat a odhadnout vzdálenost od vás (zatím funguje jen někdy, bude postupně opraveno)
- Chemii (zejména prvky), hledání podle českého názvu, latinského názvu a značky (tady to občas ještě "buguje")
- Čísla (všeobecně po zadání číselné hodnoty zobrazí nejrůznější informace)
- Množiny čísel, po zadání více číselných hodnot (oddělené mezerou, čárkou nebo středníkem) zobrazí nejrůznější informace
- Vlastní česká jména (u některých rozšiřuje znalosti tabulkou se svátky, ...)
- Matematické definice (na tom ještě budu hodně pracovat, berte to s rezervou)
- České synonyma, po zadání slova najde synonyma (dobře funguje u podstatných a přídavných jmen)
- Barvy, zadávejte ve formátu #XXXXXX nebo anglický název (brzy přibyde možnost mýchání barev a dalších vymožeností)
- Domény (ve tvaru: xxxxxxxx.yyy), vypíše tabulku zjištěnou přes WHOIS a další požadavky
- Hádat slovo (BETA), příklad dotazu: v_d_k
- A mnoho dalšího. Obsahuje spoustu funkcí, kterým se také říká "easter egg", zkuste nějaké najít! Jinak databáze neustále rozšiřuji.

Jak zadávat dotazy:
- Stručně, ideálně jedním slovem nebo slovním spojením. Česky (něco anglicky). Pokud chcete porovat víc podobných věcí, tak je oddělte mezerou. Příklad: "Kladno Praha Brno Ostrava"

Co VikiTron neumí:
- Vyhledávat osobnosti (až na pár výjimek), je to z důvodu zachování soukromí a řešení právních sporů
- Dotazy kombinující více kategorií (významů) jednotlivých slov (toto ale bude jednoho dne vyřešeno => až přijdu na to, jak)
- Fulltext internetu => a ani nikdy umět nebude. Není to primární myšlenka. Chci prohledávat ověřené informace
- Umělá inteligence (??!!!???), původně měl umět chápat významy otázek a odpovídat, ale bylo to na mě moc velké sousto. Možná to jednoho dne přidám ;)
- Kalkulačka. Ještě pořád neumí vyřešit 5+5, jednou to třeba bude umět, ale ještě se mi nepovedlo vymyslet parser, který by správně odpověděl na všemožné zadání

Co od vás očekávám:
- Byl bych rád za jakoukoli zpětnou vazbu. Pokud budete kritizovat, tak buďte co nejvíc konkrétní, abych se mohl z vaší rady poučit a případně věděl, jak dannou chybu opravit

Častá narážka:
"Vždyť tohle umí Google! Lamo! Nemá to cenu ... zruš to!". Moje odpověď: Google odpoví na spoustu faktických dotazů, určitě na spoustu mnohem lepší, ale můj vyhledávač dokáže data kombinovat, třídit a porovnávat na přání uživatele. Toto žádný pro mě známý vyhledávač ještě pořád neumí. A hlavně bych pak neměl být na co pyšný ;)

Pokud mi nahlásíte chybu, tak bude opravena hned, jak to bude možné. Počítám s velkým náporem uživatelů, takže to budu vyřizovat postupně. Pokud se vám projekt líbí a chtěli by jste přispět svým obsahem nebo schopnostmi, tak budu velice rád. Mám k dispozici opravdu kvalitní servery a hodlám z toho udělat "větší projekt". Samozřejmě neziskový! Reklama je jen na pokrytí nákladů. Pokud jste dočetli až sem, tak vám gratuluji (sám bych to asi nedokázal ;)).

PS: Občas blbne hlavička v Chromu, nevím jak to opravit. Dejte mi prosím tip.
PPS: Nejsem Hejl a nemám s ním nic společného. Projekt myslím vážně.