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] SECOND STRAWMAN from Drummond and Markus - please vote ASAP


I hope we don't get too dizzy from switching back and forth between so many options all the time. :) But it's always worth exploring all the possibilities.

I have to say I had a similar feeling during the last week or so. That the model we worked out around classes, singletons, instances, attributes, etc. has become extremely clean, but at the expense of readability, given the large amount of symbols we invented.

Maybe the fact that we have been having troubles agreeing on the ordering of symbols was simply a sign that we should not have multiple symbols together.

My key insight when reading Joseph's analysis was that the context symbols = @ $ + ! * are fundamentally part of the arc and should not be separated from the actual identifier. In this respect I now feel that me favoring something like +|&email wasn't quite right. I liked Joseph's version of +email&^, but I do think [<+email>] is the best we have come up with so far, from a visual standpoint.

So to me this approach Drummond just posted combines the best of both worlds - the good graph model we worked out, and a syntax based on earlier ideas using the [ ] and < > brackets.

Markus

On Mon, Apr 15, 2013 at 8:52 PM, Drummond Reed <drummond@connect.me> wrote:
Ladies and gentlemen:

In keeping with the goal of putting a syntax stake in the ground before sundown today, Markus and I have processed feedback on the previous strawman, including Joseph's analysis, and as a result have a new strawman to propose.

It has been posted to https://wiki.oasis-open.org/xdi/XdiSyntaxExamples and is also copied below.

Once again, please respond ASAP with one of two replies:
  1. Yes, I like it.
  2. No, here's what I'd like to change.
=Drummond 


New Proposed Strawman to Test for Consensus

Rationale

  1. Multiple symbol characters may be easy for machines but is hard for humans to parse no matter what we do. So this proposal follows a new rule: context symbols are never used in pairs. The solution is to reintroduce brackets, but used slightly differently than before.

  2. The use of brackets is also consistent with Joseph's analysis.

  3. Per earlier proposals, angle brackets < > that wrap the context identifier are used to indicate attributes.

  4. Square brackets [ ] that wrap the context identifier are used to indicate singletons.

  5. If a node is both an attribute and a singleton, the square brackets wrap the angle brackets, e.g., [< >].

  6. Since symbols never appear more than once, the question of symbol ordering goes away.
  7. Definitions use the $ metaclass and a cross-reference to the term being defined (or the authority for the definition). This is consistent both with the role of $ as the reserved symbol for metaclass and the use of cross-references to reuse identifiers in a different context -- in this case the dictionary context. It also is consistent with the rule that all context symbols never appear in pairs.

Example

=markus[<+email>]/$ref/
   =markus<+email>!:uuid:9ce739f0-7665-11e2-bcfd-0800200c0002
=markus+home[<email>]/$ref/
   =markus<+email>!:uuid:f81d4fae-7dec-11d0-a765-00a0c91e0001
=markus+work[<+email>]/$ref/
   =markus<+email>!:uuid:9ce739f0-7665-11e2-bcfd-0800200c0002
=markus<+email>!:uuid:f81d4fae-7dec-11d0-a765-00a0c91e0001:/:/
   "ms@example.com"
=markus<+email>!:uuid:9ce739f0-7665-11e2-bcfd-0800200c0002:/:/
   "markus@example.net"
=markus<+email>!:uuid:9ce739f0-7665-11e2-bcfd-0800200c0002$[<$t>]:/:/
   "2013-04-11T10:11:12Z"
=markus+address!:uuid:3a96e460-7be9-11e2-b92a-0800200c0003<+street>#1:/:/
   "123 Main St"
=markus+address!:uuid:3a96e460-7be9-11e2-b92a-0800200c0003<+street>#2:/:/
   "Apt 23"
=markus+address!:uuid:3a96e460-7be9-11e2-b92a-0800200c0003[<+city>]:/:/
   "Vienna"
=markus+address!:uuid:3a96e460-7be9-11e2-b92a-0800200c0003[<+country>]:/:/
   "Austria"
=markus+address!:uuid:3a96e460-7be9-11e2-b92a-0800200c0003$[<$t>]:/:/
   "2013-04-11T10:11:12Z"
$(<+email>)/$is+/
   $string
$(+address)$(+street)[<$label>]:/:/
   "Street"
$(@example)$(<+email>)<$xbnf>#1:/:/
   "1*DIGIT '@example.com'"







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