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

 


Help: OASIS Mailing Lists Help | MarkMail Help

xri message

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


Subject: Re: [xdi] on global cross references and the link contract use case


At the risk of blowing up Drummond's brain even more :-) --- not to  
mention alluding to a discussion going on at both the XRI and the XDI  
lists, here's my response to the GCS, which continues on with Les'  
confusion :-) , and ends up in a counterproposal to expand the meaning  
of parentheses, away from cross-reference to syntactic encapsulation  
in general. It's in dot point, as always happens when I'm very confused.

I apologise for posting to both the XRI and XDI lists, but this does  
end up relating to both.

* I don't think the motivations are being explained well enough.  
(Sorry Drummond.) "XDI needs it" is not enough of a motivation without  
tangible illustration. And Les is by no means the last person who  
won't get it. I have a PhD in linguistics, and I'm having difficulty  
with it. I think the emails Drummond has been posting over the past  
few weeks need to be worked into a coherent account on the wiki,  
because the current GCS page isn't enough.

* Use-mention (brought up on the XDI list as an explanation of local  
vs. global scope) is a distraction: these are different contexts of  
use, not mentions. I end up appealing to the distinction in a  
different context below.

* It's hard to make sense of the distinction between global, relative,  
and local scope when the XRI 2.0 syntax doesn't mention relative scope  
(indeed, scope) at all. That too needs to be addressed.

* I don't find XRI terribly readable to begin with (even though my  
native language is now Perl), and I don't think the compactness of the  
compounded XRI is as compelling a motivation as others might. (That's  
why, in what I propose below, I put parens back in.)

* XDI requires GCS *only* inasmuch as there is a semantic difference  
between locally and globally scoped entities. The statement "It  
follows that any change to an XRI represents a change to the  
underlying XDI RDF statement" is false, if the change to the XRI is  
merely a matter of syntactic sugar, and semantically transparent  
(e.g., a bracket indicating syntax grouping, as opposed to cross- 
referencing). (Again, that's where I'm ultimately going with this.)

* Nika queried last month what the distinction might be between =nika 
+contact and =nika(+contact). Triggered by that, I'd like to propose a  
different take on parentheses --- that the cross-reference be about  
syntactic encapsulation, and is *agnostic* about context switching.

The thing in parens is treated as reference to an entity while not  
being internally parsed. If it's a URL, it's from an HTTP and not an  
XRI context; but the parens encapsulate it without parsing the URL. It  
follows that if the thing in parens is a URL, it is from a different  
XDI context then the current context: the current context is not URL.

But when Drummond suggests reificiation, as in

    =jbradley/+says/(=drummond/$is$a/=jbradley+friend)

the parens aren't being used to indicate that what's inside them is  
from a different context. The context of (=drummond/$is$a/=jbradley 
+friend) is not any different from the context of +stuff in

    =jbradley/+says/+stuff

If you put compound XRIs inside parens there, you're only doing so for  
syntactic encapsulation. If there's a difference between these two:

    =jbradley/+says/+stuff
    =jbradley/+says/(+stuff)

--- that the second "stuff" is in somehow a different context from the  
first, then we'd end up also having to distinguish between

    =jbradley/+says/(=drummond/$is$a/=jbradley+friend)
    =jbradley/+says/((=drummond/$is$a/=jbradley+friend))

And I don't see how that can work.

I would instead say that the thing inside of brackets MAY OR MAY NOT  
be in the same context as what precedes it, but XRI is agnostic to  
that. If you *really* want to say it's in a local rather than a global  
context, you should have put in the "*". The context of what is in the  
parens is indicated *only* by parsing the identifier it contains. If  
what is in the brackets is not an XRI, it is necessarily a different  
context; the http:// is what tells you that. But if what is in the  
brackets is an XRI, it may be the same context; and the brackets are  
only operating for syntactic encapsulation.

(And how do we know that what's in the bracket is an XRI and not a  
URL? With the syntax of XRI. And maybe a palatable version of xri://...)

So, by this:

=a*(http://example.com) : URL locally interpreted in context of =a
=a(http://example.com)  : URL globally interpreted in context of =a

=a*(=drummond/$is$a/=jbradley+friend) : reified compound XRI locally  
interpreted in context of =a
=a(=drummond/$is$a/=jbradley+friend)  : reified compound XRI globally  
interpreted in context of =a

=a*(+stuff) : simple XRI locally interpreted in context of =a
=a(+stuff)  : simple XRI globally interpreted in context of =a

What does this buy us?

* A *much* more readable delimiter for concatenation than the  
problematic alphabet soup of =a+stuff, which breaks by the time we get  
to @ , as other posters have pointed out --- and is not at all to be  
ignored. (Oh, and =les@microsoft.com is so utterly misleading it  
should be banned instantly: after all, it means "Microsoft as pertains  
to Les", and not "Les at Microsoft" --- or "Microsoft as Les construes  
it".)

* The elimination of an association of encapsulation and context- 
change that I think is untenable, especially when what the parens  
contain is not a simple XRI. After all, syntactic encapsulation is the  
main meaning of parens.

So I disagree with Drummond about the following:

(From earlier email)

> In short, XDI RDF statements are extremely precise. For example, +x  
> and (+x)
> are not the same XDI subject. The first is the absolute XDI subject  
> "+x" in
> the current XDI context, and the second is a cross-reference to that  
> XDI
> subject in a different XDI context (not the current XDI context).


I don't find "not the current XDI context" useful in semantics. If you  
know what the context is, you should be indicating it explicitly (e.g.  
by the http:// ). "(+x)" as this construes it, ignoring any parsing of  
the string "+x", is "Oh, I'm a different interpretation of +x, but I'm  
not telling you what". That's not the specificity you're ask for in  
XDI. And that's not what you're doing when the (+x) is a reification.


> Finally, the crux of the answer to “Why does a distinction need to  
> be able to be made between the two methods?” is that neither  
> provides the equivalent functionality of the other.
>
> In the first case, ordered sets cannot provide the same  
> functionality as cross-references because ordered sets do not allow  
> syntactic encapsulation of identifiers from other contexts. They do  
> not let a URI be used in the context of an XRI, for example, or  
> permit encapsulation of XDI RDF statements as shown above.

Agreed.


> In the second case, cross-references cannot provide the same  
> functionality as ordered sets because a cross-reference is  
> explicitly a reference to an identifier in _different_ context.  
> That’s what makes it a “cross-reference” – it references across two  
> contexts. For example, in the XRI...
>
>            @cordance*(mailto:drummond@example.com)
>
> …the cross-reference (mailto:drummond@example.com) is a reference to  
> a URI rooted in the mailto: context.
>
> However in an ordered set, you are not referencing across contexts.  
> The context is the ordered set itself. For example, in $sig$d, the  
> context for $d is $sig. That’s what makes it an ordered set.

My response to that is: a bracket can indicate encapsulation without  
necessarily being a cross-reference to a different context. It allows  
cross-reference, and is the only mechanism whereby cross-reference is  
possible. But I'm not convinced it requires cross-reference, or that  
=a*(=drummond/$is$a/=jbradley+friend) *is* a cross-reference. It's a  
"thunk": a mention of the identifier rather than a use (aha!)

This broadens the semantics of the parens somewhat, but does not break  
backward compatibility: all those XRI 2.0 cross-references remain  
valid. It allows global cross-reference, but with enough syntactic  
sugar to retain readability. And it eliminates a distinction between  
=a(+x) and =a+x that I'd find very hard to justify.

To deal with the other goals of the GCS proposal:

#1: Literal Expression of RDF Statements in XDI. An XRI RDF under this  
proposal would require XRIs go into parens to be embedded into  
compound XRIs. That's a change to the XRI, but not a change to the  
underlying XRI RDF statement, since the bracket is merely indicating  
syntactic scope --- the XRI does not change referentiality, since the  
parens are not intrinsically crossreferences:

(=drummond)/($is)/(=drummond.reed)
((=drummond)/($is)/(=drummond.reed))/($is)/(+verifiable)
(=drummond)/(+owns)/(http://equalsdrummond.net)
In fact (to renege on my proposal), since XRI paths are a special  
case, I have no real problem with the parens being optional within an  
XRI path segment: the parens are just delimiters now --- and so are  
the slashes:
=drummond/$is/=drummond.reed
(=drummond/$is/=drummond.reed)/$is/+verifiable
=drummond/+owns/(http://equalsdrummond.net)
That last bracket's still required because what's inside the brackets  
does not follow XRI syntax --- it uses slashes differently, for one;  
and so is being syntactically encapsulated.
#2: XRI Composition: The discussion contrasts between only local and  
global interpretation of components of compound XRIs. The distinction  
between relative and global scope, whatever it may be, is not  
exploited. My proposal does away with it; I'll need to see what that  
distinction is, if my proposal is wrong here.

#3: Consistency with the XRI-as-Relative-URI Proposal

See my reneging on #1: I'll admit optionally dropping the parens  
within slashes, but *only* because both the parens and the slashes are  
delimiters. Without slashes, the parens should stay.

#4: Human-Readability and Comprehension

I truly believe @example+international+employment$contract$sig$d is  
less readable than @example(+international)(+employment)($contract) 
($sig)($d) . I also think Nika's reported =nika(+contact) is happening  
because I'm not the only person to think so.


--
Life                Dr Nick Nicholas;  Link Affiliates, Melbourne
Is a knife                                         skype:opoudjis
Whose wife          opoudjis@optushome.com.au
Is a scythe                               http://www.opoudjis.net
--- Zoe Velonis, Aged 14 1/2.






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