Skip to main content
Jump to: navigation, search

Dereferencing Complex Values Backlog

Revision as of 14:50, 13 March 2008 by (Talk | contribs) (+comments from Drummond)


This page describes a proposed change to the IdAP API and the IContext SPI. This page was created to support a discussion.


  • We change the IdAS API and the IContext SPI to return IEntity implementations
  • In other words, eliminate IComplexValue and replace it with IEntity


   IComplexAttrValue IAttribute.addComplexValue(URI dataType)
   IEntity IAttribute.addComplexValue(IEntity)
 or maybe:
   IEntity IAttribute.addEntityValue(IEntity)
 IComplexAttrValue <-- goes away



  • Would all of these 'complex attr values represented as IEntitys' have identifiers?
    • It seems like a good thing for cases where you want to share one across different identities. For example, my wife and I have the same postal address so it'd be nice to share the same complex attr val for that.
      • Hmm, people might see the utility in that and want something similar for simple attributes as well
  • I hate to admit it, but if we make attributes act just like entities, it makes a good case for calling things something more generic like Node or Element.


  • I agree. For example, in XDI, the value of an attribute can be a literal, a reference to another Entity, or a reference to the value of another Attribute (of that Entity or a different Entity). It seems IdAS should have the same options.
  • However, doesn't an Attribute whose value references another Entity become a Relation?
  • Lastly, RE Jim's terminology point, I agree this capability emphasizes using the most general term for nodes in the graph. That's why I favored the term Node. Interestingly, given that we already use Attribute, for the first time I could make sense of using Element. (I have always feared confusion with XML, but if we ended out using both Element and Attribute, at least we'd have a parallel universe.)

See Also

Back to the top