<!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>Antipattern Detection: How to Debug an Ontology without a Reasoner</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Catherine Roussey</string-name>
          <email>catherine.roussey@irstea.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ondrej Zamazal</string-name>
          <email>ondrej.zamazal@vse.cz</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Irstea</institution>
          ,
          <addr-line>24 Av. des Landais, BP 50085, 63172 Aubiere</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Knowledge Engineering Group, University of Economics Prague</institution>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <fpage>45</fpage>
      <lpage>56</lpage>
      <abstract>
        <p>In ontology design, an Ontology Design Pattern (ODP) is a modeling solution to a recurrent ontology design problems. As opposed to ODP, antipatterns are bad modeling practices. This paper deals with detection of antipattern for debugging purpose of huge ontologies. We focus on the detection of the Onlyness Is Loneliness (OIL) antipattern. We propose an antipattern detection method based on ontology transformations and SPARQL queries. This approach does not need reasoner to detect antipattern. Our method detects candidates of OIL antipattern. These candidates localize class de nitions where OIL occurrences can appear. This enables to draw ontology developer's attention to avoid errors during ontology development process. We conduct some experiments to detect OIL antipattern in an OWL ontology corpus obtained from the Watson ontology search engine.</p>
      </abstract>
      <kwd-group>
        <kwd>OWL</kwd>
        <kwd>OWL-DL</kwd>
        <kwd>ontology</kwd>
        <kwd>ontology pattern</kwd>
        <kwd>antipattern</kwd>
        <kwd>SPARQL</kwd>
        <kwd>ontology transformation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        In ontology design an Ontology Design Pattern (ODP) is a modeling solution
to a recurrent ontology design problems as de ned in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. As opposed to ODP,
antipatterns are bad modeling practices implemented in ontologies.
Antipatterns produce the side e ect of inferring wrong or undesired knowledge or of
preventing the capabilities to infer the desired knowledge [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. First, ontology
antipatterns might help with guiding and training new ontology developers
(educational purpose). Second, antipatterns can be directly used for ontology design
purpose since ontology designers could take advantage of antipattern detection
using some ontology editor during ontology development. Finally, detection of
ontology antipatterns can contribute to ontology quality assessment.
      </p>
      <p>
        In our previous work we rst published our catalogue of antipatterns [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
We have also provided some recommandations about ontologies repairing
processes based on the antipattern detection. These patterns basically resulted in
unsatis able classes or modeling errors due to the misuse or misunderstanding of
Description Logics (DL) expressions. In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] we proposed a general approach of
antipattern detection based on SPARQL queries which was applied on selected
antipatterns from the catalogue [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The motivation for the work presented in this paper was twofold. On the
one side, in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] we show that each antipattern needs its own speci c detection
method. On the other side, reasoners might have troubles to tackle ontologies
with complex axioms. But, reasoner output is usually prerequisite for a detection
of complex antipatterns. Therefore, here we come up with an extension of our
general detection method for one speci c antipattern and in the situation that we
cannot apply a reasoner. Instead of reasoner we apply ontology transformation
pre-processing step and we evaluate it on one of the most complex antipatterns
from our catalogue, Onlyness Is Loneliness ( OIL) antipattern. Transformation
have several goals: harmonization of ontology developer's implementation style,
simulation of reasoner inferences and simpli cation of class de nition axioms.
It enables us to detect candidates of OIL antipattern. They are localized in
class de nitions where OIL occurrences can appear. Thus, they draw ontology
developer's attention so that (s)he can avoid errors arised during ontology
development process. We conduct some experiments to detect OIL antipattern in
an OWL ontology corpus obtained from the Watson ontology search engine.3
      </p>
      <p>The rest of the paper is structured as follows. Next section gives a brief
overview of ontology design patterns and antipatterns for ontology development.
Section 3 describes the OIL antipattern that is used to run our experiments.
Next, Section 4 describes the detection method and our transformation rules.
Section 5 describes the experiment setup and the results of the experimentation.
Finally, Section 6 wraps up the paper by providing conclusions and future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        From Regarding educational purpose of bad modeling practices in DL, authors
in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] describe common di culties in understanding of the logical meaning of
expressions for newcomers to DL. Explicit antipatterns are then proposed in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
presenting a catalogue of antipatterns based on DL expressions and proposing
some recommendations on how to repair them.
      </p>
      <p>
        To the best of our knowledge research in antipatterns are mainly connected to
ontology debugging task. One of the earliest work was the OntoClean method [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ],
which de ned a set of meta-properties applied to classes and a set of procedures
to check and correct the subsumption relations between classes. Other source of
antipatterns is [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], where authors proposed four terminological patterns applied
on class names to detect possible errors along taxonomy. Next, the OntOlogy
Pitfalls Scanner (OOPS) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] enables an ontology developer to detect common
pitfalls during the development of ontology.
      </p>
      <p>
        There are several tools which can be used for antipattern detection. They
are mostly available inside ontology editors and require the use of a reasoner to
provide their justi cations. For instance Pellint [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] focuses on the detection and
3 http://watson.kmi.open.ac.uk/
repair of antipatterns to improve ontology reasoning performance. The Protege
Explanation Workbench [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and SWOOP [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] provide justi cations of
inconsistencies in ontologies based on the output from DL reasoners. SWOOP has also
a repair plug-in to help user during the debugging process [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. However, using
a reasoner for this purpose is not always possible, since in some big ontologies
reasoners fail to provide any result [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Furthermore, the antipatterns repertory
that these tools can detect is xed.
      </p>
      <p>
        Next, Ontology Pre-processor Language (OPPL) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] enables pattern-based
manipulation with ontologies. Authors of [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] describe an experiment using
OPPL to detect ontology design patterns in a repository of biomedical
ontologies. They also use transformations to harmonize the ontology, but their set of
transformations only normalize `syntactic sugar' conventions of OWL 2.
3
      </p>
      <p>\Onlyness Is Loneliness" (OIL) Antipattern
One of the most common error made by ontology developer is captured by
Onlyness Is Loneliness (OIL) antipattern. This antipattern can be manifested by
one of the following sets of DL axioms:</p>
      <p>C3 v 8r:C1; C3 v 8r:C2; Disj(C1; C2);
C3
C3
8r:C1; C3 v 8r:C2; Disj(C1; C2);
8r:C1; C3</p>
      <p>8r:C2; Disj(C1; C2);
C3 v 8r:C1 u 8r:C2; Disj(C1; C2);
C3
8r:C1 u 8r:C2; Disj(C1; C2);
(1)
(2)
(3)
(4)
(5)</p>
      <p>An OIL antipattern occurrence is de ned by two disjoint classes C1 and C2
and a third class C3 whose de nition contains two universal restrictions using a
property r. The rst universal restriction expresses that instances of C3 can only
be linked with r to instances of C1.4 The second one expresses that instances of
C3 can only be linked with r to instances of C2.</p>
      <p>Based on our experience the origin of this error is that an ontology developer
forgets that there is already a constraint about the class C3 using an universal
restriction and (s)he adds a new constraint about this class using another
universal restriction. Moreover, one of these constraints can be inherited from any
of the parent classes.</p>
      <p>
        This error is already mentioned in several works such as [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
the OIL antipattern is linked to the pitfall number 14, related to the misuse
of universal restriction. Notice that even if the OIL antipattern is declared as
Pitfall 14 in the catalogue of common pitfalls, the OntOlogy Pitfalls Scanner is
not yet able to detect it.
4 To be detectable, property r must have at least a value, normally speci ed as a
(minimum) cardinality restriction for that class, or with existential restrictions.
      </p>
      <p>Detection of OIL antipattern is a di cult task (similarly to other
antipatterns) due to various problems. First, antipatterns have various manifestations.
For example, we present above 5 logical formulae related to OIL but we could
imagine more formulae. Furthermore, ontology developers can have very
different implementation styles when designing an OWL ontology. For example,
some developers prefer to write long class de nitions. In that case, a class
is de ned by a conjunction of unnamed classes (or anonymous classes), e.g.,
C v (9R:X) u (8R:Y ). In that case parts of antipattern can also be located at
di erent places. Others can prefer to write short de nitions. A class is de ned
by a set of atomic axioms,5 e.g., C v 9R:X; C v 8R:Y . Each implementation
style corresponds to a di erent logical formula of the OIL antipattern. Finally,
we also have to consider that parts of the OIL antipattern can be asserted by
the ontology developer or inferred by a reasoner.
4</p>
    </sec>
    <sec id="sec-3">
      <title>OIL Antipattern Detection Method</title>
      <p>
        General detection approach was presented in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] based on SPARQL queries and
reasoner output. However, none of those presented methods gives signi cant
results for the OIL antipattern. Here, we describe a method aiming at detection of
OIL antipattern in OWL ontologies. The main objective of this new method is
to enable detection of OIL antipattern without reasoner output. As we
experienced during debugging/repairing of complex ontologies (e.g. HydrOntology) by
using the reasoner (e.g. Pellet)6 and the Explanation Workbench tool,7 applying
reasoner for the antipattern detection is not always possible. It turns out that
reasoner may fail to provide any results on complex ontologies. Generally, the
more the number of repaired axioms increases, the more time reasoner needs to
take in order to provide justi cations for unsatis able classes.
      </p>
      <p>
        This new method consists of two steps. First transformation rules are applied,
see Section 4.1, and then SPARQL query (or, in general, SPARQL queries), see
Section 4.2, is (are) executed using PatOMat ontology pattern detection tool, see
Figure 1.8 This tool is part of the PatOMat suite of tools, which is focused on
the pattern detection in ontologies and their transformations. This detection
tool is based on Jena 2.6.2 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and Pellet 2.0.1 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], and enables the processing
of a set of SPARQL queries over a set of ontologies in a batch. It produces a
report in terms of numbers of patterns detected and details for each ontology.
It processes either only asserted axioms or both inferred and asserted axioms of
given ontology.
      </p>
      <p>Our transformations have several objectives:
5 We de ned an atomic axiom as a constraint (necessary condition v or su cient
condition ) associated to a named class C using at most one DL constructor (8,
9, : or u) and its associated operands: one class and one property for 8, 9 and two
classes for u . All these classes should be named classes.
6 http://owl.cs.manchester.ac.uk/explanation/
7 http://owl.cs.manchester.ac.uk/explanation/
8 http://owl.vse.cz:8080/DetectionTool/
{ to decompose the class de nition to simpler set of atomic axioms,
{ to harmonize the di erent implementation styles of ontology developers,
{ to simulate inferences in order to avoid applying a reasoner.</p>
      <p>Our transformation rules only add new axioms and do not remove any
original axioms from the ontology. The transformation rules have to be applied in
the speci c order. The rules are incremental, which means that the new
axioms created by one transformation rule are already considered by a subsequent
transformation rule.</p>
      <p>
        According to [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], the use of a reasoner is mandatory to detect a disjoint
axiom. In this previous work, we tried to detect OIL antipattern with asserted
disjointness axioms. Since only few OIL occurrences were detected, we came up
with the following hypothesis:
Hypothesis On the one side the disjoint axiom of the OIL antipattern is di cult
to detect without a reasoner output and on the other side it turns out that
asserted disjoint axioms do not help in detection. Thus, we limit the detection
of OIL antipattern to the two rst atomic axioms:
      </p>
      <p>C3 v 8r:C1; C3 v 8r:C2;
(6)</p>
      <p>We de ned a class de nition that contains this set of axioms as an OIL
candidate.
4.1</p>
      <sec id="sec-3-1">
        <title>Applied Transformation Rules</title>
        <p>Here, we will explain our transformation rules one by one. For clarity purpose
the transformation rules presented in this section are merely dedicated to the
OIL detection. For the general antipattern detection, there is a larger set of
transformation rules.</p>
        <p>TR AC: Transformation of Anonymous Classes TR AC consists of the following
transformation rules:</p>
        <p>C v 8r:(X t Y ); ) C v 8r:Or X Y ; Or X Y
X t Y ;
C v 8r:(X u Y ); ) C v 8r:And X Y ; And X Y</p>
        <p>C v 8r:(9s:Z); ) C v 8r:Some S Z; Some S Z
C v 8r:(8s:Z); ) C v 8r:Only S Z; Only S Z
X u Y ;
9s:Z;
8s:Z;
C
8r:(X t Y ); ) C
:::
8r:Or X Y ; Or X Y</p>
        <p>X t Y ;
(7)
(8)
(9)
(10)
(11)</p>
        <p>The goal of this transformation is to name anonymous class in order to detect
any antipattern in new named class de nitions. Moreover, this transformation
removes brackets and shortens class de nitions. Some ontology developers write
long de nition of class using anonymous classes (or unnamed classes), e.g., as on
the left-hand-side of formulae above. To simplify the query of OWL ontologies,
class de nitions must be transformed in this way. Ideally, class de nitions are
only composed of atomic axioms, so we need to remove anonymous classes, e.g.
(X t Y ), (X u Y ) or (9s:Z). The antipattern can be located in the anonymous
class de nition so we need to create a named class for each of them. In order
to easily detect that these named classes come from the transformation rule we
apply the following naming convention, e.g., And X Y in the case of (X u Y ).</p>
        <p>In all, this transformation will be applied on each anonymous class in brackets
so that new named class will be created and will replace original anonymous class
in all axioms of the ontology. This new class will be de ned by the anonymous
class content and ideally correctly placed to the taxonomy, e.g. And X Y
X u Y should be a child class of X and of Y and Or X Y X t Y should be a
parent class of X and of Y .</p>
        <p>TR EA: Transformation of Equivalence Axioms TR EA consists of the following
transformation rule:</p>
        <p>CA</p>
        <p>CB; ) CA v CB; CB v CA;
(12)</p>
        <p>The symbol should be transformed into both-sided v, i.e. we create two
new axioms with the subClassOf relationship. This transformation is necessary
because each antipattern can be written with a or v symbol. Due to this
transformation rule we can just consider atomic axioms of the form C v ::: for
antipattern detection.</p>
        <p>In all, this transformation will be applied on all equivalence axioms according
to which new two subsumptions (subClassOf) axioms will be added.
TR Conj: Transformation of Conjunctions TR Conj consists of the following
transformation rules:</p>
        <p>C v 8r:X1 u ::: 9</p>
        <p>&gt;
u9r:X2 u ::: &gt;&gt;&gt;&gt;
u x r:&gt; u ::: &gt;&gt;&gt;=
u x r:&gt; u :::
u = x r:&gt; u ::: &gt;&gt;&gt;
uXi::: &gt;&gt;&gt;&gt;
uXn ;&gt;
)
8 C v 8r:X1;
&gt;&gt;&gt;&gt; C v 9r:X2
&gt;&gt;&gt;&gt;&lt;&gt;&gt;&gt;&gt; CC vv xx rr::&gt;&gt;;;</p>
        <p>C v= x r:&gt;;
&gt;&gt; :::;
&gt;
&gt;&gt;&gt;&gt; C v Xi;
&gt;&gt;&gt; :::;
&gt;
&gt;: C v Xn;</p>
        <p>An ontology developer has her/his own implementation style. Some of them
prefer to write long axioms using conjunction of anonymous classes. On the
contrary, others prefer to de ne lots of named classes in order to identify small
part of knowledge. Depending on the implementation style of the ontology
developer, the antipattern detection may be facilitated. For antipattern detection,
we recommend to split all the long axioms into several atomic axioms.</p>
        <p>In all, this transformation will be applied on conjunction of anonymous
classes so that it will be split into its components, e.g. C v 8r:X u 9r:Y will
generate two new axioms C v 8r:X and C v 9r:Y .</p>
        <p>TR PI: Transformation about Property Inheritance TR PI consists of the
following transformation rule:</p>
        <p>r1 v r;
CA v 8r1:CB; ) CA v 8r:CB;
(13)
(14)
(15)</p>
        <p>The ontology developer can forget that (s)he has de ned a property r1 as a
subproperty of another one, r. Thus, for each axiom using the subproperty r1 we
need to add a redundant axiom using the parent property r. This transformation
is applied along the whole taxonomy of properties. The new axiom changes the
semantics of the ontology. Thus, it should be added only if the class CA is already
de ned by a universal restriction using the r property in order to check that there
is no con ict between di erent universal restrictions using r.</p>
        <p>TR CI: Transformation about Class Inheritance TR CI consists of the following
transformation rule:</p>
        <p>CB v CA; CA v 8r:Y ; ) CB v 8r:Y ;</p>
        <p>The main purpose of this transformation is to simulate reasoning so that all
subclasses inherit all (asserted) constraints from their parents. It is applied at
the end of the transformation process because we want to inherit all previously
added (due to the application of other transformation rules) axioms as well.
4.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>SPARQL Query</title>
        <p>According to Figure 1 SPARQL query, by using PatOMat detection tool, is
performed after application of transformations. The following query retrieves
OIL candidates de ned by equation 6:
PREFIX rdf: &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
PREFIX owl: &lt;http://www.w3.org/2002/07/owl#&gt;
SELECT DISTINCT ?c3 ?r ?c1 ?c2
WHERE
{ ?c3 rdfs:subClassOf _:restrictionA1.
_:restrictionA1 rdf:type owl:Restriction.
_:restrictionA1 owl:onProperty ?r.
_:restrictionA1 owl:allValuesFrom ?c1.
?c3 rdfs:subClassOf _:restrictionB1.
_:restrictionB1 rdf:type owl:Restriction.
_:restrictionB1 owl:onProperty ?r.
_:restrictionB1 owl:allValuesFrom ?c2.</p>
        <p>FILTER
( isURI(?c1) &amp;&amp; isURI(?c2) &amp;&amp; isURI(?c3) &amp;&amp; ?c1!= ?c2 )
}
ORDER BY ?c3 ?r ?c1</p>
        <p>The query nds a class ?c3 de ned by two universal restrictions using the
same property ?r. The rst restriction is linked to the ?c1 class, the second one
is linked to the ?c2 class. As shown in the lter part of the query, all the class
variables (?c3, ?c1, ?c2) should be named classes.</p>
        <p>OIL candidates localize class de nitions where OIL antipattern occurrences
can appear. Thus, these candidates draw ontology developer's attention to avoid
errors arised during long ontology development process.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Experimentation: Finding Antipatterns in Real-world</title>
    </sec>
    <sec id="sec-5">
      <title>Ontologies</title>
      <p>In this section, we describe the results of our experiments with a corpus of
ontologies downloaded directly from the Web and by the Watson semantic search
engine. We will rst describe how we have built the ontology corpus, and then
we present the results of applying our detection method from Section 4 over this
ontology corpus.
5.1</p>
      <sec id="sec-5-1">
        <title>Building a Corpus of (Debuggable) OWL Ontologies</title>
        <p>
          We have used the Watson API [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] to retrieve publicly available ontologies and
we have always accessed these ontologies using the Watson cache, since there
are sometimes mismatches between the stored URIs of those ontologies and the
actual les that can be obtained. We searched ontologies satisfying the following
two constraints: they should be represented in OWL and they should have at
least ve classes. We collected 66 inconsistent ontologies. From these ontologies
we have selected ontologies that cannot be classi ed by Pellet in a reasonable
time. Using PatOMat, we queried and processed several sets of ontologies at
the same time. We materialized the inferred axioms using Pellet and then we
queried the resulting ontologies with a OIL query.9 If Pellet could not classify
the ontology or if the classifying process took more than 10 seconds, the ontology
was used for our experimentation. 10
        </p>
        <p>
          Table 1 presents the ontologies used for our experimentation. For each
ontology, this table indicates: its number of classes, information whether Pellet can
classify it or not, the time which classi cation process by Pellet takes, its number
of unsatis able classes. The last column indicates if the ontology was debugged
or not. We use the Explanation Workbench tool [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] to debug these ontologies.
This tool provides for each unsatis able class the minimal set of axioms in which
the class is unsatis able. Regarding repairing process we do not simply remove
problematic axioms. Our repairing process is rather collaborative task between
a DL expert and a domain expert, i.e. the DL expert identi es what the domain
expert wants to express and proposes the correct DL axioms capturing intended
domain knowledge. When an ontology is debugged it means that we know the
total number of OIL occurrences.
Evaluation of Antipattern Detection Precision The precision of the OIL
candidate detection process was evaluated. One evaluator analyzed the SPARQL
results and assigned to each OIL candidate one of the following values:
{ TI (True positive Inconsistency): the evaluator is sure that the OIL
candidate participates in the unsatis ability of classes.
9 This query is looking for the RDF representation of the OIL antipattern expressed
by the equation number 1 in section 3
10 All of these ontologies are available from [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
{ UI (Unknown Inconsistency): the evaluator is not able to take a decision.
{ FI (False positive Inconsistency): the evaluator is sure that the OIL
candidate does not participate in the unsatis ability of classes.
5.3
        </p>
      </sec>
      <sec id="sec-5-2">
        <title>Results of OIL candidate detection</title>
        <p>Due to the symmetric property of OIL candidate11, the query identi es an OIL
candidate twice. Table 2 presents the query results and the evaluation results.
The rst column indicates the total number of OIL candidates found by the
query. The next columns indicate the number of TI, UI and FI from the OIL
candidates decided by the evaluator.</p>
        <p>All the FI we found in the query results come from the fact that: (1) c1 and
c2 are linked by a subClassOf relationship; (2) the c1 class is built by the TR
AC transformation rule, and c2 class is one of the named classes used in the c1
de nition. For example, there is the following OIL candidate in the results from
the Hydrontology: c3 = P oza; r = parte de; c1 = OR Lago Rio; c2 = Rio.
set
HydrOntology
Tambis
inconsistent 613
inconsistent 623
Open Cyc
Proteonic
CSNCS</p>
        <p>In the case of HydrOntology all the OIL antipattern occurrences were
retrieved by our query. In the case of Tambis ontology, it does not contain any
OIL antipattern occurrences. But thanks to the OIL candidates retrieved by the
query, some dangerous classes de nitions are detected because there exist two
universal restrictions with sibling classes (these sibling classes are not inferred
as disjoint classes so that there is no OIL antipattern). For example, we found:
c3 = gene product; r = polymer of ; c1 = ribo nucleotide; c2 = amino acid.
Such results were tagged as UI by the evaluator.</p>
        <p>The inconsistent 623 and 613 ontologies were debugged and they do not
contain any OIL antipattern occurrences. These ontologies contain only one
unsatis able class that is very di cult to debug due to the presence of transitive
and inverse properties. In the case of the inconsistent 623 ontology, the detected
OIL candidates identify one of the class involved in the class unsatis ability.
11 C1 and C2 can be switched in the equation 6.</p>
        <p>Proteonic ontology was not yet debugged. The OIL candidates retrieved by
the query identify some dangerous classes because there exist some OIL
candidates, e.g. c3 = collection; r = direct part of ; c1 = collection; c2 = element.
These results were tagged as UI by the evaluator.</p>
        <p>CSNCS ontology imports several ontologies. It imports the DUL ontology
which describe classes using lots of universal restrictions. All the OIL candidates
contains some DUL classes like Entity, Object, Social Object. This ontology also
imports several large ontologies, e.g. the DOLCE Ultra Light ontology, which
leads to many OIL candidates detected by the query.</p>
        <p>Results from Table 2 are encouraging, because OIL candidates may be useful
to detect error or dangerous class de nitions. Using a list of transformations and
a simple SPARQL query is su cient for detecting complex antipattern like OIL
one, even on large ontology that cannot be processed by a reasoner. Moreover
during long development process it is useful to detect OIL candidates in order
to localize dangerous class de nitions where an error can often occur.</p>
        <p>
          In this experimentation we have validated the fact that transformation
processes and simple SPARQL queries are su cient for detection some OIL
antipattern without a reasoner. Note that in our previous work [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], the previous
detection method based on reasoner output and using SPARQL queries were
not able to detect any OIL occurrences at all. If we want to apply our method
to other antipattern, we should de ne the adequate transformation rules and
SPARQL queries.
        </p>
        <p>Our immediate work will aim at presenting the SPARQL results so that the
candidates where c1 and c2 classes are linked by a subClassOf relationship will
be eliminated.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusions and Future Work</title>
      <p>In this paper we have shown how complex antipatterns such as OIL can be
detected. Our detection method can work without a reasoner. It is based on
ontology transformations and one SPARQL query. These transformations have
several goals: harmonizing ontology developer implementation style, simulating
reasoner inference and simplifying class de nition axioms. Our method detects
OIL antipattern candidates. These candidates localize class de nition where OIL
occurrences can appear. Thus, they draw ontology developer's attention to avoid
errors during long ontology development process. We conduct some experiments
to detect OIL antipattern in an OWL ontology corpus obtained from the
Watson ontology search engine. Our future work will focus on the de nition of new
transformations to detect other complex antipatterns from our antipattern
catalogue.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Apache jena. http://jena.apache.org/ (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Pellet:
          <article-title>Owl 2 reasoner for java</article-title>
          . http://clarkparsia.com/pellet/ (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Watson</surname>
          </string-name>
          <article-title>: Exploring the semantic web</article-title>
          . http://watson.kmi.open.ac.uk/WS_and_ API.html (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>4. web site related to our ontology antipattern detection methods</article-title>
          . https://sites. google.com/site/ontologyantipattern (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Pellint: An ontology repair tool</article-title>
          . http://weblog.clarkparsia.com/
          <year>2008</year>
          /07/02/pellint
          <article-title>-an-ontology-repair-tool/ (</article-title>
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roussey</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vilches</surname>
            <given-names>Blazquez</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>L.M.</given-names>
            ,
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          :
          <article-title>Pattern-based OWL ontology debugging guidelines</article-title>
          .
          <source>In: Proceedings of WOP</source>
          . pp.
          <volume>68</volume>
          {
          <fpage>82</fpage>
          .
          <string-name>
            <surname>CEUR-WS.org</surname>
          </string-name>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gangemi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Presutti</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Ontology design patterns</article-title>
          . Handbook on Ontologies pp.
          <volume>221</volume>
          {
          <issue>243</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Guarino</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Welty</surname>
            ,
            <given-names>C.A.</given-names>
          </string-name>
          :
          <article-title>Evaluating ontological decisions with OntoClean</article-title>
          .
          <source>Commun. ACM</source>
          <volume>45</volume>
          (
          <issue>2</issue>
          ),
          <volume>61</volume>
          {
          <fpage>65</fpage>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</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>Laconic and precise justi cations in OWL</article-title>
          .
          <source>In: Proceedings of ISWC</source>
          . pp.
          <volume>323</volume>
          {
          <issue>338</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Iannone</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rector</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
          </string-name>
          , R.:
          <article-title>Embedding knowledge patterns into OWL</article-title>
          .
          <source>In: Proceedings of ESWC</source>
          . pp.
          <volume>218</volume>
          {
          <issue>232</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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>
          :
          <article-title>Repairing unsatis able concepts in OWL ontologies</article-title>
          .
          <source>In: Proceedings of ESWC</source>
          . pp.
          <volume>170</volume>
          {
          <issue>184</issue>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>Hendler</surname>
          </string-name>
          , J.:
          <article-title>Debugging unsatis able classes in OWL ontologies</article-title>
          .
          <source>Journal of Web Semantics</source>
          <volume>3</volume>
          (
          <issue>4</issue>
          ),
          <volume>268</volume>
          {
          <fpage>293</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lehmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhmann</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>ORE - a tool for repairing and enriching knowledge bases</article-title>
          .
          <source>In: proceedings of ISWC. LNCS</source>
          , vol.
          <volume>6497</volume>
          - part 2, pp.
          <volume>177</volume>
          {
          <fpage>193</fpage>
          . Springer, Shanghai, China (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mortensen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Musen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Noy</surname>
          </string-name>
          , N.:
          <article-title>Modest use of ontology design patterns in a repository of biomedical ontologies</article-title>
          .
          <source>In: Proceedings of WOP</source>
          . vol.
          <volume>929</volume>
          . CEUR-WS.org, Boston, USA (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Poveda-Villalon</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suarez-Figueroa</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez-Perez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Validating ontologies with OOPS!</article-title>
          <source>In: proceedings of EKAW. LNCS</source>
          , vol.
          <volume>7603</volume>
          , pp.
          <volume>267</volume>
          {
          <fpage>281</fpage>
          . Springer Berlin Heidelberg, Ireland (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Presutti</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blomqvist</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Daga</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gangemi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Pattern-based ontology design</article-title>
          . Ontology Engineering in a Networked World pp.
          <volume>35</volume>
          {
          <issue>64</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Rector</surname>
            ,
            <given-names>A.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drummond</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rogers</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knublauch</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stevens</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wroe</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>OWL pizzas: Practical experience of teaching OWL-DL: common errors &amp; common patterns</article-title>
          .
          <source>In: Proceedings of EKAW</source>
          . pp.
          <volume>63</volume>
          {
          <issue>81</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Roussey</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corcho</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svab-Zamazal</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schar</surname>
            <given-names>e</given-names>
          </string-name>
          , F.,
          <string-name>
            <surname>Bernard</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>SPARQL-DL queries for antipattern detection</article-title>
          .
          <source>In: Proceedings of WOP</source>
          . vol.
          <volume>929</volume>
          . CEUR-WS.org, Boston, USA (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Svab-Zamazal</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Svatek</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Analysing ontological structures through name pattern tracking</article-title>
          .
          <source>In: Proceedings of EKAW</source>
          . pp.
          <volume>213</volume>
          {
          <issue>228</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>