FOAF and OpenID: two great tastes that taste great together
As Simon Willison notes, OpenID solves the identity problem, not the trust problem. Meanwhile, FOAF and RDF are potential solutions to lots of problems but not yet actual solutions to very many. I think they go together like peanut butter and chocolate, creating a deliciously practical testbed for our Policy Aware Web research.
Our struggle to build a community is fairly typical:
- Oct 2005: breadcrumbs launches (and I wish for OpenID support)
- Dec 2005: Tim gets 400+ friendly comments on his first item.
- Jun 2006: Comments disabled due to overwhelming spam
In Dec 2006, Ryan did a Drupal upgrade that included OpenID support, but that only held the spammers back for a couple weeks. Meanwhile, Six Apart is Opening the Social Graph:
... if you manage a social networking service, we strongly encourage you to embrace OpenID, hCard XFN, FOAF and the other open standards around data portability.
With that in mind, a suggestion to outsource to a centralized commercial blog spam filtering service seemed like a step in the wrong direction; we are the Decentralized Information Group after all; time to eat our own cooking!
The policy we have working right now is, roughly: you can comment on our blog if you're a friend of a friend of a member of the group.
In more detail, you can comment on our blog if:
- You can show ownership of a web page via the OpenID protocol.
- That web page is related by the foaf:openid property to a foaf:Person, and
- That foaf:Person is
- listed as a member of the DIG group in http://dig.csail.mit.edu/data, or
- related to a dig member by one or two foaf:knows links.
The implementation has two components so far:
- an enhancement to drupal's OpenID support to check a whitelist
- a FOAF crawler that generates a whitelist periodically
We're looking into policies such as You can comment if you're in a class taught by a DIG group member, but there are challenges reconciling policies protecting privacy of MIT students with this approach.
We're also interested in federating with other communities. The Advogato community is particuarly interesting because
- The DIG group is pretty into Open Source, the core value of advogato.
- Advogato's trust metric is designed to be robust in the face of spammers and seems to work well in practice.
So I'd like to be able to say You can comment on our blog if you're certified Journeyer or above in the Advogato community. Advogato has been exporting basic foaf:name and foaf:knows data since a Feb 2007 update, but they didn't export the results of the trust metric computation in RDF.
Asking for that data in RDF has been on my todo list for months, but when Sean Palmer found out about this OpenID and FOAF stuff, he sent an enhancement request, and Steven Rainwater joined the #swig channel to let us alpha test it in no time. Sean also did a nice write-up.
This is a perfect example of the sort of integration of statistical methods into the Semantic Web that we have been talking about as far back as our DAML proposal in 2000:
Now we just have to enhance our crawler to get that data or otherwise integrate it with the drupal whitelist. (I'm particularly interested in using GRDDL to get FOAF data right from the OpenID page; stay tuned for more on that.) And I guess we need Advogato to provide a user interface for foaf:openid support... or maybe links to supplementary FOAF files via rdfs:seeAlso or owl:sameAs.Some of these systems use relatively simple and straightforward manipulation of well-characterized data, such as an access control system. Others, such as search engines, use wildly heuristic manipulations to reach less clearly justified but often extremely useful conclusions. In order to achieve its potential, the Semantic Web must provide a common interchange language bridging these diverse systems. Like HTML, the Semantic Web language should be basic enough that it does not impose an undue burden on the simplest web software systems, but powerful enough to allow more sophisticated components to use it to advantage as well.
With some nudging from TimBL, the FOAF wiki is back from beyond the grave :)
It's moved from MoinMoin to MediaWiki, and has Evan Prodromou's OpenID extension, plus spam-filter and capcha extensions, which I might be able to disable if OpenID plus social network approach works out.
Is the DIG whitelist of OpenIDs available publically somewhere? "We're also interested in federating with other communities" sounds worth following up. Also if these communities share common interests, it might be fun to autogenerate a config file for a Planet-style blog aggregator.
Hidden inside my Wordpress blog is a list of OpenIDs from comments I've accepted. I should figure out a way to export them...
Re the FOAF wiki, if folk here could try it out with OpenIDs that'd be great. I think the support is a bit more robust than last time I tried it, but it hasn't been heavily tested in this installation yet.
that sound really interesting. Currently I am working on a Dutch Learning Community called LeerWiki. It is based on the MediaWiki platform.
Unfortunately I've been having a lot of SPAM lately and I already installed a Captcha spam filter. I am very willing to move over to an OpenId extension. In that way only members of the community will be accepted. I think it is a good technique to only accept members who are part of a community with proof of trusted contacts.
I will look onto the FOAF wiki.
regards
We could do with picking up full names from the FOAF files in the process, I think, as they are in the trust path and they would make the user interface more readable.
I forgot to work in related work that TimBL told me about:
- Opera community stuff by Kjeitil (oops; it looks like he's moving on from Opera; but staying in the Semantic Web community...)
- Jen Golbeck's trust and social networking research
- SWEO FOAF whitelisting community project (though Danny's item cited it)


But did I get to log into this because someone from dig has me in his foaf file, and I logged in via the OpenId listed in my foaf file ? It would be nice if the magic were shown, so that people could feel the power of the network. :-)
Ok. So I suppose I am in there from my foaf file because I get the following output:
Make the magic a little more explicity!
Also since a foaf file is used, the service should not have to ask me for my name or email address. It's all in the foaf file!
Otherwise this is very neat :-)