[Cosmo-dev] Sharing format questions

Morgen Sagen morgen at osafoundation.org
Mon Jul 31 10:40:17 PDT 2006


On Jul 28, 2006, at 3:22 PM, Philippe Bossut wrote:

>
>
> Morgen Sagen wrote:
>> I've always wanted us to be able to think of items as something  
>> akin to a Photoshop image:  composed of a set of "layers" which  
>> can be added or removed independently.  Each layer would represent  
>> one or more related attributes plus their values.  For example,  
>> one layer could include the "when-ness" of an event (start time,  
>> duration, recurrence), another could include reminder alarms, and  
>> another the title.  The user will want all of those layers  
>> published to Cosmo so that all their own clients (Chandler,  
>> Scooby, etc.) will have access.  They will also want to give  
>> controlled access of these layers to other Principals (accounts/ 
>> groups/tickets).  Likewise, the other Principals are going to want  
>> to pick and choose which layers they want to see (you may have  
>> given me access to your reminder alarms, but I don't want to  
>> download them).  And going back to the "setting personal reminder  
>> alarms on items I don't have write-access to" requirement -- we  
>> would need to be able to store these layers somewhere on Cosmo  
>> even if the Principal doesn't have permission to modify the item  
>> itself.
>>
>> A long time ago I described these layers as "records", with  
>> multiple records being composited into an item:
>>
>>    http://lists.osafoundation.org/pipermail/chandler-dev/2002- 
>> November/000181.html
>
> I really like the metaphor, makes a lot of sense to me. The fact  
> that it shatters the notion of "item" can be a concern though. You  
> wouldn't have to push the idea very much to move the granularity  
> level of the repo from the item to the level of the "layer". For  
> instance:
> - Wouldn't you need GUIDs per layer with such a model? (one layer  
> being potentially used in several items)

Potentially, yes.  In the early prototype, my repository stored RDF  
statements (triples + attribution and time range), and these were  
grouped into "records" (which had IDs), which were further grouped  
into "workspaces" which were what you shared.  To determine what  
values an item had you ran a query which would find all relevant  
statements.  By also storing attribution and validity time ranges  
along with the triples, you could filter based on who made the  
statements, and by time. In other words you had time-based versioning  
-- you could run a query and pass in whatever time you wanted and get  
results back as they were at that time.  Anyway, the point is yes the  
repository granularity would need to be finer than just "item".

> - If each layer has its own ACL, wouldn't that require Cosmo to do  
> quite a bit of fancy filtering when getting a request for an item?  
> (just to make sure that a client doesn't get unauthorized info for  
> instance).

Yes.

>
> BTW, great thread. Extremely interesting exchange of ideas here.
>
> Cheers,
> - Philippe
> _______________________________________________
> cosmo-dev mailing list
> cosmo-dev at lists.osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/cosmo-dev



More information about the cosmo-dev mailing list