|
发表于 2010-3-1 23:47:18
|
显示全部楼层
Post by dbhrscom;2072489
从桌面语义学搜索的功能定义来看,它类似一个桌面版的“搜索引擎”,strigi在其中扮演网络蜘蛛角色,用于探测各种文件类型和进行深度搜索,而搜索结果存取由soprano负责,nepomuk的一些模块提供文件系统监测、搜索种类维护(例如tag,rate)、搜索调用接口等功能。
简单的说,若在 kdesc 桌面实现组合关键字查询,strigi、soprano和nepomuk都是不可或缺的,而功能实现的基础和网络搜索引擎需要维护庞大的索引数据库一样,监控设定的文件数目越多,数据索引量越大,相应的索引系统资源消耗也是越来越大,很直观的表象就是拖慢了系统的运行速度,这也是目前”语义学搜索“功能让很多人诟病的主要原因。
但不可否认的是,这种状况在一点点的改变,在效率上如virtuoso存储后端的使用,加快了数据存储的速度;越来越多的系统状态监控,分散了数据检索给系统资源造成的负担;数据检索功能的扩展(例如搜索移动存储介质,局域网文件、与akonadi的结合)增加了它的实用性;不断增多的功能定制,更是把选择权留给了用户。
另外strigi的功能除了数据检索之外,文件属性的一些信息也是由它来提供的
这里面的一个目前无解的理论问题是:语义检索某种意义上需要“理解”检索词和检索源中词句的“意思”。一个简单的例子比如搜索“中国”,则“其中国民收入达到。。。”不应该出现。要彻底解决这个问题需要在逻辑基础上加以改进,使用某种意义上的“内涵逻辑”。可是这方面目前是死胡同,稍微“智能”一点的逻辑全都复杂性超高,甚至不可判定。(当然我举的例子太简单,用统计数据进行分词可以处理地很好)
所以目前现实的做法全是采用统计数据的(至少统计数据占有重要作用),于是也需要索引数据,加以分析。可即使做到再好,也只能无限接近,而永远无法实现真正智能(比如达到普通人的水准)的语义检索。 |
|