Since Umm is still in the beta phase, and is largely experimental in many ways, many important features may be left for the future.
Improvements for version 1.0
Get GTKMathView in full working order as a renderer
On our test systems, we had extensive issues trying to get the
Umm using GTKMathView to properly render equations that included
characters outside of Latin-1. This is the most significant known
issue with the software.
Make transformations completely DOM-based
Parts of the current architecture transform the document through
string manipulation, as it was felt that the DOM may be too expensive
for large documents. However, some later changes the architecture
have made this irrelevant. In the next release, Umm should only
use the DOM for document manipulations.
Switch database over to Pear::DB
It was felt that Umm should have as few prerequisites as possible,
so a quick-and-dirty database abstraction layer is provided with Umm.
However, future versions will use Pear::DB, and provide support only
for MySQL if the user does not wish to install pear.
Improve data on Browser CSS behaviour
Since browsers vary somewhat in how a given page is displayed, data
on various browsers is necessary to match equations to their
surroundings when they are rendered to images. However, we only
currently have data on a limited number of browsers.
Add support for SVG
Umm's architecture could easily be adapted to also handle SVG.
Thus, by 1.0 Umm could also support XHTML+SVG and XHTML+MathML+SVG
documents (so long as XHTML is the host language). The primary
obstacle would be in SVG which contains XHTML sub-elements, which
may not be supported.
Client-Side CSS Evaluation
Use getComputedStyle
for those browsers known
to support it.
Synura/Hypotrich
Significant parts of Umm are not suited for implementation in PHP. The CSS engine especially belongs in a language more like C. Two options are currently being worked on to address this which will make Umm, or something like it, suitable for more high-traffic pages. First, Umm may be significantly more capable if it instead relied on a PHP extension for the parsing and evaluation of CSS, possibly using libcroco (Synura). Also, we are currently working on a C/C++ based framework for performing the kinds of transformations that Umm does (Hypotrich). Part of this framework will be the ability to use these transformations as an apache filter, which would replace Umm (at least for users who have administrator access on their servers). However, in order for this to replace Umm, we'd have to perfect our data on the MathML capability of various browsers, or find a foolproof way of automatically inserting the selection menu.