OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

xdi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [xdi] Minutes: XDI TC Telecon Friday 2014-08-08

On Mon, Aug 11, 2014 at 3:40 PM, Joseph Boyle <planetwork@josephboyle.net> wrote:
The old “community i-name” or “2nd level iname” syntax was @org*name. To confirm, is its unique official successor proposed to be +org(=user) ?

No. The "official successor" is +org=(user). The parens MUST go after the = context symbol in order to make it a cross-reference. If the parens go around the entire XDI address of "=user", then it becomes a peer root node, and peer root nodes may only appear at the start of an XDI address. So:

+org(=user)   <== invalid XDI syntax
+org=(user)   <== valid XDI syntax for a relative reassignable personal identifier "=(user)" in the context of an absolute reassignable organizational identifier "+org".



On Aug 11, 2014, at 2:21 AM, Markus Sabadello <markus.sabadello@xdi.org> wrote:

If you need to express a relative identifier in XDI, you use a cross-reference. The purpose of cross-reference syntax is to use an identifier assigned in one context in a different context. This applies to any identifier that can be used in XDI. Examples:


What makes them a cross-reference and not a peer root is the preceding XDI context symbol. A peer root never has a context symbol preceding it. It always starts with a (. Example:


So, if you want to identify a user relative to an organization, there are two choices: to identify the user absolutely or relatively. To do it absolutely, you would use an absolute XDI identifier for the user:

+org=user  ⇐ with a reassignable identifier or “XDI name”
+org[=]!:uuid:f81d4fae-7dec-11d0-a765-00a0c91e0001    ⇐ with a persistent identifier or “XDI number”

To do it relatively, you would use a cross-reference:


The difference is that the semantics of the first example, +org=user, are that the =user identified in this context is the same as the =user identified in any other context. In the second example, =(user) can only be identified in the context of +org. However +org=(user) identifies the same user everywhere +org=(user) is used.

(end of Drummond’s explanations)

Markus asked about the behavior of an XDI discovery client. The answer is that with both options, an XDI discovery client would first discover the XDI endpoint of +org, and then from there discover the XDI endpoint of =user or =(user).

Markus pointed out that in the current XDI Core V1.0 WD02, the use of cross-references for peer roots is explained, but there is no mention of “global” or “local” semantics of identifiers. Markus also noted that the same document explicitly states the goals “to not assume or rely on a central authority” (section 2.2), and that “the uniqueness of identifiers is relative to the context in which identification is required” (section 2.3). A while ago we decided to rename “remote roots” to “peer roots”, to emphasize that in an XDI network, all XDI graphs are considered peers and can (among other things) participate equally in a discovery process.

Jim said that it is a common use case for an organization to issue identifiers for its members. If that organization is required to use the cross-reference syntax, e.g. +org=(user), then that might not be in the best interest of user experience. Phil suggested that XDI should be considered an “assembly language of data”, and that usability should be a secondary concern. Jim disagreed and pointed out that at the moment there is a considerable effort of promoting XDI identifiers (cloud names) to a large audience.

Jim described a situation where two organizations +org1 and +org2 would each want to issue =user names within their context, and without using the cross-reference syntax. How can each organization make sure that the names satisfy the “global” semantics? Drummond explained that the XDI spec would not specify a mechanism for enforcing such semantics, and that the only thing that makes a name global is consensus within a community.

Joseph asked what was today’s equivalent of the old * local context symbol. Drummond explained that there is no more distinction between local context symbols (LCS) and global context symbols (GCS). Instead, identifiers are global by default, and the cross-reference syntax is used for local identifiers.

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]