This page is a about the direction that ShapeLogic might take, but it is not set in stone.
For more up to date information on ongoing development work look at this blog Declarative Computer Vision.
Currently the rules in ShapeLogic are parsed from strings Apache Commons JEXL library.
So the letter A would have a rule saying:
polygon.holeCount == 1
This is not trivial since a variable say polygon.holeCount could have different values in different contexts.
E.g. if there was a choice of 2 different thresholds levels, then in one part of the choice tree we could have
polygon.holeCount == 1 and in another we could have
polygon.holeCount == 2.
These user defined rules might be changed from using JEXL to using the Java 6 Scripting instead.
JEXL has not been released for over 1 year, and it is a little awkward to handle static fields and methods. It might also be better to let the user chose what scripting language they want to use.
Currently there languages should be available for scripting: JavaScript, BeanShell, Jython, Groovy and JRuby.
One issue is that you cannot just use variable binding in a global scripting context. In the example from above if the variable polygon.holeCount does not exist in the top context, Java 6 Scripting has some means to handle this problem.
It is possible that there will be release of ShapeLogic 0.9 where you just can select another rule database stored in a flat file or a database, but using the current system, in order not to drag the next release out too long. This should allow the users to define rules for matching a separate alphabet, say the Greek.
The next example application for ShapeLogic will be medical image processing.
Possibly a problem presented by a Neuroscientists doing Alzheimer's research. It is a very interesting problem, but it would take at least a few months to finish it.