[UPD] Compatibility rules in applyUpdates

Greetings,

I am wondering about the Compatibility rules in applyUpdates (3.2.2 
upd:applyUpdates):
It seems to me to be both incomplete and possibly annoying in practice.

* Completeness:
 The specification mentions compatibility between rename operations and 
between replace operations,
 but does not care about compatibility between deleting a node and 
renaming or replacing the same node,
 or inserting into this node, which seems more a problem than renaming 
twice.
 Actually this point is considered in Appendix G, but without 
considering it an issue.

 This does not seem very complete and consistent IMHO.

* On the other hand, these rules might be annoying in practice:
  a) applyUpdates is invoked implicitly, in an implementation-dependent 
way, therefore
      it is unclear how and when incompatibility errors would be 
reported to users
  b) It seems simpler to report errors as they occur, that is, during 
execution of the
      update primitive (and not during upd:applyUpdates).
  c) It would be nice if such incompatibility detection were optional, 
for debugging
      purpose. A programmer could intentionally let for example several 
renamings
      or several replacements happen on a particular node, if it 
simplifies the processing.

So, in short my suggestion is to make this incompatibility detection
1) complete
2) dynamic, at query run-time
3) optional

Received on Thursday, 24 January 2008 23:45:46 UTC