Project Background
If you have ever taken a Compilers course or worked with Regular Expressions (a form of terse symbolic notation used to define a restricted subset of unambiguous language grammars) in Perl or some other scripting language, you know how hard it can be to get the specification for even a small language grammar just right. Indeed, even if you are just a non-technical End User who has ever be forced to look at the apparent gibberish of such regular expressions, you can probably appreciate how helpful it would be to have a better way to express these ideas.
Well at last there is a better way to define grammars that are intended to be unambiguous. It isn't suitable for parsing Natural Language, but that has never really been the issue for designers of programming and End User scripting languages.
This new formalism is called a Parsing Expression Grammar and it directly captures how a computer decides if a given input is a valid sentence in some unambiguous command language. It has a number of highly desirable properties and languages expressed using it can be automatically converted into highly efficient parsers for those languages using an algorithm called Packrat Parsing.
Even more exciting is the fact the hardest part of making use of this work has already been done by an NYU researcher who developed a PEG-based Packrat Parser Generator called Rats!
The Problem
This software is written in Java and presently has no user interface. As a result, to make use of it, one needs to understand both the PEG grammar formalism as well as Java programming at a fairly advanced level. We would like to see the Java housekeeping details of using the Rats! system abstracted away and hidden behind a simple graphical user interface that would let users input PEG grammars and test their application to sample data without having to deal with Java directly.
We don't have any funding to support this work, but it would be a major contribution to the development community and lead instantly to a high level of personal recognition for a volunteer willing to meet the challenge. This work is suitable for an advanced undergraduate or graduate student to undertake and is well within the abilities of a serious Java hobbyist/open-source hacker.
If you think this is something you might want to take on, we would ask that you release your work as open source under the aegis of The Institute and to Contact Us for more details.