[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [xdi] A new observation about $ref/$rep behavior
In working on the XDI2 Facebook connector, I came across some interesting behavior of $ref/$rep equivalence links.
Warning, this is a pretty advanced application of the equivalence links concept and probably not so easy to read.
Let's say my "e-mail address in my Facebook account" is expressed as follows:
(https://facebook.com/)[!]!588183713+(user)<+(email)>&/&/"markus.sabadello@gmail.com"
Note that 588183713 is my Facebook user ID.
Now I want my Facebook data to be accessible to XDI clients that only know my Cloud Number, but not my Facebook user ID.
Let's say my Cloud Number is [=]!1111. So I create the following $ref link:
(https://facebook.com/)[=]!1111/$ref/(https://facebook.com/)[!]!588183713
Thanks to this new $ref link, my "e-mail address in my Facebook account" can now be accessed via either one of the following XDI addresses:
(https://facebook.com/)[!]!588183713+(user)<+(email)>
(https://facebook.com/)[=]!1111+(user)<+(email)>
Now I want to go one step further and create a $ref link from my "primary e-mail address" to my "e-mail address in my Facebook account":
[=]!1111<+email>/$ref/(https://facebook.com/)[=]!1111+(user)<+(email)>
So I end up with the following graph:
(https://facebook.com/)[!]!588183713+(user)<+(email)>&/&/"markus.sabadello@gmail.com"
(https://facebook.com/)[=]!1111/$ref/(https://facebook.com/)[!]!588183713
[=]!1111<+email>/$ref/(https://facebook.com/)[=]!1111+(user)<+(email)>
Looks nice, but it is actually invalid, since the context node (https://facebook.com/)[=]!1111 now contains both a $ref relation and a sub-context.
Instead, it would have to be this:
(https://facebook.com/)[!]!588183713+(user)<+(email)>&/&/"markus.sabadello@gmail.com"
(https://facebook.com/)[=]!1111/$ref/(https://facebook.com/)[!]!588183713
[=]!1111<+email>/$ref/(https://facebook.com/)[!]!588183713+(user)<+(email)>
The primary goal of this whole exercise has thus been achieved, which is to make my "e-mail address in my Facebook account" accessible via the following XDI address:
[=]!1111<+email>
However, the weakness is that the $ref that links my Cloud Number to my Facebook user ID is not being used. So if for some reason my Facebook user ID changed, I would have to update potentially a large number $ref links all over the place, rather than having a single $ref link that controls the "Cloud Number to Facebook user ID" mapping.
Not a big problem for now, but a bit unsatisfying.
Markus
P.S. I remember we said that my Facebook user ID should be represented as [=]!588183713 instead of [!]!588183713, but this doesn't change anything about the above observation.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]