聚焦.NET开源世界里的奇葩:Beagle

就Beagle这款著名的开源.NET应用,InfoQ采访了Joe Shaw和Pierre Ostlund。 Beagle是目前Linux平台上最为著名的Mono应用之一,为Linux社区提供了桌面搜索功能。

InfoQ:是什么推动了Beagle项目的创建?

Joe Shaw:Beagle其实起源于一个称为 Dashboard的项目, 是我和Nat Friedman、Alex Graveley、Jim Krehl和其他一些朋友在2003年夏天做的。Dashboard(比属于Apple自己迥异的Dashboard还要早)背后的思想是让计算机了解某 个给定的时间里你在做的事情,比如阅读邮件、和朋友聊天、写文档等,它应该能显示那时和你所做的事情相关的一些信息。我们所做的很多工作是基于人的:如果 我在和Nat聊天,系统就会显示给我Nat最近更新的博客,或者我从他那儿收到的最新的邮件,以及他的邮件地址和IM昵称、电话号码等。另外如果他在窗口 上输入了某个人的电话号码,系统就能进行搜索并提供给我相关的信息等。

在做Dashboard的时候,我们发现平台有两个不足的地方:(1)由于各种原因很难访问到数据(和微数据),(2)我们丢失了大量能确定不同数据间关系的微数据。

Beagle的创建很大程度上是为了解决问题1。它能索引到文字内容和微数据,因此能被高效地搜索到,而应用只需要到一个单独的地方找到它并快速地取到它即可。

InfoQ:Beagle的开发是如何赞助的?

Joe Shaw:最初的 时候,Novell赞助了至少一个全职开发者。开始是Joh Trowbridge,晚一些的时候是Dave Camp,我是兼职代码贡献者。Dave后来去了Hula,我就变成了全职,和Joh一起工作,在Joh去年一月份离开后,就是我自己了。曾经有一段时间 Dan Winship以兼职的形式和我一起工作。

除了这些,Google还通过它的夏日代码计划(Summer of Code program)在去年和今年的夏天间接地赞助了开发。

但是当然,Beagle的力量源泉是因为它是一个开源的项目。很多努力都是由个体贡献者提供的,如果没有他们,Beagle不可能有今天。一年前我列出了所有参与其中的 贡献者,数目已经超过了100。

InfoQ:Beagle目前进展如何?

Joe Shaw:到目前为止,我认为Beagle是今天Linux平台上功能最强、最可用的桌面搜索系统。我们支持超过20种数据源(文件系统、邮件、IM记录等)和超过60中数据格式(MS Office、ODF、PDF、MP3等),这是任何一款操作系统上的桌面搜索所不可比拟的。

在大多数Linux发行版中都包含了Beagle,有一些还相当好地在Beagle中整合了桌面体验。

对于项目本身,我们正在为0.3.0而努力——对我们0.2.x系列的一个重要更新——它会支持更快的索引、对存档内容更完全的索引、对像Tag和标记等外部存储的微数据更好的支持。

InfoQ:Beagle和Google Desktop、MS Desktop Search等的竞争点在哪里?

Joe Shaw:呵呵,MS Desktop Search不能运行于Linux,而Beagle还不能运行于Windows,所以我不认为它们是竞争关系。

Google Desktop是刚支持Linux,尽管它索引了Gmail(我们还没有),但它没有Beagle已有的其他类型文件。它不能索引IM会话,或者不能和除 Thunderbird以外的邮件客户端整合地很好。在它索引的时候它降低系统的性能,和现有的桌面应用没有整合。另外它的非开源基本上限制了它的扩展能 力,从而不能够支持新的或者已存在的数据类型,同时也意味着它永远不会和Linux桌面绑定的很紧。而Beagle的许可开源协议在这一领域是个优势。

GDL有很多很好的功能:它能做一些版本控制和对缓存数据的存储;能更好地在硬盘上处理空邮箱文件;支持对Gmail的索引等,但是所有的这些功能没有一个是Beagle所不能实现的。

InfoQ:Beagle的目标用户是谁?

Joe Shaw:Beagle既面向最终用户,也面向开发人员。对于开发人员,我们提供一些真正好用的API以扩展Beagle能索引到的数据类型和搜索到这些索引。这意味着开发人员能将索引和搜索整合到他们的应用中,或者围绕搜索构建全新的用户接口。

面向最终用户,Beagle的目标只是让发现数据变得更简单。对用户而言,文件系统就是一个必须要面对的神秘咒语,很多情况下人们是直接忽视它们了事。他 们只是将所有的文件放到“我的文档”文件夹。某种程度上我自己也是这样,我所下载的所有东西都放到一个指定的文件夹,日积月累,文件堆积如山,最终的情况 就变成如果你要找某个东西就像要从一个干草垛里找一根针那么困难。然后将邮件存档到文件系统或者一个服务器上,且只能通过邮件系统访问这些邮件。对地址簿 里的联系人或者日历事件也是一样。从前在Linux平台上,用户根本没有办法(非命令行)访问IM聊天日志。你的浏览器缓存了Web页,但你却基本上访问 不到。

通过一个图形的搜索界面,Beagle解决了这些问题,使得它们功能完备而且易于访问。你再也不需要浏览一层一层的文件夹,再也不需要在目录里面一个一个 地查找那些可能自己已经忘记名字的文档。你所有的邮件、IM日志、RSS种子、Web历史和地址簿联系方式和其他文件一起变得唾手可得。

当然,那是一个理想境界。有些人,比如我,因为组织能力不足,这样的工具对我就非常有帮助。而有些人,组织能力特别好,钟情于文件夹,那么桌面搜索也许对 他们完全是多余的。事实就是如此,Beagle不是针对所有人的。但是,在将来我们也许能看到一些基于桌面搜索的更多创新应用,对那些组织能力很强的个人 也非常有帮助,就像我刚才提到的Dashboard项目。

InfoQ:对Beagle的未来设想是什么?

Joe Shaw:总是有更多的数据需要索引,更多的性能优化需要处理等。那是一个令人头疼的未来:

除了上述的两点,我们正在计划增加网络搜索,这样你就可以在多台机器上允许搜索。在这儿我们想使用具有多点传输DNS和服务查找功能的Zeroconf, 使得用户能在不需要任何配置的情况下在本地网络上进行搜索。另外一个潜在的功能是通过对文档做一些状态分析,自动识别文档的语言……针对这些功能,我们会 提供一些补丁。

我乐意看到Linux桌面上的平台能扩展到用del.icio.us样式的标签标注所有数据,包括文件、邮件和网页等,使得这些数据让Beagle可以索 引到;我乐意看到更多的应用能够进步,不再固步自封,将数据开放给其他的应用,包括Beagle;我乐意看到应用能存储数据间固有的关系,比如当我保持一 个邮件附件的时候,能够在磁盘上存储发给我邮件的这个人的相关信息,从而使得Beagle能够索引得到;我乐意看到更多的应用将Beagle作为它们的内 部搜索引擎使用等。对Beagle自己来讲,所有的这些都不是必须要改变的,我们要做得是更好地提高用户的体验。

欢迎访问InfoQ网站上的其他 Mono相关报道 。

查看英文原文: .NET Spotlight on Open Source: Beagle

你可能感兴趣的:(聚焦.NET开源世界里的奇葩:Beagle)