<!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>Hermes: an efficient algorithm for building Galois sub-hierarchies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anne Berry</string-name>
          <email>berry@isima.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marianne Huchard</string-name>
          <email>huchard@lirmm.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Amedeo Napoli</string-name>
          <email>amedeo.napoli@loria.fr</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alain Sigayret</string-name>
          <email>sigayret@isima.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>LIMOS - CNRS UMR 6158 - Universit ́e Clermont-Ferrand II</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LIRMM - CNRS UMR 5506 - Universit ́e de Montpellier II - Montpellier</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>LORIA - CNRS UMR7503 - Vandoeuvre-l`es-Nancy</institution>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <fpage>21</fpage>
      <lpage>32</lpage>
      <abstract>
        <p>Given a relation R ⊆ O × A on a set O of objects and a set A of attributes, the Galois sub-hierarchy (also called AOC-poset) is the partial order on the introducers of objects and attributes in the corresponding concept lattice. We present a new efficient algorithm for building a Galois sub-hierarchy which runs in O(min{nm, nα}), where n is the number of objects or attributes, m is the size of the relation, and nα is the time required to perform matrix multiplication (currently α = 2.376).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Galois lattices (also called concept lattices) are a powerful tool for data modeling.
Such a lattice is built on a relation between a set of objects and a set of attributes.
The main drawback of this structure is that it may have an exponential size in
the number n of objects or attributes. A canonical sub-order of the lattice, its
Galois sub-hierarchy (GSH, also called AOC-Poset), of much smaller size, is
recommended whenever possible. This GSH preserves only the key elements of
the lattice: object-concepts and attribute-concepts (also called introducers); the
number of these key elements is at most equal to the total number n of objects
and attributes.</p>
      <p>
        Galois sub-hierarchies were introduced in software engineering by Godin et al.
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] for class hierarchy reconstruction and successfully applied in later research
work (see e.g. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]). The AOC-poset (Attribute/Object Concepts poset [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) has
been used in applications of FCA to non-monotonic reasoning and domain theory
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], and to produce classifications from linguistic data [
        <xref ref-type="bibr" rid="ref18 ref20">18, 20</xref>
        ]. Specific parts of
the GSH (mainly attribute-concepts) have been used in several works, including
approaches for refactoring a class hierarchy [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] and recently for extracting a
feature tree from a set of products in Software Product Lines [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <sec id="sec-1-1">
        <title>Three algorithms for building GSH already exist: Ares [7], Ceres [14], and</title>
      </sec>
      <sec id="sec-1-2">
        <title>Pluton [1]. Each of them has a time complexity of O(n3), and they are some</title>
        <p>
          what complicated. Their comparative experimental running times were
investigated in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ].
        </p>
        <p>In this paper, we present a new algorithm for building Galois sub-hierarchies,
which we call Hermes, with a better complexity. Hermes runs in O(nm) time,
where m is the size of the relation, and is very easy to understand and
implement. With more effort invested in the implementation, Hermes can be made to
run in O(nα) (i.e. O(n2.376)) time, which is the time for performing matrix
multiplication. Hermes works by simplifying and then extending the input relation
into a relation which contains in a compact fashion all the necessary information
on the elements of the GSH.</p>
        <p>The paper is organized as follows: after this introduction, we give some
notations and definitions. Section 3 briefly outlines how previous algorithms work.
Section 4 proves some preliminary results and presents the algorithmic tools
necessary to ensure our good complexity. Section 5 describes and analyzes in detail
the successive steps of our algorithmic process. Section 6 gives the algorithm.
Section 7 describes the special case for chordal bipartite relations, where the
final relation can easily be obtained in O(n2) time. We conclude in Section 8.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Definitions and notations</title>
      <p>The different communities handling Galois lattices and Galois sub-hierarchies
use various notations. Here, we will use algebraic notations detailed below.</p>
      <p>
        Given two finite sets O (of ’objects’) and A (of ’attributes’), a binary relation
R ⊆ O × A indicates which objects of O are associated with which attributes
of A. O is called the starting set of the relation. We will denote n = |O| + |A|
and m = |R|. For (x, y) ∈ R, we will say that x is an antecedent of y, and y is
an image of x. For x ∈ O, R(x) = {y ∈ A | (x, y) ∈ R} is the image set (row)
of x, and for y ∈ A, R−1(y) = {x ∈ O | (x, y) ∈ R} is the antecedent set
(column) of y. Note that notation x′ is used in FCA [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for R(x) and R−1(x).
The term line will be indifferently used for row and column. The triple (O, A, R)
is called a context.
      </p>
      <p>A maximal rectangle of R, also called a concept, is a maximal Cartesian
sub-product of R, i.e. X × Y such that ∀x ∈ X, ∀y ∈ Y , (x, y) ∈ R and
∀w ∈ O − X, ∃y ∈ Y | (w, y) 6∈ R and ∀z ∈ A − Y , ∃x ∈ X | (x, z) 6∈ R.
X is called the extent and Y the intent of concept X × Y , which is denoted
(X, Y ). In our examples, we may omit set brackets when the meaning is clear.
The extent and intent of concept C will be denoted Extent(C) and Intent(C).
The concepts, ordered by inclusion on their extents (or dually by inclusion on
their intents) form a lattice L(R) called a Galois lattice or a concept lattice.</p>
      <sec id="sec-2-1">
        <title>For two concepts C and C′, C &lt;L(R) C′ will denote Extent(C)⊂Extent(C′). A</title>
        <p>lattice is represented by its Hasse diagram, where reflexivity and transitivity
edges are omitted.</p>
        <p>
          An object-concept is a concept Cx which introduces some object x: x is in
the extent of Cx but is not in the extent of any smaller concept C′ &lt;L(R) Cx.
Dually, an attribute-concept is a concept Cy which introduces some attribute
y: y is in the intent of Cy but is not in the intent of any greater concept C′ &gt;L(R)
Cy. Thus, the intent of object-concept Cx is R(x), and the extent of
attributeconcept Cy is R−1(y). Object-concepts and attribute-concepts are also called
introducer concepts or simply introducers. Objects are introduced from
bottom to top and attributes from top to bottom in L(R). A given concept may
introduce several objects and/or attributes. Note that [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] uses arrow relations
to characterize the relationship between attribute-concepts and object-concepts,
but without referring to Galois sub-hierarchies.
        </p>
        <p>A relation is said to be clarified when it has no identical lines. A relation is
said to be reduced when it is clarified and has no line which is the intersection
of several other lines. When a relation is reduced, the irreducible elements of the
lattice are exactly the introducers, whereas in a non-reduced relation there will
be extra introducers.</p>
        <p>H(R) denotes the Galois sub-hierarchy (GSH) of relation R, defined by
the set of introducer concepts ordered as in L(R). H(R) is then a sub-order
of L(R). The elements of H(R) are generally labeled by the objects and/or
attributes they introduce, defining the simplified labeling. The same simplified
labeling applies to L(R), in which some concepts may have an empty label.
&lt;H(R) will be used to compare two elements of H(R), as &lt;L(R) is used for
L(R).</p>
        <p>A linear extension of a partially ordered set P is a total order in which P
is included.</p>
        <p>
          Running example. Figure 1 shows the Galois
lattice L(R) (as drawn by Context Explorer [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ])
and the Galois sub-hierarchy H(R) of relation R. In
L(R), concept (1, acdeg) introduces 1 (simplified
label: 1), concept (1346, c) introduces c (simplified
label: c), and concept (3, abcdf g) introduces 3 and b
(simplified label: 3, b). All these concepts are in H(R);
concept (13, acdg) introduces nothing (simplified
label empty) and as such is not in H(R).
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Previous algorithms</title>
      <p>
        R a b c d e f g
1 × × × × ×
2 × × × ×
3 × × × × × ×
4 × ×
5 ×
6 × ×
7 × × ×
8 × × × ×
We present a brief description of the existing algorithms for building Galois
subhierarchies; all run in O(n3) time, where n stands for the number of objects
and attributes in the input relation. The reader is referred to the corresponding
publications for detailed descriptions and to [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for a comparative experimental
study of those algorithms.
      </p>
      <p>
        Pruned lattice. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
Pruned lattice is the name given to a Galois sub-hierarchy by [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] which is, to our
best knowledge, the first paper defining this structure. [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] considers a specific
comparable by set inclusion. If during exploration, the algorithm did not find an
initial concept whose intent is S, a new concept is created. For every modification
of the Hasse diagram, the algorithm removes newly created transitivity edges.
At the same time, for each modified intent, the algorithm checks if some concept
has a simplified label which is empty and removes such concept.
4
4.1
      </p>
      <p>Preliminary results and algorithmic tools</p>
      <sec id="sec-3-1">
        <title>Some preliminary results</title>
        <p>The following theorem will help order the introducers:</p>
      </sec>
      <sec id="sec-3-2">
        <title>Theorem 1.</title>
        <p>Let Cx be the introducer of x ∈ O and Cy be the introducer of y ∈ A.
– Cx ≤H(R) Cy iff (x, y) ∈ R.
– Cx ≥H(R) Cy iff Intent(Cx)⊆Intent(Cy) iff Extent(Cx)⊇Extent(Cy).</p>
        <p>
          In this case, (x, y) 6∈ R except if Cx = Cy.
– Otherwise, Cx and Cy are not comparable.
[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] introduced the notion of domination which originates from graph theory.
Domination in a relation stemmed from the concept of domination in the
cobipartite graph which is the complement of the bipartite graph induced by the
relation.
        </p>
        <p>An attribute y ∈ A is said to dominate an attribute z ∈ A in R if the
antecedent set of y is included in the antecedent set of z: R−1(y) ⊆ R−1(z);
the corresponding relation is denoted DomA. When the inclusion is strict, the
domination is said to be strict. For y ∈ A, DomA(y) = {z ∈ A | R−1(y) ⊆
R−1(z)}. This preorder defines the way attributes label the concepts of H(R)
from top (the dominating attributes) to bottom (the dominated attributes).</p>
        <p>
          A domination relation, DomO, can also be defined between objects by
inclusion of their image sets: ∀w ∈ O, DomO(w) = {x ∈ O | R(w) ⊆ R(x)}. The label
of H(R) will be set from bottom (the dominating objects) to top (the dominated
objects), according to the dual behavior of objects and attributes in concepts.
Theorem 2. [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]
Endowed with domination relation DomA, the set of attribute-concepts of R
forms a sub-order of H(R): for y, z ∈ A, the introducer of y is smaller than or
equal to the introducer of z iff (y, z) ∈ DomA.
        </p>
        <p>Endowed with domination relation DomO, the set of object-concepts of R forms
a sub-order of H(R) and L(R): for w, x ∈ O, the introducer of w is greater than
or equal to the introducer of x iff (w, x) ∈ DomO.</p>
        <p>Example. In our running example, R−1(b) = {3} ⊂ R−1(a) = {1, 2, 3, 7, 8};
attribute b dominates attribute a and the introducer of b is smaller than the
introducer of a, as shown in Figure 1. DomA(b) = {a, b, c, d, f, g}. R(6) = {c, d} ⊂
R(1) = {a, c, d, e, g}; object 6 dominates object 1 and the introducer of 6 is
greater than the introducer of 1. DomO(6) = {1, 3}.</p>
      </sec>
      <sec id="sec-3-3">
        <title>Algorithmic tools</title>
        <p>We will need two processes for our complexity results.</p>
        <p>
          The first process is to rapidly recognize lines of a relation which are equal,
which corresponds to the clarification of context (O, A, R). This can be done
in linear time O(|R|) by a process of partition refinement, as proved by [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] for
undirected graphs, and detailed as applied to relations [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Thus, in linear time,
one can merge all sets of lines which are equal. Note that after this process, the
domination on attributes (resp. objects) will be a strict order.
        </p>
        <p>
          The second tool we use extensively enables us to decide which lines (rows
or columns) are properly included in another, or in other words determines a
domination order. This can be done using the tripartite directed graph
introduced by Bordat [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Computing the transitive edges of this graph will result
into the domination order on objects or attributes, depending on how the graph
is initially defined [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. Computing the transitive closure of a graph can be
performed in the same time as Matrix Multiplication, with a time complexity of
O(nα), where α is currently 2.376 [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. However, the O(n2.376) algorithm [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] for
Matrix Multiplication is not often used, as it is difficult to implement. It is easy
to compute the domination order in O(nm) time, as each line can be compared
to all the other lines in linear time.
        </p>
        <p>The last step of our algorithm requires a transitive reduction which consists
in removing all the transitivity edges of a partial order. This problem has the
same time complexity as the equivalent problem of transitivity closure and can
also be performed in the same time as matrix multiplication.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Algorithmic process</title>
      <p>Our algorithm works in five simple steps:
1. Clarify the input relation R ⊆ O × A into a relation Rc where no two lines
(rows or columns) are identical in order to avoid redundancy.
2. Compute the domination relation DomA between attributes (i.e. decide
which columns of Rc are included into which other columns).
3. Compute a new relation Rce, obtained by appending DomA to Rc, and
simplify Rce into Rces where no two rows are identical. (This simplification
merges an attribute and an object whenever they are introduced by the same
concept.)
4. Extract from Rces the elements of H(R), whose intents are in fact the rows
of Rces and whose simplified labels are the labels of these rows in Rces.
5. Construct the Hasse diagram of H(R) from these intents.</p>
      <p>Note that as objects and attributes play symmetric roles, the algorithm can
dually use domination on objects instead of attributes. The choice may result
from an unbalanced number of objects with respect to the number of attributes.</p>
      <p>+
DomA a,g b c d e f
a,g ×
b × × × × ×
c ×
d ×
e × ×
f ×
computation of DomA will require; a better average time complexity is thus
obtained by separating these steps.</p>
      <p>Example. Rc(3) = DomA(b), so 3 and b are merged in Rces, as 5 with d, and
7 with e.</p>
      <p>Rc a,g b c d e f
1 × × × ×
2,8 × × ×
3 × × × × ×
4 × ×
5 ×
6 × ×
7 × ×
→</p>
      <p>Rce → Rces
Rces a,g b c d e f
1 × × × ×
2,8 × × ×
4 × ×
6 × ×
a,g ×
3,b × × × × ×
c ×
5,d ×
7,e × ×
f ×
Rc + DomA = Rce
Rce a,g b c d e f
1 × × × ×
2,8 × × ×
3 × × × × ×
4 × ×
5 ×
6 × ×
7 × ×
a,g ×
b × × × × ×
c ×
d ×
e × ×
f ×
We will now prove that the starting set of Rces yields exactly the elements
of H(R), because of our two-step merging process. Step 1 grouped together
separately equivalent objects or equivalent attributes which trivially correspond
to objects or attributes having the same introducer. Step 3 grouped together an
object and an attribute whenever they have the same introducer, as proved in
Theorem 3. Thus the labels of the rows of Rces are the simplified labels of H(R),
and for each row, its elements yield the intent of the corresponding concept, as
proved in Theorem 4. No extra computation is thus needed for this step.
Example. The starting set of Rces is: { {1}, {2,8}, {4}, {6}, {a,g}, {3,b}, {c},
{5,d}, {7,e}, {f } }. Its elements correspond exactly to the simplified label of the
elements of H(R) presented in Figure 1. The rows represent the intents of these
elements: for example, the complete labeling of the introducer of 2 would be
({2,8},{a,g,e,f }).</p>
      <p>Theorem 3. Given a relation R ⊆ O × A, the introducer of x ∈ O and the
introducer of y ∈ A are the same if and only if Rce(x) = Rce(y).
Proof.
– Suppose concept Cxy is the introducer of both x ∈ O and y ∈ A. The
intent of Cxy is by definition R(x), which includes y. Let z be an attribute of
R(x) = Rce(x) and Cz its introducer; as (x, z) ∈ R, Cxy ≤ Cz and then
Extent(Cxy)⊆Extent(Cz) (Theorem 1); therefore, (y, z) ∈ DomA and so z ∈
Rce(y); thus Rce(x) ⊆ Rce(y). Let t be an attribute in Rce(y) and Ct its
introducer; (y, t) ∈ DomA, which implies Ct ≥ Cxy, and so the extent of Ct contains
x, which implies (x, t) ∈ R, i.e. t ∈ Rce(x); thus Rce(y) ⊆ Rce(x).
– Suppose Rce(x) = Rce(y), i.e. R(x) = DomA(y). For z ∈ DomA(y), (x, z) ∈
R, so the introducers of z and x are comparable: Cz ≥ Cx (Theorem 1); in
particular, Cy ≥ Cx. By definition of the domination relation, R−1(y) ⊆ R−1(z)
for all z ∈ DomA(y) = R(x) and then, by definition of the ordering of L(R),
Cz ≥ Cy; the extent of Cy is included in the intersection of the extents of these
Cz. As we are dealing with elements of a lattice, the extent of Cx is the
intersection of the extents of all Cz, z ∈ R(x), which means Cx is the infimum
(greatest lower bound) of these Cz. Finally, Cy is the minimum concept of a set
of concepts of which Cx is the infimum, clearly Cx = Cy.
⋄
Consequently, the final relation Rces yields the elements of H(R):
Theorem 4. The rows of Rces are in a one-to-one correspondence with the
elements of H(R). More precisely, each element of the starting set is the simplified
label of the corresponding element of H(R) and its image set is the intent of this
concept.</p>
      <p>Proof.</p>
      <p>
        Each object or attribute has an associated introducer. Two objects (resp.
attributes) have the same introducer if and only if their image sets (resp.
antecedent sets) are equal; the corresponding lines of R have been merged in Rc.
In the other hand, by Theorem 3, an object and an attribute have the same
introducer if and only if Rce(x) = Rce(y); the corresponding lines of Rce have
been merged in Rces. As a consequence, the starting sets of Rces are the
simplified labels of the elements of H(R). Their image sets are the corresponding
intents: for x ∈ O, Rces(x) = R(x) is the intent of the introducer of x; for
y ∈ A, Rces(y) = {z ∈ A | (y, z) ∈ DomA} which corresponds to the intent of
the introducer of y.
⋄
Note that the use of DomA gives the intent sets of the elements of H(R). The
use of DomO instead would have given the extent sets. The use of both DomA
and DomO, as proposed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], is less efficient for computing the elements of
H(R).
5.5
      </p>
      <p>Constructing the Hasse diagram of H(R)
Now all we have left to do is construct the Hasse diagram of H(R) by constructing
the ordering by inclusion on the intents. This can be done in O(|O| + |A|)α) time
by removing all transitivity edges, as discussed in Subsection 4.2.</p>
    </sec>
    <sec id="sec-5">
      <title>The algorithm</title>
      <p>Algorithm Hermes
Input: binary relation R ⊆ O × A.</p>
      <p>Output: H(R)</p>
      <p>Compute clarified relation Rc; //merge all identical lines
Compute relation DomA; //determine column inclusions in Rc
Rce=Rc+DomA; //simple juxtaposition
Simplify Rce into Rces; //merge all identical rows
Extract the elements of H(R); //select the starting set of Rces
Order the elements of H(R); //by inclusion on their image sets.</p>
      <p>The complexity of the algorithm is bounded by Steps 2 and 5 with a time in
O((|O| + |A|).|R|) or O((|O| + |A|)α), depending on the chosen implementation.
7</p>
      <p>
        Specialized input: chordal-bipartite relations
A special class of relations should be mentioned in this context: relations which
correspond to ’chordal-bipartite graphs’, which are bipartite graphs containing
no chordless cycle of length six or more. This is a superclass of the relations
which have a planar lattice, but the lattice of chordal-bipartite relations remains
of polynomial size [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>Relations whose corresponding bipartite graph is chordal-bipartite can be
reordered so that their matrix becomes ’Γ -free’. A Γ in a matrix is a sub-matrix
on 4 elements, with a unique zero in the right-hand lower corner (i.e. in matrix
M, there is a pair h,i of rows, h &lt; i, and a pair j,k of columns, j &lt; k, such that
M(h,j)=M(h,k)=M(i,j)=1 and M(i,k)=0).</p>
      <p>
        This Γ -free form is obtained by computing a ’Double Lexical Ordering’
(DLO) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. A DLO is an ordering of the matrix such that the binary ’words’
read from bottom to top for columns are in increasing lexical order, and likewise
for rows, the binary words read from right to left are in increasing order from
bottom to top. In the example below, column a has word 10010 which is smaller
than the word of b, which is 00001, and likewise the word of object 2, 00001 is
smaller than the word of object 3, 00101.
      </p>
      <p>
        Any matrix can be re-ordered to be DLO, and this is re-ordering can be done
in time O(min{m logn, n2}) [
        <xref ref-type="bibr" rid="ref19 ref23">19, 23</xref>
        ]. The DLO matrix is Γ -free if and only if
the relation is chordal bipartite [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>When a relation is in such a DLO and Γ -free form, it is easy to compute
DomA: take each attribute from left to right; for each attribute y, let x be the
first object (from top to bottom) in the column of y (i.e. the first x such that
(x, y) ∈ R); then y dominates exactly the attributes z which are to its right and
that are on row x (i.e. (x, z) ∈ R).</p>
      <p>This a consequence of the DLO and Γ -free form: in a DLO matrix, a given
column can not be included in any column to its left; and in a Γ -free matrix,
if w is the first row with a one in column y, for any column z at the right of y
which has a one in the row of w, if column y is not included in column z, as the
rows of y above w all have zeros, this might only be because of a row x after w
with a one in column y and a zero in column z, i.e. because of a Γ in the matrix
formed by rows w and x, and columns y and z.</p>
      <p>Example. The following matrix is ordered in a double
lexical fashion and is Γ -free. Attribute a is processed
first; its first one is on row 1, so a dominates all the
attributes to its right which has a one on row 1: a
dominates d. Attribute b is processed next; its first one
is on row 5, which has ones at the right of b for c, d and
e, b dominates c, d and e. Attribute c: highest one in
row 3, c dominates e. Attribute d: highest one in row
1, no one at the right, no domination. Attribute e is
last and therefore can dominate no other attribute.</p>
      <sec id="sec-5-1">
        <title>When relation R is chordal-bipartite, Rces can then be constructed in O(n2).</title>
        <p>We conjecture that the Hasse diagram can be extracted at no extra cost.
8</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <sec id="sec-6-1">
        <title>We have presented a new, simple, and more efficient algorithm, Hermes, for</title>
        <p>building the Galois sub-hierarchy of a relation. It would be interesting to compare
its running time in practice to that of the other known algorithms; we conjecture
that Hermes will run faster in most cases.</p>
      </sec>
      <sec id="sec-6-2">
        <title>Algorithm Hermes could be remodeled into an incremental algorithm, which</title>
        <p>may prove interesting for on-line applications such as updating hierarchies in
object-oriented languages.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgement References</title>
      <p>The authors thank Lhouari Nourine for fruitful discussions on the construction
of Galois sub-hierarchies.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Ar´evalo G.,
          <string-name>
            <surname>Berry</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perrot</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>and Sigayret A.: Comparison of performances of Galois sub-hierarchy-building algorithms</article-title>
          .
          <source>Proc. of ICFCA'07, LNCS 4390</source>
          , p.
          <fpage>166</fpage>
          -
          <lpage>180</lpage>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Berry</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bordat</surname>
            <given-names>J.-P.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Sigayret</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A local approach to concept generation</article-title>
          .
          <source>Ann. Math. Artificial Intelligence</source>
          <volume>49</volume>
          , p.
          <fpage>117</fpage>
          -
          <lpage>136</lpage>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Berry</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McConnell</surname>
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Spinrad</surname>
            <given-names>J.P.</given-names>
          </string-name>
          :
          <article-title>Efficiently Computing a Linear Extension of the Sub-hierarchy of a Concept Lattice</article-title>
          .
          <source>Proc. of ICFCA'05</source>
          . 2005
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Berry</surname>
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Sigayret</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Maintaining Class Membership Information. Workshop Maspeghi, proc. OOIS'02 (Conference on Object-Oriented Information Systems)</source>
          .
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bordat</surname>
            <given-names>J-P.</given-names>
          </string-name>
          :
          <article-title>Calcul pratique du treillis de Galois d'une correspondance</article-title>
          .
          <source>Math´ematiques, Informatique et Sciences Humaines</source>
          ,
          <volume>96</volume>
          , p.
          <fpage>31</fpage>
          -
          <lpage>47</lpage>
          .
          <year>1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Coppersmith</surname>
            <given-names>D.</given-names>
          </string-name>
          , and Winograd S.:
          <article-title>Matrix multiplication via arithmetic progressions</article-title>
          .
          <source>Proc. 9th Annual ACM Symposium on Theory of Computing</source>
          , p.
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          .
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dicky</surname>
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dony</surname>
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Huchard</surname>
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Libourel</surname>
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Ares, adding a class and restructuring inheritance hierarchies</article-title>
          .
          <source>Proc. BDA'95</source>
          , p.
          <fpage>25</fpage>
          -
          <lpage>42</lpage>
          .
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Eschen</surname>
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pinet</surname>
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sigayret</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Consecutive-ones: handling lattice planarity efficiently</article-title>
          .
          <source>Proc. CLA'07</source>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Ganter</surname>
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
            <given-names>R.</given-names>
          </string-name>
          :
          <source>Formal Concept Analysis: Mathematical Foundations</source>
          . Springer.
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Godin</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mili</surname>
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Building and Maintaining Analysis-Level Class Hierarchies Using Galois Lattices</article-title>
          .
          <source>Proc. OOPSLA'93</source>
          , p.
          <fpage>394</fpage>
          -
          <lpage>410</lpage>
          .
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Godin</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chau</surname>
            <given-names>T-T.</given-names>
          </string-name>
          : Comparaison d'algorithmes de construction de hi´erarchies de classes,
          <source>Journal L'OBJET</source>
          ,
          <volume>5</volume>
          :
          <fpage>3</fpage>
          -
          <lpage>4</lpage>
          .
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Hitzer</surname>
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Default reasoning over Domains and Concepts Hierarchies</article-title>
          .
          <source>Proc. KI'04, LNCS 3238</source>
          , p.
          <fpage>351</fpage>
          -
          <lpage>365</lpage>
          .
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Hsu W.-L.</surname>
          </string-name>
          , and Ma T.-H.:
          <article-title>Substitution decomposition on chordal graphs and its applications</article-title>
          .
          <source>SIAM Journal on Computing</source>
          ,
          <volume>28</volume>
          , p.
          <fpage>1004</fpage>
          -
          <lpage>1020</lpage>
          .
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Huchard</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dicky</surname>
            <given-names>H.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Leblanc</surname>
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Galois Lattice as a Framework to specify Algorithms Building Class Hierarchies</article-title>
          .
          <source>Theoretical Informatics and Applications</source>
          ,
          <volume>34</volume>
          , p.
          <fpage>521</fpage>
          -
          <lpage>548</lpage>
          .
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Huchard</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leblanc</surname>
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Computing Interfaces in Java</article-title>
          . ASE, p.
          <fpage>317</fpage>
          -
          <lpage>320</lpage>
          .
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Leblanc H.</surname>
          </string-name>
          Sous-hi´erarchies de Galois:
          <article-title>un mod`ele pour la construction et l'´evolution des hi´erarchies d'objets (in French)</article-title>
          .
          <source>PHD thesis</source>
          , Universit´e Montpellier 2.
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Lubiw</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Doubly lexical orderings of matrices</article-title>
          .
          <source>SIAM Journal on Computing</source>
          ,
          <volume>16</volume>
          (
          <issue>5</issue>
          ), p.
          <fpage>854</fpage>
          -
          <lpage>879</lpage>
          .
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Osswald</surname>
            <given-names>R.</given-names>
          </string-name>
          , and Petersen W.:
          <article-title>Introduction of Classification from Linguistic Data</article-title>
          .
          <source>Proc. ECAI'02</source>
          ,
          <string-name>
            <surname>Workshop</surname>
            <given-names>FCAKDD</given-names>
          </string-name>
          , p.
          <fpage>75</fpage>
          -
          <lpage>84</lpage>
          .
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Paige</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tarjan R</surname>
          </string-name>
          .E.:
          <article-title>Three partition refinement algorithms</article-title>
          .
          <source>SIAM J. Comput</source>
          .
          <volume>16</volume>
          (
          <issue>6</issue>
          ), p.
          <fpage>973</fpage>
          -
          <lpage>989</lpage>
          .
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Petersen</surname>
            <given-names>W.:</given-names>
          </string-name>
          <article-title>A Set-Theoretical Approach for the Induction of Inheritance Hierarchies</article-title>
          . Electronic Notes in Theoretical in Computer Science,
          <volume>51</volume>
          .
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Ryssel</surname>
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ploennigs</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kabitzsch</surname>
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Extraction of feature models from formal contexts</article-title>
          .
          <source>SPLC Workshops (15th Int. Software Product Line Conference)</source>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Sigayret</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Data mining: une approche par les graphes (in French)</article-title>
          .
          <source>PHD thesis</source>
          , Universit´e Blaise Pascal (
          <string-name>
            <surname>Clermont-Ferrand</surname>
          </string-name>
          , France).
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Spinrad J.-P.:</surname>
          </string-name>
          <article-title>Doubly lexical ordering of dense 0-1 matrices</article-title>
          .
          <source>Information Processing Letters</source>
          ,
          <volume>45</volume>
          (
          <issue>5</issue>
          ), p.
          <fpage>229</fpage>
          -
          <lpage>235</lpage>
          .
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. http://conexp.sourceforge.net/download.html, release
          <volume>1</volume>
          .3.
          <string-name>
            <surname>c</surname>
            <given-names>S.A.</given-names>
          </string-name>
          <string-name>
            <surname>Yevtushenko</surname>
          </string-name>
          &amp; al. 2000
          <article-title>-2006.</article-title>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>