Monday, December 10th, 2007
Federating Social Networks review
Yesterday like I talked about, we had the Federating Social Networks meetup (Upcoming) at Mediamatic. This resulted in early mornings for those coming from outside of Amsterdam. Tijs, Mark, Pascal and myself took the early train and Blaine Cook and David Recordon had flown in from San Francisco for this meetup. Fortunately there was an espresso machine to keep us alert.
The aim of the day was to talk (see the Jaiku backchannel) about how we could use the technologies at our disposal and the data available to create better experiences for users. It looks like most of the specs are there and the conversation has been going on for most of the year. We should begin building stuff.
Mediamatic at least is dedicated to build something on top of anyMeta which needs to be ready by Q1 2008. The workshop was an effort to gather thoughts on the best way to move forward.
This week also saw the announcement of the DiSo project by Chris Messina. A way of building open social networks using Wordpress as the platform.
Problem statement
We spent quite some time on the problem statement and use cases. The discussion went all over the place both in subject matter, scope and level of detail. At this point I don’t think the philosophical considerations are very useful anymore. This is a broad subject and, yes, everybody has an opinion about it. We need to be a lot more concrete about what we want to build and steps we can take right now to get there. I thought that was clear from the event description but apparently not everybody read that.
The vision that is on the table is quite grand. By distributing and taking ownership of your own data, be it profile information, your relationships, your writing, your pictures or your videos, you get full control. Sites that want to participate in this effort will need to abide by your rules and read and write accepted standards. This means a dramatic redefinition of the way the internet works, so dramatic that it will not happen anytime soon. Also, I don’t think that we can standardize all that in an afternoon.
The problem that we need to solve and which is currently causing painful experiences is: Almost every site and application can be enhanced by adding information about the people you know. How do you do that without replicating effort both for developers and users time and time again?
Finally the list of use cases that we came up with:
- Profile Aggregator (OpenID)
- Access Privacy (profile, contacts, stuff I own, claim stuff/ publications)
- Migration of data/ ownership
- Content discovery/ finding stuff
- Set privacy (noindex, etc)
- Consolidation of data/ profiles
- Personal Messaging
- OpenId - reflection of profiles/ relations
- Referencing accross sites
- Control of representation of copy
- Pingback when your object has been used/ altered
XMPP does it all
A lot of work especially by Ralph is focused on creating a Jabber/XMPP pubsub specification which can be used to post content and updates to and making it easy for interesting parties to be notified of those publications. This is very nice and Ralph’s presentation extolls most of the virtues of XMPP.
Still it will take some time before this becomes relevant for the rest of the web. XMPP is the best thing since sliced bread and I imagine that the guys building it can make it do pretty much everything. There are two problems that hamper its adoption.
First the language and the concepts are sufficiently different that people need a lot of introducing before they are up and running with the concepts.
Secondly once you understand it, there is not much it will do for your blog running on a shared PHP host. Also if you do run XMPP on your own server, you can interface with existing services and you can do anything but there are not any well defined interactions yet.
Mediamatic is aware of this and for their own (PHP based) anyMeta sites and for the rest of the world that wants to participate they are going to provide a bridging server where websites can POST updates using HTTP and the service will publish notifications to interested parties both using XMPP and HTTP depending on the capabilities of the receivers.
HTTP may not be ideal and people fluent in XMPP describe most of the stuff it has been forced to do as hackish. Still, HTTP has a lot going for it. With Atom and REST, HTTP already drives a lot of application functionality over the internet. And with Comet style interaction starting to catch on non blocking HTTP servers will become more and more normal. This will make real time interaction and stuff that is currently not scalable easier.
Moving data
Luis Villa’s post eloquently makes the case for being able to move our data whereever we want. This is quite a big problem and not one that is going to be solved easily if at all.
Sites such as Flickr will allow you to get your data but there needs to be more incentive to open up and more standardization in container formats.
The use case that was discussed of being able to own your pictures, the permalinks pointing to them as well as the comments on those pictures and being able to move that wholesale to a different site strikes me as somewhat too utopian. A site such as Flickr offers you their hosted application and hosts your pictures for you. As it happens Flickr has an API which allows you to get your data back but you will never be able to make a 1-to-1 mapping to another service.
Owning your namespace on a server not your own is a known problem: e-mail has the same problem and it still hasn’t really been solved. A few hosts such as GMail are gracious enough to let you POP your emails off their server, but you still have a middle man that you can’t cut out. Owning your own domain and forwarding it to another service (like Google Applications) seems like the way to go.
I don’t see this issue as going to be solved any time soon. The stakes are too high, the subject is too complex and in most cases a local copy will have to suffice. I have gotten used to losing some data at every significant computer migration. You can’t have your cake and eat it. If you really want to be in control, install phpAlbum on your domain on a generic host and move that around all you want.
Concrete steps towards the future
Marc promised a documentation server with the findings and draft specifications soon. Somewhere early next year Mediamatic will publish their public HTTP to XMPP bridge. Blaine, David and Ralph were supposed to draft something of a spec, but I don’t know when it’ll be made available.
Tijs has been creating quite the list of interesting sites in this space. Like the Attribute Exchange schema supported by OpenID 2.0 which looks very interesting. And a start page for all the standards for this initiative: Data Portability.org.
Another thing would be to start implementing the wordpress plugins listed at the DiSo wiki. I have an hAvatar plugin lying around which needs some testing before release.
A Wordpress plugin that will speak to the XMPP bridge service would need to do the following:
- Add XMPP autodiscovery links to the <head> of the blog.
- Ping the bridge service using HTTP every time a post is made or updated.
- Maybe: listen to notifications from the server for stuff such as blogrolling or trackback.
- Maybe: Publish your friend list as XFN to the bridge so interested parties can subscribe to that.
This won’t be too difficult to implement but it has to wait for the pubsub bridge to become public. It’s looks like the best way to converge to each other is to create stuff.




Now, 








