NineML suite version 3.0.0a released

Hello,

I’ve recently published a beta release of the NineML suite of Invisible
XML tools (CoffeePot[1], CoffeeFilter, CoffeeSacks, and CoffeeGrinder,
CoffeePress to follow shortly). Feedback most eagerly solicited.

The changes grew out of things I discovered[2] in the course of writing
my Balisage paper. Consequently, many of the changes are related to how
ambiguity is described and handled.

1. The tools do a better job of enumerating the trees in an infinitely
   ambiguous forest. They no longer repeat some trees.
2. The output of --describe-ambiguity now resolves the ambiguities down
   to symbols from the original grammar, not the transformed BNF.
   (So you get things like “the choice is between A, B, C and A, D, C”
   not “the choice is between $3_B_opt and $3_D_opt”.)
3. The new --analyze-ambiguity option prints the results of ambiguity
   analysis by Anders Möller’s analyzer[3].
4. The options passed to XPath functions when used to resolve ambiguity
   (either in CoffeeSacks or loaded as a function library in CoffeePot)
   have been changed completely. You now get access to the whole
   parse forest and you can accumulate information across calls.
5. Support for priorities on nonterminals is a core feature of
   CoffeeGrinder. The priorities are now integers.
6. An ambigous parse that has a unique solution expressed in terms of
   priorities (or because an XPath function resolved them all
   explicitly) can be produced without marking it as ambiguous.

Possibly other things as well, but that’s what comes to mind this
morning.

[1] https://github.com/nineml/coffeepot/releases
[2] https://so.nwalsh.com/2023/07/04/nineml3
[3] https://www.brics.dk/grammar/

                                        Be seeing you,
                                          norm

--
Norm Tovey-Walsh
Saxonica

Received on Wednesday, 5 July 2023 08:38:07 UTC