Nepomuk

From KDE UserBase Wiki
Revision as of 12:44, 11 September 2013 by Drhouse (talk | contribs)

Nepomuk

Цель данной страницы — не детальное объяснение технологии Nepomuk, а ее краткий обзор, показ отдельных примеров, формирование видения того, что скрывается за ней, предоставление ссылок на соответствующую информацию в Интернете.

Краткое объяснение

Как сказано в Глоссарии речь идет о классификации, организации и представлении данных. Это не приложение, а компонент, который может быть использован разработчиками в приложениях.

Попробуйте сами

Например, Dolphin использует Nepomuk. Чтобы воспользоваться возможностями Nepomuk и Strigi, они должны быть включены в разделе «Параметров системы» под названием «Поиск по меткам и содержимому». Боковая панель позволяет назначать метки файлам, оценивать файлы и добавлять комментарии. Затем эта информация сохраняется в Nepomuk. Затем вы можете выполнять поиск по меткам в панели поиска Dolphin. Введите в строке адреса «nepomuksearch:/» и ключевые слова для поиска.


Функциональность

Nepomuk предлагает приложениям несколько уровней функциональности. Первый и наиболее простой из них, позволяет вручную устанавливать метки, оценки и добавлять комментарии для файлов, как это сделано в Dolphin. Это поможет вам найти ваши файлы быстрее, но требует много ручной работы.

Чтобы сделать поиск текстовых файлов легче, Nepomuk предлагает вторую функциональность: индексирование текста, содержащегося в файлах. Для этого используется технология, называемая Strigi. Теперь вы можете найти эти файлы, введя слова, которые содержатся в этих файлах, или просто название файла (или его часть).

Третий уровень достаточно сложен, не зря Nepomuk задумывался как исследовательский проект рядом компаний и университетов Европейского союза. На этом уровне вы столкнетесь с такими словами и выражениями, как: "семантический рабочий стол" и "онтологии". В основном речь идет о контексте и отношениях.

Индексирование файлов

Strigi не индексирует все файлы на жестком диске. Конфигурация по умолчанию в большинстве дистрибутивов исключает некоторые общие закономерности для резервного копирования файлов и каталогов конфигурации, и это только индексы определенных каталогов в вашем домашнем каталоге. Вы можете изменить это в Параметры системы -> Поиск по меткам и содержимому -> Desktop Query -> Настройка каталогов индекса ... -> Индексируемые каталоги .

Отметим, что по состоянию на KDE 4.7 Strigi не следует по символическим ссылкам (bug #208602). В KDE до версии 4.9, даже если пользователь выбирает папки в символическую ссылку для индексации (bug #287593), содержимое не будет проиндексировано. Данная ошибка была исправлена​​. Таким образом, пользователь сможет увидеть символические ссылки, но ему/ей не будет разрешено отмечать какой-либо из них для индексации. (Символическая ссылка это файл, который «указывает» на другой файл или каталог; Dolphin отображает символические ссылки курсивом) Вам необходимо найти путь к фактическому каталогу (в Dolphin, выберите файл, перейдите к Свойства -> Общие -> Указывать на ) и укажите Strigi проиндексировать его.

В Параметры системы вы также можете управлять поведением Strigi при индексировании файлов на съемных носителях, таких как USB-диски и компакт-диски.

Примеры

С помощью двух примеров поясним, что предлагает Nepomuk.

Отношение

Скажем, 2 недели назад вы получили фотографию своего друга и сохранили ее где-то на компьютере. Теперь вы хотите найти ее. Если вы не помните, где вы ее сохранили, то вам не повезло.

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

Другие примеры потенциальных отношений, которые могут быть установлены: между веб страницей, с которой был скопирован текст, и документом, в который этот текст был вставлен или между двумя изображениями одной и той же машины. Такие отношения могут быть определены по содержимому файлов (вы можете просмотреть фото и понять кто или что изображено на них) или установлены использованным приложением (как в случае с примером о электронной почте от друга). Эта часть Nepomuk все еще активно разрабатывается и требует интеграции в приложения. Возможно придется подождать еще несколько лет прежде чем начать использовать эту возможность.

В общем эта часть Nepomuk делает поиск интеллектуальным. Вспомните как Google пытается сделать ваши поисковые запросы более интеллектуальными: когда вы ищете отель в каком либо городе, показываются не только сайты отелей, но и их расположение на google map в том городе что вы указали. Система может даже предложить более удачное название, в случае если вы допустили ошибку. Google также пытается расположить самую релевантную информацию в начале списка результатов, используя сложные расчеты для определения отношений (связей) между веб-сайтами. Nepomuk сможет предложить такой же интеллектуальный поиск и упорядочить результаты по релевантности используя информацию об отношениях.

Контекст

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

Этот пример доставки на рабочий стол информации о контексте может помочь вам работать более эффективно.

Скажем, вы работаете над заметками, которые были сделана на собрании. Раздается телефонный звонок, и кто-то просит вас найти файлы электронных таблиц с ценами, подобранные по клиентам. После некоторого времени вы обнаружите что весь рабочий стол забит файлами и окнами...

Было бы неплохо иметь возможность организовать все это немного лучше, верно?

Создайте 'комнаты (activities)'. Они были введены в концепции Plasma и в настоящее время представляют собой различные 'рабочие столы'. Они чем-то напоминают виртуальные рабочие столы, только в этом случае изменяется сам рабочий стол, а не набор приложений на нем. Комнаты имеют различные виджеты, фоны и т.п. Конечно, начиная с KDE 4.3, у каждого виртуального рабочего стола может быть своя собственная комната, которую он будет синхронизировать с собой.

Чтобы приложения и рабочий стол были в курсе вашей деятельности, вы могли бы создать комнату для каждой часто выполняемой задачи. Следовательно, если вы вынуждены часто править электронные таблицы с ценами, то вы можете создать комнату для этой задачи: поместить на рабочий стол виджет "Просмотр папки" (или несколько), добавить калькулятор и виджет "Список дел", чтобы помнить что еще предстоит изменить. Возможно даже виджет папки электронной почты, чтобы видеть письма с вопросами относительно таблиц с ценами!

Сразу как только кто-то спрашивает о ценах, вы переключаетесь на эту комнату. Запускается приложение электронных таблиц. Т.к. оно в курсе вашей деятельности, то показывает последние таблицы с ценами, а не список последней инвентаризации с которым вы работали в последний раз в другой комнате! Kopete, приложение для обмена мгновенными сообщениями, показывает вам коллегу, которая все знает о ценах, т.к. она тот человек с которым вы постоянно общаетесь, когда работаете в этой комнате.

Когда вы заканчиваете и переключаетесь обратно в другую комнату, то снова все приложения подстраивают свое поведение так, чтобы удовлетворять вашей деятельности.

Выгоды от рабочего процесса основанного на комнатах больше чем можно себе представить в начале. Это помогает не только находить файлы и нужные контакты, но также само по себе помогает переключаться между задачами. Человеческий мозг не сильно хорошо приспособлен для "мультизадачности", большинству людей требуется несколько минут чтобы войти в "рабочий режим" после переключения между задачами. Переключение 'среды' здорово помогает в ускорении этого процесса, даже если это всего лишь на экране. Вспомните как приходит отпускное настроение когда вы еще только начинаете начинаете упаковывать сумку!

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

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

Часто задаваемые вопросы

Следующий текст взят из сообщения из форумов KDE. Пожалуйста, не стесняйтесь добавлять/удалять /изменять информацию, если у вас есть время!

Что такое Nepomuk Semantic Desktop и Strigi Desktop File Indexer?

Nepomuk Semantic Desktop является основой всех других модулей инфраструктуры Nepomuk. Он дает возможность организовать, комментировать и строить отношения среди данных (не только имя файла и содержание, но, например, то, какие приложения использовали определенный файл, или как он был помечен). Ряд приложений KDE и рабочие области используют эту базовую инфраструктуру для доставки функций, таких как пометка писем (KMail) или настройка комнат (Plasma).

С другой стороны, Strigi Desktop File Indexer представляет собой систему индексирования файлов, таким образом, они могут быть добавлены в основное хранилище Nepomuk удобным способом, для того, чтобы использовать их в Nepomuk без их добавления вручную. Кроме того, приложения, такие как Dolphin могут производить поиск файлов на основе содержания, имени или других мета-данных (например, тегов), связанных с индексированными файлами. Индексатор также может индексировать нетекстовые файлы, такие как PDF-файлы, обращаясь к мета-данным, содержащимся в этих файлах (автор, публикуемая информация и т.д.). Некоторые компоненты KDE поставляют дополнительные «анализаторы» для нескольких типов файлов. Nepomuk может быть полностью функциональным без использования индексатора файлов, который является дополнительным (и опциональным) компонентом.

Зачем нам нужны Akonadi и Nepomuk? Разве они не делают одно и то же?

There is often a good deal of confusion about Akonadi and Nepomuk. Why data from Akonadi is indexed in Nepomuk explains exactly why we have both, and what their roles are. Don't miss the additional information from Will Stephenson in the Comments section.
How can I disable the semantic desktop?
Most of the times, the easiest way is to disable file indexing, which is usually, among the Nepomuk components, the heavier in resource usage (although many optimizations were included in the 4.7 release which has reduced resource usage). This is done by unchecking Enable Nepomuk File Indexer in the Desktop Search section of System Settings. In case you want to turn off all semantic features, uncheck Enable Nepomuk Semantic Desktop. Notice that this will turn off search in Dolphin as well.
Notice that with the latter option some programs who use Nepomuk for meta-data will offer reduced functionality: for example KMail will not be able to tag mail, or Plasma activities will not offer additional features such as icons, or program data information.
Why do I have nepomukservicestub processes even though I've disabled Nepomuk?
It may be a bug. Please file a bug report with a complete description of your problem and the steps to trigger it.
File indexing of PDF/some other file types doesn't work.
PDF indexing is a known issue and it's being tracked in bug #231936. If you have issues with other files, open a bug, preferably adding a sample file that shows the problem.
The program nepomukservicestub crashes at startup.
A large number of fixes for crashes has been fixed for the 4.7.2 release of the KDE Workspaces and Applications. If you encounter more, please file bugs report with detailed instructions on how to reproduce the problem, as sometimes the developers are unable to trigger them in their test setups.
The virtuoso-t process hangs at 100% CPU.
Virtuoso-t is a key component of the Nepomuk infrastructure and in some occasions the commands sent by the other components end up taking too much time (hence showing the effect of 100% CPU). Sebastian Trüg (the lead developer of Nepomuk) has fixed most of these problems in 4.7.1 or newer.
Sometimes Nepomuk consumes too much RAM.
Many of these problems have been fixed, in other cases however the developers are unable to reproduce the issues correctly. In this case, providing examples and test cases to bug reports increase the chances to get these bugs fixed.
Nepomuk re-indexes files at startup.
This bug has been fixed in 4.7.0 versions. Now Nepomuk just "scans" for changes, without indexing anything.
Nepomuk accesses the disk too much on startup.
In 4.7 and newer this problem has been lessened thanks to a throttling mechanism implemented in the file indexer.
My Nepomuk database has been corrupted. How do I clean it?
In the extreme case your database is really corrupted and all other attempts have failed, you can delete the $KDEHOME/share/apps/nepomuk directory (where $KDEHOME is usually .kde or .kde4) while Nepomuk is not running. The database will be cleared, but you will also lose existing information such as tags, ratings and comments.

Advanced troubleshooting

If Nepomuk has trouble indexing a file, in a terminal try running

nepomukindexer /path/to/file

and see if there's any useful output. If the file cannot be indexed, the indexer will print an error, but you will only see that error if you have debug messages for Nepomuk enabled (kdebugdialog). If the error is reproducible, please file a bug and upload the file along with the error.

This blog post explains how to turn on debugging output from the Nepomuk service. It also shows how to debug the CPU usage of Nepomuk and its storage backend.

This blog post explains how to extract useful information for bug reports about the CPU usage of the Virtuoso backend.

Совместное использование и конфиденциальность

Существует еще одна вещь которую стоит упомянуть, прежде чем дать ссылки на другие источники информации: совместное использование данных Nepomuk. Это было бы здорово, если бы вы могли совместно использовать теги, оценки и комментарии с другими, когда отправляете им файлы. Однако, если вы пометили контакт немного фривольным тегом ('скучно в кровати') и посылаете эту контактную информацию общему другу, то вы вероятно не захотите, чтобы этот признак был тоже отправлен...

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

Дополнительная информация:
Википедия - NEPOMUK (рус.)
Wikipedia - Semantic Desktop
Wikipedia - NEPOMUK Framework
Сайт NEPOMUK
Сайт NEPOMUK в проекте KDE
Статья о Nepomuk на DOT KDE