Chris@0: Chris@0: Chris@0: Chris@0: 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: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: The service also exposes some informational RDF documents. Chris@0: Such documents are: Chris@0:
Chris@0: 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: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:
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: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:Chris@0:
Triple count | 1.1 million triples + |
Distinct Geonames resources | Chris@0:289 |
Distinct Musicbrainz resources | 119 |