Let's now look at our favourite XRI,
=drummond. If I retrieve the XRDS for
=drummond, through the resolution service http://xri.net/=drummond?_xrd_r=application/xrds+xml, I get (at current writing!)
- a canonical (and persistent!) i-number corresponding to the i-name
- A Skype call service endpoint
- A Skype chat service endpoint
- A contact webpage service endpoint
- A forwarding webpage service endpoint
- An OpenID signon endpoint
The XRDS does not anywhere say what
=drummondis identifying; just some services associated with
=drummondcontingently. I could infer Drummond's full name from the Skype username being
drummondreed, but that's hardly failsafe. What I would like is access to some text like...
VP Infrastructure at Parity Communications (www.parity.inc), Chief Architect to Cordance Corporation (www.cordance.net), co-chair of the OASIS XRI and XDI Technical Committees (www.oasis-open.org), board member of the OpenID Foundation (www.openid.net) and the Information Card Foundation(www.informationcard.net), ...
Oh, as in the contact webpage that http://xri.net/=drummond resolves to, http://2idi.com/contact/=drummond . Well, yes, but I did not know ahead of time that the contact webpage would have the information I wanted, with enough bio information to differentiate Drummond from other candidates: it's a contact page, not a bio page. (Drummond providing bio info is a lagniappe, which simply proves he knows about identity issues.)
What I want is some consistent way of getting from
=drummondto a description of what
=drummondidentifies. XRDS is a descriptor already, which is why
=drummondresolves to it: it describes the service interfaces that get to
=drummond. But it's a descriptor of service endpoints and synonyms; it still doesn't persistently describe Drummond, the way the DESC field does in Handle. (Or would, if anyone ever used DESC).
Now, the technology-independent description of what is being described is needed for persistent identifiers; it's not as important for reassignable identifiers. So even if
=drummonddoesn't take me directly to a persistent description, persistence is still satisfied if
=drummondtakes me to
=!F83.62B1.44F.2813takes me to a persistent description. XRI allows
=!F83.62B1.44F.2813to have different XRDS (because they can have different services attached)—though typically when an i-name is registered against an i-broker, the XRDS is the same. The requirement would be for the persistent description to be accessed through the i-number's XRDS, which may not be the same as the i-name's.
The easy way of adding a persistent description to an XRDS is treating it as yet another service endpoint on the identifier: I give you an identifier, I get back a persistent description. Drummond's contact page already accidentally the description. What I'd like is some canonical class of service for getting to the persistent description. It could be something as simple as an
+i-service*(+description)*($v*1.0)service type, to match the
xri://+i-service*(+contact)*($v*1.0)type which gave me Drummond's contact page.
This description service is actually the reverse of David Booth's http://thing-described-by.org/. David starts with the URL for a description as a web page,
http://dbooth.org/2005/dbooth/, and creates an abstract identifier
http://thing-described-by.org?http://dbooth.org/2005/dbooth/for the entity described by the web page . XRI starts with
@xri*david.booth(I can't see David actually registering his own XRI), which is already an inherently abstract identifier—unlike HTTP URIs.
Getting from there back to the description
http://dbooth.org/2005/dbooth/is a resolution; we could access it through
http://is-description-of.org/?@xri*david.booth. (We would likely access it through normal HXRI proxy
http://xri.net/@xri*david.boothtoo; the point is, we're constraining the HTTP resolution to a specific kind of representation. David Is Not His Homepage.)
I'll note that David's description is worth emulating: "The URI http://thing-described-by.org?http://dbooth.org/2005/dbooth/ hereby acts as a globally unique name for the natural person named David Booth with email address email@example.com (as of 1-Jan-2005)."
The catch with that approach is, we're now relying on an external service to guarantee the persistent metadata for our persistent identifier. And as I argued in the previous post, you don't want to do that: your system for persistence should be self-contained, since you are accountable for it. It is easier for the description to persist if it sits inside the i-number's XRDS than outside it.
Even that does not give much of a guarantee of archival-level persistence. It is a feature and not a bug of XRI that users manage their own XRDS for personal i-names: the i-broker refers resolution queries back out to the user's XRDS, and promises only not to reassign the i-number. i-brokers do not commit to registering their own persistent metadata against the i-number. But once the user's XRDS goes offline, noone is able to resolve the i-name or the i-number. The trick with persistence in identifiers is, it's always persistence of something. Once the service endpoints for your identifier go away, you lose persistence of actionability. Not reassigning the i-number maintains persistence of reference (the i-number can't start referring to something else). But without a description accessible down the road, it does not maintain persistence of resolution (a user finding out what it referred to, even if no service endpoints are available).
Maybe that's OK: XRIs are addressing a particular issue—digital identity across multiple services. If the user is trusted to maintain their digital identity, then XRI is not geared to address long-term archival needs. In the same way, the user-centered practice of self-archiving has nothing to do with long-term archives (as Stevan Harnad has to keep repeating—with only himself to blame for introducing the term in the first place. )
Oh, can't resist: Wikipedia entry on self-archiving:
- SelfArchive.org: a self-archiving wiki - DEAD LINK
Bwahah. And don't get me started on an "archivangelism" with its emphasis on "arch"...