Re: [Tracker] [WIP] Application support: man pages, Tomboy, & Liferea



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



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