From NeOn Wiki
OWLDiff NeOn Plugin
|Developed by||Petr Křemen|
|Current Version||[[current version:= <ask format="template" template="CurrentVersion" limit="1" searchlabel="" sort="version number" order="descending" default="no version available"> 1.x/OWLDiff Neon Plugin *</ask>]]|
|Homepage||[http://krizik.felk.cvut.cz/km/owldiff-neon-plugin.html 1.x/OWLDiff Neon Plugin Website]|
|License||EPLv1.0, LGPL v2.1|
OWLdiff is a project for comparing and merging of two ongologies. It aims to help managing and updating ontologies, which are often modified by several sides, and merging of concurrent updates is necessary. Usually, as for case of textual source codes, a versioning system is used for similar purpose: when multiple people update the same file, one of them performs a merge, using a diff utility, which allows him to view the changes in the file, select the changes which are to be included in the result, merge the files, and commit the resulting file.
OWLdiff serves the same purpose for ontologies, as diff does for textual files. It takes two ontologies as arguments; let us call them the "original" and the "update." Then it uses the Pellet reasoner to check, if the two ontologies are semantically equivalent. If not, it shows the differences graphically in two trees, one for each ontology. User can select differing items in either tree, which is to be updated in the resulting merged ontology.
- To install binary distribution, please use the update site http://krizik.felk.cvut.cz/km/owldiff-neon-plugin/site/
- To install plugin sources for development, please download http://krizik.felk.cvut.cz/km/owldiff-neon-plugin/owldiff-neon-plugin.zip and follow the instructions within the ZIP file
To get quick feeling of the capabilities of the plugin, please check the "owldiff-core/examples" directory of the sources distribution. It contains some examples that highlight the most important features of the OWLDiff tool. Please note, that within a NeON project no two ontologies can have the same URI. As each pair of example ontologies shares the same URI, it is necessary either to load each one into its own ontology project, or rename one of them before loading the other.
The system incorporates two algorithms described in following chapters to find differences between two ontologies. The first one is a simple way how to find missing, added or modified axioms, but cannot reveal complex dependencies. The other, CEX, is more complicated, can find deep impacts of modified axioms (differences that cannot be seen in class hierarchies), but supports only EL description logics. Basic Ontology Comparison
This algorithm compares only axioms. It generates 4 axiom lists, to represent a few types of ontology differences: origRest, updateRest, inferred, possiblyRemove. The process is divided into two steps.
The first step is the syntactic diff. The algoritm first adds all the axioms contained in the "update" ontology but not in the "original" ontology into the updateRest list, then the axioms contained in the "original" ontology but not in the "update" ontology into the origRest list.
The other step is based upon entailments. It uses the lists origRest and updateRest from the previous step. It takes all axioms from the updateRest list, and checks if the axioms can be entailed from the "original" ontology; if yes, it puts them into the possiblyRemove list - list of axioms, that may be redundant in the "update" ontology (with respect to "original" ontology). Then it takes all axioms from the origRest list, and checks if the axioms can be entailed from the "update" ontology; if yes, it puts them into the inferred list - list of axioms, that are covered by the "update" ontology, and thus are not lost when omitted. CEX: Logical Diff
This is a more complicated algorithm, finding complex effects of axiom modifications, but only able to work on EL description logics. It is based on the paper: Konev, B., Walther, D., and Wolter, F.: The logical difference problem for description logic terminologies, online at http://www.csc.liv.ac.uk/~frank/publ/publ.html.
The EL description logics allows following constructs:
* Concept concept definition * Axioms: concept inclusion C sub D, concept equality C eq D * No concept name can occur on the left side of an axiom more than once
The algorithm uses a signature sigma, which is an union of a set of concept and a set of roles.
The algorithm returns in polynomial time two sets of concepts:
* diffR * diffL
The two sets represent differences between two ontologies, even when the differences cannot be observed in class hierarchies. The algorithm uses various auxiliary sets, and is rather complicated; it is beyond scope of this document, for details please see the paper Kovev et al.Following image shows how a sample output of CEX algorithm looks like. This is is an example used in the paper Kovev et al., giving the same results as in the paper.