那些KDE中的技术(一)Nepomuk

csslayer | 2010/12/11

Nepomuk是个在KDE中备受争议的技术,很多人认为Nepomuk占用系统资源,以致于对它非常反感,当然对于一个系统来说,一个功能肯定是需要占用一些系统资源的,本文主要专注于Nepomuk究竟提供了什么样的功能,能够给桌面带来什么样不一样的体验。

Nepomuk(Networked Environment for Personalized, Ontology-based Management of Unified Knowledge),不如我们先从介绍它的名字开始,里面最不常见的一个词可能就是Ontology了,那么Ontology是什么呢?在维基百科,介绍如下:在计算机科学领域,其核心意思是指一种模型,用于描述由一套对象类型(概念或者说类)、属性以及关系类型所构成的世界。(本体)对于现实世界中的事物,我们都可以将它表示成各种各样的类型,比如植物,动物。同样的,我们可以用类似的概念来表示我们的文件。

Nepomuk项目的目标是将个人的桌面扩展为可以协作的桌面,从而改进目前的在线协作技术和个人数据管理,增强人们对于提供和组织信息的能力。当然如果对比Nepomuk-KDE目前的实现和Nepomuk项目本身的目标,还有很长的路要走,不过对于个人的数据和信息管理来说这也是一种进步。

Nepomuk只是一个数据的提供方,在目前的桌面上,它使用Virtuoso作为它的后端存储引擎,对于数据存储的格式(OWL和RDF),这里不详细阐述,有兴趣的人可以看看维基百科相关的内容。

对于应用程序来说,怎么从Nepomuk当中获益呢?目前KDE当中集成了Nepomuk的有Dolphin,Krunner,Gwenview。Dolphin里面的集成最明显,接下来就主要介绍Dolphin当中的内容。Nepomuk并不处理文件,而是通过Strigi对文件进行简单的处理(在KDE 4.5之前的版本,对于大文件,例如视频,用Strigi在处理时存在bug,因此占用了比较高的磁盘),从而提取出文件的元数据,例如Mp3的id3v2的标签,图片的大小等,PDF,文本的正文。对于通常用户来说可以设置Strigi监视的目录,比如常用的几个XDG(中文翻译是图片,音乐等)目录即可。

Strigi除了这个作用之外,还会在Nepomuk不开启的时候提供单个文件的元数据提取。

下面我们来展示一个简单的Case。

非常容易的,我选择Audio File,然后选择对应歌手,就可以容易定位音乐文件,顺便利用Dolpihin的即时预览,甚至还可以直接播放它。

最后说一些简单的关于设置方面的事情,系统设置中如果只开启Nepomuk,那么只能对文件加Tag或者评分,开启Strigi之后(它会在系统空闲时对文件进行索引),可以利用文件的元数据对文件进行搜索。

(系统截图来自于KDE 4.6 beta2)

Tags: ,

11 FEEDBACKS

  1. GJ……其实很多人(包括我在内)对“索引”这东西很有畏惧。主要原因是索引编制时间太长,很长一段时间内都总有个玩意占着我的硬件资源,给人以不痛快的感觉。不过后来用过之后觉得我这2G内存跑起来似乎问题也不太大。

    最后再次恭贺成立。

  2. landskyy

    kde很棒也很稳定,就是Dolpihin经常崩溃,我的是kde4.52

  3. Sihzen

    @landskyy 我聽很多人講有這個dolphin的崩潰問題。但是我從來沒有碰到過呀…我從4.4.3一路更新到現在4.5.4,沒有問題…

    我碰到的問題是,strigi建立的文本索引似乎沒有用,我無法通過文本內容來對文件進行搜索…是因為文字編碼的問題?望指點…

  4. csslayer

    @Sihzen 可能是编码吧。总之utf-8比较保险。

  5. Sihzen

    @csslayer 確實,UTF-8的西文字母的文件都可以檢索出來,但是中文就不行了…即使是UTF-8也不可以…

  6. KDE 4.6.0 发布 | I, KDE

  7. KDE 4.6 RC 2发布 | I, KDE

  8. slixurd

    搜索nepomuk就进来了,围观下薛大大

  9. 湖北开发票|QQ:3211786120|百纳财务 | 一湖北代开发票OME 之旅:品味它和 KDE 的是是非非(第三节 GNOME应用)

  10. 一周 GNOME 之旅:品味它和 KDE 的是是非非(第三节 GNOME应用) - 月松博客月松博客

  11. 一周 GNOME 之旅:品味它和 KDE 的是是非非(第三节 GNOME应用) - 下一站Linux

Leave a Reply

Your email address will not be published. Required fields are marked *

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

This site uses Akismet to reduce spam. Learn how your comment data is processed.