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] Two terminology questions: "global" and "root"

On Wed, Nov 27, 2013 at 4:46 PM, Joseph Boyle <planetwork@josephboyle.net> wrote:
I’ve always understood the first address segment (say, =drummond) as stating the owner of a subgraph or local graph corresponding to a user account in other operating systems or database systems. Until recently I hadn’t noticed explicit statement that initial address =drummond meant that Drummond is the authority asserting the statement. Although naturally stuff in Drummond’s account will often or usually include statements that Drummond believes are true, I don’t see them as automatically equivalent, and the latter raises questions for me.

Is stuff under the =drummond subgraph automatically stuff that Drummond asserts?

It’s data that Drummond and his personal cloud agent are using, but it may include statements that are asserted by someone else that Drummond just knows about but does not necessarily assert himself,

Those statements would go under the authority of whomever is asserting them.
or statements that are inherently known to be true and not asserted by anyone in particular.

I don't know of such an animal in XDI, i.e., all XDI statements have be asserted by some XDI authority, with the only exception being attributes of an XDI graph itself, in which case the XDI endpoint for that graph is the "authority'.
How would each of these be symbolized? Do we even want a default assumption that a =drummond…. address implies Drummond is asserting the statement containing the address?

Yes, we do. Any other statement about =drummond should be under the authority making that statement about =drummond.
And since a statement has subject, object, and predicate, is it only the subject address that carries this assumption, or also object, or all of them?

Only the subject.

Couldn’t the provenance or authority asserting a statement also be represented by a separate property?

In theory, yes, but that would be dramatically more complex than a simple chain of authority determined by context.
How frequent will conflicting cases be?

Nobody knows yet, but by following authority-relative design, conflicts should be little or none. In fact they should represent only two cases:
  1. Out-of-sync graphs.
  2. Fraud.
Both should be easy to confirm.
Conflicts should only happen in cases of conflicting statements.


For data, I’d assume the default is non-conflicting - if we merge contact databases each with a contact for Drummond, the resulting contact normally has all the phone numbers and emails of both contacts that were merged.


We have a great deal about link contracts specifying when someone can access data - can link contracts or their subcomponents also control, or state, who is asserting or vouching for a statement? It seems to me they would naturally be related.

Link contracts do not need to do that—it is already built into XDI syntax. Every single statement inherently reflects the authority for that statement.


I think “global” or “universal” are clearest, if we want to say something is true everywhere or exists everywhere. 

Agreed. I much prefer "global" over "universal".

On global vs. local addresses, it seems clear to me we need both, and need to distinguish them.

I'm not sure I see the use case for "local" addresses in XDI. If it's "local", that means it's somewhere inside a subgraph. But to the extent that we need them, I'd advocate using the same relative address syntax as hierarchical URIs, i.e., putting . (dot) or .. (dot dot) in front of the address.
In Unix, global addresses start with the path separator /, while relative addresses start with an identifier. In XDI, the context symbol characters carry more information than simply separating identifiers in successive segments, which makes it difficult for an address to start with no path separator at all. Could we designate using the empty dollar word as first segment to indicate a global address? I.e., simply precede the address with $, which would be followed by the context symbol of the following identifier.

I think it's cleaner to just keep a global address as starting with an XDI context symbol.

The word “root” itself strongly connotes a single global root in Unix-style terminology which is universal in operating systems everyone uses. Something owned by a user is called other names like home directory or folder, or user account, never root as far as I remember. Using “root” to refer to a “local root” will be confusing not intuitive. We should find names other than “root” for everything but the global root.

That's the thing about heterarchy - no one is used to thinking that way. That's why we have the terms "peer root" and "inner root"—to suggest that in heterarchy, there are indeed multiple roots. I too would like to find another term, which is why I suggested "start", but I found myself going back to "root" pretty quickly.

“Inner root” is perhaps the single most difficult term in XDI in my opinion.

I agree with you. But it's also one of the most important. And so far no one has come up with a better name for it.
Although I’m not sure completely understand inner roots yet, when trying to describe them by analogy with other systems, words like “context” or “scope” come up; perhaps we can use a name with these suggestive words? The current use of “context” in XDI, on the other hand, is diluted by the fact that practically every node is a context node, so that “context” is no longer specific, but simply means “node” or “subtree” in generally used graph terminology. I would vote for restricting the word “context” to refer to something more specific, perhaps an inner root.

I understand, but so far "context" has worked well for encompassing all types of context, and we need a word for that class of node—so much so that "context" is probably the most deeply embedded term in XDI terminology. So unless you have a better word for that concept, I'd prefer to stick with "context" at that level.

On Nov 27, 2013, at 3:08 PM, Drummond Reed <drummond.reed@xdi.org> wrote:

On Wed, Nov 27, 2013 at 2:26 PM, Markus Sabadello <markus.sabadello@xdi.org> wrote:
Right now I still like "local root" better than "outer root" or "global root", but in case I get more comfortable with your views about all roots being shared, then I think I will also like "global root" more :)

That really does go to the essence of the whole graph merge issue: are all top-level XDI graph roots local or global? Here's the way I analyze it:

If all top-level XDI graph roots are local, then it means that all XDI statements in those graphs are relative to that particular graph. That means the truth of a statement must always be evaluated relative to the graph in which it appears.

If all top-level XDI graph roots are global, then it means that all XDI statements in those graphs are not graph-relative. They apply globally, i.e., the truth of a statement is not relative to or dependent on the graph in which it appears. Anyone can assert anything about anyone, but they must make that statement under their own authority, and if that statement is shared with another target XDI graph, the statement should be identical in that target graph, so the same statement is relative to the same authority in all XDI graphs.

And if there is ever a question about the fidelity of an XDI statement, i.e., is it an exact copy of the authoritative statement in the authoritative XDI graph, the process for verifying its fidelity is always the same: resolve the authority to the authoritative graph, and verify the original statement there. If there is a conflict, the non-authoritative copy of the statement is in error and should be corrected.

The reason I'm so passionate about the latter is that it is the only way I believe XDI semantics can be interoperable across all XDI graphs. Without fidelity of XDI statements across graphs, we won't have semantic interoperability.

And that is the reason that I now favor adopting the term "global", because it suggests that the top-level root of all XDI graphs is shared among all peer graphs. The only other option I see is "common root" or "shared root".



On Wed, Nov 27, 2013 at 4:35 PM, Drummond Reed <drummond.reed@xdi.org> wrote:
On Tue, Nov 26, 2013 at 8:06 AM, Joseph Boyle <planetwork@josephboyle.net> wrote:
“Global” would be clear than “outer”.

In reference to Joseph's suggestion above, we adopted the term "outer graph" for these reasons:
  1. It fit naturally along with "inner graph", a term which we have used from the start.
  2. The term "local" seemed to miss the idea that the outer root is shared by all XDI graphs.
  3. We were wary of using the concept of "global" since it suggests a global root.
  4. We haven't come up with anything better. 
However what I have found in practice is that the term "outer graph" is just not intuitive the way "inner graph' is. So I agree we need a better term.

Secondly, I agree with Joseph that the term that always naturally comes to mind is "global graph" since it communicates that all XDI graph instances are part of a logical global graph.

My only reticence around "global" is #3 above—that it suggests a global root. Which brings me to question #2:

In my discussions on the list and with Markus about the graph merge issue, I have suggested that we should avoid the term "root" because it suggests that XDI architecture is hierarchical in the same way as conventional directory architecture.

However Markus pointed out that since XDI contexts are indeed hierarchical, the term "root" does make sense from that perspective. And in practice is the term that naturally comes to mind.

So here is the suggestion I want to float for feedback from all TC members:
  1. Switch from using "outer graph" to "global graph".
  2. Use the term "root" or "root node" when talking about the starting node of a global, peer, or inner graph, but emphasize the fundamental heterarchical structure of the XDI graph model, i.e., that all XDI peer graphs are peers within the XDI global graph, and every peer graph shares the same global root  node as every other peer graph.
(Note that inner graphs are different from peer graphs in one crucial way: even though an inner graph root restarts XDI addressing just like a global root or peer root, the nodes in the inner graph cannot be addressed outside of the context of the containing XDI graph. So the inner graph is "dependent" on the containing XDI graph.)

Please post your thoughts as to whether you agree or disagree with these terminology suggestions.


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