2009年1月31日星期六

简单理解kde4的语义学桌面搜索

简单理解kde4的语义学桌面搜索

杜比环绕声

语义学桌面搜索是kde4桌面环境所提供的新搜索技术,它依据的是知识库的语义学研究成果。我一直很好奇这个技术,得益于kde 4.1 rc1的使用,说说我对这个技术的理解。

目前所能理解的搜索,大都是利用文件名、扩展名以及一些文件属性等关键字进行搜索,较早的实现是以文件名为关键字,采取目录树遍历的方法,诸如kde3的kfind程序,目前的实现大都基于事先建立的关键字索引数据库,来加快搜索速度,例如freebsd提供的locale程序。但这些搜索技术都是基于文件属性的,搜索的结果定位在文件位置上。

在桌面环境下更高的搜索需求是存在的,例如特定的内容在哪些文件中出现过,搜索特定大小的图片文件,搜索特定长度的音频文件等等,这些搜索都要深入到文件内部,而这种搜索实现可以从网络引擎获得的直接经验,但具体依据什么样的关键字,搜索范围能扩大到什么程度,目前还不得而知。

语义学搜索,是目前的一项研究,从目前kde4的实现上看,它是基于文件属性以及文件内容搜索的。 这种搜索基于文件内容和属性的描述语言——RDF,简单的说是一种类似xml语言,可以对多种属性进行定义和描述的框架。在这个框架上,可以根据不同类型的文件,建立不同的属性,然后对它进行描述,每个属性都是对外的一个接口,从搜索上看,就是提供多头的关键字。利用这些关键字,可以和计算机内的其他文件建立“蜘蛛网”般的各种联系。这种网是基于文件内部属性的,这个网可以简单的称之为“语义网”。

实现这个“语义网”需要大致需要三个条件

1、文件内容属性的分析
2、加快搜索的属性索引数据库
3、组建“语义网”

对应于kde4的语义学桌面搜索实现,分别是 soprano,strigi和nepomukserver

strigi是一个基于clucene的后台搜索服务,它可以动态跟踪文件,利用clucene建立和维护索引数据库,soprano提供不同文件类型的基于rdf描述的分析和存储方式。

nepomukserver提供了一个框架,对不同类型文件的rdf进行定义,比较直观的操作是它可以通过dolphin对文件添加“个人评分”“个性标记”以及“个性备注”,它也可以通过一些图片查看、制作软件添加个性标记,可以通过音乐播放软件添加附加的标记,这些都会被定义为rdf的描述。并最终利用strigi建立索引。当然这个索引数据库会很大,在kde4贡献者博客上,我看到了一位用了1个半小时的时间为30G的磁盘文件建立了200M的索引数据库。

有了这些技术上的支持,桌面搜索范围得到了明显的增强。

利用kde4的nepomuk框架,目前我可以查看那些文件里面出现了“FreeBSD”这个字,我也可以快速的汇总我所标记的文件。可以预想,随着neomuk-kde框架的进一步成熟,支持的程序越来越多,除了文件管理更方便之外,还可以通过rdf描述的属性关键字,把个人计算机中的文件组成一个小型“google网络”。

没有评论:

发表评论