Further towards NineML 3.0.0
The (last?) beta release of what will be NineML 3.0.0 is available. Feedback most welcome.
Last time on NineML: Release Chronicles, we talked about getting trees out ambiguous parses. I’ve rewritten it again since then. Huge thanks to Michael Sperberg-McQueen for a number insightful conversations about how to enumerate trees in an infinitely ambiguous forest.
NineML now enumerates all of them.
Above and beyond what I discussed last time, I’ve also cleaned up and extended the parser options, the CoffeePot command line flags, the JavaDoc, and the documentation generally (though it’s still a bit of a mess, really).
Huge shout out to Chris Newland for helping me find a 10x performance improvement in the GLL parser. I subsequently found another 20% improvement and I’m reasonably confident that it is now generally faster than the Earley parser. I’ve also persuaded myself that it’s correctly implemented, which is nice.
Warning to everyone who cares about the source code, I’ve completely refactored the NineML source code repository. Where I used to have wholly independent repositories for CoffeeGrinder, CoffeeFilter, CoffeeSacks, and CoffeePot, I now have a single repository in which those are all subprojects. The original repositories still exist, but only to hold the release artifacts and the web pages. I’ve probably broken your forks. Apologies for the inconvenience.
I believe I’m done. I have no plans to change anything else before releasing 3.0.0. In the absence of any bug reports, I plan to push the 3.0.0 release just shortly before BalisagePresentation! I have to write my Balisage presentation! which y’all should be planning to attend.
If you were waiting until I was done fussing before you kicked the tires (excuse me, tyres), now is the time!
See you in a couple of weeks at Balisage!