<!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>Snorocket 2.0: Concrete Domains and Concurrent Classi cation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Alejandro Metke-Jimenez</string-name>
          <email>alejandro.metke@csiro.au</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michael Lawley</string-name>
          <email>michael.lawley@csiro.au</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>The Australian e-Health Research Centre ICT Centre</institution>
          ,
          <addr-line>CSIRO Brisbane, Queensland</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Snorocket is a high-performance ontology reasoner that supports a subset of the OWL EL pro le. In the newest version, additional expressive power has been added to support concrete domains, enabling the classi cation of ontologies that use these constructs. Also, the reasoning algorithm has been modi ed to support concurrent classi cation. This feature is important because it enables the use of the full processing power available in modern multi-processor hardware.</p>
      </abstract>
      <kwd-group>
        <kwd>ontology</kwd>
        <kwd>classi cation</kwd>
        <kwd>concrete domains</kwd>
        <kwd>concurrent</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>The initial version of Snorocket was developed to support the fast classi cation
of SNOMED CT and therefore only included support for a limited number of
constructs. A table comparing the OWL EL constructs supported by Snorocket
and other EL reasoners is available on the Snorocket websitez.</p>
      <p>
        Concrete domains are supported by several general tableaux-based reasoners
such as FaCT++ [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and HermiT [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The only specialised EL reasoner that
currently supports concrete domains is ELK [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>Concrete domains are used in AMT mainly to model quantities in the
definition of medicines. An OWL version of AMT v3 can be obtained by using
an updated version of the Perl script originally included in the SNOMED CT
distribution. An example of a typical axiom found in AMT is available on the
Snorocket websitex.</p>
      <p>
        Most of the commonly used reasoners, including FACT++ [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], HermiT [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
CEL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], and jCEL [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] are only capable of using a single processor. To our
knowledge, the only reasoner that has successfully implemented a concurrent
classi cation algorithm is ELK [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Because most modern hardware achieves
better performance by providing more than one processor or core, it is important
to be able to make use of this extra processing power.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Architecture</title>
      <p>zhttp://aehrc.com/software/snorocket/index.html#constructs
xhttp://aehrc.com/software/snorocket/index.html#amtv3
{http://aehrc.com/software/snorocket/index.html#model</p>
      <p>Snorocket 2.0
snorocket-core</p>
      <p>Internal</p>
      <p>Model
Snorocket</p>
      <p>API
uses
ontology-model</p>
      <p>
        uses
ontology-import
In description logics a concrete domain is a construct that can be used to de ne
new classes by specifying restrictions on attributes that have literal values (as
opposed to relationships to other concepts). For example, children of age six can
be de ned by using the concrete domain expression 9hasAge:(=; 6). The class
of individuals, in this case children of age six, is expressed as a restriction on the
age attribute, which has a numeric value. The binary operators &lt;; &lt;=; &gt;; &gt;=
can also be used in a concrete domain expression, and attributes can have other
types of literal values such as oating point numbers, string literals, and dates.
Support for equality An ontology can contain many complex axioms that
include nested sub-expressions. The CEL algorithm works with normalised axioms
and therefore creates a conservative extension of the original ontology containing
only axioms in normal form [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The normal forms and the corresponding
completion rules R1 to R5 from the original CEL algorithm are shown in Table 1.
The last two normal forms and completion rule R6 have been added to support
concrete domains.
      </p>
      <p>The normalised forms of concrete domain expressions are A v 9f:(o; v) and
9f:(o; v) v A, where f represents a feature, o an operator, and v a value. The
original normalisation algorithm requires only minor changes to deal with these
new constructs.</p>
      <p>The classi cation algorithm does require signi cant changes to deal with the
new concrete domain axioms. A new type of queue is introduced to deal with the
queue entries of the form A v 9f:(o; v) and it is initialised with these axioms.
The entries are then processed in the following way:
1. The axioms of the form 9f:(o; v) v B that match the feature f of the data
type in the queue entry are retrieved.
2. The data types are then compared using the eval() function.
3. If only the equality operator needs to be supported then the two data types
are considered to be matching if their literal value is equal.</p>
      <p>
        Support for other operators It is known that supporting arbitrary
combinations of di erent operators leads to intractability [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In this implementation
no checks are made to ensure that the ontology being classi ed complies with
the restrictions that guarantee tractability. If non-compliant axioms are found
then the reasoning procedure will be sound but possibly incomplete.
      </p>
      <p>Adding support for other operators requires a modi cation to the eval()
function that compares the data types when evaluating feature queue entries. The
di erent combinations of operators and values have to be evaluated to determine
if there is a match or not.</p>
      <p>For example, consider the following axioms:
toddler
child</p>
      <p>person u 9hasAge:( ; 3)
person u 9hasAge:( ; 17)</p>
      <p>After the normalisation process these axioms are transformed into the
following:
9hasAge:( ; 17) v A
child v person
9hasAge:( ; 3) v B
toddler v person
person u A v child
child v 9hasAge:( ; 17)
person u B v toddler
toddler v 9hasAge:( ; 3)</p>
      <p>These axioms allow us to infer that a toddler is also a child (but a child
is not necessarily a toddler). This conclusion is derived when evaluating the
expressions toddler v 9hasAge:( ; 3) and 9hasAge:( ; 17) v A. The eval()
function in this case takes the arguments ( ; 3; ; 17) and returns a positive
match because all the possible values of the rst operator-value pair are covered
by the possible values of the second operator-value pair. Whenever this is not the
case the function returns false. Notice that this happens in some cases regardless
of the literal values. For example, assuming we are dealing with integer values,
eval(x; &lt;; y &gt;) and eval(x; &gt;; y; &lt;) will always return false because no matter
what values are assigned to x and y, the second operator-value pair will never
be able to cover all the possible values expressed by the rst pair.
4.2</p>
      <p>
        Concurrent classi cation
This new version of Snorocket implements a multi-threaded saturation algorithm
inspired by the algorithm used by ELK. The main idea of the algorithm is to split
the computation into contexts that can be processed by workers independently
while generating minimal locking overhead. Details of the original algorithm
can be found in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. The main techniques in the algorithm can be applied in a
straightforward manner to the CEL algorithm implemented by Snorocket.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Experimental results</title>
      <p>Protege was used to compare the performance of Snorocket against four other
ontology reasoners: FaCT++, HermiT, jCel, and ELK. The previous version
of Snorocket was also included. Two OWL ontologies were used in the tests:
SNOMED CT and AMT v3. Both of these were derived from the RF2
distribution les using the corresponding Perl scripts.</p>
      <p>The experiments were run in a computer equipped with a 3.3 GHz Intel
i5 processor with 4 cores, 8 GB of physical memory, and running Windows 7.
Protege was run with Java 7 and a heap size of 4 GB. All the experiments use
elapsed time as an indicator and use the external timing reported by Protege.
The multi-threaded reasoners (ELK 0.32 and Snorocket 2.0.1) were run using 4
threads.</p>
      <p>Table 2 shows the pro les of the selected ontologies and Table 3 shows the
classi cation times, in seconds, achieved by the reasoners, averaged over 5 runs.</p>
      <p>Ontology
SNOMED CT
AMT
FACT++ 1.6.2
HermiT 1.3.7
jCel 0:15z
ELK 0.32
Snorocket 1.3.4
Snorocket 2.0.1
The results show that the performance of the tableaux-based reasoners was very
poor when classifying AMT. On the other hand, the specialised EL reasoners
were able to classify it in a fraction of the time. ELK currently provides the best
performance, which is expected since Snorocket's multi-threaded implementation
is based on the same techniques but has not been optimised. Also, Snorocket only
runs the saturation phase concurrently, while the rest of the steps are still run
sequentially.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and future work</title>
      <p>This paper presented Snorocket 2.0 and compared it against its previous version
and four other reasoners using two large medical ontologies. Even though ELK
obtained the fastest results, Snorocket 2.0 achieved competitive performance.
Snorocket's built-in support for SNOMED CT distribution formats makes it an
interesting alternative to ELK for SNOMED CT-centric applications.</p>
      <p>Future work will include adding multi-threading to the whole classi cation
process and incorporating the restrictions necessary to ensure tractability when
dealing with concrete domains, either as a hard restriction or as a warning to
the user.</p>
      <p>zThe current version of the jCel plugin is 0.18.2 but version 0.15 was the most
recent one that was compatible with our testing environment.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Lawley</surname>
            ,
            <given-names>M. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bousquet</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Fast classi cation in Protege: Snorocket as an OWL 2 EL reasoner</article-title>
          .
          <source>In: Proc. 6th Australasian Ontology Workshop (IAOA10)</source>
          .
          <source>Conferences in Research and Practice in Information Technology</source>
          , pp.
          <volume>45</volume>
          {
          <fpage>49</fpage>
          . (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brandt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Pushing the EL envelope</article-title>
          .
          <source>In: International Joint Conference on Arti cial Intelligence</source>
          , p.
          <volume>364</volume>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Magka</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Tractable Extensions of the Description Logic EL with Numerical Datatypes</article-title>
          .
          <source>In: Proc. of the Int. Joint Conf. on Automated Reasoning (IJCAR</source>
          <year>2010</year>
          ). LNAI, vol.
          <volume>6173</volume>
          , pp.
          <volume>61</volume>
          {
          <fpage>75</fpage>
          . Springer (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , Krotzsch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Simanck</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>ELK Reasoner: Architecture and Evaluation</article-title>
          .
          <source>In: Proceedings of the 1st International Workshop on OWL Reasoner Evaluation, CEUR Workshop Proceedings</source>
          , (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , Kotzsch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Simanck</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>Concurrent Classi cation of EL+ Ontologies</article-title>
          .
          <source>In: The Semantic Web ISWC</source>
          <year>2011</year>
          , pp.
          <volume>305</volume>
          {
          <issue>320</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lutz</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Suntisrivaraporn</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>E cient reasoning in EL+</article-title>
          .
          <source>In: Proceedings of DL</source>
          <year>2006</year>
          , p.
          <volume>189</volume>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Mendez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>jcel: A Modular Rule-based Reasoner</article-title>
          .
          <source>In: Proc. of the 1st Int. Workshop on OWL Reasoner Evaluation (ORE12)</source>
          , pp.
          <fpage>130</fpage>
          -
          <lpage>135</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Tsarkov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
          </string-name>
          , I.:
          <article-title>FaCT++ description logic reasoner: System description</article-title>
          .
          <source>In: Proc. 3rd Int. Joint Conf. on Automated Reasoning (IJCAR</source>
          <year>2006</year>
          ). LNCS, vol.
          <volume>4130</volume>
          , pp.
          <fpage>292</fpage>
          -
          <lpage>297</lpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Motik</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shearer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
          </string-name>
          , I.:
          <article-title>HermiT: Hypertableau Reasoning for Description Logics</article-title>
          .
          <source>Journal of Arti cial Intelligence Research 36</source>
          , pp.
          <volume>165</volume>
          {
          <issue>228</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Sirin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Parsia</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katz</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Pellet: A practical OWL-DL reasoner</article-title>
          .
          <source>J. of Web Semantics</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ), pp.
          <fpage>51</fpage>
          -
          <lpage>53</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>