Hi all,

I'm trying to get a conceptual understanding of what a ChangeSummary is 
and what you can do with it. I hope this is a good place to discuss this.

This is what I think.

/// fairly sure about this
1. A DataGraph is a structured graph of DataObjects
2. A ChangeSummary gives me a list of all DataObjects from my DataGraph 
that have changed (including created & deleted)
3. For each DataObject that has changed, I can see what properties have 
changed and can access the old and new value

/// less sure
4. In case non-datatype properties have changed, the old value is the 
reference the object had before change tracking started. The contents of 
the DataObject that is referred to can have changed.
For instance suppose I have the graph containing three data objects (for 
simplicity all of the same type):

        A(name=a) -> B(name=b)  -> C(name = c) 

where arrows indicate non-datatype properties and name is a string 
property. If this graph is changed into

        A(name=a) -> C(name=cc) -> B(name = bb)

Then all three objects will have changed. For object A, one property has 
changed: the reference (B -> C). If I ask the changesummary for the old 
value of the reference I get a reference to B whose name is equal to bb. 
This might seem a bit strange because in the old days, A referred to B 
with name=b.

/// even less sure
5. Suppose I now want to make an update service that uses the 
ChangeSummary to update my back-end datastore.
 
Then, the only way I can think of that makes ChangeSummary useful is 
either when
        1. I have implementation specific identifier properties are 
associated with each type [for instance by giving each of my DataObject 
types a URI property]
or
        2. The structure of my DataGraph (i.e. the links between the 
various DataObjects) can't change

Am I off track? Any comments welcome,

Bert

PS: I'm not always as clear as I want to be... so if I need to clarify 
something, I'll be happy to!

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to