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
... 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.