Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > c7f638e97fa55944115870d468273fd3 > files > 15

bickley-0.4.3-0.git20091027.1mdv2010.1.x86_64.rpm

Bickley
=======

Bickley is a metadata management API and framework and it consists of three
main parts.
	* libkozo - Kozo is a database abstraction around the TDB library.
	* libbickley - Libbickley is the client API which allows clients to
		       access the metadata in an higher level way.
	* daemons - There are two daemons which index and extract metadata from
		    files and other sources.

Libbickley
==========

Libbickley presents the data to the clients in the form of items. There are 
currently three item types representing audio, image and video items. As well as
the metadata associated with these types, the items also contain some file
related metadata and some custom metadata, such as play count, rating, tags.

By using Libbickley, the client should not need to know how libkozo has stored
the data in the database, and all manipulation of the data should be done
through libbickley

Daemons
=======

The two daemons that make up the Bickley metadata system are bkl-orbiter and
bkl-investigator. Bkl-orbiter is always running and informs keeps track of
various sources, watching for files on the sources that need indexed. When it
has found something that needs extracted, the bkl-investigator is started and
scans the file for metadata which it then sends to the orbiter. The orbiter
puts this metadata into the database.

Currently the sources that bkl-orbiter can watch are
	* GConf - For local filesystems
	* Removable media - For CD/DVDs and removable storage devices
	* UPnP - For UPnP based media servers on the local network

The GConf source watches the key /apps/bickley/watched_uris and indexes any
uri found in that key.

Bkl-orbiter also emits D-Bus signals when a new source is available and 
libbickley can inform client applications of this.

Where Metadata is stored
========================

Metadata is stored on the filesystem of the device. For local filesystems, the
database is stored in ~/.kozo/databases/local-media. For UPnP the metadata is
also stored in ~/.kozo/databases, with the database filename being the MD5 sum
of the UPnP devices UDN. For removable media, if the media is writable, then it
is stored in $(mount_point)/.kozo/databases, otherwise it is stored in
~/.kozo/databases again with the database filename being the MD5 sum of the
mount point.