IIW2005: Drummond Reed on XRIs


XRI is a syntax and resolution protocol for abstract identifiers---identifiers that are independent of the underlying network location, domain, application, or storage. It's an abstraction layer for identifiers of all types. You can use an XRI anyplace you can use a URI. An XRI can be downcast into a URI. There is also a standard way of making an XRI clickable called XRI Resolution. XRI is the product of an OASIS technical committee.

In the same way that URI's unify the filename, IP address, and domain name layers into a single namespace, XRIs integrate URIs with names in the telephone, postal and future networks.

XRIs provide a way to create persistent identifiers, but that's not he killer app for XRIs. There is also, a need for reassignable identifiers as well, and XRI allows those in the same syntax. XRIs can start with a global context symbol. Any XRI can be the global root for an identifier community through cross referencing.

On the Internet, URIs have created a system of proper nouns. Everything has a name, but there are no general nouns for use in discussing common ideas. In English, you don't have to know what the other person calls things because we have nouns that give us the same names for things. So +resume could stand for a resume, regardless of how I've named it. xri:///(=windley)/(+resume) could map in to http://phil.windley.org/windley_resume.pdf and you could find it by knowing my identifier and the right noun for a resume.

An XRID is an XRI resolution document. XRIDs are XML documents that are returned from an HTTP GET request on an XRI. It gives not only the resolution, but also synonyms, authorities, local path resolvers, and service endpoint URI descriptions.

Three uses of XRIs: i-names, open tagging, and XDI (the XRI data interchange format). I-names provide a way of creating a universal contact that abstracts email addresses, phones, physical addresses, and so on. They also provide privacy protection. XRI is the basis for i-names, but XRI is not an authentication protocol. It simply provides a simple way for relying parties to discover a user's authentication service endpoint (or YADIS file).

Open tagging provides a way to create a tag dictionary using XRIs. The tag dictionary provides a way for everyone to talk about their own tag namespace (like URIs provide a way for me to create my own unique identifiers).