One of my friends asked me some questions the other day about my
constant focus on identity within the context of community. As
usual I was being asked about the “real” application of this notion …
not just the “philosophical” perspective. Well … I’m always
thinking the “real” application … I just don’t seem to express it
well.
I started to think about how – from my perspective – this notion would
be implemented in code, or within an identity store. All of this
relates back to my work on digitalMe while at Novell … and a group of
us were working towards this back then. As I thought more about
some of my recent comments, I realized that one of the “real world”
aspects was what I’ll now call “Identity Tuples”.
What exactly is an Identity Tuple? First, lets look at what most people use as examples of identity … simple name/value pairs.
- age = 32
- shoe_size = 12
- job_title = CTO
There are a number of critical issues with this perspective, and to me it is the gross assumptions when we view this that make it nearly useless. Let’s first look at “age = 32” … uh, well 32 WHAT? Oh of course most people will call me silly and state “32 years of course!” But that is an assumption. And even if we do say that “age = 32 years” then we still have to reference what a year is, or also identify the context that the measurement “year” exists within. A “year” is what, exactly? 365 days? Nope … it’s actually 365.242 days. Who says so? NIST! Ok … and the second flaw in this perspective? WHEN was this true? Well, it would be at some epoch in time … or between some range of dates. Lastly, who is the community or authority that states this as fact? When we state that “age = 32” it is a very incomplete statement. This is where an identity tuple can come into play … instead of storing “age = 32”, we would actually store:
- Attribute: “age = 32” :: NIST
- Epoch: @ 2006-10-05 09:50:34 :: NIST
- Context/Community: http://www.utah.gov/, http://www.state.pa.us/ :: ICANN
It is how Identity “attributes” can be stored and represented. What this provides is support for the fact that identity evolves with time! I understand that most often people are asking about my identity right now, but there is considerable identity information that relates to the past, or trends in your identity. Credit History is a classic example of this. Likewise, if you have children you would know about the “growth charts” that compare your child to the averages of other children.
The other core value of Identity Tuples is that the context, or community, where this attribute is distinguished is referenced with the identity information. To me, this is critical to be able to properly assess the identity information and determine its value to me. It’s not enough to say that I am {x} years old … in the case of liquor laws, we want that information from a credible source. We have to identify the community which will support my claims.
Now some people reading this will notice there are some subtle flaws in this example … it’s a rough example. But it is an attempt to describe some of what I see lacking in existing solutions … and what a real solution will one day have to have to be more effective.