Re: [xdi] Dictionary syntax proposal

From
Markus Sabadello <>
Date
2013-10-18T03:49:35+00:00
ID
CAJF45PS5hB=TCayv8=
Thread
Re: [xdi] Dictionary syntax proposal
I feel a little bit uncomfortable to have to use two contexts for a single definition, but I see no reason why it wouldn't work :)

FYI this is what the current mapping file of the XDI2 Facebook connector looks like:

(https://facebook.com/)+(+(user))+(<+(name)>)/$ref/+(<+name>)

(https://facebook.com/)+(+(user))+(<+(first_name)>)/$ref/+(+first)+(<+name>)

(https://facebook.com/)+(+(user))+(<+(middle_name)>)/$ref/+(+middle)+(<+name>)

(https://facebook.com/)+(+(user))+(<+(last_name)>)/$ref/+(+last)+(<+name>)

(https://facebook.com/)+(+(user))+(<+(gender)>)/$ref/+(<+gender>)

(https://facebook.com/)+(+(user))+(<+(locale)>)/$ref/+(<+locale>)

(https://facebook.com/)+(+(user))+(<+(email)>)/$ref/+(<+email>)

(https://facebook.com/)+(+(user))+(<+(website)>)/$ref/+(<+website>)

(https://facebook.com/)+(+(user))+(<+(birthday)>)/$ref/+(<+birthday>)

I'm guessing after the change it would look like this:

(https://facebook.com/)++(user)+<+(name)>/$ref/+<+name>

(https://facebook.com/)++(user)+<+(first_name)>/$ref/++first+<+name>

(https://facebook.com/)++(user)+<+(middle_name)>/$ref/++middle+<+name>

(https://facebook.com/)++(user)+<+(last_name)>/$ref/++last+<+name>

(https://facebook.com/)++(user)+<+(gender)>/$ref/+<+gender>

(https://facebook.com/)++(user)+<+(locale)>/$ref/+<+locale>

(https://facebook.com/)++(user)+<+(email)>/$ref/+<+email>

(https://facebook.com/)++(user)+<+(website)>/$ref/+<+website>

(https://facebook.com/)++(user)+<+(birthday)>/$ref/+<+birthday>

Markus

On Thu, Oct 17, 2013 at 12:38 AM, Drummond Reed <> wrote:

After a good XDI Core editing session with Joseph tonight, we made the executive decision to adopt the dictionary definition syntax proposal discussed briefly on the last few telecons—namely, to use + syntax instead of $( ) syntax. I have updated the Graph Model Structure wiki page accordingly:

   https://wiki.oasis-open.org/xdi/GraphModelStructure

For the record, the reasons are:

$( ) syntax was the only vestige of our former syntax that depended heavily on cross-references.

I$( ) syntax is also the only syntax that required a prefix before a bracketing symbol (which makes it particularly complicated); all of the new bracketing symbol syntaxes we adopted do not use a prefix context symbol.

+ syntax is much simpler and can accomplish everything that $( ) syntax could.

Leaving $( ) syntax undefined means it is available to define once we get to the XDI query language (for which I suspect it might be needed).

The rule with using + syntax for dictionary defintions is that the + symbol is BY ITSELF the dictionary definition context. Thus to define any entity or attribute, just put it in that context. Examples:

Entity singleton: +passport   Definition: ++passport

Attribute singleton:  <+tel>    Definition:  +<+tel>

XDI authorities can create their own personal, legal, or general dictionary namespaces spaces by prefixing their own XDI addresses with +. So, for example, if Neustar had its own definition of +<+tel>, the definition would be (using Neustar's cloud name):

           +@neustar+<+tel>

Then, once Neustar had defined this, I could use an instance of a Neustar telephone number like this:

            =drummond+@neustar<+tel>

Any thoughts before Joseph and I write this into XDI Core 1.0 WD01?

=Drummond