Metadata-Version: 2.1
Name: pyfca
Version: 0.3.2
Summary: pyfca - python formal concept analysis
Home-page: https://github.com/pyfca/pyfca
Author: Roland Puntaier
Author-email: roland.puntaier@gmail.com
License: MIT
Keywords: Documentation
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Intended Audience :: Information Technology
Provides-Extra: develop
Requires-Dist: svgwrite
Provides-Extra: develop
Requires-Dist: pytest-coverage; extra == 'develop'

pyfca
=====

https://github.com/pyfca/pyfca

Python Formal Concept Analysis (`FCA`_).

The purpose is to collect algoritms for FCA.

Algorithms
----------

So far:

lattice construction:

- AddIntent

implications basis:

- Koenig

lattice drawing:

- create lattice diagram and output in 

  - svg
  - tkinter

Plan
----

- Create a basic lattice data structure:

- Merge existing sources available online.

  Lattice construction:

  - FCbO
  - InClose2
  - ...

  Implications basis:

  - Closure
  - LinClosure
  - Wild's Closure
  - ...


.. _`FCA`: https://en.wikipedia.org/wiki/Formal_concept_analysis



Usage
-----

It can be used to create a concept lattice and to draw it either using tkinter() or svg().

.. code::

    import pyfca
    fca = pyfca.Lattice([{1,2},{2},{1,3}])
    diagram = pyfca.LatticeDiagram(fca,4*297,4*210)
    diagram.svg().saveas('tmp.svg')
    import cairosvg
    cairosvg.svg2png(url="file:///<path to tmp.svg>", write_to='tmp.png')



The ``AddIntent`` algorithm is from the paper:

    AddIntent: A New Incremental Algorithm for Constructing Concept Lattices


The lattice drawing algorithm is from:

    `Galicia <http://www.iro.umontreal.ca/~galicia/>`_




Implications
------------

This uses the python int as a bit field to store the FCA context.

See this `blog`_ for more.


.. _`blog`: http://rolandpuntaier.blogspot.com/2015/07/implications.html


