В KDE 4.13 на смену Nepomuk придёт новая реализация семантического поиска

Разработчики проекта KDE сообщили о решении включить в состав следующего выпуска KDE 4.13 улучшенной реализации системы семантического поиска, продолжающей развитие семантического движка Nepomuk. В рамках проекта Baloo на основе ранее доступных наработок Nepomuk подготовлен новый фреймворк для обработки метаданных, таких как теги, рейтинг и комментарии, а также для организации хранения, индексации и поиска по контенту пользователя, в том числе по файлам, почтовым сообщениям, адресной книге и другой информации. Например, семантический поиск может быть использован для выборки данных по тегам, сортировки с учётом рейтинга, поиска заданных типов контента (изображения, видео, документы и т.п.), удовлетворяющих определённым характеристикам. Поддерживается выборка с учётом взаимосвязи данных, например, можно найти все файлы, полученные от определённого пользователя в адресной книге или переданные через Bluetooth, вывести список документов отредактированных в указанном диапазоне времени. Для поиска по содержимому документов предоставляются средства полнотекстового поиска.

В процессе разработки Baloo была поставлена задача решения наблюдаемых в Nepomuk проблем при сохранении функциональности, стабильности и зрелости уже используемых технологий. В частности, Baloo нацелен на существенное снижение потреблению памяти и достижение очень высокой производительности поиска. В Baloo также реализована порция улучшений, направленная на повышение гибкости. Организовано хранение метаданных, в том числе выходящих за рамки тегов, комментариев и рейтинга, в форме расширенных атрибутов, вместо хранения в отдельной БД.

При этом, в Baloo по возможности используются уже проверенные временем элементы кодовой базы Nepomuk, работа которых не требует оптимизации. Такой подход позволил сохранить уже присутствующий процесс организации сементического поиска, который после перехода на Baloo сохранится в привычном для пользователя виде. Отличия будут заметны только на уровне заметного увеличения производительности, точности результатов и надёжности операций поиска в различных приложениях, в которых произведена интеграция с семантическим движком.

В качестве одной из основных проблем Nepomuk отмечается использование RDF и единого хранилища для всех типов данных, которое создаёт проблемы с эффективностью хранения и затрудняет внесение оптимизаций. По сути, Baloo является ответвлением от Nepomuk, избавленным от привязки к RDF. Архитектура Baloo основана на трёх типах сервисов, каждый из которых отвечает за хранение определённого вида данных, без использования общего централизованного хранилища:

Хранилища данных, предназначенные для постоянного хранения различных типов данных; Хранилища поисковой информации (поисковые индексы), предоставляющие средства для поиска специфичных данных. В настоящий момент подготовлены поисковые хранилища для файлов, сообщений электронной почты и адресной книги; Хранилище сведений о взаимосвязи между произвольными идентификаторами, например, о привязке тегов к идентификаторам контента. Для каждого типа данных используются отдельные реализации, эффективные для работы с определённым видом контента. Например, для хранения данных, связанных с файлами, используется комбинация SQLite и Xapian. Для хранения данных адресной книги применяется поисковый индекс Xapian, сами данные доступны через Akonadi. Для хранения тегов используется специально оптимизированный формат, учитывающий связь тегов с контентом.

В настоящее время для пользователей KDE 4 ещё оставлена возможность использования Nepomuk, но данный фреймворк решено не переносить в KDE 5. Для KDE Frameworks 5 и Qt 5 будет портирован только Baloo. Для автоматизации миграции хранилища Nepomuk в сервисы хранения Baloo подготовлено специальное приложение nepomukbaloomigrator (при обновлении KDE до 4.13 существующие БД Nepomuk будут преобразованы автоматически).

На уровне API для приложений Baloo не обеспечивает прозрачной замены Nepomuk и требует работы по портированию. Тем не менее, Baloo предоставляет API для организации поиска, который во многом похож на Nepomuk, но значительно более простой для использования. Для модификации метаданных в Baloo предложен новый асинхронный API. Для разработчиков также подготовлены штатные виджеты для назначения тегов и указания рейтинга.

©  OpenNet