Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[higgins-dev] What is a relationship? (was whoami (was [IdAS] Context open/close semantics))

What is the semantic intent of the "relationship" construct between
IDigitalSubjects?  Is it:

1. Meant to convey some association to other distinct IDigitalSubjects?
 As in, Jim has a coworker relationship with Tom.
2. Meant to associate distinct personas of a single IDigitalSubject? 
As in, Tom has a "work" persona and a "home" persona.
3. Both?

I ask for this clarification for a follow to the ContextRef+CUID
discussion which is right in line with my e-mails about "Unique
Identfication of Amalgamated Digital Subjects".  I see this discussion
as just another case where we have to work out unique identification
issues.

Thanks,
Tom

>>> "Jim Sermersheim" <jimse@xxxxxxxxxx> 8/11/2006 6:15 PM >>>
>>> Greg Byrd <gbyrd@xxxxxxxx> 8/11/06 1:07 PM >>>
>
>Yes, I (mostly) agree.  (It's possible in some cases to detected this

>hijacking -- e.g., using the
>JAAS getSubject call -- but in general it's not possible.  So passing

>IContext instances around
>should be avoided.)
>
>I looked through the API to see if there were places where we return
an 
>IContext:
>
>IContextFactory.createContext -- of course
>IDigitalSubject.getContext -- this is supposed to "return the Context

>that contains this DigSub"
>
>Should this second one return:
>(a) the actual Context instance that created this DigitalSubject
object?
>(b) a new (unopened) Context instance?
>(c) a ContextRef?
Safest (and probably easiest to implement) would be a (c).  (a)
exposes
the security risk, and (b) causes IDigitalSubject to act a bit like a
context factory. I think (c) is manageable from a consumer's POV.

>We do have methods that return IDigitalSubjects, via 
>SubjectRelationships.  These DigitalSubjects
>may be from different contexts.  Should the relationship instead
return 
>a reference to a DigitalSubject,
>as in ContextRef+CUID?
I mentioned (or meant to mention) this once before as something that
seemed like it needed to change. IContext has relationships with other
IContexts via their contextRef (extends hasRelationships<URI>),
whereas
IDigitalSubject extends hasRelationships<IDigitalSubject>. I prefer
what
you said above (IDigitalSubject having relationships to
ContextRef+CUID
pairs).

>In other words, if I follow a relationship from a Subject in my
opened

>Context to a Subject that
>belongs to a different (unopened) Context, and then do getContext on 
>that Subject, what should I get?
Right, and do you even get the DS back? I mean, without an open
context, how is it obtained (using what identity for authN/authZ?)

>My opinion is that getSubject should return a ContextRef, 
 
Typo? Do you mean "getContext should return a ContextRef"?
 
>and that 
>SubjectRelationship should return
>Iterable<IDigitalSubjectRef>.
I still prefer the ContextRef+CUID pair.

Jim


Back to the top