OpenMath - OpenMath
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 исправил базовую языковую архитектуру, в то время как OpenMath2 улучшил интеграцию XML, совместное использование структуры и либерализовали понятие словарей OpenMath Content.
Общество OpenMath
Работа над OpenMath осуществляется под руководством OpenMath Society , расположенного в Хельсинки , Финляндия . Общество объединяет разработчиков инструментов, поставщиков программного обеспечения, издателей и авторов. Членство осуществляется по приглашению Исполнительного комитета обществ, который приветствует самовыдвижение лиц, которые работали над вопросами, связанными с OpenMath, в исследованиях или приложениях. С 2007 года Майкл Кольхейз является президентом общества OpenMath. Он сменил Арджеха М. Коэна, который был первым президентом.
пример
Известная квадратичная формула :
были бы размечены следующим образом в OpenMath (представление представляет собой дерево выражений, составленное из функциональных элементов, таких как OMA для приложения функции или OMV для переменных):
<OMOBJ xmlns="http://www.openmath.org/OpenMath">
<OMA cdbase="http://www.openmath.org/cd">
<OMS cd="relation1" name="eq"/>
<OMV name="x"/>
<OMA>
<OMS cd="arith1" name="divide"/>
<OMA>
<OMS cdbase="http://www.example.com/mathops" cd="multiops" name="plusminus"/>
<OMA>
<OMS cd="arith1" name="unary_minus"/>
<OMV name="b"/>
</OMA>
<OMA>
<OMS cd="arith1" name="root"/>
<OMA>
<OMS cd="arith1" name="minus"/>
<OMA>
<OMS cd="arith1" name="power"/>
<OMV name="b"/>
<OMI>2</OMI>
</OMA>
<OMA>
<OMS cd="arith1" name="times"/>
<OMI>4</OMI>
<OMV name="a"/>
<OMV name="c"/>
</OMA>
</OMA>
</OMA>
</OMA>
<OMA>
<OMS cd="arith1" name="times"/>
<OMI>2</OMI>
<OMV name="a"/>
</OMA>
</OMA>
</OMA>
</OMOBJ>
В дереве выражений выше символы, то есть такие элементы, как <OMS cd = "arith1" name = "times" />, обозначают математические функции, которые применяются к одноуровневым выражениям в OMA, которые интерпретируются как аргументы. Элемент OMS - это общий элемент расширения, который означает все, что указано в словаре содержимого, указанном в атрибуте cd (этот документ можно найти по URI, указанному в самом внутреннем атрибуте cdbase, доминирующем над соответствующим элементом OMS . В приведенном выше примере все символы берутся из словаря содержимого для арифметики ( arith1 , см. ниже), за исключением плюса-минуса , который появляется из нестандартного места, отсюда и атрибут cdbase .
Словари содержимого OpenMath
Словари содержимого - это структурированные XML-документы, которые определяют математические символы, на которые могут ссылаться элементы OMS в объектах OpenMath. Стандарт OpenMath 2 не предписывает каноническое кодирование словарей контента, а требует только инфраструктуры, достаточной для уникальных ссылок в элементах OMS. OpenMath предоставляет очень простую кодировку XML, которая отвечает этим требованиям, и набор специальных словарей контента для некоторых областей математики, в частности, охватывающих фрагмент K-14, охватываемый MathML контента.
Для словарей с более богатой структурой контента (и, как правило, для произвольных математических документов) формат OMDoc расширяет OpenMath на «уровень утверждения» (включая такие структуры, как определения, теоремы, доказательства и примеры, а также средства для их взаимосвязи) и «уровень теории». ”, Где теория - это совокупность нескольких контекстуально связанных утверждений. Теории OMDoc разработаны для совместимости со словарями содержимого OpenMath, но они также могут быть установлены в отношения наследования и импорта.
Критика
OpenMath критикуют за то, что он не подходит для общей математики, демонстрирует недостаточную формальную точность, чтобы охватить сложности числовых вычислений, отсутствие доказательства концепции и как низкую технологию по сравнению с уже устоявшимися подходами к кодированию математической семантики, среди других предполагаемых недостатков.