26
are inherently detectable by automatic means, since they involve the violation of system-
visible constraints.
Semantic conflicts are generally not detectable by automated means because they depend
crucially on human knowledge and human intent. One example, already mentioned, is the
simultaneous detection of a redundancy in a shared document by two collaborators. Each
collaborator notes that two paragraphs repeat the same material, but one author deletes the
first redundant instance, while the other deletes thesecond.In such an instance the merged
document would have no detectable syntactic conflict, since entirely different paragraphs
were deleted by the two authors. However, a potentially serious semantic error has been in-
troduced, since potentially important information (important enough that it was written out
twice!) has been completely deleted from the document. Heuristics are often a reasonable
way to detect probable semantic conflicts as an aid to users. For instance, non-conflicting
changes by different people in the same word or sentence may frequently indicate a seman-
tic problem.
Application conflictsare actual or potential conflicts that a specific application may need
to detect even though they are not syntactic conflicts. One common kind of application
conflict is detected by the application of a semantic conflict heuristic. Different levels of de-
tection may be appropriate at different times, depending on user and application tasks, and
these typically need to be under user control (Neuwirth, Chandhok et al. 1992). In a text
editor, some such situations should probably always be flagged, because, even when syntac-
tic conflict is absent, semantic conflict is likely. Another use would be the detection of ap-
plication constraints that are specialized in some way. Some drawing applications impose
conditions on the form of the drawings. For instance, a circuit design application has any
number of specialized conditions that must be imposed on a schematic in order for it to be
legal, and checking these invariants would be an important part of merging changes in such
an editor. Munson and Dewan (Munson and Dewan 1994; Munson and Dewan 1996) have
are inherently detectable by automatic means, since they involve the violation of system-
visible constraints.
Semantic conflicts are generally not detectable by automated means because they depend
crucially on human knowledge and human intent. One example, already mentioned, is the
simultaneous detection of a redundancy in a shared document by two collaborators. Each
collaborator notes that two paragraphs repeat the same material, but one author deletes the
first redundant instance, while the other deletes thesecond.In such an instance the merged
document would have no detectable syntactic conflict, since entirely different paragraphs
were deleted by the two authors. However, a potentially serious semantic error has been in-
troduced, since potentially important information (important enough that it was written out
twice!) has been completely deleted from the document. Heuristics are often a reasonable
way to detect probable semantic conflicts as an aid to users. For instance, non-conflicting
changes by different people in the same word or sentence may frequently indicate a seman-
tic problem.
Application conflictsare actual or potential conflicts that a specific application may need
to detect even though they are not syntactic conflicts. One common kind of application
conflict is detected by the application of a semantic conflict heuristic. Different levels of de-
tection may be appropriate at different times, depending on user and application tasks, and
these typically need to be under user control (Neuwirth, Chandhok et al. 1992). In a text
editor, some such situations should probably always be flagged, because, even when syntac-
tic conflict is absent, semantic conflict is likely. Another use would be the detection of ap-
plication constraints that are specialized in some way. Some drawing applications impose
conditions on the form of the drawings. For instance, a circuit design application has any
number of specialized conditions that must be imposed on a schematic in order for it to be
legal, and checking these invariants would be an important part of merging changes in such
an editor. Munson and Dewan (Munson and Dewan 1994; Munson and Dewan 1996) have