Browsing Musicbrainz’s dataset via URI dereferencing

Musicbrainz’s dataset can finally be browsed, node-by-node, using URI dereferencing.

What this mean?

Since the Musicbrainz relational database has been converted into RDF using the Music Ontology, all relations existing between Musicbrainz entities (an entity can be a Music Artist, a Band, an Album, a Track, etc.) are creating a musical relations graph. Each node of the graph is a resource and each arc is a property between two resources. Welcome in the World of RDF.

madonna-rdf-description.jpg

This means that from a resource “Madonna” we can browse the musical relations graph to find other entities such as Records, People, Bands, Etc.

Kingsley, inspired by Diana Ross, said: “URI Everything, and Everything is Cool!

This is cool! Now Diana Ross has her own URI on the semantic web: http://zitgist.com/music/artist/60d41417-feda-4734-bbbf-7dcc30e08a83

Paul McCarney:
http://zitgist.com/music/artist/ba550d0e-adac-4864-b88b-407cab5e76af

The Beatles:
http://zitgist.com/music/artist/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d

Madonna:
http://zitgist.com/music/artist/79239441-bfd5-4981-a70c-55c3f15c1287

Have their own too!


URIs for Musical Things

These URIs are not only used to refer to Musicbrainz entities. In fact, these URIs are used to refer to any Musical Entities that you can describe using the Music Ontology. In a near future, the Musicbrainz data will be integrated along with data from Jamendo and Magnatune. In the future, we will be able to integrate any sort of musical data at the same place (radio stations data, user foaf profiles relations to musical things, etc.). So from a single source (http://zitgist.com/music/) all these different sources of musical data will be queriable at once.

mbz-magnatune-jemendo-rdf.jpg

URI schemes

The URI schemes are defined in the Musicbrainz Virtuoso RDF View:

  • http://zitgist.com/music/artist/*******
  • http://zitgist.com/music/artist/birth/*******
  • http://zitgist.com/music/artist/death/*******
  • http://zitgist.com/music/artist/simlink/*******
  • http://zitgist.com/music/record/*******
  • http://zitgist.com/music/performance/*******
  • http://zitgist.com/music/composition/*******
  • http://zitgist.com/music/musicalwork/*******
  • http://zitgist.com/music/sound/*******
  • http://zitgist.com/music/recording/*******
  • http://zitgist.com/music/signal/*******
  • http://zitgist.com/music/track/*******
  • http://zitgist.com/music/track/duration/*******

All these URI schemes terms refer to their Music Ontology classes’ descriptions.

Conclusion

I am getting closer and closer to the first goal I set to myself when I first started to write the Music Ontology. This first goal was to make the Musicbrainz relational database available in RDF on the Web. Months later and with the help of the Music Ontology Community (specially Yves Raimond that worked tirelessly on the project) and the OpenLink Software Inc. Team, we finally make this data available through URI dereferencing.

From there, we will build-up new music services, integrate more musical datasets into the Music Data Space, etc. It is just the beginning of something much bigger.

11 Responses to “Browsing Musicbrainz’s dataset via URI dereferencing”


  1. 1 François-Paul Servant May 23rd, 2007 at 5:45 am

    Hello,

    that’s cool. I have a question.

    Let’s say that I want to tag a file “all_you_need_is_love.mp3″ somewhere on my hard disk (or wherever) with “The Beatles”. That is: produce some piece of RDF data containing a triple that looks like:
    xxx/all_you_need_is_love.mp3, ex:tag, Musicbrainz’s URI of “The Beatles”
    How can I discover that the URI of “The Beatles” is
    http://zitgist.com/music/band/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d ?

    What would be very cool is a kind of search service returning RDF data: you pass a string to it, and it returns the URI of the corresponding concept. For instance, dereferencing a URI such as:
    http://sitgist.com/music/search?s=the Beatles
    you would get RDF containing the triple:
    http://sitgist.com/music/search?s=the Beatles, owl:sameAs, http://zitgist.com/music/band/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d
    Note: owl:sameAs is maybe too strong. The service could use a weaker “ex:probablySameAs” property. In case of ambiguity, the service should return a “disambiguating” piece of RDF.

    I then would be able to create a tool allowing to create triples such as:
    xxx/all_you_need_is_love.mp3, ex:tag, http://zitgist.com/music/band/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d

    Of course, this remark is general and could apply to most if not all of the projects of the open linking data initiative.

    Maybe the “lazzy people” of the tagging tribe would be happy with triples such as
    xxx/all_you_need_is_love.mp3, ex:tag, http://sitgist.com/music/search?s=the Beatles

    (not taking care to deal with disambiguation). But it’s not that bad – maybe it’s even very good: a way to reconcile the tagging tribe and the RDF tribe. In a way, the “Semantic Web” has a problem with the meaning of words. We want to remove any ambiguity from our statements by using URIs that precisely identify things, (and that’s a good and important point). But it makes our life sometimes difficult – with RDF, “we *can* say anything about anything”, but things are easier to be said with words: it is a pity not to be able to use them. (The capacity to use simple words made the success of tagging). The Semantic Web can tolerate some form of ambiguity in its statements if the statements don’t lie (hence the “probablySameAs” prop). I think that making it easier to write statements is important, and that it would be very useful if people producing RDF data such as you do were providing ways to easily (and automatically) convert words to concepts identified by URIs.

    Best Regards

  2. 2 Francois-Paul Servant May 23rd, 2007 at 5:54 am

    Just a note about your “Leave a Reply” form:it seems that “plus” signs in a post disappear when submitting the form (they are visible in the preview). For instance, I had written:
    http://sitgist.com/music/search?s=the'PLUS'Beatles

    fps

  3. 3 Fred May 23rd, 2007 at 8:32 am

    Hi Francois!

    [quote post="810"]Let’s say that I want to tag a file “all_you_need_is_love.mp” somewhere on my hard disk (or wherever) with “The Beatles”. That is: produce some piece of RDF data containing a triple that looks like:
    xxx/all_you_need_is_love.mp3, ex:tag, Musicbrainz’s URI of “The Beatles”[/quote]

    Well, to create such assertion about musical things, I would refer you to the music ontology for more information http://musicontology.com

    [quote post="810"]How can I discover that the URI of “The Beatles” is
    http://zitgist.com/music/band/b10bbbfc-cf9e-42e0-be17-e2c3e1d2600d/quote

    Well, this is all about Zitgist :) For now, only the data is available to everyone. So if you want to do something with it, go for it, you have access to the data.

    But in a near future, http://zitgist.com will enable you to search this musical database, along with many others. Later today I will publish a couple of SPARQL queries that you will be able to hack to search what you want. In the mean time, I would suggest you to subscribe to get a Zitgist account at: http://zitgist.com

    [quote post="810"]We want to remove any ambiguity from our statements by using URIs that precisely identify things, (and that’s a good and important point).[/quote]

    Well yeah it is the goal! BUt at the same time, I think that only relying on URIs to do that is sort of naive. Anyway, it is certainly a good start.

    [quote post="810"]But it makes our life sometimes difficult – with RDF, “we *can* say anything about anything”,[/quote]

    Yeah, and it is why people start to think to develop best practices to try to manage the powerful descriptiveness of the RDF (with big power come along big responsibilities :) ). At least, this is something I talk about since a long time.

    I think that making it easier to write statements is important, and that it would be very useful if people producing RDF data such as you do were providing ways to easily (and automatically) convert words to concepts identified by URIs.

    A good try in that direction is the YAGO ontology: http://www.mpi-inf.mpg.de/~suchanek/downloads/yago/

    Take care,

    Fred

  4. 4 Yves Raimond May 23rd, 2007 at 10:32 am

    Hi Francois!

    I am working on such a small app, that scan your music collection, and associates all your audio items to zitgist’ URI, using the MBZ fingerprinting/identification web services.

    The association is done through the
    mo:availableAs property

    You can take a look at this blog post:
    http://blog.dbtune.org/post/2007/05/22/Music-Ontology-1st-project-idea

    which gives some preliminary ideas about this.

    Best,
    Yves

  5. 5 Adrian Jun 4th, 2007 at 5:43 pm

    Hi !

    I’m working for my university graduation project on a RDF datastore using SQL Relational Databases (.NET MS SQL Server).

    The project consists of a semantic browser of the RDF store and of a basic search engine using full-text over literals (not SPARQL).

    I’m very interested in the complete(or at least some parts of it, that can be linked) RDF dataset containing music ontology (more important are RDF assertions about artists, tracks…etc), but i cannot find it anywhere.

    I have already in my db the RDF dataset from SemanticBible.org, but I need some huge data to test my storage system and the datasets from Leigh University has almost no logic(basically there are thousands of Mock values, used to test the speed of SPARQL processors).
    I think that this Music Ontology RDF Dataset would work best for my project, because it has good logic and music is part of our life.

    Can you help me regarding this issue ?!

    best regards, Adrian!

  6. 6 Fred Jun 6th, 2007 at 10:51 am

    Hi Adrian!

    Yeah sure! There are a couple of possibilities.

    You can wait a couple of weeks so that we release the RDF dump produced by this RDF View.

    Or you can download the opensource version of Virtuoso here:

    http://virtuoso.openlinksw.com/wiki/main/Main/OdsVOS

    then you download and install the postgre server of musicbrainz.org.

    then you create a sql dump of the MBZ database and import it into virtuoso.

    Then you install the Musicbrainz RDF View so that you can generate all the triples, send queries etc.

    Finally you connect your .NET application to Virtuoso via ODBC.
    :)

    Tell me if you have any questions related to that.

    Take care,

    Fred

  7. 7 Adrian Jun 18th, 2007 at 3:15 am

    Hi !

    Thank you for responding and I’m sorry for not replying, but I’ve been too busy the last weeks.

    Have you, by any chance, produced the RDF dump meanwhile?

    I have checked on Virtuoso server and I’m amazed by its features, but the whole process is a little tangled and I doubt that it will work without problems on my Vista.

    I will sustain my thesis and show the application in few days and I have no alternatives, but to use dataset from SemanticBible.

    best regards !

  1. 1 Where are the Road Signs for the Structured Web? » AI3:::Adaptive Information Pingback on May 29th, 2007 at 6:15 pm
  2. 2 Linked Data are the roots for the Future Web Pingback on Apr 25th, 2008 at 7:42 am
  3. 3 The Semantic Web Gang » Blog Archive » April 2008: The Semantic Web Gang discuss a Wikipedia for Data Pingback on Jun 13th, 2008 at 5:45 am
  4. 4 Blogabriel » Traduction française : How to Publish Linked Data on the Web? Pingback on Jun 22nd, 2010 at 7:45 pm

Leave a Reply






This blog is a regularly updated collection of my thoughts, tips, tricks and ideas about my semantic Web researches and related software development.


RSS Twitter LinkedIN


Follow

Get every new post on this blog delivered to your Inbox.

Join 65 other followers:

Or subscribe to the RSS feed by clicking on the counter:




RSS Twitter LinkedIN