annotate 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
rev   line source
Chris@0 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Chris@0 2
Chris@0 3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Chris@0 4
Chris@0 5 <head>
Chris@0 6 <title>DBTune - Jamendo RDF dump</title>
Chris@0 7
Chris@0 8 <style type="text/css" media="all">
Chris@0 9 @import url(style.css);
Chris@0 10 </style>
Chris@0 11
Chris@0 12 </head>
Chris@0 13
Chris@0 14 <body>
Chris@0 15
Chris@0 16
Chris@0 17 <a href="http://dbtune.org/"><h1 style="font-size: 250%;">DBTune.org</h1></a>
Chris@0 18
Chris@0 19 <div id="tagline">Jamendo RDF server</div>
Chris@0 20
Chris@0 21 <h2><a name="intro" id="intro"></a>1. Introduction</h2>
Chris@0 22
Chris@0 23 <p>
Chris@0 24
Chris@0 25 <a href="http://jamendo.com/">Jamendo</a> is a large repository of Creative Commons licensed music, based in France.
Chris@0 26 This server aims at publishing this dataset
Chris@0 27 as <a href="http://linkeddata.org">Linked Data</a>: publishing a set of URIs
Chris@0 28 with an <a href="http://www.w3.org/RDF/">RDF</a> representation holding
Chris@0 29 links towards external datasets (so far, <a href="http://geonames.org/">Geonames</a> and <a href="http://musicbrainz.org/">Musicbrainz</a>).
Chris@0 30 The corresponding RDF is also linked to <a href="http://musicontology.com/">Music Ontology</a> terms.
Chris@0 31 </p>
Chris@0 32
Chris@0 33 <p>
Chris@0 34 This effort is part of the <a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">Linking
Chris@0 35 Open Data on the Semantic Web</a> community project, hosted by the <a href="http://www.w3.org/2001/sw/sweo/">Semantic
Chris@0 36 Web Education and Outreach</a> interest group.
Chris@0 37 </p>
Chris@0 38
Chris@0 39
Chris@0 40
Chris@0 41 <h2><a name="browse" id="browse"></a>2. Browsing the dataset</h2>
Chris@0 42 <p>
Chris@0 43 All resource identifiers defined by this RDF dump are dereferencable. <!--, and support content negotiation.
Chris@0 44 Using the <i>Accept: application/rdf+xml</i> header field, a RDF/XML representation of the resource is sent back.
Chris@0 45 Otherwise, a HTML representation, done using <a href="http://www.w3.org/2005/ajar/tab">the Tabulator Data browser</a>,
Chris@0 46 is sent back.-->
Chris@0 47 </p>
Chris@0 48 <p>
Chris@0 49 Here are some entry points to the dataset:
Chris@0 50 </p>
Chris@0 51
Chris@0 52 <ul>
Chris@0 53
Chris@0 54 <li><a href="http://dbtune.org/jamendo/artist/1005">Vincent J.</a> (artist),
Chris@0 55 in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/artist/1005">OpenLink data explorer</a>,
Chris@0 56 <a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/artist/1005">Zitgist data viewer</a>,
Chris@0 57 <a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/artist/1005">Marbles</a>,
Chris@0 58 <a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/artist/1005">DISCO</a>,
Chris@0 59 <a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/artist/1005">Tabulator</a>
Chris@0 60 </li>
Chris@0 61 <li><a href="http://dbtune.org/jamendo/artist/1023">Carter Hotel</a> (artist)
Chris@0 62 in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/artist/1023">OpenLink data explorer</a>,
Chris@0 63 <a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/artist/1023">Zitgist data viewer</a>,
Chris@0 64 <a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/artist/1023">Marbles</a>,
Chris@0 65 <a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/artist/1023">DISCO</a>,
Chris@0 66 <a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/artist/1023">Tabulator</a>
Chris@0 67 </li>
Chris@0 68 <li><a href="http://dbtune.org/jamendo/record/2931">First Dub</a> (album)
Chris@0 69 in <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http://dbtune.org/jamendo/record/2931">OpenLink data explorer</a>,
Chris@0 70 <a href="http://dataviewer.zitgist.com/?uri=http://dbtune.org/jamendo/record/2931">Zitgist data viewer</a>,
Chris@0 71 <a href="http://beckr.org/marbles?uri=http://dbtune.org/jamendo/record/2931">Marbles</a>,
Chris@0 72 <a href="http://www4.wiwiss.fu-berlin.de/rdf_browser/?browse_uri=http://dbtune.org/jamendo/record/2931">DISCO</a>,
Chris@0 73 <a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/record/2931">Tabulator</a>
Chris@0 74 </li>
Chris@0 75 </ul>
Chris@0 76
Chris@0 77 <p>
Chris@0 78 The service also exposes some informational RDF documents.
Chris@0 79 Such documents are:
Chris@0 80 </p>
Chris@0 81
Chris@0 82 <ul>
Chris@0 83
Chris@0 84 <li><a href="http://dbtune.org/jamendo/all/artist">All artists</a></li>
Chris@0 85 <li><a href="http://dbtune.org/jamendo/all/track">All tracks</a></li>
Chris@0 86 <li><a href="http://dbtune.org/jamendo/all/record">All records</a></li>
Chris@0 87 <li><a href="http://dbtune.org/jamendo/all/performance">All performances</a></li>
Chris@0 88 <li><a href="http://dbtune.org/jamendo/all/signal">All signals</a></li>
Chris@0 89 <li><a href="http://dbtune.org/jamendo/all/timeline">All timelines</a></li>
Chris@0 90
Chris@0 91 </ul>
Chris@0 92
Chris@0 93 <!--<p>
Chris@0 94 To test them using a Semantic Web browser, load one of them into the Tabulator (eg.
Chris@0 95 <a href="http://dbtune.org/jamendo/all/artist">http://dbtune.org/jamendo/all/artist</a>)
Chris@0 96 and then look for <a href="http://purl.org/ontology/mo/MusicArtist">http://purl.org/ontology/mo/MusicArtist</a>. You will then see
Chris@0 97 the list of all Jamendo MusicArtist instances.
Chris@0 98 </p>-->
Chris@0 99
Chris@0 100 <h2><a name="query" id="query"></a>3. Links</h2>
Chris@0 101 <p>
Chris@0 102 This dataset is interlinked with the <a href="http://geonames.org/">Geonames</a>
Chris@0 103 and the <a href="http://musicbrainz.org/">Musicbrainz</a> datasets.
Chris@0 104 </p>
Chris@0 105 <p>
Chris@0 106 For an example of a resource which description holds one <i>owl:sameAs</i> link to
Chris@0 107 a Musicbrainz resource, and one <i>foaf:based_near</i> link to a Geonames resource, try
Chris@0 108 <a href="http://dbtune.org/jamendo/artist/5">this one (a French band called <i>Both</i>)</a>.
Chris@0 109 The <a href="http://dig.csail.mit.edu/2005/ajar/ajaw/tab?uri=http://dbtune.org/jamendo/artist/5">same resource,
Chris@0 110 displayed in the Tabulator</a>.
Chris@0 111 </p>
Chris@0 112
Chris@0 113 <h2><a name="query" id="query"></a>4. Querying the dataset</h2>
Chris@0 114 <p>
Chris@0 115 The service also exposes a <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a> end-point, available
Chris@0 116 at <a href="http://dbtune.org/jamendo/sparql/">http://dbtune.org/jamendo/sparql/</a>. There is also a small
Chris@0 117 web interface available at <a href="http://dbtune.org/jamendo/store/">http://dbtune.org/jamendo/store/</a>.
Chris@0 118 </p>
Chris@0 119
Chris@0 120 <p>
Chris@0 121 For example, the end-point can answer the following query:
Chris@0 122 <pre>
Chris@0 123 PREFIX geo: &lt;http://www.geonames.org/ontology#&gt;
Chris@0 124 PREFIX wgs: &lt;http://www.w3.org/2003/01/geo/wgs84_pos#&gt;
Chris@0 125 SELECT DISTINCT ?an ?lat ?long ?name ?population
Chris@0 126 WHERE
Chris@0 127 { ?a
Chris@0 128 a mo:MusicArtist;
Chris@0 129 foaf:based_near ?place;
Chris@0 130 foaf:name ?an;
Chris@0 131 foaf:made ?alb.
Chris@0 132 ?alb tags:taggedWithTag &lt;http://dbtune.org/jamendo/tag/punk&gt;.
Chris@0 133 ?place
Chris@0 134 geo:name ?name;
Chris@0 135 geo:population ?population;
Chris@0 136 wgs:lat ?lat;
Chris@0 137 wgs:long ?long }
Chris@0 138 ORDER BY ?population
Chris@0 139 </pre>
Chris@0 140 This selects artists within Jamendo who made at least one album
Chris@0 141 tagged as `punk' by a Jamendo user, sorted by the number of inhabitants of the places they are based near.
Chris@0 142 </p>
Chris@0 143
Chris@0 144
Chris@0 145
Chris@0 146 <h2><a name="dump" id="dump"></a>5. RDF dump</h2>
Chris@0 147 <p>
Chris@0 148 The RDF dump is <a href="http://moustaki.org/resources/jamendo-rdf.tar.gz">available for download</a>.
Chris@0 149 The package holds the raw Jamendo data converted to RDF (available under the same license than the raw Jamendo
Chris@0 150 data itself), as well as the links towards Geonames and the links towards Musicbrainz. These links are available
Chris@0 151 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
Chris@0 152 change, ask me).
Chris@0 153 </p>
Chris@0 154
Chris@0 155 <h2><a name="tools" id="tools"></a>6. Tools</h2>
Chris@0 156 <p>
Chris@0 157 The code needed to make this service run takes less than 900 lines of code! This, I guess, demonstrates the
Chris@0 158 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.
Chris@0 159 </p>
Chris@0 160 <p>
Chris@0 161 The code is split in two parts, and is available under a copyleft license - feel free to use it!
Chris@0 162 </p>
Chris@0 163 <p>
Chris@0 164 The first part is available <a href="http://moustaki.org/urispace/">here</a>. It is a small HTTP server implementing content
Chris@0 165 negotiation. The behavior of the server is specified by a declarative mapping from resource identifiers to the location of
Chris@0 166 their representation.
Chris@0 167 </p>
Chris@0 168
Chris@0 169 <p>
Chris@0 170 The second part is available <a href="http://moustaki.org/p2r/">here</a>. It is an equivalent of
Chris@0 171 <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/d2r-server/">D2R Server</a>, but for Prolog knowledge base.
Chris@0 172 It allows to translate dynamically RDF queries to Prolog queries - which may wrap XML parsing,
Chris@0 173 <!--(as it is done in
Chris@0 174 the Jamendo RDF dump), -->
Chris@0 175 calls to web services, databases, etc.
Chris@0 176 </p>
Chris@0 177 <p>
Chris@0 178 The behavior of this component is also specified through a declarative mapping (the package ships with some mapping
Chris@0 179 examples) between prolog predicates and a set of RDF predicates.
Chris@0 180 </p>
Chris@0 181
Chris@0 182 <h2><a name="stats" id="stats"></a>7. Statistics</h2>
Chris@0 183
Chris@0 184 <p>
Chris@0 185 <table border="1">
Chris@0 186 <tr><td>Triple count</td><td>1.1 million triples +</td></tr>
Chris@0 187 <tr><td>Distinct <a href="http://geonames.org/">Geonames</a> resources</td>
Chris@0 188 <td>289</td></tr>
Chris@0 189 <tr><td>Distinct <a href="http://musicbrainz.org/">Musicbrainz</a> resources</td><td>119</td></tr>
Chris@0 190 </table>
Chris@0 191 </p>
Chris@0 192
Chris@0 193 <!--<ul>
Chris@0 194 <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>
Chris@0 195
Chris@0 196 </ul> -->
Chris@0 197
Chris@0 198 <script type="text/javascript">
Chris@0 199 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
Chris@0 200 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
Chris@0 201 </script>
Chris@0 202 <script type="text/javascript">
Chris@0 203 var pageTracker = _gat._getTracker("UA-3327144-3");
Chris@0 204 pageTracker._initData();
Chris@0 205 pageTracker._trackPageview();
Chris@0 206 </script>
Chris@0 207
Chris@0 208
Chris@0 209 </body>
Chris@0 210
Chris@0 211 </html>
Chris@0 212