Няма да преувеличим ако кажем, че не само за настолното търсене, но и за всяко друго основната дилема е дали да се ползва йерархичната подредба от папки, под-папки и файлове или разпределеното означаване с етикети. И докато в уеб-сайтовете и при работата с уеб-приложения етикетите вече са доказано по-удобни за потребителя и в голяма степен наложили се, то настолно все още папките и файловете доминират.

Какво е предимството на етикетите?

Когато се използват йерархични подредби, указването между два елемента на по-сложни връзки от тези от вида “родителски” и “дъщерен” е много сложно. Най-разпространена и най-добре позната ни е едноизмерната йерархична система — като тази на файловата структура на почти всички настолни системи. Има родителска папка и дъщерен елемент, който е или нов клон (папка) или листо (файл) в едноизмерната дървовидна структура. Така е при настолните папки и категориите в сайтовете. Хак, който коригира този недостатък на дървовидната йерархия е ползването на символни връзки. Чрез тях един елемент пак съществува физически само в една конкретна папка, но може да е видим и като съдържание в други. Работата със символни връзки е улеснение, но не решава докрай проблема. А и е налична само за някои файлови системи. Други, масово разпространени файлови системи нямат начин за изход от едноизмерната дървовидна йерархия.

Етикетите, от друга страна, дават много по-голяма свобода на описване на елемента. И съответно — много повече и по-бързи начини за откриването му при търсене. Един елемент може да има неограничен брой етикети, но може да присъства само в една папка или категория. Етикетите решават проблема със зариването с файлове, пръснати из директории с все по-малко говорящи имена и на все по-отдалечени едно от друго нива. Казано накратко, етикетите и всички достъпни метаданни правят търсенето на информация по-лесно и намирането й по-бързо.

В сайтовете — да, но настолно…

Да, всичко това приложено към настолните програми изглежда малко странно на пръв поглед. Но изграждането на настолни приложения около метаданните има много по-мащабни последствия за ползваемостта, отколкото правенето на сайтове с етикети. Етикетите не са всичко и са само ограничен пример за метаданни. Те са нещо, което се пише на ръка и се залепя на бурканите с лютеница, за да знаем, че това е “лютеница”. Но когато отворим шкафа и търсим буркан с лютеница ако само четем етикетите ще е по-трудно и бавно и даже може да сгрешим. Може например за вземем книга, чието заглавие е “лютеница” и е пъхната между бурканите. Да, може на всеки буркан да сме сложили предварително още етикети — “буркан”, “стъкло”, “чупливо”, “храна”, “червено”, “от баба” и т.н. Някои са нужни може би, но повечето повтарят нещо, което си е присъщо на обекта. Защо да се хабим да пишем “буркан” на всеки буркан, след като е ясно, че си е точно буркан?

Метаданните са това, което описва данните. Както метафизиката е това, което описва света. “Мета” е нещо близко, встрани, в съседство, от което може да се заключава за разглежданото друго. “Мета” е шаблонът, абстракцията, ръководството за ползване. Може и без метаданни, но дори и без да ги ползваме те присъстват иманентно. Бурканът си е буркан, стъклен, прозрачен, чуплив и т.н. дори и да не сме му залепили такива етикети.

Семантичното настолно търсене е такова търсене, което използва всички налични метаданни за обектите. Ръчно зададени етикети, но и в огромната си част автоматично открити родови описания и взаимовръзки с други обекти. Проследява смисъла, за да открие търсеното.

Пълнотекстово търсене? Защо, като има RDF?

Ако продължим метафората с търсенето на буркана с лютеница, пълнотекстовото търсене е като да отваряме всеки буркан и да опитваме вкуса, докато открием кой е този с лютеницата. Семантичното търсене, от друга страна е преглед на графика, която описва обектите в шкафа и взаимовръзките им. Търсим там стъклени буркани, после тези на втория ред, които са от баба, после да са червени, защото лютеницата има такъв цвят, после някой от отворените на втория ред, защото вчера вече ядохме лютеница и искаме да изядем отворената, за да не се развали. Накрая виждаме два такива буркана и взимаме този, на който има етикет “лютеница”, вместо другия с “печени чушки”. Поредността може да е друга, но принципът е същият — търсене по метаданни, филтриране и повтаряне до намирането. Другото търсене, несемантичното, също може да бъде забързано и направено абстрактно. Почти винаги е така, защото за него се подготвя и обновява индекс на срещаните вътре съдържания. Но при търсенето по метаданни абстракцията е по-пълна и откриваните структури са по-независими от конкретните обекти.

Пълнотекстовото търсене ни помага, когато например помним цитат от текст и търсим по него смисъла. То е доста често по-бавно, индексирането при него е по-натоварващо и на практика не се ползва настолно от крайните потребители. Никой не си индексира за пълнотекстово търсене домашната директория с хиляди текстови файлове в различни формати, например. Не че не е възможно, просто е неефективно. Дори и да го направите, нали тези файлове се променят — всеки път ще обновявате индекса? Да, пак е възможно, но е нужна ужасно мощна машина.

А всичко това може да се направи със семантично търсене. То е това, което ни помага, когато помним някакъв смисъл, някаква връзка между неща или някакво качество на обект, но не помним точен цитат. С него можем да доизградим смисъла, като намерим всички значения, които съществуват и изберем релевантните и после открием и проследим всички взаимовръзки между намерените обекти.

Това в Интернет понякога е излишно или досадно и ползването на категории понякога е по-удобно от търсенето по етикети. Но при настолната работа определено индексирането и търсенето по метаданни е правилната посока за развитие. Цялата ви домашна папка може да се индексира по мета-описания, ръчно поставени етикети и автоматично открити зависимости. Например връзката между файл и е-поща на човека, на когото сте го изпратили прикрепен към писмо преди два месеца не може да се открие с търсене от пълнотекстов тип. Но е нещо нормално за търсачките по метаданни. И понеже се индексират много по-малък обем данни, е възможно това да става в реално време и промените по файловата система на домашната ви папка да се отразяват в базата от данни почти веднага. Даже повечето програми имат настройка колко секудни да изчакват след промяна в обектите, за да не се обърква търсенето с временни файлове.

Всички събрани данни могат да се визуализират с графики, основани на RDF. Това е XML-форматът, използван в Интернет най-често за показване на автоматични карти на сайтовете. Има достатъчно програми, които работят с RDF и могат във всеки момент да визуализират връзките между обектите на търсене, описани от метаданните. Самите екрани на търсещите програми могат да показват именно посредством него смисловите връзки с други обекти. Например не намирате точно искания обект, но виждате връзки към смислово близки обекти и така коригирате връзката и накрая намирате търсеното.

Кои програми?

Разглеждането на отделните имплементации и сравняването на работата им е цяла нова тема за отделни статии. Нека кажем тук само адресите на най-известните настолни семантично търсещи програми за GNU/Linux. Някои от тях са по-нови проекти, други са вече наложили се и се инсталират даже по подразбиране в някои дистрибуции. Някои използват по-малко метаданните, други разчитат изцяло на тях.

Beagle е може би най-познатата програма. Проектиран е да е независим от настолната среда, но макар да поддържа KDE и да има интерфейси и за KDE, като Kerry, yaBi или kBeagleBar, както и уеб-интерфейс Peagle, все пак е по-разпространен в среда на GNOME.

Tracker е това, което мнозина казват, че ще измести Бийгъл. Индексира метаданните и на някои разпознати видове файлове индексира и съдържанието. Както и при другите индексиращи машини, всичко е настройваемо. Разпознава изрази и форми на думите, не само точно изписаните думи за търсене. Може да създава и умалени копия на документите за по-бърза ориентация. Според тестовете работи по-бързо от Бийгъл и е изработван в изискванията на проекта FreeDesktop, което го прави съвместим с всяка среда, която следва FreeDesktop.

Recoll е на основата на индексиращата машина Xapian. Има QT-търсачка и индексиращата машина може да работи както отделно от търсачката, така и като нишка вътре в нея, тоест да е активна само докато работи прозорецът на търсачката. Също както и горните, поддържа сложни търсения и най-различни видове файлове. Може да опростява формите на думите. Опростяването на формите (stemming) обикновено при пълнотекстовото търсене се прави при индексирането и след това търсенето се нагажда към индекса. При Recoll формите се опростяват чак при търсенето, а в индекса влизат всички форми на думата. Това позволява по-голяма гъвкавост при пълнотекстово търсене в документите. За сметка на малко по-обемния индекс.

Strigi ще влезе в бъдещото KDE 4 като подразбираща се и вградена машина за индексиране и търсене по метаданни. Много бърза и оптимизирана да работи незабележимо с другите програми. Както и доста от другите, и тя е преносима и освен под GNU/Linux, Solaris и MacOS се твърди, че работи и в среда на Windows. Както и другите, поддържа откриване на повтарящи се файлове, като пресмята контролни суми за всеки файл. И също така може да прави всичко в реално време и да обновява индекса при промени по файловете.

NEPOMUK е проектът, за който се говори най-много напоследък. Това е крачката, която ще бъде направена отвъд личното работно място към някаква управлявана форма на социална мрежа от метаданни. Целта е нещо, което се нарича “Social Semantic Desktop”, съставен от категорично разграничени и ясно свързани две части — настолна и социална. Така без да се налага силово нещо формално “социално”, потребителите ще могат да имат достъп до общото знание, до смисловите свързвания, които правят другите потребители. Казано накратко, това е нещо като Web2.0, пренесен в настолни приложения и развит до пълните си мащаби.

Определено интересни месеци и години ни очакват. Нещо такова се “гласеше” да е и уиндоуската “Виста”, но накрая се оказа, че са направили толкова много компромиси, че е далеч назад спрямо дори такива наложени вече програми като Beagle под GNU/Linux. Най-вероятно тласъкът от семантичните настолни търсачки ще “отключи” една друга интересна област — изцяло семантично построени файлови системи и програми, които ползват пряко метаданни, без да ги превръщат всеки път в неща от вида “папка-директория”.

Share