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 критикуют за то, что он не подходит для общей математики, демонстрирует недостаточную формальную точность, чтобы охватить сложности числовых вычислений, отсутствие доказательства концепции и как низкую технологию по сравнению с уже устоявшимися подходами к кодированию математической семантики, среди других предполагаемых недостатков.

Смотрите также

использованная литература

внешние ссылки