OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-collab message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office-collab] How do we count? - September 26, 2012


On 25.09.2012 11:28, Robin LaFontaine wrote:
On 24/09/2012 14:40, Thorsten Behrens wrote:
Andreas J. Guelzow wrote:
On Fri, 2012-09-21 at 15:43 -0600, John Haug wrote:
So each time an arbitrary change is rejected or the document content
is altered (change-tracked or not), the numerical references of
some/all the change tracking markup may be invalidated and must be
recalculated by the application, right?
I can't imagine that any application would likely work directly on the
xml representation.

Right. We're talking about import/export filters here - for those, I
would think absolute or relative references are equivalent in
computational complexity (aka big-O). As a first cut,
implementations could simply maintain integer counters for the
components of interest, updated as the file gets imported /
exported.

Cheers,

John is I think correct in identifying a complexity here. It is not to do with the use of XML representation, it is to do with the fact that a deleted paragraph (say) is part of the counting before it is deleted but is not part of the counting after it has been deleted.

That is fairly straightforward to handle in collaboration when the edits are expected to be executed in order, but not so easy for change tracking where anything can be 'rejected'.

On input the application needs to work out the numerical references not only for the actual document as read in but all its previous states as changes were made. I think this will become clearer when there are some more complex worked examples - it is almost impossible to work out without working code.

For example, in a sequence of 10 edits (where edit 1 is the first and edit 10 is the last), if edit 3 deletes a paragraph it is impossible to know where the paragraph was (i.e. where to put it back if that edit is rejected) without going back through (e.g. rejecting in some virtual environment) edits 10, 9, 8, 7, 6, 5, and 4.

Note: There seems to be a difference between collaboration (which references the components in the document as it was before a change) rather than CT (which references components in the document after the change). I am not sure which way MCT works, I thought it was CT according to the earlier presentations, but the Select Committee had all their examples as collaboration. It would be good to have that clarified.
Let me try to summarize what we already discussed on this topic:

Axiom:
  • Each Operation is being defined/specified in our ODF specification as parametrized XML change. Therefore every operation is label representing an interoperable traceable, reproducible document change.
Provisional First Prototype Model:
  • Operations are being added upon a stack/queue. Each operation is working in relation to the document state at their time. Every operation is simply added upon the stack, there is a basic time/stack depth relation.
  • Operations are able to be moved within this stack. In other words, it is possible to switch two adjacent operations in their order. 
    During a switch position parameters of one of the two operations might need adaption, whenever one of it is is the creation/deletion of a preceding sibling or ancestor (being the other), see presentation slide 17.
    Note: There are logical boundaries, like the deletion, or manipulation of a component can not be moved in front of the creation of the very same component.
  • Operations are equal to functions and function composition is applicable, like instead of having two operations adding a single character, we might have a a single operation adding these two. Allowing the condensation of the applied operations. Maintaining the same overall document change or change info set.
  • Should a Operation being removed from the stack, the simplest view (algorithm) is move the operation to be removed at the very top of the stack, so it is similar as the operation had been the last Operation being added to the document, working on the very last state with - most important - no side-effects to other operations (those had been resolved during movement through the stack).
Are there questions to the draft statements above?

Best regards,
Svante

-- 
-- -----------------------------------------------------------------
Robin La Fontaine, Director, DeltaXML Ltd  "Experts in information change"
T: +44 1684 592 144  E: robin.lafontaine@deltaxml.com      
http://www.deltaxml.com      
Registered in England 02528681 Reg. Office: Monsell House, WR8 0QN, UK
--------------------------------------------------------------------- To unsubscribe, e-mail: office-collab-unsubscribe@lists.oasis-open.org For additional commands, e-mail: office-collab-help@lists.oasis-open.org



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]