简介
Bickley是一个元数据管理API和框架,由三个主要部分组成:
l Libkozo —— Kozo是围绕TDB库的数据库抽象。
l Libbickley —— Libbickley是一个客户端API,允许客户端通过较高级别接口访问元数据。
l Daemons —— 有两个daemon,分别用于从文件和其他来源提取元数据和对这些元数据编制索引。
Libbickley
Libbickley以列举项的形式将数据呈现给客户端。目前共有三类列举项,分别代表音频、图像和视频项。对于与这些类型相关的元数据,列举项还包含一些文件相关的元数据和一些自定义元数据,比如播放次数、排名、标签。
通过使用Libbickley,客户端不必了解libkozo是如何将数据保存在数据库中的,而且对数据的所有操作都应该通过Libbickley完成。
Daemon
组成Bickley元数据系统的两个daemon是bkl-orbiter和bkl-investigator。bkl-orbiter始终处于运行状态,可以跟踪各种来源,从而监视来源上需要为其编制索引的文件。当它发现需要提取的内容时,bkl-investigator就会启动并扫描随后要发送给orbiter的元数据文件。
目前,bkl-orbiter能够监视的来源有:
l GConf —— 表示本地文件系统。
l 可移除的媒体 —— 表示CD/DVD和可移除的存储设备。
l UPnP —— 表示局域网上基于UPnP的媒体服务器。
GConf来源可以监视键/apps/bickley/watched_uris并对在该键中找到的任意uri编制索引。
当新的来源可用时,bkl-orbiter还会发出D-Bus信号,而Libbickley可以将此信号通知客户端应用程序。
元数据的存储位置
元数据存储在设备的文件系统中。对于本地文件系统,数据库存储在~/.kozo/databases/local-media中。
l 对于UPnP,元数据也存储在~/.kozo/databases中,而数据库文件名就是UPnP设备UDN的MD5和。
l 对于可移除的媒体,如果该媒体是可写的,那么元数据存储在$(mount_point)/.kozo/databases中,否则也存储在~/.kozo/databases中,数据库文件名是挂载点的MD5和。
预告:Moblin 中文站 9月 沙龙将于 9月5日举办