Skip to content

tomhanika/conexp-clj

Repository files navigation

conexp-clj Build Status Clojars Project built with nix

This is conexp-clj, a general purpose software tool for Formal Concept Analysis. Its main purpose is to enable nontrivial examples to be computed easily, but it can be used for much, much more.

Documentation

  1. Getting Started
  2. Don't Bother Me with Theory, I Want to Do Stuff! (aka: Tutorials)
    1. A Gentle Introduction (ICFCA 2013)
    2. Compute the Canonical Base from a Formal Context that is given in CSV Format
  3. A more complete overview over conexp-clj
    1. Notation and Syntax
    2. Creating and Working with Formal Contexts
    3. Concept Lattices
    4. IO for Formal Contexts
    5. Implications
    6. Exploration
    7. Scaling Many-Valued Contexts
  4. Example use cases of conexp-clj
    1. Formal Contexts from Implications
    2. A Formal Context of Functions
    3. Context of All Permutations on a Finite Set
    4. The Tamari Lattice
    5. Preconcept Covers
    6. Number of Elements of the Free Distributive Lattice
    7. Counting Linear Extensions
    8. Computing Traces in Contexts
    9. Counting Quasiorders
    10. Rudolph's Algorithm for Computing Bases
    11. Discovering Causal Implications
  5. Advanced Topics
    1. pq-cores
    2. REST-API Usage
    3. triadic-exploration
    4. protoconcepts
    5. Incomplete Contexts
  6. API documentation
  7. Development

History

The project has been started by Daniel Borchmann under supervision of Christian Meschke as part of the DFG project GA 216/10-1. It has since been developed further into a general purpose FCA tool by Daniel Borchmann until his departure from academia in 2017. From then on, Tom Hanika took over and is still the principal maintainer of conexp-clj.

Limitations

Note that conexp-clj is not a high-performance tool for Formal Concept Analysis and may sometimes be considerably slower then comparable tools. If you want more performance, check out Uta Priss' website on FCA software.

Contributing Authors

See AUTHORS.md.

How to cite conexp-clj?

If you have used conexp-clj for your scientific work, the developers would appreciate if you use the following reference.

@inproceedings{DBLP:conf/icfca/HanikaH19,
  author    = {Tom Hanika and
               Johannes Hirth},
  editor    = {Diana Cristea and
               Florence Le Ber and
               Rokia Missaoui and
               L{\'{e}}onard Kwuida and
               Baris Sertkaya},
  title     = {Conexp-Clj - {A} Research Tool for {FCA}},
  booktitle = {Supplementary Proceedings of {ICFCA} 2019 Conference and Workshops,
               Frankfurt, Germany, June 25-28, 2019},
  series    = {{CEUR} Workshop Proceedings},
  volume    = {2378},
  pages     = {70--75},
  publisher = {CEUR-WS.org},
  year      = {2019},
  url       = {http://ceur-ws.org/Vol-2378/shortAT8.pdf},
  timestamp = {Wed, 12 Feb 2020 16:44:55 +0100},
  biburl    = {https://dblp.org/rec/conf/icfca/HanikaH19.bib},
  bibsource = {dblp computer science bibliography, https://dblp.org}
}

License

Copyright ⓒ 2009—2018 Daniel Borchmann, 2018–2024 Tom Hanika

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.