Zaxo has asked for the wisdom of the Perl Monks concerning the following question:

I want to do some algebraic manipulation, preferably in Perl. I first looked at Math::Expr, which I've had around for a while and fooled with a little, but I now see that M::E has a lot of shortcomings. Its data file format is undocumented, its error checking and handling is inadequate, and it appears to have been long abandoned in an unfinished state.

One of the things M::E does is output a parse tree in MathML. Looking at the MathML specification to see what the module was doing, it dawned on me that a MathML parser ought to be able to do the whole job, with XSLT to do the algebraic transformations and representational output. The xml parse tree for content MathML should look almost like the kind of algebraic parse tree M::E produces. That ought to settle just about all the problems I have with M::E.

Neither CPAN nor the W3 MathML site list an existing perl module specialized for MathML. I'm not very savvy with XML, but this sure seems like an opportunity to learn (this project is a personal itch - no deadline).

So, I have both the Schema and DTD available for MathML, and all the XML resources of CPAN. I have the green monkey book, which I'm sure will lead me where I want to go as soon as I pick a strategy.

What would your preferred approach to this problem be? What strategy would you use to take an xml namespace and its specs and produce a parser and XSLT engine?

After Compline,