A while back Jeremy Keith wrote about something I added to my blog - an OpenID whitelist for access to personal information. I've finally gotten around to properly implementing the full stack. I've added foaf:openid elements to my FOAF file. Then I run a SPARQL SELECT query over it (using ARQ, part of Jena - the Java RDF library - which I started writing a tutorial for the other day on GetSemantic). I save the results out as JSON (you can use the SPARQL XML format too). My blogging application can then read in the list of OpenIDs of my friends and acquaintances from the JSON file. I could read them in dynamically on the server, but since the FOAF is static, I may as well burn some Java cycles on my Mac than burn some PHP cycles on my server.

This is part of a new FOAF workflow that I've setup in order to try and get me to keep my FOAF up-to-date. It consists of a shell script that takes my Notation-3 file, converts it to XML, runs the query through ARQ and then gets me to sign the XML using GPG and the Web Of Trust Ontology. Then it uses SCP to upload the FOAF, the ASCII-armoured signature file and the JSON to the server. You can look at the OpenID JSON file.

What happens next? Well, I'm going to extend the process soon so that it pulls in data from Twitter, last.fm and Jaiku to grab OpenIDs from. As we map more social networks to RDF - Flickr, Digg and anywhere else with an API - these will all get rolled up into one's FOAF file. I'm also planning to split up my FOAF into separate files, and also to run some smart rules over it to do other kinds of inference (ie. if you have a blog from LiveJournal or WordPress.com, that automatically becomes an OpenID identifier.

If you are not in my FOAF file and should be, don't hesitate to ping me in any of the normal ways. I hope to publish it each few days. If you are on the list, come on in. 
