Nepomuk(语义桌面)

Jump to: navigation, search
This page is a translated version of the page Nepomuk and the translation is 29% complete.

Other languages:
català • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎italiano • ‎Nederlands • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎中文(台灣)‎

Nepomuk

这个页面的目的不是详细解释Nepomuk技术及其每个细节,而是作简短的概述,举一些例子,分享其背后的设想和给予指向网上相关资讯的链接。

Baloo is the next generation of semantic search

From KDE Applications 4.13 onwards, the 'Baloo' file indexing and file search framework replaces Nepomuk. Read details on the changes for Applications 4.13 here. Semantic Search no longer uses a single, big database, but separate, specialized databases for each type of data. The new search databases are in $HOME/.local/share/baloo. If you upgraded to KDE Applications 4.13 from an earlier KDE release, you can delete $KDEHOME/share/apps/nepomuk.

简短说明

术语提到的,Nepomuk 有关数据的分类,组织和表达。它并非是一个应用程序,而是可以被开发人员应用在程序中的组件。

试用

举例来说,Dolphin采用了 Nepomuk。对于后面例举的必须保证 系统设置 -> 桌面搜索 的 Nepomuk 和Strigi 都已经开启。Dolphin 的信息侧面板允许你给文件打上标签,评分和评论。这些信息随后存储在 Nepomuk 并且被 Strigi 编入索引。然后你可以在Dolphin里用导航栏搜索元数据(metadata)。输入"nepomuksearch:/",随后是搜索词。


功能

Nepomuk 提供数'层'功能给应用程序。第一个也是其中最简单的是手动标记(manual tagging),评分(rating)和注释(commenting),如使用在 Dolphin中。这有助于你更快的找到你的文件,但这种做法太耗费精力。

为了使得搜索包含文本的文件更容易,Nepomuk 提供了第二个功能:索引(indexing)文件中的文本。它使用一种被称作 Strigi 的技术来实现。现在你也能通过输入你所已知的其中某些词语,或仅仅(部分)它们的标题来搜索到文件。

第三层非常复杂,是 Nepomuk 被视为欧盟(European union)多个公司和大学研究项目的原因。这部分你会遇到很难理解的词组像是'语义桌面(semantic desktop)'和'本体论(ontologies)'。基本上,它涉及到语境(context)和关系(relationships)。

Indexing files

Search does not index every file on the hard drive. Its default configuration in most Linux distributions excludes some common patterns for backup files and configuration directories. You can change this in System Settings -> Desktop Search. Add folders to be excluded. If you want to turn off indexing of files entirely, just add your home folder there.

In System Settings you can also control whether Search indexes files on removable media such as USB drives and CD-ROMs. In KDE Applications 4.13 this is not available, removable media are not indexed. Future versions are planned to reintroduce this functionality.

例子

让我试着用两个例子解释 Nepomuk 提供了什么。

关系(Relationship)

假设你2周前从你的某个好友手上收到一张照片。你随后保存照片到电脑的某个地方。现在你如何找到那个文件哪?如果你不记得保存的位置,你就杯具了(人生是个茶几,你是个杯具)。

现在 Nepomuk 旨在帮助你。你知道这个文件是你朋友发给你的,但你电脑不知道。然而,Nepomuk 能够记得这个关系。搜索你朋友的名字,随后便会出现照片哦!

另一个潜在的关系是在你复制出来文本的网页和你粘贴文本进去的文档之间,抑或显示同一辆车的两幅图片之间。这样的关系有时能从文件本身上获得(你能够分辨照片,看出谁或什么东西在那上面)或由关联的程序(上面 E-mail 的例子)提供。Nepomuk 的这部分还是加紧开发中,需要整合进应用程序,所以你可以期望这功能花费更多年真正实现。切~~( ﹁ ﹁ )

总之,Nepomuk 的这部分是有关使得搜索智能。试想下 Google 是如何智能化你的搜索:当你搜索旅店和城市名,它在网站搜索结果之上显示 google 地图显示你提到的那个城市中的各家旅店!它甚至可能推荐一个更适合的名称以免你犯了拼写错误。Google 对网站之间的关系(链接)使用复杂计算,试着将最相关的信息放置在搜索结果的顶部。Nepomuk 会能够提供那样智能的搜索结果,并用关联信息根据相关性调整搜索结果。

语境(Context)

这些关系(relationships)不但能帮你搜索文件,也会影响到应用程序及它们提供的信息。注意这种使用 Nepomuk 的方式说是设想更恰当而非现实!当中很多组件已经做好,但总体上看都还没整合进应用程序和桌面。

这里有个例子讲把语境认知(context awareness)带到桌面上助你工作更有效率。

比如说你正在整理会议上摘的笔记。这时手机响了,某人问你要带报价的电子表格,还要你根据客户要求进行修改。再多来几个打扰后,你会发现整个桌面全是文件和窗口...

如果能更好的组织这一切会非常棒,对吗?

进入'活动'。之前有在 Plasma 中介绍过,当前提供了另类的'桌面'。它们有点像虚拟桌面,但改变的是桌面本身,不是程序集。不同的部件,壁纸之类的东西。当然,自 KDE SC 4.3 后,每个虚拟桌面能够拥有自个的活动,虚拟桌面和活动是同步的。

如果程序和桌面认识活动,你可以根据经常工作的任务创建活动。所以如果你经常不得不修改带报价的电子表格,你创建这样一个活动:摆放一个「文件夹视图」(或多个)部件到桌面上,添加一个计算器和一个 todo 部件来记录还需要修改的东西。可能需要一个「邮件文件夹」部件来显示有关报价表问题的邮件!

一旦有人问报价问题,你就切换到这个活动。打开表格程序。表格程序认识你的活动,它的最近打开列表显示的是报价表格,不是你在另外一个活动工作的存货清单!Kopete,这个聊天程序显示着某个知道有关价格的同事,因为她是你经常在当前这个活动聊天的对象。

等你完成后,你回到另外一个活动,所有程序再一次调整它们的行为来适应你当前的工作。

这样一个基于活动的工作流程的收益会远远超越你最初的期望。它不但能帮你找到文件和联系人,还有助于切换任务本身。人脑不擅长多任务-人类切换任务后需要花费几分钟来达到正常速度。改变'环境'能大大加快反应,即使只是屏幕上的。把它跟你假日收拾包裹时的情绪对比下!

当然,上面所述很大程度与电脑后头工作的人是在办公室还是在家有关。游戏玩家或临时用户可能不太会用到这些活动。

注意上面描述的情节仍旧离现实很远。基础的东西在 KDE 中已经有了,但其他部分缺很大。

Frequently Asked Questions

The following is taken from a KDE forums post. Please feel free to add/remove/modify details if you have the time!

What is the Nepomuk Semantic Desktop, and the Strigi Desktop File Indexer?
Nepomuk and Strigi are technologies part of what delivers the abilities of the Semantic Search in KDE. Both are not used directly in the latest generation of KDE's Semantic Search (details), however their successors share much of their code and concepts. Semantic Search provides a way to organize, annotate and build relationships among the data (not only file name and content, but for example which applications used a certain file, or how it is tagged). A number of KDE applications and workspaces use this basic infrastructure to deliver features such as email tagging (KMail) or activity setup (Plasma).
The file indexing allows applications such as Dolphin to search for files based on content, name, or other meta-data (e.g. tags) associated to indexed files. Such an indexer can also index non-text files, such as PDFs, by accessing the meta-data contained in these files (author, publication information, etc.). Some KDE components ship additional "analyzers" for more file types.
Why do we need both Akonadi and Semantic Search? Aren't they doing the same thing?
In short, Akonadi provides a cache of PIM data like calendar items, contacts and email, which is used by applications like KMail and Korganizer but also the calendar build in Plasma. Semantic Search plugs in Akonadi to provide search functionality. How Baloo offers search is actually up to the application. In case of KDE PIM, Xapian is used to provide indexing and search.
How can I disable the semantic desktop?
File indexing can be disabled by adding the users' home folder to the System Settings -> Desktop Search -> Do not search in these locations list. The other functionality is part of the applications that use it and thus can't be disabled without crippling these applications. For example, to not have any search in KMail you'll have to simply remove KMail...

In versions of the KDE Applications before 4.13, Semantic Search would have components running separate from applications. This functionality could be disabled 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 Semantic Search 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.
Baloo/Semantic Search is eating 100% CPU! What do I do?
Just wait. Certain files are very hard or even impossible to Index. At the moment, this includes for example text files of over 50 megabyte. When Search finds these, it will try for a fixed time. When it fails, it will try to find out what file is broken and disable indexing it in the future. As it indexes files in batches of about 40, it has to find the problematic file by indexing that bunch in parts: first half/second half, index problematic half in pieces again, until the file is found. This can take up to 30 minutes of heavy cpu usage. Unfortunately, while Baloo will not start to index a new batch of 40 files while on battery power, it continues to determine the broken file while on battery. This behaviour has been fixed in in KDE Applications 4.13.1 (it will stop indexing immediately when the power cord is unplugged) and the time the search for each file can take has been reduced to about 10 minutes. The Semantic Search team is working on improving the indexing tools to handle more difficult files.
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 old Semantic Search 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).

Virtuoso is no longer used by Semantic Search starting the Applications 4.13 release.

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.
Search accesses the disk too much on startup.
A throttling mechanism implemented in the file indexer, versions after KDE SC 4.8 should no longer have this issue.
My Search 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 in your home directory) 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

共享和隐私

在给出其它链接前我要指出的是:共享 Nepomuk 数据。如果你的标记(tags),评分(ratings)和注释(comments)能够在你发送文件给其他人时同时共享给他会很棒。但是,要是你给一个联系人打上了“麻烦”的标签('在床上烦人'),然后发送这个联系人的信息给一个共同的好友,但你又不希望这个标签也一并发送过去...

这个问题当然在考虑之中,是 Nepomuk 研究的一个重要课题。由于这些隐私顾虑,外加技术挑战,所以暂时 Nepomuk 内容是私有的。放心,Nepomuk 团队尽其可能尊重你的隐私。

更多信息

The old Search technology:


This page was last modified on 15 December 2014, at 07:00. Content is available under Creative Commons License SA 4.0 unless otherwise noted.