<!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 Parallel Reasoner for the Description Logic ALC</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Kejia Wu</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Volker Haarslev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Concordia University</institution>
          ,
          <addr-line>Montreal</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Multi-processor/core systems have become ubiquitous but the vast majority of OWL reasoners can process ontologies only sequentially. This observation motivates our work on the design and evaluation of Deslog, a parallel tableau-based description logic reasoner for ALC. A first empirical evaluation for TBox classification demonstrates that Deslog's architecture supports a speedup factor that is linear to the number of utilized processors/cores.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>The popularity of multi-processor/core computing facilities makes Description Logic
(DL) reasoning feasible that scales w.r.t. the number of available cores.1 Modern
manycore architectures together with operating systems implementing symmetric
multitasking efficiently support thread-level parallelism (TLP), where smaller subtasks are
implemented as threads that are concurrently executed on available cores. In order to utilize
such hardware for making DL reasoning scalable to the number of available cores, one
has to develop new reasoning architectures efficiently supporting concurrency.
Moreover, many well-known tableau optimization techniques need to be revised or adapted
in order to be applicable in a parallel context. In this paper we present a new DL
reasoning framework that fully utilizes TLP on many-core systems. In principle, standard
tableau algorithms are well suited for parallelization because tableau completion rules
usually do not depend on a sequential execution but require shared access to common
data structures.</p>
      <p>
        We consider the inherent non-determinism of DL tableaux as a feature of DL
reasoning that naturally leads to parallel algorithms which are suitable for a shared-memory
setting. For instance, a source for such a non-determinism are disjunctions and qualified
cardinality restrictions for logics containing at least ALCQ. Many standard DL
reasoning services, e.g. concept satisfiability testing, TBox classification, instance checking,
ABox realization, etc. might be amenable to be implemented in a non-deterministic
way supporting parallelism. However, the use of parallelism in DL reasoning has yet
to be explored systematically. Although it is advantageous to seek scalable solutions
by means of parallelism, little progress has been made in parallel DL reasoning
during the last decade [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Most DL reasoning algorithms and optimization techniques
have only been investigated in a sequential context, but how these methods should be
accommodated to parallelism remains mostly open. Besides these algorithmic and
theoretical issues, the efficient implementation of a scalable parallel DL reasoner is also
worth to be investigated. Many practical issues on shared-memory parallelism need to
1 For ease of presentation we consider the terms processor and core as synonyms.
      </p>
      <p>Deslog system
pre-processing
post-processing</p>
      <p>reasoning engine
service provider</p>
      <p>rule applier
consistency
satisfiability
subsumption
classification</p>
      <p>.
infrastr..ucture
u
t
8
9
...
be researched, e.g., selecting suitable parallel architectures,ltrdl0esi8gnating efficient data
structures and memory management, and exploring parallel algorithms.</p>
      <p>In the remaining sections we introduce the design of Des⇤log,⇤ discussltrlr1elauted work,
operator
and present an evalulaitetriaoln demonstrating a mostly (suRper)linear scalability of ⇤ Deslog.
⇤
A</p>
      <p>B
2</p>
      <p>Architecture⇤ loefft De⇤srilgoht g</p>
      <sec id="sec-1-1">
        <title>2.1 Framework</title>
        <p>Fig. 2: Deslog data struc- Fig. 3: Deslog data structure for
The shared-mtuerme oforyr apacroanllceelprte.asoner Deslog consitshtes DofLtherxeperleasyseiorsn: 8 (iR)p.(rAe-puroBc)e.ssing
layer, which converts the Web Ontology Language (OWL) representation of ontologies
to internal data structures; (ii) reasoning engine layer, which performs the standard
DL reasoning services and is composed of two key components, the service provider
and the tableau rule applier; (iii) post-processing layer, which collects, caches, and
saves reasoning results; (iv) infrastructure layer, which provides core components and
utilities, such as structures representing concepts and roles, and the object copy tool.
Figure 1 gives an overview of the framework.</p>
        <p>
          First, OWL ontology data is read into the pre-processing layer. Various typical
preprocessing operations, such as transformation into negation normal form (NNF), axiom
re-writing, and axiom absorption, are executed in this layer. The reasoner’s run-time
options, such as service selection, maximum number of threads, and rule application
order, are also set up on this layer. We implemented this layer by using the OWL API
[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. The pre-processed data is streamed to the reasoning engine.
        </p>
        <p>
          The reasoning engine performs primarily inference computation. The first key
component of the reasoning engine is the service provider. As with popular DL reasoning
systems, Deslog provides standard reasoning services, such as testing TBox
consistency, concept satisfiability, etc. As we know, these services may depend on each other.
In Deslog, the classification service depends on subsumption, and the latter depends on
the satisfiability service. The service provider uses a suite of tableau-based algorithms
to perform reasoning. The reasoner adopts tableaux as its primary reasoning method,
which is complemented by another key component, the tableau expansion rule applier.
The main function of this component is to execute tableau rules in some order to build
expansion forests. In Deslog, tableau expansion rules are designed as configurable
plugins, so what rule has to be applied in what application order can be specified flexibly.
At present, Deslog implements the standard ALC tableau expansion rules [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>All three layers mentioned above use the facilities provided by the infrastructure
layer. All common purpose utilities are part of this layer. For example, the threads
manager, global counters, and the globally unique identifier (GUID) generator. In addition,
the key data structures representing DL elements and basic operations on them are
provided by this layer.
2.2</p>
      </sec>
      <sec id="sec-1-2">
        <title>Key Data Structures</title>
        <p>In contrast to popular DL reasoning systems, Deslog aims to improve reasoning
performance by employing parallel computing, while data structures employed by sequential
DL reasoners are not always suitable for parallelism.</p>
        <p>Tree structures have been adopted by many tableau-based reasoners. However, a
naive tree data structure introduces data races in a shared-memory parallel environment
and are not well suited in a concurrency setting. Therefore, we need to devise more
efficient data structures in order to reduce the amount of shared data as much as possible.</p>
        <p>The new data structures facilitating concurrency must support DL tableaux. One
important function of trees is to preserve non-deterministic branches generated during
tableau expansion. Non-deterministic branches are mainly produced by the disjunction
rule and the at-most number restriction rules. To separate non-deterministic branches
into independent data vessels, which are suited to be processed in parallel, we adopt a
list-based structure, called stage, to maintain a single non-deterministic branch, and a
queue-based structure, called stage pool, to buffer all branches in a tableau. Every stage
is composed of the essential elements of a DL ontology, concepts and roles.</p>
        <p>As with any DL reasoner, the representation of concepts and roles are fundamental
design considerations. The core data structure of Deslog is a four-slot list representing a
concept. A literal uniquely identifies a distinct concept. An operator indicates the
dominant DL constructor applied to a concept. Available constructors cover intersection,
disjunction, existential and value restriction, and so on, and this slot can also be empty.
The remaining two slots hold pointers to extend nested concept definitions, namely left
and right. Figure 2 illustrates a DL concept encoded with the Deslog protocol.</p>
        <p>ppoosst-t-pprroocceesssiningg
liltieterraall</p>
        <p>ooppeerraatotorr
⇤ ⇤ lelefftt
⇤ ⇤ rrigighhtt</p>
        <sec id="sec-1-2-1">
          <title>FFiigg..11::TThheeffrraammeewwoorrkkooffDDeesslloogg..</title>
          <p>ssuubbssuummpptitoionn
cclalasssifiificcaatitoionn
..</p>
          <p>..
ininffrraasstr.tru.ucctuturree</p>
          <p>RR</p>
          <p>Roles in Deslog are handled as a special type of concepts and have a similar
structure as concepts. For instance, the encoding of the DL expression 8R:(A u B) is shown
in Figure 3. Further properties needed for describing a role can be added to the generic
structure, e.g., the number restriction quantity. A role data structure is also associated
with a list recording instance pairs. With this design, DL concepts can be lined up
seamlessly. Instances (i.e., labels in tableau expansions) are lists holding their typing data,
concepts. There are also helper facilities, such as a role pool and an instance pool, which
are useful to accelerate the indexing of objects.</p>
          <p>A notable point on our encoding is how the complement of an atomic concept (i.e.,
concept name) is expressed (see Figures 4a and 4b).</p>
          <p>A</p>
          <p>A
⇠ A
⇤
¬
((aa)) AAttoommiicc ccoonncceepptt AA</p>
          <p>((bb)) AAttoommiicc ccoonncceepptt :¬AA</p>
        </sec>
        <sec id="sec-1-2-2">
          <title>FFiigg.. 44:: DDeesslloogg ddaattaa ssttrruuccttuurree——aattoommiicc ccoonncceeppttss.</title>
          <p>A principle of Deslog’s design is to model objects and behaviours involved in DL
reasoni1n4g as iphnardmaecopgeenonmicds econmptlexabstractions as much as possible in order to facilitate
concur13 economy
rent pro12cessing. tFranosporrtaitinonstance, branches created during tableau expansion are
encapsu11 mbfaoo
lated trcoin1t0o standayleoapstlnapnhteetnraooittybpejects. Thus, a whole tableau expansion forest is designed as a list
of brafanc89h objects. Tableau expansion rules and even some key optimization techniques
p
u
are aleepso67designed as independent components.</p>
          <p>d
S
5
4
3
2
1
Fig. 5: Speedup factor for pharmacogenomics complex, economy, transportation, bfo,
mao, yeast phenotype, and plant trait.</p>
        </sec>
      </sec>
      <sec id="sec-1-3">
        <title>2.3 Implementation</title>
        <p>As aforementioned, multi-processor computers are becoming the main stream, it is
expected that idle processors are utilized, and shared-memory TLP is quite suitable for
this purpose.</p>
        <p>
          One significant aspect of this research is to investigate how well important DL
reasoning optimization techniques are suited to be implemented in a parallel reasoner and
how they should be adapted if plausible. Deslog has adopted the following optimization
techniques.
1. Lazy-unfolding This technique enables a reasoner to unfold a concept only when
necessary [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
2. Axiom absorption Disjunctive branches introduced by naively internalizing
TBoxaxioms is one of the primary sources of reasoning inefficiency. With the axiom
absorption technique, a TBox is separated into two parts, the general TBox and the
unfoldable TBox. Then, using internalization to process the general part and
lazyunfolding to process the unfoldable part can reduce reasoning time dramatically
[
          <xref ref-type="bibr" rid="ref15 ref25">15, 25</xref>
          ].
3. Semantic branching This DPLL style technique prunes disjunctive branches by
avoiding to compute the same problem repeatedly [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ].
        </p>
        <p>
          Other primary optimization techniques, such as dependency directed backtracking
[4, Chapter 9] [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and model merging [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] are currently being implemented. It is
noticeable that not all significant optimization techniques are suitable for concurrency.
Some of them still depend on complex shared data and may significantly degrade the
performance of a concurrent program. Based on these elemental techniques, we
completed a suite of standard TBox reasoning services.
        </p>
        <p>
          The current system implements a parallel ALC TBox classifier. It can concurrently
classify an ALC terminology. The parallelized classification service of Deslog
computes subsumptions in a brutal way [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. It is obvious that the algorithm is sound and
complete and has order of n2 time complexity in a sequential context. In order to figure
out a terminology hierarchy, the algorithm calculates the subsumptions of all atomic
concepts pairs. A subsumption relationship only depends on the involved concepts pair,
and does not have any connections with the computation order. Therefore, the
subsumptions can be computed in parallel, and soundness and completeness are retained in
a concurrent context.
        </p>
        <p>A rather difficult issue in implementing a parallel DL reasoner is managing
overhead. This issue is relatively easy for high level parallel reasoning, where multiple
threads mainly execute reading operations on some shared data, thus, we implemented
the parallel classification service first.</p>
        <p>Besides the high-level parallelized service, classification, low level parallelized
processing is being developed. In the architecture of Deslog, the classification service uses
subsumption, and subsumption uses satisfiability. The low level parallel reasoning
focuses on dealing with non-deterministic branches, which are represented as stages in
Deslog.</p>
        <p>It might seems easy to process stages in parallel, but quite some effort is required
to achieve a satisfying scalability via concurrency. The first noticeable fact is that from
a root stage every stage may generate new ones. At present, our strategy is using one
thread to process one stage. That means the stages buffer, the stage pool, is frequently
accessed by multiple threads. That accessing includes both writing and reading shared
data frequently. So, designing a high-performance stage buffer and efficient accessing
schemes is an essential condition for the enabling a of scalable performance
improvement. Otherwise, a parallel approach only causes overhead instead of performance
improvement. We are currently working on efficient low-level parallel reasoning.</p>
        <p>Although there are robust shared-memory concurrent libraries available, such as the
C++ Boost.Thread library and the Java concurrent package, according to our
experience, using these libraries immoderately often degrades performance. Therefore, one
needs to design sophisticated structures which better avoid shared data, or which do not
access shared data frequently.
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Evaluation</title>
      <p>Deslog is implemented in Java 6 in conformity with the aforementioned design. The
parallelism of Deslog is based on a multi-threading model and aims at exploiting
symmetric multiprocessing (SMP) supported by multi-processor computing facilities.
The system is implemented in Java 6 for Java’s relatively mature parallel ecosystem.2
Specifically, the java.util.concurrent package of Java 6 is utilized.</p>
      <p>In the following we report on experiments to demonstrate that a shared-memory
parallel tableau-based reasoner can achieve a scalable performance improvement.
3.1</p>
      <sec id="sec-2-1">
        <title>Conducted Experiments</title>
        <p>The classification service of Deslog can be executed concurrently by multiple threads.
We conducted a group of tests, and they show that Deslog has an obvious scalability.</p>
        <p>All tests were conducted on a 16-core computer running Solaris OS and Sun Java
6. Many of the test cases were chosen from OWL Reasoner Evaluation Workshop 2012
(ORE 2012) data sets. We manually changed the expressivity of some test cases to
ALC so that Deslog could reason about them. Table 1 lists the metrics of the test cases.
The results are shown in Figures 5-7.
3.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Discussion</title>
        <p>The experimental results collected from testing ontologies show a scalable performance
improvement. The tests on more difficult ontologies demonstrate a better scalability due
to reduced overhead.</p>
        <p>Because the computing time of the single thread configuration, T1, is rather small
for some ontologies, often smaller than ten seconds, the overhead introduced by
maintaining multiple threads can limit the scalability. For some of these ontology tests, the
reasoning times are reduced to several milliseconds, i.e., the whole work load assigned
to a single thread is around several milliseconds in these settings. According to our
empirical results, a small work load w.r.t. the overhead, which is produced by manipulating
2 All components and sources of the system are available at http://code.google.com/p/deslog/.
threads as well as accessing shared data, counteracts the benefits gained from parallel
processing and the reasoning performance starts to degrade.</p>
        <p>When testing ontologies that are big enough, the observed scalability is linear,
sometimes even superlinear. These bigger ontologies need longer single thread
computing times (T1). The overhead introduced by maintaining a tolerable number of multiple
threads is very small and becomes insignificant. A tolerable number, Ni, should always
be smaller than or equal to the total number of available processors. In our conducted
tests due to the available hardware we have Ni 2 [1; 16] but in order to stress
multithreading we conducted all tests with up to 32 threads. In some cases, even though the
number of threads exceeds 16, the reasoning performance keeps stable in a rather long
run. This clearly supports our hypothesis that a further scalability improvement could
be achieved by adding more processors, and we will verify this hypothesis when better
experimental hardware becomes available.</p>
        <p>Figure 7 shows the standard deviation of thread runtimes measured in the series of
tests (in the unit of milliseconds). Overall, the deviations are limited to an acceptable
range, i.e., below 140 milliseconds, which is relatively insignificant w.r.t. system
overhead. This implies that the work load is well balanced among threads. That is to say, all
threads are as much busy as possible. For the most part, when the number of threads is
smaller than the tolerable number, 16, deviations are normally close to 0. When threads
are added beyond 16, deviations become greater. This is because some processors
execute more than one thread, and hereby the thread contexts switching produces a lot
of overhead. In our original implementation, we had distributed all subsumption
candidates into independent lists, every of which mapped to a thread, but the deviations were
sometimes too large. So, the Deslog classification uses now a shared queue to buffer all
subsumption candidates, in order keep all threads busy.</p>
        <p>We had conducted similar experiments on a high-performance computing cluster,
and the results were rather disappointing. The speedup factor gained on the cluster was
generally below 3 although we assigned at least 16 processors for each test. The most
plausible explanation we can give is that the complex hardware and software
environment of the cluster degrades the performance of Deslog. The cluster consists of three
types of computing nodes with respect to the built-in processors: 4-core, 8-core, and
16-core. And the same type of computers may have heterogeneous architectures. A job
is scheduled on one or more computers randomly. It is normal that a job is assigned to
more than one computer, and the communication between computers results in a
bottleneck. Another possible reason is that the cluster does not guarantee exclusive usage,
which means it is possible that more than one job is running on the same computer at
the same time.</p>
        <p>
          Deslog can only deal with ALC ontologies at present, and we expect that more
interesting results will be obtained by implementing more powerful tableau expansion rules
(e.g., see [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]). We already investigated the feasibility of several tableau optimization
techniques for a concurrency setting, but most of them are not yet fully implemented or
tested.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        Our research investigates the potential contribution of concurrent computing to
tableaubased DL reasoning. Tableau-based DL reasoning has been extensively researched in
sequential contexts. A large amount of literature is available for addressing sequential
DL reasoning (see [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]). Only a few approaches investigated parallel DL reasoning so
far.
      </p>
      <p>
        The work in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] reports on a parallel S HN reasoner. This reasoner implemented
parallel processing of disjunctions and at-most cardinality restrictions, as well as some
DL tableau optimization techniques. The experimental results show noticeable
performance improvement in comparison with sequential reasoners. This work mainly
showed the feasibility of parallelism for low level tableau-based reasoning, and did
not mention high level reasoning tasks, such as classification. Besides utilizing
nondeterminism, this research also presented the potential of making use of and-parallelism,
and we plan to follow up on this idea.
      </p>
      <p>
        The canonical top-search algorithm, as well as its dual bottom-search, can be
executed in parallel, but extra work is needed to preserve completeness. Such an approach
is presented in [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ] and the experimental results are very promising and demonstrate
the feasibility of parallelized DL reasoning.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref17 ref23">17, 23</xref>
        ] a consequence-based DL reasoning method was proposed, mainly
dealing with Horn ontologies. Based on consequence-based reasoning and the results of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ],
the work in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] reports on a highly optimized reasoner that can classify E L ontologies
concurrently.
      </p>
      <p>
        Two hypothesises on parallelized ontology reasoning were proposed in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]:
independent ontology modules and a parallel reasoning algorithm. Independent ontology
modules strive for structuring ontologies as modules which naturally can be computed
in parallel. The idea of partitioning ontologies into modules is supported by [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">11, 9, 10</xref>
        ].
According to the second hypothesis, extensive research on parallelized logic
programming does not contribute much to DL reasoning. Furthermore, some DL fragments,
without disjunction and at-most cardinality restriction constructors, do not profit much
from parallelizing non-deterministic branches in tableau expansion.
      </p>
      <p>The research mentioned above is focusing on a shared-memory multi-threading
environment. There is also quite some research proposing distributed solutions, and some
of these ideas are also worth being tried in a shared-memory environment.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] the idea of applying a constraint programming solver, Mozart, was proposed
to ALC tableau reasoning in parallel, and the implementation was reported on in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
The experimental results show scalability to some extent.
      </p>
      <p>
        Recently, some research work focuses on how DL reasoning can be applied to
Resource Description Framework (RDF) and OWL . This trend leads to research on
reasoning about massive web ontologies in a scalable way. MapReduce [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], ontology
mapping [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], ontology partitioning [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], rule partitioning [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], distributed hash table
(DHT) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], swarm intelligence [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], etc., are examples of these approaches. However,
we do not consider these approaches as relevant in our context.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Work</title>
      <p>DL has been successfully applied in many domains, amongst which utilizing knowledge
on the Internet has become a research focus in recent years. Scalable solutions are
required for processing an enormous amount of structured information spreading over
the Internet. Meanwhile, multi-processor computing facilities are becoming the main
stream. Thus, we consider research on parallelism in DL reasoning as necessary to
utilize available processing power..</p>
      <p>The objective of this research is to explore how parallelism plays a role in
tableaubased DL reasoning. A number of tableau-based DL reasoning optimization techniques
have been extensively researched, but most of them are investigated in sequential
contexts, so adapting these methods to the parallel context is an important part of this
research.</p>
      <p>We have partially shown that shared-memory parallel tableau-based DL reasoning
can contribute to scalable solutions. This paper introduced our reasoner, Deslog, of
which the architecture is devised specially for a shared-memory parallel environment.
We presented an aspect of the reasoner’s concurrency performance, and a good
scalability could be demonstrated for TBox classification.</p>
      <p>In the near future, we will enhance Deslog so that it can reason about more
expressive DL languages. More powerful tableau expansion rules will be added.
Concurrencysuitable tableau optimization techniques will be implemented. Moreover, we plan to
investigate non-determinism more closely, and to design corresponding parallel
algorithms.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aslani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haarslev</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Towards parallel classification of TBoxes</article-title>
          .
          <source>In: Proceedings of the 21st International Workshop on Description Logics (DL2008)</source>
          , Dresden, Germany. vol.
          <volume>353</volume>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Aslani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haarslev</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Parallel TBox classification in description logics-first experimental results</article-title>
          .
          <source>In: Proceeding of the 2010 conference on ECAI 2010: 19th European Conference on Artificial Intelligence</source>
          . pp.
          <fpage>485</fpage>
          -
          <lpage>490</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <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 Artificial Intelligence</source>
          . vol.
          <volume>19</volume>
          , p.
          <volume>364</volume>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
            ,
            <given-names>P.F.</given-names>
          </string-name>
          :
          <article-title>The description logic handbook: theory, implementation, and applications</article-title>
          . Cambridge University Press (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hollunder</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nebel</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Profitlich</surname>
            ,
            <given-names>H.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Franconi</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>An empirical analysis of optimization techniques for terminological representation systems</article-title>
          .
          <source>Applied Intelligence</source>
          <volume>4</volume>
          (
          <issue>2</issue>
          ),
          <fpage>109</fpage>
          -
          <lpage>132</lpage>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bock</surname>
          </string-name>
          , J.:
          <article-title>Parallel computation techniques for ontology reasoning</article-title>
          .
          <source>In: Proceedings of the 7th International Conference on The Semantic Web</source>
          . pp.
          <fpage>901</fpage>
          -
          <lpage>906</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dentler</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          , Gue´ret,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Schlobach</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Semantic web reasoning by swarm intelligence</article-title>
          .
          <source>In: The 5th International Workshop on Scalable Semantic Web Knowledge Base Systems (SSWS2009)</source>
          . p.
          <volume>1</volume>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fang</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zheng</surname>
          </string-name>
          , W.:
          <article-title>Scalable distributed ontology reasoning using DHTbased partitioning</article-title>
          .
          <source>In: The semantic web: 3rd Asian Semantic Web Conference</source>
          ,
          <string-name>
            <surname>ASWC</surname>
          </string-name>
          <year>2008</year>
          . pp.
          <fpage>91</fpage>
          -
          <lpage>105</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>A logical framework for modularity of ontologies</article-title>
          .
          <source>In: Proc. IJCAI</source>
          . pp.
          <fpage>298</fpage>
          -
          <lpage>304</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>Modular reuse of ontologies: Theory and practice</article-title>
          .
          <source>Journal of Artificial Intelligence Research</source>
          <volume>31</volume>
          (
          <issue>1</issue>
          ),
          <fpage>273</fpage>
          -
          <lpage>318</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Grau</surname>
            ,
            <given-names>B.C.</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>Kalyanpur</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Modularizing OWL ontologies</article-title>
          .
          <source>In: K-CAP 2005 Workshop on Ontology Management</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Haarslev</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          , Mo¨ ller, R.,
          <string-name>
            <surname>Turhan</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          :
          <article-title>Exploiting pseudo models for TBox and ABox reasoning in expressive description logics</article-title>
          .
          <source>Automated Reasoning</source>
          <year>2083</year>
          /
          <year>2001</year>
          ,
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Homola</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Serafini</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Towards formal comparison of ontology linking, mapping and importing</article-title>
          .
          <source>In: 23rd International Workshop on Description Logics, DL2010</source>
          . p.
          <volume>291</volume>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Horridge</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bechhofer</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The OWL API: A Java API for OWL ontologies</article-title>
          .
          <source>Semantic Web</source>
          <volume>2</volume>
          (
          <issue>1</issue>
          ),
          <fpage>11</fpage>
          -
          <lpage>21</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Optimising tableaux decision procedures for description logics</article-title>
          .
          <source>Ph.D. thesis</source>
          , The University of Manchester (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Horrocks</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sattler</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tobies</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Reasoning with individuals for the description logic SHIQ</article-title>
          .
          <source>In: Automated deduction-CADE-17: 17th International Conference on Automated Deduction, Pittsburgh</source>
          , PA, USA, June 17-20,
          <year>2000</year>
          <article-title>: proceedings</article-title>
          . vol.
          <volume>17</volume>
          , p.
          <volume>482</volume>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Consequence-driven reasoning for horn SHIQ ontologies</article-title>
          .
          <source>In: Proceedings of the 21st international jont conference on Artifical intelligence</source>
          . pp.
          <fpage>2040</fpage>
          -
          <lpage>2045</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , Kr o¨tzsch, M., Simancˇ´ık, F.:
          <article-title>Concurrent classification of EL ontologies</article-title>
          .
          <source>In: Proceedings of the 10th International Semantic Web Conference</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Liebig</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          , Mu¨ ller, F.:
          <article-title>Parallelizing tableaux-based description logic reasoning</article-title>
          .
          <source>In: Proceedings of the 2007 OTM Confederated International Conference on the Move to Meaningful Internet Systems-Volume Part II</source>
          . pp.
          <fpage>1135</fpage>
          -
          <lpage>1144</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Meissner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A simple parallel reasoning system for the ALC description logic</article-title>
          .
          <source>In: Computational Collective Intelligence: Semantic Web, Social Networks and Multiagent Systems (First International Conference, ICCCI</source>
          <year>2009</year>
          , Wroclaw, Poland,
          <year>2009</year>
          ). pp.
          <fpage>413</fpage>
          -
          <lpage>424</lpage>
          . Springer (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Meissner</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brzykcy</surname>
          </string-name>
          , G.:
          <article-title>A parallel deduction for description logics with ALC language</article-title>
          .
          <source>Knowledge-Driven Computing</source>
          <volume>102</volume>
          ,
          <fpage>149</fpage>
          -
          <lpage>164</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Mutharaju</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maier</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hitzler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>A MapReduce algorithm for EL+</article-title>
          .
          <source>In: 23rd International Workshop on Description Logics DL2010</source>
          . p.
          <volume>456</volume>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23. Simancˇ´ık,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Kazakov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            ,
            <surname>Horrocks</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          :
          <article-title>Consequence-based reasoning beyond Horn ontologies</article-title>
          .
          <source>In: Proc. of the 22nd Int. Joint Conf. on Artificial Intelligence (IJCAI</source>
          <year>2011</year>
          )
          <article-title>(</article-title>
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Soma</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prasanna</surname>
            ,
            <given-names>V.K.</given-names>
          </string-name>
          :
          <article-title>Parallel inferencing for OWL knowledge bases</article-title>
          .
          <source>In: Proceedings of the 2008 37th International Conference on Parallel Processing</source>
          . pp.
          <fpage>75</fpage>
          -
          <lpage>82</lpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haarslev</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Planning of axiom absorptions</article-title>
          .
          <source>In: In Proceedings of International Workshop on Description Logics</source>
          <year>2008</year>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>