<!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>Using Prolog unification to solve non-standard reasoning problems in Description Logics</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Simona Colucci</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francesco M. Donini</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DISUCOM, Universita` della Tuscia</institution>
          ,
          <addr-line>Viterbo</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We present a Logic Programming prototype implementation working as proof-of-concept for a unified strategy proposed in our past research to solve several non-standard reasoning problems in Description Logics (DLs), denoted by Constructive Reasoning. In order to proof both the problem-independence and the logic-independence of the adopted approach, the prototype is focused on the solution of three different problems - namely Least Common Subsumer, Concept Abduction and Concept Difference - and two different, though simple, DLs, i.e., EL and ALN . Accordingly to the implemented strategy, problems are formalized as conjunction of both subsumption and non-subsumption statements, causing the whole prototype to rely on a Prolog program solving subsumption. The program is built around a predicate, which on the one hand checks for the existence of subsumption relations between ground elements, providing boolean answers, and on the other hand, if inverted, exploits Prolog built-in unification to enumerate variable values making subsumption true between concept terms containing concept variables.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <sec id="sec-1-1">
        <title>The power of knowledge lays in its ability to enhance the production of unknown infor</title>
        <p>mation, through management strategies whose significance increases with the level of
novelty introduced by provided results.</p>
        <p>
          In past knowledge management literature, in fact, interest has been given to the
proposal of special purpose inferences allowing for exploiting as much as possible the
informative content achieved through knowledge representation effort. To this aim,
several non-standard reasoning services have been proposed and continue to be investigated
to cope with different representation or inference needs. The most relevant services we
may cite are explanation [
          <xref ref-type="bibr" rid="ref1 ref27 ref28 ref33 ref34">1</xref>
          ], interpolation [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], concept abduction [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], concept
contraction [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], concept unification [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], concept difference [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], concept similarity [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], concept
rewriting [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], least common subsumer [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], most specific concept [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], knowledge base
completion [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ], forgetting or uniform interpolation [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>We notice that the crucial role of non-standard reasoning in the process of capturing unexpected sources of information has been stressed also in research fields apparently far from knowledge representation [13].</title>
      </sec>
      <sec id="sec-1-3">
        <title>Moreover, recent Description Logics (DLs) literature has shown interest for easily</title>
        <p>
          tractable, even though not very expressive, sub-languages, like E L ([
          <xref ref-type="bibr" rid="ref14 ref15 ref16">14, 15, 16</xref>
          ]).
        </p>
      </sec>
      <sec id="sec-1-4">
        <title>In our past research [17] we proposed an integrated approach and solving strategy</title>
        <p>for dealing with several different non-standard inferences. The framework, presented
as independent of the DL adopted for knowledge representation, takes a constructive
reasoning1 perspective on problem solving: most inferences are in the form “Find one
or more concept(s) C such that fsentence involving C g“ and the proposed framework
aims at building such C.</p>
      </sec>
      <sec id="sec-1-5">
        <title>In order to show the feasibility of such an integrated constructive reasoning ap</title>
        <p>proach, we here present a prototype implementation in Logic Programming solving</p>
      </sec>
      <sec id="sec-1-6">
        <title>Least Common Subsumer, Concept Difference and Concept Abduction in the simple</title>
        <p>DLs E L, ALN .</p>
        <p>Though still inefficient at this stage, the prototype works as proof-of-concept for
the integrated solution framework. It exploits the property of our approach according
to which most non-standard reasoning problems may be formalized as conjunction of
both subsumption and non-subsumption statements and therefore relies on a Prolog
program solving subsumption, built around a main predicate called either subs el or
subs aln, depending on the adopted DL. In particular, we show how to invert the subs
predicate (either subs el or subs aln ), so that not only it can check for the existence
of subsumption relations between ground elements, providing boolean answers, but it
can also exploit Prolog built-in unification to enumerate variable values making
subsumption true between concept terms containing concept variables. The approach takes
a generate-and-test strategy.</p>
        <p>In the next section, we recall some preliminary notions of the formalism and
reasoning services we adopt. In Section 3 we shortly recall how to model the three problems
in the integrated framework. Then,we describe the architecture of the prototype
implementing the solving strategy in Section 4, before delving into details of subsumption
program, on which the whole prototype relies, in Section 5. We show how to query
the presented prototype in Section 6, and, finally, close the paper with discussions and
future work.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Basic Description Logics</title>
      <sec id="sec-2-1">
        <title>In the following, to make this paper self-contained, we briefly recall the formalism we</title>
        <p>
          adopt for knowledge representation; the reader interested in further details may consult
a reference book [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]. DLs are a family of formalisms and reasoning services widely
employed for knowledge representation in a decidable fragment of First Order Logic.
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>The alphabet of each DL is therefore made up by unary and binary predicates, de</title>
        <p>noted as Concepts Names and Role Names, respectively. Each DL allows for a
different set of constructors for describing concepts. The set of constructors allowed by a DL
characterizes it in terms of expressiveness and reasoning complexity: the more a DL is
expressive, the harder is inferring new knowledge on its descriptions [19, Ch.3].</p>
      </sec>
      <sec id="sec-2-3">
        <title>More complex concepts inclusions and definitions may be modeled for the formal</title>
        <p>
          representation of the domain of interest, the intensional knowledge which takes the
name TBox in DL systems. By the way, in this paper we admit an empty TBox, given
that it has been shown that the presence of a TBox affects the termination of some of
the services we implement even for very simple DLs [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>1 We notice that, although the lexical similarity of denotation, our approach is not related to</title>
        <p>
          Constructive Description Logics [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>The semantic of concept descriptions is conveyed through an Interpretation I =
( I ; I ) , where I is a non–empty set denoting the domain of I and I is an
interpretation function such that: i) I maps each concept name A in a set AI I ; ii) I
maps each role name R in a binary relation rI I I .</p>
      </sec>
      <sec id="sec-2-5">
        <title>DL constructors adopted in the paper are shown in Table 2. The most important</title>
        <p>reasoning service in DL checks for specificity hierarchies, by determining whether a
concept description is more specific than another one or, formally, if there is a
subsumption relation between them.</p>
        <p>Definition 1 (Subsumption). Given two concept descriptions C and D in a DL L, we
say that D subsumes C if CI DI . We write C v D.</p>
      </sec>
      <sec id="sec-2-6">
        <title>The two, simple, DLs adopted in this paper are such that subsumption of concepts</title>
        <p>
          can be computed by so-called structural subsumption algorithms, i.e., algorithms that
compare the syntactic structure of (possibly normalized) concept descriptions.
Algorithms for structural subsumption in ALN have been proposed in the literature [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <sec id="sec-2-6-1">
          <title>Differently from the approaches proposed for E L so far [22], we adopt a structural</title>
          <p>subsumption algorithm, which, although quite inefficient, allows for easily inverting
subsumption in our Prolog implementation.
3</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Background Framework</title>
      <p>
        The approach presented in our past research [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] models each of the problems at hand
as Optimal Solution Problem, whose definition exploits specific second order formulas,
written as conjunction of concept subsumptions and non-subsumptions, in the following
form:
= (C1 v D1) ^
^ (C` v D`) ^ (C`+1 6v D`+1) ^
^ (Cm 6v Dm)
(1)
      </p>
      <sec id="sec-3-1">
        <title>In Formula (1), C1; : : : ; Cm,D1; : : : ; Dm 2 DL denote concept terms containing</title>
        <p>concept variables X0; X1; : : : ; Xn. We say that is satisfiable in DL iff there exists
a substitution = X0 ! E0; :::Xn ! En, where E1, En, are concept terms in DL,
such that ( ) is true (i.e., , each subsumption and non-subsumption statement in (1) is
true). If is satisfiable in DL then E is called a solution for and the set of solutions
for is defined as:</p>
        <p>SOL( ) = fE = hE0; : : : ; Eni j E is a solution for g
Definition 2 (OSP). An Optimal Solution Problem (OSP) P is a pair h ; i, where
is a formula of the form (1) and is a preorder over SOL( ). A solution to P is a
concept tuple E such that both E 2 SOL( ) and there is no other E 0 2 SOL( ) with
E 0 E .
3.1</p>
        <p>Non-standard Services in DLs as OSPs</p>
        <sec id="sec-3-1-1">
          <title>In the following, we recall how to model the three investigated problems as OSP. Aiming at a fixpoint computation for solving each of the problems below, a greatest element (i.e., a least preferred one) w.r.t. is provided, which could be used to start the iteration of an inflationary operator.</title>
          <p>
            Least Common Subsumer
Definition 3. [
            <xref ref-type="bibr" rid="ref23">23</xref>
            ] Let C1 and C2 be two concepts. The Least Common Subsumer (LCS)
of C1; C2 is the least element w.r.t. v of the set of concepts which are Common
Subsumers of C1; C2 and is unique up to equivalence.
          </p>
        </sec>
        <sec id="sec-3-1-2">
          <title>Common subsumers of C1; C2 satisfy the formula of the form (1):</title>
          <p>LCS = (C1 v X) ^ (C2 v X)
Then, the LCS problem can be expressed by the OSP LCS = h LCS ; @i. We note that
&gt; is always a solution of LCS which is a greatest element w.r.t. @.</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Concept Difference Following the algebraic approaches adopted in classical infor</title>
          <p>
            mation retrieval, Concept Difference [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ] was introduced as a way to measure concept
similarity.
          </p>
          <p>
            Definition 4. [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ] Let C and D be two concepts such that C v D. The Concept
Difference C D is defined by maxvfB 2 DL such that D u B Cg.
          </p>
        </sec>
        <sec id="sec-3-1-4">
          <title>We can define the following formula of the form (1):</title>
          <p>
            DIF F = (C v (D u X)) ^ ((D u X) v C)
Such a definition causes Concept Difference to be modeled as the OSP DIF F =
h DIF F ; Ai. We recall that, in spite of its name, a Concept Difference problem may
have several solutions [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ]. Note that a greatest solution for DIF F w.r.t. A is C itself.
          </p>
        </sec>
        <sec id="sec-3-1-5">
          <title>Concept Abduction Concept Abduction is a straight adaptation of Propositional Ab</title>
          <p>duction.</p>
          <p>
            Definition 5. [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] Let C, D, be two concepts in DL, both C and D satisfiable. A
Concept Abduction Problem (CAP) is finding a concept H 2 DL such that C u H 6v ?,
and C u H v D.
          </p>
        </sec>
        <sec id="sec-3-1-6">
          <title>Every solution H of a CAP satisfies the formula</title>
          <p>ABD = (C u X 6v ?) ^ (C u X v D)</p>
        </sec>
        <sec id="sec-3-1-7">
          <title>The preference relation for evaluating solutions is subsumption-maximality, since less</title>
          <p>specific solutions should be preferred because they hypothesize the least. According to
the proposed framework, we can model Subsumption-maximal Concept Abduction as
ABD = h ABD; Ai. Note that a greatest—i.e., most specific—solution of ABD w.r.t.</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>A is D, if C u D is a satisfiable concept (if it is not, then ABD has no solution at all</title>
        <p>[3, Prop.1]).
3.2</p>
        <p>Optimality by Fixpoint</p>
        <sec id="sec-3-2-1">
          <title>Optimal solutions w.r.t. a preorder might be reached by iterating an inflationary operator. We now specialize the definition of inflationary operators and fixpoints to our setting.</title>
          <p>Definition 6 (Inflationary operators and fixpoints). Given an OSP P = h ; i, we
say that the operator bP : SOL( ) ! SOL( ) (for better) is inflationary if for every
E 2 SOL( ), it holds that bP(E ) E if E is not a least element of , bP(E ) = E
otherwise. In the latter case, we say that E is a fixpoint of bP.</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>Intuitively, bP(E ) is a solution better than E w.r.t. , if such a solution exists, otherwise</title>
        <p>a fixpoint has been reached, and such a fixpoint is a solution to P. Being bP inflationary,
a fixpoint is always reached by the following induction: starting from a solution E , let</p>
        <p>E0 = E</p>
        <p>Ei+1 = bP(Ei) for i = 0; 1; 2; : : :</p>
      </sec>
      <sec id="sec-3-4">
        <title>Then, there exists a limit ordinal such that E is a fixpoint of bP. For each of the pre</title>
        <p>vious non-standard reasoning services, we highlighted a greatest solution E 2 SOL( )
which this iteration can start from. Obviously, when is well-founded (in particular,
when SOL( ) is finite) the fixpoint is reached in a finite number of steps. However, also
when after n iterations En is not a fixpoint, En can be considered as an approximation
of an optimal solution, since Ei+1 Ei for every i = 0; : : : ; n.</p>
        <sec id="sec-3-4-1">
          <title>We stress the fact that we are not proving here that every instance of Formula (1)</title>
          <p>can be solved by this method. For instance, deciding whether a formula of the form (1)
is satisfiable is an open problem for ALN , to the best of our knowledge. In this paper
we address particular cases of (1), corresponding to known non-standard inferences, for
which a solution is always known to exist.</p>
        </sec>
        <sec id="sec-3-4-2">
          <title>It is interesting to observe that such particular cases are similar to matching problems [24], in that variables appear only on one side of each subsumption and nonsubsumption statement.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Prototype Architecture</title>
      <sec id="sec-4-1">
        <title>In the following, we present a prototype Logic Programming system implementing the</title>
        <p>
          approach to non-standard inference above recalled [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. The system has been developed
exploiting the integrated environment provided by SWI-Prolog2 (Multi-threaded, 32
bits, Version 5.6.64) and follows the modular architecture depicted in Figure 1.
        </p>
        <p>Among possible languages for prototyping, we believe that Prolog combines in a
unique fashion three distinguishable advantages:
1. its built-in unification easily parses concept terms, so the implementation of a
parsing module can be skipped over
2. the double nature of programs-as-predicates allows us to isolate Subsumption both
as a predicate and as a DL-specific module that can be changed according to the
adopted Description Logic, while keeping fixed the incremental computation, and</p>
      </sec>
      <sec id="sec-4-2">
        <title>3. the input/output duality of arguments in a predicate lets us invert Subsumption by (carefully) building a program that decides Subsumption; the tradeoff between direct implementation and generate-and-test inefficiency tends towards the former in a prototype.</title>
      </sec>
      <sec id="sec-4-3">
        <title>The system design has been focused on proving main distinguishing features of</title>
        <p>our approach: the generality and the independence of the adopted DL (within a given
subset) of non-standard inferences solving strategy. In particular, the prototype here
presented is devoted to the solution of three different reasoning services, namely Least
Common Subsumer, Concept Difference and Concept Abduction, in E L and ALN .3</p>
      </sec>
      <sec id="sec-4-4">
        <title>2 http://www.swi-prolog.org/</title>
      </sec>
      <sec id="sec-4-5">
        <title>3 An executable version of the prototype is available at the following address:</title>
        <p>http://dl.dropbox.com/u/28260263/CILC2012exe.rar.</p>
      </sec>
      <sec id="sec-4-6">
        <title>Coherently with the strategy introduced so far, the prototype searches for solutions</title>
        <p>for the system of the OSP modeling the non-standard inference need at hand. It is easy to
notice that, therefore, the whole approach relies on the logic rules formalizing structural
subsumption, which is at the basis of each formula to be solved.</p>
        <p>The crucial role of subsumption affects the system architecture in Figure 1, whose
main components are described below:
– Subs is the central component, which implements a recursive algorithm solving
subsumption between concept descriptions; such a module is designed to provide
one interface for each DL adopted to model the problem: the current prototype
allows for solving subsumption in E L and ALN .
– Problems is the component implementing OSP solving algorithms: the current
prototype allows for solving Least Common Subsumer (lcs), Concept Difference (diff)
and Concept Abduction (abd), but Problems may be extended to include further
services. It is noteworthy how, depending on the DL adopted to model the problem,
a different subsumption interface, either subs EL or subs ALN, is invoked.
– Support Modules includes clauses supporting the performance of subsumption
and inferences included in Problems, but related to sorts of information processing
outside the core solving algorithms, such as special purpose lists manipulation and
concepts normalization.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5 Inverting Subsumption</title>
      <p>In order to show the prototype implementing the solving strategy detailed so far, we
refer to Least Common Subsumer computation, solved by the Prolog code fragment in the
following, excerpted from Problems module. The formalization of Concept Difference
and Concept Abduction problems is given in Appendix to enhance paper readability.
1 :-use_module(’subs_el’).
2 :-use_module(’subs_aln’).
3 :-use_module(’support_modules’).
4 :-use_module(’normalization’).
5 problem(lcs,C, D, Result, DL):- lcs(C, D, Result, DL).
6 problem(abd, C, D, Result, DL):- abd(C, D, Result, DL).
7 problem(diff, C, D, Result, DL):- diff(C, D, Result, DL).
8 lcs(C1, C2, LN, DL)
:9 manage_concept(C1, C1N, DL),
10 manage_concept(C2, C2N, DL),
11 find_lcs(C1N, C2N, [top], L, DL),
12 normalization_top(L, LN).
13 find_lcs(C1, C2, L1, L3, DL)
:14 decorate(L1, L2),
15 better_lcs(C1, C2, L1,L2, DL), !,
16 find_lcs(C1, C2, L2, L3, DL).
17 find_lcs(C1, C2, L1, L1, _).
18 decorate(C, C0):- list(C, CL), select(some(R, D), CL, Rest),
19 decorate(D, DL), append(Rest, [some(R, DL)], C0).
20 decorate(C, C0):- list(C, CL), append(CL, [X0], C0).</p>
      <p>not(subs_el(L1, L2)).
25 better_lcs(C1, C2, L1, L2,
aln):26 computeMaxAtLeast(C1,Max3),
27 computeMaxAtLeast(C2,Max4),
28 MaxL is max(Max3,Max4),
29 computeMaxAtMost(C1,Max1),
30 computeMaxAtMost(C2,Max2),
31 MaxM is max(Max1,Max2),
32 subs_aln(C1, L2, MaxL, MaxM),
33 subs_aln(C2, L2, MaxL, MaxM),
34 not(subs_aln(L1, L2, MaxL, MaxM)).</p>
      <sec id="sec-5-1">
        <title>We shortly recall that the shared strategy we proposed relies on the solution of an Op</title>
        <p>timal Solution Problem in which we search for solutions which are optimal w.r.t. a
given preorder, by incrementally trying to find solutions which are better than the one
at hand, till the best one is reached.</p>
        <p>In order to compute the Least Common Subsumer LN of two concepts, C1 and C2
in a DL (see line 8), we need to incrementally construct a concept which subsumes
both C1 and C2, and is optimal w.r.t. subsumption minimality (in fact, LN must be the
most specific common subsumer of C1 and C2). To this aim, we start considering the
trivial, subsumption maximal, solution, L1 = &gt; (line 11) and recursively try to find
(lines 13–16) better common subsumers L2 (line 15), by solving the system reported
hereafter: fC1 v L2; C2 v L2; L1 6v L2g (lines 22–24 or 32–34, depending on the
adopted DL). When no common subsumer Ln such that Ln 1 6v Ln exists, Ln 1 is
returned as best (Least) Common Subsumer (line 17).</p>
      </sec>
      <sec id="sec-5-2">
        <title>The incremental construction of candidate better common subsumers L2 exploits</title>
        <p>a predicate, namely decorate, which makes the common subsumer at hand L1 more
specific by appending fresh variables to it (lines 18–20). In fact, given that L1 is
represented as a Prolog list, the predicate append performs a sort of conjunction of the
appended variable to L1.</p>
        <p>We notice that, even though different clauses are needed to check if L2 is better
than L1 in E L (lines 21–24) and ALN (lines 25–34), such a distinction is only due to
efficiency reasons: subs aln needs two parameters more than subs el and the adoption
of a logic-independent unique better lcs would force subs el to work less efficiently
with such two parameters, even though instantiated to anonymous variables. By the
way, the reader can notice that the solving strategy underlying better is shared by both
characterizations.</p>
      </sec>
      <sec id="sec-5-3">
        <title>We observe also that all predicates invoked but not listed in the previously reported</title>
        <p>excerpt belong to one of the imported modules. In particular, subs el and sub aln
modules provide the related logic-dependent subsumption programs, listed in Section 5.1.</p>
      </sec>
      <sec id="sec-5-4">
        <title>The other imported modules, i.e., support modules and normalization, include clauses crucial for the problem solution, but outside the core solving algorithms.</title>
        <p>5.1</p>
        <p>Subsumption
Both in E L and in ALN , the subsumption algorithm takes as input concept descriptions
written as conjunctions, formalized as Prolog lists. Given two concept descriptions C1
and C2 in a DL DL, in order to prove whether C2 subsumes C1 (formally C1 v C2),
the algorithm recursively searches, for each member of the list related to C2, at least one
subsumed member in the list representing C1. In other words, the whole subsumption
check mechanism reverts to a one-one comparison between list members (or, more
appropriately, conjuncts).</p>
      </sec>
      <sec id="sec-5-5">
        <title>With ground lists, the proposed subsumption predicate just returns boolean answers</title>
        <p>showing check results. Nevertheless, we notice that conjuncts in input concept
descriptions may also include concept variables: when lists are not ground, subsumption is
inverted to exhibit possible variables substitutions making subsumption between list
members true. The mechanism exploits Prolog built-in unification.</p>
        <p>The predicate making sumbsumption inversion possible is my member (see calls in
lines 15 and 18 in E L, for example), whose code is included in support modules and
shown in the following:
1 mymember(X,
L):2 ground(L), !,
3 member(X, L).
4 mymember(X, [X]).
5 mymember(X, [X|L]).
6 mymember(X, [_|L])
:7 mymember(X, L).</p>
      </sec>
      <sec id="sec-5-6">
        <title>The reader can notice that my member manages both the case of ground (lines 1–3)</title>
        <p>and non-ground (lines 4–7) lists. The former case reverts to the use of built-in predicate
member, which lists all members of the ground list at hand. The latter case allows for
avoiding premature variables unification in membership check.</p>
      </sec>
      <sec id="sec-5-7">
        <title>As hinted before, the overall mechanism solving subsumption is shared by both implementations and is built on one-to-one comparison of list members, whose membership is checked with my member predicate; such members may therefore be either ground elements or variables.</title>
        <sec id="sec-5-7-1">
          <title>Clauses comparing single list members (lines 20–38 in E L and 1–32 in ALN )</title>
          <p>exploit syntactical features of the DL at hand to either check subsumption between
ground elements or unify variables to values making subsumption true.</p>
        </sec>
      </sec>
      <sec id="sec-5-8">
        <title>In the following, we provide the complete Prolog code for the implementation of</title>
        <p>subsumption in E L, to make the reader aware of the overall list comparison mechanism,
shared also by the corresponding implementation in ALN . For the sake of synthesis,
we therefore provide only clauses related to the one-to-one comparison in the case of
ALN .</p>
        <sec id="sec-5-8-1">
          <title>Subsumption in EL The Prolog program solving subsumption in E L is shown here</title>
          <p>after. We recall that the implemented algorithm exploits a structural characterization
of subsumption, which makes the above mentioned inversion easy, despite the inherent
inefficiency introduced.</p>
        </sec>
      </sec>
      <sec id="sec-5-9">
        <title>We notice that, when input concepts include concept variables (or, according to the</title>
        <p>alphabet of our Prolog code, are not ground), the inversion could generate the same
solution and unify a variable to the same value more than once. In order to prevent such an
inefficiency and redundancy source, we manage a list, which we call BL (acronym for
Black List), of variables substitutions already produced by subs el clauses. Clauses in
lines 20–29 succeed, in fact, when both structural subsumption holds and the involved
variable unification has not been adopted before (see line 22 and line 29). Whenever
a subsoneone clause succeeds, the concept associated to the variable value causing the
success is added to the list BL, which thus represents our progressive solution. In
particular, in line 27, it is prevented the success with variable values producing concepts
subsuming BL, which are useless w.r.t. the construction of our target solution.
1 subs_el(C1,
C2):2 manage_concept(C1, C1L, el),
3 manage_concept(C2, C2L, el), !,
4 subsmanymany(C1L, C2L, []).
5 subsmanymany(L1, [], _)
:6 not(ground(L1)) -&gt; putTop(L1); true.
7 subsmanymany(L1, [C|L2],
BL):8 ground(C) -&gt; (
9 subsonemanyground(L1, C),
10 subsmanymany(L1, L2, BL));
11 (subsonemany(L1, C, BL, BLF),
12 subsmanymany(L1, L2, BLF)).
13 subsonemany(L,A, BL,
BLF):14 not(member(top, BL)),
15 mymember(B, L),
16 subsoneone(B, A, BL, BLF).
17
subsonemanyground(L,A):18 mymember(B, L),
19 subsoneoneground(B, A).
20 subsoneone(A, A, BL,
BLF):21 literal(A),
22 not(member(A, BL)),
23 append([A], BL, BLF).
24 subsoneone(some(R,C1), some(R, C2N), BL,
BLF):25 subs_el(C1, C2),
26 normalization_top(C2, C2N),
27 not(subs_el(BL,some(R,C2N))),
28 append([some(R,C2N)],BL,BLF) .
29 subsoneone(Any, top, [], [top]).
30 subsoneoneground(A, A):- literal(A).
31 subsoneoneground(some(R,C1), some(R,
C2)):32 subs_el(C1, C2).
33 subsoneoneground(_, top).
34
putTop(L):35 term_variables(L,Vars),
36 allTop(Vars).
37 allTop(Vars)
:38 Vars = [] -&gt; true; (Vars = [top| Rest], allTop(Rest)).</p>
        <p>Subsumption in ALN
1 subsoneone(bottom, _ , _, _).
2 subsoneone(_, top, _, _).
3 subsoneone(A, A, _, _):- literal(A).
4 subsoneone(atleast(N,R), atleast(M, R), _,
_):5 integer(N),
6 integer(M),
7 &gt;=(N, M).
8 subsoneone(atleast(N,R), atleast(M, R),_,
_):9 var(M),
10 geqpositive(N,M).
11 subsoneone(atleast(N,R), atleast(M, R), MaxL,
_):</p>
        <p>C1 = 9R.(A u B) u 9R.(C u D);</p>
        <p>C2 = 9R.(A u C) u 9R.(B u D)</p>
        <p>C2 = 9R.(P u Q u 9R.P u 9R.Q)
C1 = (&gt; 3 G) u (6 7 S) u 8R.(6 2 M );</p>
        <p>C2 = (&gt; 4 G) u (6 3 S) u 8R.U
4. L = LCS(C1; C2), DL = ALN</p>
        <p>C1 = (&gt; 3 G) u 8R.(6 2 M ) ;</p>
        <p>C2 = (6 1 G) u 8R.(6 3 M )
12 var(N),
13 integer(M),
14 integer(MaxL),
15 leqBounded(M,N,MaxL).
16 subsoneone(atmost(N,R), atmost(M, R),_,
_):17 integer(N),
18 integer(M),
19 !,
20 =&lt;(N,M).
21 subsoneone(atmost(N,R), atmost(M, R),_,
MaxM):22 var(M),
23 integer(MaxM),
24 leqBounded(N, M, MaxM).
25 subsoneone(atmost(N,R), atmost(M, R),_,
_):26 var(N),
27 geqpositive(M,N).
28 subsoneone(_, all(R, top), MaxL,
MaxM):29 nonvar(R).
30 subsoneone(all(R,C1), all(R, C2), MaxL,
MaxM):31 subsoneone(C1, C2, MaxL, MaxM).
32 subsoneone(atmost(0, R), all(R, C), _, _).
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Querying the Prototype</title>
      <sec id="sec-6-1">
        <title>In order to show our prototype working mode, we refer to the examples in the following, related to the three computational problems and the two DLs investigated in the paper:</title>
        <p>C2 = A u B u 9R.(C u D u 9S.(H u J ))
C1 = (&gt; 2 R) u 8R.:A u B; uC; C2 = B u (&gt; 3 R)
C2 = A u B u 9R.(9S.H)</p>
        <p>C1 = A u B u 9R.(C u D u 9S.(H u J ));</p>
        <p>C1 = A u 8R.(B u (6 4 S)) u (6 0 T );
C2 = A u 8R.(6 4 S) u 8T .(D u 8U .E u (&gt; 2 V ))
C1 = 8R.?;
C2 = 8R.(:P u P1)</p>
        <p>C1 = 9R.(9S.H);
10. L = ABD(C1; C2), DL = ALN</p>
        <p>C1 = (&gt; 3 G) u 8R.(6 2 M ) ; C2 = ?</p>
      </sec>
      <sec id="sec-6-2">
        <title>In Table 2 we show the Prolog formalization and related results for the queries corresponding to the problems before. We notice that, when problems admit multiple solu</title>
        <p>tions, like in the case of Concept Abduction and Concept Difference, the system stops
searching for solutions when the first one is retrieved.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Discussion and Future Work</title>
      <sec id="sec-7-1">
        <title>Motivated by the need to unify as much as possible the process of solving non-standard reasoning problems, we proposed a general framework dealing with several inferences according to a logic-independent strategy, to be further specialized to cope with the DL adopted to model the problem at hand.</title>
      </sec>
      <sec id="sec-7-2">
        <title>The paper presents a modular Logic Programming prototype system demonstrating</title>
        <p>the feasibility of the proposed strategy for Least Common Subsumer, Concept
Difference and Concept Abduction computation in E L and ALN .</p>
        <p>The extension of the approach to different DL sublanguages, and the
implementation, for each investigated DL, of further non-standard reasoning services in the
prototype is part of our future work, together with the improvement of system efficiency. In
particular, by investigating on the queries execution, we noticed that the main source of
complexity is due to the adoption of a generate-and-test strategy: all solutions need to
be produced before discarding the not relevant ones. We therefore will investigate on
how the program efficiency can be increased by designing a concurrent goal solution
strategy, exploiting meta-programming.</p>
      </sec>
      <sec id="sec-7-3">
        <title>Of course, the approach presented in this paper has some theoretical limitations.</title>
      </sec>
      <sec id="sec-7-4">
        <title>Namely, the use of an invertible logic program for Structural Subsumption limits this</title>
        <p>approach to DLs for which Structural Subsumption is complete. For more expressive</p>
      </sec>
      <sec id="sec-7-5">
        <title>DLs, the fixpoint mechanism could still be exploited, but implementing a different pro</title>
        <p>
          gram inverting Subsumption. One possibility would be to implement the higher-order
tableaux method presented by Colucci et al. [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. However, it is known that such a
general calculus does not always terminate for DLs whose expressiveness is equal or above
        </p>
        <sec id="sec-7-5-1">
          <title>SHI [25], and for less expressive DLs its termination is still to be assessed.</title>
        </sec>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>Appendix: Prolog Code for Optimal Solution Problems</title>
      <p>Concept Abduction
abd(C, D, H, DL)
:manage_concept(C, CM, DL),
manage_concept(D, DM, DL),
find_abd(CM, DM, DM, H, DL), !.
find_abd(C, D, H1, H3,
DL):better_abd(C, D, H1, H2, DL), !,
find_abd(C, D, H2, H3, DL).
find_abd(C, D, H, H, DL).
better_abd( C, D, H1, H2,
el):abd1(C, D, H2, el),
subs_el(H1, H2),!,
not(subs_el(H2, H1)).
Concept Difference</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Explaining subsumption in description logics</article-title>
          .
          <source>In: Proc. of IJCAI'95</source>
          . (
          <year>1995</year>
          )
          <fpage>816</fpage>
          -
          <lpage>821</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Schlobach</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Explaining subsumption by optimal interpolation</article-title>
          .
          <source>In: Proc. of JELIA</source>
          '
          <year>2004</year>
          . (
          <year>2004</year>
          )
          <fpage>413</fpage>
          -
          <lpage>425</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Di</given-names>
            <surname>Noia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Di Sciascio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Donini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.M.</given-names>
            ,
            <surname>Mongiello</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>Abductive matchmaking using description logics</article-title>
          .
          <source>In: Proc. of IJCAI</source>
          <year>2003</year>
          .
          <article-title>(</article-title>
          <year>2003</year>
          )
          <fpage>337</fpage>
          -
          <lpage>342</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Di</given-names>
            <surname>Noia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Di Sciascio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Donini</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.M.:</surname>
          </string-name>
          <article-title>Semantic matchmaking as non-monotonic reasoning: A description logic approach</article-title>
          .
          <source>J. of Artificial Intell. Res</source>
          .
          <volume>29</volume>
          (
          <year>2007</year>
          )
          <fpage>269</fpage>
          -
          <lpage>307</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Narendran</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Unification of concept terms in description logics</article-title>
          .
          <source>J. of Symbolic Computation</source>
          <volume>31</volume>
          (
          <year>2001</year>
          )
          <fpage>277</fpage>
          -
          <lpage>305</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Teege</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Making the difference: A subtraction operation for description logics</article-title>
          .
          <source>In: Proc. of KR'94</source>
          . (
          <year>1994</year>
          )
          <fpage>540</fpage>
          -
          <lpage>550</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walsh</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirsh</surname>
          </string-name>
          , H.:
          <article-title>Towards measuring similarity in description logics</article-title>
          .
          <source>In: Proc. of DL</source>
          <year>2005</year>
          .
          <article-title>(</article-title>
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Ku¨sters, R.,
          <string-name>
            <surname>Molitor</surname>
          </string-name>
          , R.:
          <article-title>Rewriting concepts using terminologies</article-title>
          .
          <source>In: Proc. of KR</source>
          <year>2000</year>
          .
          <article-title>(</article-title>
          <year>2000</year>
          )
          <fpage>297</fpage>
          -
          <lpage>308</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sertkaya</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turhan</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          :
          <article-title>Computing the least common subsumer w</article-title>
          .r.t.
          <article-title>a background terminology</article-title>
          .
          <source>J. of Appl. Log</source>
          .
          <volume>5</volume>
          (
          <issue>3</issue>
          ) (
          <year>2007</year>
          )
          <fpage>392</fpage>
          -
          <lpage>420</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Least common subsumers and most specific concepts in a description logic with existential restrictions and terminological cycles</article-title>
          .
          <source>In: Proc. of IJCAI</source>
          <year>2003</year>
          .
          <article-title>(</article-title>
          <year>2003</year>
          )
          <fpage>319</fpage>
          -
          <lpage>324</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sertkaya</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Usability issues in description logic knowledge base completion</article-title>
          .
          <source>In: ICFCA-2009</source>
          . (
          <year>2009</year>
          )
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Konev</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walther</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Forgetting and uniform interpolation in large-scale description logic terminologies</article-title>
          .
          <source>In: Proc. of IJCAI</source>
          <year>2009</year>
          .
          <article-title>(</article-title>
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Lecue</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotoulas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aonghusa</surname>
            ,
            <given-names>P.M.</given-names>
          </string-name>
          :
          <article-title>Capturing the pulse of cities: A robust stream data reasoning approach</article-title>
          . Position paper,
          <source>IBM Research</source>
          , Smarter Cities Technology Centre, Dublin, Ireland (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Nikitina</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          :
          <article-title>Uniform interpolation in general E L terminologies</article-title>
          . Techreport,
          <string-name>
            <surname>Institut</surname>
            <given-names>AIFB</given-names>
          </string-name>
          , KIT,
          <source>Karlsruhe (Mai</source>
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morawska</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Unification in the description logic</article-title>
          E L.
          <source>Logical Methods in Computer Science</source>
          <volume>6</volume>
          (
          <issue>3</issue>
          ) (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , Kr o¨tzsch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Simancik</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>Concurrent classification of E L ontologies</article-title>
          . In: International Semantic Web Conference (
          <volume>1</volume>
          ). (
          <year>2011</year>
          )
          <fpage>305</fpage>
          -
          <lpage>320</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Colucci</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Di Noia,
          <string-name>
            <given-names>T.</given-names>
            ,
            <surname>Di Sciascio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Donini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.M.</given-names>
            ,
            <surname>Ragone</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>A unified framework for non-standard reasoning services in description logics</article-title>
          .
          <source>In: Proc. of ECAI 2010</source>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>de Paiva</surname>
          </string-name>
          , V.:
          <article-title>Constructive description logics: what, why and how</article-title>
          .
          <source>In: Context Representation and Reasoning</source>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <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.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel-Schneider</surname>
          </string-name>
          , P., eds.:
          <source>The Description Logic Handbook - 2nd edition</source>
          . Cambridge Univ. Press (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Turhan</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          :
          <article-title>Tboxes do not yield a compact representation of least common subsumers</article-title>
          .
          <source>In: Proc. of DL</source>
          <year>2001</year>
          .
          <article-title>(</article-title>
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Patel</surname>
            <given-names>Schneider</given-names>
          </string-name>
          ,
          <string-name>
            <surname>P.F.</surname>
          </string-name>
          :
          <article-title>A semantics and complete algorithm for subsumption in the CLASSIC description logic</article-title>
          .
          <source>J. of Artificial Intell. Res</source>
          .
          <volume>1</volume>
          (
          <year>1994</year>
          )
          <fpage>277</fpage>
          -
          <lpage>308</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Ku¨sters, R.,
          <string-name>
            <surname>Molitor</surname>
          </string-name>
          , R.:
          <article-title>Computing least common subsumers in description logics with existential restrictions</article-title>
          . In
          <string-name>
            <surname>Dean</surname>
          </string-name>
          , T., ed.
          <source>: Proc. of IJCAI'99</source>
          , Morgan Kaufmann (
          <year>1999</year>
          )
          <fpage>96</fpage>
          -
          <lpage>101</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirsh</surname>
          </string-name>
          , H.:
          <article-title>Computing least common subsumers in description logics</article-title>
          .
          <source>In: Proc. of AAAI'92</source>
          , AAAI Press
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Baader</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          , Ku¨sters, R.,
          <string-name>
            <surname>Borgida</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McGuinness</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          :
          <article-title>Matching in description logics</article-title>
          .
          <source>J. of Log. and Comp</source>
          .
          <volume>9</volume>
          (
          <issue>3</issue>
          ) (
          <year>1999</year>
          )
          <fpage>411</fpage>
          -
          <lpage>447</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Wolter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zakharyaschev</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Undecidability of the unification and admissibility problems for modal and description logics</article-title>
          .
          <source>ACM Trans. on Computational Logic</source>
          <volume>9</volume>
          (
          <issue>4</issue>
          ) (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          <article-title>better_abd( C, D, H1</article-title>
          , H2, aln):
          <article-title>- computeMaxAtLeast(C,Max3), computeMaxAtLeast(D,Max4), MaxL is max(Max3,Max4), computeMaxAtMost(C,Max1), computeMaxAtMost(D,Max2), MaxM is max(Max1,Max2), abd1(C, D, H2</article-title>
          , MaxL, MaxM, aln),
          <article-title>subs_aln(H1, H2</article-title>
          , MaxL, MaxM),
          <article-title>!, not(subs_aln(H2, H1</article-title>
          , MaxL, MaxM)).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          <string-name>
            <surname>abd1(C</surname>
          </string-name>
          , D, H, el):
          <article-title>- append(C, H</article-title>
          , L), subs_el(L, D).
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          <string-name>
            <surname>abd1(C</surname>
          </string-name>
          , D, H, MaxL, MaxM, aln):
          <article-title>- append(C, H</article-title>
          , L),
          <article-title>subs_aln(L, D, MaxL</article-title>
          , MaxM).
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          <string-name>
            <surname>diff(C</surname>
          </string-name>
          , D, X, aln):
          <article-title>- manage_concept(C, CN</article-title>
          , aln),
          <article-title>manage_concept(D, DN, aln), computeMaxAtLeast(C,Max3), computeMaxAtLeast(D,Max4), MaxL is max(Max3,Max4), computeMaxAtMost(C,Max1), computeMaxAtMost(D,Max2), MaxM is max(Max1,Max2), subs_aln(CN, DN</article-title>
          , MaxL, MaxM),
          <article-title>find_diff(CN, DN</article-title>
          , CN, X, aln), !.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          <article-title>find_diff(C, D, X1, X3</article-title>
          , DL):
          <article-title>- better_diff(C, D, X1, X2, DL),!, find_diff(C, D, X2, X3</article-title>
          , DL).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          <article-title>better_diff(C, D, X1</article-title>
          , X2, aln):
          <article-title>- computeMaxAtLeast(C,Max3), computeMaxAtLeast(D,Max4), MaxL is max(Max3,Max4), computeMaxAtMost(C,Max1), computeMaxAtMost(D,Max2), MaxM is max(Max1,Max2), diff1(C, D, X2</article-title>
          , MaxL, MaxM, aln),
          <article-title>subs_aln(X1, X2</article-title>
          ,MaxL, MaxM),
          <article-title>not(subs_aln(X2, X1</article-title>
          , MaxL, MaxM)).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          <article-title>better_diff(C, D, X1</article-title>
          , X2, el):
          <article-title>- diff1(C, D, X2, el), subs_el(X1, X2), !, not(subs_el(X2, X1))</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          <article-title>diff1(C, D, X, MaxL</article-title>
          , MaxM, aln):
          <article-title>- append(D, X, L), subs_aln(L, C, MaxL</article-title>
          , MaxM), subs_aln(C, L, MaxL, MaxM).
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          <string-name>
            <surname>diff1(C</surname>
            ,
            <given-names>D</given-names>
          </string-name>
          , X, el):
          <article-title>- append(</article-title>
          <string-name>
            <surname>D</surname>
          </string-name>
          , X, L), subs_el(L, C), !, subs_el(C, L).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>