Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: DBTune - Jamendo RDF dump Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0:

DBTune.org

Chris@0: Chris@0:
Jamendo RDF server
Chris@0: Chris@0:

1. Introduction

Chris@0: Chris@0:

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

Chris@0: Chris@0:

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

Chris@0: Chris@0: Chris@0: Chris@0:

2. Browsing the dataset

Chris@0:

Chris@0: All resource identifiers defined by this RDF dump are dereferencable. Chris@0:

Chris@0:

Chris@0: Here are some entry points to the dataset: Chris@0:

Chris@0: Chris@0: Chris@0: Chris@0:

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

Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0:

3. Links

Chris@0:

Chris@0: This dataset is interlinked with the Geonames Chris@0: and the Musicbrainz datasets. Chris@0:

Chris@0:

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

Chris@0: Chris@0:

4. Querying the dataset

Chris@0:

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

Chris@0: Chris@0:

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

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

Chris@0: Chris@0: Chris@0: Chris@0:

5. RDF dump

Chris@0:

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

Chris@0: Chris@0:

6. Tools

Chris@0:

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

Chris@0:

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

Chris@0:

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

Chris@0: Chris@0:

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

Chris@0:

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

Chris@0: Chris@0:

7. Statistics

Chris@0: Chris@0:

Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0:
Triple count1.1 million triples +
Distinct Geonames resources289
Distinct Musicbrainz resources119
Chris@0:

Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: Chris@0: