<?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/">
<channel>
  <title>DBTune blog</title>
  <link>http://blog.dbtune.org/</link>
  <description>Creating a music-related web of data</description>
  <language>en</language>
  <pubDate>Mon, 12 May 2008 09:44:00 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Linked Data on the Web 2008</title>
    <link>http://blog.dbtune.org/post/2008/05/12/LDOW-and-WWW-2008</link>
    <guid isPermaLink="false">urn:md5:0c3f3aa8018a4959a6bd8edb6ca65a24</guid>
    <pubDate>Mon, 12 May 2008 08:53:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I just got back from Beijing (I did a two weeks trip around China after the
actual conference), where I attended the &lt;a href=&quot;http://events.linkeddata.org/ldow2008/&quot;&gt;Linked Data on the Web workshop&lt;/a&gt;
and the &lt;a href=&quot;http://www2008.org/&quot;&gt;WWW conference&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The workshop was really good, gathering lots of people from the &lt;a href=&quot;http://linkeddata.org/&quot;&gt;Linking Open Data community&lt;/a&gt; (it was the first time
I met most of these people, after more than one year working with them :-)
).&lt;/p&gt;
&lt;p&gt;The attendance was much higher than expected, with around 100 people
registered for the workshop.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3024/2452333056_a20849fd13.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;It started well with this sentence by &lt;a href=&quot;http://www.w3.org/People/Berners-Lee/&quot;&gt;Tim Berners-Lee&lt;/a&gt; in the workshop
introduction:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Linked Data is the Semantic Web as it should be. Linked Data is the Web as
it should be.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's a pretty good way to start a day :-) Then, &lt;a href=&quot;http://www.wiwiss.fu-berlin.de/institute/pwo/suhl/mitarbeiter/BizerChristian.html&quot;&gt;
Chris Bizer&lt;/a&gt; did a good overview of what the community has achieved in one
year, illustrated by the different versions of &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot;&gt;Richard's diagram&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2322/2437532339_301f2ece33.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;All the talks and papers were extremely high quality. I got particularly
interested by some of them, including &lt;a href=&quot;http://events.linkeddata.org/ldow2008/papers/11-berners-lee-hollenbach-tabulator-redux.pdf&quot;&gt;
Tim's presentation&lt;/a&gt; on the new &lt;a href=&quot;http://jena.hpl.hp.com/~afs/SPARQL-Update.html&quot;&gt;SPARQL/Update&lt;/a&gt; capabilities
of the &lt;a href=&quot;http://www.w3.org/2005/ajar/tab&quot;&gt;Tabulator data browser&lt;/a&gt;.
This allows easy interaction with &lt;strong&gt;data wikis&lt;/strong&gt;, where everyone
can add or correct information.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3271/2433794000_bced19be46.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I really liked &lt;a href=&quot;http://apassant.net/&quot;&gt;Alexandre Passant&lt;/a&gt;'s
presentation on the &lt;a href=&quot;http://events.linkeddata.org/ldow2008/papers/10-passant-me-owl-same-as.pdf&quot;&gt;Flickr
exporter&lt;/a&gt;, which is highlighting a mechanism that I used for the &lt;a href=&quot;http://dbtune.org/last-fm/&quot;&gt;Last.fm linked data exporter&lt;/a&gt;: linking several
identities on several web-sites is just a &lt;code&gt;owl:sameAs&lt;/code&gt; link away.
Alexandre also did another &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/AlexandrePassant_MeaningOfaTag.pdf&quot;&gt;
presentation&lt;/a&gt; on &lt;a href=&quot;http://moat-project.org/&quot;&gt;MOAT&lt;/a&gt; (Meaning of a
Tag), a really interesting project allowing to relate tags to Semantic Web
URIs. For example, it allows to easily draw a link between my tag &amp;quot;paris texas&amp;quot;
to &lt;a href=&quot;http://dbpedia.org/page/Paris,_Texas_(film)&quot;&gt;the movie Paris, Texas
in DBpedia&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I got a bit confused by &lt;a href=&quot;http://semanticgang.talis.com/paul-miller/&quot;&gt;Paul Miller&lt;/a&gt;'s &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/PaulMiller_LinkedDataWorkshop.pdf&quot;&gt;
presentation about licensing open data&lt;/a&gt;. I have been aware of these efforts
mainly by the work of the &lt;a href=&quot;http://www.okfn.org/&quot;&gt;Open Knowledge
Foundation&lt;/a&gt; and the &lt;a href=&quot;http://www.opendatacommons.org/&quot;&gt;Open Data
Commons&lt;/a&gt; project, and I think these are truly crucial issues: we need open
data, and &lt;strong&gt;explicit&lt;/strong&gt; licensing. But perhaps the audience was not
so well chosen: most (if not all) of us in the Linking Open Data community do
not own the data they publish as RDF and interlink. &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt; exports data extracted from Wikipedia,
&lt;a href=&quot;http://dbtune.org&quot;&gt;DBTune&lt;/a&gt; exports data from different
music-related sources such as &lt;a href=&quot;http://jamendo.com/&quot;&gt;Jamendo&lt;/a&gt; or
&lt;a href=&quot;http://last.fm&quot;&gt;Last.fm&lt;/a&gt;, etc. The only data that we can possibly
explicitly license are links (the only thing we actually own), and it does not
have any values without any data :-) So I guess the outreach should mainly be
done to &lt;q&gt;raw&lt;/q&gt; data publishers rather than Semantic Web
&lt;q&gt;translators&lt;/q&gt;?&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3148/2452336688_faccf75162.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;One of my personal highlights was also &lt;a href=&quot;http://beckr.org/&quot;&gt;Christian
Becker&lt;/a&gt;'s &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/ChristianBecker_DBpediaMobile.pdf&quot;&gt;
presentation about DBpedia mobile&lt;/a&gt;: a location-enabled linked data browser
for mobile devices., giving you nearby sights and detailed descriptions,
restaurants, hotels, etc. We chatted a bit after the workshop with Alexandre
and Christian about adding Last.fm events to the DBtune exporter to also
display nearby gigs (with optional filtering based on your
&lt;code&gt;foaf:interests&lt;/code&gt;, of course :-) ).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/JunZhao_Provenance_LODW.pdf&quot;&gt;Jun
Zhao's presentation&lt;/a&gt; about linked data and provenance for biological
resources was extremely interesting: they are dealing with problems strongly
similar to ours in a Music Information Retrieval context. How to trust a
particular statement (for example, a structural segmentation of a particular
track) found on the web? We need to know whether it was written by a human, or
derived through a set of algorithms, and in this case, we might want to choose
timbre-based instead of chroma-based workflows in the case of Rock music, for
example. This is the sort of things we implemented within our &lt;a href=&quot;http://code.google.com/p/km-rdf/&quot;&gt;Henry&lt;/a&gt; software (more to come on that
later, including online demo as soon as I put it on better hardware, and
(hopefully) a PhD :-D ).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.joanneum.at/en/fb2/iis/employees/employee-details.html?tx_bzdstaffdirectory_pi1%5BshowUid%5D=924&amp;amp;tx_bzdstaffdirectory_pi1%5BbackPid%5D=260&amp;amp;tx_bzdstaffdirectory_pi1%5BshowABC%5D=0&amp;amp;cHash=07b3460915&quot;&gt;
Wolfgang Halb&lt;/a&gt; did &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/LDOW08HalbRaimondHausenblas.pdf&quot;&gt;a
presentation&lt;/a&gt; about our &lt;a href=&quot;http://riese.joanneum.at/&quot;&gt;Riese&lt;/a&gt;
project, but more on that later as I wrote the back-end software powering it
and I'd like to give it a full blog entry soon.&lt;/p&gt;
&lt;p&gt;I did &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/YvesRaimond_AutomaticInterlinking.pdf&quot;&gt;
a presentation about automatic interlinking algorithms on the data web&lt;/a&gt;,
with a focus on music-related datasets. I detailed an algorithm we developed
for this purpose, propagating similarity measures around web data as long as we
can't take an interlinking (creating a bunch of &lt;code&gt;owl:sameAs&lt;/code&gt; links)
decision. This algorithm is good in the sense that it gives a
&lt;code&gt;really&lt;/code&gt; low rate of false-positives (on the test-set detailed in
&lt;a href=&quot;http://events.linkeddata.org/ldow2008/papers/18-raimond-sutton-automatic-interlinking.pdf&quot;&gt;
the paper&lt;/a&gt;, it made no wrong decisions. I blogged about this algorithm
&lt;a href=&quot;http://blog.dbtune.org/post/2008/03/06/Interlinking-music-datasets-on-the-Web&quot;&gt;
earlier&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2337/2433794680_51c4f3673d.jpg?v=0&quot; alt=&quot;C&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Some people expressed concerns about the proliferation of
&lt;code&gt;owl:sameAs&lt;/code&gt; links (highlighted in &lt;a href=&quot;http://events.linkeddata.org/ldow2008/slides/Bouquet_ENS_LDOW2008.pdf&quot;&gt;this
presentation by Paolo Bouquet&lt;/a&gt;). But I truly think it is a necessary thing,
as long as web identifiers are tied to their actual representation. I need to
be able to have a web identifier for a song in Jamendo and a web identifier for
the same song in Musicbrainz, and I need a way to link these together:
&lt;code&gt;owl:sameAs&lt;/code&gt; is perfect for that. I wouldn't trust a centralised
&amp;quot;identity&amp;quot; system (what actually is identity anyway? :-) ), as it would break
the nice decentralised information paradigm we're implementing within the
Linking Open Data project: we are not &lt;a href=&quot;http://freebase.com/&quot;&gt;Freebase&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anyway, lots of great people, a great time, lots of interesting discussions
and new ideas... I am really looking forward for &lt;a href=&quot;http://www2009.org/&quot;&gt;WWW 2009 in Madrid&lt;/a&gt; and the next workshop!!!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/05/12/LDOW-and-WWW-2008#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/05/12/LDOW-and-WWW-2008#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/238859</wfw:commentRss>
      </item>
    
  <item>
    <title>D2RQ mapping for Musicbrainz</title>
    <link>http://blog.dbtune.org/post/2008/04/07/D2R-mapping-for-Musicbrainz</link>
    <guid isPermaLink="false">urn:md5:855a2dde494d01ae7b4cfcbd513d0a14</guid>
    <pubDate>Mon, 07 Apr 2008 16:27:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I just started a &lt;a href=&quot;http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/&quot;&gt;D2R&lt;/a&gt; mapping for
&lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt;, which allows to create a
SPARQL end-point and to provide linked data access out of Musicbrainz fairly
easily. A D2R instance loaded with the mapping as it is now is &lt;a href=&quot;http://dbtune.org/musicbrainz/&quot;&gt;also available&lt;/a&gt; (be gentle, it is running
on a cheap computer :-) ).&lt;/p&gt;
&lt;p&gt;Added to the things that are available within the &lt;a href=&quot;http://fgiasson.com/blog/index.php/2007/05/22/browsing-musicbrainzs-dataset-via-uri-dereferencing/&quot;&gt;
Zitgist&lt;/a&gt; mapping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SPARQL end point ;&lt;/li&gt;
&lt;li&gt;Support for tags ;&lt;/li&gt;
&lt;li&gt;Supports a couple of advanced relationships (still working my way through
it, though) ;&lt;/li&gt;
&lt;li&gt;Instrument taxonomy directly generated from the db, and related to
performance events;&lt;/li&gt;
&lt;li&gt;Support for orchestras ;&lt;/li&gt;
&lt;li&gt;Linked with &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBpedia&lt;/a&gt; for places and
&lt;a href=&quot;http://www.lingvoj.org/&quot;&gt;Lingvoj&lt;/a&gt; for languages&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is still a &lt;strong&gt;lot&lt;/strong&gt; to do, though: it is really a start.
The mapping is available on the &lt;a href=&quot;http://sourceforge.net/projects/motools&quot;&gt;motools sourceforge project&lt;/a&gt;. I
hope to post a follow-up soon! (including examples of funny SPARQL queries :-)
).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; For some obscure port-forwarding reasons, the
SNORQL interface to the SPARQL end point does not work on the test server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 2:&lt;/strong&gt; This is &lt;a href=&quot;http://dbtune.org/musicbrainz/snorql/?query=SELECT+*+WHERE%0D%0A%7B%3Fp+foaf%3Aname+%22Tom+Petty%22%7D&amp;amp;prefixes=PREFIX+owl%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23%3E%0D%0APREFIX+xsd%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%23%3E%0D%0APREFIX+lingvoj%3A+%3Chttp%3A%2F%2Fwww.lingvoj.org%2Fontology%23%3E%0D%0APREFIX+rdfs%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23%3E%0D%0APREFIX+mbz%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmbz%23%3E%0D%0APREFIX+map%3A+%3Cfile%3A%2Fhome%2Fmoustaki%2Fwork%2Fmotools%2Fmusicbrainz%2Fd2r-server-0.4%2Fmbz_mapping_raw.n3%23%3E%0D%0APREFIX+vocab%3A+%3Chttp%3A%2F%2Fdbtune.org%2Fmusicbrainz%2Fresource%2Fvocab%2F%3E%0D%0APREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0APREFIX+db%3A+%3Chttp%3A%2F%2Fdbtune.org%2Fmusicbrainz%2Fresource%2F%3E%0D%0APREFIX+dc%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%0D%0APREFIX+bio%3A+%3Chttp%3A%2F%2Fpurl.org%2Fvocab%2Fbio%2F0.1%2F%3E%0D%0APREFIX+mo%3A+%3Chttp%3A%2F%2Fpurl.org%2Fontology%2Fmo%2F%3E%0D%0APREFIX+event%3A+%3Chttp%3A%2F%2Fpurl.org%2FNET%2Fc4dm%2Fevent.owl%23%3E%0D%0APREFIX+tags%3A+%3Chttp%3A%2F%2Fwww.holygoat.co.uk%2Fowl%2Fredwood%2F0.1%2Ftags%2F%3E%0D%0A&quot;&gt;
fixed&lt;/a&gt;. (thanks to the anonymous SPARQL crash tester which helped me find
the bug, by the way :-) )&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/04/07/D2R-mapping-for-Musicbrainz#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/04/07/D2R-mapping-for-Musicbrainz#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/228069</wfw:commentRss>
      </item>
    
  <item>
    <title>13.1 billion triples</title>
    <link>http://blog.dbtune.org/post/2008/04/02/DBTune-is-providing-131-billion-triples</link>
    <guid isPermaLink="false">urn:md5:caec5e3811fae613ce34168dfd6e9474</guid>
    <pubDate>Wed, 02 Apr 2008 12:14:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;After a rough estimation, it looks like the services hosted on &lt;a href=&quot;http://dbtune.org/&quot;&gt;DBTune&lt;/a&gt; provide access to 13.1 billion triples,
therefore making a significant addition to the &lt;a href=&quot;http://linkeddata.org/&quot;&gt;data web&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Here is the break-down of such an estimation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://dbtune.org/myspace/&quot;&gt;MySpace&lt;/a&gt;: 250 million people * 50
triples (in average) = 12.5 billion triples ;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dbtune.org/last-fm/&quot;&gt;AudioScrobbler&lt;/a&gt;: 1.5 million users
(only Europe?) * 400 triples = 600 million ;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo&lt;/a&gt;: 1.1 million triples +
5000 links to other data sources ;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dbtune.org/magnatune/&quot;&gt;Magnatune&lt;/a&gt;: 322 000 triples + 233
links ;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://dbtune.org/bbc/peel/&quot;&gt;BBC John Peel sessions&lt;/a&gt;: 277 000
triples + 2100 links ;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://purl.org/ontology/chord/#symbolservice&quot;&gt;Chord URI
service&lt;/a&gt;: I don't count it, as it is potentially infinite (the RDF
descriptions are generated from the chord symbol in the URI).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;However, &lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/&quot;&gt;SPARQL&lt;/a&gt;
end-points are not available for &lt;a href=&quot;http://audioscrobbler.net/&quot;&gt;AudioScrobbler&lt;/a&gt; and &lt;a href=&quot;http://myspace.com/&quot;&gt;MySpace&lt;/a&gt;, as the RDF is generated on-the-fly, from the
XML feeds for the earlier, and from scraping for the latter.&lt;/p&gt;
&lt;p&gt;Now, I wish linked data could be provided directly by the data sources
themselves :-) (Again, all the code used to run the DBTune services is
available in &lt;a href=&quot;http://sourceforge.net/projects/motools&quot;&gt;the motools
project on Sourceforge&lt;/a&gt;).&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/04/02/DBTune-is-providing-131-billion-triples#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/04/02/DBTune-is-providing-131-billion-triples#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/226282</wfw:commentRss>
      </item>
    
  <item>
    <title>The Quest for Canonical Spelling in music metadata</title>
    <link>http://blog.dbtune.org/post/2008/03/27/The-Quest-for-Canonical-Spelling-in-music-metadata</link>
    <guid isPermaLink="false">urn:md5:9020543aa0f6bd82d87a01365141fce1</guid>
    <pubDate>Thu, 27 Mar 2008 11:18:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://blog.last.fm/2008/03/25/fingerprinting-and-metadata-progress-report&quot;&gt;Last.fm
recently unveiled&lt;/a&gt; their new fingerprinting lookup mechanism. They did
aggregate quite a lot of fingerprints (650 million) using their &lt;a href=&quot;http://blog.last.fm/2007/12/07/client-14-released-fingerprinting-begins&quot;&gt;fingerprinting
software&lt;/a&gt;, which is a nice basis for such a lookup, perhaps bringing a
viable alternative to &lt;a href=&quot;http://www.musicip.com/dns/index.jsp&quot;&gt;Music
DNS&lt;/a&gt;. I gave it a try (I just had to build a &lt;a href=&quot;http://moustaki.org/resources/lastfm.fpclient.beta2.linux-64.tar.gz&quot;&gt;Linux 64
version&lt;/a&gt; of the lookup software), and was quite surprised by the results.
The quality of the fingerprinting looks indeed good, but here are the results
for a particular song:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;
&amp;lt;!DOCTYPE metadata SYSTEM &amp;quot;http://fingerprints.last.fm/xml/metadata.dtd&amp;quot;&amp;gt;
&amp;lt;metadata fid=&amp;quot;281948&amp;quot; lastmodified=&amp;quot;1205776219&amp;quot;&amp;gt;
&amp;lt;track confidence=&amp;quot;0.622890&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Leftover Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation: M.O.V.E.&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Leftover+Crack/_/Operation%3A+M.O.V.E.&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.327927&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Left&amp;amp;ouml;ver Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation: M.O.V.E.&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Left%C3%B6ver+Crack/_/Operation%3A+M.O.V.E.&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.007860&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Leftover Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation MOVE&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Leftover+Crack/_/Operation+MOVE&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.006180&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Leftover Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation M.O.V.E.&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Leftover+Crack/_/Operation+M.O.V.E.&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.004883&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Leftover Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation; M.O.V.E.&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Leftover+Crack/_/Operation%3B+M.O.V.E.&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.004826&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Left&amp;amp;ouml;ver Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;Operation M.O.V.E.&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Left%C3%B6ver+Crack/_/Operation+M.O.V.E.&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
&amp;lt;track confidence=&amp;quot;0.004717&amp;quot;&amp;gt;
    &amp;lt;artist&amp;gt;Left&amp;amp;ouml;ver Crack&amp;lt;/artist&amp;gt;
    &amp;lt;title&amp;gt;13 - operation m.o.v.e&amp;lt;/title&amp;gt;
    &amp;lt;url&amp;gt;http://www.last.fm/music/Left%C3%B6ver+Crack/_/13+-+operation+m.o.v.e&amp;lt;/url&amp;gt;
&amp;lt;/track&amp;gt;
....
&amp;lt;/metadata&amp;gt;
&lt;/pre&gt;
&lt;p&gt;And it goes on and on... There are 21 results for this single track, which
all actually correspond to this track.&lt;/p&gt;
&lt;p&gt;So, what is disturbing me here? After all, the first result holds textual
metadata that I could consider as somehow correct (even if that's not the way I
would spell this band's name, but they plan to put a voting system to solve
this sort of issues).&lt;/p&gt;
&lt;p&gt;The real problem is that there are 21 URI in last.fm for the same thing. The
emphasis of the last.fm metadata system is then probably on the textual
metadata: two different ways of spelling the name of a band = two bands. But I
do think it is wrong: for example, how would you handle the fact that the
Russian band &lt;a href=&quot;http://musicbrainz.org/artist/1f36a3a2-9687-4819-ac55-54d7ff0b8b88.html&quot;&gt;Ария&lt;/a&gt;
is spelled Aria in English? The two spellings are correct, and they correspond
to one unique band.&lt;/p&gt;
&lt;p&gt;In my opinion, the important thing is the identifier. As long as you have
one identifier for one single thing (an &lt;a href=&quot;http://purl.org/ontology/mo/MusicArtist&quot;&gt;artist&lt;/a&gt;, an &lt;a href=&quot;http://purl.org/ontology/mo/Record&quot;&gt;album&lt;/a&gt;, a &lt;a href=&quot;http://purl.org/ontology/mo/Track&quot;&gt;track&lt;/a&gt;), you're saved. The relationship
between a band, an artist, a track, etc. and its &lt;q&gt;label&lt;/q&gt; is clearly a
one-to-many one: the quest for a canonical spelling will never end... And what
worries me even more is that it tends to kill the spellings in all languages
but English (especially if a voting system is in place?).&lt;/p&gt;
&lt;p&gt;Once you have a single identifier for a single thing within your system, you
can start attaching labels to it, perhaps with a language tag. Then, it is up
to the presentation layer to show you the label matching your preferences. And
if you tend for such a model, &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt;
(centralised and moderated) or &lt;a href=&quot;http://www.w3.org/RDF/&quot;&gt;RDF&lt;/a&gt; and the
&lt;a href=&quot;http://purl.org/ontology/mo/&quot;&gt;Music Ontology&lt;/a&gt; (decentralised and
not moderated) are probably the way to go.&lt;/p&gt;
&lt;p&gt;I guess this emphasis on textual metadata is mainly due to the &lt;a href=&quot;http://www.id3.org/&quot;&gt;ID3&lt;/a&gt; legacy and other embedded metadata format, which
allowed just one single title for the track, the album and the artist to be
associated with an audio-file?&lt;/p&gt;
&lt;p&gt;I think that the real problem for last.fm will now be to match all the
different identifiers they have for a single thing in their system, which is
known as the record linkage problem in the database/Semantic Web community. But
I also think this is not too far-fetched, as they already began to link their
database to the Musicbrainz one?&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/03/27/The-Quest-for-Canonical-Spelling-in-music-metadata#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/03/27/The-Quest-for-Canonical-Spelling-in-music-metadata#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/224476</wfw:commentRss>
      </item>
    
  <item>
    <title>Describing a recording session in RDF</title>
    <link>http://blog.dbtune.org/post/2008/03/18/Describing-a-recording-session-in-RDF-using-the-Music-Ontology</link>
    <guid isPermaLink="false">urn:md5:6822edac783f29762683bb14f90f566b</guid>
    <pubDate>Tue, 18 Mar 2008 12:49:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://dannyayers.com/&quot;&gt;Danny Ayers&lt;/a&gt; just posted a new &lt;a href=&quot;http://talis.com/platform&quot;&gt;Talis Platform&lt;/a&gt; application idea, dealing with
&lt;a href=&quot;http://blogs.talis.com/n2/archives/41&quot;&gt;music/audio equipment&lt;/a&gt;. As I
was wondering it would actually be nice to have a set of web identifiers and
corresponding RDF representation for audio equipment, I remembered a small
&lt;a href=&quot;http://musicontology.com/&quot;&gt;Music Ontology&lt;/a&gt; example I wrote about a
year ago. In fact, the Music Ontology (along with the &lt;a href=&quot;http://purl.org/NET/c4dm/event.owl&quot;&gt;Event ontology&lt;/a&gt;) is expressive enough
to handle the description of recording sessions. Here is a &lt;a href=&quot;http://wiki.musicontology.com/index.php/Description_of_a_recording_session&quot;&gt;small
excerpt&lt;/a&gt; of such a description:&lt;/p&gt;
&lt;pre&gt;
@prefix mo: &amp;lt;http://purl.org/ontology/mo/&amp;gt;.
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.
@prefix event: &amp;lt;http://purl.org/NET/c4dm/event.owl#&amp;gt;.
@prefix rd: &amp;lt;http://example.org/audioequipment/&amp;gt;.
@prefix : &amp;lt;#&amp;gt;.

:rec a mo:Recording;
   rdfs:label “live recording of my band in studio”;
   event:sub_event :guitar1, :guitar2, :drums1, :kick1, :sing.

:sing a mo:Recording;
   rdfs:label “Voice recorded with a SM57″;
   event:factor rd:sm57;
   event:place [rdfs:label “Middle of the room-I could be more precise here”].

:kick1 a mo:Recording;
   rdfs:label “Kick drum using a Shure PG52″;
   event:factor rd:pg52;
   event:place [rdfs:label “Kick drum microphone location”].
&lt;/pre&gt;
&lt;p&gt;Well, it would indeed by nice if the &lt;code&gt;rd&lt;/code&gt; namespace could point
to something real! Who would fancy RDFising &lt;a href=&quot;http://www.harmony-central.com/&quot;&gt;Harmony Central&lt;/a&gt;? :-)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/03/18/Describing-a-recording-session-in-RDF-using-the-Music-Ontology#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/03/18/Describing-a-recording-session-in-RDF-using-the-Music-Ontology#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/221943</wfw:commentRss>
      </item>
    
  <item>
    <title>MySpace RDF service</title>
    <link>http://blog.dbtune.org/post/2008/03/12/MySpace-RDF-service</link>
    <guid isPermaLink="false">urn:md5:53fb4adebfbd9f7023e79f2e55a78659</guid>
    <pubDate>Wed, 12 Mar 2008 17:20:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Thanks to the amazing work of &lt;a href=&quot;http://kurtisrandom.com/&quot;&gt;Kurt&lt;/a&gt;
and &lt;a href=&quot;http://stuffalsothings.blogspot.com/&quot;&gt;Ben&lt;/a&gt; on the &lt;a href=&quot;https://sourceforge.net/projects/mypyspace&quot;&gt;MyPySpace&lt;/a&gt; project, members of
the MySpace social network can have a Semantic Web URI!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dbtune.org/myspace/&quot;&gt;This small service&lt;/a&gt; provides such
URIs and corresponding &lt;a href=&quot;http://xmlns.com/foaf/spec/&quot;&gt;FOAF&lt;/a&gt; (top
friends, depiction, name) and &lt;a href=&quot;http://musicontology.com&quot;&gt;Music
Ontology&lt;/a&gt; (URIs of available tracks in the streaming audio cache) RDF
representations.&lt;/p&gt;
&lt;p&gt;That means I can add such statements to my FOAF profile:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;http://moustaki.org/foaf.rdf#moustaki&amp;gt; foaf:knows &amp;lt;http://dbtune.org/myspace/lesversaillaisesamoustache&amp;gt;.
&lt;/pre&gt;
&lt;p&gt;And then, using &lt;a href=&quot;http://dig.csail.mit.edu/2007/tab/&quot;&gt;the Tabulator
Firefox extension&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dbtune.org/myspace/&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.screenshot41_m.jpg&quot; alt=&quot;MySpace friends&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS: The service is still a bit slow and can be highly unstable, though - it
is slightly faster with URIs using MySpace UIDs.&lt;/p&gt;
&lt;p&gt;PS2: We don't host any data - everything is scraped on the fly using the
&lt;a href=&quot;https://sourceforge.net/projects/mypyspace&quot;&gt;MyPySpace&lt;/a&gt; tools.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/03/12/MySpace-RDF-service#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/03/12/MySpace-RDF-service#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/220025</wfw:commentRss>
      </item>
    
  <item>
    <title>Finding a new flat using Exhibit</title>
    <link>http://blog.dbtune.org/post/2008/03/10/Finding-a-new-flat-using-Exhibit</link>
    <guid isPermaLink="false">urn:md5:a30423a6d790ced61bea37365ee4f7b9</guid>
    <pubDate>Mon, 10 Mar 2008 13:21:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;You can't play around with music data and RDF all day. Sometimes, you also
need to find accommodation in the real world :-) But, as it was kind of
difficult to motivate myself to the task, I thought it'd be easier if there was
something RDFy about it.&lt;/p&gt;
&lt;p&gt;So I created a new &lt;a href=&quot;http://github.com/moustaki/flatscrap/tree/master&quot;&gt;project on github&lt;/a&gt;
(thanks for the invite, &lt;a href=&quot;http://tommorris.org/&quot;&gt;Tom&lt;/a&gt;, github is
great!!), able to scrape RDF data out of &lt;a href=&quot;http://www.gumtree.com/&quot;&gt;Gum
Tree&lt;/a&gt;. This python hack is able to scrape single advertisements for flats on
Gum Tree, geo-code the corresponding location to find the lat/long coordinates,
and to output the corresponding data as RDF. It is also able to process a
&lt;a href=&quot;http://www.gumtree.com/cgi-bin/display.pl?page=rss_feeds&quot;&gt;GumTree RSS
feed&lt;/a&gt; to scrape multiple ads, and to produce a &lt;a href=&quot;http://simile.mit.edu/wiki/Exhibit&quot;&gt;Exhibit 2.0&lt;/a&gt; JSON file, so it becomes
really easy to create an Exhibit out of Gum Tree.&lt;/p&gt;
&lt;p&gt;For example, &lt;a href=&quot;http://moustaki.org/flatscrap/&quot;&gt;this Exhibit&lt;/a&gt; shows
the last 40 posted Gum Tree ads for one bedroom flats, north of the river.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/screenshot36.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.screenshot36_m.jpg&quot; alt=&quot;Gum Tree Exhibit&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/03/10/Finding-a-new-flat-using-Exhibit#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/03/10/Finding-a-new-flat-using-Exhibit#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/218707</wfw:commentRss>
      </item>
    
  <item>
    <title>Interlinking music datasets on the Web</title>
    <link>http://blog.dbtune.org/post/2008/03/06/Interlinking-music-datasets-on-the-Web</link>
    <guid isPermaLink="false">urn:md5:9565f93a13d206981449b299e8569678</guid>
    <pubDate>Thu, 06 Mar 2008 11:21:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;The paper we wrote with &lt;a href=&quot;http://sonictruths.net/&quot;&gt;Christopher
Sutton&lt;/a&gt; and Mark Sandler has been accepted to the &lt;a href=&quot;http://events.linkeddata.org/ldow2008/&quot;&gt;Linking Data on the Web&lt;/a&gt; workshop
at &lt;a href=&quot;http://www2008.org/&quot;&gt;WWW&lt;/a&gt;, and it is now &lt;a href=&quot;http://events.linkeddata.org/ldow2008/papers/18-raimond-sutton-automatic-interlinking.pdf&quot;&gt;
available from the workshop website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This paper explains in a bit more details (including pseudocode and the
evaluation of two implementations of it) the algorithm I already described
briefly in &lt;a href=&quot;http://blog.dbtune.org/post/2007/06/11/Linking-open-data%3A-interlinking-the-Jamendo-and-the-Musicbrainz-datasets&quot;&gt;
previous&lt;/a&gt; &lt;a href=&quot;http://blog.dbtune.org/post/2007/08/30/GNAT-01-released&quot;&gt;posts&lt;/a&gt; (oh yeah,
&lt;a href=&quot;http://blog.dbtune.org/post/2007/12/04/Linking-open-data%3A-interlinking-the-BBC-John-Peel-sessions-and-the-DBPedia-datasets&quot;&gt;
this one&lt;/a&gt; too).&lt;/p&gt;
&lt;p&gt;The problem is: how can you automatically derive &lt;code&gt;owl:sameAs&lt;/code&gt;
links between two different, previously unconnected, web datasets? For example,
how can I state that &lt;a href=&quot;http://www.jamendo.com/en/artist/both&quot;&gt;Both in
Jamendo&lt;/a&gt; is the same as &lt;a href=&quot;http://musicbrainz.org/artist/0781a3f3-645c-45d1-a84f-76b4e4decf6d.html&quot;&gt;Both
in Musicbrainz&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;The paper studies three different approaches. The first one is just a simple
literal lookup (so in the previous example, it just fails, because there are
two artists and a gazillion of tracks/records holding &lt;code&gt;Both&lt;/code&gt; in
their titles, in Musicbrainz). The second one is a constrained literal lookup
(we specifically look for an artist, a record, a track, etc.). Our previous
example also fails, because there are two matching artists in Musicbrainz for
&lt;code&gt;Both&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The algorithm we describe in &lt;a href=&quot;http://events.linkeddata.org/ldow2008/papers/18-raimond-sutton-automatic-interlinking.pdf&quot;&gt;
the paper&lt;/a&gt; can intuitively be described as: &lt;q&gt;if two artists made albums
with the same title, they have better chances to be similar&lt;/q&gt;. It will browse
&lt;a href=&quot;http://en.wikipedia.org/wiki/Linked_Data&quot;&gt;linked data&lt;/a&gt; in order to
aggregate further clues and be confident enough to disambiguate among several
matching resources.&lt;/p&gt;
&lt;p&gt;Although not specific to the music domain, we did evaluate it in two
music-related contexts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Interlinking of &lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo&lt;/a&gt; and
&lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt;, using a &lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/dbtune/ldmapper/&quot;&gt;SWI-Prolog
implementation&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;Interlinking of personal music collections and &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt; (using the &lt;a href=&quot;http://blog.dbtune.org/post/2007/08/30/GNAT-01-released&quot;&gt;GNAT software&lt;/a&gt;,
SVN version).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For the second one, we tried to cover a wide range of possible metadata
mistakes, and checked how well our algorithm was copping with such bad
metadata. A week ago, I compared the results with the &lt;a href=&quot;http://www.google.co.uk/url?q=http://musicbrainz.org/doc/PicardDownload&amp;amp;sa=X&amp;amp;oi=smap&amp;amp;resnum=1&amp;amp;ct=result&amp;amp;cd=1&amp;amp;usg=AFQjCNGq53Tuucpdcc_VYqeGjlXAX00i1w&quot;&gt;
Picard Musicbrainz tagger 0.9.0&lt;/a&gt;, and here are the results (you also have to
keep in mind that our algorithm is quite a bit slower, as the Musicbrainz API
is not really designed for the sort of things we do with it), for the track
&lt;q&gt;I Want to Hold Your Hand&lt;/q&gt; by the Beatles, in the &lt;q&gt;Meet the Beatles!&lt;/q&gt;
album:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Artist field missing:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the &lt;q&gt;And Now: The Beatles&lt;/q&gt;
compilation&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Artist set to random string:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on another release (track 1 of &lt;q&gt;The
Capitol Albums, Volume 1 (disc 1: Meet the Beatles!)&lt;/q&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Artist set to &lt;q&gt;Beetles&lt;/q&gt;:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on another release (track 1 of &lt;q&gt;The
Capitol Albums, Volume 1 (disc 1: Meet the Beatles!)&lt;/q&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Artist set to &lt;q&gt;Al Green&lt;/q&gt; (who actually made a cover of that song):
&lt;ul&gt;
&lt;li&gt;GNAT: Mapped to Al Green's cover version on &lt;q&gt;Soul Tribute to the
Beatles&lt;/q&gt;&lt;/li&gt;
&lt;li&gt;Picard: Same&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Album field missing:
&lt;ul&gt;
&lt;li&gt;GNAT: Matches the same track, but on another release (track 1 of &lt;q&gt;The
Capitol Albums, Volume 1 (disc 1: Meet the Beatles!)&lt;/q&gt;)&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the single&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Album set to random string:
&lt;ul&gt;
&lt;li&gt;GNAT: Matches the same track, but on another release (track 1 of &lt;q&gt;The
Capitol Albums, Volume 1 (disc 1: Meet the Beatles!)&lt;/q&gt;)&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the single&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Album set to &lt;q&gt;Meat the Beatles&lt;/q&gt;:
&lt;ul&gt;
&lt;li&gt;GNAT: Matches the same track, but on another release (track 1 of &lt;q&gt;The
Capitol Albums, Volume 1 (disc 1: Meet the Beatles!)&lt;/q&gt;)&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the compilation &lt;q&gt;The Beatles
Beat&lt;/q&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Track set to random string:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: No results&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Track set to &lt;q&gt;I Wanna Hold Your Hand&lt;/q&gt;:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the compilation &lt;q&gt;The Beatles
Beat&lt;/q&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Perfect metadata:
&lt;ul&gt;
&lt;li&gt;GNAT: Correct&lt;/li&gt;
&lt;li&gt;Picard: Matches the same track, but on the compilation &lt;q&gt;The Beatles
Beat&lt;/q&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Most of the compilation results of Picard are actually not wrong, as the
track length of our test file is closer to the track length on the compilation
than the track length on the &lt;q&gt;Meet the Beatles&lt;/q&gt; album.&lt;/p&gt;
&lt;p&gt;Of course, this is not an extensive evaluation of how the Picard lookup
mechanism compares with GNAT. And GNAT is not able to &lt;q&gt;compete&lt;/q&gt; at all
with Picard, as it was clearly not designed for the same reasons (GNAT is meant
to interlink &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot;&gt;RDF
datasets&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;The python implementation of our algorithm is under the BSD license, and
&lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/gnat/&quot;&gt;available in
the motools sourceforge project&lt;/a&gt;. The Prolog implementation (working on RDF
datasets) is also &lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/dbtune/ldmapper/&quot;&gt;available
in the motools sourceforge project&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/03/06/Interlinking-music-datasets-on-the-Web#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/03/06/Interlinking-music-datasets-on-the-Web#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/217278</wfw:commentRss>
      </item>
    
  <item>
    <title>Playing with SPARQL and XMPP</title>
    <link>http://blog.dbtune.org/post/2008/02/25/Playing-with-SPARQL-and-XMPP</link>
    <guid isPermaLink="false">urn:md5:00ad5ae83eb0fbcb5e0d95cba6075b0e</guid>
    <pubDate>Mon, 25 Feb 2008 11:04:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Chatting with &lt;a href=&quot;http://danbri.org/&quot;&gt;Dan Brickley&lt;/a&gt; at the &lt;a href=&quot;http://blog.dbtune.org/post/2008/02/17/Yay-for-SemanticCamp&quot;&gt;Semantic Camp&lt;/a&gt;
last week got me quite curious about mixing &lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/&quot;&gt;SPARQL&lt;/a&gt; and &lt;a href=&quot;http://www.xmpp.org/&quot;&gt;XMPP&lt;/a&gt;, so I decided to give it a try :-)&lt;/p&gt;
&lt;p&gt;I first tried &lt;a href=&quot;http://crschmidt.net/semweb/sparqlxmpp/&quot;&gt;sparqlxmpp&lt;/a&gt; by &lt;a href=&quot;http://crschmidt.net/&quot;&gt;Chris Schmidt&lt;/a&gt;, a Python implementation using
redland as a back-end. Unfortunately, I did run into some troubles (a weird
error attribute being inserted in the XML between the sending and the
receiving, which made the whole thing crash).&lt;/p&gt;
&lt;p&gt;So I decided to give a try at &lt;a href=&quot;http://aksw.org/Projects/xOperator&quot;&gt;xOperator&lt;/a&gt;, which 0.1 version was
announced last week. It is really easy to use and flexible (notably through the
fact that you can specify third-party SPARQL end-points as new datasets, and
the ability to template SPARQL queries (a bit like &lt;a href=&quot;http://semsol.org/semcamp/sparqlbot&quot;&gt;SparqlBot&lt;/a&gt;)).&lt;/p&gt;
&lt;p&gt;Here is the result. You can add &lt;code&gt;jamendo@jabber.org&lt;/code&gt; to your
Jabber roster, which provides SPARQL/XMPP on top of the &lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo SPARQL end-point&lt;/a&gt;. Then, here is an
example session (&lt;code&gt;moustaki&lt;/code&gt; is me, and &lt;code&gt;jamendo&lt;/code&gt; is the
xoperator instance):&lt;/p&gt;
&lt;pre&gt;
&amp;lt;moustaki&amp;gt; list templates
&amp;lt;jamendo&amp;gt; These are the defined templates:
&amp;lt;jamendo&amp;gt; LIST ME * ARTISTS  select ?n where {?a rdf:type mo:MusicArtist; foaf:name ?n} LIMIT %%1%%
&amp;lt;jamendo&amp;gt; GIVE ME THE LOCATION OF *  select ?l where {?a a mo:MusicArtist;foaf:name '%%1%%'; foaf:based_near ?g. ?g 
                &amp;lt;http://www.geonames.org/ontology#name&amp;gt; ?l}
&amp;lt;jamendo&amp;gt; GIVE ME ALBUMS MADE BY *  select ?l where {?a a mo:MusicArtist; foaf:name '%%1%%'; foaf:made ?r. ?r a mo:Record; dc:title ?l}
&amp;lt;jamendo&amp;gt; WHERE CAN I GET *  select ?d where {?a dc:title '%%1%%'; mo:available_as ?d}
&amp;lt;jamendo&amp;gt; GIVE ME THE LOCATION OF *  select ?l where {?a a mo:MusicArtist;foaf:name '%%1%%'; foaf:based_near ?g. ?g 
                &amp;lt;http://www.geonames.org/ontology#name&amp;gt; ?l}

&amp;lt;moustaki&amp;gt; list me 5 artists
&amp;lt;jamendo&amp;gt; Store jamendo answered: 
&amp;lt;jamendo&amp;gt; &amp;quot;Cicada&amp;quot;
&amp;lt;jamendo&amp;gt; &amp;quot;Hace Soul&amp;quot;
&amp;lt;jamendo&amp;gt; &amp;quot;vincent j&amp;quot;
&amp;lt;jamendo&amp;gt; &amp;quot;NoU&amp;quot;
&amp;lt;jamendo&amp;gt; &amp;quot;Margin of Safety&amp;quot;

&amp;lt;moustaki&amp;gt; give me the location of Cicada
&amp;lt;jamendo&amp;gt; Store jamendo answered: 
&amp;lt;jamendo&amp;gt; &amp;quot;Département des Bouches-du-Rhône&amp;quot;

&amp;lt;moustaki&amp;gt; give me albums made by Cicada
&amp;lt;jamendo&amp;gt; Store jamendo answered: 
&amp;lt;jamendo&amp;gt; &amp;quot;Rebirth&amp;quot;   
&amp;lt;jamendo&amp;gt; &amp;quot;AuthentiK Yogourt&amp;quot;

&amp;lt;moustaki&amp;gt; where can I get AuthentiK Yogourt
&amp;lt;jamendo&amp;gt; Store jamendo answered: 
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/album/id/album/p2p/redirect/8309/?p2pnet=bittorrent&amp;amp;are=mp32&amp;gt;
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/album/id/album/p2p/redirect/8309/?p2pnet=bittorrent&amp;amp;are=ogg3&amp;gt;
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/album/id/album/p2p/redirect/8309/?p2pnet=ed2k&amp;amp;are=mp32&amp;gt;
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/album/id/album/p2p/redirect/8309/?p2pnet=ed2k&amp;amp;are=ogg3&amp;gt;
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/track/id/album/audio/play/8309/?item_o=track_no_asc&amp;amp;aue=ogg2&amp;amp;n=all&amp;gt;
&amp;lt;jamendo&amp;gt; &amp;lt;http://www.jamendo.com/get/track/id/album/audio/xspf/8309/?item_o=track_no_asc&amp;amp;aue=ogg2&amp;amp;n=all&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Now, making it interact with &lt;a href=&quot;http://sourceforge.net/projects/motools/&quot;&gt;GNAT and GNARQL&lt;/a&gt;, two tools able
to create a SPARQL end point holding information about your personal music
collection, is the next step :)&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/02/25/Playing-with-SPARQL-and-XMPP#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/02/25/Playing-with-SPARQL-and-XMPP#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/213608</wfw:commentRss>
      </item>
    
  <item>
    <title>Yay for SemanticCamp!</title>
    <link>http://blog.dbtune.org/post/2008/02/17/Yay-for-SemanticCamp</link>
    <guid isPermaLink="false">urn:md5:3a35fb6ceed59f58e7b92c417a6ee250</guid>
    <pubDate>Sun, 17 Feb 2008 18:55:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I was at the &lt;a href=&quot;http://semanticcamp.tommorris.org/&quot;&gt;SemanticCamp&lt;/a&gt;
event this week-end - it was great fun! Lots and lots of
Semantic-Web/Microformat geeks! We did a small &lt;a href=&quot;http://www.elec.qmul.ac.uk/digitalmusic/&quot;&gt;C4DM&lt;/a&gt; session, on the Saturday,
with &lt;a href=&quot;http://sonictruths.net/&quot;&gt;Chris&lt;/a&gt;, &lt;a href=&quot;http://kurtisrandom.blogspot.com/&quot;&gt;Kurt&lt;/a&gt; and David, basically getting
through the &lt;a href=&quot;http://musicontology.com/&quot;&gt;Music Ontology&lt;/a&gt;, interlinked
music datasets (especially &lt;a href=&quot;http://kurtisrandom.blogspot.com/2008/02/wagner-is-center-of-universe.html&quot;&gt;the
new classical music composers one&lt;/a&gt;), softwares in the &lt;a href=&quot;http://sf.net/project/motools&quot;&gt;MOTOOLS sourceforge project&lt;/a&gt; (mainly GNAT,
our music collection linker, and GNARQL, our music information aggregator,
showing a live demo of &lt;a href=&quot;http://blog.dbtune.org/post/2008/02/06/Playing-with-Linked-Data-Jamendo-Geonames-Mazzle-and-Songbird&quot;&gt;
this screencast&lt;/a&gt;). We finished on a SPARQL end-point providing access to
content-based features, based on our &lt;a href=&quot;http://code.google.com/p/km-rdf/&quot;&gt;Henry&lt;/a&gt; software.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.getsemantic.com/wiki/User_talk:YvesRaimond&quot;&gt;Slides, code
and demos are available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2382/2290397141_a126674f0a.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;My personal highlights of the &lt;a href=&quot;http://www.getsemantic.com/wiki/Saturday_Schedule&quot;&gt;Saturday&lt;/a&gt; were the
&lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBPedia&lt;/a&gt; presentation by &lt;a href=&quot;http://www.georgikobilarov.com/&quot;&gt;Georgi&lt;/a&gt;, the &lt;a href=&quot;http://www.slideshare.net/covert/semanticcamplondon-12th-february-2008/&quot;&gt;Automatic
indexing of science&lt;/a&gt; by &lt;a href=&quot;http://www.lexical.org.uk/&quot;&gt;Andrew&lt;/a&gt;, and
the &lt;a href=&quot;http://www.bbc.co.uk/programmes/&quot;&gt;BBC /programmes&lt;/a&gt;
presentation, where they finally unveiled their evil plans :-)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2343/2269287828_85324529d7.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I did join them at the end to talk about one of the bubble on their
pentagram of data, the &lt;a href=&quot;http://www.bbc.co.uk/ontologies/programmes/&quot;&gt;RDF programmes data&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On the &lt;a href=&quot;http://www.getsemantic.com/wiki/Sunday_Schedule&quot;&gt;Sunday&lt;/a&gt;,
we had a really great discussion about audio/video on the Semantic Web, with
people from &lt;a href=&quot;http://www.joost.com/&quot;&gt;Joost&lt;/a&gt;, from the BBC, from
&lt;a href=&quot;http://www.talis.com/&quot;&gt;Talis&lt;/a&gt; and from &lt;a href=&quot;http://uriplay.org/&quot;&gt;URIPlay&lt;/a&gt;. I guess one of the main achievement was the
mapping of the URIPlay ontology and the BBC one (well, ok, it was just a
&lt;code&gt;owl:sameAs&lt;/code&gt; away :-) ). I did not actually play, but the
Semantopoly game looked like great fun!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2118/2271962652_1d45cb815c.jpg?v=1203325505&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I really enjoyed &lt;a href=&quot;http://www.aelius.com/~njh/&quot;&gt;Nicholas&lt;/a&gt;
presentation about streaming RDF along with radio streams, also, with his neat
hardware hacks to create a Wifi radio station out of a vintage Philips one!
Then, I guess we had quite a geeky session with &lt;a href=&quot;http://kmi.open.ac.uk/people/tom/html&quot;&gt;Tom&lt;/a&gt;, crawling the &lt;a href=&quot;http://richard.cyganiak.de/2007/10/lod/&quot;&gt;Linking Open Data cloud&lt;/a&gt; with
CURL, and hand-editing a FOAF file to manage several online identities:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2224/2274192306_5278c1f24d.jpg?v=0&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I found &lt;a href=&quot;http://premasagar.com/&quot;&gt;Premasagar&lt;/a&gt; presentation on
&lt;a href=&quot;http://premasagar.com/events/semanticcamplondon/demo&quot;&gt;compound
microformats&lt;/a&gt; really interesting, as it made me realise a particular
&amp;quot;limitation&amp;quot; of microformats (perhaps I am not using exactly the right word,
here) that I really didn't get before.&lt;/p&gt;
&lt;p&gt;Not to mention the great beers on Saturday, etc. etc. :-) It was a really
great week-end! Thank you &lt;a href=&quot;http://tommorris.org/&quot;&gt;Tom&lt;/a&gt; and &lt;a href=&quot;http://vanirsystems.com/&quot;&gt;Daniel&lt;/a&gt;!!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/02/17/Yay-for-SemanticCamp#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/02/17/Yay-for-SemanticCamp#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/210391</wfw:commentRss>
      </item>
    
  <item>
    <title>Playing with Linked Data, Jamendo, Geonames, Slashfacet and Songbird</title>
    <link>http://blog.dbtune.org/post/2008/02/06/Playing-with-Linked-Data-Jamendo-Geonames-Mazzle-and-Songbird</link>
    <guid isPermaLink="false">urn:md5:98e1655701dab3dcab5d60824bad0904</guid>
    <pubDate>Wed, 06 Feb 2008 23:02:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Today, I made a &lt;a href=&quot;http://dbtune.org/screencasts/songbird-map/&quot;&gt;small
screencast&lt;/a&gt; about mixing the following ingredients:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://linkeddata.org/&quot;&gt;Linked Data&lt;/a&gt;, and in particular
&lt;a href=&quot;http://musicontology.com&quot;&gt;Music Ontology&lt;/a&gt; data ;&lt;/li&gt;
&lt;li&gt;Links from the &lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo DBTune
server&lt;/a&gt; to both &lt;a href=&quot;http://geonames.org/&quot;&gt;Geonames&lt;/a&gt; and &lt;a href=&quot;http://developer.jamendo.com/fr/wiki/MusiclistApi&quot;&gt;the Jamendo playlist
generation REST web service&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;The wonderful &lt;a href=&quot;http://e-culture.multimedian.nl/software/ClioPatria.shtml&quot;&gt;ClioPatria
software&lt;/a&gt;, and in particular &lt;a href=&quot;http://slashfacet.semanticweb.org/&quot;&gt;/facet&lt;/a&gt;, developed by &lt;a href=&quot;http://www.cwi.nl/~hildebra&quot;&gt;Michiel Hildebrand&lt;/a&gt; ;&lt;/li&gt;
&lt;li&gt;And, last but not least, the amazing &lt;a href=&quot;http://www.songbirdnest.com/&quot;&gt;Songbird&lt;/a&gt; software.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of that was extremely easy to set up (it actually took me more time to
figure out how to make a screencast on a Linux box :-) which I finally did
using &lt;a href=&quot;http://www.unixuser.org/~euske/vnc2swf/pyvnc2swf.html&quot;&gt;vnc2swf&lt;/a&gt;).
Basically, just some &lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/jamendo-mazzle/&quot;&gt;tweaked
configuration files for ClioPatria&lt;/a&gt;, and a small CSS hack, and that was
it...&lt;/p&gt;
&lt;p&gt;The result is there:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://dbtune.org/screencasts/songbird-map/&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.screenshot32_m.jpg&quot; alt=&quot;Songbird, Linked Data, Mazzle and Jamendo&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Note that only a few Jamendo artists are displayed now... Otherwise, Google
Maps would just crash my laptop :-) ).&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/02/06/Playing-with-Linked-Data-Jamendo-Geonames-Mazzle-and-Songbird#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/02/06/Playing-with-Linked-Data-Jamendo-Geonames-Mazzle-and-Songbird#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/206177</wfw:commentRss>
      </item>
    
  <item>
    <title>Pushing your Last.FM friends in the FOAF-O-Sphere</title>
    <link>http://blog.dbtune.org/post/2008/01/22/Pushing-your-LastFM-friends-in-the-FOAF-O-Sphere</link>
    <guid isPermaLink="false">urn:md5:05e7e7de9607e7490d7aeb637be0941a</guid>
    <pubDate>Tue, 22 Jan 2008 15:00:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I just committed some changes to the &lt;a href=&quot;http://dbtune.org/last-fm/&quot;&gt;last.fm linked data service&lt;/a&gt;. It now spits out,
as well as your last scrobbled tracks linked to corresponding Musicbrainz URIs,
your list of last.fm friends (using their URI on this service)&lt;/p&gt;
&lt;p&gt;This is quite nice to explore the last scrobbles of the friends of your
friends (hello &lt;a href=&quot;http://kurtisrandom.blogspot.com/&quot;&gt;Kurt&lt;/a&gt; and Ben!)
:)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/screenshot26.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/screenshot26.png&quot; alt=&quot;The friends of my friends on last.fm&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/01/22/Pushing-your-LastFM-friends-in-the-FOAF-O-Sphere#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/01/22/Pushing-your-LastFM-friends-in-the-FOAF-O-Sphere#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/199909</wfw:commentRss>
      </item>
    
  <item>
    <title>Your AudioScrobbler data as Linked Data</title>
    <link>http://blog.dbtune.org/post/2008/01/11/Your-AudioScrobble-data-as-linked-data</link>
    <guid isPermaLink="false">urn:md5:f06c88ac655106a141f8db2ba3a76e5c</guid>
    <pubDate>Fri, 11 Jan 2008 15:38:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I just put online &lt;a href=&quot;http://dbtune.org/last-fm/&quot;&gt;a small service&lt;/a&gt;,
which converts your &lt;a href=&quot;http://www.audioscrobbler.net&quot;&gt;AudioScrobbler
data&lt;/a&gt; to RDF, designed using the &lt;a href=&quot;http://musicontology.com/&quot;&gt;Music
Ontology&lt;/a&gt;: it exposes your last 10 scrobbled tracks.&lt;/p&gt;
&lt;p&gt;The funny thing is that it links the track, records, and artists to
corresponding dereferencable URIs in the &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt; dataset. So the tracks you were last
listening to are part of the Data Web!&lt;/p&gt;
&lt;p&gt;Just try it by getting this URI:&lt;/p&gt;
&lt;pre&gt;
http://dbtune.org/last-fm/&amp;lt;last.fm username&amp;gt;
&lt;/pre&gt;
&lt;p&gt;For example, mine is:&lt;/p&gt;
&lt;pre&gt;
http://dbtune.org/last-fm/moustaki
&lt;/pre&gt;
&lt;p&gt;Of course, by being linked to dereferencable URIs in &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt;, you are able to access the birth
dates of the artists you last listened to, or use the links published by
&lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBPedia&lt;/a&gt; to plot your last artists played on
map, by just crawling the Data Web a little.&lt;/p&gt;
&lt;p&gt;Then, you can link that to your &lt;a href=&quot;http://xmlns.com/foaf/0.1/&quot;&gt;FOAF
URI&lt;/a&gt;. Mine now holds the following statement:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;http://moustaki.org/foaf.rdf#moustaki&amp;gt; owl:sameAs &amp;lt;http://dbtune.org/last-fm/moustaki&amp;gt;.
&lt;/pre&gt;
&lt;p&gt;Now, my URI looks quite nice, in the &lt;a href=&quot;http://dig.csail.mit.edu/2005/ajar/ajaw/tab?uri=http://moustaki.org/foaf.rdf#moustaki&quot;&gt;
Tabulator generic data browser&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/screenshot21.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.screenshot21_s.jpg&quot; alt=&quot;Me and my scrobbles&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2008/01/11/Your-AudioScrobble-data-as-linked-data#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2008/01/11/Your-AudioScrobble-data-as-linked-data#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/196619</wfw:commentRss>
      </item>
    
  <item>
    <title>HENRY: A small N3 parser/reasoner for SWI-Prolog</title>
    <link>http://blog.dbtune.org/post/2007/12/12/HENRY%3A-A-small-N3-parser/reasoner-for-SWI-Prolog</link>
    <guid isPermaLink="false">urn:md5:dc608ec3c1ce5418472611729455f48c</guid>
    <pubDate>Wed, 12 Dec 2007 15:43:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;Yesterday, I finally took some time to &lt;a href=&quot;http://km-rdf.googlecode.com/files/henry.tar.gz&quot;&gt;package&lt;/a&gt; the little hack
I've written last week, based on the SWI N3 parser I wrote back in
September.&lt;/p&gt;
&lt;p&gt;It's called &lt;a href=&quot;http://code.google.com/p/km-rdf/wiki/Henry&quot;&gt;Henry&lt;/a&gt;,
it is &lt;em&gt;really&lt;/em&gt; small, hopefully quite understandable, and it does N3
reasoning. The good thing is that you can embed such reasoning in the &lt;a href=&quot;http://www.swi-prolog.org/packages/SeRQL/&quot;&gt;SWI Semantic Web Server&lt;/a&gt;, and
then access a N3-entailed RDF store using SPARQL.&lt;/p&gt;
&lt;h3&gt;How to use it?&lt;/h3&gt;
&lt;p&gt;Just &lt;a href=&quot;http://km-rdf.googlecode.com/files/henry.tar.gz&quot;&gt;get this
tarball&lt;/a&gt;, extract it, and make sure you have &lt;a href=&quot;http://www.swi-prolog.org/&quot;&gt;SWI-Prolog&lt;/a&gt; installed, with its &lt;a href=&quot;http://www.swi-prolog.org/packages/semweb.html&quot;&gt;Semantic Web library&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then, the small &lt;code&gt;swicwm.pl&lt;/code&gt; script provides a small command-line
tool to test it (roughly equivalent, in &lt;a href=&quot;http://www.w3.org/2000/10/swap/doc/cwm.html&quot;&gt;CWM&lt;/a&gt; terms, to &lt;code&gt;cwm $1
-think -data -rdf&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Here is a simple example (shipped in the package, along other funnier
examples).&lt;/p&gt;
&lt;p&gt;The file uncle.n3 holds:&lt;/p&gt;
&lt;pre&gt;
prefix : &amp;lt;http://example.org/&amp;gt; .
:yves :parent :fabienne.
:fabienne :brother :olivier.
{?c :parent ?f. ?f :brother ?u} =&amp;gt; {?c :uncle ?u}.
&lt;/pre&gt;
&lt;p&gt;And:&lt;/p&gt;
&lt;pre&gt;
$ ./swicwm.pl examples/uncle.n3

&amp;lt;!DOCTYPE rdf:RDF [
    &amp;lt;!ENTITY ns1 'http://example.org/'&amp;gt;
    &amp;lt;!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'&amp;gt;
]&amp;gt;

&amp;lt;rdf:RDF
    xmlns:ns1=&amp;quot;&amp;amp;ns1;&amp;quot;
    xmlns:rdf=&amp;quot;&amp;amp;rdf;&amp;quot;
&amp;gt;
&amp;lt;rdf:Description rdf:about=&amp;quot;&amp;amp;ns1;fabienne&amp;quot;&amp;gt;
  &amp;lt;ns1:brother rdf:resource=&amp;quot;&amp;amp;ns1;olivier&amp;quot;/&amp;gt;
&amp;lt;/rdf:Description&amp;gt;

&amp;lt;rdf:Description rdf:about=&amp;quot;&amp;amp;ns1;yves&amp;quot;&amp;gt;
  &amp;lt;ns1:parent rdf:resource=&amp;quot;&amp;amp;ns1;fabienne&amp;quot;/&amp;gt;
  &amp;lt;ns1:uncle rdf:resource=&amp;quot;&amp;amp;ns1;olivier&amp;quot;/&amp;gt;
&amp;lt;/rdf:Description&amp;gt;

&amp;lt;/rdf:RDF&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;How does it work?&lt;/h3&gt;
&lt;p&gt;Henry is built around my &lt;a href=&quot;http://km-rdf.googlecode.com/svn/trunk/n3/n3_dcg.pl&quot;&gt;SWI N3 parser&lt;/a&gt;, which
basically translates the N3 in a quad form, that can be stored in the &lt;a href=&quot;http://www.swi-prolog.org/packages/semweb.html&quot;&gt;SWI RDF store&lt;/a&gt;. The two
tricks to reach such a representation are the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each formulae is seen as a named graph, identified by a blank node (there
exists a graph, where the following is true...);&lt;/li&gt;
&lt;li&gt;Universal quantification is captured through a specific set of atoms (a bit
like &lt;code&gt;__bnode1&lt;/code&gt; captures an existentially quantified variable).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;
prefix : &amp;lt;http://example.org/&amp;gt; .
{?c :parent ?f. ?f :brother ?u} =&amp;gt; {?c :uncle ?u}.
&lt;/pre&gt;
&lt;p&gt;would be translated to:&lt;/p&gt;
&lt;pre&gt;
subject||predicate||object||graph
__uqvar_c||http://example.org/parent||__uqvar_f||__graph1
__uqvar_f||http://example.org/brother||__uqvar_u||__graph1
__uqvar_c||http://example.org/uncle||__uqvar_u||__graph2
__graph1||log:implies||__graph2||uncle.n3
&lt;/pre&gt;
&lt;p&gt;Then, when running the &lt;code&gt;compile&lt;/code&gt; predicate, such a representation
is translated into a bunch of Prolog clauses, such as, in our example:&lt;/p&gt;
&lt;pre&gt;
rdf(C,'http://example.org/uncle',U) :- rdf(C,'http://example.org/parent',F), rdf(F,'http://example.org/brother',U).
&lt;/pre&gt;
&lt;p&gt;Such rules are defined in a particular entailment module, allowing it to be
plugged in the SWI Semantic Web server. Of course, rules can get into an
infinite loop, and this will make the whole thing crash :-)&lt;/p&gt;
&lt;p&gt;I tried to make the handling of lists and builtins as clear and simple as
possible. Defining a builtin is as simple as registering a new predicate,
associating a particular URI to a prolog predicate (see
&lt;code&gt;builtins.pl&lt;/code&gt; for an example).&lt;/p&gt;
&lt;p&gt;An example using both lists and builtins is the following one. By issuing
this SPARQL query to a N3-entailed store:&lt;/p&gt;
&lt;pre&gt;
PREFIX list: &amp;lt;http://www.w3.org/2000/10/swap/list#&amp;gt;

SELECT ?a
WHERE
{?a list:in (&amp;quot;a&amp;quot; &amp;quot;b&amp;quot; &amp;quot;c&amp;quot;)}
&lt;/pre&gt;
&lt;p&gt;You will get back &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt; and &lt;code&gt;c&lt;/code&gt; (you
have no clue how much I struggled to make this thing work :-) ).&lt;/p&gt;
&lt;h3&gt;But take care!&lt;/h3&gt;
&lt;p&gt;Of course, there are lots of &lt;a href=&quot;http://code.google.com/p/km-rdf/issues/list&quot;&gt;bugs and issues&lt;/a&gt;, and I am
sure there are lots of cases where it'll crash and burn :-) Anyway, I hope it
will be useful.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/12/12/HENRY%3A-A-small-N3-parser/reasoner-for-SWI-Prolog#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/12/12/HENRY%3A-A-small-N3-parser/reasoner-for-SWI-Prolog#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/185165</wfw:commentRss>
      </item>
    
  <item>
    <title>Linking open data: interlinking the BBC John Peel sessions and the DBPedia datasets</title>
    <link>http://blog.dbtune.org/post/2007/12/04/Linking-open-data%3A-interlinking-the-BBC-John-Peel-sessions-and-the-DBPedia-datasets</link>
    <guid isPermaLink="false">urn:md5:ede81304d3ff36828689d5ba96c3a150</guid>
    <pubDate>Tue, 04 Dec 2007 10:32:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;For the last &lt;a href=&quot;http://www.hackday.org/&quot;&gt;Hackday&lt;/a&gt;, the &lt;a href=&quot;http://www.bbc.co.uk&quot;&gt;BBC&lt;/a&gt; released data about the &lt;a href=&quot;http://en.wikipedia.org/wiki/John_Peel&quot;&gt;John Peel&lt;/a&gt; sessions. In June, I did
publish them as &lt;a href=&quot;http://en.wikipedia.org/wiki/Linked_Data&quot;&gt;Linked
Data&lt;/a&gt;, using a &lt;a href=&quot;http://moustaki.org/resources/swipeel.tar.gz&quot;&gt;SWI-Prolog representation of
this data&lt;/a&gt;, bundled with a custom &lt;a href=&quot;http://moustaki.org/resources/peel-p2r.tar.gz&quot;&gt;P2R mapping&lt;/a&gt;. But so far, it
was not interlinked with any dataset, making it a small island :-)&lt;/p&gt;
&lt;p&gt;In order to enrich my interlinking experiences, I wanted to tackle a dataset
I never really tried to link to: &lt;a href=&quot;http://dbpedia.org/&quot;&gt;DBPedia&lt;/a&gt;,
holding structured data extracted from &lt;a href=&quot;http://wikipedia.org/&quot;&gt;Wikipedia&lt;/a&gt; (well, the &lt;a href=&quot;http://dbtune.org/magnatune/&quot;&gt;Magnatune RDF dataset&lt;/a&gt; is linked to it, but
just for geographical locations, which was fairly easy).&lt;/p&gt;
&lt;p&gt;And my conclusion is... it is not &lt;em&gt;that&lt;/em&gt; easy :-)&lt;/p&gt;
&lt;h2&gt;Try 1 - Matching on labels:&lt;/h2&gt;
&lt;p&gt;The first thing I tried was matching directly on labels, using an algorithm
which might be summarized by:&lt;/p&gt;
&lt;p&gt;1 - For all items &lt;code&gt;I_i&lt;/code&gt; in the John Peel sessions dataset we want
to link (instance of &lt;a href=&quot;http://xmlns.com/foaf/0.1/Agent&quot;&gt;foaf:Agent&lt;/a&gt;
or &lt;a href=&quot;http://purl.org/ontology/mo/MusicalWork&quot;&gt;mo:MusicalWork&lt;/a&gt;, take
label &lt;code&gt;L_i&lt;/code&gt; (&lt;code&gt;{I_i rdfs:label L_i}&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;2 - Issue the following &lt;a href=&quot;http://www.w3.org/TR/rdf-sparql-query/&quot;&gt;SPARQL&lt;/a&gt; query to the DBPedia
dataset:&lt;/p&gt;
&lt;pre&gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; 
SELECT ?u
WHERE 
{       
?u rdfs:label L_i
}
&lt;/pre&gt;
&lt;p&gt;3 - For all results R_i_j of this query, assert &lt;code&gt;I_i owl:sameAs
R_i_j&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Just for fun, &lt;a href=&quot;http://moustaki.org/resources/crappy_links.n3&quot;&gt;here
are the results of such a query&lt;/a&gt;. You can't imagine how many people are
called exactly the same... For example &lt;a href=&quot;http://dbtune.org/bbc/peel/artist/1003&quot;&gt;Jules Verne&lt;/a&gt; in the BBC John Peel
sessions dataset is quite different from &lt;a href=&quot;http://dbpedia.org/resource/Jules_Verne&quot;&gt;Jules Verne&lt;/a&gt;... Also, &lt;a href=&quot;http://dbpedia.org/resource/Jules_Verne&quot;&gt;Jules Verne&lt;/a&gt; is quite different
from the &lt;a href=&quot;http://dbpedia.org/resource/Category:Jules_Verne&quot;&gt;Jules Verne
category&lt;/a&gt;, though they share the same label.&lt;/p&gt;
&lt;h2&gt;Try 2 - Still matching on labels, but with restrictions:&lt;/h2&gt;
&lt;p&gt;In the agent case, the disambiguation appears easy to achieve, by just
expressing ''I am actually looking for someone which could be somehow related
to the John Peel sessions''. But, err, Wikipedia (hence, DBPedia) is a bit
messy some times, and it is quite difficult to find a reliable and consistent
way of expressing this criteria. So I had to sample the John Peel data (taking
&lt;a href=&quot;http://dbtune.org/bbc/peel/producer/e5826379ace5151894a6456d69fd1e41&quot;&gt;some
producers&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/bbc/peel/engineer/0189b420512bdb170cf331b279055993&quot;&gt;some
engineers&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/bbc/peel/artist/22fc17eda428b20d2572e45d3b55104e&quot;&gt;some
artists&lt;/a&gt;, &lt;a href=&quot;http://dbtune.org/bbc/peel/artist/1032&quot;&gt;some bands&lt;/a&gt;)
and look out manually how I could restrict the range of resources I was looking
for in DBPedia and still be able to retrieve all my linked agents. This leads
to the following SPARQL query (involving &lt;code&gt;L_i&lt;/code&gt; as defined
earlier):&lt;/p&gt;
&lt;pre&gt;
PREFIX rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; 
SELECT ?u
WHERE 
{       
   {
      {?u &amp;lt;http://dbpedia.org/property/name&amp;gt; L_i} UNION 
      {?u rdfs:label L_i} UNION 
      {?u &amp;lt;http://dbpedia.org/property/bandName&amp;gt; L_i} 
    } 
    {
       {?u &amp;lt;http://dbpedia.org/property/wikiPageUsesTemplate&amp;gt; &amp;lt;http://dbpedia.org/resource/Template:infobox_musical_artist&amp;gt;} UNION 
       {?u a &amp;lt;http://dbpedia.org/class/yago/Group100031264&amp;gt;} UNION 
       {?u a ?mus.?mus rdfs:subClassOf &amp;lt;http://dbpedia.org/class/yago/Musician110340312&amp;gt;} UNION 
       {?u a ?artist. ?artist rdfs:subClassOf &amp;lt;http://dbpedia.org/class/yago/Creator109614315&amp;gt;} 
    } 
}
&lt;/pre&gt;
&lt;h2&gt;And for musical works?&lt;/h2&gt;
&lt;p&gt;Of course, this does not hold as soon as I broaden the range of resources I
want to link. I first tried to use exactly the same methodology (basically
restricting the resources I was looking for to be related to the &lt;a href=&quot;http://www.mpi-inf.mpg.de/~suchanek/downloads/yago/&quot;&gt;Yago&lt;/a&gt; song concept).
But, err, it did not work that well :-) You can't imagine how many songs have
the same name! Just look &lt;a href=&quot;http://moustaki.org/resources/crappy_links_works.n3&quot;&gt;at the results&lt;/a&gt; - this
is enlightening! So far, the best I found was &lt;code&gt;Walked Away&lt;/code&gt;, which
appears to be the most popular title :-)&lt;/p&gt;
&lt;p&gt;So what did I do to disambiguate? I took these results, got the RDF
corresponding to the DBPedia resources, and made a literal search using the
&lt;a href=&quot;http://www.swi-prolog.org/packages/semweb.html#sec:4.4&quot;&gt;SWI literal
index module&lt;/a&gt; on the abstract, looking for the name of the artist involved
in the performance of this work. That's a bit hacky, but well, it did well even
with cover songs (like &lt;a href=&quot;http://en.wikipedia.org/wiki/Love_Buzz&quot;&gt;Nirvana's Love Buzz&lt;/a&gt;).&lt;/p&gt;
&lt;h2&gt;Results&lt;/h2&gt;
&lt;p&gt;Surprisingly, the results do not seem to be too bad! I still have to check
them more, but nothing seems obviously wrong, at first glance (I went through
all the links manually, looking for something that would not make sense). The
&lt;a href=&quot;http://moustaki.org/resources/dbpedia-johnpeel.tar.gz&quot;&gt;links are
available here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://www.swi-prolog.org/&quot;&gt;SWI-Prolog&lt;/a&gt; code doing the trick
&lt;a href=&quot;http://moustaki.org/resources/linker-dbpedia.tar.gz&quot;&gt;is available
here&lt;/a&gt;. Sorry, the code is a bit messy, and got increasingly hacky...&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/12/04/Linking-open-data%3A-interlinking-the-BBC-John-Peel-sessions-and-the-DBPedia-datasets#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/12/04/Linking-open-data%3A-interlinking-the-BBC-John-Peel-sessions-and-the-DBPedia-datasets#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/182513</wfw:commentRss>
      </item>
    
  <item>
    <title>Jamendo RDF updated</title>
    <link>http://blog.dbtune.org/post/2007/11/29/Jamendo-RDF-updated3</link>
    <guid isPermaLink="false">urn:md5:a490a6894035770b737577ae529e5cff</guid>
    <pubDate>Thu, 29 Nov 2007 23:14:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I &lt;em&gt;finally&lt;/em&gt; updated the &lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo
dataset&lt;/a&gt;. Indeed, the previous version was based on a dump from about 5
months ago.&lt;/p&gt;
&lt;p&gt;During these few months, their dataset increased a lot (&lt;a href=&quot;http://jamendo.org/&quot;&gt;Jamendo&lt;/a&gt; &lt;strong&gt;rocks&lt;/strong&gt;... It is clearly my
favorite music source)! The corresponding RDF is now just a bit more than one
million triple (the &lt;a href=&quot;http://moustaki.org/resources/jamendo-rdf.tar.gz&quot;&gt;whole RDF dump is
available&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;While updating the dataset, I also fixed a number of issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;mo:available_as&lt;/code&gt; links towards playlists in &lt;a href=&quot;http://www.xspf.org/&quot;&gt;XSPF&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/M3U&quot;&gt;M3U&lt;/a&gt; formats - this is a &lt;a href=&quot;http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html?uri=http://dbtune.org/jamendo/record/174&quot;&gt;
really cool feature&lt;/a&gt;, and fixed the Bittorrent and ED2K links;&lt;/li&gt;
&lt;li&gt;Fixed some bugs in the &lt;a href=&quot;http://geonames.org/&quot;&gt;Geonames&lt;/a&gt; linking
- now, almost every artist is linked to the corresponding Geonames URI ;&lt;/li&gt;
&lt;li&gt;Fixed some Musicbrainz links, but there is still some work to do on that
side (I would need to relaunch &lt;a href=&quot;http://blog.dbtune.org/post/2007/06/11/Linking-open-data%3A-interlinking-the-Jamendo-and-the-Musicbrainz-datasets&quot;&gt;
my record linkage algorithm&lt;/a&gt;, but it is a bit slow, and it is a bit late :)
) ;&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/11/29/Jamendo-RDF-updated3#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/11/29/Jamendo-RDF-updated3#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/180522</wfw:commentRss>
      </item>
    
  <item>
    <title>Sindice module for SWI-Prolog</title>
    <link>http://blog.dbtune.org/post/2007/11/16/Sindice-module-for-SWI-Prolog</link>
    <guid isPermaLink="false">urn:md5:a9914fd0ddcec9b473e88d406b44dbd7</guid>
    <pubDate>Fri, 16 Nov 2007 16:29:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I just committed in the &lt;a href=&quot;http://sf.net/projects/motools/&quot;&gt;motools
sourceforge project&lt;/a&gt; a &lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/*checkout*/motools/gnarql/sindice.pl&quot;&gt;
small SWI-Prolog module&lt;/a&gt; for accessing the &lt;a href=&quot;http://sindice.com/&quot;&gt;Sindice&lt;/a&gt; Semantic Web search engine.&lt;/p&gt;
&lt;p&gt;Just about 20 lines of code, and it handles Sindice URI lookups (find
documents referencing a particular URI), and keyword lookups (find documents
mentioning a similar literal). I guess it sort of proves how well designed the
Sindice service is!&lt;/p&gt;
&lt;p&gt;Anyway, a typical SWI-Prolog session making use of this module would look
like:&lt;/p&gt;
&lt;pre&gt;
?- use_module(sindice).
Yes
?- sindice_q(uri('http://dbtune.org/jamendo/artist/5')).
% Parsed &amp;quot;http://sindice.com/query/lookup?uri=http%3a%2f%2fdbtune.org%2fjamendo%2fartist%2f5&amp;quot; in 0.00 sec; 2 triples
Yes
?- sindice_r(Q,U).
Q = 'http://sindice.com/query/lookup?uri=http://dbtune.org/jamendo/artist/5',
U = 'http://dbtune.org:2105/sparql/?query=describe &amp;lt;http://dbtune.org/jamendo/artist/5&amp;gt;' ;

Q = 'http://sindice.com/query/lookup?uri=http://dbtune.org/jamendo/artist/5',
U = 'http://moustaki.org/resources/jamendo_mbz.rdf'
&lt;/pre&gt;
&lt;p&gt;Then, up to you to crawl further (using &lt;code&gt;rdf_load&lt;/code&gt;). By replacing
&lt;code&gt;uri&lt;/code&gt; by &lt;code&gt;keyword&lt;/code&gt;, a keyword search is performed, which
results are accessible in the same way.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/11/16/Sindice-module-for-SWI-Prolog#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/11/16/Sindice-module-for-SWI-Prolog#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/175999</wfw:commentRss>
      </item>
    
  <item>
    <title>Finally a Web page for DBTune...</title>
    <link>http://blog.dbtune.org/post/2007/11/08/Finally-a-Web-page-for-DBTune</link>
    <guid isPermaLink="false">urn:md5:4ce7ae3d23d040ca6b8dc3e45018d905</guid>
    <pubDate>Thu, 08 Nov 2007 16:43:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;I &lt;em&gt;&lt;strong&gt;finally&lt;/strong&gt;&lt;/em&gt; took some time to write &lt;a href=&quot;http://dbtune.org/&quot;&gt;a short web page for DBTune&lt;/a&gt;, enumerating all the
datasets published so far: &lt;a href=&quot;http://dbtune.org/jamendo/&quot;&gt;Jamendo&lt;/a&gt;,
&lt;a href=&quot;http://dbtune.org/magnatune/&quot;&gt;Magnatune&lt;/a&gt; and the &lt;a href=&quot;http://dbtune.org/bbc/peel&quot;&gt;BBC John Peel sessions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It also details the different interlinking, making these datasets part of
the &lt;a href=&quot;http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData&quot;&gt;Linking
Open Data cloud&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I also submitted the different datasets to &lt;a href=&quot;http://sindice.com&quot;&gt;Sindice&lt;/a&gt; (a really cool Semantic Web search engine!),
so hopefully they will be indexed soon!&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/11/08/Finally-a-Web-page-for-DBTune#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/11/08/Finally-a-Web-page-for-DBTune#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/173302</wfw:commentRss>
      </item>
    
  <item>
    <title>Specifications for the Event and the Timeline ontologies</title>
    <link>http://blog.dbtune.org/post/2007/10/30/Event-and-Timeline-ontology-specification</link>
    <guid isPermaLink="false">urn:md5:3dc7a1cbb2beb14e970ed36a84b5efe6</guid>
    <pubDate>Tue, 30 Oct 2007 13:44:00 +0000</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;It has been a long time since my last post, but I was busy traveling
(&lt;a href=&quot;http://ismir2007.ismir.net&quot;&gt;ISMIR 2007&lt;/a&gt;, &lt;a href=&quot;http://mmc36.informatik.uni-augsburg.de/acmmm2007/&quot;&gt;ACM Multimedia&lt;/a&gt;, and
&lt;a href=&quot;http://www.aes.org/events/123/&quot;&gt;AES&lt;/a&gt;), and also took some holidays
afterwards (first ones since last Xmas... it was great :-) ).&lt;/p&gt;
&lt;p&gt;Anyway, in my slow process of getting back to work, I finally wrote
specification documents for the &lt;a href=&quot;http://purl.org/NET/c4dm/timeline.owl&quot;&gt;Timeline ontology&lt;/a&gt; and the &lt;a href=&quot;http://purl.org/NET/c4dm/event.owl&quot;&gt;Event ontology&lt;/a&gt;, that &lt;a href=&quot;http://www.elec.qmul.ac.uk/department/staff/research/samer.htm&quot;&gt;Samer
Abdallah&lt;/a&gt; and I worked on three years ago. These are really early
documentation draft though, and might be a bit unclear, don't hesitate to send
me comments about them!&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://purl.org/NET/c4dm/timeline.owl&quot;&gt;Timeline ontology&lt;/a&gt;,
extending some &lt;a href=&quot;http://www.w3.org/TR/owl-time/&quot;&gt;OWL-Time&lt;/a&gt; concepts,
allows to address time points and intervals on multiple timelines, backing
signals, video, performances, works, scores, etc. For example, using this
ontology, you can express &amp;quot;from 1 minute and 21 seconds to 1 minutes and 55
seconds on this signal&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/timeline.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.timeline_m.jpg&quot; alt=&quot;Timeline ontology&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://purl.org/NET/c4dm/event.owl&quot;&gt;Event ontology&lt;/a&gt; allows
to deal with, well, events. In it, events are seen as arbitrary classification
of space/time regions. This definition makes it extremely flexible: it covers
everything from music festivals to conferences, meeting notes or even
annotations of a signal. It is extremely simple, and defines one single concept
(event), and five properties (agent, factor, product, place and time).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.dbtune.org/public/event.png&quot;&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.event_m.jpg&quot; alt=&quot;Event ontology&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The following representations are available for these ontology
resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RDF/XML&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;$ curl -L -H &amp;quot;Accept: application/rdf+xml&amp;quot;
http://purl.org/NET/c4dm/event.owl&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;RDF/Turtle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;$ curl -L -H &amp;quot;Accept: text/rdf+n3&amp;quot;
http://purl.org/NET/c4dm/event.owl&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Default (XHTML)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;curl -L http://purl.org/NET/c4dm/event.owl&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And also, make sure you check out the &lt;a href=&quot;http://purl.org/ontology/chord/&quot;&gt;Chord ontology&lt;/a&gt; designed by &lt;a href=&quot;http://sonictruth.net&quot;&gt;Chris Sutton&lt;/a&gt;, and the associated URI service (eg.
&lt;a href=&quot;http://purl.org/ontology/chord/symbol/A:maj(7)&quot;&gt;A major with an added
7th&lt;/a&gt;). All the code (RDF, specification, specification generations cripts,
URI parsing, 303 stuff, etc.) is available in the &lt;a href=&quot;https://sourceforge.net/projects/motools/&quot;&gt;motools sourceforge
project&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/10/30/Event-and-Timeline-ontology-specification#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/10/30/Event-and-Timeline-ontology-specification#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/168877</wfw:commentRss>
      </item>
    
  <item>
    <title>GNAT 0.1 released</title>
    <link>http://blog.dbtune.org/post/2007/08/30/GNAT-01-released</link>
    <guid isPermaLink="false">urn:md5:db44ddf78f83cb005bfae7cfc0cfd9d5</guid>
    <pubDate>Thu, 30 Aug 2007 13:39:00 +0100</pubDate>
    <dc:creator>Yves</dc:creator>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://chrissutton.org/&quot;&gt;Chris Sutton&lt;/a&gt; and I did some work since
the first release of &lt;a href=&quot;http://blog.dbtune.org/post/2007/05/23/Find-dereferencable-URIs-for-tracks-in-your-personal-music-collection&quot;&gt;
GNAT&lt;/a&gt;, and it is now in a releasable state!&lt;/p&gt;
&lt;p&gt;You can get it &lt;a href=&quot;http://sourceforge.net/project/showfiles.php?group_id=202492&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;What does it do?&lt;/h2&gt;
&lt;p&gt;As mentioned in my &lt;a href=&quot;http://blog.dbtune.org/post/2007/05/23/Find-dereferencable-URIs-for-tracks-in-your-personal-music-collection&quot;&gt;
previous blog post&lt;/a&gt;, GNAT is a small software able to link your personal
music collection to the Semantic Web. It will find dereferencable identifiers
available somewhere on the web for tracks in your collection. Basically, GNAT
crawls through your collection, and try by several means to find the
corresponding &lt;a href=&quot;http://musicbrainz.org/&quot;&gt;Musicbrainz&lt;/a&gt; identifier,
which is then used to find the corresponding dereferencable URI in &lt;a href=&quot;http://zitgist.com/music/&quot;&gt;Zitgist&lt;/a&gt;. Then, &lt;a href=&quot;http://www.w3.org/TR/rdf-syntax-grammar/&quot;&gt;RDF/XML&lt;/a&gt; files are put in the
corresponding folder:&lt;/p&gt;
&lt;pre&gt;
/music
/music/Artist1
/music/Artist1/AlbumA/info_metadata.rdf
/music/Artist1/AlbumA/info_fingerprint.rdf
/music/Artist1/AlbumB/info_metadata.rdf
/music/Artist1/AlbumB/info_fingerprint.rdf
&lt;/pre&gt;
&lt;h2&gt;What next?&lt;/h2&gt;
&lt;p&gt;These files hold a number of
&lt;code&gt;&amp;lt;http://zitgist.com/music/track/...&amp;gt; mo:available_as &amp;lt;local
file&amp;gt;&lt;/code&gt; statements. These files can then be used by a tool such as
&lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/gnarql/&quot;&gt;GNARQL&lt;/a&gt;
(which will be properly released next week), which swallows them, exposes a
SPARQL end point, and provides some &lt;a href=&quot;http://linkeddata.org/&quot;&gt;linked
data&lt;/a&gt; crawling facilities (to gather more information about the artists in
our collection, for example), therefore allowing to use the links pictured here
(yes, sorry, I didn't know how to introduce properly the new &lt;a href=&quot;http://linkedddata.org/&quot;&gt;linking-open-data&lt;/a&gt; schema - it looks good! and
keeps on growing!:-) ):&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://blog.dbtune.org/public/./.lod-datasetsV3_m.jpg&quot; alt=&quot;Linking-Open-Data&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Two identification strategies&lt;/h2&gt;
&lt;p&gt;GNAT can use two different identification strategies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metadata lookup&lt;/strong&gt;: in this mode, only available tags are
used to identify the track. We chose an identification algorithm which is
slower (although if you try to identify, for example, a collection with lots of
releases, you won't notice it too much, as only the first track of a release
will be slower to identify), but works a bit better than &lt;a href=&quot;http://wiki.musicbrainz.org/PicardTagger&quot;&gt;Picard&lt;/a&gt;' metadata lookup.
Basically, the algorithm used is the same as &lt;a href=&quot;http://blog.dbtune.org/post/2007/06/11/Linking-open-data%3A-interlinking-the-Jamendo-and-the-Musicbrainz-datasets&quot;&gt;
the one I used to link the Jamendo dataset to the Musicbrainz one&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fingerprinting&lt;/strong&gt;: in this mode, the &lt;a href=&quot;http://www.musicip.com/&quot;&gt;Music IP&lt;/a&gt; fingerprinting client is used in order
to find a &lt;a href=&quot;http://en.wikipedia.org/wiki/Portable_Unique_IDentifier&quot;&gt;PUID&lt;/a&gt; for the
track, which is then used to get back to the Musicbrainz ID. This mode is
obviously better when the tags are crap :-)&lt;/li&gt;
&lt;li&gt;The two strategies can be run in parallel, and most of the times, the best
identification results are obtained when combining the two...&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;To perform a metadata lookup for the music collection available at
&lt;code&gt;/music&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;./AudioCollection.py metadata /music&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To perform a fingerprint-based lookup for the music collection available at
&lt;code&gt;/music&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;./AudioCollection.py fingerprint /music&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To clean every previously performed identifications:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;./AudioCollection.py clean /music&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Dependencies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://motools.svn.sourceforge.net/viewvc/motools/mopy/&quot;&gt;MOPY&lt;/a&gt;
&lt;strong&gt;(included)&lt;/strong&gt; - Music Ontology PYthon interface&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.musicip.com/dns/downloads.jsp&quot;&gt;genpuid&lt;/a&gt;
&lt;strong&gt;(included)&lt;/strong&gt; - MusicIP fingerprinting client&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rdflib.net/&quot;&gt;rdflib&lt;/a&gt; - &lt;code&gt;easy_install
rdflib&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen&quot;&gt;mutagen&lt;/a&gt; -
&lt;code&gt;easy_install mutagen&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://musicbrainz.org/doc/PythonMusicBrainz2Download&quot;&gt;Musicbrainz2&lt;/a&gt; - You
need a version later than 02.08.2007 (sorry)&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.dbtune.org/post/2007/08/30/GNAT-01-released#comment-form</comments>
      <wfw:comment>http://blog.dbtune.org/post/2007/08/30/GNAT-01-released#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.dbtune.org/feed/rss2/comments/150705</wfw:commentRss>
      </item>
    
</channel>
</rss>