OpenMath - это имя язык разметки для определения значения математических формул. Среди прочего, его можно использовать для дополнения MathML, стандарта, который в основном ориентирован на представление формул, информацией об их семантическом значении. OpenMath может быть закодирован в XML или в двоичном формате.
OpenMath состоит из определения «объектов OpenMath», который является абстрактным типом данных для описания логической структуры математической формулы и определения «словарей содержимого OpenMath» или коллекции названий математических понятий. Имена, доступные из коллекций последнего типа, специально предназначены для использования в расширении MathML, и, наоборот, базовый набор таких «словарей содержимого» был разработан для совместимости с небольшим набором математических концепций, определенных в Content MathML, т.е. -представительное подмножество MathML.
OpenMath был разработан в ходе длинной серии семинаров и (в основном европейских) исследовательских проектов, которые начались в 1993 году и продолжаются до сих пор. Стандарт OpenMath 1.0 был выпущен в феврале 2000 г. и пересмотрен как OpenMath 1.1 в октябре 2002 г. Два года спустя в июне 2004 г. был выпущен стандарт OpenMath 2.0. OpenMath 1 исправил базовую языковую архитектуру, в то время как OpenMatdiv class="ht" улучшил интеграцию XML, разделение структуры и либерализовали понятие словарей OpenMath Content.
Работа OpenMath регулируется OpenMath Society, базирующейся в Хельсинки, Финляндия. Общество объединяет разработчиков инструментов, поставщиков программного обеспечения, издателей и авторов. Членство осуществляется по приглашению Исполнительного комитета обществ, который приветствует самовыдвижение лиц, которые работали над вопросами, связанными с OpenMath, в исследованиях или приложениях. По состоянию на 2007 год Майкл Кольхейз является президентом общества OpenMath. Он сменил Арджеха М. Коэна, который был первым президентом.
Известная квадратная формула :
будет размечен таким образом в OpenMath (представление представляет собой дерево выражений, составленное из функциональных элементов, таких как OMA для приложения функции или OMV для переменных):
2 4 2
В дереве выражения над символами, т.е. такие элементы, как
Словари содержимого - это структурированные XML-документы, которые определяют математические символы, на которые могут ссылаться элементы OMS в объектах OpenMath. Стандарт OpenMath 2 не предписывает каноническое кодирование для словарей содержимого, но требует только инфраструктуры, достаточной для уникальных ссылок в элементах OMS. OpenMath предоставляет очень простую кодировку XML, которая соответствует этим требованиям, и набор специальных словарей содержимого для некоторых областей математики. ics, в частности, охватывающий фрагмент К-14, охватываемый контентом MathML.
Для словарей с более богатой структурой содержимого (и, как правило, для произвольных математических документов) формат OMDoc расширяет OpenMath на «уровень утверждения» (включая такие структуры, как определения, теоремы, доказательства и примеры, например а также средства для их взаимосвязи) и «уровень теории», где теория - это совокупность нескольких контекстуально связанных утверждений. Теории OMDoc разработаны для совместимости со словарями содержимого OpenMath, но они также могут быть установлены в отношения наследования и импорта.
OpenMath критикуют за то, что он неадекватен для общей математики, демонстрирует недостаточную формальную точность, чтобы уловить сложности числовых вычислений, отсутствие доказательства концепции и низкую технологию по сравнению с уже установленными подходы к кодированию математической семантики, среди других предполагаемых недостатков.