[Dev] Issues regarding item clouds, permissioning etc...
Brian Douglas Skinner
skinner at osafoundation.org
Mon Apr 12 15:13:37 PDT 2004
Thanks Andi,
I made a wiki page that has a copy of what you said in your dev list
post about item clouds and permission:
http://wiki.o11n.org/twiki/bin/view/Journal/ItemCloudsAndPermissions20040409
And I also made a place on the main Data Model page for collecting links
to pages that talk about Item Clouds and how to represent them:
http://wiki.o11n.org/twiki/bin/view/Chandler/DataModel#ItemClouds
- Brian
Andi Vajda wrote:
> Quite a few interesting and important meetings have been taking place over
> the past couple of weeks. Brian asked me to put my thoughts in writing.
> So, here we go:
>
> - Terminology
> How do we name these things ? Item clouds, uppercase-I-items ?
> Interfaces ? Bundles ? Molecules (where lowercase-i-items are atoms)
> I find 'Interfaces' intriguing...
>
> So, for now calling them Item Clouds, here is more about them.
>
> They seem to be addressing several problems and occurred to several
> people at the same time almost. Serendipity at work. Neat.
>
> They appear to fill the need of defining semantics for a set of items that
> work together in some fashion.
>
> For example, an email item cloud can be viewed as the set of items made
> up by the email body, its headers, the addresses in its headers, its
> attachments, etc... where each of these pieces is actually implemented
> by an item and defined by a kind.
>
> - Uses
> I see several uses for item clouds such as permissioning, sharing,
> exporting, or any other operation where there needs to be applied an
> operation to a semantically coherent set of items.
>
> In permissioning: rather than permission each item inside a cloud,
> derive permissions to them from the permissions set at the entry point of
> the cloud and by following the cloud's boundaries. By default,
> everything inside a cloud inherits permissions from the entrypoint.
>
> In sharing: when shipping an item from one Chandler to another, shipping
> along all items that are relevant with it, ie, the items that are most
> likely to be requested immediately after the entry point item was
> shipped over has the immediate advantage of significantly reducing
> roundtrips between two peers exchanging items.
>
> In exporting: by exporting items, I mean exporting Chandler data to
> non-Chandler applications in a way that makes semantic sense at both
> ends of the transaction. For example, if I export an email, I do mean to
> export its headers and contents as well. An exporting module, could
> leverage the cloud concept to know which items belong together and
> implement some of the exporting code in terms of clouds and not just in
> terms of emails.
>
> Clouds can of course overlap: The email cloud and the contact cloud
> probably overlap at the level of email addresses, for example. I believe
> that this addresses the very early Chandler vision of where an item could
> be looked at as one thing one time and another at a different
> time. Instead of achieving this with some re-kinding functionality,
> having clouds overlap (ie, have multiple different semantic entrypoints)
> achieves the same without any of the complexities behind re-kinding.
>
> - Implementation issues
> Obviously, the concept of clouds should be represented in the schema
> instead of in code. That way much code can exploit it, and less code has
> to be written.
>
> I've been thinking that the Kind item should be enhanced to describe the
> boundaries of the item cloud it serves as entrypoint for by maintaining
> a collection of reference attribute sequences that would be dereferenced
> when all the items in a cloud were collected. Brian has been thinking
> that such information should actually reside with the attributes
> themselves instead of the kind, a more attribute centric model.
> Both models are identical as long as kinds don't share attributes. If
> they do, which is something desirable and we intend to do, then storing
> the boundary information at the attribute level would also cause the
> boundaries at these attributes to be shared by their kinds.
> Choosing the latter model would cause us to move into a more attribute
> centric data model than we are today, a decision not to make lightly. We
> need to involve more people into this debate to raise the awareness about
> such a decision.
>
> Currently I'm leaning towards yet another way to represent these
> boundaries. It came up during a recent conversation with Katie where
> she asked: "Why should there be only one such boundary per kind anyway ?"
> With that in mind we discussed the following:
> How about introducing the notion of Uppercase-K-kinds (need yet another
> name here) whose purpose is to define such item cloud groupings. A kind
> (lowercase-k) such as Email, would reference one or several of these
> uppercase-K-kinds for cloud boundary information. The choice of which
> uppercase-K-kind would be picked for the item-gathering operation would
> depend on the context of the operation in progress, such as permissioning,
> sharing or exporting. I currently like this idea a lot, I must admit...
> It provides a great opportunity for later extension. We could probably
> imagine storing more such cloud specific metadata there at a later
> time. I like such built-in extensibility a lot.
>
> - Permissioning
> The issue here is simpler. Should the data model allow the definition of
> permissions at the attribute level (more precisely, at the attribute
> value level, on a per item basis) ?
> Or should permissioning be done at the item instance level only ?
> Rephrasing the question: should the unit of permissioning be the same as
> the unit of access into the repository ? the item (lowercase-i).
> (of course, in both cases, appropriate defaults could be set at the kind
> and attribute item level).
>
> Items may be defined by kinds for certain semantic purposes that I
> don't necessarily see easily aligning with permissioning granularity
> limited to the item. It is easy to imagine an Employee kind with various
> attributes of different sensitivities that would need to be permissioned
> separately.
> Workphone, salary and SSN, for example, can be thought of as public,
> private and very-private levels of information sensitivity. If only the
> employee item can be permissioned then the more sensitive information
> would have to be moved into smaller items, referenced by the employee
> item, solely for the purpose of permissioning which, if taken to an
> extreme, could lead to lots of one-attribute items. I view this as
> undesirable.
> Similarly, Pieter had raised an issue about different levels of
> sensitivity in information stored in a contact. While there may be an
> acceptable solution for this particular objection (contact sections), I
> don't think it addresses the original concern of forcing the item to
> satisfy two semantic needs, one defined by the kind, the other one defined
> by permissioning (which reflects information sensitivity).
>
> Recommendations
> ---------------
>
> These reflect my current thinking and could change as these conversations
> and meeting proceed, of course:
>
> - item cloud boundaries should be represented on an uppercase-K-kind, a
> new data model concept to hold metadata and semantic information about
> items that work together.
>
> - item clouds and uppercase-K-kinds need better names !!!
>
> - permissioning needs to be built into the data model down to the
> attribute value level, although appropriate defaulting mechanisms using
> kinds and uppercase-K-kinds defined clouds should be used normally.
>
> If you've read all the way down to here, thanks for your time !
>
> Andi..
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "Dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/dev
More information about the Dev
mailing list