user warning: Unknown column 'captcha_type' in 'field list' query: SELECT module, captcha_type FROM captcha_points WHERE form_id = 'user_login_block' in /var/www/drupal/sites/all/modules/captcha/ on line 64.

Adventures in ad hoc RDFa development for MusicBrainz

This post is intended to describe, in some detail, the implementation of RDFa within the MusicBrainz NGS codebase.  The casual reader will perhaps not be interested in these details.  The intended audience includes future LinkedBrainz/MusicBrainz developers or other developers faced with the task of injecting RDFa into a Model-View-Template web application.

The future of MusicBrainz URIs

One of the great strengths of the MusicBrainz project is disambiguation.  Each artist, label, release, release group, recording gets its own universally unique identifier or, in MusicBrainz parlance, an MBID.  This allows us to easily distinguish between two recordings of the same work or two artists that happen to have the same name.

Towards D2RQ Mappings

We have previously discussed RDB2RDF technology and found some information about available implementations.  Now we have further explored some of the implementation options.  In our survey, we found that there are basically two viable production-level tools for making SPARQL queries against a relational database: the Virtuoso server and the D2R server.

NGS Beta 3 release includes RDFa

The recent release of the MusicBrainz NGS Beta 3 server includes RDFa courtesy of the LinkedBrainz project.  This release is now live on the MusicBrainz test server so grab your favorite RDFa consumption tools and try it out.  A wiki page about consuming RDFa has also been added to help the uninitiated get into RDFa.

RDFa test server online

 We are happy to announce a new RDFa test server for those interested in what the RDFa we're embedding in MusicBrainz will look like.  This effort is far from complete, if you find something missing or incorrect we'd love to hear about it on the Music Ontology specification mailing list.  One notable omission is that of the Advanced Relationships which we hope to cover eventually.  But all the core entity types should include some valid RDFa.  Also, there is some RDFa for the entities that have pagination (xhv:next, xhv:prev) and tabs (rdfs:seeAlso).

You can consume the RDFa with your favorite RDFa parser.  For testing, we've been using the rapper command line tool and  If you have rapper installed, you can execute the following command to see the embedded RDFa for the release "Sex Machine" by James Brown as Turtle RDF:

rapper -i rdfa -o turtle

This should work for any core entity.  Give it a go and let us know!

Syndicate content