Grokking Conflicts in Managment of Change

We are working on a semantics-based management of change systems (sCMS) for a while (see our locutor project at KWARC).

This project builds onto three main intuitions. In a nutshell: if we know more about the semantics of a document type,

  1. then we know what the meaning-atomic document fragments are (that have an explicit contribution and dependency on the document context, we call them “information items” or “infom”s) [infom]
  2. then we can determine less intrusive differences (some differences don’t really change the document) [mDiff]
  3. then we know when changes in document (fragment) A will affect document (fragment) B, even if A and B are far apart. [long-range effects]

Today I am thinking some more about 2. and 3. The main application of this is the notion of conflicts in change management, which I had not fully grokked (at least to my own satisfaction) in the past. Here goes my new-found understanding.

  1. conflicts are about focus (maybe the word focus is not ideal, but I will use it for now).
  2. you focus on an infom, if you write or change it, or if you explicitly set a focus on it.
  3. If there is a long-range effect on an infom A from an infom B and that changes, then there is a conflict from A to B (interestingly conflicts are directed, I claim).

Now, let us see whether this concept is enough to understand Subversion (SVN) our paradigmatic CMS. In lack of anything else SVN considers lines to be infoms, and does not have long-range effects, but only line/infom-local effects: a change effects it’s whole line/infom. Furtheremore focus is set to an infom exactly when it is changed. As a consequence, we have a conflict, exactly when there are two changes to a line (one from the update and one in the local copy).

For a more semantic document type like OMDoc we have non-trivial infoms (statements and paragraphs usually) and long-range effects given by dependency relation (e.g. a definition depends on all the concepts in the definiens or a theorem depends on it’s proof, which depends on all theorems it uses in turn). If we assume a focus on everything we have ever written, then we come to a very interesting notion of conflict. If A depends on B, which changes and I focus both, then I get a conflict from A to B, and will be notified by the sCMS.

As I said, I am not sure that focus is exactly the right concept; we might have to think of “read focus” and “write focus” to account for the directionality of conflicts. But I am pretty sure that I understand more about CMS now. I have not really checked the literature, if this is all well-known, then please tell me.

Leave a Reply

You must be logged in to post a comment.