1.1.7 docs





    Dec 9, 2016

    Daniel Borchmann


    Index of all namespaces

    « Project + dependencies

    A ConExp rewrite in clojure

    Defines an external binding to the program «pcbo» by Petr Krajca, Jan Outrata, and Vilem
    Vychodil, which can compute context intents in parallel.
    Implements the TITANIC algorithm. Note that this implementation is not tuned for speed
    but for flexibility.
    Utility functions for algorithms.
    Concept Approximation as described by C. Meschke.
    Computing the Möbius function of concept lattices
    Provides standard gui for conexp-clj.



    Provides basic definitions for the standard conexp-clj GUI.
    Common namespace for conexp-clj IO functions.
    Provides functionality to represent conexp-clj datastructures as latex code.
    Utilities for writing out-in tests for IO.
    The README below is fetched from the published project artifact. Some relative links may be broken.

    conexp-clj Build Status

    This is conexp-clj, a general purpose software tool for Formal Concept Analysis.

    The project has been started by Daniel Borchmann under supervision of Christian Meschke as part of the DFG project GA 216/10-1.


    conexp-clj is a pocket-calculator for Formal Concept Analysis. Its main purpose is to enable nontrivial examples to be computed easily.

    conexp-clj features include:

    • Basic Operations on Formal Contexts
    • Relational Algebra with Formal Contexts
    • Transparent IO for Formal Contexts (in development)
    • Scaling for Many-Valued Contexts
    • Implicational Theory and Basic Attribute Exploration
    • NextClosure (of course)
    • Computing Luxenburger-Bases and Iceberg Concept Sets
    • IO for Many-Valued Contexts
    • Lattice Layouts and Lattice IO (some…)
    • A bit of Fuzzy-FCA
    • Interface for sage

    Note that conexp-clj is not a high-performance tool for Formal Concept Analysis. If you want this, check out Uta Priss’ website on FCA software.


    You need

    • a Jave Runtime Environment (≥ 1.6)
    • Leiningen (≥ 2.0.0) if you want to run conexp-clj from source

    How to Run

    The recommended way to run conexp-clj is to download a pre-compiled version, unpacking the zip file and puting the contained bin directory into you path. You can then run

    $ conexp-clj

    from you command line (without the “$”) to get a bare conexp-clj repl. If you want to try the experimental GUI, you can use

    $ conexp-clj --gui



    The current main source of documentation on conexp-clj is its Wiki. Additionally, for general help on a function f, you can use the clojure function doc with

    (doc f)

    For finding functions you may find useful, you can use find-doc

    (find-doc "Whatever you may find useful")

    Additional Documentation:

    They have been written by Sebastian Böhm.

    • Advances example files:

    • Attribute Exploration a demonstration how attribute exploration can be done in conexp-clj.

    • Fuzzy FCA, a sample file to show how to use fuzzy FCA with conexp-clj
    • Factor Analysis, a small program that demonstrates how to use conexp-clj for factorizing contexts
    • Formal Contexts for Implications, computing a context for a set of implications
    • A Formal Context of Functions, see the paper by Artem Revenko and Sergej Kuznetzov for the CLA2010
    • Permutations as Formal Context, computes a context whose concept lattice is isomorphic to the lattice of permutations on the set {0,…,n}.
    • Tamari Lattice, the lattice of all bracketings of n+1 symbols (a.k.a. the Tamari Lattice of parameter n)
    • A Tutorial, given at the 11th International Conference on Formal Concept Analysis

    Running conexp-clj from source

    To run conexp-clj from source, switch in the source directory of conexp-clj and run

    $ lein deps

    This will download any missing jar files needed for conexp-clj to run. To quickly obtain a repl just issue

    $ lein repl

    If you want a more sophisticated repl, you may try nrepl.el.

    Compilation Instructions for conexp-clj

    To create a standalone zip on your own, just run make in the top source directory. This will (should) do everything to create a zip archive containing a compiled version of conexp-clj. You can also run this compiled version directly by invoking ./conexp-clj/bin/conexp-clj (after unpacking the .zip file.)

    Contributing Authors

    Currently conexp-clj is developed and maintained by

    • Daniel Borchmann

    Additional Contributors are

    • Immanuel Albrecht (Context Editor Plugin for the GUI)
    • Stefan Borgwardt (Shared Intents)
    • Gleb Kanterov (interval-scale)
    • Johannes Wollbold (bug reports, feature requests)


    Copyright ⓒ 2009—2016 Daniel Borchmann

    Distributed under the Eclipse Public License.

    This program uses an adapted version of the G library, a 2D graphics library and rendering engine for Java, ⓒ 2009 GeoSoft, licensed under the GNU Lesser General Public License (LGPL). Modifications to the original version of G are only concerned with exposing internals necessary for conexp-clj to work. The modified version of G is again licensed under LGPL.

    This program uses parts of the LatDraw library, ⓒ 2002 Ralph Freese.