[Haskell-cafe] Ann: Emping 0.5 in Hackage

Hans van Thiel hthiel.char at zonnet.nl
Thu Apr 17 13:54:42 EDT 2008

Emping is a utility which derives the shortest rules from a table of
rules. For example, in a list of 8000 different mushrooms, it finds 21
single predicates that determine the mushroom is poisonous, and 23 that
it is edible. But it also finds all combinations of two, three and more
predicates that determine this property.
Each shorter rule is a generalization of an original one. So, if r1
covers {a,b,c} and r2 {a,b}, then r2 implies r1 (r1 entails r2). The
shorter rules are partially ordered.
Thanks to the functional graphs library, which comes with ghc, the
reduced rules are now displayed as graphs which can be viewed with a
Graphviz viewer. Also new in 0.5 is that the reduced rules, and the
reduced rules in an equivalence class, are ordered by length. Lastly,
the GUI has been improved.
Testing has also shown some bugs and issues, most importantly when the
data contains ambiguous rules. Ambiguities are rules with the same
antecedent, but a different consequent. You can test for them, but if
the user turns the checks off and run Emping without correcting the
data, the program could hang, in a special case.

See http://home.telfort.nl/sp969709/emp/empug.html for more info and a
few screenshots.

Thank you all,

Hans van Thiel

More information about the Haskell-Cafe mailing list