Sharing and attributes (Was: Re: [Dev] isPrivate: never-share flag)

Lisa Dusseault lisa at osafoundation.org
Mon Nov 15 14:22:33 PST 2004


Note also that to make different Chandler release versions interoperate 
with each other over the same shares, we'll have the same issues.  How 
will the schema on the WebDAV server be different from Chandler 1.0's 
internal schema? (Probably not much, except for CalDAV). How will the 
schema on the WebDAV server be different from Chandler 2.0's internal 
schema?  Probably more so.

One wild idea I had (and discussed a bit with Stuart) was to define 
transformations between formats.  If there was some standard way to 
spit out an item's attributes to an XML document in memory, then is 
there a straightforward transformation to turn that into a PROPPATCH?  
Vice versa, how about taking a PROPFIND answer (or fragment for one 
item) and turn it into a set of attribute values?  These 
transformations could be written as XSLT (or something else) and could 
be stored as data.  So then the way to share a given Item is to take 
the appropriate transformation based on that item's schema version, and 
apply it.

It's probably not really feasible for the sharing code to just ignore 
the attributes, no matter how we did sharing.  If I create a "knitting 
project" custom item for my "knitting management" parcel, then any 
schema changes risk breaking sharing of that data.  So the parcel 
developer has to keep in mind the sharing schema and at times make an 
adjustment.  In the first version my "gauge" attribute might be an 
integer (in stitches per inch.) In my next version I decide I need two 
attributes, one for  "stitch-gauge" and one for "row-gauge".  So as a 
developer of a parcel, I just have to write the code to take the new 
schema and make it spit out the old "gauge" attribute for backward 
compatibility with earlier versions of my own parcel -- likewise the 
new version of my parcel must understand when it sees a "gauge" 
attribute on a shared knitting project Item.  This logic is completely 
independent of protocol or whether the sharing data model is different 
from the internal data model.

Of course, one choice the parcel developer can make is to say that 
backward-compatibility in the face of schema changes is not needed.  
That's the only way I can see for parcel developers to be able to make 
schema changes and not write code.

Actually, I'm not too worried about the property/attribute connections. 
  What I'm more worried about is when the item boundaries change.  What 
if I decided Gauge was a complex reusable item and needed to be broken 
out as a completely separate item?  So that in one version of my 
parcel, each knitting-project item has an integer gauge attribute, and 
in the next version it has a reference to a Gauge item?

Lisa

On Nov 15, 2004, at 2:01 PM, Morgen Sagen wrote:

> On the other hand, sharing items with non-Chandler clients is a high 
> priority, and do we think that the schema these non-Chandler clients 
> use will exactly mirror the Chandler content model?  For example, 
> Chandler might internally model a calendar event differently from 
> CalDAV, and therefore the sharing layer would not "blindly" be 
> transferring event items to and from the server; rather, this layer 
> would need to perform transformations on the items, converting between 
> Chandler-schema and non-Chandler-schema.  So the question becomes, 
> what should the schema on the WebDAV server look like, and how does it 
> differ from Chandler's schema?
>
> On Nov 15, 2004, at 1:24 PM, Mike wrote:
>
>> +1
>>
>> John Anderson wrote:
>>
>>> I've been hoping that maybe we could handle the name issue in the 
>>> view, so that it would be possible for the sharing transport layer 
>>> not to know anything about the data that's being shared -- keeping 
>>> all attributes and the UUID of the items the same on all the 
>>> machines that have a copy of the item.
>>
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>
>> Open Source Applications Foundation "Dev" mailing list
>> http://lists.osafoundation.org/mailman/listinfo/dev
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "Dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/dev



More information about the Dev mailing list