Re: MLQ (Media Library Query) file format and mime type proposal



Milosz Derezynski wrote:
Hi,

I'm one of the main authors of BMP 2 (still being worked on), and along the way of reworking our library, i came across the idea of encoding library queries as URIs, which may look like this:

"query:///?artist=Air&album=Moon%20Safari"

BMP 2 has a plugin archicture which is a small VFS on it's own, and we treat certain things as "containers" (i.e. they "contain" URIs, like PLS playlists, XSPF, M3U, etc). Now i thought it might be not a bad idea to create a playlist format with these query URLs, and i've called it "MLQ" for media library query. In theory, it's not even application specific. The keys (identifiers), like artist, album, etc, are all based on GStreamer tag identifiers. (They could be maybe adapted to http://www.freedesktop.org/wiki/Standards_2faudio_2dmetadata_2dspec , but it seems insufficient and doesn't specify certain items, like musicbrainz metadata, which GST does).

Tracker's metadata spec does (http://freedesktop.org/wiki/Standards/shared-filemetadata-spec)



So i've called this file format "MLQ", with the extension .mlq, created a mime package file for it:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info ">
  <mime-type type="application/x-media-library-query">
         <comment xml:lang="en">Media Library Query List</comment>
         <magic priority="50">
            <match value="query:///" type="string" offset="0"/>
         </magic>
         <glob pattern="*.mlq"/>
  </mime-type>
</mime-info>

Adding a file of this type to BMPx, or just a plain query:/// URI itself causes a library query and appending of the relevant items to the tracklist (BMP is currently mostly based on the concept of a mutable playlist to which items can be added from various sources, unlike e.g. RB which has mostly immutable "Playlists", but allows for custom queues).

Another example is:

query:///?artist=Air&album=Moon%20Safari&title=La%20Femme%20d'Argent
query:///?artist=Air&album=Moon%20Safari&title=Sexy%20Boy
query:///?artist=Air&album=Moon%20Safari&title=All%20I%20Need
query:///?artist=Air&album=Moon%20Safari&title=Kelly,%20Watch%20The%20Stars!
query:///?artist=Air&album=Moon%20Safari&title=Talisman
query:///?artist=Air&album=Moon%20Safari&title=Remember
query:///?artist=Air&album=Moon%20Safari&title=You%20Make%20It%20Easy
query:///?artist=Air&album=Moon%20Safari&title=Ce%20Matin%20La
query:///?artist=Air&album=Moon%20Safari&title=New%20Star%20In%20The%20Sky
query:///?artist=Air&album=Moon%20Safari&title=Le%20Voyage%20De%20Penelope

Or it might just be:

query:///?genre=Jazz

Since this is very common, and having the discussions about a common music database in mind, this seems like a useful proposal, since it is not player specific. This ships currently with BMP 2/BMPx SVN, and while i will ship this with the 0.20 release (end-July) anyway, what does everyone think of this in a broader context (common music database, etc)?


Could be interesting as an alternative to rdf query that tracker uses but rdf query is a *standard* and is the WC3's recommended means of querying metadata.

A more compact version of the xml based rdf query language is sparql (http://www.w3.org/TR/rdf-sparql-query/) and is also a candidate for standardisation.

I guess its going to be fun deciding which to use (I will go with the flow)

--
Mr Jamie McCracken
http://jamiemcc.livejournal.com/




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