As I get down into the details of editing XDI Core Working Draft 01, the time has come to propose some long-discussed updates to our XDI graph notation.
I have been noodling on this ever since our syntax simplification work last spring. At first I was trying to come up with new shapes for all the different node types (root, entity singleton, entity collection, entity member, attribute singleton, attribute collection, attribute member, value). It was always too complex.
Then I hit on the idea of keeping the symbols to a very small set, and using a single character inside the symbol to indicate the multiplicity. That seemed to work much better, and to quickly teach the concept of multiplicity without a lot of explanation.
In terms of the symbols, it seemed obvious to keep using the open circle for root nodes and the closed circle for entities. Due to our choice of syntax, it also seemed intuitive to use the closed diamond for attribute nodes and the open diamond for value nodes -- essentially the mirror of root/entity nodes.
After playing with it, I also realized that because we now have value nodes, explicitly showing another shape for a literal node seems redundant and overly complex. Much simpler to just show the literal arc going to the value itself (since now there is ALWAYS a value if there is a literal arc, even if the value is null).
The result is below -- both a summary of the graph notation and a simple example graph.
Please do post your comments/suggestions.