<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.dbtune.org/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>DBTune blog</title>
  <link>http://blog.dbtune.org/</link>
  <atom:link href="http://blog.dbtune.org:82/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Creating a music-related web of data. These are my views and not those of the BBC.</description>
  <language>en</language>
  <pubDate>Thu, 02 Feb 2012 13:37:11 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>4Store stuff</title>
    <link>http://blog.dbtune.org/post/2009/08/14/4Store-stuff</link>
    <guid isPermaLink="false">urn:md5:19d320f950e8ab9486ca6f849a03ebd0</guid>
    <pubDate>Fri, 19 Aug 2011 10:29:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>4store</category><category>code</category>    
    <description>    &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; The repository below is not maintained anymore, as
official packages have been pushed into Debian. They are not yet available for
Ubuntu 11.04 though. In order install 4store on Natty you'd have to install the
following packages from the &lt;a href=&quot;http://packages.ubuntu.com/oneiric/&quot;&gt;Oneiric repository&lt;/a&gt;, in order:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;libyajl1&lt;/li&gt;
&lt;li&gt;libgmp10&lt;/li&gt;
&lt;li&gt;libraptor2&lt;/li&gt;
&lt;li&gt;librasqal3&lt;/li&gt;
&lt;li&gt;lib4store0&lt;/li&gt;
&lt;li&gt;4store&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And you should have a running 4store (1.1.3).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Old post, for reference:&lt;/strong&gt; I've been playing a lot with
Garlik's &lt;a href=&quot;http://4store.org&quot;&gt;4store&lt;/a&gt; recently, and I have been
building a few things around it. I just finished building packages for &lt;a href=&quot;http://ubuntu.com/&quot;&gt;Ubuntu Jaunty&lt;/a&gt;, which you can get by adding the
following lines in your &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;
deb http://moustaki.org/apt jaunty main
deb-src http://moustaki.org/apt jaunty main
&lt;/pre&gt;
&lt;p&gt;And then, an &lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get install 4store&lt;/code&gt;
should do the trick. The packages are available for i386 and amd64. It is also
one of my first packages, so feedback is welcomed (I may have gotten it
completely wrong). After being installed, you can &lt;a href=&quot;http://4store.org/trac/wiki/CreateDatabase&quot;&gt;create a database&lt;/a&gt; and &lt;a href=&quot;http://4store.org/trac/wiki/SparqlServer&quot;&gt;start a SPARQL server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I've also been writing two client libraries for 4store, all available on
&lt;a href=&quot;http://github.com/moustaki&quot;&gt;Github&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/moustaki/4store-php/tree/master&quot;&gt;4store-php&lt;/a&gt;,
a PHP library to interact with 4store over HTTP (so not exactly similar to
&lt;a href=&quot;http://apassant.net/blog/2009/07/27/simple-php-library-4store&quot;&gt;Alexandre's PHP
library&lt;/a&gt;, which interacts with 4store through the command-line tools);&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://github.com/moustaki/4store-ruby/tree&quot;&gt;4store-ruby&lt;/a&gt;, a
Ruby library to interact with 4store over HTTP or HTTPS.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/08/14/4Store-stuff#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/08/14/4Store-stuff#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/426702</wfw:commentRss>
      </item>
    
  <item>
    <title>Using RDFa for testing templates</title>
    <link>http://blog.dbtune.org/post/2011/06/28/Using-RDFa-for-testing-templates</link>
    <guid isPermaLink="false">urn:md5:c5cba70158816bbd1676e6cd5e75e525</guid>
    <pubDate>Tue, 28 Jun 2011 11:52:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I promised a bunch of people from the BBC that I would write about this, so
here it is! This is my first Software Engineering-related post, bear with me
:)&lt;/p&gt;
&lt;p&gt;We recently released a new iteration of &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;/programmes&lt;/a&gt;, built on top of a completely
new technology stack. As part of that move, we decided we wanted to review our
template testing strategy. In our old application, the process for a new
feature would basically be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Software Engineer writes models, controllers and data views;&lt;/li&gt;
&lt;li&gt;Web Developer writes XHTML templates;&lt;/li&gt;
&lt;li&gt;Software Engineer writes controller tests, which would actually test the
routes, the controllers and the templates (such controller 'unit tests' are
actually fairly standard across MVC frameworks, for some reason - e.g. in
&lt;a href=&quot;http://akrabat.com/zend-framework/unit-testing-controller-actions-with-zend_test_phpunit_controllertestcase/&quot;&gt;
Zend&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Those controller tests were based on CSS selectors or XPaths. Therefore, any
time a small front-end tweak needed to be done, the controller tests would
break, which is very annoying for everyone.&lt;/p&gt;
&lt;p&gt;We had two problems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our controller 'unit tests' were not really unit tests - front-end
developers shouldn't have to understand the whole routing, controllers, models
for making a front end change.&lt;/li&gt;
&lt;li&gt;Using CSS selectors or XPaths for template tests is brittle. We don't want
our tests to break every time we change the name of a CSS class.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In order to solve the first problem, we divided our controller tests in
route tests (here is a route, assert that the application forwards it to the
right controller/action with the right parameters), real unit controller tests
(mock the models, call an action with some request parameters, check that the
right data is sent to the view), and template tests.&lt;/p&gt;
&lt;p&gt;In order to solve our second problem, we made those template tests rely on
&lt;a href=&quot;http://www.w3.org/TR/rdfa-syntax/&quot;&gt;RDFa markup&lt;/a&gt; embedded within the
page. In order to test a template, we create some mock data, generate the
template using this data, and check the right RDF triples can be extracted from
the resulting page. It ensures that tests are actually based on data -
front-end changes won't have an impact on them. We just want to make sure we
present the right data to the user. As the tests are not relying on other
application code, it also means that someone writing the templates can maintain
his own test suite.&lt;/p&gt;
&lt;p&gt;A simple example of one of these tests is the following one:&lt;/p&gt;
&lt;pre&gt;
    public function testLetterSearch()
    {
        $this-&amp;gt;setDefaultComponent('/components/atoz/letters');
        $data = (object) array(
            &amp;quot;by&amp;quot;      =&amp;gt; &amp;quot;by&amp;quot;,
            &amp;quot;search&amp;quot;  =&amp;gt; &amp;quot;b&amp;quot;,
            &amp;quot;slice&amp;quot; =&amp;gt; &amp;quot;player&amp;quot;,
            &amp;quot;letters&amp;quot; =&amp;gt; array('@', 'a', 'b', 'c'),
        );

        $this-&amp;gt;assertTriples($data, array(
            array('/programmes/a-z/by/b', 'rdfs:seeAlso', '/programmes/a-z/by/%40/player'),
            array('/programmes/a-z/by/b', 'rdfs:seeAlso', '/programmes/a-z/by/a/player'),
            array('/programmes/a-z/by/b', 'rdfs:seeAlso', '/programmes/a-z/by/c/player'),
        ));
    }
&lt;/pre&gt;
&lt;p&gt;which can be read as &lt;q&gt;if you are displaying a list of letters on an A-Z
page and you have selected one, you shouldn't link to that one&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;Another very nice side-effect is that developers have a motivation to put
lots of RDFa inside our pages! Compare the 168 triples extracted from a
&lt;a href=&quot;http://www.bbc.co.uk/programmes/b00pqcg3&quot;&gt;new /programmes page&lt;/a&gt;,
including full tracklist information, programme metadata and broadcasts, to the
18 triples extracted from an &lt;a href=&quot;http://www.bbc.co.uk/programmes/b01246hf&quot;&gt;old one&lt;/a&gt;. And as we add new
components to this page, more RDFa will become available.&lt;/p&gt;
&lt;p&gt;Also, the speed at which our developers picked up RDFa (1.0, not even 1.1,
which is apparently simpler) defeats the eternal argument about RDFa being too
complicated, but that's just my opinion :) The &lt;a href=&quot;http://linkeddata.deri.ie/services/tutorials/rdfa&quot;&gt;RDFa cheat sheet&lt;/a&gt; has
proved immensely helpful.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2011/06/28/Using-RDFa-for-testing-templates#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2011/06/28/Using-RDFa-for-testing-templates#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/616819</wfw:commentRss>
      </item>
    
  <item>
    <title>Music and the Semantic Web workshop</title>
    <link>http://blog.dbtune.org/post/2011/05/17/Music-and-the-Semantic-Web-workshop</link>
    <guid isPermaLink="false">urn:md5:76573f89c34916b65236a475b76b1f6d</guid>
    <pubDate>Thu, 19 May 2011 17:30:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Quite a big week for Semantic Web and music last week in London. On
Thursday, there was the &lt;a href=&quot;http://musicnet.mspace.fm/blog/2011/02/11/music-linked-data-workshop/&quot;&gt;MusicNet&lt;/a&gt;
workshop, with (among others) a talk from the BBC, given by &lt;a href=&quot;http://www.aelius.com/njh/&quot;&gt;Nick Humfrey&lt;/a&gt;. Sadly, I could not attend the
workshop due to other BBC duties.&lt;/p&gt;
&lt;p&gt;On the Friday, &lt;a href=&quot;http://www.oerc.ox.ac.uk/people/dder&quot;&gt;David De
Roure&lt;/a&gt; and I organised a &lt;a href=&quot;http://www.aes.org/events/130/workshops/?ID=2639&quot;&gt;Music and the Semantic Web
workshop&lt;/a&gt; at the AES, which David already &lt;a href=&quot;http://blogs.nature.com/eresearch/2011/05/15/music-and-linked-data-overture&quot;&gt;blogged
about&lt;/a&gt;. We had four panelists:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.soton.ac.uk/music/staff/Personal/DBretherton.html&quot;&gt;David
Bretherton&lt;/a&gt;, from Southampton University, representing the &lt;a href=&quot;http://www.ecs.soton.ac.uk/research/projects/768&quot;&gt;MusicNet&lt;/a&gt; project;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://greggkellogg.net/&quot;&gt;Gregg Kellogg&lt;/a&gt;, representing the
&lt;a href=&quot;http://connectedmediaexperience.org/&quot;&gt;Connected Media
Experience&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Evan Stein, from &lt;a href=&quot;http://decibel.net/blog/&quot;&gt;Decibel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://apassant.net/&quot;&gt;Alexandre Passant&lt;/a&gt;, from &lt;a href=&quot;http://seevl.net&quot;&gt;Seevl&lt;/a&gt; (which I am also involved in - more details on
this blog soon!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3326/5737390988_73090885a2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We started with four presentations from each of the panelists. David started
by presenting &lt;a href=&quot;http://musicnet.mspace.fm/&quot;&gt;MusicNet&lt;/a&gt;, aiming at
creating canonical Web identifiers for classical music composers. He
demonstrated a new tool for merging identifiers for music composers - finding
common properties between groups of composers, and providing an interface to
review those groups.&lt;/p&gt;
&lt;p&gt;Alexandre then presented &lt;a href=&quot;http://seevl.net&quot;&gt;Seevl&lt;/a&gt;. He explained
how it worked, aggregating and consolidating structured data about music
artists from a range of different places, and generating recommendations using
this data, as well as explanations of these recommendations (those two artists
played together, they had the same producer for their first album, etc.). I
wrote quite a lot about this kind of things &lt;a href=&quot;http://blog.dbtune.org/post/2009/10/27/Music-recommendation-and-Linked-Data&quot;&gt;on
this blog&lt;/a&gt; - it's really nice to finally see it taking shape!&lt;/p&gt;
&lt;p&gt;Gregg presented his experience within the &lt;a href=&quot;http://connectedmediaexperience.org/&quot;&gt;Connected Media Experience&lt;/a&gt; (CME)
project. His presentation was supported by a &lt;a href=&quot;http://greggkellogg.net/2011/05/05/cme-and-the-semantic-web&quot;&gt;position
paper&lt;/a&gt;, which is extremely interesting. CME (a large consortium of key music
industry players) worked for a couple of years on a RDF/Music Ontology format
for online releases. Sadly, they recently abandoned this format for simple
HTML5+CSS - structured data about those releases is not a priority anymore.
Gregg gave us insights on what went wrong, and what were the lessons to be
learned by both the Semantic Web community and the Music Industry.&lt;/p&gt;
&lt;p&gt;Evan then presented &lt;a href=&quot;http://decibel.net/blog/&quot;&gt;Decibel&lt;/a&gt;, giving
us very interesting insights about music metadata, and a demonstration of their
service. It was interesting to see semantic technologies used in a completely
different model. The richness of the data they hold is truly amazing (Evan
demoed their internationalisation feature as well - all their data is available
in a variety of languages), but sadly not available under an open license.&lt;/p&gt;
&lt;p&gt;After that, we had a number of questions from David and I, as well as from
the audience, about ease of editing and owning of music metadata (who should
own it? third parties? artists? record labels? who should host the canonical
URI for an artist?), about relationships of Semantic Web standards with
industry standards like ISRCs, ISNIs, MPEG etc.&lt;/p&gt;
&lt;p&gt;Overall, a very interesting workshop - I hope we can do it again next
year!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2011/05/17/Music-and-the-Semantic-Web-workshop#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2011/05/17/Music-and-the-Semantic-Web-workshop#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/608255</wfw:commentRss>
      </item>
    
  <item>
    <title>Named Graphs and quad stores</title>
    <link>http://blog.dbtune.org/post/2010/12/21/Named-Graphs-and-implementations</link>
    <guid isPermaLink="false">urn:md5:00889a7ed3de01ab4d455349bd5e4273</guid>
    <pubDate>Tue, 21 Dec 2010 10:53:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I was recently looking again at the &lt;a href=&quot;http://www.ra.ethz.ch/CDstore/www2005/docs/p613.pdf&quot;&gt;Named Graphs&lt;/a&gt; paper,
and was wondering why the consensus for implementing Named Graphs support in
triple stores was to store quads.&lt;/p&gt;
&lt;p&gt;Named Graphs are defined as follows. We consider &lt;strong&gt;U&lt;/strong&gt; as being
the set of all web identifiers, &lt;strong&gt;L&lt;/strong&gt; as being the set of all
literals and &lt;strong&gt;B&lt;/strong&gt; the set of all blank nodes. &lt;strong&gt;U&lt;/strong&gt;
, &lt;strong&gt;L&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt; are pairwise disjoint. Let
&lt;strong&gt;N&lt;/strong&gt; = &lt;strong&gt;U&lt;/strong&gt; ∪&lt;strong&gt;L&lt;/strong&gt;∪&lt;strong&gt;B&lt;/strong&gt;,
then the set &lt;strong&gt;T&lt;/strong&gt; = &lt;strong&gt;N&lt;/strong&gt; × &lt;strong&gt;U&lt;/strong&gt; ×
&lt;strong&gt;N&lt;/strong&gt; is the set of all RDF triples. The set of RDF graphs
&lt;strong&gt;G&lt;/strong&gt; is the power set of &lt;strong&gt;T&lt;/strong&gt;, and a named graph is
a pair &lt;strong&gt;ng&lt;/strong&gt; = (&lt;strong&gt;u&lt;/strong&gt;, &lt;strong&gt;g&lt;/strong&gt;), where
&lt;strong&gt;u&lt;/strong&gt; ∈ &lt;strong&gt;U&lt;/strong&gt; and &lt;strong&gt;g&lt;/strong&gt; ∈
&lt;strong&gt;G&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As mentioned in one my &lt;a href=&quot;http://blog.dbtune.org/post/2010/07/13/First-BBC-microsite-powered-by-a-triple-store&quot;&gt;
previous post&lt;/a&gt;, one thing that I am really keen on is the idea of having
triples that belong to multiple graphs. This situation is already happening
&lt;q&gt;in the wild&lt;/q&gt; a fair bit. If you look at a &lt;a href=&quot;http://www.bbc.co.uk/radio4/programmes/a-z/by/g/player.rdf&quot;&gt;/programmes
aggregation feed&lt;/a&gt; (all available Radio 4 programmes starting with &lt;q&gt;g&lt;/q&gt;),
it mentions multiple programmes. All of the statements about each of these
programmes also belong to the corresponding programme graph (e.g. &lt;a href=&quot;http://www.bbc.co.uk/programmes/b006qp2f.rdf&quot;&gt;Gardener's Question&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Nothing in the above definition forbids that from happening - each graph and
sub-graph can be named. ( (a,b,c), (d,f,g) ) can be named x and ( (a,b,c) ) can
be named y.&lt;/p&gt;
&lt;p&gt;Now, most triple stores implement Named Graphs by, in fact, storing quads.
They store tuples of the form (subject, predicate, object, graph). Which means
that when you try to store the two graphs above, they will in fact store
(a,b,c,x), (d,f,g,x) and (a,b,c,y) --- the triples will be replicated in each
graph they are mentioned in. For the above /programmes example, it is terribly
inefficient. If you crawl /programmes, you will end up hitting lots of such
aggregation URLs, leading in a tremendous amount of data duplication - lots of
triples will be repeated across graphs. Perhaps it would be better to store
something like (a,b,c,(x,y)) and (d,f,g,(x))?&lt;/p&gt;
&lt;p&gt;I would be curious to know if anyone else is hitting this issue. I can think
of multiple use-cases for triples belonging to multiple graphs: access control,
versioning, attribution at different granularities...&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/12/21/Named-Graphs-and-implementations#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/12/21/Named-Graphs-and-implementations#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/572632</wfw:commentRss>
      </item>
    
  <item>
    <title>Linking Enterprise Data</title>
    <link>http://blog.dbtune.org/post/2010/10/20/Linking-Enterprise-Data</link>
    <guid isPermaLink="false">urn:md5:9a9a4a9797986aefe0c95ff73ba04b1b</guid>
    <pubDate>Wed, 20 Oct 2010 10:23:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Just a quick note to mention that the &lt;a href=&quot;http://3roundstones.com/linking-enterprise-data/&quot;&gt;Linking Enterprise Data&lt;/a&gt;
book is now available, for free, online. Along with &lt;a href=&quot;http://derivadow.com&quot;&gt;Tom Scott&lt;/a&gt;, &lt;a href=&quot;http://blockslabpillar.com/&quot;&gt;Silver Oliver&lt;/a&gt;, &lt;a href=&quot;http://metade.org/&quot;&gt;Patrick Sinclair&lt;/a&gt; and &lt;a href=&quot;http://twitter.com/fantasticlife&quot;&gt;Michael Smethurst&lt;/a&gt;, we wrote a chapter on
the use of Semantic Web technologies at the BBC, which expands on the &lt;a href=&quot;http://www.w3.org/2001/sw/sweo/public/UseCases/BBC/&quot;&gt;W3C Case Study&lt;/a&gt; we
wrote at the beginning of the year. If you're interested in how Semantic Web
technologies were used to build &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC
Programmes&lt;/a&gt;, &lt;a href=&quot;http://www.bbc.co.uk/music&quot;&gt;BBC Music&lt;/a&gt; and &lt;a href=&quot;http://www.bbc.co.uk/wildlifefinder&quot;&gt;Wildlife Finder&lt;/a&gt;, make sure you read
it (I also noticed it was &lt;a href=&quot;http://www.amazon.co.uk/Linking-Enterprise-Data-David-Wood/dp/1441976647/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1287566579&amp;amp;sr=8-1&quot;&gt;
available for pre-order&lt;/a&gt; on Amazon).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://3roundstones.com/led_book/images/led_cover.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/10/20/Linking-Enterprise-Data#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/10/20/Linking-Enterprise-Data#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/555810</wfw:commentRss>
      </item>
    
  <item>
    <title>Geocaching for music wins the 7digital prize at London Music Hack Day!</title>
    <link>http://blog.dbtune.org/post/2010/09/07/Geocaching-for-music-wins-the-7digital-prize-at-London-Music-Hack-Day%21</link>
    <guid isPermaLink="false">urn:md5:f33c95a29657e1276facab861ff468eb</guid>
    <pubDate>Tue, 07 Sep 2010 09:34:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;We had a really good time last week-end at the &lt;a href=&quot;http://london.musichackday.org/2010/&quot;&gt;London Music Hack Day&lt;/a&gt;. If you
haven't seen the &lt;a href=&quot;http://wiki.musichackday.org/index.php?title=Hacks&quot;&gt;list of hacks&lt;/a&gt; that
were done over the week-end yet, go take a look! I found &lt;a href=&quot;http://wiki.musichackday.org/index.php?title=Speakatron&quot;&gt;Speakatron&lt;/a&gt;,
&lt;a href=&quot;http://wiki.musichackday.org/index.php?title=BumbleTab&quot;&gt;BumbleTab&lt;/a&gt;
and &lt;a href=&quot;http://wiki.musichackday.org/index.php?title=EarthDestroyers&quot;&gt;Earth
Destroyers&lt;/a&gt; to be particularly funny :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.andrewbruce.net/music-piracy-geocaching-wins-prize-at-music-hack-day&quot;&gt;
Andrew&lt;/a&gt;, &lt;a href=&quot;http://blog.chrislowis.co.uk/&quot;&gt;Chris&lt;/a&gt; and myself (as
well as our beloved video producer &lt;a href=&quot;http://metade.org/&quot;&gt;Patrick&lt;/a&gt;)
created an Android application to &lt;a href=&quot;http://wiki.musichackday.org/index.php?title=Piracy&quot;&gt;create and find 'musical
treasures'&lt;/a&gt;. Think &lt;a href=&quot;http://www.geocaching.com/&quot;&gt;geocaching&lt;/a&gt; for
music. You wander around and can &lt;q&gt;drop&lt;/q&gt; tracks from your personal music
collection, and you see what tracks people have dropped nearby you. If you're
close enough, you can fetch and play the tracks. And we won the 7digital
prize!&lt;/p&gt;
&lt;p&gt;Here is a small &lt;a href=&quot;http://vimeo.com/user659062&quot;&gt;video
demonstration&lt;/a&gt;, and below are some screenshots:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4110/4960159834_0e82d7899d.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4079/4960159846_c24ea3d80a.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;On the data side, we use the recently linked &lt;a href=&quot;http://www.7digital.com/&quot;&gt;7digital&lt;/a&gt; and &lt;a href=&quot;http://developer.echonest.com/&quot;&gt;Echonest&lt;/a&gt; APIs. The &lt;a href=&quot;http://github.com/camelpunch/piracy&quot;&gt;back-end&lt;/a&gt; was written using Rails
(check out the &lt;a href=&quot;http://github.com/camelpunch/piracy/tree/master/features/&quot;&gt;Cucumber
tests&lt;/a&gt;!), and the &lt;a href=&quot;http://github.com/moustaki/TrackDropper&quot;&gt;Android
application&lt;/a&gt; using the Android SDK. A list of clues for recently dropped
tracks appear on the &lt;a href=&quot;http://piracy.heroku.com/&quot;&gt;main website&lt;/a&gt; and
on &lt;a href=&quot;http://twitter.com/piratehack&quot;&gt;a twitter feed&lt;/a&gt;. And of course,
here is the &lt;a href=&quot;http://moustaki.org/resources/TrackDropper.apk&quot;&gt;APK for
the Android application&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/09/07/Geocaching-for-music-wins-the-7digital-prize-at-London-Music-Hack-Day%21#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/09/07/Geocaching-for-music-wins-the-7digital-prize-at-London-Music-Hack-Day%21#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/544375</wfw:commentRss>
      </item>
    
  <item>
    <title>First BBC microsite powered by a triple-store</title>
    <link>http://blog.dbtune.org/post/2010/07/13/First-BBC-microsite-powered-by-a-triple-store</link>
    <guid isPermaLink="false">urn:md5:d968e921af515151539b6552318e1315</guid>
    <pubDate>Tue, 13 Jul 2010 15:46:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>rdf</category><category>triplestore</category>    
    <description>    &lt;p&gt;Jem Rayfield wrote a &lt;a href=&quot;http://www.bbc.co.uk/blogs/bbcinternet/2007/12/brandons_history_of_bbc_on_the_2.html&quot;&gt;
very interesting post&lt;/a&gt; on the technologies used by the World Cup BBC web
site, which also got covered by &lt;a href=&quot;http://www.readwriteweb.com/archives/bbc_world_cup_website_semantic_technology.php&quot;&gt;
Read Write Web&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All this is very exciting, the World Cup Website proved that triple store
technologies can be used to drive a production website with significant
traffic. I am expecting lots more parts of the BBC web infrastructure to evolve
in the same way :-)&lt;/p&gt;
&lt;p&gt;There are two issues we are still currently trying to solve though:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We need to be able to cluster our triples in several dimension. For
example, we may want to have a graph for a particular programme, and a much
larger graph for a particular dataset (e.g. programme data, wildlife finder
data, world cup data). The smaller graph is used to make our updates relatively
cheap (we replace the whole graph whenever we receive an update). The bigger
graph is used to give some degree of isolations between the different sources
of data. For that, we need &lt;q&gt;graphs within graphs&lt;/q&gt;. It can be done with
N3-type graph literals, but is impossible to achieve in a standard quad-store
setup, where one single triple can't be part of several graphs.&lt;/li&gt;
&lt;li&gt;With regards to programme data, the main bottleneck we're facing is the
number of updates per second we need to be able to process, which most of
available triple stores struggle to keep up. The &lt;a href=&quot;http://dbtune.org/bbc/programmes/sparql/&quot;&gt;4store instance on DBTune&lt;/a&gt; does
keep up, but it has a negative impact on the querying performances, as the
write operations are blocking the reads. We were quite surprised to see that
the available triple store benchmarks do not take the write throughput into
account!&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/07/13/First-BBC-microsite-powered-by-a-triple-store#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/07/13/First-BBC-microsite-powered-by-a-triple-store#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/533014</wfw:commentRss>
      </item>
    
  <item>
    <title>DBpedia and BBC Programmes</title>
    <link>http://blog.dbtune.org/post/2010/05/19/DBpedia-and-BBC-Programmes</link>
    <guid isPermaLink="false">urn:md5:f5a08d1ce75e377964da26d6046557d4</guid>
    <pubDate>Wed, 19 May 2010 12:18:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>dbpedia</category><category>linking-open-data</category><category>programmes</category>    
    <description>    &lt;p&gt;We just put live a new exciting feature on &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt;: programme aggregations
powered by DBpedia. For example, you can look at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bbc.co.uk/programmes/subjects/adolescence&quot;&gt;Programmes
about adolescence&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bbc.co.uk/programmes/places/california&quot;&gt;Programmes
about California&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bbc.co.uk/programmes/subjects/personal_computer&quot;&gt;Programmes about
personal computers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bbc.co.uk/programmes/subjects/collectable&quot;&gt;Programmes
about collectables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.bbc.co.uk/programmes/people/winnie_madikizela-mandela&quot;&gt;Programmes
about Winnie Mandela&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, the RDF representations are linked up to DBpedia. Try loading
&lt;a href=&quot;http://www.bbc.co.uk/programmes/subjects/adolescence#subject&quot;&gt;adolescence&lt;/a&gt;
in &lt;a href=&quot;http://dig.csail.mit.edu/2007/tab/&quot;&gt;the Tabulator&lt;/a&gt;, for example
- you will get an immediate mashup of BBC data, DBpedia data, and Freebase
data. Or if you're not afraid of getting overloaded with data, try the &lt;a href=&quot;http://www.bbc.co.uk/programmes/places/california&quot;&gt;California&lt;/a&gt; one.&lt;/p&gt;
&lt;p&gt;One of the most interesting things about using web identifiers as tags for
our programmes (apart from being able to automatically generate those
aggregation pages, of course), is that we can use ancillary information about
those tags to create new sorts of aggregations, and new visualisations of our
data. We could for example plot all our Radio 3 programmes on a map, depending
on the geolocation of the people associated to these programmes. Or we could
create an aggregation of BBC programmes featuring artists living in the cities
with the highest rainfall (why not?). And, of course, this will be a fantastic
new source of data for the &lt;a href=&quot;http://blog.dbtune.org/post/2009/07/13/Music-Hack-Day-and-the-MusicBore&quot;&gt;MusicBore&lt;/a&gt;!
The possibilities are basically endless, and we are very excited about it!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/05/19/DBpedia-and-BBC-Programmes#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/05/19/DBpedia-and-BBC-Programmes#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/517986</wfw:commentRss>
      </item>
    
  <item>
    <title>BBC Semantic Web use-case</title>
    <link>http://blog.dbtune.org/post/2010/01/29/BBC-Semantic-Web-use-case</link>
    <guid isPermaLink="false">urn:md5:6efb76a213d5f02af30c6d8dca6f7835</guid>
    <pubDate>Fri, 29 Jan 2010 15:37:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;After a very long time writing it, we finally have a &lt;a href=&quot;http://www.w3.org/2001/sw/sweo/public/UseCases/BBC/&quot;&gt;BBC Semantic Web
use-case&lt;/a&gt; on the W3C website! It describes work we did around &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt;, &lt;a href=&quot;http://www.bbc.co.uk/music&quot;&gt;BBC Music&lt;/a&gt;, &lt;a href=&quot;http://www.bbc.co.uk/wildlifefinder&quot;&gt;BBC Wildlife Finder&lt;/a&gt; and Search+. I
hope it all makes a bit of sense :-) For a more detailed writeup about these
issues, Patrick's &lt;a href=&quot;http://www.slideshare.net/metade/linked-data-on-the-bbc&quot;&gt;Linked Data on the
BBC&lt;/a&gt; are very good.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/01/29/BBC-Semantic-Web-use-case#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/01/29/BBC-Semantic-Web-use-case#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/480149</wfw:commentRss>
      </item>
    
  <item>
    <title>Live SPARQL end-point for BBC Programmes</title>
    <link>http://blog.dbtune.org/post/2010/01/13/Live-SPARQL-end-point-for-BBC-Programmes</link>
    <guid isPermaLink="false">urn:md5:b6859ecc4a09b6949d3bf77502cc1991</guid>
    <pubDate>Thu, 14 Jan 2010 12:30:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>code</category><category>linking-open-data</category><category>programmes</category><category>sparql</category>    
    <description>    &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; We seem to have an issue with the 4store hosting
the dataset, so the data is stale since the end of February. &lt;strong&gt;Update
2:&lt;/strong&gt; All should be back to normal and in sync. Please comment on this
post if you spot any issue, or general slowliness.&lt;/p&gt;
&lt;p&gt;Last year, we got &lt;a href=&quot;http://www.openlinksw.com/&quot;&gt;OpenLink&lt;/a&gt; and
&lt;a href=&quot;http://www.talis.com/&quot;&gt;Talis&lt;/a&gt; to crawl &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt; and provide two SPARQL
end-points on top of the aggregated data. However, getting the data by crawling
it means that the end-points did not have &lt;strong&gt;all&lt;/strong&gt; the data, and
that the data can get quite outdated -- especially as our programme data
changes a lot.&lt;/p&gt;
&lt;p&gt;At the moment, our data comes from two sources: PIPs (the central programme
database at the BBC) and PIT (our content mangement system for programme
information). In order to populate the /programmes database, we monitor changes
on these two sources and replicate them on our database. We have a small piece
of &lt;a href=&quot;http://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt;/&lt;a href=&quot;http://api.rubyonrails.org/classes/ActiveRecord/Base.html&quot;&gt;ActiveRecord&lt;/a&gt;
software (that we call the &lt;q&gt;Tapp&lt;/q&gt;) which handles this process.&lt;/p&gt;
&lt;p&gt;I made a small experiment, &lt;a href=&quot;http://gist.github.com/276106&quot;&gt;converting our ActiveRecord objects to RDF&lt;/a&gt;
and hooking an HTTP POST or an HTTP DELETE request to a &lt;a href=&quot;http://4store.org/&quot;&gt;4store&lt;/a&gt; instance for each change we receive. This means
that this 4store instance is kept in sync with upstream data sources.&lt;/p&gt;
&lt;p&gt;It took a while to backfill, but it is now up-to-date. Check out the
&lt;a href=&quot;http://dbtune.org/bbc/programmes/sparql/&quot;&gt;SPARQL end-point&lt;/a&gt;, a
&lt;a href=&quot;http://dbtune.org/bbc/programmes/test/&quot;&gt;test SPARQL query form&lt;/a&gt; and
the &lt;a href=&quot;http://dbtune.org/bbc/programmes/status/size/&quot;&gt;size of the
endpoint&lt;/a&gt; (currently about 44 million triples).&lt;/p&gt;
&lt;p&gt;The end-point holds all information about services, programmes, categories,
versions, broadcasts, ondemands, time intervals and segments, as defined within
the &lt;a href=&quot;http://www.bbc.co.uk/ontologies/programmes/&quot;&gt;Programme
Ontology&lt;/a&gt;. All of these resources are held within their own named graph,
which means we have a very large number of graphs (about 5 million). It makes
it far easier to update the endpoint, as we can just replace the whole graph
whenever something changes for a resource.&lt;/p&gt;
&lt;p&gt;This is still highly experimental though, and and I already found a few
bugs: some episodes seem to be missing (for example, some Strictly Come Dancing
episodes are missing, for some reason). I've also encountered some really weird
crashes of the machine hosting the end-point when concurrently pushing a large
number of RDF documents at it - I still didn't succeed to identify the cause of
it. To summarise: it might die without notice :-)&lt;/p&gt;
&lt;p&gt;Here are some example SPARQL queries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;All programmes related to James Bond:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
SELECT ?uri ?label
WHERE {
  ?uri po:category 
    &amp;lt;http://www.bbc.co.uk/programmes/people/bmFtZS9ib25kLCBqYW1lcyAobm8gcXVhbGlmaWVyKQ#person&amp;gt; ; rdfs:label ?label
}
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;FInd all &lt;a href=&quot;http://www.bbc.co.uk/programmes/b006m86d&quot;&gt;Eastenders&lt;/a&gt;
broadcast dates after 2009-01-01, along with the type of the version that was
broadcast:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt; 
PREFIX tl: &amp;lt;http://purl.org/NET/c4dm/timeline.owl#&amp;gt; 
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt; 
PREFIX xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt;
SELECT ?version_type ?broadcast_start
WHERE
{ &amp;lt;http://www.bbc.co.uk/programmes/b006m86d#programme&amp;gt; po:episode ?episode .
  ?episode po:version ?version .
  ?version a ?version_type .
  ?broadcast po:broadcast_of ?version .
  ?broadcast event:time ?time .
  ?time tl:start ?broadcast_start .
  FILTER ((?version_type != &amp;lt;http://purl.org/ontology/po/Version&amp;gt;) &amp;amp;&amp;amp; (?broadcast_start &amp;gt; &amp;quot;2009-01-01T00:00:00Z&amp;quot;^^xsd:dateTime))}
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Find all programmes that featured both &lt;a href=&quot;http://www.bbc.co.uk/music/artists/67f66c07-6e61-4026-ade5-7e782fad3a5d#artist&quot;&gt;
the Foo Fighters&lt;/a&gt; and &lt;a href=&quot;http://www.bbc.co.uk/music/artists/fb7272ba-f130-4f0a-934d-6eeea4c18c9a#artist&quot;&gt;
Al Green&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
PREFIX mo: &amp;lt;http://purl.org/ontology/mo/&amp;gt;
PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;
PREFIX event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt;
PREFIX tl: &amp;lt;http://purl.org/NET/c4dm/timeline.owl#&amp;gt;
PREFIX owl: &amp;lt;http://www.w3.org/2002/07/owl#&amp;gt; 
SELECT DISTINCT ?programme ?label
WHERE {
  ?event1 po:track ?track1 .
  ?track1 foaf:maker ?maker1 . ?maker1 owl:sameAs &amp;lt;http://www.bbc.co.uk/music/artists/67f66c07-6e61-4026-ade5-7e782fad3a5d#artist&amp;gt; .
  ?event2 po:track ?track2 .
  ?track2 foaf:maker ?maker2 . ?maker2 owl:sameAs &amp;lt;http://www.bbc.co.uk/music/artists/fb7272ba-f130-4f0a-934d-6eeea4c18c9a#artist&amp;gt; .
  ?event1 event:time ?t1 .
  ?event2 event:time ?t2 .
  ?t1 tl:timeline ?tl .
  ?t2 tl:timeline ?tl .
  ?version po:time ?t .
  ?t tl:timeline ?tl .
  ?programme po:version ?version .
  ?programme rdfs:label ?label .
}
&lt;/pre&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2010/01/13/Live-SPARQL-end-point-for-BBC-Programmes#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2010/01/13/Live-SPARQL-end-point-for-BBC-Programmes#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/475275</wfw:commentRss>
      </item>
    
  <item>
    <title>Music recommendation and Linked Data</title>
    <link>http://blog.dbtune.org/post/2009/10/27/Music-recommendation-and-Linked-Data</link>
    <guid isPermaLink="false">urn:md5:ad0333a88ea226244e9885acaf3536eb</guid>
    <pubDate>Tue, 27 Oct 2009 02:43:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>code</category><category>notube</category>    
    <description>    &lt;p&gt;We just presented yesterday at &lt;a href=&quot;http://ismir2009.ismir.net/&quot;&gt;ISMIR&lt;/a&gt; a tutorial about &lt;a href=&quot;http://linkeddata.org/&quot;&gt;Linked Data&lt;/a&gt; for music-related information. More
information on the tutorial is available on the &lt;a href=&quot;http://ismir2009.dbtune.org/&quot;&gt;tutorial website&lt;/a&gt;, and the &lt;a href=&quot;http://ismir2009.dbtune.org/slides/&quot;&gt;slides are also available&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In particular, we had &lt;a href=&quot;http://ismir2009.dbtune.org/slides/dogma.html&quot;&gt;two&lt;/a&gt; &lt;a href=&quot;http://ismir2009.dbtune.org/slides/apps.html&quot;&gt;sets&lt;/a&gt; of slides dealing with
the relationship between music recommendation and linked data. As this is
something we're investigating within the &lt;a href=&quot;http://notube.sti2.org/&quot;&gt;NoTube&lt;/a&gt; project, I thought I would write up a bit
more about it.&lt;/p&gt;
&lt;p&gt;Let's focus on artist to artist recommendation for now. If we look at
&lt;a href=&quot;http://last.fm/&quot;&gt;last.fm&lt;/a&gt; for &lt;a href=&quot;http://www.lastfm.fr/music/New+Order#similarArtists&quot;&gt;recommendations for New
Order&lt;/a&gt;, here is what we get.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.lastfm.fr/music/New+Order#similarArtists&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/.last-fm-similar-to-new-order_m.jpg&quot; alt=&quot;Artists similar to New Order, from last.fm&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Artists similar to New Order, from last.fm, Oct 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Similarly, using the &lt;a href=&quot;http://developer.echonest.com/docs/method/get_similar/&quot;&gt;Echonest API for
similar artists&lt;/a&gt;, we get back an &lt;a href=&quot;http://developer.echonest.com/api/get_similar?id=music://id.echonest.com/~/AR/ARNHHIV1187FB4EA23&amp;amp;api_key=O7HXFLBKKXN05PDQU&amp;amp;version=3&quot;&gt;
ordered list of artists similar to New Order&lt;/a&gt;, including &lt;a href=&quot;http://www.bbc.co.uk/music/artists/6d072aa8-c851-49c5-92f9-cbca05f4bed9&quot;&gt;Orchestral
Manoeuvres in the Dark&lt;/a&gt;, &lt;a href=&quot;http://www.bbc.co.uk/music/artists/8538e728-ca0b-4321-b7e5-cff6565dd4c0&quot;&gt;Depeche
Mode&lt;/a&gt;, etc.&lt;/p&gt;
&lt;p&gt;Now, let's play word associations for a few bands and musical genres. My
colleague Michael Smethurst took the &lt;a href=&quot;http://www.bbc.co.uk/music/artists/e5db18cb-4b1f-496d-a308-548b611090d3&quot;&gt;Sex
Pistols&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Acid_house&quot;&gt;Acid House&lt;/a&gt;
and &lt;a href=&quot;http://www.bbc.co.uk/music/artists/bf2e15d0-4b77-469e-bfb4-f8414415baca&quot;&gt;Public
Enemy&lt;/a&gt;, and draw the following associations:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/sexpistolstags.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/.sexpistolstags_m.jpg&quot; alt=&quot;Sex Pistols associated words&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Sex Pistols associated words, Oct 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/acidhousestags.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/.acidhousestags_m.jpg&quot; alt=&quot;Acid House word associations&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Acid House word associations, Oct 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/publicenemytags.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/.publicenemytags_m.jpg&quot; alt=&quot;Pubic Enemy word associations&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Pubic Enemy word associations, Oct 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We can see that among the different terms in these diagrams, some refer to
people, to TV programmes, to fashion styles, to drugs, to music hardware, to
places, to laws, to political groups, to record labels, etc. Just a couple of
these terms are actually other bands or tracks. If you were to describe these
artists just in musical terms, you'd probably be missing the point. And all
these things are also linked to each other: you could play word associations
for any of them and see what are the connections between Public Enemy and the
Sex Pistols. So how does that relate to recommendations? When recommending an
artist from another artist, the context is key. You need to provide an
explanation of &lt;em&gt;why&lt;/em&gt; they actually relate to each other, whether it's
through common members, drugs, belonging to the same independent record label,
acoustically similar (if so, how exactly), etc. The main hypothesis here being
that users are much more likely to be accepting a recommendation that is
explicitly backed by some contextual information.&lt;/p&gt;
&lt;p&gt;On the BBC website, we cover quite a few domains, and we try to create as
much links as possible between these domains, by following the &lt;a href=&quot;http://www.w3.org/DesignIssues/LinkedData.html&quot;&gt;Linked Data principles&lt;/a&gt;.
From our &lt;a href=&quot;http://www.bbc.co.uk/music&quot;&gt;BBC Music&lt;/a&gt; site, we can
explore much more information, from other BBC content (&lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;programmes&lt;/a&gt;, &lt;a href=&quot;http://news.bbc.co.uk/&quot;&gt;news&lt;/a&gt; etc.) to other Linked Data sources, e.g.
&lt;a href=&quot;http://dbpedia.org&quot;&gt;DBpedia&lt;/a&gt;, &lt;a href=&quot;http://freebase.com/&quot;&gt;Freebase&lt;/a&gt; and &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt;. This provides us with a wealth of
structured information that we would ultimately want to use for driving and
backing up our recommendations.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://blog.dbtune.org/post/2009/07/13/Music-Hack-Day-and-the-MusicBore&quot;&gt;MusicBore&lt;/a&gt;
I've described earlier on this blog kind of uses the same approach. Playlists
are generated by following paths in Linked Data. Introduction of each artists
is done by generating a sentence from the path leading from the seed artist to
the target artist. The prototype described in &lt;a href=&quot;http://ceur-ws.org/Vol-405/paper3.pdf&quot;&gt;that paper from the SDOW workshop last
year&lt;/a&gt; also illustrates that approach.&lt;/p&gt;
&lt;p&gt;So we developed a small prototype of these kind of ideas, &lt;a href=&quot;http://github.com/moustaki/rqommend&quot;&gt;rqommend&lt;/a&gt; (and when I say small, it is
&lt;em&gt;very&lt;/em&gt; small :) ). Basically, we define &amp;quot;relatedness rules&amp;quot; in the form
of &lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/&quot;&gt;SPARQL&lt;/a&gt; queries, like
&amp;quot;Two artists born in Detroit in the 60s are related&amp;quot;. We could go for very
general rules, e.g. &amp;quot;Any paths between two artists make them related&amp;quot;, but it
would be very hard to generate an accurate textual explanation for it, and
might give some, hem, not very interesting connections. Then, we just go
through these rules on an aggregation of Linked Data, and generate
recommendations from them. Here is a &lt;a href=&quot;http://moustaki.org/rqommend/rqommend-greasemonkey.user.js&quot;&gt;greasemonkey
script&lt;/a&gt; injecting such recommendations with BBC Music (see for example the
&lt;a href=&quot;http://www.bbc.co.uk/music/artists/233fc3f3-6de2-465c-985e-e721dbabbace&quot;&gt;Fugazi
page&lt;/a&gt;). It injects Linked Data based recommendations, along with the
associated explanation, within BBC artist pages. For example, for New
Order:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/music-ld-recs.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/.music-ld-recs_m.jpg&quot; alt=&quot;BBC Music recs for New Order&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;BBC Music recs for New Order, Oct 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To conclude, I think there is a really strong influence of traditional
information retrieval systems on the music information retrieval community. But
what makes Google, for example, particularly successful is to exploit links,
not the documents themselves. We definitely need to go towards the same sort of
model. Exploiting links surrounding music, and all the cross-domain information
that makes it so rich, to create better music recommendation systems which
combine the &lt;q&gt;what&lt;/q&gt; is recommended with the &lt;q&gt;why&lt;/q&gt; it is
recommended.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/10/27/Music-recommendation-and-Linked-Data#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/10/27/Music-recommendation-and-Linked-Data#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/454637</wfw:commentRss>
      </item>
    
  <item>
    <title>Linked Data London event screencasts and London Web Standards meetup</title>
    <link>http://blog.dbtune.org/post/2009/09/10/Web-standards-meetup-and-Linked-Data-London-event</link>
    <guid isPermaLink="false">urn:md5:7397bd621a931be52df13b1b7a57f8b5</guid>
    <pubDate>Thu, 10 Sep 2009 12:03:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>event</category><category>linking-open-data</category><category>screencast</category>    
    <description>    &lt;p&gt;With &lt;a href=&quot;http://derivadow.com/&quot;&gt;Tom Scott&lt;/a&gt;, we presented a talk on
contextualising BBC programmes using linked data for the &lt;a href=&quot;http://www.meetup.com/Web-Of-Data/calendar/11056905/&quot;&gt;Linked Data London
event&lt;/a&gt;. For the occasion, I made a couple of screencasts.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://moustaki.org/resources/screencast-music.ogv&quot;&gt;The first
one&lt;/a&gt; shows some browsing of the linked data we expose on the BBC website,
using the &lt;a href=&quot;http://dig.csail.mit.edu/2007/tab/&quot;&gt;Tabulator Firefox
extension&lt;/a&gt;. I start by getting to a Radio 2 programme, to get to its
segmentation in musical tracks, to get to another programme featuring one of
the tracks, to get to another artist featured in that programme. The Tabulator
ends up displaying data aggregated from &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt;, &lt;a href=&quot;http://www.bbc.co.uk/music&quot;&gt;BBC Music&lt;/a&gt; and &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://moustaki.org/resources/screencast-music.ogv&quot;&gt;Exploring BBC
programmes and music data using the Tabulator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://moustaki.org/resources/screencast-recommendation.ogv&quot;&gt;The
second one&lt;/a&gt; shows what you can do by using these programmes/artists and
artists/programmes links. We built some very straight-forward programme to
programme recommendation using them. On the right-hand side of the programme
page, there are recommendations, based on artists played in common. The
recommendations are scoped by the availability of the programme on iPlayer or
by the fact it has an upcoming broadcast. If you hover over those
recommendations, it will display what allowed us to derive it: here, a list of
common artists played in the two programmes. This work is part of our
investigations within the &lt;a href=&quot;http://www.notube.tv/&quot;&gt;NoTube European
project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://moustaki.org/resources/screencast-recommendation.ogv&quot;&gt;Artist-based
programme to programme recommendations&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Also, as &lt;a href=&quot;http://www.bbc.co.uk/blogs/radiolabs/2009/09/a_skimread_introduction_to_lin.shtml&quot;&gt;
Michael already posted on Radio Labs&lt;/a&gt;, we gave a presentation to the
&lt;a href=&quot;http://www.londonwebstandards.org/&quot;&gt;London Web Standards&lt;/a&gt; group on
&lt;a href=&quot;http://linkeddata.org/&quot;&gt;Linked Data&lt;/a&gt;. It was a very nice event,
especially as mainly web developers turned up. Linked data events tend to be
mostly about linked data evangelists talking to other linked data evangelists
(which is great too!), so this was quite different :-) Lots of interesting
questions about provenance and trustworthiness of data were asked, which are
always a bit difficult to answer, apart from the usual &lt;q&gt;it's just the Web,
you can deal with it as you do (or don't) currently with Web data, e.g. by
keeping track of provenance information and filtering based on that&lt;/q&gt;.
Somebody raised that you could make some statistics on how many times a
particular statement is repeated in order to derive its trustworthiness, but
this sounds a bit harmful... Currently on the Linked Data cloud, lots of
information gets repeated. For example, if a statement about an artist is
available on DBpedia, there is a fair chance it will get repeated in BBC Music,
just because we also use Wikipedia as an information source. The fact that this
statements gets repeated doesn't make it more valid.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bbc.co.uk/blogs/radiolabs/s5/linked-data/s5.html&quot;&gt;Skim-read
introduction to linked data slides&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/09/10/Web-standards-meetup-and-Linked-Data-London-event#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/09/10/Web-standards-meetup-and-Linked-Data-London-event#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/440064</wfw:commentRss>
      </item>
    
  <item>
    <title>Music Hack Day and the MusicBore</title>
    <link>http://blog.dbtune.org/post/2009/07/13/Music-Hack-Day-and-the-MusicBore</link>
    <guid isPermaLink="false">urn:md5:57cb1bb39ee33d47cccb6a979a35e6c8</guid>
    <pubDate>Mon, 13 Jul 2009 10:58:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>musicbore</category><category>musichackday</category>    
    <description>    &lt;p&gt;This week end was the &lt;a href=&quot;http://musichackday.org&quot;&gt;Music Hackday&lt;/a&gt; in
London. The event was great, with everything a hack day need: pizza, beer, and
technical glitches during the demos :-) And, of course, lots of &lt;a href=&quot;http://musichackday.org/info/Hacks&quot;&gt;awesome hacks&lt;/a&gt; (including that &lt;a href=&quot;http://shogunmedia.co.uk/&quot;&gt;amazing visualisation&lt;/a&gt; which didn't make it into
the list for some reason).&lt;/p&gt;
&lt;p&gt;With &lt;a href=&quot;http://twitter.com/chrislowis&quot;&gt;Christopher&lt;/a&gt;, &lt;a href=&quot;http://metade.org/&quot;&gt;Patrick&lt;/a&gt; and &lt;a href=&quot;http://www.aelius.com/njh/&quot;&gt;Nick&lt;/a&gt;, we created the &lt;a href=&quot;http://musichackday.org/hacks.php?page=MusicBore&quot;&gt;MusicBore&lt;/a&gt;. The MusicBore
is a completely automated radio DJ, which, well, tends to be really boring :-)
We actually won two prizes with it! The &lt;a href=&quot;http://last.fm/&quot;&gt;Last.fm
one&lt;/a&gt; and the best hack one! We were really, really happy :-) But let the
musicbore introduce itself:&lt;/p&gt;
&lt;p&gt;&lt;q&gt;Hello. I am the Music Bore. I play music and I like to tell you ALL about
the music I play. I live on IRC. I get my information from BBC Music, BBC
Programmes, last fm, the Echo Nest, Yahoo Weather and the web of Linked Data.
To find out more, please visit &lt;a href=&quot;http://bit.ly/musicbore&quot;&gt;bit.ly/musicbore&lt;/a&gt;. You can dissect my disgusting
innards on &lt;a href=&quot;http://github.com/metade/musicbore/tree/master&quot;&gt;github&lt;/a&gt;.
Now let me play you some music.&lt;/q&gt;&lt;/p&gt;
&lt;p&gt;Here it is in action, the first one walks through Soul-ish tunes, whereas
the second one goes into French punk-rock:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://vimeo.com/5561292&quot;&gt;The Music Bore - Video 2&lt;/a&gt; from
&lt;a href=&quot;http://vimeo.com/user481076&quot;&gt;Nicholas Humfrey&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://vimeo.com/5561309&quot;&gt;The Music Bore - Video 1&lt;/a&gt; from
&lt;a href=&quot;http://vimeo.com/user481076&quot;&gt;Nicholas Humfrey&lt;/a&gt; on &lt;a href=&quot;http://vimeo.com&quot;&gt;Vimeo&lt;/a&gt;.&lt;/p&gt;
The MusicBore is powered by a new and exciting messaging technology: IRC :-)
Lots of bots sit around in an IRC channel and talk to each other to create a
radio show. The show is entirely created live, each bot contributing a specific
ability to it. Just before the hack presentation, we had 10 bots in the same
channel (all the bots sources are on &lt;a href=&quot;http://github.com/metade/musicbore/tree/master&quot;&gt;github&lt;/a&gt;):
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;controller:&lt;/strong&gt; In charge of starting the show by playing an
introduction and choose a new song drawn from the &lt;a href=&quot;http://www.bbc.co.uk/music&quot;&gt;BBC Music&lt;/a&gt; charts. Also in charge of re-drawing
a new song in case the other bots gets stuck.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;thebore:&lt;/strong&gt; Renders information about a particular artist
from BBC Music, BBC Programmes, Wikipedia, Last.fm and other &lt;a href=&quot;http://linkeddata.org&quot;&gt;Linked Data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;connectionfinder:&lt;/strong&gt; Given a seed artist, gives the next one
in the playlist, along with an explanation of how it was chosen. Basically
walks through &lt;a href=&quot;http://linkeddata.org/&quot;&gt;Linked Data&lt;/a&gt; to discover new
artists.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;placefinder:&lt;/strong&gt; Given a seed artist, gives the next one in
the playlist, along with an explanation of how it was chosen. This bot is
constrained to go through places, so will give connections like &lt;q&gt;Did you know
that David Guetta is born in Paris, and that Georges Garvarentz died in the
same place?&lt;/q&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;musicfinder:&lt;/strong&gt; Finds music content for an artist, using
&lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt; segment data and
the &lt;a href=&quot;http://www.surgeradio.co.uk/&quot;&gt;Surge Radio&lt;/a&gt; RDF.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;trackfinder:&lt;/strong&gt; Finds music content for an artist, using the
&lt;a href=&quot;http://developer.echonest.com/&quot;&gt;Echonest API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;irc2play:&lt;/strong&gt; Say sentences and play tracks mentioned on IRC,
mixing them using Jack, Madjack and JackMiniMix&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;weatherbot:&lt;/strong&gt; Renders weather information from Yahoo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;imagebot:&lt;/strong&gt; Finds an image from BBC Music for a particular
artist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;hotnessfinder:&lt;/strong&gt; Find the hotness for an artist using the
&lt;a href=&quot;http://developer.echonest.com/&quot;&gt;Echonest API&lt;/a&gt;, and constructs a
sentence from it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is a small diagram of how the different bots interact with each other
(if you don't understand that diagram, that's fine, we don't either, but it
does seem to work :-) ).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://musichackday.org/uploads/1247404047.png&quot; title=&quot;Musicbore bots interaction&quot; alt=&quot;C&quot; width=&quot;600&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As I thought they were quite fun, here are &lt;a href=&quot;http://moustaki.org/resources/bbcmusicbore.log&quot;&gt;the logs of the bbcmusicbore
channel&lt;/a&gt; over the week-end. Here is a small best-of:&lt;/p&gt;
&lt;pre&gt;
14:05 &amp;lt; yvesr&amp;gt; trackfinder: weezer&lt;br /&gt;
14:05 -!- trackfinder [n=trackfin@77.91.248.124] has quit&lt;br /&gt;
[Remote closed the connection]
&lt;/pre&gt;
This happens &lt;strong&gt;a lot&lt;/strong&gt; at the beginning of the log, bots just
throwing exceptions and quitting irc.
&lt;pre&gt;
11:25 &amp;lt; thebore&amp;gt; connectionfinder:http://dbpedia.org/resource/David_Guetta&lt;br /&gt;
11:25 &amp;lt; connectionfinder&amp;gt; say:Did you know that David Guetta was born in&lt;br /&gt;
France which has leader name Nicolas Sarkozy,  which has spouse Carla&lt;br /&gt;
Bruni?&lt;br /&gt;
11:25 &amp;lt; thebore&amp;gt; say:Carla Bruni has released 3 records. No Promises was&lt;br /&gt;
just terrible.
&lt;/pre&gt;
God. Nicolas Sarkozy is really in &lt;strong&gt;every&lt;/strong&gt; media, even the
randomly generated ones! thebore got enlightened on that one.
&lt;pre&gt;
10:41 &amp;lt; yvesr&amp;gt; connectionfinder:http://dbpedia.org/resource/Barry_White&lt;br /&gt;
10:42 &amp;lt; connectionfinder&amp;gt; say:Did you know that Barry White died in the&lt;br /&gt;
same city as  Chico Hamilton, Los Angeles?
&lt;/pre&gt;
A morbid playlist generation :-)
&lt;pre&gt;
11:07 &amp;lt; thebore&amp;gt; say:Colin Murray on BBC Radio One is a massive fan. They&lt;br /&gt;
have a myspace at myspace.com/metallica. They sound a bit like Megadeth.&lt;br /&gt;
They have released 524 records. I really liked 2008-11-01: Rose Garden,&lt;br /&gt;
Portland, OR, USA.
&lt;/pre&gt;
Bootlegs FTW!
&lt;pre&gt;
11:43 &amp;lt; yvesr&amp;gt; hotnessfinder: michael jackson&lt;br /&gt;
11:43 &amp;lt; hotnessfinder&amp;gt; say: Wow,  michael jackson is really, really hot&lt;br /&gt;
right now! Did he die recently?
&lt;/pre&gt;
No comments
&lt;pre&gt;
12:50 &amp;lt; thebore&amp;gt; connectionfinder:http://dbpedia.org/resource/Snoop_Dogg&lt;br /&gt;
12:50 &amp;lt; connectionfinder&amp;gt; say:Did you know that Dogg, Snoop is signed on&lt;br /&gt;
Death Row Records which was founded by Dr. Dre,  which used to be quite&lt;br /&gt;
close to World Class Wreckin' Cru?
&lt;/pre&gt;
No, I didn't!
&lt;pre&gt;
13:56 &amp;lt; thebore&amp;gt; say:Beverley Knight sounds a bit like Eternal.&lt;br /&gt;
In September 2005 Knight joined the likes of Bob Dylan and Joni&lt;br /&gt;
Mitchell by being made a Doctor of Music after receiving the honorary&lt;br /&gt;
degree from the University of Wolverhampton.
&lt;/pre&gt;
No, I didn't know either!&lt;br /&gt;
&lt;br /&gt;
Right now, all the bots are offline (they were running on our laptops during
the week end), but we plan to use the Amazon Web Services vouchers we won to
make them run for a while :-)&lt;br /&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/07/13/Music-Hack-Day-and-the-MusicBore#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/07/13/Music-Hack-Day-and-the-MusicBore#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/418108</wfw:commentRss>
      </item>
    
  <item>
    <title>And another fun BBC SPARQL query</title>
    <link>http://blog.dbtune.org/post/2009/06/15/And-another-fun-BBC-SPARQL-query</link>
    <guid isPermaLink="false">urn:md5:9c9a3805bbd11c7a2751ad72a83e9340</guid>
    <pubDate>Mon, 15 Jun 2009 13:53:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>sparql</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://api.talis.com/stores/bbc-backstage/services/sparql?query=PREFIX+po%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fpo%2F%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+mo%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmo%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0APREFIX+event%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23%3E%0D%0APREFIX+tl%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Ftimeline.owl%23%3E%0D%0APREFIX+dbprop%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fproperty%2F%3E%0D%0APREFIX+owl%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23%3E%0D%0ASELECT+DISTINCT+%3Fprogramme+%3Flabel+%3Fartistlabel+%3Fdbpmaker%0D%0AWHERE+{%0D%0A++%3Fevent1+po%3Atrack+%3Ftrack1+.%0D%0A++%3Ftrack1+foaf%3Amaker+%3Fmaker+.%0D%0A++%3Fmaker+rdfs%3Alabel+%3Fartistlabel+.%0D%0A++%3Fmaker+owl%3AsameAs+%3Fdbpmaker+.%0D%0A++%3Fdbpmaker+dbprop%3Aorigin+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FFrance%3E+.%0D%0A++%3Fevent1+po%3Atime+%3Ft1+.%0D%0A++%3Ft1+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fversion+po%3Atime+%3Ft+.%0D%0A++%3Ft+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fprogramme+po%3Aversion+%3Fversion+.%0D%0A++%3Fprogramme+rdfs%3Alabel+%3Flabel+.%0D%0A}%0D%0A&quot;&gt;
This query&lt;/a&gt; returns BBC programmes featuring artists originating from France
(this is just a straight adaptation of the last query in &lt;a href=&quot;http://blog.dbtune.org/post/2009/06/11/BBC-SPARQL-end-points&quot;&gt;my previous
post&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The results are quite fun! Apparently, the big French hits on the BBC are
from &lt;a href=&quot;http://dbpedia.org/resource/Jean_Michel_Jarre&quot;&gt;Jean-Michel
Jarre&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/Air_%28band%29&quot;&gt;Air&lt;/a&gt;,
&lt;a href=&quot;http://dbpedia.org/resource/Modjo&quot;&gt;Modjo&lt;/a&gt;, &lt;a href=&quot;http://dbpedia.org/resource/Phoenix_%28band%29&quot;&gt;Phoenix&lt;/a&gt; (are they known in
France? I've only heard of them in the UK) and &lt;a href=&quot;http://dbpedia.org/resource/Vanessa_Paradis&quot;&gt;Vanessa Paradis&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Note that the tracklisting data we expose in our RDF just goes back a couple
of months, so that might explain why the list is not bigger.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/06/15/And-another-fun-BBC-SPARQL-query#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/06/15/And-another-fun-BBC-SPARQL-query#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/410376</wfw:commentRss>
      </item>
    
  <item>
    <title>BBC SPARQL end-points</title>
    <link>http://blog.dbtune.org/post/2009/06/11/BBC-SPARQL-end-points</link>
    <guid isPermaLink="false">urn:md5:2c583c5d7c048bbf620933d197eef2c5</guid>
    <pubDate>Thu, 11 Jun 2009 00:15:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>sparql</category>    
    <description>    &lt;p&gt;We recently announced on the &lt;a href=&quot;http://welcomebackstage.com/2009/06/bbc-backstage-sparql-endpoint/&quot;&gt;BBC
backstage blog&lt;/a&gt; the availability of two SPARQL end-points, one hosted by
&lt;a href=&quot;http://www.talis.com/&quot;&gt;Talis&lt;/a&gt; and one by &lt;a href=&quot;http://www.openlinksw.com&quot;&gt;OpenLink&lt;/a&gt;. These two companies aggregated the
RDF data we publish at &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot; title=&quot;http://www.bbc.co.uk/programmes&quot;&gt;http://www.bbc.co.uk/programmes&lt;/a&gt; and
&lt;a href=&quot;http://www.bbc.co.uk/music&quot; title=&quot;http://www.bbc.co.uk/music&quot;&gt;http://www.bbc.co.uk/music&lt;/a&gt;. This opens up
quite a lot of fascinating SPARQL queries. Talis already compiled a &lt;a href=&quot;http://api.talis.com/stores/bbc-demo/items/queries.html&quot;&gt;small list&lt;/a&gt;, and
here are a couple I just designed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give me programmes that deal with the fictional character &lt;q&gt;James Bond&lt;/q&gt;
- &lt;a href=&quot;http://api.talis.com/stores/bbc-backstage/services/sparql?query=PREFIX+po%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fpo%2F%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0ASELECT+%3Furi+%3Flabel%0D%0AWHERE+{%0D%0A++%3Furi+po%3Aperson+%0D%0A++++%3Chttp%3A%2F%2Fwww.bbc.co.uk%2Fprogrammes%2Fpeople%2FbmFtZS9ib25kLCBqYW1lcyAobm8gcXVhbGlmaWVyKQ%23person%3E+%3B+rdfs%3Alabel+%3Flabel%0D%0A}&quot;&gt;
results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
SELECT ?uri ?label
WHERE {
  ?uri po:person 
    &amp;lt;http://www.bbc.co.uk/programmes/people/bmFtZS9ib25kLCBqYW1lcyAobm8gcXVhbGlmaWVyKQ#person&amp;gt; ; rdfs:label ?label
}
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;GIve me artists that were featured in the same programme as the Foo
Fighters - &lt;a href=&quot;http://api.talis.com/stores/bbc-backstage/services/sparql?query=PREFIX+po%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fpo%2F%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+mo%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmo%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0APREFIX+event%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23%3E%0D%0APREFIX+tl%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Ftimeline.owl%23%3E%0D%0ASELECT+DISTINCT+%3Fartist2+%3Flabel2%0D%0AWHERE+{%0D%0A++%3Fevent1+po%3Atrack+%3Ftrack1+.%0D%0A++%3Ftrack1+foaf%3Amaker+%3Chttp%3A%2F%2Fwww.bbc.co.uk%2Fmusic%2Fartists%2F67f66c07-6e61-4026-ade5-7e782fad3a5d%23artist%3E+.%0D%0A++%3Fevent2+po%3Atrack+%3Ftrack2+.%0D%0A++%3Ftrack2+foaf%3Amaker+%3Fartist2+.%0D%0A++%3Fartist2+rdfs%3Alabel+%3Flabel2+.%0D%0A++%3Fevent1+po%3Atime+%3Ft1+.%0D%0A++%3Fevent2+po%3Atime+%3Ft2+.%0D%0A++%3Ft1+tl%3Atimeline+%3Ftl+.%0D%0A++%3Ft2+tl%3Atimeline+%3Ftl+.%0D%0A++FILTER+(%3Ft1+!%3D+%3Ft2)%0D%0A}&quot;&gt;
results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
PREFIX mo: &amp;lt;http://purl.org/ontology/mo/&amp;gt;
PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;
PREFIX event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt;
PREFIX tl: &amp;lt;http://purl.org/NET/c4dm/timeline.owl#&amp;gt;
SELECT DISTINCT ?artist2 ?label2
WHERE {
  ?event1 po:track ?track1 .
  ?track1 foaf:maker &amp;lt;http://www.bbc.co.uk/music/artists/67f66c07-6e61-4026-ade5-7e782fad3a5d#artist&amp;gt; .
  ?event2 po:track ?track2 .
  ?track2 foaf:maker ?artist2 .
  ?artist2 rdfs:label ?label2 .
  ?event1 po:time ?t1 .
  ?event2 po:time ?t2 .
  ?t1 tl:timeline ?tl .
  ?t2 tl:timeline ?tl .
  FILTER (?t1 != ?t2)
}
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Give me programmes that featured both Al Green and the Foo Fighters (yes!
there is one result!!) - &lt;a href=&quot;http://api.talis.com/stores/bbc-backstage/services/sparql?query=PREFIX+po%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fpo%2F%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+mo%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmo%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0APREFIX+event%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23%3E%0D%0APREFIX+tl%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Ftimeline.owl%23%3E%0D%0ASELECT+DISTINCT+%3Fprogramme+%3Flabel%0D%0AWHERE+{%0D%0A++%3Fevent1+po%3Atrack+%3Ftrack1+.%0D%0A++%3Ftrack1+foaf%3Amaker+%3Chttp%3A%2F%2Fwww.bbc.co.uk%2Fmusic%2Fartists%2F67f66c07-6e61-4026-ade5-7e782fad3a5d%23artist%3E+.%0D%0A++%3Fevent2+po%3Atrack+%3Ftrack2+.%0D%0A++%3Ftrack2+foaf%3Amaker+%3Chttp%3A%2F%2Fwww.bbc.co.uk%2Fmusic%2Fartists%2Ffb7272ba-f130-4f0a-934d-6eeea4c18c9a%23artist%3E+.%0D%0A++%3Fevent1+po%3Atime+%3Ft1+.%0D%0A++%3Fevent2+po%3Atime+%3Ft2+.%0D%0A++%3Ft1+tl%3Atimeline+%3Ftl+.%0D%0A++%3Ft2+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fversion+po%3Atime+%3Ft+.%0D%0A++%3Ft+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fprogramme+po%3Aversion+%3Fversion+.%0D%0A++%3Fprogramme+rdfs%3Alabel+%3Flabel+.%0D%0A}&quot;&gt;
results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
PREFIX mo: &amp;lt;http://purl.org/ontology/mo/&amp;gt;
PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;
PREFIX event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt;
PREFIX tl: &amp;lt;http://purl.org/NET/c4dm/timeline.owl#&amp;gt;
SELECT DISTINCT ?programme ?label
WHERE {
  ?event1 po:track ?track1 .
  ?track1 foaf:maker &amp;lt;http://www.bbc.co.uk/music/artists/67f66c07-6e61-4026-ade5-7e782fad3a5d#artist&amp;gt; .
  ?event2 po:track ?track2 .
  ?track2 foaf:maker &amp;lt;http://www.bbc.co.uk/music/artists/fb7272ba-f130-4f0a-934d-6eeea4c18c9a#artist&amp;gt; .
  ?event1 po:time ?t1 .
  ?event2 po:time ?t2 .
  ?t1 tl:timeline ?tl .
  ?t2 tl:timeline ?tl .
  ?version po:time ?t .
  ?t tl:timeline ?tl .
  ?programme po:version ?version .
  ?programme rdfs:label ?label .
}
&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;All programmes that featured an artist originating from Northern Ireland -
&lt;a href=&quot;http://api.talis.com/stores/bbc-backstage/services/sparql?query=PREFIX+po%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fpo%2F%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+mo%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmo%2F%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0APREFIX+event%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23%3E%0D%0APREFIX+tl%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Ftimeline.owl%23%3E%0D%0APREFIX+dbprop%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fproperty%2F%3E%0D%0APREFIX+owl%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23%3E%0D%0ASELECT+DISTINCT+%3Fprogramme+%3Flabel+%3Fartistlabel+%3Fdbpmaker%0D%0AWHERE+{%0D%0A++%3Fevent1+po%3Atrack+%3Ftrack1+.%0D%0A++%3Ftrack1+foaf%3Amaker+%3Fmaker+.%0D%0A++%3Fmaker+rdfs%3Alabel+%3Fartistlabel+.%0D%0A++%3Fmaker+owl%3AsameAs+%3Fdbpmaker+.%0D%0A++%3Fdbpmaker+dbprop%3Aorigin+%3Chttp%3A%2F%2Fdbpedia.org%2Fresource%2FNorthern_Ireland%3E+.%0D%0A++%3Fevent1+po%3Atime+%3Ft1+.%0D%0A++%3Ft1+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fversion+po%3Atime+%3Ft+.%0D%0A++%3Ft+tl%3Atimeline+%3Ftl+.%0D%0A++%3Fprogramme+po%3Aversion+%3Fversion+.%0D%0A++%3Fprogramme+rdfs%3Alabel+%3Flabel+.%0D%0A}&quot;&gt;
results&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;
PREFIX po: &amp;lt;http://purl.org/ontology/po/&amp;gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;
PREFIX mo: &amp;lt;http://purl.org/ontology/mo/&amp;gt;
PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;
PREFIX event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt;
PREFIX tl: &amp;lt;http://purl.org/NET/c4dm/timeline.owl#&amp;gt;
PREFIX dbprop: &amp;lt;http://dbpedia.org/property/&amp;gt;
PREFIX owl: &amp;lt;http://www.w3.org/2002/07/owl#&amp;gt;
SELECT DISTINCT ?programme ?label ?artistlabel ?dbpmaker
WHERE {
  ?event1 po:track ?track1 .
  ?track1 foaf:maker ?maker .
  ?maker rdfs:label ?artistlabel .
  ?maker owl:sameAs ?dbpmaker .
  ?dbpmaker dbprop:origin &amp;lt;http://dbpedia.org/resource/Northern_Ireland&amp;gt; .
  ?event1 po:time ?t1 .
  ?t1 tl:timeline ?tl .
  ?version po:time ?t .
  ?t tl:timeline ?tl .
  ?programme po:version ?version .
  ?programme rdfs:label ?label .
}
&lt;/pre&gt;
&lt;p&gt;(Note that we just need the &lt;code&gt;owl:sameAs&lt;/code&gt; in the above query as
the Talis end-point doesn't support inference)&lt;/p&gt;
&lt;p&gt;Let us know what kind of query you can come up with this data! :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/06/11/BBC-SPARQL-end-points#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/06/11/BBC-SPARQL-end-points#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/409400</wfw:commentRss>
      </item>
    
  <item>
    <title>Yahoo Hackday 2009</title>
    <link>http://blog.dbtune.org/post/2009/05/12/Yahoo-Hackday-2009</link>
    <guid isPermaLink="false">urn:md5:2198d99264cd5bcd9167b82f7a081301</guid>
    <pubDate>Tue, 12 May 2009 16:56:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>backstage</category><category>bbc</category><category>code</category><category>hackday</category><category>notube</category><category>yahoo</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3414/3449550059_7c1aee6140.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;We went to the &lt;a href=&quot;http://www.hackday.org/&quot;&gt;Yahoo Hackday&lt;/a&gt; this week
end, with a couple of people from the &lt;a href=&quot;http://www.elec.qmul.ac.uk/digitalmusic/&quot;&gt;C4DM&lt;/a&gt; and the &lt;a href=&quot;http://www.bbc.co.uk/&quot;&gt;BBC&lt;/a&gt;. Apart from a flaky wireless connection on the
Saturday, it was a really great event, with lots of interesting talks and
interesting hacks.&lt;/p&gt;
&lt;p&gt;On the Saturday, we learned about &lt;a href=&quot;http://developer.yahoo.com/searchmonkey/&quot;&gt;Searchmonkey&lt;/a&gt;. I tried to create
a small searchmonkey application during the talk, but eventually got
frustrated. Apparently, Searchmonkey indexes &lt;a href=&quot;http://www.w3.org/TR/xhtml-rdfa-primer/&quot;&gt;RDFa&lt;/a&gt; and &lt;a href=&quot;http://research.talis.com/2005/erdf/wiki/Main/RdfInHtml&quot;&gt;eRDF&lt;/a&gt; , but
doesn't follow &lt;code&gt;&amp;lt;link rel=&amp;quot;alternate&amp;quot;/&amp;gt;&lt;/code&gt; links towards RDF
representations (neither does it try to do &lt;a href=&quot;http://en.wikipedia.org/wiki/Content_negotiation&quot;&gt;content negotiation&lt;/a&gt;). So
in order to create a searchmonkey application for &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt;, I needed to either
include RDFa in all the pages (which, hem, was difficult to do in an hour :-) )
or write an XSLT against our RDF/XML representations, which would just be
Wrong, as there are &lt;a href=&quot;http://iandavis.com/blog/2005/09/the-sixteen-faces-of-eve&quot;&gt;lots of different
ways to serialise the same RDF in an RDF/XML document&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We also learned about the Guardian &lt;a href=&quot;http://www.guardian.co.uk/open-platform&quot;&gt;Open Platform&lt;/a&gt; and &lt;a href=&quot;http://www.guardian.co.uk/data-store&quot;&gt;Data Store&lt;/a&gt;, which holds a huge
amount of interesting information. The license terms are also really
permissive, even allowing commercial uses of this data. I can't even imagine
how useful this data would be if it were linked to other open datasets, e.g.
&lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt;, &lt;a href=&quot;http://www.geonames.org/&quot;&gt;Geonames&lt;/a&gt; or &lt;a href=&quot;http://ec.europa.eu/eurostat&quot;&gt;Eurostat&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I got also a bit confused by &lt;a href=&quot;http://developer.yahoo.com/yql/&quot;&gt;YQL&lt;/a&gt;, which seems to be really similar to
&lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/&quot;&gt;SPARQL&lt;/a&gt;, at least in the
underlying concept (&amp;quot;a query language for the web&amp;quot;). However, it seems to be
backed by lots of interesting data: almost all of Yahoo services, and a few
third-party wrappers, e.g. for &lt;a href=&quot;http://last.fm&quot;&gt;Last.fm&lt;/a&gt;. I wonder
how hard it would be to write a SPARQL end-point that would wrap YQL
queries?&lt;/p&gt;
&lt;p&gt;Finally, on Saturday evening and Sunday morning, we got some time to
actually hack :-) &lt;a href=&quot;http://kurtisrandom.blogspot.com/&quot;&gt;Kurt&lt;/a&gt; made a
&lt;a href=&quot;http://catfishsmooth.net/search/flying%20lotus&quot;&gt;nice MySpace hack&lt;/a&gt;,
which does an artist lookup on MySpace using &lt;a href=&quot;http://developer.yahoo.com/search/boss/&quot;&gt;BOSS&lt;/a&gt; and exposes relevant
information extracted using the &lt;a href=&quot;http://dbtune.org/myspace/&quot;&gt;DBTune RDF
wrapper&lt;/a&gt;, without having to look at an overloaded MySpace page. It uses the
&lt;a href=&quot;http://mediaplayer.yahoo.com/&quot;&gt;Yahoo Media Player&lt;/a&gt; to play the
audio files this page links to.&lt;/p&gt;
&lt;p&gt;At the same time, we got around to try out some of the things that can be
built using the &lt;a href=&quot;http://linkeddata.org/&quot;&gt;linked data&lt;/a&gt; we publish at
the BBC, especially the &lt;a href=&quot;http://www.mail-archive.com/public-lod@w3.org/msg02067.html&quot;&gt;segment RDF&lt;/a&gt; I
announced on the linked data mailing list a couple of weeks ago. We built a
small application which, from a place, gives you BBC programmes that feature an
artist that is related in some way to that place. For example, &lt;a href=&quot;http://dbtune.org/openhacklondon/Cardiff&quot;&gt;Cardiff&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/openhacklondon/Bristol&quot;&gt;Bristol&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/openhacklondon/London&quot;&gt;London&lt;/a&gt; or &lt;a href=&quot;http://dbtune.org/openhacklondon/Lancashire&quot;&gt;Lancashire&lt;/a&gt;. It might be bit
slow (and the number of results are limited) as I didn't have time to implement
any sort of caching. The application is crawling from &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt; to &lt;a href=&quot;http://www.bbc.co.uk/music/&quot;&gt;BBC
Music&lt;/a&gt; to &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt; at
each request. I just put the (really hacky) code &lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/hackday2009/&quot;&gt;online&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And we actually won the &lt;a href=&quot;http://backstage.bbc.co.uk/&quot;&gt;Backstage&lt;/a&gt;
price with these hacks! :-)&lt;/p&gt;
&lt;p&gt;This last hack illustrates to some extent the things we are investigating as
part of the BBC use-cases of the &lt;a href=&quot;http://notube.sti2.org/&quot;&gt;NoTube&lt;/a&gt;
project. Using these rich connections between things (programmes, artists,
events, locations, etc.), it begins to be possible to provide data-rich
recommendations backed by real stories (and not only &amp;quot;if you like this, you may
like that&amp;quot;). I mentioned these issues in the last chapter of my &lt;a href=&quot;http://moustaki.org/phd/&quot;&gt;thesis&lt;/a&gt;, and will try to follow up on that
here!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/05/12/Yahoo-Hackday-2009#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/05/12/Yahoo-Hackday-2009#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/401597</wfw:commentRss>
      </item>
    
  <item>
    <title>Brands, series, categories and tracklists on the new BBC Programmes</title>
    <link>http://blog.dbtune.org/post/2009/04/17/Brands-series-categories-and-tracklists-on-the-new-BBC-Programmes</link>
    <guid isPermaLink="false">urn:md5:f26d30de26d62b4631b1b663702553b0</guid>
    <pubDate>Fri, 17 Apr 2009 17:04:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>bbc</category><category>programmes</category><category>radiolabs</category>    
    <description>    &lt;p&gt;I just posted a &lt;a href=&quot;http://www.bbc.co.uk/blogs/radiolabs/2009/04/brands_series_categories_and_t.shtml&quot;&gt;
small article&lt;/a&gt; on the &lt;a href=&quot;http://www.bbc.co.uk/blogs/radiolabs/&quot;&gt;BBC
Radio Labs blog&lt;/a&gt; about the new features of the &lt;a href=&quot;http://www.bbc.co.uk/programmes&quot;&gt;BBC Programmes&lt;/a&gt; website. Hopefully that
makes some sense and highlights some of the things we've been working on over
the last six months! Spoiler: lots of nice nice RDF :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/04/17/Brands-series-categories-and-tracklists-on-the-new-BBC-Programmes#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/04/17/Brands-series-categories-and-tracklists-on-the-new-BBC-Programmes#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/395171</wfw:commentRss>
      </item>
    
  <item>
    <title>A sneak peek at the BBC Music RDF</title>
    <link>http://blog.dbtune.org/post/2009/03/24/A-sneak-peek-at-the-BBC-Music-RDF</link>
    <guid isPermaLink="false">urn:md5:e7443ab080890006e3c7a1ff007b4bce</guid>
    <pubDate>Tue, 24 Mar 2009 10:15:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;The new &lt;a href=&quot;http://www.bbc.co.uk/blogs/bbcinternet/2009/03/bbc_music_website_relaunch.html&quot;&gt;
BBC Music&lt;/a&gt; website was launched yesterday, with a lot of Linked Data and RDF
goodness. BBC Music provides a truly &lt;a href=&quot;http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven&quot;&gt;REST
API&lt;/a&gt;. Congratulations to the &lt;a href=&quot;http://www.bbc.co.uk/music/developers/are&quot;&gt;whole team&lt;/a&gt;, they did an amazing
work! In short, that means that you can easily build applications on top of BBC
music data quite easily.&lt;/p&gt;
&lt;p&gt;For example, each artist in BBC Music has an RDF representation. For
example, &lt;a href=&quot;http://www.bbc.co.uk/music/artists/5b11f4ce-a62d-471e-81fc-a69a8278c7da&quot;&gt;Nirvana&lt;/a&gt;
has an &lt;a href=&quot;http://www.bbc.co.uk/music/artists/5b11f4ce-a62d-471e-81fc-a69a8278c7da.rdf&quot;&gt;RDF
representation&lt;/a&gt;, which exposes the aggregated BBC data about this band. The
site also supports content negotiation, so doing&lt;/p&gt;
&lt;pre&gt;
$ curl -L -H &amp;quot;Accept: application/rdf+xml&amp;quot; http://www.bbc.co.uk/music/artists/5b11f4ce-a62d-471e-81fc-a69a8278c7da
&lt;/pre&gt;
&lt;p&gt;will lead you to the RDF representation.&lt;/p&gt;
&lt;p&gt;Note that this representation includes links to further URIs, allowing you
to discover more data, e.g. about members of that band. It also includes a
&lt;code&gt;owl:sameAs&lt;/code&gt; link to the corresponding &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt; resource, allowing you to aggregate more data
about that band, extracted from Wikipedia's infoboxes.&lt;/p&gt;
&lt;p&gt;As an example of a &amp;quot;linked data journey&amp;quot;, you can get from &lt;a href=&quot;http://www.bbc.co.uk/music/artists/5b11f4ce-a62d-471e-81fc-a69a8278c7da&quot;&gt;Nirvana&lt;/a&gt;
to &lt;a href=&quot;http://www.bbc.co.uk/music/artists/ac05e29f-0561-4445-bb26-5562d2389531&quot;&gt;Krist
Novoselic&lt;/a&gt; to the &lt;a href=&quot;http://dbpedia.org/resource/Krist_Novoselic&quot;&gt;corresponding Krist Novoselic in
DBpedia&lt;/a&gt; to &lt;a href=&quot;http://dbpedia.org/resource/Compton%2C_California&quot;&gt;Compton, California&lt;/a&gt; to
&lt;a href=&quot;http://dbpedia.org/page/N.W.A&quot;&gt;N.W.A&lt;/a&gt;. Lots of really rich data to
do interesting thing, like, say, a &lt;a href=&quot;http://ceur-ws.org/Vol-405/paper3.pdf&quot;&gt;music recommender&lt;/a&gt; :-)&lt;/p&gt;
&lt;p&gt;BBC Music also includes RDF representation of reviews, e.g. &lt;a href=&quot;http://www.bbc.co.uk/music/reviews/9np2.rdf&quot;&gt;that one&lt;/a&gt;. It also includes an
RDF representation of the &lt;a href=&quot;http://www.bbc.co.uk/music/artists/a-z.rdf&quot;&gt;A to Z&lt;/a&gt;, and a search interface
returning RDF links to matched artists. For example, &lt;a href=&quot;http://www.bbc.co.uk/music/artists/a-z/by/bad%20religion.rdf&quot;&gt;here are&lt;/a&gt; the
results of a search for &amp;quot;Bad Religion&amp;quot;, which include a link to an &lt;a href=&quot;http://www.bbc.co.uk/music/artists/149e6720-4e4a-41a4-afca-6d29083fc091.rdf&quot;&gt;RDF
document about it&lt;/a&gt; on BBC Music.&lt;/p&gt;
&lt;p&gt;Congrats again to &lt;a href=&quot;http://metade.org/&quot;&gt;Patrick&lt;/a&gt; and &lt;a href=&quot;http://www.aelius.com/njh/&quot;&gt;Nicholas&lt;/a&gt;, who did this work on the RDF side of
BBC Music!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/03/24/A-sneak-peek-at-the-BBC-Music-RDF#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/03/24/A-sneak-peek-at-the-BBC-Music-RDF#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/365731</wfw:commentRss>
      </item>
    
  <item>
    <title>Thesis uploaded!</title>
    <link>http://blog.dbtune.org/post/2009/02/10/Thesis-uploaded</link>
    <guid isPermaLink="false">urn:md5:d330a09d33edc9011ba05c76043ed062</guid>
    <pubDate>Tue, 10 Feb 2009 11:30:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>dbtune</category><category>music ontology</category><category>phd</category><category>thesis</category>    
    <description>    &lt;p&gt;I just uploaded &lt;a href=&quot;http://moustaki.org/phd/&quot;&gt;my PhD thesis&lt;/a&gt;
entitled &lt;q&gt;A Distributed Music Information System&lt;/q&gt;, which I defended on the
22nd of January. My examiners were &lt;a href=&quot;http://www.ecs.soton.ac.uk/people/dder&quot;&gt;David de Roure&lt;/a&gt; from University of
Southampton and &lt;a href=&quot;http://www.dcs.kcl.ac.uk/staff/nicolas/&quot;&gt;Nicolas
Gold&lt;/a&gt; from King's College. My PhD supervisor was &lt;a href=&quot;http://www.elec.qmul.ac.uk/people/marks/index.htm&quot;&gt;Mark Sandler&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Information management is an important part of music technologies today,
covering the man- agement of public and personal collections, the construction
of large editorial databases and the storage of music analysis results. The
information management solutions that have emerged for these use-cases are
still isolated from each other. The information one of these solutions manages
does not benefit from the information another holds.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;In this thesis, we develop a distributed music information system that aims
at gathering music- related information held by multiple databases or
applications. To this end, we use Semantic Web technologies to create a unified
information environment. Web identifiers correspond to any items in the music
domain: performance, artist, musical work, etc. These web identifiers have
structured representations permitting sophisticated reuse by applications, and
these representations can quote other web identifiers leading to more
information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;We develop a formal ontology for the music domain. This ontology allows us
to publish and interlink a wide range of structured music-related data on the
Web. We develop an ontology evaluation methodology and use it to evaluate our
music ontology. We develop a knowledge representation framework for combining
structured web data and analysis tools to derive more information. We apply
these different technologies to publish a large amount of pre-existing
music-related datasets on the Web. We develop an algorithm to automatically
relate such datasets among each other. We create automated music-related
Semantic Web agents, able to aggregate musical resources, structured web data
and music processing tools to derive and publish new information. Finally, we
describe three of our applications using this distributed information
environment. These applications deal with personal collection management,
enhanced access to large audio streams available on the Web and music
recommendation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So far, just a PDF is available, as I am still fighting with LaTeX2HTML, but
there will be an HTML version some time soon :-) I am also planning to upload,
at the same place, some extra annexes and extra results I didn't include in the
main document. I think I will also blog here about some of the things included
in this thesis.&lt;/p&gt;
&lt;p&gt;In case you just want to jump to a particular chapter, I will just give some
keywords to the different thesis chapters below:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;Knowledge Representation and Semantic Web technologies: FOL, Description
Logics, RDF, Linked Data, OWL, N3.&lt;/li&gt;
&lt;li&gt;Conceptualisation of music-related information: web ontologies, &lt;a href=&quot;http://musicontology.com/&quot;&gt;music ontology&lt;/a&gt;, &lt;a href=&quot;http://purl.org/NET/c4dm/timeline.owl&quot;&gt;time ontology&lt;/a&gt;, &lt;a href=&quot;http://purl.org/NET/c4dm/event.owl&quot;&gt;event ontology&lt;/a&gt;, workflow-based
modelling&lt;/li&gt;
&lt;li&gt;Evaluation of the Music Ontology framework: ontology evaluation,
data-driven evaluation, task-based evaluation, latent dirichlet allocation&lt;/li&gt;
&lt;li&gt;Music processing workflows on the Web: workflows, &lt;a href=&quot;http://www.cs.toronto.edu/~bonner/ctr/&quot;&gt;concurrent transaction logic&lt;/a&gt;,
&lt;a href=&quot;http://www.w3.org/DesignIssues/Notation3&quot;&gt;N3&lt;/a&gt;, N3-Tr, DLP,
publication of dynamically generated results, Semantic Web Services&lt;/li&gt;
&lt;li&gt;A web of music-related data: &lt;a href=&quot;http://linkeddata.org/&quot;&gt;linking open
data&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/&quot;&gt;dbtune&lt;/a&gt;, automated interlinking,
quantification of structured web data&lt;/li&gt;
&lt;li&gt;Automated music processing agents: N3-Tr, &lt;a href=&quot;http://dbtune.org/henry/&quot;&gt;Henry&lt;/a&gt;, music analysis, workflows, prolog&lt;/li&gt;
&lt;li&gt;Case studies: &lt;a href=&quot;http://sourceforge.net/projects/motools/&quot;&gt;gnat&lt;/a&gt;,
&lt;a href=&quot;http://sourceforge.net/projects/motools/&quot;&gt;gnarql&lt;/a&gt;, personal music
collection management, zempod, music recommendation&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ol&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/02/10/Thesis-uploaded#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/02/10/Thesis-uploaded#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/325722</wfw:commentRss>
      </item>
    
  <item>
    <title>Prolog message queue</title>
    <link>http://blog.dbtune.org/post/2009/01/29/Prolog-message-queue</link>
    <guid isPermaLink="false">urn:md5:002be80c8c83086b2a7f86f479bcf3b2</guid>
    <pubDate>Thu, 29 Jan 2009 12:19:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
        <category>code</category><category>swi-prolog</category>    
    <description>    &lt;p&gt;It's been a long time since I last posted anything here, but things have
been pretty hectic recently (I am a doctor, now!! I'll post my thesis here
soon).&lt;/p&gt;
&lt;p&gt;I've just hacked a &lt;a href=&quot;http://code.google.com/p/km-rdf/source/browse/#svn/trunk/prologmq&quot;&gt;really
small implementation&lt;/a&gt; of an HTTP-driven SWI-Prolog message queue. I've often
find myself doing quite expensive computation in Prolog and the best way to
easily distribute it is to have a message queue on which you post messages to
process (in that case, Prolog terms), and a pool of workers pick messages and
process them. Then, if you find your program is still too slow, you can easily
add a couple of workers to help going faster.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2009/01/29/Prolog-message-queue#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2009/01/29/Prolog-message-queue#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/atom/comments/322143</wfw:commentRss>
      </item>
    
</channel>
</rss>
