Sefira library is meant to provide a well tested and reasonably optimized implementations of some tree comparison algorithms, so that they can be tried out in practical applications. Finding the largest common subtree of two ordered labeled trees is a problem with increasing applications (e.g. in XML processing and computational biology), on which substantial progress has been made in recent years. However, papers on tree comparison may not be available without subscription to the appropriate journals and even when they are, they generally don't contain executable code, so using the new algorithms is non-trivial. Also, there isn't one "best" algorithm yet. Distance definitions differ, and even for the same edit distance, time complexity can be measured on different tree features.
JDiff is a tool which performs folder recursive comparisons and file comparison based on Myer's minimum set of differences algorithm. Based on this file comparison algorithm, it also provides a 3-way merge, which can run without a graphical interface. JDiff is released as an auto-executable jar file.
Oxygen XML Diff is a complete solution for comparing and merging XML files. It offers both directory and file comparison, six different diff algorithms, and multiple levels of comparison. The comparison can also be performed inside ZIP-based archives (ZIP, JAR, ODF, OOXML). Oxygen XML Diff includes two specialized XML-aware comparison algorithms: XML Accurate, tuned for precise comparison, and XML Fast, tuned for speed at the expense of some accuracy.
Replo is a cross-platform utility for performing syntactically-aware diff, find, and replace operations. It is similar to IntelliJ's "structural find and replace" feature but allows for configurable grammars. With Replo, users can compare, detect, and replace idiomatic structures without worrying about irrelevant stylistic inconsistencies. Common grammars (e.g. C, C++, C#, Java, Ruby) are provided, but users can also leverage ANTLR to define their own.
This program is especially useful when the main difference between the two LaTeX files is in permutation of sections, moved equations, etc. Given 2 LaTeX files, it prepares 2 annotated LaTeX files showing which equations of the 1st file are identical, or close, or similar, to which equations of the 2nd file. It does the same with the pieces of text. It also saves the snippets of text and equations from each text into separate files in 2 new folders, allowing the user to see the difference using a diff program.
owl2vcs is a set of tools designed to facilitate version control of OWL 2 ontologies using version control systems. It contains a commandline diff tool for OWL 2 ontologies integrated with Git and Mercurial. It detects axioms additions and removals, imports' additions and removals, ontology annotations' additions and removals, prefix additions, removals, modifications, and renames, ontology IRI and version IRI changes, and ontology format changes. It supports RDF/XML, OWL/XML, OWL Functional Syntax, Manchester OWL Syntax, and Turtle. It provides a changeset serializer and parser, two formats of changes, compact (like OWL Functional Syntax) and indented (the same, but more readable, using indents instead of parentheses), and four formats of IRIs: Simple, QName, Full, and Label.
JSON-delta is a multi-language software suite for computing deltas between JSON-serialized data structures and applying those deltas as patches. It enables separate programs at either end of a communications channel (e.g. client and server over HTTP, or two processes talking to one another using bidirectional IPC) to manipulate a data structure while minimizing communications overhead. Robust reference implementations are available in Python and Javascript. Work is ongoing on other implementations, including Racket and Perl.