Linking Slideshare Data

I love Slideshare.net. It’s great after an event or conference to be able to go back and go through slides to jog my memory or to be able to get a bit of glimpse of a talk that I didn’t get to attend. Plus, I like the fact that it makes it easy to embed slides into a blog post like this one. Moreover, slides provide a concrete artifact artifact of an event as well as the outcome of many processes.

Thinking about that I thought it would be good to easily mash-up slide metadata with other Linked Data. Luckily, Slideshare.net provides a nice API, which I’ve wrapped to output RDF. That means that we can retrieve and point to with URLs both slides and their associated metadata. You can find the service at:

http://linkeddata.few.vu.nl/slideshare/

Example

Using the service, you can take a slideshow like this one:

and get RDF like this out:

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:dcterms="http://purl.org/dc/terms/"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:sioc="http://rdfs.org/sioc/ns#">
  <rdf:Description rdf:about="http://www.slideshare.net/mhelmke">
    <rdf:type rdf:resource="http://rdfs.org/sioc/ns#UserAccount"/>
  </rdf:Description>
  <rdf:Description rdf:about="http://www.slideshare.net/mhelmke/presentation-zen">
    <dc:subject>images</dc:subject>
    <dc:subject>tamplate</dc:subject>
    <dc:subject>powerpoint</dc:subject>
    <dc:subject>zen</dc:subject>
    <dc:subject>presentation</dc:subject>
    <dc:subject>design</dc:subject>
    <dc:subject>presentation zen</dc:subject>
    <sioc:has_creator rdf:resource="http://www.slideshare.net/mhelmke"/>
    <dcterms:created rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2009-03-01T18:23:07-06:00</dcterms:created>
    <sioc:content>An overview of key take-aways from author Garr Reynold&amp;rsquo;s book Presentation Zen. </sioc:content>
    <dcterms:title>Presentation Zen</dcterms:title>
    <sioc:num_views>2897</sioc:num_views>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/1478896"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/981090"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/2515091"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/797089"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/2515093"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/2515090"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/200457"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/12087"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/2515092"/>
    <sioc:related_to rdf:resource="http://linkeddata.few.vu.nl/slideshare/id/612849"/>
    <sioc:num_replies>4</sioc:num_replies>
    <rdf:type rdf:resource="http://rdfs.org/sioc/ns#Item"/>
  </rdf:Description>
</rdf:RDF>

You do this by appending the path of the slideshow in slideshare to the end of linkeddata.few.vu.nl/slideshare/. e.g. http://linkeddata.few.vu.nl/slideshare/mhelmke/presentation-zen

A Note on Usage

Slideshare.net limits queries to their API to 1000 a day. Update: Slideshare.net informed me that they have removed their api limits, which is definitely cool. I will still leave in the support for using your own api keys. We recommend that if you want to use our service you get your own slideshare  API key. More details on how to use your slideshare api key with our service is on the page (http://linkeddata.few.vu.nl/slideshare/).

I actually think this is an interesting pattern for linked data services that is providing an open api but providing limits on it and then requiring api keys. It allows us to improve the RDF, adjust to the underlying api, but still abide by the terms of service from the underlying data source.

What Next?

First, this is a new service (and I don’t usually run services) so we’ll see how it holds up. Let us know if you discover problems. We have some ideas for what to do next, mainly, linking out to other data sources. But we’d love your ideas. How should we extend the service? Should we extend it? Let us know in the comments.

5 comments
  1. Barry Norton said:

    This is great. Wrapping services and openly exposing them this way is the first step on the way to what we call LinkedOpenServices (http://iswc2010.semanticweb.org/tutorials).

    The second step is giving them an RDF description that uses SPARQL graph patterns to describe their IO.

    I hope you don’t mind if we do this and publicise your service further?

  2. paulgroth said:

    Hi Barry, no problem in publicizing the service. One of the things that I want to figure out is the best way to present a SPARQL endpoint for these types of apis. So any info on that would be greatly appreciated.

  3. rashmi said:

    Sounds like a great tool. We would be glad to remove your 1000 limitation. Just drop us a line.

    We remove that limit for most projects that request it. We simply like to make sure that API is not being used for spam content or other inappropriate usages.

    Drop me a line!

    Rashmi

Leave a comment