MathEditor

Math formula editor

Math formula editor lets users enter and edit mathematical formulas.

Its main value is understanding the formula's meaning.

Math Editor is the first class interface between people who need to work with familiar formula notation and specialized math software that need strict input.

Motivation

When we developed an AI based Calculus tutor for one of our customers, we needed a way for users to interact with the tutor by entering math formulas for the tutor to understand and process.

None of the existing formula editors suited us for the following reasons:

Issues with other editors

  • They are designed for printing
  • All the other formula editors produced their result in a specialized language designed for printing. Extracting mathematical meaning from it turns out to be a very difficult, and sometimes unsolvable task.
  • They are poorly accessible
  • Disabled (blind) people cannot use the editors at all, while accessibility is a standard requirement of all the modern Universities.
  • They can’t handle errors
  • When a user enters a formula he often makes mistakes that make the formula meaningless, while they have no way to find where the problem was and what to do to fix it.
  • They may provide ambiguos expressions
  • The same looking formulas often have completely different meanings. Is y(x+1) a multiplication or a function call?

We developed our own formula editor that understands the formula's meaning. The editor is user-friendly, accessible and ready for integration with any external systems.

The Editor Features

#

Understanding semantic

It converts user's input to strict context-free math language and vice-versa
#

Error checking & a smart assistant

It helps user to enter valid formulas and fix typos
#

Advanced accessibility

Blind people can use it
#

Designed for integration

Developers can control it via API

Understanding semantic

The editor can convert a manually entered formula into a strict language that is understood by external systems such as Computer Algebra Systems, plotting libraries and a lot more.

It is an ideal interface between people who need to work with familiar formula notation and specialized math software products that need strict input.

Integration examples



Computer Algebra System



Integration with SymPy - an open source computer algebra system lets us automatically take the derivative, integrals, simplify the formula and a lot more.

Try yourself

Plotting library

Integration with matplotlib, a plotting library, enables 2d and 3d plotting features.

Try yourself

How does the editor understand formula meaning?

The editor has a syntax tree and a semantic tree of the expression inside. The trees are updated on the fly.

Syntax tree reflects the expression structure. Semantic tree reflects the expression's meaning.

Using the semantic tree we can integrate the editor with a broad range of math-oriented software.

You can change the formula and see how the trees get rebuilt on the fly here

Error checking and smart assistant

Understanding the meaning of the expression, the editor highlights syntax errors and can give context-sensitive hints when writing a formula

Advanced accessibility

The editor is adapted for blind people, and can vocalize the input character-by-character as well as read complete formulas as if a human mathematician did it.

Designed for integration

The editor is API driven and extensible. As a developer you have full control over the editor’s behavior, can listen and react to the in-editor events, can interact with the editor’s users and post-process the user’s input (e.g adding custom validators or custom heuristics).

Important non functional properties

Pure client side
No server dependencies

Mobile friendly
Supplied with virtual keyboard

Web ready
Can work in web browser

Applications

The editor can be integrated with a lot of existing software to bring a first class human-machine interface in the mathematical area.

The most obvious applications are:

  • Developing authoring tools
  • Creating math quiz editors (like   this one, created by us as a sample).
  • Developing math tools (problem solvers, plot builders etc)
  • Making existing formulas (e.g. written in LaTex) accessible, translating them to English
  • Converting textbooks to interactive textbooks




We use cookies.