<!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>Satisfiability Model Visualization Plugin for Deep Consistency Checking of OWL Ontologies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Martins Barinskis</string-name>
          <email>martins.barinskis@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Guntis Barzdins</string-name>
          <email>guntis.barzdins@mii.lu.lv</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Mathematics and Computer Science University of</institution>
          <country country="LV">Latvia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We present an original Prot´eg´e plugin developed for the deep consistency checking of OWL ontologies. The plugin constructs and visualizes a minimal satisfiability model of the ontology, which is likely to uncover potential ontological errors: if the constructed model contradicts the author's intentions, then the ontology itself is either wrong or incomplete. A satisfiability model is generated using Mace4 , a first-order logic (FOL) finite model builder, from the FOL formulas corresponding to the OWL ontology definition. The constructed satisfiability model is visualized using an original music score notation plugin of Prot´eg´e.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The ontology satisfiability is a property that indicates whether all classes defined
in the ontology are satisfiable. A class is deemed to be unsatisfiable if it cannot
possibly have any instances [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Satisfiability implies consistency.
      </p>
      <p>
        The problem of checking consistency (i.e., finding the existence of a model)
of an arbitrary FOL formula is not decidable. However, for the description logic
fragments of FOL, on which OWL DL (SHOIN) and OWL 1.1 (SROIQ) are
based, satisfiability (consistency) checking is decidable [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The only
“inconvenience” with these description logic fragments is that in some cases their only
satisfiability (consistency) model can turn out to be infinite [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This is not
a problem for the tableau algorithm at the heart of FaCT++[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and Pellet[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]
reasoners, which wind this infinite model into a finite structure. However, a
consequence of this “inconvenience” is that FaCT++ and Pellet reasoners do not
generate the actual satisfiability (consistency) model.
      </p>
      <p>Meanwhile it would be problematic to use a consistent ontology with only
infinite satisfiability model in the Semantic Web context - no finite set of
individuals (raw RDF data) would ever satisfy conditions of such ontology. Therefore
further we consider only ontologies with finite satisfiability models.</p>
      <p>
        The Prot´eg´e plugin described in this paper [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] uses Mace4 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], a generic
FOL finite model builder, to generate and visualize a minimal finite
satisfiability model of an ontology. The proposed approach complements the traditional
ontology debugging tools[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]: if the automatically constructed minimal model
contradicts the author’s intentions, the ontology itself is either wrong or incomplete.
      </p>
      <p>Ontology Description Using First-Order Logic
To illustrate our approach, let us consider a simple pizza ontology mapped to
first-order logic predicates, both shown side-by-side:</p>
      <sec id="sec-1-1">
        <title>Ontology(</title>
        <p>Class(Pizza partial
restriction(hasTopping
someValuesFrom(PizzaTopping))
owl:Thing)
formulas(sos).
(all a Pizza(a)-&gt;
(exists b PizzaTopping(b)
&amp; hasTopping(a,b)))
&amp; (all x MeatyPizza(x)-&gt;Pizza(x))
&amp; (all a MeatyPizza(a) -&gt;
(exists b MeatTopping(b)
&amp; hasTopping(a,b)))
&amp; (all x CheeseOnlyPizza(x)-&gt;Pizza(x))
&amp; (all a CheeseOnlyPizza(a)-&gt;(exists b</p>
        <p>CheeseTopping(b) &amp; hasTopping(a,b)))
&amp; (all a all b CheeseOnlyPizza(a)
&amp; hasTopping(a,b)-&gt;CheeseTopping(b))</p>
      </sec>
      <sec id="sec-1-2">
        <title>Class(MeatyPizza partial restriction(hasTopping someValuesFrom(MeatTopping)) Pizza)</title>
        <p>Class(CheeseOnlyPizza partial
restriction(hasTopping
someValuesFrom(CheeseTopping))
Pizza
restriction(hasTopping</p>
        <p>allValuesFrom(CheeseTopping)))
Class(PizzaTopping partial</p>
        <p>owl:Thing)
Class(CheeseTopping partial</p>
        <p>PizzaTopping)
Class(MeatTopping partial</p>
        <p>PizzaTopping)
DisjointClasses(CheeseTopping</p>
        <p>MeatTopping)
The FOL syntax shown in the above listing is accepted by Mace4 , a FOL model
builder. It constructs a minimal (in the number of individuals) satisfiability
model for our ontology.</p>
        <p>
          For the FOL formula shown above as input, Mace4 yields the following output
(irrelevant lines have been stripped out):
interpretation( 4, [number=1, seconds=0], [
relation(CheeseOnlyPizza(_), [
          <xref ref-type="bibr" rid="ref1">0, 0, 0, 1</xref>
          ]),
relation(CheeseTopping(_), [
          <xref ref-type="bibr" rid="ref1">0, 1, 0, 0</xref>
          ]),
relation(MeatTopping(_), [
          <xref ref-type="bibr" rid="ref1">0, 0, 1, 0</xref>
          ]),
relation(MeatyPizza(_), [
          <xref ref-type="bibr" rid="ref1">1, 0, 0, 0</xref>
          ]),
relation(Pizza(_), [
          <xref ref-type="bibr" rid="ref1 ref1">1, 0, 0, 1</xref>
          ]),
relation(PizzaTopping(_), [
          <xref ref-type="bibr" rid="ref1 ref1">0, 1, 1, 0</xref>
          ]),
relation(hasTopping(_,_), [
          <xref ref-type="bibr" rid="ref1 ref1 ref1">0, 1, 1, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 1, 0, 0</xref>
          ])
]).
        </p>
        <p>This result shows that the minimal model is of size 4, i.e., the satisfiability model
of the given ontology consists of 4 individuals, a1, a2, a3 and a4. From Mace4
output one can see that, for example, individual a2 belongs to classes
CheeseTopping and PizzaTopping, while relation hasTopping is established between
individual pairs a1 − a2, a1 − a3 and a4 − a2.
4</p>
        <p>Satisfiability Model Visualization
The satisfiability model created with Mace4 can be visualized using an original
“music score notation” shown in fig. 1, which in our opinion is rather intuitive for
the debugging purposes. In this notation classes (gray) and individuals (green)
are visualized as lines that are interconnected by the notes representing the
predicates (relations) between the individuals (red) or between individuals and
classes (blue). The roles (domain, range) of the predicate (relation) arguments
could be written on the legs of the notes (useful for n-ary predicates), but is
omitted in fig. 1 for the sake of intelligibility.</p>
        <p>The visualization is implemented as a plugin for the popular ontology editor
Prot´eg´e. It forms the FOL formula from the OWL ontology currently being
edited, passes it to the Mace4 model builder, retrieves the satisfiability model
and finally visualizes it.
5</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Conclusions and Further Work</title>
      <p>
        The proposed approach complements the traditional ontology debugging tools
with the possibility to identify ontologies that have trivial models (under-constrained
ontologies). With the introduction of more feature-rich ontology languages, such
as OWL 1.1 or even larger subsets of FOL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], the usefulness of such automated
debugging tools is likely to grow.
type
type
type
type
type
type
type
hasTopping
hasTopping
hasTopping
An obvious limitation of the proposed approach is the scalability in terms of
the model size both for Mace4 model builder and for the “music score notation”
to still be useful. The Mace4 scaling issue could be addressed by extending the
native FaCT++ or Pellet reasoners with the model generation functionality (for
cases when the model is determined to be finite). The “music score notation”
visualization could be complemented with filtering options to limit the amount
of concurrently displayed information.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          :
          <article-title>Reducing owl entailment to description logic satisfiability</article-title>
          .
          <source>LNCS (2870)</source>
          (
          <year>2003</year>
          )
          <fpage>17</fpage>
          -
          <lpage>29</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kutz</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>The even more irresistible sroiq</article-title>
          .
          <source>In: KR</source>
          <year>2006</year>
          , AAAI Press (
          <year>2006</year>
          )
          <fpage>57</fpage>
          -
          <lpage>67</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Finite model reasoning in description logics</article-title>
          .
          <source>In: Proceedings of the Fifth International Conference on the Principles of Knowledge Representation and Reasoning (KR'96)</source>
          , Morgan Kaufmann, Los Altos (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>4. OWL: Fact++. http://owl.man.ac.uk/factplusplus/</mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Pellet</surname>
          </string-name>
          :
          <article-title>An open source owl-dl reasoner in java</article-title>
          . http://pellet.owldl.com/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Barinskis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barzdins</surname>
          </string-name>
          , G.:
          <article-title>Satisfiability model visualizer for prot´eg´e</article-title>
          . http://apps.lumii.lv/satmodviz/index.html
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>McCune</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>Mace4 reference manual and guide</article-title>
          .
          <source>Technical Report 264</source>
          , Mathematics and Computer Science Division, Argonne National Laboratory, Argonne National Laboratory, 9700 South Cass Avenue, Argonne, IL
          <volume>60439</volume>
          (
          <year>August 2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <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>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Debugging owl ontologies</article-title>
          .
          <source>In: WWW'05</source>
          , ACM Press (
          <year>2005</year>
          )
          <fpage>633</fpage>
          -
          <lpage>640</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Voronkov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Reasoning support for expressive ontology languages using a theorem prover</article-title>
          . In: FoIKS. Number 3861 in
          <string-name>
            <surname>LNCS</surname>
          </string-name>
          (
          <year>2006</year>
          )
          <fpage>201</fpage>
          -
          <lpage>218</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>