I-Number Syntax and Normalization
- Motivation
- Background
- Community I-Number Syntax Policy
- Global I-Number Syntax Policy
- Community I-Number Normalization Policy
- Community I-Number Delegation Policy
- Implications
- Related Policies
1. Motivation
These policies specify the valid syntax and characters for Community I-Numbers (which include Global I-Numbers). They are motivated by the need for XDI.ORG Community I-Numbers to:-
Provide maximum resolution efficiency of Global and Community I-Numbers for all users and service providers of XDI infrastructure.
-
Scale to reflect the persistence requirements of Community I-Numbers.
-
Protect the privacy of Registrants and ensure them maximum control over any data associated with a Global I-Name or Global I-Number.
-
Ensure the integrity and stability of XDI infrastructure.
2. Background
Although the GRS assigns only the first subsegment of an XDI.ORG Community I-Number, efficient resolution of XDI.ORG Community I-Numbers is very similar to efficient routing of IP addresses – it requires agreement by all participants in the addressing network to a common set of addressing rules. The policies in this section govern the syntax, normalization, and delegation rules that apply to the entire XRI Authority segment of a Community I-Number.
In particular, due to the special persistence requirements of I-Numbers, the XDI.ORG Community I-Number space requires scaling, federation, and delegation characteristics very similar to that of IP (Internet Protocol) infrastructure. Therefore the policies governing the syntax of XDI.ORG Community I-Numbers are modeled directly after IPv6 addressing architecture (see
RFC 2373).
3. Community I-Number Syntax Policy
An XDI.ORG Community I-Number MUST conform to the XRI Specifications for persistent XRIs for XRI Authorities. In addition it MUST conform to the structure and syntax of IPv6 addressing architecture as specified in-
To conform to the XRI Specifications for persistent XRIs, a Community I-Number MUST use bang ("!") instead of colon (":") or dot (".") as the delimiter for the hexadecimal values representing each 16-bit segment, and the first segment MUST be preceeded by a bang.
-
A Community I-Number MAY consist of less than eight 16-bit segments. If so, the segments used MUST be interpreted as representing the least significant (rightmost) bits of the 128-bit address space, and double delimiters MUST NOT be used to represent the missing (most significant) segments.
-
A segment of an Community I-Number MAY be a Cross-Reference to another I-Number. If so, this I-Number MUST follow the same syntax rules defined in this policy. (This syntax is specifically used by the Global I-Number Syntax Policy, below.)
-
A Community I-Number MUST be prefixed with an XRI GCS character as specified in the following Global I-Number Syntax policies.
A Community I-Number MUST begin with a Global I-Number. A Community I-Number MUST conform with the Community I-Number Normalization Policy.
4. Global I-Number Syntax Policy
A Global Independent I-Number MUST begin with the GCS character "!" and MUST be a hexadecimal value in the first segment of a Community I-Number. This value MUST be outside the range reserved by the Reserved Global I-Number Policy (GssPolicies/ReservedInumbers). A Global Personal I-Number MUST begin with the GCS character "=" and MUST a Cross-Reference to an I-Number generated by the Global Registry. A Global Organizational I-Number MUST begin with the GCS character "@" and MUST a Cross-Reference to an I-Number generated by the Global Registry.5. Community I-Number Normalization Policy
Per the Community I-Number Syntax Policy, all characters in Community I-Numbers except XRI syntax delimiters MUST be hexadecimal digits. All non-numeric hexadecimal digits MUST be normalized to uppercase.6. Community I-Number Delegation Policy
Within the XDI.ORG Community, all Community I-Numbers assigned at any delegation level MUST conform to the Community I-Number Syntax Policy. This obligation MUST be passed on to all Registrants in all Registration Agreements.7. Implications
7.1. XDI.ORG Community I-Number Routing Tables
A key implication of the Community I-Number Syntax Policy is that all XRI resolvers dealing with XRIs in the XDI.ORG Community will be able to standardize on "nested""Nested" means that the base routing table is the same as the IPv6 128-bit routing table, however in order to provide for expansion of this space by authorities at every level (due to the unique persistence requirements of I-Numbers), each of the eight 16-bit segments in the base routing table may be mapped to another instance of the 128-bit table ("subtable"). If necessary, a segment of a subtable can be mapped to another lower-level subtable and so on (this should be very rare and only needed by the very largest registries or i-brokers.)
7.2. Community I-Brokers
The Global Registry assigns Global Independent I-Numbers only to Registrars (see GssPolicies/RegistrationRestrictions). Individuals or organizations who wish to serve as a Community I-Broker for Resources addressable within the XDI.ORG Community, but who do not wish to become a Registrar, may register a delegated Community I-Number with any Registrar that offers Independent Community I-Broker registration services.7.3. Privacy Considerations
It would be very efficient, from a resolution standpoint, for Global Personal and Organizational I-Numbers to consist of Cross-References to the Registrant's Community I-Number assigned by their Registrar (this design was used in a preliminary trial program). However if the Registrant later transfers their registration to another Registrar, the Registrant's Global I-Number would still reflect the relationship with the original Registrar. Generating a "semantic-free" I-Number at the GRS level conforms to the Minimum Information Policy (see GssPolicies/PrivacyPolicy) and assures the least possible information is reflected in a Global I-Number while still optimizing resolution efficiency.8. Related Policies
-
Privacy - GssPolicies/PrivacyPolicy.
-
I-Name Syntax and Normalization - GssPolicies/InameSyntax.
-
I-Number Resolution – GssPolicies/InumberResolution.
-
I-Number Status – GssPolicies/InumberStatus.
-
Reserved I-Numbers - GssPolicies/ReservedInumbers.
-
Cross-References - GssPolicies/CrossReferences.
