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] MCT question

Hello Peter,

Not an easy question, please find my comments below..

On Mon, Jan 18, 2016 at 1:38 PM, Dr. Peter Rakyta <rakyta.peter@multiracio.hu> wrote:
Hi Everyone!

As some of you already know our company is working on an implementation of the MCT change tracking proposal.
Now we have a question to ask, and maybe also discuss it during the next SC call.
According to Svante's original proposal, the changes are exported as a list of UNDO operations that can be easily undone in the document if an author
decides so.

However, as our experiences with the implementation showed, the UNDO operations are not very helpful when it comes to merge documents or to
collaborative document editing. Let me explain this by a simple example. Lets say a collaborator adds a sentence "Hello world!" in the first paragraph
of a document. Then the undo operation reads as:
<del type=”text” s="/1/1" e="/1/11" />

The problem is that when merging this change to our document, we would not know what was inserted between positions "s" and "e", unless we open
his/her version of the edited document.

Thus, it might be more useful to export not the UNDO operations, but the DO (or REDO) operations instead.
What do you think Svante?

We should be aware that we are talking of two different use cases, with two different requirements.
  1. (Real-time) Collaboration requires the new changes made to the document
  2. Change-Tracking requires the changes to be able to restore the document to its previous state
For example, if someone changes the background color of a paragraph from green to red, it is sufficient for 
  1. (Real-time) Collaboration to dispatch the change to red
  2. Change-tracking to save the change back to green
In addition we should keep in mind, that most office software are about two decades old and its not easy for their developers to adopt new concepts.
We should be humble with our suggestions. Changing the before XML state within the ODF XML to an ODF operation being able to restore the previous state might be all we can hope for.

For similar reasons we need to keep a certain compatibility to past applications. Current ODF applications are loading the final state of document as XML. Even ODF applications without the change-tracking feature are therefor able to load the latest document state. 
I doubt that we should change this behavior. Still we might want to suggest the forward change-tracking for the special case of high value signed documents. Currently it is possible that some "evil user" is disabling the change-tracking part time during the editing. With the new approach having a signed original and the user changes are being stored separated (forward not backward changes) this problem will no longer exist. The downside an application without this feature would not be able to show the changes, but there is always a price to pay..

Still it is up to the implementors to offer such features to their customers, we can not demand it.
This might not fully answer your question, but might narrow the answer.

Best regards,

best regards,

MultiRáció Kft.

Tel: (+36-1) 372-2500 / 6517
E-mail: rakyta.peter@multiracio.hu
Web: itl88.elte.hu/~rakytap

On 01/15/2016 08:47 PM, Svante Schubert wrote:
> Patrick,
> On Wed, Jan 13, 2016 at 4:27 PM, Patrick Durusau <patrick@durusau.net <mailto:patrick@durusau.net>> wrote:
> Svante,
> I'm sorry you are missing the call today because I think the XPath /
> no XML model at run time is an important issue to discuss. Perhaps we
> can get started today and over time iron it out.
> I say that because your right, no ODF application is required to have
> an XML model.
> ODF applications can have any internal model they care to have, but,
> they are required to *read* ODF XML and to *write* ODF XML from their
> purely internal representations.
> That is to say that the XML file format of ODF *is* the abstraction
> layer that enables many ODF applications to have varying internal models
> .
>> ODF is indeed a very good abstraction to exchange serialized XML models.
>> Still there is room for further simplification by doing some *further *abstraction upon the ODF XML to logical objects (components).
>> This has advantages, for instance:
>> If I say, I will change the 2nd character of the 3rd paragraph, I might apply the change to ODF or OOXML, as they can be addressed similar for this
>> subset.
>> In the XPath view we are quite lost to see that we are talking of the same logical change and/or the same logical document but in a different XML
>> representation.
>> Not saying that we can map and abstract all ODF & OOXML on this level, but comparison gets easier and how did Einstein said, we should take the
>> easiest solution that works, but nothing easier..
> So, my choice of XPath was very intentional because it too is an
> abstract representation of the change, against the abstraction that
> the ODF application has already read into its internal structure.
> The same process of reading the ODF document would be applied to
> reading the change into the internal representation of the ODF
> application.
>> XPath is very powerful, but it has many feature we do not need. Also does it depend on an XML that does not exist at run-time, but the positions have
>> to exist and handled during run-time, as whenever something is inserted ahead (or above) the position is increased (or decreased when its being
>> deleted), positions have to be updated. Much harder to evaluate and adopt these with XPath.
>> XML and XPath are wonderful technologies, but these are not the hammers we are looking for...
> Likewise, when an ODF application serializes changes, however it
> stores them internally, it serializes them against the immutable XML
> ODF file which it read when it loaded the file.
> The abstraction of XPath to "logical identities" maybe how many ODF
> applications choose to go from the XPath representation to their
> internal model but that's an application's choice and I would prefer
> that we not dictate to applications their abstractions.
> Using XML for both the file format and changes allows ODF to remain
> above the choices made by ODF applications.
>> Again, I am curious if any ODF application develop would like to use XPath. At least nobody at Open-XChange was interested in it and was happy on
>> doing an abstraction. Perhaps because they not only imported ODF, but as well OOXML, which is quite common for office applications and they wanted to
>> use the same mechanism for both formats.
>> Because when the office XML is being abstracted to logical objects - I usually call components - the referencing is are very similar for both formats
>> and a lot can be reused.
>> Try to map the position of a character within a paragraph of ODF to OOXML..  To me it was a nightmare..
>> Aside of my love to XPath, I do not see any use here...
>> I suggest we are not using this hammer, for this time, but wait for a nail instead..
>> Regards,
>> Svante
> Hope everyone is having a great day!
> Patrick
> On 01/13/2016 06:55 AM, Svante Schubert wrote:
>> The immutable change-tracking is indeed very useful for the
>> scenario of commenting and editing a signed document. In this
>> scenario the XML can not be changed, as otherwise the sign would be
>> broken. Every comment/edit would be saved aside the signed content
>> XML and might be signed again for each author, ensuring the
>> validity of the complete content.
>> That the changes will in the future refer to the position of change
>> into the content instead of embedding it as prior we agree on.
>> XPath is just a possible choice of implementation for referencing.
>> From my observation Patrick's ideas are not based on XPath, he just
>> took it as example. I rather would avoid XPath as ODF application
>> do not require to have an XML model representation at run time, in
>> contrary to the file model related DOM run-time API of browsers. In
>> addition ODF XML has no normalized representation, which make XML
>> references more difficult. Therefore the abstraction from XML to
>> logical identities, which are known to users and referencing to
>> those will be easier to handle by general run-time model related to
>> ODF and works well for applications without ODF XML awareness even
>> at run-time.
>> I have experienced this in my work on a browser based office with
>> Open-XChange in the past years. For example, the reference of the
>> 3rd character within the 2nd paragraph might be written as /2/3
>> which can be seen as a simplification of XPath and was handled by
>> the browser office I have been working with as simple integer
>> array, making things easy for the office at run-time.
>> Kind regards, Svante
>> On Jan 8, 2016 9:58 PM, "Patrick Durusau" <patrick@durusau.net <mailto:patrick@durusau.net>
>> <mailto:patrick@durusau.net <mailto:patrick@durusau.net>>> wrote:
>> Greetings!
>> I have been following discussions of immutable data structures,
>> mostly in Clojure for several years and it recently occurred to me
>> that if the starting state of an ODF document were immutable and
>> changes are expressed against that immutable state, then many of
>> the problems and issues that have bedeviled the change tracking TC
>> simply disappear.
>> First, since we have an immutable starting state, then changes
>> expressed against that state, for example in XPath (there are ways
>> to default large parts of path statements), represent changes that
>> can be accepted or rejected when producing either a visual, print
>> and/or new version of the document.
>> A "new" version of the document has a new starting state for
>> change tracking and therefore does not reflect the change history
>> of the previous version of the document.
>> A visual or print version of the document would have, expressed as
>> an XPath as well, list of changes that were accepted for that
>> particular visual or print version. Which would mean you could
>> create another visual or print version with different changes
>> reflected. Which would be a separate XPath statement. Enabling you
>> to go back through versions and/or any changes.
>> Second, an immutable starting state and expressions of changes as
>> XPath statements means we can detect when there are conflicting
>> changes, without those changes ever stepping on other changes.
>> For example, assume that we have three paragraphs in the starting
>> state of the document and I delete text:paragraph #2. Since that
>> is recorded as an XPath statement and the original state of the
>> document does not change, you can record changes to text:paragraph
>> #2 without fear of your changes being lost. And you can continue to
>> edit the rest of the paragraphs in the document because to you they
>> have (and do have) the original paragraph numbering.
>> Moreover, if you want to express changes on changes, which are
>> themselves stored in an XML document structure, unlike present
>> applications you can make changes to changes, which while
>> immutable, can have changes specified that point into those
>> changes.
>> Third, and this reaches into the future collaboration sphere of
>> activity, having immutable documents and changes expressed as
>> XPaths, will enable the detection of when branches occur that
>> impact the visual, print or new version, enabling the author to
>> make choices about which branch in the document to accept for that
>> particular version .
>> Moreover, immutable change tracking will enable classic
>> collaboration around a server but also enable collaboration with
>> specified others or within specified groups, such as an authoring
>> group in a highly secure environment.
>> Permissions could also determine what changes could be seen by
>> particular users and where they could suggest changes.
>> I realize this is in stark contrast to the minimal document by
>> default architecture of present change tracking in ODF. That was a
>> good design decision some twenty years ago, facing unreliable
>> networks and a stand alone orientation to document authoring.
>> But twenty years ago isn't where we are in 2016. There are
>> "collaborative" environments already, although I'm not impressed
>> with their capabilities when compared to applications based on
>> ODF.
>> What I am proposing isn't that different from Svante's original
>> proposal except that I propose to solve the problem of
>> coordination between systems by making documents and the changes to
>> be applied to them immutable. Ultimately, serious conflicts must be
>> solved by an author's choice and what I have proposed here will
>> give every author exactly that choice.
>> On the up side, having immutable change tracking the enables
>> applications to have traditional collaboration hubs (think of
>> servers with big targets painted on them), to have collaboration
>> between individual clients at no extra effort, save for receiving
>> the changes, and to have group change tracking for highly secure
>> environments.
>> Oh, I know Svante hasn't pushed this very hard but having
>> immutable change tracking will also enable a variety of platforms
>> to all work on the same ODF document. I may be editing in a desktop
>> application while Svante is editing on a smartphone, which doesn't
>> support styles or svg graphics. All that means is that Svante won't
>> be submitting changes for what his platform doesn't support. He can
>> submit changes for text without any difficulty.
>> Lest that get lost in all my verbage, the "text" is what we say it
>> is when we "accept" changes for the production of a visual, print
>> or new edition. Others may choose differently, as may we at some
>> later point in time. To capture a particular version, create a new
>> edition with no change history. Then it becomes a frozen artifact
>> in time.
>> I suspect this will be of interest to a number of security
>> conscious entities, just for the varieties of collaboration alone.
>> Add in the other capabilities and I think it could be the next jump
>> in collaborative word processing.
>> Hope everyone is at the start of a great weekend!
>> Patrick
>> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
>> generates this mail.  Follow this link to all your TCs in OASIS
>> at:
>> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php

To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail.  Follow this link to all your TCs in OASIS at:

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