An important issue with any form of programming is that of testing.
Once you've created rule sets, either with our editor or with XmlMiner, how do you test them?
Both the editor and XmlMiner create syntactically correct Metarule automatically. The problem is deciding if your rule set does the things you intended, and more importantly doesn't do things you didn't intend.
In creating any rule based system, the biggest problem is that a set of circumstances may have been overlooked. The author may have forgotten, or not thought through all the different combinations of inputs that might occur, and coded solutions for them.
If you are using XmlMiner this situation can still arise if the data set used to create the rules is not general enough. If there are no examples in the data set for a particular condition that might arise, XmlMiner can't learn that condition.
These gaps in a set of rules are known as lacunae - hence lacuna's name.
Lacuna is intended to solve this problem. Lacuna takes a rule set and creates values automatically to fire at it. It uses the latest research in Genetic Algorithms to create a large population of patterns that are genetically combined to improve the search for gaps in the rule set. In a normal Lacuna testing run millions of values are fired at the rule set to try to find its weak points. This is all performed on our servers - if you are using the web service version of our products.
The result is a report outlining the conditions that have been found that do not generate an output, or generate only a low confidence output from the rule set.
It may be that when you look at the list, none of the lacunae found are important or likely to occur in the real world. If there are lacunae the report tells you what combination of input values are required to generate them, so you can construct further rules to get rid of them.
Lacuna is part of the XmlMiner web service and Class library. To use lacuna you just supply the rule set and wait for processing to end. We recommend asynchronous calls with the web service as this can take seconds or minutes.