This is a tool that allows you to interactively navigate through the formal concepts of a dyadic, triadic or tetradic dataset.
Here are the basic theoretical aspects of formal concept analysis, that you need to know in order to use the tool.
A dyadic formal context K=(G, M, I) consists of a set of objects G, a set of attributes M and a relation I between the two sets.
Intuitively, a dyadic formal concept is a pair (A, B) where A is a subset of objects and B a subset of attributes, with the property that all objects of A have all the attributes of B. Furthermore, the maximality property holds, meaning you cannot add an element to either A or B, so that the previous property still holds.
Similarly, a triadic formal context K=(G, M, B, Y) consists of a set of objects G, a set of attributes M, a set of conditions B and a triadic relation Y on the three sets.
A triadic formal concept is a triple (K_1, K_2, K_3) with the property that all objects from K_1 have all attributes from K_2 under all conditions from K_3. The maximilaty property holds, meaning you cannot add an element to any of the three subsets, so that the previous property still holds.
Formal concept analysis is defined analogously for the tetradic case and can even be extended to the n-adic case.
When interactively navigating you choose for each element whether it should be included in the triconcept or excluded from it. The tool automatically includes or excludes other elements, so that you don't get to an impossible state and in the end you always get to a triconcept satisfying your restrictions.
The tool implemented here was described in the paper :
Membership Constraints in Formal Concept Analysis by S. Rudolph, C. Sacarea and D. Troanca published at IJCAI 2015.
This tool was compared for the triadic case with the Trias Concept Navigation tool
Important Obs. In case the clingo executable cannot be added to the path in Linux (due to permission issues) please copy the clingo executable in the same folder as your jar and run the ASPConceptNavigatorLinux.jar.
Obs. It was noticed that clingo version 4.5.3 on Windows has some bugs, so avoid that version.
Be aware that it is an interactive tool, so it has a graphical interface. Therefore, some problems could appear on a linux machine, where you would need to install additional software or use tunneling to render the graphical interface on a different machine.
The tool supports both dyadic, as well as triadic datasets.
The input type for the dyadic case is a context file (*.cxt ), which is a typical format for representing dyadic contexts in formal concept analysis.
You convert existing datasets into context files with other tools, such as FcaBedrock
The project includes an example for a dyadic input file:
mini-mushroom.cxt
The input type for the triadic case is a csv file, containing the triadic relation.
The project includes an example for a triadic input file:
dblp_input.csv
In this input file the first dimension is represented by authors, the second dimension by conferences/journals and the third dimension by years.
The input for the tetradic case is a csv file, containing the tetradic relation.
The project includes an example for a tetradic input file:
tetradic_input.csv
In this input file the first dimension is represented by authors, the second dimension by conferences/journals,the third dimension by years and the fourth dimension by the number of coauthors of the publication.
This particular example was artificially extended from the triadic input file only for testing reasons, but the real number of coauthors can easily be obtained from the dblp data.
The main class that starts the tool is Runner.java from the package app, so you can load the project into an IDE and launch the project from this class.
Alternatively, you can only download and run the jar file (using the command java -jar ASPConceptNavigator.jar): ASPConceptNavigator.jar
For linux please also see the observation from the prerequisites section.
From than on all the steps are interactive, including choosing the input file.
The tool creates, in the same folder where it runs, a file named statistics.log .
This file contains details about the execution times.
The first line contains the offline time, which represents the time for loading the data from the input file.
The next lines each contain the time for one step, meaning when the user selected an element as being in or out.
For questions, bugs or other observations please contact me directly,use the discussion forum or post a review.
Thank you!