# OpenMath

OpenMath es el nombre de un lenguaje de marcas para especificar el significado de fórmulas matemáticas. Permitiendo entre otras cosas, su uso como complemento de MathML (un estándar centrado principalmente en la presentación de fórmulas, con información sobre su significado semántico). OpenMath puede ser codificado como un Lenguaje de Marcas XML extensible o un formato binario.

## Introducción

OpenMath está formado por la definición de "Objetos OpenMath", un tipo de datos abstractos usado para describir la estructura lógica de fórmulas matemáticas, y la definición de "diccionarios de contenido OpenMath", o colecciones de nombres para conceptos matemáticos. Los nombres disponibles para las futuras colecciones han sido definidos para extender MathML, y a su vez, un conjunto básico de "Diccionarios de Contenidos" han sido diseñados para ser compatibles con los conceptos definidos en MathML Contenido, un subconjunto de MathMl que no tiene presentación.

## Historia

OpenMath se ha ido desarrollando gracias a una serie de talleres y proyectos de investigación (la mayor de ellos Europeos) que comenzaron en 1993 y que continúan incluso ahora. El estándar OpenMath 1.0 vio la luz en febrero de 2000, y fue revisado en octubre de 2002, dando lugar a OpenMath 1.1. Dos años después, el estándar OpenMath 2.0 fue anunciado en junio de 2004. OpenMath 1.0 fijo la arquitectura básica del lenguaje, mientras que OpenMath 2 trajo una mejor integración XML y la liberación de la noción de diccionarios de contenido OpenMath.

## La sociedad OpenMath

El esfuerzo de OpenMath se rige por la Sociedad OpenMath, fundada en Helsinki (Finlandia). La sociedad reúne herramientas de creación, software, editores y autores. Para convertirse en miembro es necesaria una invitación del Comité Ejecutivo de la Sociedad, que agradece autoinvitaciones de aquellas personas que hayan trabajado en investigación o aplicaciones relacionadas con OpenMath. Desde 2007, Michael Kohlhase es el presidente de la sociedad OpenMath.

## Ejemplo

La bien conocida fórmula cuadrática:
    $x={\frac {-b\pm {\sqrt {b^{2}-4ac}}}{2a}}$
puede ser expresada del siguiente modo en OpenMath (la representación es un árbol de expresiones formada a partir de elementos funcionales, usando OMA para aplicar funciones o OMV para expresar variables):
En el árbol de expresiones anterior los símbolos - i.e. elementos como <OMS cd="arith1" name="times"/> - expresan funciones matemáticas que son los argumentos de la aplicación de funciones por medio de OMA. El elemento OMS es una extensión genérica del elemento que es referenciado en el diccionario de contenido indicado en el atributo cd, este documento puede ser encontrado en la URI especificada en el atributo cdbase. En el ejemplo de arriba, todos los símbolos provienen del diccionario de contenido aritmético (ver arith1), excepto en el caso del plusminus, que proviene de un lugar no estándar como indica el atributo cdbase.

## Diccionarios de Contenido OpenMath

Los Diccionarios de Contenido son documentos XML estructurados usados para definir símbolos matemáticos que pueden ser referenciados por medio de los elementos OMS en los objetos OpenMath. El estándar OpenMath 2 no impone una codificación canónica para los diccionarios de contenido, sino que sólo requiere una infraestructura suficiente para que los objetos sean referenciados por medio de OMS. OpenMath proporciona una codificación XML que satisface estos requisitos, y un conjunto de diccionarios de contenido para ciertas áreas matemáticas, en particular cubriendo los K-14 fragmentos cubiertos por medio de MathML contenido.
Para diccionarios de contenido estructurados más ricos (y generalmente para documentos matemáticos arbitrarios) el formato OMDoc extiende OpenMath por medio de un “nivel de afirmaciones” (incluyendo estructuras como definiciones, teoremas, demostraciones y ejemplos, así como para interrelacionarlos) y un “nivel de teoría”, donde una teoría es una colección de varias afirmaciones relacionadas. Las teorías OMDoc están diseñadas para ser compatibles con los diccionarios de contenido OpenMath, pero también pueden heredar e importar relaciones desde otras teorías OMDoc.