使用 Nepomuk 组织您的生活
当您建造房屋时,您不能从油漆、精美的窗户和门铃开始。相反,您会花费大量时间在地下挖掘,打扰邻居,并且在您打地基时几乎看不到进展。KDE 平台的语义桌面技术 Nepomuk 也是如此。长期以来,工作一直在表面之下进行,偶尔会造成中断——例如文件索引减慢了您桌面的其余部分——但几乎看不到进展。然而,现在地基已经稳固,主要结构已经到位,KDE 的开发人员正在添加使 Nepomuk 对您有用的功能,就在现在。
那么,Nepomuk 实际上可以为您做什么呢?
Nepomuk 提供的第一件事是将文件搜索集成到您的 KDE 应用程序中。如果您的发行版已启用 Nepomuk,则还可以从 KDE 的 Dolphin 文件管理器中标记和评定文件。您只需在 Dolphin 的搜索框中键入查询即可搜索文件,这将显示结果和一个基本选项面板,使您可以轻松地优化搜索。这些选项使您可以将搜索限制在当前文件夹中,并让您选择是搜索所有内容、文本文档(包括 OpenDocument 文本和 PDF)、图像还是文件名。当您确定要查找的文件后,可以使用“保存”按钮将搜索查询添加到 Dolphin 窗口左侧的“位置”面板,以便将来只需单击一下即可进行搜索。保存的搜索在所有 KDE 应用程序的文件选择器对话框中也可用。
这个叫做 Nepomuk 的东西是什么?
Nepomuk(也称为网络化个性化、基于本体的统一知识管理环境)最初是欧盟资助的一个研究项目,旨在探索管理、理解和共享桌面信息的更好方法。它吸引了 IBM 和 Linux 供应商 Mandriva 等公司的参与,以及爱尔兰国立大学的参与。
最初的项目从 2006 年持续到 2008 年,在此期间,用 Java 编写了一个参考实现。从那时起,Mandriva 和 KDE 一直致力于将这些想法集成到 KDE 软件中,并保留了 Nepomuk 这个名称。
该技术的实际使用需要高性能的文件索引器和查询数据库。最初,Nepomuk 自己的基于 Java 的 Sesame 查询框架在 KDE 实现中使用,但其对 Java 的依赖导致了一些发行版的打包问题,KDE 在 2009 年切换到了 Virtuoso。不再受这些技术约束的阻碍,在 KDE 软件中更大程度地使用 Nepomuk 的主要障碍已被消除。
您可以通过单击绿色 + 按钮在 Dolphin 1.5(KDE 软件编译 4.5 的一部分)中访问其他搜索选项。这些选项提供基于文件修改日期、大小、标签或评级的过滤。您可以继续添加和组合其他过滤器,直到隔离出您想要的确切文件——例如,通过将搜索限制为具有特定标签且自特定日期以来未修改的文件。您也可以直接使用过滤器,而无需任何搜索词。
当 Nepomuk 首次出现在 KDE 软件中时,它缺乏一个良好的图形搜索界面来展示其功能。Nepomuk 始终提供了使用查询语言(如 SPARQL)构建复杂搜索查询的能力。您可以,并且仍然可以,使用 Dolphin 以这种方式输入查询。单击搜索结果上方的面包屑以访问 Dolphin 的可编辑位置栏,查看用于生成结果的查询并直接编辑它。但是,许多用户不熟悉查询语言结构,并且会认为这种方法更适合命令行而不是图形文件管理器。Dolphin 1.5 中的搜索界面首次以图形方式公开了 Nepomuk 的许多搜索功能。
Dolphin 的首席开发人员 Peter Penz 仍然认为 Dolphin 1.5 中的搜索界面存在问题:“指定一个查询需要点击太多次。” 包括 Peter 和 Mandriva 的 Sebastian Trüg 在内的 KDE 开发人员一直在努力解决如何创建一个良好的图形界面,以更方便的方式展示 Nepomuk 搜索的强大功能。2009 年,Alessandro Sivieri 开始研究“分面浏览”,这是一种解决问题的方法,在文件管理器侧边栏中提供搜索过滤器面板,从而产生了 Sembrowser 原型(请参阅资源)。现在,这些想法已经结合在一起,在 Dolphin 1.6(KDE 软件编译 4.6 的一部分)中提供了一个分面浏览侧边栏,当您开始搜索时出现,并通过单击即可使用其他过滤器。分面浏览也将集成到 KDE 平台中,使其他 KDE 应用程序可以使用它。
Nepomuk 的文本搜索依赖于您的计算机具有文件及其内容的索引。这是由 Strigi 索引器创建的,Strigi 索引器声称自己是“最快和最小的桌面搜索程序”。这可能是真的,但爬取和解释文件始终是一项资源密集型任务。KDE 通过仅在处理器负载较低时索引文件并在您切换到电池电源时暂停索引来缓解这种情况。您还可以使用 Nepomuk 的系统托盘图标按需暂停(或恢复)索引,只要索引服务处于活动状态,该图标就可见。要手动暂停索引器,只需右键单击托盘图标并选中“暂停文件索引”。根据我的经验,更常见的情况是您会发现索引器在您不介意它运行时自动暂停,而不是您需要手动暂停它。

图 4. 只需点击几下即可暂停文件索引。
要获得对索引的完全控制,只需访问 KDE 系统设置配置实用程序中的“桌面搜索”页面。或者,您可以直接从 Nepomuk 系统托盘图标的右键单击菜单访问配置选项。您可以选择是否完全启用 Nepomuk 和 Strigi 文件索引器,并且可以指定应索引哪些文件夹。您还可以排除某些文件类型,例如备份文件和部分下载,甚至可以设置搜索数据库使用的内存限制。
一旦文件索引器收集了所有文件的数据,它就必须能够快速有效地搜索数据。当 Nepomuk 首次包含在 KDE 软件中时,这是一个主要问题,因为可用的数据库要么缺乏性能,要么缺乏功能,或者两者兼而有之。但是,自从 2010 年 2 月发布 KDE 软件编译 4.4 以来,Nepomuk 一直使用 Virtuoso 数据库,正如 Peter 所说,“性能问题几乎消失了。”
尽管如此,不索引所有内容是有道理的。毕竟,您可能不需要经常在您的计算机上找到数千个共享库或应用程序文件中的一个,并且包含它们会浪费资源。但是,您偶尔可能需要找到其中一个文件。在 Dolphin 1.6 之前,在 Dolphin 搜索栏中输入的术语仅查询 Nepomuk 数据库,并且必须使用单独的 KFind 界面来搜索未索引的文件。这意味着您必须知道您要查找的文件是否在索引位置,然后才能决定使用哪个搜索界面。在 Dolphin 1.6 中,两种搜索类型都集成在一个搜索框中,因此 Nepomuk 数据库用于 Strigi 已索引的目录,而 KFind 用于其他位置。这样,当您在排除在索引之外的文件夹中搜索时,您仍然可以获得搜索结果,只是需要更长的时间。
快速且可自定义的桌面搜索是 Nepomuk 在 KDE 工作区中最明显且目前可能最常用的好处。但是,Nepomuk 开发人员有更高的目标。尽管计算机非常擅长索引文件,但它们非常不擅长理解文件之间的关系。
在文件之间建立有意义的关系仍然是 Nepomuk 的主要挑战之一。如果您的朋友 Alice 要结婚了,并且您需要找到发送给您的地图,该地图显示了婚礼场地的位置,您可能会查找来自她和她未来的丈夫 Bob 的电子邮件。您会本能地意识到与 Alice 相关的信息可能会在来自 Bob 的网页或通信中找到,因为您了解他们之间的关系。但是,您的计算机会不会优先考虑来自 Bob 的文件。
使您的计算机表现得更聪明一点的一种方法是标记您的文件。这与您标记音乐文件的方式类似,因此您的媒体播放器可以向您展示专辑、艺术家甚至流派以供浏览,而不是强迫您浏览目录结构。您只需单击 Dolphin 信息面板的“标签”部分即可标记任何类型的文件。这将弹出一个对话框,用于应用现有标签或创建新标签。KDE 图像查看器 Gwenview 还使您能够使用和编辑相同的标签,并按标签而不是路径浏览图像。如果您收到 Bob 发来的关于他与您的朋友 Alice 婚礼的地图,您可以将其标记为“Bob”、“Alice”、“wedding”和“map”等词条,然后使用 Dolphin 的搜索框轻松找到它。
除了使搜索更强大之外,还有其他标记的可能性。如果您正在进行多个项目,并且您的一些文件与其中多个项目相关,则可以为每个项目应用标签,在 Dolphin 中基于这些标签进行过滤,然后将该搜索保存为“位置”。然后,您可以在任何 KDE 应用程序中快速访问与给定项目相关的文件,而无需将任何文件复制到特定于项目的文件夹中或设置链接。
当然,手动标记文件可能需要花费大量时间,并且当您购买新计算机或重新安装操作系统时,您不希望丢失这些信息。使用 KDE 平台 4.6,Nepomuk 提供了备份和传输此人工生成元数据的能力,因此您可以随时随身携带它。
您还可以使用标记和保存的 Nepomuk 搜索,以便在您登录时在桌面上显示相关文件的选择。为此,您只需在 KDE 工作区中创建一个文件夹视图 Plasma 小部件,然后使用其配置对话框直接输入搜索查询或选择您已保存为“位置”的搜索。例如,您可以拥有包含您正在处理的每个主要项目文件的文件夹视图。您甚至可以通过对最重要的文件进行五星评级并按评级过滤结果来限制初始视图。
当然,标记本身并不是什么新鲜事。多年来,媒体播放器和照片管理应用程序一直在使用标签来方便查看文件,这些文件摆脱了单一、严格的目录结构。但是,这些系统在很大程度上是不兼容的。您可以在 KDE 的 Amarok 和其他音乐播放器中读取嵌入在 Vorbis 音乐文件中的基本标签,但您不能轻松地在音乐播放器之间传输其他元数据,例如评级或播放次数。在 KDE 的照片管理应用程序 digiKam 中应用于图像的标签也不会出现在 Dolphin 或 Gwenview 中。对于某些文件类型,根本无法嵌入元数据。
随着越来越多的应用程序使用标记来简化内容的组织和检索,存在数据冗余的风险,相同的数据被多次收集和存储,因此共享存储和资源是有意义的。为了协同工作,应用程序不仅需要有一种共享元数据的方式,还需要有一种理解元数据的方式。Nepomuk 项目的主要工作之一是定义这些表示不同类型元数据的通用方法。来自您的朋友 Alice 的电子邮件与提到她的电子邮件不同,您希望您的计算机理解这种差异。
在 KDE 软件领域中,Nepomuk 最明显的用户是 Dolphin 文件管理器、Gwenview 图像查看器和 Bangarang 媒体播放器。后者集成了按类型(电影、电视节目、短片)、评级、播放次数和上次播放日期浏览媒体。尽管目前 Nepomuk 在 KDE 应用程序中的使用受到限制,但 Peter 对 Nepomuk 未来的普及持乐观态度,因为访问该技术变得越来越容易:“搜索和过滤——从每个版本的应用程序中变得越来越容易”。
如果您认为浏览所有文件并手动添加标签和评级不是您的乐趣,那么好消息来了。
Nepomuk 开发人员正在努力自动识别您最常用的文件,并在搜索结果中优先考虑这些文件。文件使用也可以链接到 Plasma 活动,这样您就可以根据您是将计算机用于工作还是娱乐来呈现不同的文件。Nepomuk 还能够跟踪您在网上找到的文件的来源,记录原始文件位置。这不仅可以帮助您找到从朋友的在线相册下载的图像,还可以反过来,使您能够找到您下载了喜欢的桌面背景的网站。
KDE 的个人信息和通信套件 Kontact 正在移植到新的存储系统 Akonadi(请参阅资源)。这将更容易维护消息中收到的项目的语义信息——例如,通过将文件附件与发送它们的人员联系起来——这样您就可以找到您的朋友两周前发送给您的图像。
KDE 和 Mandriva 开发人员还在努力集成 Scribo(基于本体的半自动和协作信息检索)的技术。这旨在自动化从文件中提取有意义的元数据。例如,应该可以从基于文本的文档中确定关键字和主题,以建议标签甚至自动应用它们。Scribo 还能够从图像中提取文本,因此在搜索“巴黎”时可能会找到包含带有“巴黎”字样的路标的照片,而无需手动标记。此类功能尚未集成到 KDE 平台中,但实验性代码已包含在 KDE 源代码存储库中。
如果您对 Nepomuk 未来的可能方向感到好奇,Mandriva Linux 2010 包含一些实验性功能。它具有 KDE 的 Konqueror Web 浏览器和 KMail 消息程序的特殊版本,可以标记网页和电子邮件,以便可以在搜索中检索它们。它还具有提供标签自动完成功能的能力——例如,当您开始将单词“John”作为新标签键入时,从您的地址簿中建议标签“John Smith”。
将 Nepomuk 描述为功能完整或没有任何缺陷是错误的。其开发人员看到了比目前在 KDE 软件中实现的更大的潜力。但是,今天在您的 KDE 工作区中启用 Nepomuk 和 Strigi 索引为您提供了不引人注目、快速且灵活的桌面搜索,以便轻松找到您的文件。您还可以开始使用标签而不是局限于严格的目录结构来组织文件,并且可以将搜索查询保存为“位置”,以便从任何 KDE 应用程序轻松访问。您甚至可以在登录时让最重要的文件集等待您。Nepomuk 房屋尚未完工,但地基坚固,现在可以安全地进入并好好看看。如果您这样做,您可能会发现您喜欢您所看到的。
资源
Sembrowser: kde-apps.org/content/show.php?content=117692
Strigi: strigi.sourceforge.net
Akonadi: pim.kde.org/akonadi
Scribo: www.scribo.ws
Stuart Jarvis 是一位科学家,也是 KDE 营销工作组的成员。他将时间分配在丢失数据文件、图表和论文以及再次找到它们之间。