MathML и Java
Я проводил исследования для математического проекта, связанного с Android, который хотел бы начать, и впервые наткнулся на MathML.
Кто-нибудь знает какие-либо библиотеки Java, которые могут делать любые (предпочтительно все) из следующих вещей?
- Parse MathML
- Вывод MathML путем разбора стандартной математической записи
- Рендер MathML (особенно важно)
- Делайте любые другие интересные математические вещи (например, переставляйте уравнения в терминах разных вещей)
Номер 3, вероятно, самый важный, а номер 4 наименее.
Заранее спасибо.
5 ответов
Я использовал JEuclid для рендеринга MathML в своем проекте Symja (система символьной математики Java - пункт 4 вашего списка). JEuclid может быть слишком медленным (особенно при запуске) для отображения MathML на мобильном телефоне.
Другие альтернативы для рендеринга математических выражений с TeX:
и для реорганизации уравнений или как общие математические библиотеки Java:
- Матридер (Яки для Явы)
- Jasymca - символический калькулятор для мобильных устройств
- Система алгебры Java
- Библиотека математики Apache Commons
Калькулятор проектов для Android:
- научный калькулятор для андроида (лицензия Apache)
- Jasymca для Android (публичная лицензия GNU)
- Arity калькулятор для Android (Apache лицензия)
На странице Реализация W3C MathML ( http://www.w3.org/Math/Software/mathml_software_cat_editors.html) есть несколько статей, в которых упоминаются инструменты на основе Java... которые могут стать хорошим местом для начала поиска.
Удачи.
Похоже, JScience ( http://www.jscience.org/) имеет некоторую экспериментальную поддержку для MathML.
Я хотел бы сказать, что я очень впечатлен возможностями, которые автор JScience выбрал и доказал, что способен поддерживать его мощную библиотеку Java.
Это довольно удивительное произведение искусства. Если вы выполняете какое-то значительное количество сложной математики в своих программах на Java или просто хотите создать утилиту, с которой можно разбираться, тогда вам стоит взглянуть на эту библиотеку. Это может даже дать вам некоторые идеи о вещах, о которых вы никогда не думали делать раньше, потому что они были "слишком сложными".
Существует проект с открытым исходным кодом под названием MathEclipse, который может вас заинтересовать.
Я использовал это для вашего пункта № 3 выше (рендеринг): http://jeuclid.sourceforge.net/
Он делает довольно изящную работу, беря MathML и создавая JPG, PNG и т. Д. Он также отображает уравнения в графическом интерфейсе (и я предполагаю, что вы можете посмотреть код GUI и включить его в свой собственный проект)
Конечно, это зависит от наличия браузера, который будет отображать MathML.
Альтернативой было бы попробовать jsMath, библиотеку JavaScript, которая использует TeX для визуализации уравнений.