<!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>Knowledge Base pattern structures-based Classification of underground forums: A case study</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Abdulrahim Ghazal</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National Research University Higher School of Economics</institution>
          ,
          <addr-line>Pokrovsky boulevard, 11, 109028, Moscow, Russian Federation</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>Underground forums messages are online platforms where hackers share information and tools for cyber-attacks. This paper discusses using a knowledge base in the context of lazy classification of underground forums messages using pattern structures to assess the risk of these messages. Comparing the performance of pattern structures and the knowledge base approach shows a significant improvement in time needed for classification without loss in accuracy.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Formal concept analysis (FCA)</kwd>
        <kwd>Threat intelligence</kwd>
        <kwd>Underground forums</kwd>
        <kwd>Pattern structures</kwd>
        <kwd>Knowledge Bases</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Corporations and organizations have been under increasing level of cyber attacks happening in
variety of intensity, frequency and impact [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. This increase has made collecting information
and analyzing findings about these attacks more vital. Threat Intelligence is the practice that
focuses on that, and provides insights to victims on the history, current state of the attacks and
what to do to mitigate them [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The field of Threat Intelligence has been growing a lot in the
past years due to the business and regulations needs for more aware cybersecurity practices.
      </p>
      <p>The adequate implementation of such service includes monitoring, detecting, analyzing and
reporting cyber threats in a timely manner. Sources of information include public and private
underground communities (forums) where the attackers share information about their tools,
ifndings and results.</p>
      <p>Underground hackers forums are social platforms that host a group of topics with comments
from members of the forum. They consist of sub-forums each focusing on a specific sub-field
related to cyber crime. While some of these forums include sections for sales of illegal physical
goods, threat intelligence focuses on cyber threats only.</p>
      <p>Some underground forums are public (like the forum in Figure 1), but many require
registration and in some cases references or payment that ranges from 50$-1000$. These payments are
used sometimes to upgrade a user’s status in the forum (VIP, Golden, etc.), and the user would
be able to access all sections of the forum. These payments are usually done via cryptocurrency.
These forums support "escrow" services with guarantees for deals that are done on the forum.</p>
      <p>Collecting the relevant information is the first step to perform impactful threat intelligence,
which is followed by detecting threats inside the collected information, while the threat is fresh,
or even better, before it occurs. Such process is usually preformed by human analysts who have
to go through a large amount of posted messages daily. This efort grows every day with more
forums and more messages.</p>
      <p>This work aims to assist the analysts in their task and automate the process of detecting
information about threats, giving them more time to move on to the next phases of analysis
and reporting threats to the relevant authorities or victims.</p>
      <p>This will be done by using natural language analysis of the messages with formal concept
analysis and its extension pattern structures to classify messages into risky or none risky. The
method used should be fast enough to catch up with the incoming stream of messages, and
carry some ability to provide a simple explanation of the result of classification.</p>
      <p>In this paper, we focus on using knowledge bases built from previous training iterations of
lazy classification using pattern structures, and comparing the knowledge base with the raw
application of pattern structures lazy classification.</p>
      <p>The rest of the paper is organized as follows: In Section 2 we recall basic denfiitions in formal
concept analysis, pattern structures and lazy classification method using pattern structures. In
Section 3 we describe the experimental setting and knowledge base building. In Section 4, we
discuss the preliminary results of applying the knowledge base approach in the context of lazy
classification to underground forum messages. We conclude the work in section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Formal Concept Analysis</title>
      <sec id="sec-2-1">
        <title>2.1. Main Definitions</title>
        <p>
          Formal Concept Analysis (FCA) is a mathematical theory that is based on concepts and
conceptual hierarchy [
          <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
          ]. Its structuring of knowledge representation was used for knowledge
discovery, data analysis [
          <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
          ], mining association rules [
          <xref ref-type="bibr" rid="ref5 ref7">5, 7</xref>
          ] ontology design [
          <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
          ], and
recommendation systems [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Pattern Structures</title>
        <p>
          This extension of Formal Concept Analysis was developed as an efort to enable applying the
mathematical tools ofered by Formal Concept Analysis with a more complex data structures
like graphs, non-binary or vector data [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Let  be a set of objects and (, ⊓) be a meet-semi-lattice of possible object descriptions
or patterns (for standard FCA, it would be the powerset of attribute set) with the similarity
operator ⊓. Elements of  are ordered by a subsumption relation ⊑ such that , ∈ , then
one has  ⊑  ⇔  ⊓  = . We also define  :  →  as a mapping between objects and their
attributes. We call (, ,  ) where  = (, ⊓) a pattern structure. We can define the operators
(· )◇ on  ⊆  and  ∈ (, ⊓) making Galois connection between the powerset of objects and
Algorithm 1: Lazy Classification with Pattern Structures
Requires: pattern structure (, ,  ), test example  ∈  with description  (),
parameter 0 ≤  ≤ 1.
1: for  ∈ + ∪ − :
2: compute sim =  () ⊓  ()
3: extsim = (sim)◇
4: if  % of objects in extsim have target attribute, classify  positive
5: if  % of objects in extsim do not have target attribute, classify  negative
6: classify undetermined (the algorithm terminates without classification).
ordered set of descriptions:</p>
        <p>◇ = ⊓∈ ()
◇ = { ∈  |  ⊑  ()}
(1)
(2)</p>
        <p>These operators will give us back the maximal set of patterns shared by the objects in  and
the maximal set of objects that share the description , respectively.</p>
        <p>A pair (, ),  ∈  and  ∈ (, ⊓) that satisfies ◇ =  and ◇ =  is called a pattern
concept, where  is called the extent and  is called the pattern intent of (, ).</p>
        <p>A partial order ≤ is defined on the set of concepts: (, 1) ≤ (, 2) if  ⊆  (or,
equivalently, 2 ⊑ 1). This partial order forms a complete lattice on the set of all pattern
concepts. We call this the pattern concept lattice of the pattern structure (, ,  ).</p>
        <p>
          For classification tasks we do not need to extract the full hidden knowledge from a dataset in
terms of implications, hypotheses or association rules, but a so-called lazy classification can be
applied [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Lazy Classification with Pattern Structures</title>
        <p>In classification problems we have a target attribute, which, in the simplest case of two classes,
has two values, denoted by + and − . By + we denote the set of objects that have the target
attribute (positive examples) and by − we denote the set of objects that do not have the target
attribute (negative examples), so that + ∩ − = ∅. Elements of  that do not belong to any
of these subsets are called unclassified examples  .</p>
        <p>
          A version of the lazy classification method [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ] is described in Algorithm 1.
        </p>
        <p>This algorithm takes (|G| ((⊓)+|G| (⊑))) time, where (⊓), (⊑) are times for computing
⊓, ⊑, respectively.</p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Knowledge Bases</title>
        <p>
          With the increase of data sizes used to perform some information retrieval or computation on
the stored data, it becomes challenging to generate results in a timely manner, which led to the
creation of knowledge bases that store some previously proven information that can help in
these tasks for fast access [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>
          In the context of FCA and pattern structures, concept lattices can ofer a new method of
knowledge representation [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and in this work, it will be applied to save time by testing new
objects versus well-performing classifiers that are saved from past testing iterations first.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Experiments</title>
      <p>The goal of experiments is to test how using a knowledge base will change the results of the raw
application of the pattern structures lazy classification scheme (both in time and performance).
To do that, we will need to test several settings of the pattern structures lazy classification
scheme with diferent parameters, then repeat the best performing experiments, but with using
the knowledge base instead.</p>
      <p>We will perform several experiments starting with lazy classification using the traditional
FCA approach, then use the interval, min and max pattern structures. We will repeat the same
experiments, but with probabilistic relaxation. In the end, we will repeat the experiments
with best performing parameters, but with the use of the knowledge base, to measure the
improvement in time needed for classification.</p>
      <sec id="sec-3-1">
        <title>3.1. Dataset</title>
        <p>The used dataset is composed of text messages posted by hackers on several underground forums
starting from 2021 Provided by the cybersecurity firm F.A.A.C.T. The positive examples of the
dataset are real threats detected by human analysts and reported upon. The dataset is balanced
in terms of classes and has 4945 messages. These messages come from a core of real threat
messages that were selected by the Threat Intelligence analysts team in the aforementioned
company. The negative sample was obtained from the same set of underground forums which
contained the positive samples, and posted in the same time frame.</p>
        <p>The dataset is then processed into a numerical dataset for the later stages, with the use of
tf-idf. We should note that the number of keywords that will be included in the results of tf-idf is
a parameter that will be controlled during the experiments and is called “min_df”. It represents
the threshold of percentage of documents at which a keyword is included in the vocabulary. We
will also control the tolerance factor  which represents the probabilistic relaxation allowed for
counter examples (See Algorithm 1).</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Assessment</title>
        <p>where  is the set of unclassified examples  ⊆  .
we should note that the used version of the lazy classification algorithm allows for unclassified
cases, and in this spirit, we define “ Saved Efort ” measure, which is computed as 1 − |||| ,</p>
      </sec>
      <sec id="sec-3-3">
        <title>3.3. Experiments</title>
        <p>In all the following experiments, 5-cross validation was used. The code used to perform these
experiments is written in python 3.6 and no Of-The-Shelf tools were used to write the FCA or
Pattern Structures code, but sk-learn package was used to build the Machine Learning models in
_() =
︂{ 1  ∈</p>
        <p>0 ℎ</p>
        <p>We tested 5 values of min_df and the highest F1 value was 0.98 and saved efort at 0.88
with min_df at 0.01. We repeat the same experiment, but with introducing the tolerance factor,
allowing for a small amount of counter examples. We get the highest F1 value 0.98 and saved
efort 0.92 with min_df at 0.01, and  at 75%.</p>
        <sec id="sec-3-3-1">
          <title>3.3.2. Interval Pattern Structure</title>
          <p>We represent the values of tf-idf as intervals of the floating point value, such that if the tf-idf
value for a keyword is , then the attribute value would be an interval [,]. the intersection
operator for this pattern structure is defined as:
the later sections. Due to space limitations, we present the numerical results (publicly accessible)
at: https://github.com/abdulrahimGhazal/FCA-LC-KB.</p>
        </sec>
        <sec id="sec-3-3-2">
          <title>3.3.1. Binary Attributes</title>
          <p>The attribute values here are the tf-idf values for the keywords contained in the text that were
included in the vectorizer’s vocabulary resulting from tf-idf. It would be represented as:
(6)
[1, 1] ⊓ [2, 2] = [(1, 2), [1, 2)]
(5)
We tested 5 values of min_df and the highest F1 value was 0.88 and saved efort at 0.88 with
min_df at 0.01. We repeat the same experiment, but with introducing the tolerance factor,
allowing for a small amount of counter examples. We get the highest F1 value 0.94 and saved
efort 0.94 with min_df at 0.01, and  at 75%.</p>
        </sec>
        <sec id="sec-3-3-3">
          <title>3.3.3. Min Pattern Structure</title>
          <p>We represent the values of tf-idf as intervals of the floating point value, such that if the tf-idf
value for a keyword is , then the attribute value would be an interval [, ∞[. the intersection
operator for this pattern structure is defined as:</p>
          <p>[1, ∞] ⊓ [2, ∞] = [(1, 2), ∞]
We tested 5 values of min_df and the highest F1 value was 0.90 and saved efort at 0.87 with
min_df at 0.01. We repeat the same experiment, but with introducing the tolerance factor,
allowing for a small amount of counter examples. We get the highest F1 value 0.94 and saved
efort 0.94 with min_df at 0.01, and  at 75%.</p>
        </sec>
        <sec id="sec-3-3-4">
          <title>3.3.4. Max Pattern Structure</title>
          <p>We represent the values of tf-idf as intervals of the floating point value, such that if the tf-idf
value for a keyword is , then the attribute value would be an interval ]−∞ , [. the intersection
operator for this pattern structure is defined as:
] − ∞
, 1]⊓] − ∞
, 2] =] − ∞
, (1, 2)]
(7)</p>
          <p>We tested 5 values of min_df and the highest F1 value was 0.88 and saved efort at 0.88
with min_df at 0.01. We repeat the same experiment, but with introducing the tolerance factor,
allowing for a small amount of counter examples. We get the highest F1 value 0.94 and saved
efort 0.94 with min_df at 0.01, and  at 75% and 80%.</p>
        </sec>
        <sec id="sec-3-3-5">
          <title>3.3.5. knowledge base experiments</title>
          <p>After noticing that a lot of examples are classified using a limited set of attribute sets (from
the intersection of new example and randomly selected examples from the objects set), so a
knowledge base from all “classifiers” which are basically sets of attributes, that performed well
was created. A diagram of the process of building and maintaining the knowledge base can be
seen in Figure 1.</p>
          <p>This knowledge base was then checked manually by human analysts (experts) to review
whether the attributes really carried some truth in the classification. We set the threshold for
adding the classifier to the knowledge base as that it must classify correctly 90% of the test
examples assigned to it, and it must classify at least 2% of the test examples.</p>
          <p>The building of the knowledge base is done via using a validation dataset that is part of
the data, with a 5 cross validation process. the classification results then are given to the
"classification checker" module, which checks if a classifier was able to classify correctly. If
that was the case, the classifier would be added to the interim knowledge base which would
be checked in the end of the validation process to trim the classifiers that do not match our
predefined conditions.</p>
          <p>In case we do not want to update the knowledge base, The resulting classifiers (ready
knowledge base) will be passed on to the test dataset, which the classifiers never saw before to
avoid over-fitting. If the results are satisfactory, we stop the process and save the knowledge
base to use in real-world cases.</p>
          <p>If an update is needed, we also created a monitoring module to update the knowledge base,
after each iteration of testing, so that these conditions are not broken by old classifiers, and in
the same time, we should maintain the time advantage that the knowledge base with a specific
set of classifiers have. The process of updates pass the ready knowledge base to the "knowledge
base checker" module which checks if there are any changes in the rules from the old version
of the knowledge base, and keeps lists of the removed rules and the added rules.</p>
          <p>These rules are then passed to the "knowledge base quality module" which works by making
several intermediate steps towards minimizing the changes while keeping the thresholds of
quality. These intermediate steps would mean breaking some of the quality thresholds, but only
for the removed rules, and only in case the threshold of the number of classified examples (2%)
is not achieved. This is due to the new test dataset. The resulting rules then make the final
updated knowledge base.</p>
          <p>Binary Rules In the following experiments, we only depend on the existence of the set of
attributes as a classifier, so when using the knowledge base, we only check if the message
contains the set of attributes in its text.</p>
          <p>Looking at the results, while the best time was observed in traditional FCA before using
the knowledge base and after using it at 0.03 milliseconds on average, we notice that the time
needed for the rest of tested pattern structures has decreased significantly from more than one
second to 0.04 milliseconds, with a slight loss in performance.</p>
          <p>Conditioned Rules Unlike the previous experiment, we save the values of the attributes
in the set of the attributes of the to-be-added classifiers, then we apply the intersection of the
corresponding pattern structure on the whole test cases.</p>
          <p>Since the binary attributes already mean that the keyword exists or not, the results will not
change for the binary attributes experiments. For the pattern structure experiments, we notice
that the loss of accuracy has decreased, but the time needed has increased slightly, since we have
to check more rules before reaching a classification, but still much better than going through
the usual lazy classification scheme.</p>
          <p>While there is not a large diference between the knowledge base approaches, there is a
large time improvement in comparison to the traditional pattern structures or binary FCA
approaches.</p>
        </sec>
        <sec id="sec-3-3-6">
          <title>3.3.6. Other ML models experiments</title>
          <p>We trained several machine learning models with the dataset we have to observe how our work
measures to common classification models. The experiments were run two times, one with
binarized attributes and another with floating-point values of the tf-idf model. The models used
include:
• Decision Trees
• Gaussian Naive Bayes
• Support Vector Machines
• Logistic Regression
• Random Forests</p>
          <p>The results show a close performance in relation to the pattern structures, which was the
SVM model in the case of binary attributes with an F1 value of 0.96 but less time needed to
reach a classification, with the best average time in the case of Decision Trees model with
lfoating-point values with 0.008 seconds. The times needed in most of the models used were
better than the experiments with the knowledge base.</p>
          <p>Some of these models are rules-based, and others are model-based, but in all of these models,
there is not a possibility for explaining the results simply. This can be simply done by returning
the attribute intersection that led to the classification if the lazy classification algorithm was
run, or the classifier in case of the knowledge base experiments.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Discussion</title>
      <p>The results of the experiments show that the best performance in terms of F1 score was given
by the binarized attributes. The problem with such methods is their flexibility to perform well
when new data is presented.</p>
      <p>When pattern structures are used, the less restrictive the values representation and
intersection operator, the better it performs. Thus, the best pattern structure was the Min pattern
structure, followed by the Max and finally the Interval pattern structure.</p>
      <p>The introduction of knowledge bases will save a lot of time searching for the best fit of
intersected attributes that could produce a classification, but other questions need to be addressed,
like how often the knowledge base must be updated, and how to ensure that there is no bias
due to the old data. It is worth noting that building the knowledge base while keeping the
lfoating-point values of the attributes and applying the intersection operator to include (or
exclude) ranges of values that might give incorrect results in general, but be locally successful
gives better accuracy but needs more time, so a trade-of is established.</p>
      <p>While the time needed for common machine learning models is less in most cases, this
presents an opportunity for improving the implementation of the knowledge base classification,
since the implementation of the used machine learning models (sk-learn) applies multi-threading
when possible, which speeds up the classification.</p>
      <p>The metrics used to assess such kind of experiments also come to discussion, as the nature of
the data and the methods give rise to issues when using F1 for example instead of recall, as in
such cases, where the cost of getting Type I errors is high.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>We presented a knowledge base approach for lazy classification using pattern structures of
underground forums messages, and the results of the use of the knowledge base are promising
in terms of saved time needed to reach a classification.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Acknowledgements</title>
      <p>The article was prepared within the framework of the Basic Research Program at HSE University,
RF</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C. P. R.</given-names>
            <surname>Team</surname>
          </string-name>
          ,
          <article-title>Check point research reports a 38% increase in 2022 global cyberattacks</article-title>
          ,
          <year>2023</year>
          . URL: https://blog.checkpoint.com/
          <year>2023</year>
          /01/05/38-increase-in-2022
          <string-name>
            <surname>-</surname>
          </string-name>
          global-cyberattacks/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Future</surname>
          </string-name>
          ,
          <article-title>The Threat Intelligence Handbook: A Practical Guide for Security Teams to Unlocking the Power of Intelligence, 1st</article-title>
          . ed.,
          <source>CyberEdge Group</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Wille</surname>
          </string-name>
          ,
          <source>Formal concept analysis: mathematical foundations</source>
          , Springer Science &amp; Business
          <string-name>
            <surname>Media</surname>
          </string-name>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ferré</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Huchard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kaytoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Napoli</surname>
          </string-name>
          ,
          <source>Formal Concept Analysis: From Knowledge Discovery to Knowledge Processing</source>
          , Springer International Publishing, Cham,
          <year>2020</year>
          , pp.
          <fpage>411</fpage>
          -
          <lpage>445</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>030</fpage>
          -06167-8_
          <fpage>13</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -06167-8_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kaytoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Napoli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Duplessis</surname>
          </string-name>
          ,
          <article-title>Mining gene expression data with pattern structures in formal concept analysis</article-title>
          ,
          <source>Information Sciences 181</source>
          (
          <year>2011</year>
          )
          <fpage>1989</fpage>
          -
          <lpage>2001</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Masyutin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kashnitsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Lazy classication with interval pattern structures: Application to credit scoring</article-title>
          ,
          <source>in: FCA4AI@ IJCAI</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>W.</given-names>
            <surname>Saidi</surname>
          </string-name>
          ,
          <article-title>Formal concept analysis based association rules extraction (</article-title>
          <year>2012</year>
          )
          <fpage>490</fpage>
          -
          <lpage>497</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Obitko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Snasel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Smid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Snasel</surname>
          </string-name>
          ,
          <article-title>Ontology design with formal concept analysis</article-title>
          .,
          <source>in: CLA</source>
          , volume
          <volume>128</volume>
          ,
          <year>2004</year>
          , pp.
          <fpage>1377</fpage>
          -
          <lpage>1390</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Ogasawara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Endoh</surname>
          </string-name>
          , T. Sakurai,
          <article-title>Context-based ontology building support in clinical domains using formal concept analysis</article-title>
          ,
          <source>International journal of medical informatics 71</source>
          (
          <year>2003</year>
          )
          <fpage>71</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>P.</given-names>
            <surname>Vilakone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Xinchang</surname>
          </string-name>
          , D.-S. Park,
          <article-title>Movie recommendation system based on users' personal information and movies rated using the method of k-clique and normalized discounted cumulative gain</article-title>
          ,
          <source>Journal of Information Processing Systems</source>
          <volume>16</volume>
          (
          <year>2020</year>
          )
          <fpage>494</fpage>
          -
          <lpage>507</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Ganter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Pattern structures and their projections</article-title>
          ,
          <source>in: International conference on conceptual structures</source>
          , Springer,
          <year>2001</year>
          , pp.
          <fpage>129</fpage>
          -
          <lpage>142</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Scalable knowledge discovery in complex data with pattern structures</article-title>
          ,
          <source>in: International Conference on Pattern Recognition and Machine Intelligence</source>
          , Springer,
          <year>2013</year>
          , pp.
          <fpage>30</fpage>
          -
          <lpage>39</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S. O.</given-names>
            <surname>Kuznetsov</surname>
          </string-name>
          ,
          <article-title>Fitting pattern structures to knowledge discovery in big data</article-title>
          ,
          <source>in: International conference on formal concept analysis</source>
          , Springer,
          <year>2013</year>
          , pp.
          <fpage>254</fpage>
          -
          <lpage>266</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Norvig</surname>
          </string-name>
          , Artificial Intelligence:
          <string-name>
            <given-names>A Modern</given-names>
            <surname>Approach</surname>
          </string-name>
          , Pearson,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K. E.</given-names>
            <surname>Wolf</surname>
          </string-name>
          ,
          <article-title>A conceptual view of knowledge bases in rough set theory</article-title>
          ,
          <source>in: International Conference on Rough Sets and Current Trends in Computing</source>
          ,
          <year>2001</year>
          , p.
          <fpage>220</fpage>
          -
          <lpage>228</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>