Although I'm not yet finished (must catch a plane shortly), this weekend I have been updating the XDI Graph Patterns document to reflect our revised syntax. One thing that quickly became apparent to me is why did still want to support "conventional federated identifier delegation", i.e., the ability to *names to represent delegated identifiers ("community names"). This was the very first pattern in the XDI Graph Patterns doc.
I had been bothered by the *name delegation problem ever since Markus and Les had brought it up two weeks ago. Revisiting it with fresh eyes after two weeks of not thinking about syntax, the answer suddenly seemed pretty obvious.
What we want is for *names to follow the same pattern as =names and @names, i.e., for *name singletons to serve as $refs to [class]!instance pairs. That way you can validly have a *name anyplace in an XDI address, including the root, just like you can have an =name or @name at any place in the tree.
All it required was to change the definition of * from just representing an instance as a member of a class to representing an
instance as a singleton.
This actually works very nicely because now # and ! represent instances as either ORDERED or UNORDERED members of a class, and * represents an instance as a SINGLETON.
This worked so cleanly that I made the change on both:
See below for how this works in the revised XDI Graph Patterns example of XDI references.
=Drummond