edit

Formal Concept Analysis for software Engineering

Formal Concept Analysis is a formalization of the notion of concept based on Galois lattice theory. FCA is an unsupervised machine learning approach which produces clusters, classifications and rules. It can be considered as one of the oldest data mining techniques.

In the team, we have two skills concerning FCA.

Relational Concept Analysis (RCA), an iterative extension of FCA to extract concepts in multi-relational data

See the tutorial here.

FCA and RCA are applied to the software engineering domain

  • for model refactoring
  • for component and service classification
  • for learning model transformation patterns

Enjoy the RCA pizza example

  • data are people that eat pizzas that contain ingredients produced in country that have people as their citizens
people, pizzas, etc.


  • In the produced classifications, RCA clusters for example people that eat pizzas containing italian ingredients or is able to discover rules like "pizza containing cream contain at least one ingredient produced in Norway"
 lattices