Editing in the Wiki

I have suffered with editing in the Wiki for quite some time now.  Here
are some comments on the Wiki editing process (as opposed to editing as
related to the Wiki language) and some suggestions for changes.


The Wiki editing system has at least the following problems with respect
to editing WD documents: 

- The Wiki diff mechanism does only a textual diff, ignoring the fact
  that whitespace can be compressed and that newlines are often just
  whitespace.  So a diff may be much harder to decipher than a simple
  description of a change.

- The Wiki diffs are only between two versions of the document, whereas
  the changes required to implement an issue may be interleaved with
  many other changes.

- Direct editing (i.e., editing in the provided text box) is not
  adequate.  This leads to the common practice of editing pages or
  sections in an external editor.  The export and import can produce
  non-visible artifacts, which are then picked up in the diffs.

- The Wiki editing model is not designed for speculative editing.  All
  changes are reflected in a single branch.  All editing must be made on
  the Wiki itself.  It is not possible to have private copies, e.g.,
  editor's drafts.  This means that it is not possible to "freeze" a
  document (e.g., for publication) and continue to work on it at the
  same time.  No, you cannot use old versions for this - freezing does
  *not* mean that the document does not get changed as there may be
  changes needed to support the publication process.

- The Wiki editing system appears to be designed for light-weight
  concurrent editing.  It is adequate for recording who did what when,
  but not adequate for recording why.  It is much too easy to forget to
  enter the description of changes.  Contrariwise, it is impossible to
  fix these descriptions after the fact.  


A reaonable editing system would have *at least* the following changes
from the Wiki editing system:

- A user-entered description of the changes would be *required* for each
  change. 
- The "minor edit" flag would have to be entered for each change.
- Change descriptions could be changed after the fact.
- Speculative changes (i.e., a different branch) would be possible, and
  could be merged into the main branch.
- Diffs could be generated based on a set of changes.
- Diffs would be insensitive to non-visible changes in whitespace.
  (Unfortunately the Wiki language makes determination of non-visibility
  hard.)


If the first two changes above were made to the Wiki editing system then
the WG could proceed in the following limping manner:

- Each change would be for a particular purpose.  
- Changes related to an issue would have the issue number in their
  description.   
- Changes made solely for editorial reasons would so state, and would be
  flagged as minor.
- Other changes would have a description of the purpose of the change.
- Issue resolutions would just point to which documents were changed.
- Publication would be approved for a document and not a particular
  version of a document.  Non-minor changes to a document during the
  publication process would have to be approved by the WG chairs.

This proposed process is definitely not ideal, but appears to me to be
acceptable and needs only minor changes to the Wiki editing system.

(It turns out that it is possible for the WG to partly "implement" the
first change, by requiring that all WG members change their Preferences
-> Editing -> Prompt me when entering a blank edit summary to on.
Unfortunately, the way this preference works is particularly annoying,
and much too easy to bypass.)


Peter F. Patel-Schneider
Bell Labs Research

Received on Thursday, 3 January 2008 10:15:37 UTC