Pierre Stirnweiss:
- the several insert/delete types (move, split,...) seemed quite
complicated at first sight. My first reaction to this was: why all this
complication. I might see the usefulness in the case of lists or tables,
not so sure about simple text. I''ll need to go deeper into this one before
giving definitive comments. My fear is that the more complicated a system,
the more prone to malfunction (but that is a mechanical engineer
speaking).


Robin La Fontaine:
I also am a mechanical engineer by background! Move and split provide more gear ratios (mechanical analogy) which is useful but as you say possibly prone to malfunction.

I think this is an important point and we need to look at it carefully.

Here is an example of split:
<text:p >
This paragraph will be split into two.
</text:p>
<text:p delta:insertion-type=''split'' delta:insertion-change-idref=''1''>
This will be in the second paragraph.
</text:p>


and this is how it would be represented without the concept of split:
<text:p delta:removal-type=''remove-leaving-content'' delta:removal-change-idref=''1'' 
delta:end-element-idref=''888''/>
<text:p delta:insertion-type=''insert-around-content'' delta:insertion-change-idref=''1''>
This paragraph will be split into two.
</text:p>
<text:p delta:insertion-type=''insert-around-content'' delta:insertion-change-idref=''1''>
This will be in the second paragraph.
</text:p>
<end-element delta:end-element-id=''888''/>


This is more complicated and not easy to see that it is a split. So split is a simpler representation of a specific case of removals and additions.

Similarly we can look at merge:
<text:p text:style-name="Standard">
These paragraphs will be merged into one.
<delta:merge delta:removal-type=''merge'' delta:removal-change-idref=''2''>
  <delta:leading-partial-content/>
  <delta:intermediate-content/>
  <delta:trailing-partial-content>
    <text:p text:style-name="Code"/>
  </delta:trailing-partial-content>
</delta:merge>
This was in the second paragraph.
</text:p>

And the representation of this without the merge construct:
<text:p text:style-name="Standard" delta:removal-type=''remove-leaving-content'' 
delta:removal-change-idref=''1'' delta:end-element-idref=''888''/>
<text:p text:style-name="Standard" delta:insertion-type=''insert-around-content''
delta:insertion-change-idref=''1''>
These paragraphs will be merged into one.
<end-element delta:end-element-id=''888''/>
<text:p text:style-name="Code" delta:removal-type=''remove-leaving-content''
delta:removal-change-idref=''1'' delta:end-element-idref=''889''/>
This was in the second paragraph.
</text:p>
<end-element delta:end-element-id=''889''/>

Again, this appears to be quite a lot more complex. The advantage of the merge construct is that the original start of the paragraph and the end of the second paragraph remain as they were. At the point where the merge is made, we also have only one element rather than potentially several with the standard representation.