Public Skype RDF presence service

OK I don’t know how this works, or how it happens (other Asemantics people might know more), but for those who didn’t know:

At http://mystatus.skype.com/danbrickley.xml there is a public RDF/XML document reflecting my status in Skype. There seems to be one for every active account name in the system.

Example markup:

<rdf:RDF>
<Status rdf:about=”urn:skype:skype.com:skypeweb/1.1″>
<statusCode rdf:datatype=”http://www.skype.com/go/skypeweb”>5</statusCode>
<presence xml:lang=”NUM”>5</presence>
<presence xml:lang=”en”>Do Not Disturb</presence>
<presence xml:lang=”fr”>Ne pas déranger</presence>
<presence xml:lang=”de”>Beschäftigt</presence>
<presence xml:lang=”ja”>取り込み中</presence>
<presence xml:lang=”zh-cn”>請勿打擾</presence>
<presence xml:lang=”zh-tw”>请勿打扰</presence>
<presence xml:lang=”pt”>Ocupado</presence>
<presence xml:lang=”pt-br”>Ocupado</presence>
<presence xml:lang=”it”>Occupato</presence>
<presence xml:lang=”es”>Ocupado</presence>
<presence xml:lang=”pl”>Nie przeszkadzać</presence>
<presence xml:lang=”se”>Stör ej</presence>
</Status>
</rdf:RDF>

In general (expressed in FOAF terms), for any :OnlineAccount that has an :accountServiceHomepage of http://www.skype.com/ you can take the :accountName – let’s call it ?a and plug it into the URI Template http://mystatus.skype.com/{a}.xml to get presence information in curiously cross-cultural RDF. In other words, one’s Skype status is part of the public record on the Web, well beyond the closed P2P network of Skype IM clients.

Thinking about RDF vocabulary design and document formats, the Skype representation is roughly akin to FOAF documents (such as those on LiveJournal currently) that don’t indicate explicitly that they’re a :PersonalProfileDocument, nor say who is the :primaryTopic or :maker of the document. Passed the RDF/XML on its own, you don’t have enough context to know what it is telling you. Whereas, if you know the URI, and the URI template rule shown above, you have a better idea of the meaning of the markup. Still, it’s useful. I suspect it might be time to add foaf:skypeID as an inverse-functional (ie. uniquely identifying) property to the FOAF spec, to avoid longwinded markup and make it easier to bridge profile data and up-to-the-minute status data. Thoughts?

6 Responses to Public Skype RDF presence service

  1. I was experimenting with this, and would like to add in the comment that this service returns an “Unknown” status unless you’ve enabled “Allow my status to be shown on the web” in the Skype privacy options – in case anyone was wondering.

  2. There’s also the problem with the status information being stated about “urn:skype:skype.com:skypeweb/1.1″…

    Perhaps it would be possible to have them fix that and add a skypeId at the same time?

    BTW: Where you say “www.flickr.com” i think you mean “www.skype.com”.

  3. Valentin says:

    The option to have your skype status shown on a website (or in emails) was there for quite a while now, you can read more about it here http://www.skype.com/share/buttons/status.html. But its great to be able to use the data directly in arbitrary programs .. thanks for posting this.

  4. Hi Dan, thanks for blogging about this; I worked on a patch long time ago about the rdf:about problem, as well as the namespace one. Unfortunately we could not make it on time for the last release we delivered to them (more than 2 years ago I recon); hopefully we will be able to get some changes sneaking in at some stage. I remember that the quickest fix for the URI would be to have rdf:about=”" and let the parser expand that.

  5. I’ve created a module for Drupal that will pull in this information for Drupal user accounts using the RDF API module & the ARC2 library:

    http://drupal.org/project/skype_status

  6. [...] I’m an image buyer, I’m writing a story on gold mining in Australia, I need a photo to illustrate my story. Today I would need to go to several stock photography agencies and enter my search terms, in some cases the terms are ambiguous "mine, a weapon" or "mine, underground space" and gold,"a colour" or "a precious metal". If I had an internet full of images suitably tagged with RDF data then I would be able to find every image that was licensed for use as stock or free to use, taken in Australia, larger than the required number of pixels I need for my cover story and matching the keywords gold mine. I could plot that information against the date the photo was taken, the time of day (e.g. night time), or the geographic location. All of this would afford me more fine control to find just the photo I wanted instead of using clumsy hit-and-miss keywords. Doing the same search today would mean stringing together a query like "mine, Australia, gold, historical, daytime" and preying. Oh, and I need that image urgently! right now skype are currently testing their online presence rdf data, mix that in and I can show only the images with authors who are online now, so I can pick up the phone and call them, it will also get me their number so I don’t have to go and search for it. [...]

Leave a Reply