个人认为桌面上的 tag 就是本地文件系统的书签, 浏览其中书签用来记录你喜欢的网页,这里的 tag 则用来标记你的硬盘上的重要文件,以便能方便的找到他们,所以,tag 最重要的功能并不是用来实现位置无关的文件存储,而是为了方便文件的分类及查询。 Desktop search 可以很容易的搜索到你硬盘里的内容,也许给 Desktop search 配备一个书签功能,上面这些 leaftag 就不需要了。
至于这些 tag 工具,如果是独立于 Desktop search 工具,而文件系统有没有提供 “Extend Attr“,那么,实现起来就有些笨重了。 如果有 winfs 这样的文件系统,那么,实现一个 tag 工具也是轻易而举的事。
我认为最好的办法就是由 Desktop search 工具(DST)来提供标签功能,就相当于在 google 中找到自己喜欢的网页然后把他收藏到书签(可设置关键字)中一样,在 DST 搜到喜欢的内容时便可以把他加入到自己的书签中,并打上相应的 tag。从技术上来说,DST 本身就需要解决文件更新(添加/修改/删除等)之后同步自己的索引数据库的问题,这样的问题不需要再在 独立的 tag 工具中再解决一遍,在 DST 的索引数据中添加一个 tag 岂不是很容易的事吗? 至于如何分别文件 A 是否被替换,他附带的 tag 是否应该删除/同步等都可以借助 DST 来实现了,比如在索引数据中保存可以唯一标识一个文件的 meta 信息比如(uri+文件大小+MIME, EXIF, MD5...) 就很容易区分文件是否变动了。
另外, 浏览器的书签工具记录的绝大多数是 WWW 上的一个唯一的 URL (本地的除外),互联网上的其他人可以访问这些 URL 所指的资源,所以他才有共享,导入/导出的意义,而桌面上的 tag 工具明显是一个只希望在自己的系统中使用的工具,你肯定不会把你电脑里的所有内容公诸于世。