Playlist Builder using Freebase Suggest

·

One of the most immediate uses of a structured database such as Freebase is as a service that helps with autocompletion while adding structured metadata in the background.

Here's an example: say someone at a radio station or podcast needs to type out a playlist for a recent show. Given a simple form, they can type in the information and, as they do so, Freebase Suggest looks up the prefixes in Freebase and returns suggestions. When one of those entities is selected, its identifier and other metadata are stored.

If the entity is an artist, it can then be used to limit the scope of the autocompletion query for the album name, and the album can then be used to limit the scope of the track name. At the end you can gather all the saved information together and use it to tie those identifiers—and hence the playlist—together with the rest of the web (display album covers, similar artists, etc).

The playlist builder example given above is currently a bit limited in that it's only using the artist or album name to limit subsequent queries as a "surrounds" parameter (as this is what Freebase Suggest supports, using the search API), but in theory it should be straightforward to take the identifiers and do a proper MQL query.

I think Freebase regularly imports information from MusicBrainz, but you could also perform the prefix query on the MusicBrainz web service itself, via a JSON-ifying Pipe. There's no way to limit subsequent queries using MusicBrainz, but it's still useful for autocompletion.