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: Multiplicity proposal revised - current priority for this week's telecon


XDI TC Members,

I'm back from vacation, and although before I left I posted a revision to the Multiplicity proposal based on Bill's suggestion, I forgot to send an message about the revised proposal to the list before I left.

I posted an explanation of the rationale for the revised Multiplicity proposal on the Discussion page at:

   https://wiki.oasis-open.org/xdi/XdiMultiplicity/Discussion

For ease of access, I am also pasting in the explanation below (but please respond on the wiki page).

Since this is a critical component of XDI dictionary work that is currently underway, please do review this and post any comments this week -- I'd like to reach a decision point on this proposal on this coming Friday's call.

Best,

=Drummond  

********* TEXT ADDED TO https://wiki.oasis-open.org/xdi/XdiMultiplicity/Discussion TO EXPLAIN THE REVISED PROPOSAL ********

The proposal has been updated with two key changes:

  1. The syntactic distinction between entity collections and attribute collections has been eliminated - now multiplicity syntax includes collections, entity singletons, and attribute singletons.
  2. To make entity singletons consistent with attribute singletons (which start with $! ), the $( prefix previously assigned to entity collections is now assigned to entity singletons.

The result is a significant reduction in the complexity of multiplicity syntax, because instead of 4 multiplicity cases requiring 3 special syntaxes, we have reduced it to 3 multiplicity cases requiring only 2 special syntaxes. Those two are now BOTH singletons, so now both of them use $ prefixes -- $! for attribute singletons and $( for entity singletons.

This brings the current proposal much closer to what BillBarnhill was suggesting:

  1. Any set with open (zero or more) multiplicity in XDI is just represented as the +word or $word representing that set type.
  2. Any member of a set with open multiplicity is expressed as $ instance following that +word or $word, e.g., +tel$!3 for an attribute or +passport$(!3) for an entity.

While it was very tempting to treat singletons as special members of collections that would be identified by the subsegment identifier $! (for an attribute singleton) and $() (for an entity singleton) respectively, there were several major drawbacks to this approach:

  1. Every singleton would still require a collection, which would mean an extra node in the graph each time you had only a singleton.
  2. The question of whether the singleton was a member of the collection would be very confusing.

Therefore the conclusion was to keep the two multiplicity options - singletons and collections - conceptually and syntactically distinct. Collections are the default and require no special syntax. Only singletons require special syntax. Advantages to this include:

  1. Every literal node in the graph can be identified by looking only at the XDI subject. Any XDI subject whose last subsegment ends in $! MUST be a literal context node, i.e., have zero or one literal node.

  2. Any collection can be queried for its multiplicity, i.e., number of set members, without confusion over whether the collection might be a singleton.


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