<!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>A Prot e´g e´ Plug-In for Test-Driven Ontology Development</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Konstantin Schekotihin, Patrick Rodler, Wolfgang Schmid</string-name>
          <email>firtstname.lastname@aau.at</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthew Horridge, Tania Tudorache</string-name>
          <email>lastname@stanford.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Stanford University</institution>
          ,
          <addr-line>1265 Welch Rd, Stanford, California</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of Klagenfurt, Universita ̈tsstr.</institution>
          <addr-line>65-67, Klagenfurt</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>7</fpage>
      <lpage>10</lpage>
      <abstract>
        <p>-Ontology development is a hard and often errorprone process, which requires ontology authors to correctly express their domain knowledge in a formal language. One way to ensure the quality of the resulting ontology is to use test cases, similarly to the best practices in software development. For ontology development, test cases can be specified as statements describing expected and/or unwanted logical consequences of an ontology. However, verifying the test cases and identifying the ontology parts that cause their violation is a complex task, which requires appropriate tool support. In this demo, we present OntoDebug-a plug-in for the Prote´ge´ editor-that supports test-driven ontology development. OntoDebug can automatically verify whether the ontology satisfies all defined test cases. If any test case is violated, the plug-in assists the user in debugging and repairing the ontology in an interactive way. The plug-in asks a series of questions about the ontology to pin point the faulty axioms. Once a fault is repaired, all answers that the author provided in the interactive debugging session, may be converted into test cases, thus preserving the additional knowledge, which can be used in future testing of the ontology.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. TEST-DRIVEN ONTOLOGY DEVELOPMENT</title>
      <p>
        Semantic applications, especially in biomedicine, depend
on high-quality ontologies. Prior studies in psychology found
that it is generally hard for humans to formulate correct
logical descriptions [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. More recent studies indicate that this
observation holds also in the context of ontology development,
and that available ontology editing tools lack appropriate
support for quality assurance [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Test-driven ontology development is a paradigm that has
its roots in the best-practices of software development. The
main idea is to enable ontology authors to specify test cases
to ensure the correctness of the ontology with respect to
the intended meaning. Each test case is represented as an
ontology axiom, and describes some required or unwanted
logical consequence of the ontology.</p>
      <p>
        Rector et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] identified several unintended consequences
in a study of SNOMED CT, for example, “feet are a part
of pelvis”, or “diabetes is a disease of the abdomen”. Such
unintended consequences, rooted in faulty modeling, can be
prevented by using a test-driven development approach. For
the first example (“feet are a part of pelvis”), a developer may
add test cases ensuring that different body regions are disjoint
and, thus, find a modeling error: “The dorsalis pedis artery is a
part of the abdomen and pelvis.” The verification of test cases
as well as the localization and repair of axioms causing their
violation is very difficult without appropriate tool support.
      </p>
    </sec>
    <sec id="sec-2">
      <title>II. THE ONTODEBUG PROT E´G E´ PLUG-IN</title>
      <p>To address this tooling gap, we developed the OntoDebug
Prote´ge´ plug-in.1 It supports the test-driven development of
ontologies, and can be installed from the standard plug-ins
repository directly in the editor. The user interface of the
plugin is shown in Fig. 1. The functionality of OntoDebug can be
summarized as follows:</p>
      <p>a) Test-driven Development: Ontology authors define
test cases in the Original Test Cases window (Fig. 1, view
5). The window has two sections: (1) Entailed Test Cases, in
which users define expected inferred axioms of the intended
ontology; and (2) Non Entailed Test Cases, in which users
specify axioms that must never be inferred. For the
specification of test cases it can be helpful to browse the ontology,
which can be done in the Possibly Faulty Axioms window
(Fig. 1, view 3).</p>
      <p>By default, all ontology axioms are viewed as potential
sources of fault. However, the ontology author can move an
axiom from the Possibly Faulty Axioms to the Correct Axioms
(Fig. 1, view 6), if the axiom is assumed or known to be
correct, and the plug-in should never consider it as faulty.</p>
      <p>The Start/Restart button triggers the verification of all test
cases. If any test case is violated, the plug-in starts a debugging
session automatically.</p>
      <p>
        b) Debugging of Ontologies: OntoDebug implements
several ontology debugging algorithms [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which
enable efficient localization of faulty axioms responsible for
test case failures. The result of running the debugging
algorithm is shown in the Possible Ontology Repairs window
(Fig. 1, view 4). An ontology repair from the displayed repair
list is a set of axioms that should be changed in order to
make all test cases hold. The debugging algorithms use the DL
reasoner extensively—for example, to check the consistency of
an ontology, or to compute the list of inferred axioms. As the
performance of reasoners may vary for different ontologies,
1See http://isbi.aau.at/ontodebug for the source code and documentation.
we implemented reasoner-independent debugging techniques
that can use any reasoner available in Prote´ge´, such as Pellet
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] or Hermit [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        c) Interactive Debugging: The defined test cases are
often insufficient to localize the faulty axioms in the ontology.
In such a case, the debugger might return several alternative
repairs. OntoDebug will help the ontology author find the
optimal repair by asking the user a series of questions in
an interactive debugging session [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The questions are
generated automatically and ask the user whether some axioms
are logical consequences of the intended ontology or not. For
example, in Fig. 1 view 1, the plug-in asks the ontology author
if “KoalaWithPhD is a Koala”, and if “KoalaWithPhD is a
Person”. The user responds affirmatively to the first question,
and negatively to the second. The plug-in will then add the
user’s answers to the list of Acquired Test Cases (Fig. 1, view
2), and it will refine the set of repairs by removing those that
violate the newly acquired answers. The interactive process
continues until the developer finds a satisfactory repair.
d) Ontology Repair: After identifying the right repair
(i.e., the faulty axioms), the ontology author can do a dry run
of various modifications of these axioms on a copy of the
ontology. OntoDebug automatically tests the altered axiom(s)
against the specified test cases, and reports if, which and why
problems persist (Fig. 2). Once all test cases hold and the
ontology author is satisfied with the performed amendments,
the changes can be applied to the original ontology.
      </p>
      <p>e) Versatile Parametrization and Customization: The
performance of testing and diagnosis algorithms depends on
multiple factors, such as the reasoning complexity of the
developed ontology, the number of faulty axioms, and so on.
OntoDebug allows the ontology author to control the working
of the testing and debugging algorithms by customizing a
detailed set of parameters in a Preferences window. If the
proper parameters are selected, the performance improvements
can be significant.</p>
    </sec>
    <sec id="sec-3">
      <title>III. CONCLUSIONS</title>
      <p>In this demo, we will showcase the OntoDebug plug-in
with several use cases. We will demonstrate the different
capabilities of the tool, and walk the audience through a
complete debug and repair session.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>P. N.</given-names>
            <surname>Johnson-Laird</surname>
          </string-name>
          , “
          <article-title>Deductive reasoning</article-title>
          ,
          <source>” Annu Rev Psychol</source>
          , vol.
          <volume>50</volume>
          , pp.
          <fpage>109</fpage>
          -
          <lpage>135</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Vigo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bail</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Jay</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Stevens</surname>
          </string-name>
          , “
          <article-title>Overcoming the pitfalls of ontology authoring: Strategies and implications for tool design,”</article-title>
          <string-name>
            <given-names>Int. J.</given-names>
            <surname>Hum</surname>
          </string-name>
          .-Comput. Stud., vol.
          <volume>72</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>835</fpage>
          -
          <lpage>845</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rector</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Drummond</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Horridge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rogers</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Knublauch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Stevens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wroe</surname>
          </string-name>
          , “OWL Pizzas:
          <article-title>Practical Experience of Teaching OWL-DL: Common Errors</article-title>
          &amp; Common Patterns,” in EKAW, pp.
          <fpage>63</fpage>
          -
          <lpage>81</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rector</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brandt</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Schneider</surname>
          </string-name>
          , “
          <article-title>Getting the foot out of the pelvis: modeling problems affecting use of SNOMED CT hierarchies in practical applications</article-title>
          ,
          <source>” JAMIA</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>432</fpage>
          -
          <lpage>440</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Horridge</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          , and U. Sattler, “Laconic and Precise Justifications in
          <string-name>
            <surname>OWL</surname>
          </string-name>
          ,” in ISWC, pp.
          <fpage>323</fpage>
          -
          <lpage>338</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>K. M. Shchekotykhin</surname>
            , G. Friedrich,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Rodler</surname>
            , and
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Fleiss</surname>
          </string-name>
          , “
          <article-title>Sequential diagnosis of high cardinality faults in knowledge-bases by direct diagnosis generation</article-title>
          ,” in ECAI, pp.
          <fpage>813</fpage>
          -
          <lpage>818</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>K. M. Shchekotykhin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Jannach</surname>
          </string-name>
          , and T. Schmitz, “Mergexplain:
          <article-title>Fast computation of multiple conflicts for diagnosis,” in IJCAI</article-title>
          , pp.
          <fpage>3221</fpage>
          -
          <lpage>3228</lpage>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rodler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Schmid</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Schekotihin</surname>
          </string-name>
          , “
          <article-title>Inexpensive cost-optimized measurement proposal for sequential model-based diagnosis</article-title>
          ,” in DX Workshop, pp.
          <fpage>200</fpage>
          -
          <lpage>218</lpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Sirin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Parsia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. C.</given-names>
            <surname>Grau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kalyanpur</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Katz</surname>
          </string-name>
          , “
          <article-title>Pellet: A practical OWL-DL reasoner,”</article-title>
          <string-name>
            <given-names>J. Web</given-names>
            <surname>Sem</surname>
          </string-name>
          ., vol.
          <volume>5</volume>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>53</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>B.</given-names>
            <surname>Motik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Shearer</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Horrocks</surname>
          </string-name>
          , “
          <article-title>Hypertableau Reasoning for Description Logics,” JAIR</article-title>
          , vol.
          <volume>36</volume>
          , pp.
          <fpage>165</fpage>
          -
          <lpage>228</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>K. M. Shchekotykhin</surname>
            , G. Friedrich,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Fleiss</surname>
            , and
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Rodler</surname>
          </string-name>
          , “
          <article-title>Interactive ontology debugging: Two query strategies for efficient fault localization,”</article-title>
          <string-name>
            <given-names>J. Web</given-names>
            <surname>Sem</surname>
          </string-name>
          ., vol.
          <volume>12</volume>
          , pp.
          <fpage>88</fpage>
          -
          <lpage>103</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>P.</given-names>
            <surname>Rodler</surname>
          </string-name>
          , “
          <article-title>Interactive Debugging of Knowledge Bases,”</article-title>
          <source>Ph.D. thesis, Alpen-Adria Universita¨t Klagenfurt</source>
          ,
          <year>2015</year>
          . [Online]. Available: http://arxiv.org/pdf/1605.05950v1.pdf
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>