annotate bbc/playcount/playcount.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 d95267afa12a
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 - Playcount data linking BBC /programmes and Musicbrainz</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">Playcount data linking BBC /programmes and Musicbrainz</div>
Chris@0 20
Chris@0 21 <h2><a name="intro" id="intro"></a>1. Introduction</h2>
Chris@0 22
Chris@11 23 <p><b>Note:</b> This service is down following changes to the upstream API. This page is retained for historical interest.</p>
Chris@11 24
Chris@0 25 <p>
Chris@0 26 The <a href="http://www.bbc.co.uk/">BBC</a> has <a href="http://mashed-audioandmusic.dyndns.org/">made available</a> a dataset of playcounts of artists
Chris@0 27 per episode and brands in their <a href="http://www.bbc.co.uk/programmes">programmes catalogue</a>, for the <a href="http://mashed08.eventbrite.com/">Mashed 2008</a> event.
Chris@0 28 </p>
Chris@0 29
Chris@0 30 <p>
Chris@0 31 This service provides RDF links using these playcounts, to link the
Chris@0 32 <a href="http://dbtune.org/musicbrainz/">Musicbrainz linked data</a> and the
Chris@0 33 <a href="http://bbc-programmes.dyndns.org/">BBC programmes linked data</a>.
Chris@0 34 The earlier is designed with the <a href="http://purl.org/ontology/mo/">Music Ontology</a>, the latter is designed with the <a href="http://www.bbc.co.uk/ontologies/programmes/">BBC Programmes ontology</a>.
Chris@0 35 </p>
Chris@0 36
Chris@0 37 <p>
Chris@0 38 This effort is part of the <a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">Linking
Chris@0 39 Open Data on the Semantic Web</a> community project, hosted by the <a href="http://www.w3.org/2001/sw/sweo/">Semantic
Chris@0 40 Web Education and Outreach</a> interest group.
Chris@0 41 </p>
Chris@0 42
Chris@0 43
Chris@0 44
Chris@0 45 <h2><a name="use" id="use"></a>2. Using this service</h2>
Chris@0 46 <p>
Chris@0 47 A playcount URI in this service looks like:
Chris@0 48 <pre>
Chris@0 49 http://dbtune.org/bbc/playcount/&lt;id&gt;_&lt;k&gt;
Chris@0 50 </pre>
Chris@0 51 Where &lt;id&gt; is the id of the episode or the brand, as in
Chris@0 52 <a href="http://www.bbc.co.uk/programmes">/programmes BBC catalogue</a>,
Chris@0 53 and &lt;k&gt; is a number between 0 and the number of playcounts
Chris@0 54 for the episode or the brand.
Chris@0 55 </p>
Chris@0 56
Chris@0 57 <p>
Chris@0 58 For example, the following URI corresponds to the playcount of
Chris@0 59 <a href="http://dbtune.org/musicbrainz/resource/artist/070d193a-845c-479f-980e-bef15710653e">Prince</a> on
Chris@0 60 the <a href="http://bbc-programmes.dyndns.org/programmes/b006wk6f#brand">Fabio and Grooverider DJ show</a>.
Chris@0 61 <pre>
Chris@0 62 http://dbtune.org/bbc/playcount/b006wk6f_1
Chris@0 63 </pre>
Chris@0 64 </p>
Chris@0 65
Chris@0 66 <h2><a name="sparql" id="sparql"</a>3. Querying the dataset</a></h2>
Chris@0 67 <p>
Chris@0 68 We expose a <a href="http://dbtune.org/bbc/playcount/sparql/">SPARQL end-point</a>
Chris@0 69 for querying this data, and also a <a href="http://dbtune.org/bbc/playcount/store/">web interface</a> for this end-point.
Chris@0 70 The SPARQL end-point also holds aggregated information (around 2 million triples) from
Chris@0 71 Musicbrainz and the BBC Programmes service.
Chris@0 72 The end-point is available at:
Chris@0 73 <pre>http://dbtune.org:3062/sparql</pre>
Chris@0 74 </p>
Chris@0 75
Chris@0 76 <p>
Chris@0 77 An example query is the following one:
Chris@0 78 <pre>
Chris@0 79 SELECT ?brand ?title ?count
Chris@0 80 WHERE {
Chris@0 81 ?artist a mo:MusicArtist;
Chris@0 82 foaf:name "The Beatles".
Chris@0 83 ?pc pc:object ?artist;
Chris@0 84 pc:count ?count.
Chris@0 85 ?brand a po:Brand;
Chris@0 86 pc:playcount ?pc;
Chris@0 87 dc:title ?title
Chris@0 88 FILTER (?count&gt;10)}
Chris@0 89 </pre>
Chris@0 90 This will return every BBC brands in which The Beatles were featured at least ten times.
Chris@0 91 </p>
Chris@0 92
Chris@0 93 <h2><a name="onto" id="onto"></a>4. Playcount ontology</h2>
Chris@0 94 <p>
Chris@0 95 For the purpose of representing playcounts, we designed a really
Chris@0 96 small <a href="http://purl.org/ontology/playcount/">playcount ontology</a>.
Chris@0 97 This ontology defines one playcount concept, and three properties
Chris@0 98 to link it to the media in which we are counting something, the actual thing,
Chris@0 99 and actual playcount. This ontology can be used as in the following
Chris@0 100 example:
Chris@0 101 </p>
Chris@0 102 <pre>
Chris@0 103 :radioepisode pc:playcount [a pc:Playcount; pc:count 12; pc:object :track].
Chris@0 104 </pre>
Chris@0 105
Chris@0 106 <h2><a name="code" id="code"></a>5. Code</h2>
Chris@0 107 <p>
Chris@0 108 As usual, <a href="http://motools.svn.sourceforge.net/viewvc/motools/dbtune/playcount">all the code running this service</a>
Chris@0 109 is open source and based
Chris@0 110 on <a href="http://www.swi-prolog.org">SWI-Prolog</a>
Chris@0 111 </p>
Chris@0 112
Chris@0 113 <h2><a name="stats" id="stats"></a>6. Statistics</h2>
Chris@0 114 <p>
Chris@0 115 <table border="1">
Chris@0 116 <tr><td>Triple count</td><td>1,954,786</td></tr>
Chris@0 117 <tr><td>Distinct <a href="http://bbc-programmes.dyndns.org/">BBC Programmes</a>
Chris@0 118 resources</td><td>6,863</td></tr>
Chris@0 119 <tr><td>Distinct <a href="http://dbtune.org/musicbrainz/">Musicbrainz</a>
Chris@0 120 resources</td><td>7,055</td></tr>
Chris@0 121 </table>
Chris@0 122 </p>
Chris@0 123
Chris@0 124
Chris@0 125 <script type="text/javascript">
Chris@0 126 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
Chris@0 127 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
Chris@0 128 </script>
Chris@0 129 <script type="text/javascript">
Chris@0 130 var pageTracker = _gat._getTracker("UA-3327144-3");
Chris@0 131 pageTracker._initData();
Chris@0 132 pageTracker._trackPageview();
Chris@0 133 </script>
Chris@0 134
Chris@0 135
Chris@0 136 </body>
Chris@0 137
Chris@0 138 </html>
Chris@0 139