OpenMath

от Уикипедия, свободната енциклопедия
Направо към навигацията Направо към търсенето

OpenMath представлява маркиращ език за описание на съдържанието на математически формули. Той може да се използва за предаване на семантична информация в съчетание с MathML, който е стандарт, основно фокусиращ се върху презентацията на формулите. За кодиране на OpenMath се използват XML и бинарен формат.

Съдържание[редактиране | редактиране на кода]

OpenMath може да се опише с помощта на две основни понятия:

  • OpenMath обекти – абстрактен тип данни за описание на логическата структура на математическите формули; и
  • Речници за OpenMath – колекция от наименования за математически понятия. Речниците се разработват така, че да са съвзестими с MathML.

История[редактиране | редактиране на кода]

OpenMath е разработен по време на серия от работни срещи и (предимно европейски) изследователски проекти, започнали през 1993 и продължаващи до днес. Стандартът OpenMath 1.0 е публикуван през февруари 2000 и ревизиран като OpenMath 1.1 през октомври 2002. Две години по-късно, през юни 2004, е оповествен стандартът OpenMath 2.0. OpenMath 1 определя основната архитектура на езика, докато OpenMath 2 се съсредоточава върху по-добра интеграция с XML формата и съвместимост между различни структури, както и допринася за либерализиране на речниците.

OpenMath общност[редактиране | редактиране на кода]

Усилията за развиване на OpenMath се управляват от така нарерчената OpenMath общност, която се намира в Хелзинки, Финландия. Общността включва автори на приложения, софтуерни специалисти, издатели. Членството е чрез покана от Комитета на управителите на общностите (Societies Executive Committee), който приветства лични номинации от хора, които прилагат OpenMath в изследванията или работата си. От 2007 насам Майкъл Колхейс е президент на общността.

Пример[редактиране | редактиране на кода]

Добре познатата формула за решенията на квадратно уравнение:

е представена в 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>
          <OMI>2</OMI>
        </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), с изключение на plusminus, който идва от нестандартен речник, поради което се налага указването на cdbase.

Речници за OpenMath[редактиране | редактиране на кода]

Речниците за OpenMath за структурирани XML документи, които дефинират математическите символи, използвани от OMS елементите в структурата на OpenMath обекти. OpenMath 2 не дава стриктни указания за съставянето на речници, а единствено определя изискванията за еднозначно определяне на OMS елементите. OpenMath предлага проста форма за XML кодиране, която задоволява указаните изисквания, и колекция от речници за някои области от математиката.

За по-разширени речници и като цяло за нетипични математически речници, форматът OMDoc разширява OpenMath, като добавя две нива: „твърдения“, включвайки структури като дефиниции, теореми, доказателства и примери, както и средства за връзка между тях; и „теоретично ниво“, където теорията е колекция от контекстуално свързани твърдения. Теориите в OMDoc са създадени така, че да бъдат съвместими с речниците за OpenMath, като също така могат да се свързват помежду си с определени типове релации.

Препратки[редактиране | редактиране на кода]

Външни препратки[редактиране | редактиране на кода]

Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „OpenMath“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.