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: <http://www.geonames.org/ontology#>
|
Chris@0
|
124 PREFIX wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#>
|
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 <http://dbtune.org/jamendo/tag/punk>.
|
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
|