The third prototype is finished. The new prototype enables the observer to just look at specific parts of a page, along with computing and displaying differences between versions.
The core functionality is thereby complete. The test used for the third prototype was to point it at a forum and then have it alert the user whenever a new post was made (but not when something else, e.g. users viewing the forum, changed). The test worked just fine, and the regular expression used to accomplish the task was simple.
.*<td class=\"alt2\">([\\d,]+)</td>
The fact that the patterns will in general not require any deeper understanding of the context of the page gives me hope that I might be able to reuse the regexp generator in this project. That would eliminate the requirement for regexp knowledge in order to use the more advanced functions.
I was wrong when I said that the last prototype would require the least work. This prototype required even less. The reason is that this prototype reused the MPLF package for the parsing and an diff implementation in Java. I was planning on implementing a diff algorithm myself, but since there were already good GPLed implementations available I reused one of those instead.
The next prototype, the one with a GUI, will without a doubt require the most work. I'm still undecided on whether I want to use SWT again or go back to Swing.