SIOC-based microblogging

As John Breslin already detailed last week, we (Tuukka Hastrup, Uldis Bojars, John and myself) recently work on SMOB, a semantic microblogging architecture, that will be presented at next SFSW workshop, co-located with ESWC in Tenerife.

While there have been a lot of buzz recently regarding ways to provide open alternatives to Twitter, then fun thing is that we worked on this in last January while I visited DERI. Our main goal was to show how Semantic Web technologies could provide an open-platform for such way of publishing content, mainly using FOAF and SIOC. Moreover, one of our aim was also to demonstrate how such technologies can provide users a way to control, share and remix their data as they want, not depending on a third-party service, a goal also shared by the dataportability project. In that way, SMOB-published data really belongs to the user that wrote it. Indeed, while SMOB servers (which display a faceted view of agregated posts as you can see on the demo server) store data in their local triple-store, this information (i.e. each update) is hosted on the client side and available in RDF.

At the moment, the complete updates dataset is public, and can be browsed with any RDF browser as the picture below shows (with Tabulator) but we plan to introduce more advanced authentication and privacy issues, in which OpenID could have a role to play.

smob-rdf.png

Users can parse it as any RDF data, mash-it up with other information, eg their FOAF profile (SMOB allows to re-use existing FOAF profile as the foaf:maker of each update), or any other RDF data. And most important, if a SMOB server closes, they still own their data.

Moreover, since SMOB content is SIOC-based, it becomes part of the SIOC-o-sphere, and could be merged with your other social media contributions (from any SIOC application) and discovered thanks to recent APIs and WordPress plug-in introduced by Sindice (automatic PTSW / Sindice pings will be soon in the code repository). This is one more advantage of getting a common semantics to model your data wherever they come from.

smobsphere.png

Finally, we just introduced in SMOB a way to publish not only to a dedicated server, but also to Twitter. So that you’ll get a real-time, self-hosted and long-life archive of your twits in RDF. Isn’t that cool ?

smob-tw.png

First workshop on Social Data on the Web at ISWC2008

As you may have already read, the 1st workshop on Social Data on the Web (SDoW2008) will be held at next ISWC, at the end of October in Karlshrue and I’m really glad to co-chair it with Uldis, John and Sergio.

If you work on a related field, either as a researcher, industrial or developer, you’re more than welcome to submit a paper, a poster or a demo until the 25th of July via easychair. More information about the topics and organization of the workshop it can be found on the SDoW2008 website.

While talking about the Social Web, the proceedings of the SAW2008 workshop that was held tuesday in Innsbruck will be online soon on CEUR-WS website (Vol. 333). Here are also the slides of our talk I gave here, and the one I gave in the main conference about another paper (that should be soon uploaded here).

SemwebCampParis numéro 2

Vendredi dernier avait lieu la seconde édition du SemanticCampParis. J’ai enfin pu voir une démo live de Beatnik par Henry, à surveiller pour tous ceux qui cherchent un moyen de gérer leurs contacts de manière ouverte, en apprendre un peu plus sur Nepomuk avec Stéphane et découvrir le projet Feedbooks.

Par manque de temps, l’après-midi a été moins complete que prévu, mais ça n’a pas empeché un des deux groupes de discuter réseaux sociaux, portabilité de données et tags. Voila les slides que j’ai présenté à cette occasion (… ok, j’ai triché, j’ai rajouté le dernier pour les pointeurs vers les projets relatifs aux tags et au WS qui ont été évoqués)

owl:sameAs reciprocity with OpenID

Still working on SparqlPress, I just adapted foaf-output for it, as a part of the future export capabilities of the plugin. It exports users in a group, or individually. Once again, thanks to OpenID and SPARQL capabilities of the backend, I can retrieve the related FOAF document, and also the URI of the user.

Thus, the export can provide owl:sameAs + rdfs:seeAlso links to the original people / file, like on that profile (BTW, well done for wikini and its FOAF export). The great thing, imho, is that it shows how OpenID can add a trust layer to the Semantic Web, by providing an automatic way to have bi-directional owl:sameAs links between URIs, which means both parts agree on the fact that they’re the same. Since you can link from your foaf profile to any URI on the Semantic Web, you need a way from this URI to link to your original FOAF file. This SW+OpenID association provides it, and could be really useful in a Linked Data perspective.

NB: OK Morten, now we’ll have to check how to avoid recursion :)

One FOAF fits all

A few years ago, I created my FOAF profile with FOAF-O-Matic. But actually, I almost never updated it and its foaf:knows list.

So, now, I’ll let external websites manage those informations.
I have exports in RDF of my flickr, twitter and facebook accounts, as well as this weblog (in progress), and in most of them, I define those relationships to the people I know. Since all those files define a URI for myself, I can use my main (I mean hosted by my own) FOAF file as a reference profile that will link myself to my other URIs using owl:sameAs, and also add rdfs:seeAlso links to the related files (as described here), eg:

<owl:sameAs
  rdf:resource="http://apassant.net/home/2007/12/flickrdf/people/33669349@N00"
  rdfs:seeAlso="http://apassant.net/home/2007/12/flickrdf/data/people/33669349@N00"/>

<owl:sameAs
  rdf:resource="http://twitter.com/terraces"
  rdfs:seeAlso="http://tools.opiumfield.com/twitter/terraces/rdf"/>

And I’ll get a decentralized foaf:knows network, as shown on this graph:onefoaf.pngThen, I can grab all these profiles in a local RDF store, or even better, use a dedicated Semantic Web “social graph manager” as Knowee or Beatnik to get all my contacts locally, get their e-mail, query profiles, or as David said, integrates in other desktop apps and sync with my iphone (ok, I don’t have one yet :) ) …

And if services as linked-in or bibliography repositories export FOAF URIs for anyone, as the FOAF/DBLP service already offers, I could even link to people I worked with. In case all those services exports data with only foaf:knows and I want to be more precice, I can refine relationships in my profile using the RELATIONSHIP vocabulary, or maybe even include rules in my profile that could then be taken into consideration by agents that will query it ? Something like:

( GRAPH <http://linkedin/foafexport/mygraph> { #me foaf:knows ?x } )
=>
( #me rel:collaboratesWith ?x )

that will be in my profile itself.

Finally, since I can create a link to this FOAF profile from my OpenID, I can reuse this graph in many applications. And when login to a new service, ask him “is there anyone here that I know from flickr ?”.

More than social network, I can also link from the same profile (or, actually, from the profiles that have been linked to the reference one) to various things I wrote or done on the Web, as data from last-fm, revyu or flickr, thanks to SIOC, as explained here.

So: One reference profile. Lots of distributed information. One Giant Global Graph.

NB: Also check some of Dan Brickley’s experiments about related topics.

NB2: I did not take trust issues in consideration in that post, i.e. how can we be sure that the owl:sameAs relationship is linked to an URI which is really *me*. I think one solution would be to authenticate on those websites using OpenID so that it can find my FOAF file, then my URI, and add an owl:sameAs link in the other direction. Both files should also be signed, and I think that will be ok (?).

WordPress, FOAF, OpenID – updated

Here’s an update of my previous experiments on retrieving FOAF profiles when users authenticate a wordpress blog with OpenID.

The openid plug-in for WordPress is now stable (I made the experiments on svn versions), so here’s the piece of code that retrieves profiles when creating user account – tested with v2.1.2 of wp-openid.

Unpack the tgz in your the wp-openid folder, and check readme-foaf.txt for instructions. This version also features a function you can add in your templates to show the FOAF icon and a link to the profile in comments, and a way to cron the autodiscovery feature for profiles updates (Edit: The cron now tries to find FOAF files from user homepages, see comments).

I’ll maintain this hack for next updates of wp-openid (unless it’s in the plug-in itself). Nexts steps will be to retrieve people URI (more than just the profile, which should be easy if people use the foaf:openid property in their profile) and use these data in the SIOC and FOAF exports for WordPress. It will be one more way to provide a RDF-ized social graph, with reference to existing profiles and URIs.