Software: Docudiff document comparison

For the project I produced an implementation of the document differencing algorithm. This is a Java-based GUI application with a straightforward user interface. It is described more fully in my dissertation, however in brief:

The application is a functional, usable application which implements comparison of OpenDocument Text files using the method described on page 26 of the dissertation. The most common features of OpenDocument Text files are supported, and the algorithm performs well on a wide range of documents.

Features

Known problems


The current OpenDocument-to-XHTML converter [used to display the documents to the user], while supporting the main features of the OpenDocument format, is not perfect. Some features which are not fully supported include table formatting, inserted or linked objects, text frames and columns, list formatting types, and some types of text formatting. Generally text from these elements is displayed in straight-line paragraphs rather than formatted into columns, although the differences at a paragraph and within-paragraph level are still shown. In the case of tables and lists, basic table or list formatting is converted, although some of the more advanced formatting options (borders, list styles and so on) are not.

Mainly for this reason, I would describe the application as a working basic version. The program is generally stable and the most common features of the OpenDocument Text format are supported, but extra features could be developed such as support for the advanced formatting described above.

System Requirements

To run this program you need a Java version 6 (1.6) runtime installed on your system. This can be downloaded for a variety of platforms, free of charge from Sun.
There are no other requirements that I am aware of; required third party libraries are bundled with the application.

Licence


At present this software is “copyright, all rights reserved”.

However, the following licence is granted.:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to use the software for DEMONSTRATION, NON-COMMERCIAL purposes only. That means that the user may run the Software to demonstrate or experience its capabilities, provided he or she receives no money or significant commercial gain from doing so. The source code provided with the Software may be examined and altered for NON-COMMERCIAL purposes only. The Software, or any derivative work produced from it MAY NOT be re-distributed in any way. You may direct someone to the website where they may download the Software for themselves.
This licence is subject to the following conditions:

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

The author may consider licencing this software under alternative licence terms in the future, including either commercial or “open source” licences. If you would like the me to consider doing this, please contact me explaining what you would like to do with the software or what terms you would like to use it under. Your request will be considered, but the I am NOT required to accept your request.

Download

Download the software (ZIP archive, 2 MB).

Extract the ZIP archive and read the README.txt for further instructions.

The package includes source code and Javadoc source code documentation (note: not a user guide; the software is quite self-explanatory from a user’s point of view, just run it and play around).