This website was built in order to provide users with a diverse set of tools used in Formal Concept Analysis.

If you are new to FCA you can find an introduction at Wikipedia.


Below you can find a list of all the features of this website. Each feature comes with a detailed description which can be accessed by clicking on it.

In some cases you may have small contexts which you want to quickly test out and you don't want to create a file in order to do so.
For these cases you can use the context creation tool which works for dyadic and triadic contexts.

Dyadic context

You can create dyadic contexts by defining your own object in the first column of the table and the attributes on the first row of the table.

After that you can mark with X the cells where there is an incidence relation between an object and an attribute.

dyadic context creation example

Triadic context

Triadic contexts can be created by defining the slices of the context. This is done by filling in a table like the one for the dyadic context for every condition of the context.

You can add conditions by using the button at the bottom of the form and you can name them by clicking on the upper-left corners of the tables.

You can mark with X the cells where there is an incidence relation between an object, an attribute and the condition in the upper-left corner of the table.

triadic context creation example

Contexts can be currently imported in the following formats:

These formats are also available for export.

The fields for importing a context can be seen in the image on the right

The Temporal dimensions field is still WIP (work in progress)

import context form

One of the most common tasks in FCA is to generate the concepts of a context.

This can be done for any n-adic context after it has been created/imported by simply clicking the
"Generate Concepts" button from the context page.

Because context can be quite large we always try to use the fastest known algorithm for this purpose.
Currently for the generation of concepts we use:

  • InClose 4 - For dyadic contexts
  • DataPeeler - For polyadic contexts

If you are aware of faster algorithms please contact us and let us know.

After the concepts have been generated you can view them lower on the context page.

generate concepts button
generated concepts

Once you've generated the concepts of a context the most common way of visualizing them is in a concept lattice.

For this you first have to generate it by clicking the "Generate Concept Lattice" button.
After the concept lattice was generated you can view it by clicking the "View Concept Lattice" button that will appear besides the previous one.

The concept lattice viewer uses a force-layout to automatically arrange the nodes in the graph.
This method produces a pretty good diagram from the very start which you can then further improve by dragging the nodes manually.

generate concept lattice button


To the right you can see the concept lattice of the "Live in water" context.

Sometimes the concept lattice might be too big or it might have too many labels to read.
For this there are several options witch allow you to slightly improve the concept lattice and make it more readable.


  • Collision detection - when active it will prevent nodes from colliding with each other.
    This is very useful when there are too many nodes overlapping and it is hard to distinguish them.
    The collision detection also takes into account the labels of the nodes.
  • Collapse labels - when active it will only show the added objects/attributes for each node instead of the entire list.
    This is useful as it greatly reduces the length of the labels without losing information.
  • Show top labels - when active it will show the labels on the top of the nodes (usually the attributes).
    Sometimes it is useful to hide the labels (when there are too many elements)
  • Show bottom labels - when active it will show the labels on the bottom of the nodes (usually the objects).
    Sometimes it is useful to hide the labels (when there are too many elements)




concept lattice drawer options
live in water concept lattice

Another feature that is available for dyadic contexts is to view the analogical complexes among the concepts.

These are automatically computed for all the concepts and can be viewed by selecting them from the dropdown below the settings panel.

Once selected they are highlighted in the concept lattice.

This feature can be very useful since it is interesting to find relations between concepts that are not directly linked in a concept lattice.

More details about analogical complexes can be found in the paper:
From formal concepts to analogical complexes
by Laurent Miclet and Jacques Nicolas.

analogical complexes

The concept finder allows you to find a concept in a context by including or excluding elements (objects, attributes, etc.) from it.

You can do this by clicking on the "In" and "Out" buttons near each element.
At the end of this iterative process the concept that was found will appear at the bottom of the page.

This feature is useful in cases where the context is too big and you do not want to generate all its concepts.

While searching for a concept a breadcrumb shows each element in the order in which they were included/excluded.
These are displayed by index but hovering over them will show you their value.
Besides this, by clicking one of the items in the breadcrumb you can go back to that step and take a different route.

The Concept Finder also allows you to save bookmarks with your search sessions.
These bookmarks will retain not only the concept found but also that path that was taken in order to arrive at it.
Once saved you can load it from the bookmarks popup.

concept finder

One common problem with triadic contexts is that it is hard to analyze them.
This is because once you generate the concepts you cannot view them in a concept lattice like in the case of a dyadic context.

In order to solve this issue, analyzing triadic contexts is done by deriving dyadic contexts from them and analyzing the concept lattices of the simpler contexts.
The derivation of dyadic contexts is done by projecting along one of the dimensions of a triadic concept, that is: the extent, the intent or the modus.
The component along which the projection is done is called the perspective.

First a concept of the triadic concept is chosen.
After that, the projected dyadic context is built along one of the perspectives of the triadic concept and its concept lattice is computed.
It can be proved that every dyadic concept of this projected context corresponds to exactly one tri-concept in the original tri-lattice.
These tri-concepts are called directly reachable and navigation among them is performed in the underlying dyadic concept lattice.
The navigation is done by selecting one of the dyadic concepts of the dyadic context and computing the associated triadic concept.
By choosing different perspectives of that triadic concept one can navigate through the triadic context obtaining a different dyadic concept lattice and so on.

Step by Step Example

Step 1
In order to start analysing the context you first go to the list of concepts and select a starting point for your navigation.
Then you lock in on one of the dimensions of the concept by clicking the "Lock" button.
This will generate a dyadic context and show you its concept lattice.

concept selection

Step 2
Once you have the dyadic concept lattice you can right-click one of the concepts in order to view the triadic concept associated with it.
This way you can view information regarding the triadic context through the underlying dyadic context.

triadic context navigation

Step 3
After right-clicking a concept you can select a different dimension of that triadic concept and change the perspective by locking in on that one.
This will generate a new dyadic context with its own concept lattice.

By repeating this process you can analyze the triadic context.

The above navigation works even if the context is too big to generate all its concepts.
The only difference is that in the first step you have to find a concept using the Concept Finder.

ToscanaJ was for many years the only tool to handle many-valued contexts. To overcome the difficulties and drawbacks of ToscanaJ, FCA Tools Bundle offers the possibility to build conceptual scales, either predefined or custom scales and by thus to browse and visualize the conceptual structures of knowledge of a many-valued context.

Conceptual scaling is a process of transforming multivalued contexts into unary-valued ones. A (conceptual) scale is a formal context that determines this procedure for a certain many-valued attribute

In order to create a scale in FCA Tools Bundle the following steps are required:

  • Select a source - Currently, the tool supports two sources types from where one may build scales: database and csv.
  • Provide General Scale Data
  • Provide Scale Type Specific Data

Note: A more in-depth explanation will be added in the future but for now please reference our paper: Visualizing Conceptual Structures Using FCA Tools Bundle

Currently the Groups functionality is still WIP (Work in Progress)
This section will be updated at a later time.

One great way of sharing your context is by making the public.
This will allow any users or visitors to see and analyze your context.

Do not fear, they will not be able to edit or modify it in any way.

All public context can be found in the Public Contexts section of the website.

Because of technical reasons there are several hard limitations imposed by the website for all operations.

  • Concepts generation - maximum of 4000 relation pairs
  • Concept Lattice generation - maximum of 500 concepts

In the future some restrictions will be softened while others may be added.

If you have a context that does not fit these constrains and you still want to run it please contact me and I will try to find a solution.

Useful Links