那些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).