[Tracker] Extracting new types of data (or: what on earth is nepomuk?)



I've working on a toy project to index and display a directory full of
audio files, a bit like an automatically-updated Rhythmbox or Banshee.
Tracker 0.7 seems like an ideal backend for this, because it can be
easily queried and will manage the indexes automatically. However, I'm
running into a bit of trouble when it comes to storing and extracting
data -- namely, figuring out where to store and query metadata.

First, there are several missing metadata fields that would be
tremendously useful -- album artist, ReplayGain, MusicBrainz
identifiers, track count, sort names, etc. From the Tracker-related
posts on Planet GNOME I believe that these fields needed to be added
to a "nepomuk ontology". However, the NEPOMUK homepage[1] and
development site[2] are tremendously unhelpful. I can't find a list of
valid field names, which values are to be stored in them, or anything
except a wall of vague and buzzword-laden text.

The Tracker source is more informative, and there appears to be an
ontology for storing ID3 information in
<tracker/data/ontologies/37-nid3.ontology>. However, none of the
fields defined within provide any results when I query them using
"tracker-sparql". I've tried adapting the queries in Mr. Van Hoof's
blog post Introduction to RDF and SPARQL[3] to query ID3 metadata, but
with no success. However, even the ID3 ontology in Tracker appears to
be missing several important fields (like the above mentioned).

Is there any way to add these fields to one of the supported
ontologies? If not, is there a "best way" to add new ontologies?

Second, there seems to be a duplication of information for each file,
and I do not know which fields are "correct" and which are development
leftovers or deprecated. For example, to find the title of a given
track, I am offered: dc:title, nie:title, and nid3:title. Which of
these should be used? Which are legacy duplicates? It is a mystery.

Lastly, I do not see any way to define additional fields after
installation. If I were to add (for example) support for storing a
per-track rating to the music player, it would have to be in an
external data store rather than Tracker. Obviously, this is
sub-optimal -- is there any way to define custom or per-application
fields?

[1] http://nepomuk.semanticdesktop.org/
[2] http://dev.nepomuk.semanticdesktop.org/
[3] http://pvanhoof.be/blog/index.php/2009/07/14/introduction-to-rdf-and-sparql



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]