view jamendo/jamendo.html @ 19:1e79ce3ff5f5 tip

Simplify and cut some non-working resource paths
author Chris Cannam
date Wed, 08 Nov 2017 15:27:23 +0000
parents 1e44d666ced1
children
line wrap: on
line source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>DBTune - Jamendo RDF dump</title>

<style type="text/css" media="all">
        @import url(style.css);
</style>

</head>

<body>


<a href="http://dbtune.org/"><h1 style="font-size: 250%;">DBTune.org</h1></a>

<div id="tagline">Jamendo RDF server</div>

<h2><a name="intro" id="intro"></a>1. Introduction</h2>

<p>

<a href="http://jamendo.com/">Jamendo</a> is a large repository of Creative Commons licensed music, based in France.
This server aims at publishing this dataset 
as <a href="http://linkeddata.org">Linked Data</a>: publishing a set of URIs
with an <a href="http://www.w3.org/RDF/">RDF</a> representation holding 
links towards external datasets (so far, <a href="http://geonames.org/">Geonames</a> and <a href="http://musicbrainz.org/">Musicbrainz</a>).
The corresponding RDF is also linked to <a href="http://musicontology.com/">Music Ontology</a> terms.
</p>

<p>
This effort is part of the <a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">Linking
Open Data on the Semantic Web</a> community project, hosted by the <a href="http://www.w3.org/2001/sw/sweo/">Semantic
Web Education and Outreach</a> interest group.
</p>



<h2><a name="browse" id="browse"></a>2. Browsing the dataset</h2>
<p>
All resource identifiers defined by this RDF dump are dereferencable. <!--, and support content negotiation. 
Using the <i>Accept: application/rdf+xml</i> header field, a RDF/XML representation of the resource is sent back.
Otherwise, a HTML representation, done using <a href="http://www.w3.org/2005/ajar/tab">the Tabulator Data browser</a>,
is sent back.-->
</p>
<p>
Here are some entry points to the dataset:
</p>

<ul>

<li><a href="http://dbtune.org/jamendo/artist/1005">Vincent J.</a> (artist), 
in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/artist/1005">OpenLink data explorer</a>, 
<a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/artist/1005">Zitgist data viewer</a>,
<a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/artist/1005">Marbles</a>,
<a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/artist/1005">DISCO</a>,
<a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/artist/1005">Tabulator</a>
</li>
<li><a href="http://dbtune.org/jamendo/artist/1023">Carter Hotel</a> (artist)
in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/artist/1023">OpenLink data explorer</a>,
<a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/artist/1023">Zitgist data viewer</a>,
<a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/artist/1023">Marbles</a>,
<a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/artist/1023">DISCO</a>,
<a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/artist/1023">Tabulator</a>
</li>
<li><a href="http://dbtune.org/jamendo/record/2931">First Dub</a> (album)
in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/record/2931">OpenLink data explorer</a>,
<a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/record/2931">Zitgist data viewer</a>,
<a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/record/2931">Marbles</a>,
<a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/record/2931">DISCO</a>,
<a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/record/2931">Tabulator</a>
</li>
</ul>

<p>
The service also exposes some informational RDF documents. 
Such documents are:
</p>

<ul>

<li><a href="http://dbtune.org/jamendo/all/artist">All artists</a></li>
<li><a href="http://dbtune.org/jamendo/all/track">All tracks</a></li>
<li><a href="http://dbtune.org/jamendo/all/record">All records</a></li>
<li><a href="http://dbtune.org/jamendo/all/performance">All performances</a></li>
<li><a href="http://dbtune.org/jamendo/all/signal">All signals</a></li>
<li><a href="http://dbtune.org/jamendo/all/timeline">All timelines</a></li>

</ul>

<!--<p>
To test them using a Semantic Web browser, load one of them into the Tabulator (eg. 
<a href="http://dbtune.org/jamendo/all/artist">http://dbtune.org/jamendo/all/artist</a>)
and then look for <a href="http://purl.org/ontology/mo/MusicArtist">http://purl.org/ontology/mo/MusicArtist</a>. You will then see
the list of all Jamendo MusicArtist instances.
</p>-->

<h2><a name="query" id="query"></a>3. Links</h2>
<p>
This dataset is interlinked with the <a href="http://geonames.org/">Geonames</a>
and the <a href="http://musicbrainz.org/">Musicbrainz</a> datasets.
</p>
<p>
For an example of a resource which description holds one <i>owl:sameAs</i> link to 
a Musicbrainz resource, and one <i>foaf:based_near</i> link to a Geonames resource, try
<a href="http://dbtune.org/jamendo/artist/5">this one (a French band called <i>Both</i>)</a>.
The <a href="http://dig.csail.mit.edu/2005/ajar/ajaw/tab?uri=http://dbtune.org/jamendo/artist/5">same resource,
displayed in the Tabulator</a>.
</p>

<h2><a name="query" id="query"></a>4. Querying the dataset</h2>
<p>
The service also exposes a <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a> end-point, available
at <a href="http://dbtune.org/jamendo/sparql/">http://dbtune.org/jamendo/sparql/</a>. There is also a small
web interface available at <a href="http://dbtune.org/jamendo/store/">http://dbtune.org/jamendo/store/</a>.
</p>

<p>
For example, the end-point can answer the following query:
<pre>
PREFIX geo: &lt;http://www.geonames.org/ontology#&gt;
PREFIX wgs: &lt;http://www.w3.org/2003/01/geo/wgs84_pos#&gt;
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 &lt;http://dbtune.org/jamendo/tag/punk&gt;.
  ?place 
     geo:name ?name; 
     geo:population ?population; 
     wgs:lat ?lat; 
     wgs:long ?long }
ORDER BY ?population
</pre>
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.
</p>



<h2><a name="dump" id="dump"></a>5. RDF dump</h2>
<p>
The RDF dump is <a href="http://moustaki.org/resources/jamendo-rdf.tar.gz">available for download</a>. 
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 <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 License</a> (subject to
change, ask me).
</p>

<h2><a name="tools" id="tools"></a>6. Tools</h2>
<p>
The code needed to make this service run takes less than 900 lines of code! This, I guess, demonstrates the
power of <a href="http://www.swi-prolog.org">SWI Prolog</a> and its <i>SeRQL</i>, <i>semweb</i> and <i>http</i> packages.
</p>
<p>
The code is split in two parts, and is available under a copyleft license - feel free to use it!
</p>
<p>
The first part is available <a href="http://moustaki.org/urispace/">here</a>. 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.
</p>

<p>
The second part is available <a href="http://moustaki.org/p2r/">here</a>. It is an equivalent of 
<a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/">D2R Server</a>, but for Prolog knowledge base.
It allows to translate dynamically RDF queries to Prolog queries - which may wrap XML parsing,
<!--(as it is done in
the Jamendo RDF dump), -->
calls to web services, databases, etc. 
</p>
<p>
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.
</p>

<h2><a name="stats" id="stats"></a>7. Statistics</h2>

<p>
<table border="1">
<tr><td>Triple count</td><td>1.1 million triples +</td></tr>
<tr><td>Distinct <a href="http://geonames.org/">Geonames</a> resources</td>
<td>289</td></tr>
<tr><td>Distinct <a href="http://musicbrainz.org/">Musicbrainz</a> resources</td><td>119</td></tr>
</table>
</p>

<!--<ul>
<li>Links to Musicbrainz - <a href="http://blog.dbtune.org/post/2007/06/11/Linking-open-data%3A-interlinking-the-Jamendo-and-the-Musicbrainz-datasets">DONE</a></li>

</ul> -->

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3327144-3");
pageTracker._initData();
pageTracker._trackPageview();
</script>


</body>

</html>