A "patch" is a technical term in the computing industry that most closely matches this concept, of all the terms I am aware of. A "patch" represents the differences between two files. For instance, if I have a file that contains "This is a dog." and a file "This is a cat.", the difference is the word "dog" in the first and "cat" in the second. A patch file describes how to start with one file and get to the other.
Patch files are usually written for computers, but they are generally very easy for a skilled programmers to read. Since it would not be very useful for you to know how to read them if you don't already know how, I'll simply discuss them in terms of English instructions. Patch files can be considered as instructions being fed to a proper interpreter, so re-expressing them as another set of instructions doesn't lose anything significant in the translation.
A patch from the first sentence I mentioned above to the second sentence might read as "Remove 'This is a dog.', and insert 'This is a cat.'." That correctly describes how to get from one sentence to the other, but there are two problems with that. One is that it contains all of both files within it, which is a waste of space. The second problem is that there is a much more efficient way to obtain the same effect: A patch file that says "Remove the word 'dog' and replace it with 'cat'." Now the patch is very space-efficient (especially in computer terms, where that entire sentence might boil down to just "s/dog/cat/" or some equally cryptic, but precise, formulation), and it also does a good job of highlighting the differences without repeating the similarities, which can be useful to human readers.
There are no particular limitations on the capabilities of a patch. As the two messages become increasingly dissimilar, the patch grows in size, until eventually it simply contains both files (the negative of the source file and the positive of the destination file, if you want to think of it that way; the photographic analogy is reasonably accurate), but the differences between any two messages can be expressed as a patch. Even the differences between two human-experienced messages can be expressed by a patch, in a sufficiently powerful patching language.
"Annotation" works by patching the incoming web page to include the annotations in it. In the Third Voice implementation of annotation, you could even watch the patching happen, as the annotation markers trickled in and caused the page to be re-formatted. "Smart Tags" work by patching the web page to include new, special links that weren't in the original page. ClearPlay patches selected parts of the movie entirely out of existence; spam filtering patches entire messages out of existence. (The equivalent in terms of the sentence examples above would be "Replace 'This is a dog.' with nothing.") Advertising blocking uses all of these techniques, depending on which implementation you chose.