DBTune.org

Jamendo RDF server

1. Introduction

Jamendo is a large repository of Creative Commons licensed music, based in France. This server aims at publishing this dataset as Linked Data: publishing a set of URIs with an RDF representation holding links towards external datasets (so far, Geonames and Musicbrainz). The corresponding RDF is also linked to Music Ontology terms.

This effort is part of the Linking Open Data on the Semantic Web community project, hosted by the Semantic Web Education and Outreach interest group.

2. Browsing the dataset

All resource identifiers defined by this RDF dump are dereferencable.

Here are some entry points to the dataset:

The service also exposes some informational RDF documents. Such documents are:

3. Links

This dataset is interlinked with the Geonames and the Musicbrainz datasets.

For an example of a resource which description holds one owl:sameAs link to a Musicbrainz resource, and one foaf:based_near link to a Geonames resource, try this one (a French band called Both). The same resource, displayed in the Tabulator.

4. Querying the dataset

The service also exposes a SPARQL end-point, available at http://dbtune.org/jamendo/sparql/. There is also a small web interface available at http://dbtune.org/jamendo/store/.

For example, the end-point can answer the following query:

PREFIX geo: <http://www.geonames.org/ontology#>
PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT DISTINCT ?an ?lat ?long ?name ?population
WHERE
{ ?a 
     a mo:MusicArtist; 
     foaf:based_near ?place; 
     foaf:name ?an;
     foaf:made ?alb.
  ?alb tags:taggedWithTag <http://dbtune.org/jamendo/tag/punk>.
  ?place 
     geo:name ?name; 
     geo:population ?population; 
     wgs:lat ?lat; 
     wgs:long ?long }
ORDER BY ?population
This selects artists within Jamendo who made at least one album tagged as `punk' by a Jamendo user, sorted by the number of inhabitants of the places they are based near.

5. RDF dump

The RDF dump is available for download. The package holds the raw Jamendo data converted to RDF (available under the same license than the raw Jamendo data itself), as well as the links towards Geonames and the links towards Musicbrainz. These links are available under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License (subject to change, ask me).

6. Tools

The code needed to make this service run takes less than 900 lines of code! This, I guess, demonstrates the power of SWI Prolog and its SeRQL, semweb and http packages.

The code is split in two parts, and is available under a copyleft license - feel free to use it!

The first part is available here. It is a small HTTP server implementing content negotiation. The behavior of the server is specified by a declarative mapping from resource identifiers to the location of their representation.

The second part is available here. It is an equivalent of D2R Server, but for Prolog knowledge base. It allows to translate dynamically RDF queries to Prolog queries - which may wrap XML parsing, calls to web services, databases, etc.

The behavior of this component is also specified through a declarative mapping (the package ships with some mapping examples) between prolog predicates and a set of RDF predicates.

7. Statistics

Triple count1.1 million triples +
Distinct Geonames resources 289
Distinct Musicbrainz resources119