OpenMath

OpenMath ist ein Standard zur Beschreibung der Semantik mathematischer Formeln. Im Gegensatz zu Satzprogrammen wie TeX, die Formeln nur darstellen, versucht OpenMath den mathematischen Inhalt mit seinen eigenen Gesetzmäßigkeiten zu repräsentieren. OpenMath kann dazu verwendet werden, die Semantik von Formeln zu beschreiben, deren Präsentation in MathML notiert ist.

Umfang

Der OpenMath-Standard definiert OpenMath-Objekte („OpenMath Objects“), einen abstrakten Datentyp zur Beschreibung der funktionalen Struktur mathematischer Formeln, als Ausdrücke aus Symbolen („OpenMath Symbols“), Variablen („OpenMath Variables“), Funktionsanwendungen („OpenMath Applications“) und Bindungsausdrücken („OpenMath Binding Object“). Die Bedeutung eines Symbols wird durch Referenzierung seiner Definition in einem Inhaltslexikon („Content Dictionary“, CD) festgelegt. CDs sind Sammlungen von Definitionen mathematischer Konzepte. Es gibt einen Satz standardisierter Content Dictionaries, in der die aus Content MathML bekannten Symbole vordefiniert sind. CDs sind ausdrücklich auch dazu gedacht, Content MathML um neue Symbole zu erweitern.

Geschichte

OpenMath ist seit 1993 in einer langen Reihe von Workshops und (meist europäischen) Projekten entwickelt worden. Der OpenMath-1.0-Standard wurde im Februar 2000 veröffentlicht, und im Oktober 2002 als OpenMath 1.1 erweitert. Der OpenMath-2.0-Standard wurde zwei Jahre später im Juni 2004 veröffentlicht. OpenMath 1 legte die grundlegende Architektur fest. OpenMath 2 erweiterte diese um bessere XML-Integration, gemeinsam genutzte Strukturen (structure sharing) und um abstrakte CDs.

OpenMath Society

Die Aktivitäten um OpenMath werden von der OpenMath Society mit Sitz in Helsinki, Finnland, koordiniert.[1] Die Society bringt Entwickler mathematischer Software-Systeme, Verlage und Autoren zusammen. Die Mitgliedschaft wird vom Vorstand verliehen; Bewerbungen von Personen, die an OpenMath in Forschung oder Anwendung gearbeitet haben, sind jedoch auch willkommen. Präsident der OpenMath Society ist Michael Kohlhase (seit 2007).

Beispiel

Die bekannte Quadratformel

wird in OpenMath wie folgt repräsentiert (es handelt sich hier um einen baumartigen Ausdruck, dessen funktionale Teile mittels XML-Elementen wie OMA für Funktionsanwendung oder OMV für Variablen dargestellt werden):

<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 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>

In diesem Ausdruck stehen die Symbole – also Elemente wie <OMS cd="arith1" name="times"/> – für mathematische Funktionen, die auf ihre Schwester-Elemente in OMA Elementen angewandt werden. Diese werden dabei als Argumente interpretiert. Das OMS Element steht dabei für dasjenige mathematische Konzept, das im Inhaltslexikon definiert wird, das durch das cd Attribut spezifiziert wird. (Dieses XML-Dokument kann an der URI gefunden werden, die im nächsten dominierenden cdbase Attribut gegeben ist. Im Beispiel oben kommen alle Symbole aus dem CD für die Arithmetik (arith1 siehe unten).)

OpenMath-Inhaltslexika (Content Dictionaries)

CDs sind strukturierte XML-Dokumente, die mathematische Symbole definieren, die von OMS-Elementen in OpenMath-Objekten referenziert werden können. Der OpenMath-2-Standard fixiert keine kanonische Syntax für CDs, sondern fordert nur eine Infrastruktur, die für die Referenzierung in "OMS" Elementen ausreicht. OpenMath selbst verwendet eine sehr einfache XML-basierte Syntax und stellt CDs für einige mathematische Gebiete zur Verfügung. Insbesondere wird das „K-14-Fragment der Mathematik“ (entspricht in etwa der Mathematik bis zum deutschen Abitur), das auch in Content MathML verwendet wird, unterstützt.

OMDoc für größere Kontexte

Um OpenMath-Formeln in größere Kontexte einzubetten, kann das Format OMDoc verwendet werden. OMDoc stellt Strukturen für mathematische Aussagen wie etwa Definition, Satz, Beweis und Beispiel bereit, die OpenMath-Formeln enthalten können. Gruppen von kontextuell aufeinander bezogenen Aussagen können zu Theorien zusammengefasst werden. Als Sammlung von Symboldefinitionen betrachtet, ist eine OMDoc-Theorie kompatibel zu einem OpenMath Content Dictionary.

Kritik

OpenMath wird kritisiert, für allgemeine Mathematik inadäquat zu sein, keine ausreichenden formalen Mittel für Gleitkommaarithmetik zu bieten, trotz jahrelanger Arbeit am Konzept keinen Nachweis der praktischen Anwendbarkeit erbracht zu haben, und bereits etablierten Mechanismen zur Kodierung mathematischer Semantik unterlegen zu sein, neben weiteren Kritikpunkten.[2]

Einzelnachweise

  1. The OpenMath Society, auf openmath.org, abgerufen am 8. Oktober 2018
  2. Richard J. Fateman A Critique of OpenMath and Thoughts on Encoding Mathematics, Computer Science Division University of California, Berkeley, abgerufen am 25. April 2015