免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4134 | 回复: 1

[FreeBSD] FreeBSD环境下启用kde4的语义学搜索功能 [复制链接]

论坛徽章:
0
发表于 2010-02-11 12:34 |显示全部楼层
本帖最后由 杜比环绕声 于 2010-02-11 14:15 编辑

kde4发展到现在的 4.4,它的明星级功能“桌面语义学搜索”经过不断的框架修订和整合,虽说一些细节上还存在瑕疵,但现已可用,并在主要的应用程序诸如konqueror,dolphin,plasma run 中进行了整合

一、关于kde4的“桌面语义学搜索功能”

在实现上,桌面语义学搜索功能是通过 nepomuk 服务器来提供,它的功能框图是:



nepomuk服务器使用插件模式,提供了框图中“黄色背景“所标注的功能

简单的说:nepomuk服务器的框架是通过 Ontology(分类) 服务定义检索的关键字(诸如:标签,文件创建时间,文件最后修改时间,文件大小,文件个人打分等等),使用 strigi index服务对设定目录下的文件进行全文检索,数据通过storge服务存储在数据库内,并使用filewatch服务随时监控设定目录下的文件在”分类关键字”上的修改,通过query(查询)服务向应用程序提供查询。

这其中影响到nepomuk服务器正常运行的关键因素有两个

1、索引模块 strigi,它用插件方式访问多种文件类型,诸如图片,影音、文本等等

2、分类和集中存储数据库前端 soprano

因此启用kde4的语义学搜索功能除了正常编译安装kde 4.4之外,剩下的就是让上述两个模块正常工作!

二、FreeBSD下安装kde 4.4

当下kde 4.4的ports可以在 http://area51.pcbsd.org 中获得,具体安装方法可以参见之前的帖子或者访问 http://freebsd.kde.org 网页

1、soprano和virtuoso的安装和配置

作为kdesc 4.4的运行依赖,strigi 和 soprano 会自动安装,在编译配置选项上,soprano会提供三个存储后端进行选择

  1. cd /usr/ports/textproc/soprano
  2. make config
复制代码


其中 virtuoso 是继 Sesame 之后开发的新后端,也是 kdesc 4.4 当下推荐的存储后端,而Sesame编译需要java环境以及效率较低而被淘汰。

使用virtuoso选项进行编译后,会生成一个访问virtuoso数据库的驱动,而virtuoso需要单独安装。

这里存在一个问题是FreeBSD的ports中所提供的virtuoso版本太低,不能支持soprano,所以要一些变通

参考”语义学桌面搜索“博客中所提到的对 virtuoso 的最小需求是 virtuoso 5.0.12 以上版本中的 virtuoso-t  virtodbc_r.so 两个文件

而这两文件只需要修改FreeBSD所提供的virtuoso ports的版本号,进行编译,虽说安装出错但这两个文件安装和运行是正常的

virtuoso-t 在 /usr/local/bin 目录下
virtodbc_r.so 在 /usr/local/lib 目录下

只需给这两个文件运行权限即可

  1. chmod ugo+x  /usr/local/bin/virtuoso-t
  2. chmod ugo+x  /usr/local/lib/virtodbc_r.so
复制代码
2、动态链接库的调整

kdesc 4.4 和 strigi 的接口是通过 kdebase-runtime 里的 strigiindex_nepomukbackend.so提供,安装在 /usr/local/kde4/lib/strigi目录下,而strigi的索引插件都安装在 /usr/local/lib/strigi目录下,实际运行中,strigi查找的是 /usr/local/lib/strigi 目录下的 index 库,目前较为简单的方法是拷贝 /usr/local/kde4/lib/strigi 目录下的所有文件到 /usr/local/lib/strigi,或者做个软链接。这样kdesc 4.4所提供的index服务和一些kde所提供的strigi文件格式插件就可以正常使用了。


3、nepomuk服务器的验证

启动kde4,若在界面下方出现 nepomuk 图标,就意味着nepomuk服务器运行正常




也可以通过运行 qdbusviewer 查看,点击 nepomuk server 的 availableeService 方法 查看当前 nepomuk 服务器相关服务的状态,若strigi,storage服务正常,也表示nepomuk 服务器运行正常。

三、nepomuk相关配置和使用

1、配置:点击界面下方的 nepomuk 图标,会弹出 nepomuk strigi index 工作状态,单击其上的 “ Configure ” 按钮,在出现的界面上可以配置 nepomuk ,也可设置“需要监控的目录”和nepomuk所需内存大小。如图:



2、使用

kde4中提供了若干后台 nepomuk 查询协议,可以在konqueror、dolphin 等具有文件显示、过滤、操作的程序中使用这些一些进行查询

诸如在上图中 konqueror 地址栏中输入

  1. nepomuksearch:/font           //font是我在几个文件中定义的tag
复制代码
可得到的搜索结果是: 所有tag为font的文件,以及文件内含 font 文本的文件列表

“nepomuksearch:/” 后面也可输入复杂一些的查询表达式,对 nepomuk 服务器所定义的其他“种类”,诸如:文件大小,创建时间,最后修改时间,打分等等进行查询。

  1. timeline:/
复制代码
可以得到的搜索结果是按照日期进行归类的文档列表

3、一些体会

基于数据库的集中存储和查询,在速度上有一定的优势,搜索功能作为一个基础框架也给应用程序整合语义学搜索带来了很多便利,就目前来看,它的实现还集中在本机文件的检索,但相关网络搜索的协议后端在不断的开发中,后续的搜索结果很有可能将会整合本机和网络上的内容,基于内容和标签双重结合的搜索功能在kde中将无处不在。

也是基于以上的目标,nepomuk对各种资源的内容和标签等多重检索所产生的数据量和资源占用是非常惊人的,虽说strigiindex提供了一些诸如”电池状态“”磁盘空间“等系统资源的检测,让index有的放矢,但若对全系统文件进行这样的检索,尤其是高修改频次文件的检索,资源占用会很可观。

一些问题:dolphin界面提供了一个定制查询语句功能,但当下在我的系统上实测,部分功能还有瑕疵,有时搜不到想要的搜索结果。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2010-02-12 11:11 |显示全部楼层
是pcbsd的提供的ports?

很长时间没折腾kde4了,上次编译到了第16天的时候,学校停电了,来电后一直也没继续。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP