I'm looking to implementing a few of various aspects of "Open - Distributed - Social" thingy recently. The primary interest right now is to leverage OpenID endpoint URL more, because that's the URL accepted, for example, when a commenter tries to comment on my Movable Type powered blog.
For example, Vox and LiveJournal specify the blog's main index page as the OpenID endpoint for the blog's owner. Both Vox and LiveJournal have other information in the main index page, such as link to FOAF and Atom feed. Net::OpenID leverages the fact and retrieve FOAF and/or Atom feed to annotate OpenID with those semantic information.
Things are a bit different in the current addition of OpenIDs. AOL, Yahoo, livedoor, and Hatena, have the dedicated page to their users' OpenID endpoint. Those pages does not have much information except explaining that they are OpenID endpoint. Yes, nothing is wrong with that, of course.
WordPress has a cool plugin called hAvatar. Basically the plugin accepts commenter's URL either from what is manually entered, or from OpenID the commenter has signed in. It retrieves the resource from the URL and search for hCard, to grab the photo of the person (== commenter), and load the photo as the commenter's userpic. Neat.
I am trying to implement the same function in Movable Type. The implementation is easy thanks to HTML::TreeBuilder::XPath. However the problem is that not too many OpenID endpoints actually has hCard. Among the four I listed above, Hatena's page is the only page which has some information ( username and userpic ). Hatena's, however, is not marked as hCard.
Now I'm wondering, if the idea of hAvatar is really valid in practice. Should OpenID endpoint have more information about who the OpenID actually is, when it is simply retrieved via HTTP GET? Or, in more REST-y sense, what resource should OpenID URL represent? And how?