Inicio / Wikis / Monografías / MathML - Descripción de MathML

MathML - Descripción de MathML

(1 opiniones)
Monografía creado por Chato. Extraido de: http://www.tejedoresdelweb.com/307/article-5809.html
04 de Enero de 2007
Programación web

5 - Descripción de MathML

Una de las cosas más importantes del lenguaje de marcado es el poder codificar la notación que representa a un objeto matemático y la estructura matemática del mismo. Es más, ambas codificaciones pueden ser usadas juntas para definir presentación y contenido de una idea matemática. Debido a esto es que se puede realizar una clasificación de los elementos de MathML, pudiéndose decir que todos caen en alguna de tres categorías: elementos de presentación, elementos de contenido y elementos de interfaz. Ahora se revisará cada uno de estos ítemes, revisando los fundamentos sobre los que se basan y formas básicas de uso.

Elementos de presentación

Corresponden a "constructores" de la notación matemática tradicional, es decir, los tipos básicos de símbolos y estructuras para la construcción de expresiones, a partir de los cuales cualquier parte de la notación tradicional de la matemática puede generarse. La descripción de las estructuras notacionales que los elementos representan se dan generalmente de una manera visualmente orientada. Sin embargo, los elementos son independientes de la materialización en el sentido de que han sido diseñados para contener suficiente información para, por ejemplo, una buena representación hablada (lectores automáticos). Los elementos de presentación sólo sugieren (no requieren) maneras específicas de representar, de forma de permitir una representación independiente del medio y para preferencias individuales de estilo. Esta especificación describe con algún detalle reglas de representación visual recomendadas, pero un renderizador de MathML es libre de usar sus propias reglas mientras la representación sea comprensible.

Están divididos en dos clases: elementos símbolo (token element), que representa símbolos, nombres, números, etc. Individuales. En general sólo tienen texto como contenido, salvo algunas excepciones.

La segunda clase son los esquemas de disposición (layout schemata), que construyen las expresiones de partes y sólo pueden tener elementos como contenido.

Los `símbolos' matemáticos deben ser representados por medio de elementos símbolo de MathML. Los principales son los identificadores (<mi>x</mi>), números (<mn>98</mn> y operadores (<mo>+</mo>).

En la notación tradicional matemática las expresiones se construyen a partir de expresiones más pequeñas, y finalmente a partir de simples símbolos, agrupados por usando otras estructuras notacionales (operadores, paréntesis, etc). En MathML las expresiones se construyen igual, siendo los esquemas de disposición lo que juegan el rol de constructores de expresiones. Dentro de estos tenemos por ejemplo a <mrow>...</mrow>, que dice que se despliegue en una fila la información dentro de los tags, y a <mfrac>...</mfrac>, que sirve para denotar fracciones. Es importante notar que en presentación el orden de los esquemas hijos si importa, pero no está forzado a nivel de la DTD de MathML. La idea de esta codificación es expresar la estructura sintáctica de la notación matemática. Por ejemplo para `a - db' seria representado como:

<mrow>
 <mi> a </mi>
 <mo> - </mo>
 <mrow>
 <mi> d </mi>
 <mo> &InvisibleTimes; </mo>
 <mi> b </mi>
 </mrow>
 </mrow>
 
Elementos de Contenido

La intención fundamental de la codificación de contenido en MathML es proveer una codificación específica de la estructura matemática subyacente de una expresión, más allá de cualquier representación particular para la expresión.

La principal razón para proveer esta codificación es que aún con el uso sistemático de tags de presentación no se puede capturar la información semántica entregada por este sistema. La dificultad se origina de que existen muchos caminos distintos desde representación hacia semántica y viceversa. Además la notación cambia con el tiempo y la cultura, por lo que si bien `*' se usa como multiplicación hoy, no quiere decir que sea usado así en unos años, o quizás en otros países.

Al codificar la información de esta forma se puede asegurar un intercambio de información mucho más preciso, incluso permitiendo la evaluación de las expresiones de una forma simple.

Debido a la falta de consenso en la semántica de la notación general, en MathML se optó por hacer explícito un número relativamente pequeño de construcciones matemáticas comunes, proveyendo de un mecanismo para asociar semánticas con nuevas construcciones notacionales. De esta manera el conjunto de construcciones puede ser extendido más allá del originalmente entregado.

El conjunto básico de construcciones se elige de manera de ser adecuado para la representación de formulas desde kinder hasta fines de media (equivalente) en EE.UU., y cubre en parte:

  • Aritmética, álgebra, lógica y relaciones.
  • Cálculo y cálculo vectorial.
  • Teoría de conjuntos.
  • Series y secuencias.
  • Funciones clásicas elementales.
  • Estadística.
  • Álgebra lineal.

El objetivo básico de la codificación de contenido es el establecimiento de relaciones explicitas entre las estructuras matemáticas y sus significados matemáticos. Cada estructura tiene una semántica predeterminadamente asociada y existe un mecanismo para asociar nuevos significados matemáticos con nuevas construcciones.

El uso de tags específicos de contenido nos reporta múltiples beneficios, como son la posibilidad de crear agente que procesen de manera mucho más precisa el contenido.

Finalmente, las expresiones descritas en términos de elementos de contenido deben ser llevadas a una representación también. Para esto existen visualizaciones claras para expresiones comunes. El resto se obtiene de la claridad de la definición.

La codificación de contenido de MathML esta basada en el concepto de árbol de expresión. En este árbol las hojas corresponden a objetos matemáticos básicos como son números (<cn>63</cn>), variables (<ci>p</ci>), etc. Los nodos intermedios generalmente representan algún tipo de función (<power/>) u otra construcción matemática que crea un objeto compuesto. Dado que no es la intención de este documento el enseñar a usar MathML, no profundizaré en las distintas clases de elementos de contenido que existen, pero si clarificare que el elemento <apply>...</apply> es quizás uno de los más importantes, ya que es el que se usa para efectivamente aplicar la función a sus argumentos. Nuevamente el orden de los hijos del elemento si importa, pero no esta forzado en la DTD de MathML.

Los elementos de contenido de MathML pueden ser agrupados en las siguientes categorías según su uso:

  • contenedores
  • operadores y funciones
  • calificadores
  • relaciones
  • condiciones
  • mapeos semánticos
  • constantes y símbolos

Estos son los bloques de construcción que componen las expresiones de contenido de MathML.

Elementos de interfaz

Los elementos de interfaz son aquellos relacionados en la generación y representación de MathML, siendo particularmente importantes los que respectan a insertar MathML en HTML y XHTML, puesto que la idea es codificar matemáticas en documentos web. Hay tres temas principales en lo que insertar MathML en otros documentos XML respecta. El primero es que MathML debe estar semánticamente integrado, es decir, debe ser reconocido como contenido XML válido insertado, y no como un error. Esto se soluciona mediante namespaces, y un tag particular que encapsula toda expresión MathML válida.

<math xmlns="http://www.w3.org/1998/Math/MathML">
 .
 .
 .
 </math>
 

Otro problema es, en el caso de HTML/XHTML, el renderizado de MathML debe estar integrado en el browser, y aún son muy pocos los browsers que soportan MathML.

El tercer problema es que las herramientas para generar y procesar MathML deben ser capaces de intercomunicarse. Hay un número de herramientas que ya han sido o están siendo desarrolladas, y dado que las expresiones suelen a ser largas y tendientes a ser ingresadas erróneamente a mano, se debe poner especial énfasis en asegurar que el código puede ser generado con herramientas fáciles de usar, que sean independientes de plataforma y marca. Un ejemplo de MathML. El código para generar la siguiente ecuación mediante notación de presentación y de contenido.


En elementos de representación:

<math>
 <msup>
 <mrow>
 <mo> ( </mo>
 <mrow>
   <mi> x </mi>
 <mo> + </mo>
 <mi> y </mi>
 </mrow>
 <mo> ) </mo>
 </mrow>
 <mn> 2 </mn>
 </msup>
 </math>
 

En elementos de contenido:

<math>
 <apply>
 <power/>
 <apply>
   <plus/>
   <ci>x</ci>
  <ci>y</ci>
 </apply>
 <cn>3</cn>
 </apply>
 </math>
 
Valora este capítulo: (1 opiniones)
Autor y licencia de 'MathML - Descripción de MathML'
Chato Extraído de: http://www.tejedoresdelweb.com/307/article-5809.html

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'MathML - Descripción de MathML' (1)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este monografía



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'MathML - Descripción de MathML'

Este es un lenguaje para para describir expresiones matemáticas. Su utilidad es permitir escribir con... Más »
XML es una tecnologia emergente para hacer explicita la estructura de los documentos por sobre... Más »
La Telaraña o Web semántica se presenta como la nueva revolución de Internet. La promesa... Más »
Cómo SGML originó HTML y luego XML que engendró a XHTML. XHTML es la solución... Más »
Cómo SGML originó HTML y luego XML que engendró a XHTML. XHTML es la solución... Más »
¿Estás seguro de que deseas eliminar este capítulo?