MoboMath

MoboMath

Capabilities

MoboMath simplifies the difficult process of getting mathematical notation into a computer. It allows the user to write mathematical expressions with a pen, on a tablet of some kind, and then convert them to text. The user can easily edit and modify them, and when ready place them in other applications, like Mathematica or Word.

MoboMath can import and export native formats to Mathematica, Word, and some other applications, and general formats like TeX and MathML to anybody else.

View a short demo.

History

MoboMath is a long running project which began as an NSF funded project at CIC, on which I was PI. The project was purchased by MathSoft and later spun out to Enventra. I designed and built the training and recognition components in C++, and built the Windows user interface in Java.

It was commercially available on Windows, MacOS and iOS.

Technology

The platform used to combine the many knowledge sources which contribute to recognition is a stochastic grammar, and the overall recognition process is an Earley's algorithm parse of the input data. During original expression input the parse only requires one stroke lookahead, so most of the recognition computation takes place while the user is writing, and the user gets very fast response.

The same parser serves for original input and most editing operations, for which the input stream is not just a sequence of strokes, but also includes some known characters and positional constraints.

The language model is the first of the three most important knowledge sources, and is described in my patent on the subject. Just as for natural languages, certain symbols and certain combinations of symbols are more common than others, and a linguistic model based on the structure of the mathematical language provides important information for the recognizer.

The character model is the second major source. It uses a neural net first pass, trained with an open source system I brought in and modified heavily. After the first pass, it uses a multivariate distribution model in sliding windows over the length of the character.

The position model is the third major source, and is quite heterogeneous. Most positional relations involve two elements, but some involve more; and some features are very useful for some positional distinctions but just noise for others. The model uses neural net and support vector technology.