OpenMath es un lenguaje de marcado para especificar el significado de fórmulas matemáticas . Entre otras cosas, puede utilizarse para complementar MathML , un estándar que se centra principalmente en la presentación de fórmulas, con información sobre su significado semántico. OpenMath puede codificarse en XML o en formato binario.
Cobertura
OpenMath consta de la definición de "Objetos OpenMath", un tipo de dato abstracto que describe la estructura lógica de una fórmula matemática, y la definición de "Diccionarios de Contenido OpenMath", colecciones de nombres para conceptos matemáticos. Los nombres disponibles en estas últimas colecciones están específicamente diseñados para extender MathML y, a la inversa, se ha creado un conjunto básico de "Diccionarios de Contenido" compatible con el pequeño conjunto de conceptos matemáticos definidos en Content MathML, el subconjunto no representacional de MathML.
Historia
OpenMath se ha desarrollado a través de una larga serie de talleres y proyectos de investigación (principalmente europeos) que comenzaron en 1993 y continúan hasta la actualidad. El estándar OpenMath 1.0 se publicó en febrero de 2000 y se revisó como OpenMath 1.1 en octubre de 2002. Dos años después, en junio de 2004, se publicó el estándar OpenMath 2.0. OpenMath 1 consolidó la arquitectura básica del lenguaje, mientras que OpenMath 2 mejoró la integración con XML, permitió compartir estructuras y flexibilizó el concepto de diccionarios de contenido de OpenMath.
Sociedad OpenMath
La iniciativa OpenMath está regida por la Sociedad OpenMath, con sede en Helsinki , Finlandia . La Sociedad reúne a desarrolladores de herramientas, proveedores de software, editores y autores. La membresía se obtiene por invitación del Comité Ejecutivo de la Sociedad, que acepta autocandidaturas de personas que hayan trabajado en temas relacionados con OpenMath, ya sea en investigación o en aplicaciones. Desde 2007, Michael Kohlhase es presidente de la Sociedad OpenMath. Sucedió a Arjeh M. Cohen, quien fue el primer presidente.
Ejemplo
La conocida fórmula cuadrática :
Se marcaría de esta manera en OpenMath (la representación es un árbol de expresiones compuesto por elementos funcionales como OMA para la aplicación de funciones u OMV para variables):
<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 nombre= "b" /> <OMI> 2 </OMI> </OMA> <OMA> <OMS cd= "arith1" nombre= "veces" /> <OMI> 4 </OMI> <OMV nombre= "a" /> <OMV nombre= "c" /> </OMA> </OMA> </OMA> </OMA> <OMA> <OMS cd= "arith1" nombre= "veces" /> <OMI> 2 </OMI> <OMV nombre= "a" /> </OMA> </OMA> </OMA> </OMOBJ>En el árbol de expresiones anterior, los símbolos (es decir, elementos como <OMS cd="arith1" name="times"/>) representan funciones matemáticas que se aplican a expresiones hermanas en un OMA que se interpretan como argumentos. El elemento OMS es un elemento de extensión genérico que significa lo que se especifica en el diccionario de contenido al que se hace referencia en el atributo cd (este documento se puede encontrar en la URI especificada en el atributo cdbase más interno que domina el elemento OMS correspondiente ). En el ejemplo anterior, todos los símbolos provienen del diccionario de contenido para aritmética ( arith1 , ver más abajo), excepto el signo más/menos , que proviene de un lugar no estándar, de ahí el atributo cdbase aquí.
Diccionarios de contenido de OpenMath
Los diccionarios de contenido son documentos XML estructurados que definen símbolos matemáticos a los que pueden hacer referencia los elementos OMS en los objetos OpenMath. El estándar OpenMath 2 no prescribe una codificación canónica para los diccionarios de contenido, sino que solo requiere una infraestructura suficiente para la referencia única en los elementos OMS . OpenMath proporciona una codificación XML muy básica que cumple con estos requisitos, así como un conjunto de diccionarios de contenido específicos para algunas áreas de las matemáticas, en particular para el segmento K-14 cubierto por MathML de contenido.
Para diccionarios de contenido con una estructura más compleja (y, en general, para documentos matemáticos arbitrarios), el formato OMDoc amplía OpenMath con un «nivel de enunciados» (que incluye estructuras como definiciones, teoremas, demostraciones y ejemplos, así como mecanismos para interrelacionarlos) y un «nivel de teorías», donde una teoría es un conjunto de varios enunciados relacionados contextualmente. Las teorías de OMDoc están diseñadas para ser compatibles con los diccionarios de contenido de OpenMath, pero también pueden establecerse en relaciones de herencia e importación.
Crítica
OpenMath es criticado por ser inadecuado para las matemáticas generales, por no exponer la precisión formal suficiente para capturar las complejidades de los números, por carecer de una prueba de concepto y por ser una tecnología inferior a los enfoques ya establecidos para codificar la semántica matemática, entre otras supuestas deficiencias. [ 1 ]
Véase también
Referencias
- ↑ Richard J. Fateman (17 de enero de 2001). "Una crítica de OpenMath y reflexiones sobre la codificación de las matemáticas" (PDF) . Berkeley: Universidad de California . Consultado el 25 de abril de 2015 .
Enlaces externos
- Sitio web oficial
- Definición estándar
- Diccionarios de contenido
- Lenguajes de marcado
- Lenguajes de marcado matemático
- Estándares basados en XML