An Introduction to XRI I-Names and I-Numbers
- About This Page
- Recommended Introductory Reading
- Why do we need XRIs – what problems to they solve that DNS and URIs don't?
- Don't URNs (Uniform Resource Names) solve many of these problems?
- How did XRIs get started?
- How are XRIs different from URIs and IRIs?
- How are XRIs different from URNs?
- Do you really need both i-names and i-numbers?
- What are the key differences between using DNS names and XRI i-names/i-numbers for identification?
- Why is this important to the GSS?
NOTE: The content on this page is non-normative, i.e., it is not officially part of the XDI.ORG Global Services Specifications (GSS), but only introductory material. See GssDefinitions for further terminology and layout conventions.
1. About This Page
The page provides a starting point for understanding the key concepts of XRI architecture necessary to navigate the rest of the GSS. In particular it contrasts XRI i-names and i-numbers with DNS domain names so readers familiar with DNS naming can understand why XRIs were developed.2. Recommended Introductory Reading
If you are new to XRIs and the concepts of i-names and i-numbers (note that these terms are generic and only capitalized on this wiki when referring to their formal definitions - see GssDefinitions), the following high-level overviews from the
In addition, the following document from the
OASIS XRI TC was published as part of the XRI 2.0 specifications to help explain the key problems XRIs are designed to solve:
3. Why do we need XRIs – what problems to they solve that DNS and URIs don't?
The short answer is simplified identification and persistent linking. Neither IP addresses, DNS names, or URIs (with the exception of URNs, discussed below) were designed to be long-lived, cross-context identifiers for non-network resources like people and organizations that:
-
Change locations on the network;
-
Change domains and service providers;
-
Change their real-world name or semantic identity even though their real-world identity stays the same (e.g., a person changes their name upon marriage, a company changes its name after a restructuring, or a product is given a new marketing name.)
-
Need to be identified in many different contexts (i.e., personal, professional, social, legal, governmental, etc.)
4. Don't URNs (Uniform Resource Names) solve many of these problems?
The
IETF URN specifications were developed in 1998 to try to solve the problem of broken links by creating a standard for persistent, location-independent Internet identifiers. URNs were designed as a new type of URI (Uniform Resource Identifier) so they would be compatible with Web architecture. Yet they have never been broadly adopted for several reasons:
-
URNs are very hard for people to use (precisely because, like IP addresses, they are designed to meet technical requirements for global uniqueness and machine efficiency, not human readability).
-
URNs required a separate resolution protocol, i.e., they were not integrated with IP, DNS, or HTTP.
-
URNs required a new kind of persistent identifier authority and policy framework – one designed to support very long-lived registrations.
-
URN architecture did not solve the cross-context identification problem – URNs were only designed to provide persistence.
5. How did XRIs get started?
The XRI effort began as a Technical Committee (TC) at
OASIS in January 2003 after several years of gestation at XNS.ORG, which developed a distributed identification architecture called XNS (Extensible Name Service). The
OASIS XRI TC published the XRI 1.0 specifications in January 2004. The XRI 2.0 specifications, which incorporate changes in the IETF
URI (Uniform Resource Identifier) and
IRI (Internationalized Resource Identifier) specifications upon which XRIs are based, were approved by the XRI TC as a Committee Draft on March 14, 2005.
6. How are XRIs different from URIs and IRIs?
XRIs provide three key features not available in generic URIs or IRIs:
-
A single, integrated syntax for both persistent, machine-friendly identifiers ("i-numbers") and reassignable, human-friendly identifiers ("i-names".)
-
Cross-references are compound identifiers that can include other identifiers, allowing identifiers to be shared across contexts (the same way people share generic words and phrases.)
-
Global context symbols (GCS) are prefix characters than can be used to express the global context of an identifier authority (e.g., personal, organizational, generic, etc.) For examples see the InameInumberTechFaq.
7. How are XRIs different from URNs?
With these features, XRIs can solve all four key problems with URNs:
-
The ease-of-use problem can be solved by having humans use simple, intuitive i-names and then when necessary having machines resolve them into persistent i-numbers, just as people use DNS names today and let machines resolve them into IP addresses.
-
The common protocol problem can be solved by using a standard HTTP-based resolution protocol for both i-names and i-numbers (which also offers a trusted resolution option – see the
XRI Resolution V2.0 specification.)
-
The persistent authority problem can be solved by enabling XRI registries at every level from global to local to assign either i-names and i-numbers, much as databases assign both human-friendly labels and persistent ID keys to records. Identifier registrants may select their authority(s) based on their needs for either persistent or reassignable identifiers or both.
-
The cross-context identification problem can be solved by using XRI cross-references, both to existing identifiers (such as URIs and URNs), as well as to other XRIs (specifically XRIs that use global context symbols designed for easy cross-referencing).
For detailed examples please see the InameInumberTechFaq.
8. Do you really need both i-names and i-numbers?
If an application needs persistent linking but involves little human interaction, it can use only i-numbers. However if an application needs both persistent linking and human-friendly resource identification, then it needs both i-numbers and i-names. In many ways i-names do for persistent i-numbers what DNS names did for IP addresses.
9. What are the key differences between using DNS names and XRI i-names/i-numbers for identification?
DNS names provide a very useful level of indirection in network addressing. That is, they enable an Internet host or hosted resource such as a website to have an identity independent of a particular IP address. This way, a server can fail and be replaced by another, or a website can be moved from one server to another, without other entities on the network needing to know anything about these changes. As far as the rest of the network is concerned, the "logical identity" of the host remains the same.
The problem with using DNS names for long-term persistent identity, however, is precisely that they are names. Real-world semantic names are prone to change as human relationships change (people, businesses, countries, cultures, languages, etc.) Solving this problem, as discussed above, requires persistent identifiers like URNs that can serve as "global
foreign keys" – globally unique indexing values that never need to change. XRI i-numbers meet this requirement, however like IP addresses they are machine-generated numeric values that not practical for human use.
The XRI layer of indirection solves this problem by offering both i-names and i-numbers. I-names provide a much easier way for humans to specify an i-numbered resource, just as DNS names are a much easier way for humans to specify an IP-addressable resource.
\ XRI I-Name OR I-Number / <== Abstract identification layer
\ DNS Name / <== Concrete identification layer
\ IP Address / <== Current location layer
Note that at the DNS layer, it is names that provide a more persistent, logical identity than IP addresses. However at the XRI layer it is the numbers that are most persistent. An i-name may be very long-lived – for example an individual might keep a personal i-name for life – however it is still less persistent than its i-number synonym, which may continue representing the person for millenia, long after their i-name has been reassigned.
The second key difference between the DNS layer and the XRI layer is the protocols used for resolution and data interchange. DNS uses a very low-level protocol for fast lookup of IP addresses and a few other public attributes. XRI resolution uses HTTP and XML not only for lookup of URIs, XRI synonyms, and other metadata that can used to interact with a resource, but to initiate XDI trusted data sharing relationships that can protect the security and privacy of all shared information.
10. Why is this important to the GSS?
In order to enable every registrant to maintain a fully persistent identifier (one that will never be reassigned), the GSS I-Name Policies (GssPolicies/InamePolicies) require every Global I-Name to have a persistent Global I-Number as a synonym. Use of this Global I-Number is optional to registrants and i-brokers, but its provisioning gives the registrant a way to maintain a persistent network identity even if their Global I-Name changes or expires.
Assigning and using i-number synonyms is also the recommended best practice for i-brokers and XRI/XDI application developers whenever persistent links or relationships are needed. Persistent i-numbers allow the entire XRI/XDI network to operate with higher efficiency and fewer broken links, and by pairing i-numbers with human-friendly i-names, this efficiency can be achieved with no loss of usability.
