The NineML suite

There are, broadly, five projects in the current NineML suite.

If you’re interested in using Invisible XML, combining a grammar with some input to produce XML (or JSON, or CSV), then you probably want to start with CoffeePot.

If you’re interested in doing that inside other X-stack technologies such as XSLT stylesheets or XProc pipelines, you may also be interested in CoffeeSacks or CoffeePress. (CoffeePress, the XProc step implementation, isn’t as far a long at the moment; I’m planning to work on that.)

If you want to integrate Invisible XML processing into your own projects on the JVM, start with CoffeeFilter.

Finally, if you want to write your own applications on top of a general Earley or GLL parser, start with CoffeeGrinder.


CoffeeFilter uses CoffeeGrinder, CoffeeSacks uses CoffeeFilter, and CoffeePot uses CoffeeFilter and CoffeeSacks. CoffeePress uses CoffeeFilter.

At the implementation level, the ambiguity analyzer feature of CoffeeGrinder also depends on Anders Möller’s ambiguity analyzer.