in FOAF

OpenID plugin for WordPress

I’ve just installed Alan J Castonguay’s WordPress OpenID plugin on my blog, part of a cleanup that included nuking 11000+ comments in the moderation queue using the Spam Karma 2 plugin. Apologies if I zapped any real comments too. There are a few left, at least!

The OpenID thing appears to “just work”. By which I mean, I could log in via it and leave a comment. I’d be super-grateful if those of you with OpenIDs could take a minute to leave a comment on this post, to see if it works as well as it seems to. If it doesn’t, a bug report (to danbrickley@gmail.com) would be much appreciated. Those of you with LiveJournals or AOL/AIM accounts already have OpenID, even if you didn’t notice. See the HTML source for my homepage to see how I use “danbri.org” as an OpenID while delegating the hard work to LiveJournal. For more on OpenID, check out these tutorial slides (flash/pdf) from Simon Willison and David Recordon.

Thinking about OpenID-mediated blog comments, the tempting thing then would be to do something with the accumulated URIs. The plugin keeps its data in nice SQL tables and presumably accessible by other WordPress plugins. It’s been a while since I made a WordPress plugin, but they seem to have a pretty good framework accessible to them now.

mysql> select user_id, url from wp_openid_identities;
+---------+--------------------+
| user_id | url                |
+---------+--------------------+
|      46 | http://danbri.org/ |
+---------+--------------------+
1 row in set (0.28 sec)

At the moment, it’s just me. It’d be fun to try scooping up RDF (FOAF, SKOS, SIOC, feeds…) from any OpenID URIs that accumulate there. Hmm I even wrote up that project idea a while back – SparqlPress. At the time I tried prototyping it in Redland + PHP, but nowadays I’d probably use Benjamin Nowack’s ARC library, which provides SPARQL query of a MySQL-backed RDF store, and is written in PHP. This gives it the same dependencies as WordPress, making it ideal for pluginization. If anyone’s looking for a modest-sized practical SemWeb project to hack on, that one could be a lot of fun.

There’s a lot of interesting and creative fuss about “social networking” site interop around lately, largely thanks to the social graph paper from Brad Fitzpatrick and David Recordon. I lean towards the “show me, don’t tell me” approach regarding buddylists and suchlike (as does Julian Bond with Ecademy), which is why FOAF has only ever had the mild-mannered “knows” relationship in the core vocabulary, rather than trying to over-formalise “bestest friend EVER” and other teenisms. So what I like about this WordPress plugin is that it gives some evidence-based raw material for decentralised social networking apps. Blog comments don’t tell the whole story; nothing tells the whole story. But rather than maintain a FOAF “knows” list (or blogroll, or blog-reader config) by hand, I’d prefer to be able to partially automate it by querying information about whose blogs I’ve commented on, and vice-versa. There’s a lot that could be built, intimidatingly much, that it’s hard to know where to start. I suggest that everyone in the SemWeb scene having an OpenID with a FOAF file linked from it would be an interesting platform from which to start exploring…

Meanwhile, I’ll try generating an RDF blogroll from any URIs that show up in my OpenID WordPress table, so I can generate a planetplanet or chumpologica configuration automatically…

Add Comment Register



29 Comments

  1. Interesting ideas with regards to teaming up OpenID with FOAF – something that never occured to me. I wonder if it would be possible to explicitly link an OpenID to a FOAF description.

    Anyway, here’s your first OpenID comment – glad to report that everything worked smoothly.

  2. Hey Dan, it all works!

    You could do some simple inference based on the URL. For instance, LiveJournal.com is an OpenID provider and also provides FOAF at user.livejournal.com/data/foaf

    Or you can infer from a URI of openid.aol.com/username that the person has an AOL account, and maybe an AIM account.

    Perhaps we need a simple way to share these kind of inferences. I’m thinking a simple list in XML that databases could push out, and then an XSLT to turn them in to RDF/XML. The XSLT becomes a ‘mapping’. Something to think about.

  3. OpenID also from VeriSign works but PIP (this is the name of VeriSign’s OpenID) in the last months is problematical: only verisign address even if I use my page with delegate and a FF extention to stay logged.

    Howewer OpenID is a great thing, in PHP there are also a simple OpenID client [1] and a server [2]. So for integration with Semantic Web and FOAF specific there are a GRDDL transfromation via XSLT and a profile for (X)HTML [3] to glean it from a page to RDF. Also an integration with SIOC (there are a SIOC exporter for WP [4]) and Your WOT may be good.

    Benji’s ARC is simply Great, I’ve tested locally on Mac and works very good (So it’s a lightweight Semantic Framework that can be loaded on a most-common web server). It creates Semantic Storage in 1 Sec, imports only via RDF file or direcly Triples (but I hope Benji is working on it) and SPARQL support very good.

    [1] http://www.phpclasses.org/browse/package/3290.html
    [2] http://openidenabled.com/php-standalone-openid-server
    [3] http://dig.csail.mit.edu/2007/id/doc
    [4] http://sioc-project.org/wordpress

  4. OK, so this works with a localized Ducth OpenId provider as well (http://mijnopenid.nl).

    The Social Graph looks very interesting, gotta read it later – my day job has some deliverables right now ;-)

  5. Thanks all! I have a growing list of OpenIDs now :)

    mysql> select user_id, url from wp_openid_identities;
    +———+—————————————————-+
    | user_id | url |
    +———+—————————————————-+
    | 46 | http://danbri.org/ |
    | 47 | http://piercarlos.myopenid.com/ |
    | 48 | http://claimid.com/nslater |
    | 49 | http://nmg.livejournal.com/ |
    | 50 | http://ivanherman.pip.verisignlabs.com/ |
    | 51 | http://simone.pip.verisignlabs.com/ |
    | 52 | http://tommorris.org/ |
    | 53 | http://mijnopenid.nl/is/joe |
    | 54 | http://dagoneye.it/me.html |
    | 55 | http://kidehen.idehen.net/dataspace/person/kidehen |
    +———+—————————————————-+
    10 rows in set (0.01 sec)

  6. PIP from verisignlabs.com works fine for me and their seat belt makes me feel securer.
    I am also trying other OpenIds as well.

  7. For what it’s worth, delegation from my URI (http://dltj.org/) and myopenid.com didn’t work for me. I got bounced to the OpenID login and acceptance page, but then got the error message “OpenID Authentication Failed: Server denied check_authentication” when coming back to danbri.org. It took quite a while for the error message to come up after getting bounced back to danbri.org, so I wonder if it was some sort of timeout in response to a broken service somewhere.

  8. Hmmm — perhaps it was an intermittent problem, or perhaps something else, but if I add my OpenID to my ‘danbri.org’ account via my profile page (which it accepted), I can then log out and log back in again using my OpenID to post this comment.

    Very odd.

  9. @DanBri
    Congratulation for the growing list of OpenIDs! Please inform us to RDF blogroll from OpenID

    @DataGazetteer
    I’m already experienced on similar problem. I think about lag and/or session problems on jumping from one server to another.

    @aberingi
    Also You’re using PIP. So I don’t like PIP removed the possibility to use my main address – that delegates my OpenID – and only .pip.verisignlabs.com/, this may have also implication to generate a blogroll? However the Belt is fine!

  10. I like very much the openid.es the Spanish version OpenID. It is very simple and fast.

  11. One more successful test with myopenid and URL delegation. It didn’t work with claimid, but it seems that’s a problem from their side.

    BTW, one cool thing would be to fetch FOAF URI when creating new account (using meta headers). I’ve just setup the plug-in on my blog, I’l try to make this during the WE.

  12. It Works. Thanks.
    But, the Seatbelt addon did not recognise the login page in this site. I had to do it manually.

  13. Yeah, it seems to work. I guess I’ll go ahead and incorporate this into my site. Thanks!

  14. works like a charm here. but not on my blog. I get

    OpenID authentication failed: Server denied check_authentication

    no idea why. Hints anyone?
    Thank you really much!

    Bye!