On 12/07/06/12/06 21:37 +0000, Jamie McCracken wrote:
><extraction>
>       <Entity uri="/home/jamie/music/moonlight.ogg">
>               <metadata name="Audio.Title">Moonlight Sonata</metadata>
>               <metadata name="Audio.Artist">Beethoven</metadata>
>       </entity>
>
>       <Entity uri="/home/jamie/music/moonlight.ogg">
>               <metadata name="Audio.Title">Moonlight Sonata</metadata>
>               <metadata name="Audio.Artist">Beethoven</metadata>
>       </entity>
></extraction>
just that you know, this format is exactly RDF! So instead of reinventing 
the wheel, maybe we want to just use the RDF format for storing these 
extracted metadata?

RDF has several serialisations. In RDF/XML your data would look like:
<tracker:Entity rdf:about="file:///home/jamie/music/moonlight.ogg">
        <audio:title>Moonlight Sonata</audio:title>
        <audio:artist>Beethoven</audio:title>
</tracker:Entity>

In turtle format it would be:
<file:///home/jamie/music/moonlight.ogg> rdf:type tracker:Entity .
<file:///home/jamie/music/moonlight.ogg> audio:title "Moonlight Sonata" .
<file:///home/jamie/music/moonlight.ogg> audio:artist "Beethoven" .

Advantages of RDF is that extending and adding 'fields' to your data is 
trivial, and you don't need to reinvent an xml grammar. Plus exchanging and 
merging data (e.g.  from various extractors) is trivial. So one extractor 
could maybe do title/artist while another does last-modified-date.

There are several standard RDF parsers available, Redland [1] is well 
known, stable, fast, and lightweight. And it's in C ;-)

If I understood this discussion correctly, RDF would be quite easy to use 
here as data container. You're of course free to use any vocabulary you 
want (instead of e.g. tracker:Entity and audio:title), those were just 
examples.

 -eyal

[1] http://librdf.org
_______________________________________________
tracker-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/tracker-list

Reply via email to