<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Extended Caching and Backjumping for Expressive Description Logics</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Andreas</forename><surname>Steigmiller</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Ulm University</orgName>
								<address>
									<settlement>Ulm</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author role="corresp">
							<persName><forename type="first">Thorsten</forename><surname>Liebig</surname></persName>
							<email>liebig@derivo.de</email>
							<affiliation key="aff1">
								<orgName type="institution">derivo GmbH</orgName>
								<address>
									<settlement>Ulm</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Birte</forename><surname>Glimm</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">Ulm University</orgName>
								<address>
									<settlement>Ulm</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Extended Caching and Backjumping for Expressive Description Logics</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">923C05E150BD0F9E2AE12C187144D4E3</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:11+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract/>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Motivation</head><p>Due to the wide range of modelling constructs supported by the expressive DL SROIQ, the typically used tableau algorithms in competitive reasoning systems such as FaCT++ <ref type="bibr" target="#b15">[16]</ref>, HermiT, <ref type="foot" target="#foot_0">3</ref> or Pellet <ref type="bibr" target="#b13">[14]</ref> have a very high worst-case complexity. The development of tableau optimisations that help to achieve practical efficiency is, therefore, a longstanding challenge in DL research (see, e.g., <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b16">17]</ref>). A very effective and widely implemented optimisation technique is "caching", where one caches, for a set of concepts, whether they are known to be, or can safely be assumed to be, satisfiable or unsatisfiable <ref type="bibr" target="#b3">[4]</ref>. If the set of concepts appears again in a model abstraction, then a cache-lookup allows for skipping further applications of tableau rules. Unfortunately, with increasing expressivity naively caching become unsound, for instance, due to the possible interaction of inverse roles with universal restrictions <ref type="bibr" target="#b0">[1,</ref><ref type="bibr">Chapter 9]</ref>.</p><p>With this contribution we push the boundary of the caching optimisation to the expressive DL SROIQ. The developed unsatisfiability caching method is based on a sophisticated dependency management, which further enables better informed tableau backtracking and more efficient pruning (Section 3). Our techniques are grounded in the widely implemented tableau calculus for SROIQ <ref type="bibr" target="#b8">[9]</ref>, which makes it easy to transfer our results into existing implementations. The optimisations are integrated within a novel reasoning system, called Konclude <ref type="bibr" target="#b12">[13]</ref>. Our empirical evaluation shows that the proposed optimisations result in significant performance improvements (Section 4).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Preliminaries</head><p>Model construction calculi, such as tableau, decide the consistency of a knowledge base K by trying to construct an abstraction of a model for K, a so-called "completion graph". A completion graph G is a tuple (V, E, L, ˙ ), where each node x ∈ V represents one or more individuals, and is labelled with a set of concepts, L(x), which the individuals represented by x are instances of; each edge x, y represents one or more pairs of individuals, and is labelled with a set of roles, L( x, y ), which the pairs of individuals represented by x, y are instances of. The relation ˙ records inequalities, which must hold between nodes, e.g., due to at-least cardinality restrictions.</p><p>The algorithm works by initialising the graph with one node for each Abox individual/nominal in the input KB, and using a set of expansion rules to syntactically decompose concepts in node labels. Each such rule application can add new concepts to node labels and/or new nodes and edges to the completion graph, thereby explicating the structure of a model. The rules are repeatedly applied until either the graph is fully expanded (no more rules are applicable), in which case the graph can be used to construct a model that is a witness to the consistency of K, or an obvious contradiction (called a clash) is discovered (e.g., both C and ¬C in a node label), proving that the completion graph does not correspond to a model. The input knowledge base K is consistent if the rules (some of which are non-deterministic) can be applied such that they build a fully expanded, clash free completion graph. A cycle detection technique called blocking ensures the termination of the algorithm.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Dependency Tracking</head><p>Dependency tracking keeps track of all dependencies that cause the existence of concepts in node labels, roles in edge labels as well as accompanying constrains such as inequalities that must hold between nodes. Dependencies are associated with so-called facts, defined as follows:</p><formula xml:id="formula_0">Definition 1 (Fact) We say that G contains a concept fact C(x) if x ∈ V and C ∈ L(x),</formula><p>G contains a role fact r(x, y) if x, y ∈ E and r ∈ L( x, y ), and G contains an inequality fact x ˙ y if x, y ∈ V and (x, y) ∈ ˙ . We denote the set of all (concept, role, or inequality) facts in G as Facts G .</p><p>Dependencies now relate facts in a completion graph to the facts that caused their existence. Additionally, we annotate these relations with a running index, called dependency number, and a branching tag to track non-deterministic expansions: We inductively define the dependencies Dep G for G: If G is an initial completion graph, then Dep G = ∅. We initialise the beginning for the next dependency numbers n m with</p><formula xml:id="formula_1">1 if Dep G = ∅; otherwise, n m = 1 + max{n | d n,b ∈ Dep G }. Let R be a tableau rule applicable to a completion graph G. If R is non-deterministic, the next non-deterministic branching tag b R for R is 1 + max{{0} ∪ {b | d n,b ∈ Dep G }}; for R deterministic, b R = 0.</formula><p>Let G be the completion graph obtained from G by applying R with c 0 , . . . , c k the facts to satisfy the preconditions of R and c 0 , . . . , c the newly added facts in G , then</p><formula xml:id="formula_2">Dep G = Dep G ∪ {(c j , c i ) n,b | 0 ≤ i ≤ k, 0 ≤ j ≤ , n = n m + ( j * k) + i, b = max{{b R } ∪ {b | (c i , c) n ,b ∈ Dep G }}}.</formula><p>The branching tag indicates which facts were added non-deterministically:  )) a 0 : (∀r.¬B) a 0 : (C D). Thus, the completion graph is initialised with the node a 0 , which has the three concepts in its label. Initially, the set of dependencies is empty. For the concepts and roles added by the application of tableau rules, the dependencies are shown with dotted lines, labelled with the dependency. The dependency number increases with every new dependency. The branching tag is only non-zero for the non-deterministic addition of C to the label of a 0 in order to satisfy the disjunction (C D). Note the presence of a clash due to B and ¬B in the label of x 1 .</p><formula xml:id="formula_3">Definition 3 (Non-deterministic Dependency) For d n,b ∈ Dep G with d = (c 1 , c 2 ), let D d = {(c 2 , c 3 ) n ,b | (c 2 , c 3 ) n ,b ∈ Dep G }. The dependency d n,b is a non-deterministic dependency in G if b &gt; 0 and either D d = ∅ or max{b | (c, c ) n ,b ∈ D d } &lt; b. a 0 x 1 x 2 L(a 0 ) = { L(x 1 ) = { L(x 2 ) = {</formula><formula xml:id="formula_4">(∀r − .B) } L( a 0 , x 1 ) = { L( x 1 , x 2 ) = { b 2,0 c 3,0 f 6,0 g 7,0 d 4,0 e 5,0 a 1,1 h 8,0 i 9,0 j 10,0 k 11,0</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Extended Caching and Backtracking</head><p>In the following we introduce improvements to caching and backjumping by presenting a more informed dependency directed backtracking strategy that also allows for extracting precise unsatisfiability cache entries.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Dependency Directed Backtracking</head><p>Dependency directed backtracking is an optimisation that can effectively prune irrelevant alternatives of non-deterministic branching decisions. If branching points are not involved in clashes, it will not be necessary to compute any more alternatives of these branching points, because the other alternatives cannot eliminate the cause of the clash. To identify involved non-deterministic branching points, all facts in a completion graph are labelled with information about the branching points they depend on. Thus, the united information of all clashed facts can be used to identify involved branching points. A typical realisation of dependency directed backtracking is backjumping <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b16">17]</ref>, where the dependent branching points are collected in the dependency sets for all facts.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Unsatisfiability Caching</head><p>Another widely used technique to increase the performance of a tableau implementation is caching. For unsatisfiability caching, one caches sets of concepts that are known to be unsatisfiable. For such a cache entry, it holds that any superset is also unsatisfiable. Thus, if, in a future tableau expansion, one encounters a node label that is a superset of a cache entry, one can stop expanding the branch.</p><p>Analogously to unsatisfiability caching, one can define satisfiability caching and many systems combine both caches. We focus here, however, on unsatisfiability caching since the two problems are quite different in nature and the required data structures for an efficient cache retrieval can differ significantly. Before we define how and when we create cache entries, we formalise our notion of an unsatisfiability cache.</p><p>Definition 4 (Unsatisfiability Cache) Let K be a knowledge base and Con K the set of (sub-)concepts that occur in K. An unsatisfiability cache UC K for K is a subset of 2 Con K such that each cache entry S ∈ UC K is unsatisfiable w.r.t. K. An unsatisfiability retrieval for UC K and a completion graph G for K takes a set of concepts S ⊆ Con K from a node label of G as input. If UC K contains a set S ⊥ ⊆ S , then S ⊥ is returned; otherwise, the empty set is returned.</p><p>Although node labels can have many concepts that are not involved in any clashes, most implementations cache complete node labels. One reason for this might be that the often used backjumping <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b16">17]</ref> only allows the identification of all branching points involved in a clash, but there is no information about how the clash is exactly caused. We refer to this form of caching as label caching. Systems that use label caching typically also only check whether the exact node label from the current tableau is in the cache.</p><p>The creation of cache entries rapidly becomes difficult with increasing expressivity of the used DL. Already with blocking for the DL ALC, one can easily generate invalid cache entries <ref type="bibr" target="#b5">[6]</ref>. Apart from a node x with a clash in its label, the question is which other node labels are also unsatisfiable. For ALC, this is the case for all labels from x up to the ancestor y with the last non-deterministic expansion. With ALCI, a nondeterministic rule application on a descendant node of x can be involved in the clash, which makes it difficult to determine node labels that can be cached. Nevertheless, caching techniques for ALCI have been proposed <ref type="bibr" target="#b1">[2,</ref><ref type="bibr" target="#b2">3,</ref><ref type="bibr" target="#b4">5]</ref>, but the difficulty further increases in the presence of nominals and, to the best of our knowledge, the problem of caching with inverses and nominals has not yet been addressed in the literature. In order to avoid unsound results, current systems often deactivate caching in presence of inverse roles or at least in presence of nominals, especially with combined satisfiability and unsatisfiability caching <ref type="bibr" target="#b13">[14,</ref><ref type="bibr" target="#b16">17]</ref>.</p><p>The extraction of a small still unsatisfiable subset of a node label would yield better cache entries. The use of subset retrieval methods for the cache further increases the number of cache hits. We call such a technique precise caching. Although techniques to realise efficient subset retrieval exist <ref type="bibr" target="#b7">[8]</ref>, unsatisfiability caches that use such subset retrieval are only implemented in very few DL reasoners <ref type="bibr" target="#b6">[7]</ref>. Going back to the example in Figure <ref type="figure" target="#fig_2">1</ref>, for the node x 1 the set {¬B, (∃r.(∀r − .B))} could be inserted into the cache as well as {¬B, (A (∃r.(∀r − .B)))}. The number of cache entries should, however, be kept small, because the performance of the retrieval decreases with an increasing number of entries. Thus, the insertion of concepts for which the rule application is cheap (e.g., concept conjunction) should be avoided. Concepts that require the application of non-deterministic or generating rules are more suitable, because the extra effort of querying the unsatisfiability cache before the rule application can be worth the effort. Optimising cache retrievals for incremental changes further helps to efficiently handle multiple retrievals for the same node with identical or slightly extended concept labels.</p><p>The creation of new unsatisfiability cache entries based on dependency tracking can be done during backtracing, which is also coupled with the dependency directed backtracking as described next.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Dependency Backtracing</head><p>The dependency tracking defined in Section 2.1 completely retains all necessary information to exactly trace back the cause of the clash. Thus, this backtracing is qualified to identify all involved non-deterministic branching points for the dependency directed backtracking and also to identify small unsatisfiable sets of concepts that can be used to create new unsatisfiability cache entries.</p><p>Algorithm 1 performs the backtracing of facts and their tracked dependencies in the presence of inverse roles and nominals. If all facts and their dependencies are collected on the same node while backtracing, an unsatisfiability cache entry with these facts can be generated, assuming all facts are concept facts. As long as no nominal or Abox individual occurs in the backtracing, the unsatisfiability cache entries can also be generated while all concept facts have the same node depth. Thus, an important task of the backtracing algorithm is to hold as many facts as possible within the same node depth to allow for the generation of many cache entries. To realise the backtracing, we introduce the following data structure: If a clash is discovered in the completion graph, a set of fact dependency node tuples is generated for the backtracing. Each tuple consists of a fact involved in the clash, an associated dependency and the node where the clash occurred. The algorithm gets this set T of tuples as input and incrementally traces the facts back from the node with the clash to nodes with depth 0 (Abox individuals or root nodes).</p><p>In each loop round (line 3) some tuples of T are exchanged with tuples, whose facts are the cause of the exchanged one. To identify which tuple has to be traced back first, the current minimum node depth (line 4) and the maximum branching tag (line 5) are extracted from the tuples of T . All tuples, whose facts are located on a deeper node and whose dependencies are deterministic, are collected in the set A. Such tuples will be directly traced back until their facts reach the current minimum node depth (line <ref type="bibr" target="#b9">[10]</ref><ref type="bibr" target="#b10">[11]</ref><ref type="bibr" target="#b11">[12]</ref>. If there are no more tuples on deeper nodes with deterministic dependencies, i.e., A = ∅, the remaining tuples from deeper nodes with non-deterministic dependencies end loop 44: end procedure and the current branching tag are copied into B (line 14) in the next round. If B is not empty, one of these tuples (line 25) and the corresponding non-deterministic branching point (line 29) are processed. The backtracing is only continued, if all alternatives of the branching point are computed as unsatisfiable. In this case, all tuples, saved from the backtracing of other unsatisfiable alternatives, are added to T (line 31). Moreover, for c the concept fact in the tuple t, t can be replaced with tuples for the fact on which c non-deterministically depends (line 32).</p><p>For a possible unsatisfiability cache entry all remaining tuples, which also depend on the non-deterministic branching point, have to be traced back until there are no tuples with facts of some alternatives of this branching point left (line 33). An unsatisfiability cache entry is only generated (line 34), if all facts in T are concept facts for the same node or on the same node depth.</p><p>Unprocessed alternatives of a non-deterministic branching point have to be computed before the backtracing can be continued. It is, therefore, ensured that tuples do not consist of facts and dependencies from this alternative, which also allows for releasing memory (line 36). The tuples are saved to the branching point (line 37) and the algorithm jumps back to an unprocessed alternative (line 38).</p><p>If B is also empty, but there are still dependencies to previous facts, some tuples based on the current branching tag have to remain on the current minimum node depth. These tuples are collected in the set C (line 23) and are processed separately one per loop round, similar to the tuples of B, because the minimum node depth or maximum branching tag may change. The tuples of C can have deterministic dependencies, which are processed like the tuples of A (line 27). If all tuples have no more dependencies to previous facts, the algorithm terminates (line 21).</p><p>Besides the creation of unsatisfiability cache entries after non-deterministic dependencies (line 34), cache entries may also be generated when switching from a deeper node to the current minimum node depth in the backtracing (line 9 and 17) or when the backtracing finishes (line 20). The function that tries to create new unsatisfiability cache entries (line 17, 20, and 34) returns a Boolean flag that indicates whether the attempt has failed, so that the attempt can be repeated later.</p><p>For an example, we consider the clash {¬B, B} in the completion graph of Figure <ref type="figure" target="#fig_2">1</ref>. The initial set of tuples for the backtracing is T 1 (see Figure <ref type="figure" target="#fig_0">2</ref>). Thus, the minimum node depth for T 1 is 1 and the maximum branching tag is 0. Because there are no tuples on a deeper node, the sets A and B are empty for T 1 . Since all clashed facts are generated deterministically, the dependencies of the tuples have the current maximum branching tag 0 and are all collected into the set C. The backtracing continues with one tuple t from C, say t = B, k 11,0 , x 1 . The dependency k of t relates to the fact (∀r − .B)(x 2 ), which is a part of the cause and replaces the backtraced tuple t in T 1 . The resulting set T 2 is used in the next loop round. The minimum node depth and the maximum branching tag remain unchanged, but the new tuple has a deeper node depth and is traced back with a higher priority to enable unsatisfiability caching again. Thus, (∀r − .B), i 9,0 , x 2 is added to the set A and then replaced by its cause, leading to T 3 . Additionally, a pending creation of an unsatisfiability cache entry is noted, which is attempted in the third loop round since A and B are empty. The creation of a cache entry is, however, not yet sensible and deferred since T 3 still contains an atomic clash. Let t = B, j 10,0 , x 1 ∈ C be the T 1 = { ¬B, d 4,0 , x 1 , ¬B, e 5,0 , x 1 , B, j 10,0 , x 1 , B, k 11,0 , x 1 } ↓ T 2 = { ¬B, d 4,0 , x 1 , ¬B, e 5,0 , x 1 , B, j 10,0 , x 1 , (∀r − .B), i 9,0 , x 2 } ↓ T 3 = { ¬B, d 4,0 , x 1 , ¬B, e 5,0 , x 1 , B, j 10,0 , x 1 , (∃r.(∀r − .B)), g 7,0 , x 1 } ↓ T 4 = { ¬B, d 4,0 , x 1 , ¬B, e 5,0 , x 1 , r(x 1 , x 2 ), h 8,0 , x 1 , (∃r.(∀r − .B)), g 7,0 , x 1 } ↓ T 5 = { ¬B, d 4,0 , x 1 , ¬B, e 5,0 , x 1 , (∃r.(∀r − .B)), g 7,0 , x 1 } ↓ T 6 = { ¬B, d 4,0 , x 1 , (∀r.¬B), −, a 0 , (∃r.(∀r − .B)), g 7,0 , x 1 } ↓ T 7 = { r(a 0 , x 1 ), b 2,0 , x 1 , (∀r.¬B), −, a 0 , (A (∃r.(∀r − .B))), c 3,0 , x 1 } ↓ T 8 = { (∃r.(A (∃r.(∀r − .B))))−, a 0 , (∀r.¬B), −, a 0 } Fig. <ref type="figure" target="#fig_0">2</ref>. Backtracing sequence of tuples as triggered by the clash of Figure <ref type="figure" target="#fig_2">1</ref> tuple from T 3 that is traced back next. In the fourth round, the creation of a cache entry is attempted again, but fails because not all facts are concepts facts. The backtracing of r(x 1 , x 2 ), h 8,0 , x 1 then leads to T 5 . In the following round an unsatisfiability cache entry is successfully created for the set {¬B, (∃r.(∀r − .B))}. Assuming that now the tuple ¬B, e 5,0 , x 1 is traced back, we obtain T 6 , which includes the node a 0 . Thus, the minimum node depth changes from 1 to 0. Two more rounds are required until T 8 is reached. Since all remaining facts in T 8 are concept assertions, no further backtracing is possible and an additional cache entry is generated for the set {(∃r.(A (∃r.(∀r − .B)))), (∀r.¬B)}.</p><p>If a tuple with a dependency to node a 0 had been traced back first, it would have been possible that the first unsatisfiability cache entry for the set {¬B, (∃r.(∀r − .B))} was not generated. In general, it is not guaranteed that an unsatisfiability cache entry is generated for the node where the clash is discovered if there is no non-deterministic rule application and if the node is not a root node or an Abox individual. Furthermore, if there are facts that are not concept facts, these can be backtraced with higher priority, analogous to the elements of the set A, to make unsatisfiability cache entries possible again. To reduce the repeated backtracing of identical tuples in different rounds, an additional set can be used to store processed tuples for the alternative for which the backtracing is performed.</p><p>The backtracing can also be performed over nominal and Abox individual nodes. However, since Abox and absorbed nominal assertions such as {a} C have no previous dependencies, this can lead to a distributed backtracing stuck on different nodes. In this case, no unsatisfiability cache entries are possible.</p><p>A less precise caching can lead to an adverse interaction with dependency directed backtracking. Consider the example of Figure <ref type="figure" target="#fig_4">3</ref> decision. For example, C is in L(x 1 ) due to the disjunct (C 1 ∀r.C) of the first nondeterministic branching decision (illustrated in Figure <ref type="figure" target="#fig_4">3</ref> with the superscript 1). In the further generated s-successor x 2 a clash is discovered. For the only involved nondeterministic branching point 2, we have to compute the second alternative. Thus, an identical r-successor x 1 is generated again for which we can discover the unsatisfiability with a cache retrieval. If the entire label of x 1 was inserted to the cache, the dependent branching points of all concepts in the newly generated node x 1 would have to be considered for further dependency directed backtracking. Thus, the second alternative of the first branching decision also has to be evaluated (c.f. Figure <ref type="figure" target="#fig_4">3</ref>, case a., label caching). In contrast, if the caching was more precise and only the combination of the concepts (∃s.(A B)) and (∀s.¬A) was inserted into the unsatisfiability cache, the cache retrieval for the label of node x 1 would return the inserted subset. Thus, only the dependencies associated to the concepts of the subset could be used for further backjumping, whereby it would not be necessary to evaluate the remaining alternatives (c.f. Figure <ref type="figure" target="#fig_4">3</ref>, case b., precise caching).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Evaluation</head><p>Our Konclude reasoning system implements the enhanced optimisation techniques for SROIQ described above. We evaluate dependency directed backtracking and unsatisfiability caching with the help of concept satisfiability tests from the well-known DL 98 benchmark suite <ref type="bibr" target="#b9">[10]</ref> and spot tests from <ref type="bibr" target="#b11">[12]</ref>. An extended evaluation and a comparison of Konclude with other reasoners can be found in the accompanying technical report <ref type="bibr" target="#b14">[15]</ref>. From the DL 98 suite we selected satisfiable and unsatisfiable test cases (with _n resp. _p postfixes) and omitted those for which unsatisfiability caching is irrelevant and tests that were too easy to serve as meaningful and reproducible sample. We distinguish between precise caching and label caching as described in Section 3.2. To recall, precise caching stores precise cache entries consisting of only those backtraced sets of concepts that are explicitly known to cause an unsatisfiability in combination with subset retrieval, while label caching stores and returns only entire node labels.</p><p>Konclude implements precise unsatisfiability caching based on hash data structures <ref type="bibr" target="#b7">[8]</ref> in order to efficiently facilitate subset cache retrieval. Figure <ref type="figure" target="#fig_5">4</ref> shows the total number of processed non-deterministic alternatives for precise caching, label caching and without caching for a selection of test cases solvable within one minute.</p><p>Note that runtime is not a reasonable basis of comparison since the label caching has been implemented (just for the purpose of evaluation) on top of the built-in and computationally more costly precise caching approach. System profiling information, however, strongly indicate that building and querying the precise unsatisfiability cache within Konclude is negligible in terms of execution time compared to the saved processing time for disregarded alternatives. However, we have experienced an increase of memory usage by a worst-case factor of two in case of dependency tracking in comparison to no dependency handling.</p><p>Figure <ref type="figure" target="#fig_5">4</ref> reveals that precise caching can, for some test cases, reduce the number of non-deterministic alternatives by two orders of magnitude in comparison to label caching. Particularly the test cases k_path_n/p are practically solvable for Konclude only with precise caching for larger available problem sizes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions</head><p>We have presented an unsatisfiability caching technique that can be used in conjunction with the very expressive DL SROIQ. The presented dependency management allows for more informed backjumping, while also supporting the creation of precise cache unsatisfiability entries. In particular the precise caching approach can reduce the num-ber of tested non-deterministic branches by up to two orders of magnitude compared to standard caching techniques. The optimisations are well-suited for the integration into existing tableau implementations for SROIQ and play well with other commonly implemented optimisation techniques.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Definition 2 (</head><label>2</label><figDesc>Dependency) Let d be a pair in Facts G × Facts G . A dependency is of the form d n,b with n ∈ IN 0 a dependency number and b ∈ IN 0 a branching tag.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>(</head><label></label><figDesc>∃r.(A (∃r.(∀r − .B)))) , (∀r.¬B) , (C D) , C } r } (A (∃r.(∀r − .B))) , ¬B , A , (∃r.(∀r − .B)) , B } r }</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Tracked dependencies for all facts in the generated completion graph</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Definition 5 (</head><label>5</label><figDesc>Fact Dependency Node Tuple) A fact dependency node tuple for G is a triple c, d n,b , x with c ∈ Facts G , d n,b ∈ Dep G and x ∈ V. As abbreviation we also write C, d n,b , x if c is the concept fact C(x).</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 3 .</head><label>3</label><figDesc>Fig.3. More pruned alternatives due to dependency directed backtracking and precise caching (case b.) in contrast to label caching (case a.)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Log scale comparison of processed alternatives for different caching methods</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_0">http://www.hermit-reasoner.com</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m">The Description Logic Handbook: Theory, Implementation, and Applications</title>
				<editor>
			<persName><forename type="first">F</forename><surname>Baader</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Calvanese</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Mcguinness</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">D</forename><surname>Nardi</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">P</forename><surname>Patel-Schneider</surname></persName>
		</editor>
		<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
	<note>second edn</note>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Tableau caching for description logics with inverse and transitive roles</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Ding</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Haarslev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 2006 Int. Workshop on Description Logics</title>
				<meeting>2006 Int. Workshop on Description Logics</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="143" to="149" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">A procedure for description logic ALCF I</title>
		<author>
			<persName><forename type="first">Y</forename><surname>Ding</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Haarslev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 16th European Conf. on Automated Reasoning with Analytic Tableaux and Related Methods (TAB-LEAUX&apos;07)</title>
				<meeting>16th European Conf. on Automated Reasoning with Analytic Tableaux and Related Methods (TAB-LEAUX&apos;07)</meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">EXPTIME tableaux for ALC</title>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">M</forename><surname>Donini</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Massacci</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Artificial Intelligence</title>
		<imprint>
			<biblScope unit="volume">124</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="87" to="138" />
			<date type="published" when="2000">2000</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Sound global state caching for ALC with inverse roles</title>
		<author>
			<persName><forename type="first">R</forename><surname>Goré</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Widmann</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 18th European Conf. on Automated Reasoning with Analytic Tableaux and Related Methods (TABLEAUX&apos;09)</title>
				<meeting>18th European Conf. on Automated Reasoning with Analytic Tableaux and Related Methods (TABLEAUX&apos;09)</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="volume">5607</biblScope>
			<biblScope unit="page" from="205" to="219" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Consistency testing: The RACE experience</title>
		<author>
			<persName><forename type="first">V</forename><surname>Haarslev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Möller</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings, Automated Reasoning with Analytic</title>
				<meeting>Automated Reasoning with Analytic</meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="57" to="61" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">High performance reasoning with very large knowledge bases: A practical case study</title>
		<author>
			<persName><forename type="first">V</forename><surname>Haarslev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Möller</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 17th Int. Joint Conf. on Artificial Intelligence (IJCAI&apos;01)</title>
				<meeting>17th Int. Joint Conf. on Artificial Intelligence (IJCAI&apos;01)</meeting>
		<imprint>
			<publisher>Morgan Kaufmann</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="161" to="168" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A new method to index and query sets</title>
		<author>
			<persName><forename type="first">J</forename><surname>Hoffmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Koehler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 16th Int. Conf. on Artificial Intelligence (IJCAI&apos;99)</title>
				<meeting>16th Int. Conf. on Artificial Intelligence (IJCAI&apos;99)</meeting>
		<imprint>
			<publisher>Morgan Kaufmann</publisher>
			<date type="published" when="1999">1999</date>
			<biblScope unit="page" from="462" to="467" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">The even more irresistible SROIQ</title>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Kutz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Sattler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 10th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR&apos;06)</title>
				<meeting>10th Int. Conf. on Principles of Knowledge Representation and Reasoning (KR&apos;06)</meeting>
		<imprint>
			<publisher>AAAI Press</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="57" to="67" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">DL systems comparison</title>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 1998 Int. Workshop on Description Logics (DL&apos;98)</title>
				<meeting>1998 Int. Workshop on Description Logics (DL&apos;98)</meeting>
		<imprint>
			<date type="published" when="1998">1998</date>
			<biblScope unit="volume">11</biblScope>
			<biblScope unit="page" from="55" to="57" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Optimizing description logic subsumption</title>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Logic and Computation</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="267" to="293" />
			<date type="published" when="1999">1999</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<title level="m" type="main">Reasoning with OWL -system support and insights</title>
		<author>
			<persName><forename type="first">T</forename><surname>Liebig</surname></persName>
		</author>
		<idno>TR-2006-04</idno>
		<imprint>
			<date type="published" when="2006-09">September 2006</date>
			<pubPlace>Ulm, Germany</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Ulm University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. Rep.</note>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Scalability via parallelization of OWL reasoning</title>
		<author>
			<persName><forename type="first">T</forename><surname>Liebig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Steigmiller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Noppens</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Workshop on New Forms of Reasoning for the Semantic Web: Scalable &amp; Dynamic (NeFoRS&apos;10)</title>
				<meeting>Workshop on New Forms of Reasoning for the Semantic Web: Scalable &amp; Dynamic (NeFoRS&apos;10)</meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Pellet: A practical OWL-DL reasoner</title>
		<author>
			<persName><forename type="first">E</forename><surname>Sirin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Parsia</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><forename type="middle">C</forename><surname>Grau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kalyanpur</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Katz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Web Semantics</title>
		<imprint>
			<biblScope unit="volume">5</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="51" to="53" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">Extended caching, backjumping and merging for expressive description logics</title>
		<author>
			<persName><forename type="first">A</forename><surname>Steigmiller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Liebig</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Glimm</surname></persName>
		</author>
		<idno>TR-2012-01</idno>
		<ptr target="http://www.uni-ulm.de/fileadmin/website_uni_ulm/iui/Ulmer_Informatik_Berichte/2012/UIB-2012-01.pdf" />
		<imprint>
			<date type="published" when="2012">2012</date>
			<pubPlace>Ulm, Germany</pubPlace>
		</imprint>
		<respStmt>
			<orgName>Ulm University</orgName>
		</respStmt>
	</monogr>
	<note type="report_type">Tech. Rep.</note>
</biblStruct>

<biblStruct xml:id="b15">
	<analytic>
		<title level="a" type="main">FaCT++ description logic reasoner: System description</title>
		<author>
			<persName><forename type="first">D</forename><surname>Tsarkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 3rd Int. Joint Conf. on Automated Reasoning (IJCAR&apos;06). LNCS</title>
				<meeting>3rd Int. Joint Conf. on Automated Reasoning (IJCAR&apos;06). LNCS</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="volume">4130</biblScope>
			<biblScope unit="page" from="292" to="297" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Optimizing terminological reasoning for expressive description logics</title>
		<author>
			<persName><forename type="first">D</forename><surname>Tsarkov</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Horrocks</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">F</forename><surname>Patel-Schneider</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">J. of Automated Reasoning</title>
		<imprint>
			<biblScope unit="volume">39</biblScope>
			<biblScope unit="page" from="277" to="316" />
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
