anyone has a comprehensive set of testdata for "People" to correspond with
the datamodel discussed in this thread?
just checking..
On Wed, Apr 16, 2008 at 6:24 PM, John Panzer <[EMAIL PROTECTED]> wrote:
>
>
> On Wed, Apr 16, 2008 at 6:08 PM, Vasu Nori <[EMAIL PROTECTED]> wrote:
>
> > On Wed, Apr 16, 2008 at 5:51 PM, John Panzer <[EMAIL PROTECTED]> wrote:
> >
> > > Looks good, some comments below:
> > > (Also, + spec list as this is really overlapping with the spec)
> > >
> > > On Wed, Apr 16, 2008 at 2:05 PM, Vasu Nori <[EMAIL PROTECTED]> wrote:
> > >
> > > > Let me summarize People Restful API and the IMPLIED data model
> > behind
> > > > it.
> > > >
> > > > API calls
> > > >
> > > > - /people/{uid}/all - Collection of all Public profiles for all
> > users
> > > > connected with uid {uid}
> > > >
> > >
> > > I'm not sure what Public profile means here -- specifically, I think
> > it's
> > > possible for a social network to implement an interface where the
> > records
> > > here are private to the user, or created by the user to describe
> > people he
> > > knows. They could also be direct representations of a public or
> > > semi-private profile of the target user of course, but I don't think
> > > OpenSocial requires this semantic (right?)
> > >
> > >
> > I made up the word "public".
> > my most fundamental assumption is: A user has a set of attributes to
> > decribe
> > himself/herself. In this set,
> > some attributes are set to be public
> > and some are set to be completely private ("visible" ONLY to self)
> > and some are set to be "visible" only to certain designated groups.
> > does this make sense?
> >
> > if so, the above URL meaning is what I thought was said in the thread
> > earlier by others.
> >
> > I am looking to validate my understanding really.
>
>
> Ah, okay. But I think this would interact with the access control of the
> requestor. There's of course a requester (which may be anonymous) in the
> picture here. Requestor might be different from both {uid} and {pid}.
>
>
> >
> >
> > >
> > > >
> > > > - /people/{uid}/friends -- Collection of all Public
> > profiles
> > > > for all users connected with user {uid} and group = "friends"
> > > > - /people/{uid}/{groupid} -- Collection of all people
> > connected
> > > > to user {uid} in group {groupid}
> > > > - /people/{uid}/@all/{pid} -- Public profile, returning ALL
> > > > attributes of the user {pid} which are visible to ANY of the
> > groups of
> > > > user
> > > > {uid}
> > > >
> > >
> > > Not quite sure what the above means (the "visible to ANY..." part)
> > >
> > "visible" = the attributes that are returnable in this/a query.
> > maybe bad word..
> >
> > >
> > >
> > >
> > > >
> > > > - /people/{uid}/@self -- Return the COMPLETE Profile
> > for
> > > > user {uid}
> > > > - /groups/{uid}/@self - Return ALL groups for user {uid}
> > > >
> > > >
> > > > Data Model (in the following, Level N+1 is inside Level N object)
> > > >
> > > > - *Level_1 * Person Object
> > > > - *Level_2 * uid String type
> > > > - *Level_2 * set of all groups for this user
> > > > - *Level_3 *groupid (Reserved words: family, friends)
> > > > - *Level_3 * for each group, contacts
> > > > - *Level_4 * set of all contacts of in this group
> > > > (set of Person objects identified by their uid)
> > > >
> > >
> > > Do we want to make each pid also be required to be a uid? This
> > implies
> > > that pids cannot be relative in any implementation. (If this is just
> > > talking about the Shindig implementation then ignore this.)
> > >
> >
> > again my assumption is that each "contact" is also a "Person" in the
> > system
> > - the SAME "Person" object defined at Level_1.
> >
> > >
> > >
> > > >
> > > >
> > > > - *Level_2 * User profile attributes
> > > >
> > > > - *Level_3 * for each attribute, flag = public/private
> > > > - *Level_3 * for each attribute, indicate which of the
> > > > user's groups can view this attribute
> > > > - *Level_4 *set of groups this attribute belongs to
> > > >
> > > > what do you say?
> > > >
> > > > On Wed, Apr 16, 2008 at 12:07 PM, John Panzer <[EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > > > On Tue, Apr 15, 2008 at 4:43 PM, Robert Evans <[EMAIL PROTECTED]
> > >
> > > > wrote:
> > > > >
> > > > > > I am trying to think of the URIs as mapping to resources on the
> > web,
> > > > and
> > > > > > trying to read it out loud. Consequently, please see the reading
> > of
> > > > URIs
> > > > > > and
> > > > > > some questions/suggestions interspersed below.
> > > > > >
> > > > > > Thanks,
> > > > > > Bob
> > > > > >
> > > > > > On Mon, Apr 14, 2008 at 10:02 PM, David Primmer <
> > > > [EMAIL PROTECTED]
> > > > > >
> > > > > > wrote:
> > > > > >
> > > > > > > We're struggling with these implementation details right now.
> > I'd
> > > > love
> > > > > > > to see what others have decided on.
> > > > > > >
> > > > > > > quick summary of the proposed url system (just for the people
> > api)
> > > > > > >
> > > > > > > /people/{uid}/all -- Collection of all people
> > connected
> > > > to
> > > > > > user
> > > > > > > {uid}
> > > > > >
> > > > > >
> > > > > > Sounds like: "Get people for user, {uid}; all of them."
> > > > >
> > > > >
> > > > > Yes (of course, it really just names the group of all people
> > connected
> > > > to
> > > > > user {uid}, you can do GET/PUT/POST/DELETE on this collection
> > > > depending on
> > > > > what you want to do).
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > /people/{uid}/friends -- Collection of all friends of
> > user
> > > > > {uid};
> > > > > > > subset of all
> > > > > >
> > > > > >
> > > > > > Sounds like: "Get people for user, {uid}; only those who are
> > > > friends."
> > > > >
> > > > >
> > > > > Yep.
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > /people/{uid}/{groupid} -- Collection of all people
> > connected
> > > > to
> > > > > > user
> > > > > > > {uid} in group {groupid}
> > > > > >
> > > > > >
> > > > > > Sounds like: "Get people for user, {uid}; who are also in
> > group_id."
> > > > > >
> > > > > > That one is confusing. Won't this be the same as all people in
> > > > {group
> > > > > id}?
> > > > > > I
> > > > > > have only a vague concept of "group" here, so please correct
> > that
> > > > for
> > > > > me.
> > > > >
> > > > >
> > > > > The concept here is that groups are user-relative too (see below
> > for
> > > > > groups
> > > > > discussion). My group "family" is much different from your group
> > > > > "family".
> > > > > friends is really exactly this type of group.
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > /people/{uid}/all/{pid} -- Individual person record.
> > > > > >
> > > > > >
> > > > > > Sounds like: "Get people for user, {uid}; All of them. Only with
> > > > person
> > > > > > id,
> > > > > > {pid}."
> > > > > >
> > > > > > Why not drop the 'all'? /people/{uid}/{pid}
> > > > >
> > > > >
> > > > > I only put the "all" in there to make the URLs less confusing --
> > > > anything
> > > > > at
> > > > > level 3 is always a person-id, anything at level 2 is always a
> > group
> > > > id.
> > > > > Conceptually you're saying "give me the person record as accessed
> > > > through
> > > > > group 'X'". Today people records are the same no matter what
> > group
> > > > you're
> > > > > in, but I could imagine wanting to change this (e.g., having a
> > > > > date-added-to-group field) which might vary depending on the
> > context.
> > > > >
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > Then it could sound like, "Get people for user, {uid}; with
> > person
> > > > id,
> > > > > > {pid}."
> > > > > > Sounds like: "Get people for user, {uid}, with person id {pid}."
> > > > > >
> > > > > >
> > > > > > > /people/{uid}/sel -- Self Profile record for user
> > {uid}
> > > > > >
> > > > > >
> > > > > > Sounds like, "Get people for user, {uid}; sel."
> > > > > >
> > > > > > Why not drop the 'sel' here, and /people/{uid}/ just refers to
> > that
> > > > user
> > > > > > resource specified by {uid}.
> > > > >
> > > > >
> > > > > We could probably drop @self (we added @ signs to make meta-names
> > not
> > > > > conflict with regular names). Thoughts?
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > /groups/{uid}/self -- Collection of groups owned by
> > the
> > > > > > > user, which always contains 'all' and 'friends' and may
> > contain
> > > > more.
> > > > > > > (Details TBD)
> > > > > > >
> > > > > > >
> > > > > > Sounds like: "Get groups for user, {uid}; self."
> > > > > > Perhaps, predicated on the group definition, it could just be
> > > > > > /groups/{uid}
> > > > > > which gets all groups that user, {uid} belongs (owns?) to.
> > > > >
> > > > >
> > > > > The intended semantics are groups the user owns. If we drop @self
> > > > then it
> > > > > would just be /groups/{uid}
> > > > >
> > > > >
> > > > > >
> > > > > >
> > > > > > What is group ownership? Is the group any subset of people that
> > a
> > > > user
> > > > > > knows?
> > > > > >
> > > > >
> > > > > A user can in principle set up any number of groups to classify
> > the
> > > > people
> > > > > they know. They get one special group by default, "friends". Not
> > > > > everybody
> > > > > they know is necessarily a friend.
> > > > >
> > > > > This is different from groups-you-belong-to in principle, in that
> > you
> > > > can
> > > > > set up a group and stuff me in it without me being aware of it or
> > > > caring.
> > > > > (Again, "friends" is special and has additional semantics -- it's
> > > > double
> > > > > opt
> > > > > in. Other groups may have special semantics too, but the API
> > doesn't
> > > > > specify those semantics.)
> > > > >
> > > >
> > >
> > >
> > > >
> > >
> >
>
>
> --~--~---------~--~----~------------~-------~--~----~
> You received this message because you are subscribed to the Google Groups
> "OpenSocial and Gadgets Specification Discussion" group.
> To post to this group, send email to
> [EMAIL PROTECTED]
> To unsubscribe from this group, send email to
> [EMAIL PROTECTED]
> For more options, visit this group at
> http://groups.google.com/group/opensocial-and-gadgets-spec?hl=en
> -~----------~----~----~----~------~----~------~--~---
>
>