<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Ecco: A Hybrid Di Tool for OWL 2 ontologies</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computer Science, University of Manchester</institution>
          ,
          <addr-line>Manchester</addr-line>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The detection and presentation of changes between OWL ontologies (in the form of a di ) is an important service for ontology engineering, being an active research topic. In this paper, we present a di tool that incorporates structural and semantic techniques in order to, rstly, distinguish e ectual and ine ectual changes between ontologies and, secondly, align and categorise those changes according to their impact. Such a categorisation of changes is shown to facilitate the navigation through, and analysis of change sets. The tool is made available as a web-based application, as well as a standalone command-line tool. Both of these output an XML change set le and a transformation into HTML, which allows users to browse through and focus on those changes of utmost interest using a web-browser.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Detecting and presenting changes between any two documents (so-called di )
is an essential service that is hardly con ned to software engineering. While
regular textual di s, such as UNIX's di function, rely on the assumption that
order matters, in ontologies that no longer holds; OWL [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] does not impose
a systematized ordering of axioms, but instead de nes a higher level notion of
syntactic equivalence (so-called structural equivalence [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], and associated notion
structural di erence). In turn, this notion provides a basis for ignoring certain
types of negligible changes, such as the order of axioms or concrete syntax (e.g.,
OWL/XML compared to RDF/XML serialisations of the same ontology).
      </p>
      <p>
        There are a variety of di services based on structural equivalence [
        <xref ref-type="bibr" rid="ref11 ref12 ref7">7, 12, 11</xref>
        ],
which distinguish additions and removals, and subsequently align axiom changes
with those class names found on the left-hand side of the axiom. However, no
further characterisation of changes is typically carried out, e.g., whether changes
produce any logical e ect (thus e ectual ) or not (ine ectual ), as conducted in
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], or whether there exist any relations or additional properties of changes that
might help users analyse and understand them. Aside from this, such di s lack a
standard and essential feature of any di : an alignment between the source and
target of a change. This kind of data can be collected at development time via
edit-based di s, as implemented in SWOOP [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], although if there are no such
change records then a post facto change analysis is impossible.
      </p>
      <p>In this paper we present a di tool that incorporates structural and semantic
techniques to, rstly, distinguish which additions and removals (obtained via
structural di erence) are e ectual or ine ectual, and, secondly, nd the source
of each change (where attainable), which in turn allows us to categorise and
align (source with target of) changes between two ontologies. The categories
follow from the di erent kinds of impact a change can have, e.g., by further
constraining an axiom we can make it \stronger", and the relation between this
stronger axiom and its preceding version is made explicit by our categorisation,
and suitably presented by our tool. The latter is available either as a web-based
application, or a command-line tool with more advanced features.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>
        We assume the reader to be reasonably familiar with ontologies and OWL, as
well as the underlying description logics (DLs) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], though detailed knowledge is
not required. The di categories discussed in the paper are de ned in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and
will be brie y discussed and exempli ed. When comparing two ontologies we
refer to them as O1 and O2, and their signatures, i.e., the set of entity (class,
property and individual) names occurring in them, as Oe1 and Oe2, respectively.
The signature of an axiom is denoted e. A structural equivalence relation
between two axioms 1 and 2 is denoted 1 s 2. Throughout this paper
we use the standard description and rst order logic notion of entailment; an
axiom entailed by an ontology O is denoted O j= . A justi cation J for an
entailment is a -minimal subset of an ontology O that is su cient for to
hold [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We refer to an e ectual addition (removal) from O1 to O2 as an axiom
such that 2 O2 and O1 6j= ( 2 O1 and O2 6j= ) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Ecco: A Hybrid Di for OWL 2</title>
      <p>We present the di tool Ecco, available on the web as a Java servlet, and
accessible at http://owl.cs.manchester.ac.uk/diff. Alternatively there is also
a command-line tool with more advanced features, which can be downloaded
from http://owl.cs.manchester.ac.uk/research/topics/diff/. In order to
demonstrate the functionality of the tool, as well as how its output can be
interpreted, we start o with a comprehensive di walkthrough on toy ontologies,
and further on we show the output of Ecco on those same ontologies.
3.1</p>
      <p>Di</p>
      <p>Walkthrough
Consider ontologies O1 and O2, de ned in Table 1. From O1 and O2 we have
the following structural di erences:</p>
      <p>Additions(O1; O2) = f 1; 2; 4; 5; 6; 7; 9; 10; 11; 12; 13g
Removals(O1; O2) = f 1; 3; 4; 5; 7; 8g</p>
      <p>Note that 6 is not syntactically equal to 8 ( 6 6= 8), however they are
structurally equivalent ( 6 s 8). Therefore these axioms are not reported
as changes. Given the sets of structural additions and removals from O1 to
O2, we check which axioms in Removals(O1; O2) are entailed by O2 (ine ectual
removals), and vice-versa for Additions(O1; O2). Thus we obtain a distinction
between e ectual and ine ectual changes, as follows:</p>
      <p>E ectualAdditions(O1; O2) = f 2; 6; 10; 11; 12; 13g
E ectualRemovals(O1; O2) = f 8g
Ine ectualAdditions(O1; O2) = f 1; 4; 5; 7; 9g
Ine ectualRemovals(O1; O2) = f 1; 3; 4; 5; 7g</p>
      <p>There are several ine ectual changes in the change set, while e ectual changes
are mostly additions (and a single removal). The changes are categorised as
shown in Table 2. Consider these ine ectual additions; 9 is a rewrite of f 7; 5g,
as well as an avoided redundancy (i.e., had it been added to O1 it would be
redundant). The axiom is also weakened, due to 8. This may seem like an
unintentional change, since now we face a loss of information regarding J , which
is no longer mentioned in O2. Such a change may be worth revising. The axiom
1 is redundant, since we have from O1 that A v C, which is also entailed from
O2, and O2 j= A v B. Therefore the user can dispose of this axiom.</p>
      <p>Bear in mind that the existence of a rewritten axiom from O1 to O2 does
not imply that the same holds in the opposite direction. This is applicable to
all categories. Also we can have that an axiom is in more than one category.
Consider axiom 1; a justi cation J1 for 1 is J1 = f 2; 3g, which indicates a
strengthening (since we have that 2 2 E ectualAdditions(O1; O2)), as well as
a redundancy ( 3 2 O1 \ O2). Another justi cation J2 = f 1; 3g indicates a
redundancy; 1 2 Ine ectualAdditions(O1; O2), and 3 2 (O1 \ O2).</p>
      <p>In terms of e ectual changes there is only one removal, and six additions. The
e ectual removal ( 8) represents a weakening of 9 with retired terms (J is not
mentioned in O2). In the analysis of the ine ectual changes it was already noted
that axiom 8 should be revised. The pure additions represent adjustments to
the class hierarchy, some associated with new terms in O2. Both axioms 11
and 12 are strengthenings of 4, which suggests that they could be merged,
especially since there is intra-axiom redundancy. Finally there is a new term K
in O2 being described via axiom 10.</p>
      <p>Rewritten
la Strengthened
u
t
c
e
e
n
I Redundant
.EWeakeningRT</p>
      <p>Rewritten
l Weakened
a
u
t
c
e
e
n
I Redundant</p>
      <p>Strengthening</p>
      <p>StrengtheningNT
l
a
tu NewDescription
c
e PureAddition
E</p>
      <p>PureAdditionNT
3
1
4
1
3
8
9
9
7
1
7
9
11
12
10
2
6
13</p>
      <p>
        Generally speaking, with such a categorisation it becomes conceivably more
intuitive to navigate and understand change sets. Even though ine ectual
changes are often ignored by semantic di s (ContentCVS [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], or CEX [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]),
we gathered from their analysis useful information such as, e.g., that axiom 4
is strengthened in two distinct, yet partially super uous axioms ( 11 and 12).
Similarly we discovered that axiom 9 is weakened, from 8, which should be
reconsidered as we now have that O2 6j= F v J (J becoming a retired term).
The algorithm to compute the di and its categories is straightforwardly
derivable from the de nitions in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and heavily relies on decision procedures for
entailments [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], justi cation nding [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], and module extraction algorithms [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Ecco is implemented in Java, based on the OWL API [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] (v3.2.4).1 The output of
a di is an XML le,2 containing the axioms in the di (in Manchester syntax)3
and their respective categories. In order to present this output in a more
sensible way, and allow user interaction with the output, we use XSLT4 to transform
the XML le into HTML, which, together with the supplied JavaScript5 le,
produces a hands-on front-end to the categorised change set.
      </p>
      <p>The entry point to the di on the web is shown in Figure 1, wherein users can
supply URL's for the ontologies, or browse for ontology les in the local system.
Using the command-line version of Ecco, users have further optional arguments:
-r Analyze the root ontologies only, not any of their imports
-s Save the categorical sets as OWL ontologies
-o Output the change sets to the speci ed directory
-n Normalize entity URIs. I.e. if two ontologies have the same entity names in
a di erent namespace, this ag establishes a common namespace
-i Ignore Abox axioms
-v -version Print version information and exit
-h -help Print help message</p>
      <p>The output of both implementations is the same; the XML change set with
its transformation into HTML. The resulting webpage allows users to browse
through the change set by focusing on general categories (e.g., additions or
effectual changes only) or more speci c ones (e.g., weakenings). The webpage
derived from the di example in Section 3.1 is shown in Figure 2. The basic layout
displays removals on the left-hand side, in red, and additions on the right-hand
side, in green. The top level links and buttons allow users to, accordingly, get
the source XML le, show or hide all changes, and adjust entity rendering
according to entity names, entity labels (rdfs:label), or gensyms. The latter can be
used to mask entity names by replacing them with shorter symbols, which, in
cases where entity names or labels are too big, reduces the amount of on-screen
information, making pattern analysis easier. In the change summary we present
a hierarchical structure of the categories, and the number of changes in each
of them. Additionally there are help buttons to help the user understand what
each category represents.</p>
      <p>From this point onwards, users can select what kind of changes to focus on,
having triggers available to inspect, and navigate to speci c categories; e.g., in
Figure 3 we have focused on strengthened axioms. In this gure we see on the
left-hand side the removed axioms, while on the right-hand side, this being an
ine ectual change, we present the justi cations for each change (note that there
1 http://owlapi.sourceforge.net/
2 http://www.w3.org/XML/
3 http://www.w3.org/TR/owl2-manchester-syntax/
4 http://www.w3.org/TR/xslt
5 https://developer.mozilla.org/en/JavaScript
can be more than one justi cation, such as change with ID 6). Furthermore the
tool ags those axioms that are shared between both ontologies.</p>
      <p>Consider Figure 4, where we have focused on e ectual additions, speci
cally strengthenings and new descriptions. In categories involving new or retired
terms, such as new or retired descriptions, these are appropriately revealed
below the axiom, as shown in Figure 4. In the case of strengthenings there is a
one-to-one alignment between target and source axioms, i.e., the change and
what it is a change of.</p>
      <p>Fig. 4: Select categories of e ectual additions between O1 and O2.
We have presented the di tool Ecco, and shown how its categorisation and
presentation of change sets facilitates change analysis. By means of this
categorisation we can group changes according to their impact, allowing users to
shift their attention to speci c types of changes, rather than going through an
unstructured change set while inspecting both ontologies. Moreover, with the
alignment of changes between ontologies we can show the changed axioms and
what they are a change of. Consequently, by analysing changes in this way, one
can conceivably avoid examining the actual ontologies. Ecco is available as a
web-based application, allowing users to compare ontologies with no installation
necessary. When speci c requirements come into play (e.g., increased Java heap
space, or tool-speci c options), the standalone version of Ecco would be most
appropriate, enabling more advanced features.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F</given-names>
          </string-name>
          . (eds.):
          <article-title>The Description Logic Handbook: Theory, Implementation, and Applications</article-title>
          . Cambridge University Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Cuenca</given-names>
            <surname>Grau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Kazakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Sattler</surname>
          </string-name>
          ,
          <string-name>
            <surname>U.</surname>
          </string-name>
          :
          <article-title>Modular reuse of ontologies: Theory and practice</article-title>
          .
          <source>J. of Arti cial Intelligence Research</source>
          <volume>31</volume>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Cuenca</given-names>
            <surname>Grau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Motik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Parsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Patel-Schneider</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Sattler</surname>
          </string-name>
          ,
          <string-name>
            <surname>U.</surname>
          </string-name>
          :
          <article-title>OWL 2: The next step for OWL</article-title>
          .
          <source>J. of Web Semantics</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Goncalves</surname>
            ,
            <given-names>R.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Categorising logical di erences between OWL ontologies</article-title>
          .
          <source>In: Proc. of CIKM-11</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The OWL API: A Java API for working with OWL 2 ontologies</article-title>
          .
          <source>In: Proc. of OWLED-09</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>A tableaux decision procedure for SHOIQ</article-title>
          .
          <source>J. of Automated Reasoning</source>
          <volume>39</volume>
          ,
          <issue>249</issue>
          {
          <fpage>276</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Jimenez-Ruiz</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuenca Grau</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berlanga</surname>
            <given-names>Llavori</given-names>
          </string-name>
          , R.:
          <article-title>Supporting concurrent ontology development: Framework, algorithms and tool</article-title>
          .
          <source>Data and Knowledge Engineering</source>
          <volume>70</volume>
          (
          <issue>1</issue>
          ) (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
          </string-name>
          , E.:
          <article-title>Finding all justi cations of OWL DL entailments</article-title>
          .
          <source>In: Proc. of ISWC/ASWC-07</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuenca Grau</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
          </string-name>
          , J.:
          <article-title>Swoop: A Web ontology editing browser</article-title>
          .
          <source>J. of Web Semantics</source>
          <volume>4</volume>
          (
          <issue>2</issue>
          ) (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Konev</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walther</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>The logical di erence problem for description logic terminologies</article-title>
          .
          <source>In: IJCAR-08</source>
          . vol.
          <volume>5195</volume>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kremen</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , Sm d, M.,
          <string-name>
            <surname>Kouba</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>OWLDi : A practical tool for comparison and merge of OWL ontologies</article-title>
          .
          <source>In: Proc. of DEXA-12</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Malone</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Holloway</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Adamusiak</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapushesky</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zheng</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolesnikov</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhukova</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brazma</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parkinson</surname>
            ,
            <given-names>H.E.</given-names>
          </string-name>
          :
          <article-title>Modeling sample variables with an experimental factor ontology</article-title>
          .
          <source>Bioinformatics</source>
          <volume>26</volume>
          (
          <issue>8</issue>
          ),
          <volume>1112</volume>
          {
          <fpage>1118</fpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>OWL 2 Web Ontology Language: Structural Speci cation and Functional-Style Syntax</article-title>
          .
          <source>W3C Cand</source>
          . Rec. (
          <issue>11 June 2009</issue>
          ), http://www.w3.org/TR/2009/CR-owl2
          <string-name>
            <surname>-</surname>
          </string-name>
          syntax-20090611/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>