<!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>FILO: Unification Solver for FL_0 (Extended Abstract)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Barbara Morawska</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sławomir Kost</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dariusz Marzec</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michał Henne</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University Of Opole</institution>
          ,
          <addr-line>Plac Kopernika 11a, 45-040 Opole</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <abstract>
        <p>In this paper, we present FILO, the first application that decides the unification problem for the description logic ℱ ℒ0. This is a restricted description logic that allows only conjunction, the top constructor and value restrictions to construct complex concepts from a set of concept names (unary predicates) and role names (binary predicates). Unification of concepts in Description Logics has been proposed as a non-standard reasoning task that can help eliminate redundancies in ontologies. The unification problem in ℱ ℒ0 is ExpTime-complete. FILO is based on an algorithm that is exponential only in the worst case. The algorithm used by FILO is based on the one described in [1].</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Description Logic</kwd>
        <kwd>Unification</kwd>
        <kwd>Automated reasoning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>2. The description logic ℱ ℒ0
Complex concepts in ℱ ℒ0 are constructed from a countable set of concept names (unary predicates) N
and a countable set of role names (binary relations) R according to the following grammar:  ::=  |
 ⊓  | ∀. | ⊤, where  ∈ N and  ∈ R.</p>
      <p>An interpretation  is a pair (Δ , ·  ), where Δ is a non-empty domain and ·  is an interpretation
function. The interpretation of concept names ( ⊆ Δ ) and role names ( ⊆ Δ × Δ ) is extended
to all concepts in the standard way: (1 ⊓ 2) = 1 ∩ 2 , (∀.) = { ∈ Δ | ∀∈Δ ((, ) ∈
 =⇒  ∈  )}, ⊤ = Δ .. We define  ⊑  if for every interpretation ,  ⊆  and  ≡ 
if  ⊑  and  ⊑ .</p>
      <p>We write ∀1.∀2. . . . ∀. as ∀., where  is a word over R, and call such a concept a particle.
With respect to the equivalence, one can easily observe that the intersection of concepts is associative,
commutative, idempotent and has ⊤ as its unit element. The value restriction behaves as a
homomorphism: ∀.( ⊓  ) ≡ ∀ . ⊓ ∀. . Thus, each concept can be identified as a set of particles, and the
empty set is ⊤.</p>
      <p>In ℱ ℒ0, subsumption between two concepts  and  can be decided in polynomial time.
Lemma 1. Let  = 1 ⊓ · · · ⊓
 and  = 1′ ⊓ · · · ⊓
′.
1.  ⊑  if for every 1 ≤  ≤ , 1 ⊓ · · · ⊓
2. for every 1 ≤  ≤ , 1 ⊓ · · · ⊓</p>
      <p>⊑ ′;
 ⊑ ′ if ′ ∈ {1, · · · , }.</p>
      <p>Proof. Both these statements follow from the properties of subsumption that establish a partial order
with respect to the sets of particles.</p>
      <p>In order to define a unification problem in ℱ ℒ0, we divide the set of concept names N into two disjoint
sets: constants, denoted C and variables, denoted Var. Variables may be substituted by concepts, and
constants cannot be substituted.</p>
      <p>A substitution  is a mapping initially defined for Var, assigning to them possibly complex concepts.
It is then extended to all concepts in the usual way:  () := , where  ∈ C,  ( ⊓ ) :=  ()⊓ ( ),
 (∀.) := ∀. (),  (⊤) := ⊤.</p>
      <p>The unification problem is then defined by its input and output as follows.</p>
      <p>Input: Γ = {1 ⊑? 1, . . . ,  ⊑? }, where 1 . . . , 1 . . .  are ℱ ℒ0-concepts constructed
over constants and variables. We call  ⊑?  ∈ Γ an input goal. Due to Lemma 1, we can assume that
for each input goal  ⊑? ,  is a particle.</p>
      <p>Output: “true” if there is a substitution  such that  (1) ⊑  (1), . . . ,  () ⊑  () and “false”
otherwise. The substitution  is called a unifier or a solution of Γ.</p>
    </sec>
    <sec id="sec-2">
      <title>3. Solver</title>
      <p>FILO is an application written in Java using the OWL API and Maven for dependency management.
As of now it is a standalone application (FILO.jar). The compiled file is available at https://unifdl.cs.
uni.opole.pl/unificator-app-for-the-description-logic-fl_0/ and the source files are available in a public
GitHub repository https://github.com/barbmor/FILO.</p>
      <p>A unification problem which can be solved by FILO must be provided in the form of an ontology file.
Such an ontology may be created using the ontology editor Protégé1. The concept names in such an
ontology are treated by FILO as constants, unless they have the _var sufix. Input goals are defined as
general class axioms or as concept subsumptions expressed through class hierarchy statements. FILO
recognizes concept names (constants and variables), intersections of concepts, value restrictions and
the ⊤ constructor. It reports an error if an unsupported constructor is encountered while reading the
input file.</p>
    </sec>
    <sec id="sec-3">
      <title>4. Overview of FILO computation</title>
      <p>
        FILO is based on the algorithm presented in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], but at first glance, it may seem quite diferent. This is
because the algorithm there is formulated for a class of first-order clauses, solving the problem of the
existence of a finite Herbrand model for this class.
      </p>
      <p>
        Nevertheless, the algorithm in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] can be easily modified to work directly on ℱ ℒ0-subsumptions,
without translating them into first-order clauses. Therefore, in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], the correctness of the algorithm
is re-proved in the notation of ℱ ℒ0. The main diferences concern the way shortcuts are defined.
Here, we treat them as sets of variables, whereas in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], they are pairs consisting of one predicate
and a set of predicates. There are also diferences in how shortcuts are computed: here, we check
sets of variables, while in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], shortcuts are computed via possibilities. Other diferences stem from
programming considerations, for example, the way we treat choices for variables. All these details are
addressed in the correctness proofs in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <sec id="sec-3-1">
        <title>4.1. Flattening I – reading input</title>
        <p>During this stage, the internal structures representing concepts from the input ontology are created.
Concept intersections from the input are represented by sets of flat particles of the form ∀., where 
is a variable or a constant. The internal representation of the input after Flattening I is called a Filo
model.</p>
        <p>Example 1. Let an input goal in the notation of ℱ ℒ0 be: ∀.1 ⊓ ∀.2 ⊓ ∀. ⊓ ∀.2 ≡ ?
∀.1 ⊓ ∀.2 ⊓ ∀. (Example 16 in FILO). After the Flattening I stage, we get the following set of
equivalences:
 2 ≡ ∀ .1,  5 ≡ ∀ .2,  0 ≡ ∀ .2,  6 ≡ ∀ .,
 4 ≡ ∀ . 2,  1 ≡ ∀ .2,  3 ≡ ∀ . 1,
∀. 4 ⊓ ∀. ⊓ ∀. 0 ⊓ ∀. 3 ≡ ∀ . 5 ⊓ ∀.1 ⊓ ∀. 6.</p>
      </sec>
      <sec id="sec-3-2">
        <title>4.2. Main loop</title>
        <p>
          After successfully reading the input and creating a Filo model, FILO enters a loop: for each constant
in the model. If there are no constants, only variables, then FILO returns success and the problem
has a solution sending all variables to ⊤. Otherwise, FILO attempts to solve the problem for each
constant separately–in the manner presented in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]–then combines solutions into one using intersection
constructor. If it returns failure for any one of them, it breaks the main loop immediately returning
failure. Such a problem is not unifiable. Let us fix the current constant 2.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>4.3. Flattening II</title>
        <p>Depending on the current constant, FILO performs further flattening. The goal of this stage is to obtain
lfat subsumptions of the form 1 ⊓ · · · ⊓  ⊑?  , where all of the concept names are variables or
the current constant, and additional increasing subsumptions of the form  ⊑ ∀.. The set of flat
?
subsumptions and increasing subsumptions is called a generic goal.</p>
        <p>Example 2. Following Example 1, flattening II yields the generic goal w.r.t. the constant 2:
lfat subsumptions :  2 ≡ ⊤ ,  5 ≡ 2,  0 ≡ 2,  6 ≡ ,
 4 ≡ ⊤ ,  1 ≡ 2,  3 ≡  1,  4 ⊓  ⊓  0 ⊓  3 ⊑  5,
 4 ⊓  ⊓  0 ⊓  3 ⊑  6,  5 ⊓  6 ⊑  4,  5 ⊓  6 ⊑ ,
 5 ⊓  6 ⊑  0,  5 ⊓  6 ⊑  3;
increasing subsumptions:  5 ⊑ ∀. 5,  0 ⊑ ∀. 0,  6 ⊑ ∀. 6,  1 ⊑
∀. 1,  3 ⊑ ∀. 3, where  5,  0,  6,  1,  3 are decomposition
variables. Note that  4 is ⊤ since  2 is.</p>
      </sec>
      <sec id="sec-3-4">
        <title>4.4. Choice and Implicit Solver</title>
        <p>Now FILO has to make choices for each variable predicting their values in a solution: TOP if it is an
empty conjunction, or CONSTANT if some of the particles contained in a solution is the current constant,
or NEITHER otherwise. If there are no variables, only the current constant, FILO checks solvability of
the generic goal by Implicit Solver (it must return either success or failure). Otherwise, FILO checks all
consistent choices for all variables in the generic goal, i.e. choices in which the decomposition variables
and their parents satisfy appropiate relations. Hence, here FILO enters another loop.</p>
        <p>Implicit Solver checks which subsumptions are solved by the current choice for variables. It may also
detect contradictions. If this is the case, FILO aborts the computation, returns failure for the current
choice and proceeds to check the next choice and starting from the generic goal, to construct another
goal again. If the set of flat subsumptions is empty, FILO returns success for the current constant. If
there are no choices left, the loop for choices is ended and the program returns failure. Let us fix the
current consistent choice.</p>
        <p>Example 3. Continuing with Example 2, FILO searches for a consistent choice, and finds: { 2,  4} ↦→
 , { 5,  0,  1} ↦→     and the rest of variables is NEITHER.</p>
        <p>For this choice,  2 ≡ ⊤ ,  5 ≡ 2,  0 ≡ 2,  4 ≡ ⊤ ,  1 ≡ 2,  5 ⊓  6 ⊑
 4 are trivially satisfied. For the last subsumption, note that its right-hand is TOP. The rest of
subsumptions is already flat.</p>
      </sec>
      <sec id="sec-3-5">
        <title>4.5. Shortcuts</title>
        <p>If the set of flat subsumptions is not empty, FILO starts computation with shortcuts, i.e. sets of variables
that satisfy all the flat subsumptions of the goal. It enters a loop computing shortcuts. Now, FILO
attempts to extend the set of already computed shortcuts using the so-called resolving relation:  is
resolved by ′ w.r.t. a role name  if  ∈  implies  ∈ ′ and if   is defined for  ∈ ′, then
  ∈ . If the initial shortcut, i.e. the set of the form { |  is assigned the choice CONSTANT},
is computed, this means success for the current constant–FILO aborts computing new shortcuts.
Otherwise, if the initial shortcut cannot be reached, it means failure for the current choice.
Example 4. Continuing with Example 3, a shortcut of height 0, i.e. without
decomposition variables, is { 6,  3}. Then, FILO proceeds to compute next shortcuts:
{,  5,  0,  1,  3,  6,  3} and { 1,  5,  0} which is also the initial
shortcut. At this moment, the computation is terminated with success for the given constant. The partial
solution is: { 1,  5,  0} ↦→ 2, {,  5,  0,  1,  3,  6,  3} ↦→
∀.2, { 6,  3} ↦→ ∀.2.</p>
        <p>Assuming we obtain the partial solution for the constant 1: {,  2,  6} ↦→
1, {,  6,  4,  2,  6,  4} ↦→ ∀.1, { 4,  6} ↦→ ∀.1, we obtain the
following solution for the input goal:  ↦→ ∀.2 ⊓ 1 ⊓ ∀.1.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>5. Examples</title>
      <p>
        FILO provides more than 20 examples, available in the dropdown menu in its interface. Among the
examples, Example 16 is taken from [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. FILO computes the same solution as presented in this paper,
and the computation takes 3700 ms. During the computation, FILO worked with at most 29 variables,
rejected 1290 goals in the pre-processing stage, and entered the shortcut computation stage 8 times. We
utilized a machine with the following specifications: Intel(R) Core(TM) i7-1355U (1.70 GHz), 32.0 GB
RAM, 64-bit operating system, running Windows 11 Pro (24H2).
      </p>
      <p>Out of the examples provided, Example 8 is most dificult. It contains two constants and is not
unifiable for either of them. Hence it terminates with failure after checking the generic goal produced
for one constant only. Nevertheless it takes 7545 ms to terminate. The maximal number of variables is
33 and 1525 goals are rejected in the pre-processing stage, while the shortcuts were computed 12 times.</p>
    </sec>
    <sec id="sec-5">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used ChatGPT based on GPT-4o in order to: Grammar
and spelling check. After using this tool, the authors reviewed and edited the content as needed and
take full responsibility for the publication’s content.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Borgwardt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Morawska</surname>
          </string-name>
          ,
          <article-title>Finding finite Herbrand models</article-title>
          , in: N.
          <string-name>
            <surname>Bjørner</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Voronkov (Eds.),
          <source>Proc. of the 18th Int. Conf. on Logic for Programming</source>
          ,
          <source>Artificial Intelligence, and Reasoning (LPAR-18)</source>
          , volume
          <volume>7180</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2012</year>
          , pp.
          <fpage>138</fpage>
          -
          <lpage>152</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>642</fpage>
          -28717-6_
          <fpage>13</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -28717-6_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Narendran</surname>
          </string-name>
          ,
          <article-title>Unification of concept terms in description logics</article-title>
          ,
          <source>Journal of Symbolic Computation</source>
          <volume>31</volume>
          (
          <year>2001</year>
          )
          <fpage>277</fpage>
          -
          <lpage>305</lpage>
          . doi:
          <volume>10</volume>
          .1006/jsco.
          <year>2000</year>
          .
          <volume>0426</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>B.</given-names>
            <surname>Morawska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Marzec</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kost</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Henne</surname>
          </string-name>
          , Filo - automated
          <source>unification in ℱ ℒ0</source>
          , https://arxiv.org/ abs/2502.14130,
          <year>2025</year>
          . URL: https://arxiv.org/abs/2502.14130. arXiv:
          <volume>2502</volume>
          .
          <fpage>14130</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Borgwardt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendez</surname>
          </string-name>
          ,
          <string-name>
            <surname>B. Morawska,</surname>
          </string-name>
          <article-title>UEL: unification solver for EL</article-title>
          , in: Y.
          <string-name>
            <surname>Kazakov</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Lembo</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Wolter</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of the 2012 International Workshop on Description Logics, DL-2012</source>
          , Rome, Italy, June 7-10,
          <year>2012</year>
          , volume
          <volume>846</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2012</year>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>846</volume>
          /paper_8.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Koopmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Michel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Turhan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Zarrieß</surname>
          </string-name>
          ,
          <article-title>Eficient tbox reasoning with value restrictions using ℱ ℒ0wer reasoner, Theory Pract</article-title>
          . Log. Program.
          <volume>22</volume>
          (
          <year>2022</year>
          )
          <fpage>162</fpage>
          -
          <lpage>192</lpage>
          . doi:
          <volume>10</volume>
          .1017/ S1471068421000466.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>F.</given-names>
            <surname>Baader</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lutz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Suntisrivaraporn</surname>
          </string-name>
          , CEL
          <article-title>- A polynomial-time reasoner for life science ontologies</article-title>
          , in: U. Furbach, N. Shankar (Eds.),
          <source>Automated Reasoning</source>
          , Third International Joint Conference, IJCAR 2006, Seattle, WA, USA,
          <year>August</year>
          17-
          <issue>20</issue>
          ,
          <year>2006</year>
          , Proceedings, volume
          <volume>4130</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2006</year>
          , pp.
          <fpage>287</fpage>
          -
          <lpage>291</lpage>
          . doi:
          <volume>10</volume>
          .1007/11814771_
          <fpage>25</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>J.</given-names>
            <surname>Mendez</surname>
          </string-name>
          ,
          <article-title>jcel: A modular rule-based reasoner</article-title>
          , in: I. Horrocks,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yatskevich</surname>
          </string-name>
          , E. Jiménez-Ruiz (Eds.),
          <source>Proceedings of the 1st International Workshop on OWL Reasoner Evaluation (ORE-2012)</source>
          , Manchester,
          <string-name>
            <surname>UK</surname>
          </string-name>
          ,
          <year>July 1st</year>
          ,
          <year>2012</year>
          , volume
          <volume>858</volume>
          <source>of CEUR Workshop Proceedings, CEUR-WS.org</source>
          ,
          <year>2012</year>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>858</volume>
          /ore2012_paper12.pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>