Lenguaje de marcado MathML

82
Realizado por: Juan Carlos Marcos Sánchez e-mail: [email protected] Esta presentación se ha elaborado en PowerPoint 2003

description

Una presentación para el curso de doctorado basada en el lenguaje de marcado para edición de formulismo matemático MathML

Transcript of Lenguaje de marcado MathML

Page 1: Lenguaje de marcado MathML

Realizado por: Juan Carlos Marcos Sánchez

e-mail: [email protected]

Esta presentación se ha elaborado en PowerPoint 2003

Page 2: Lenguaje de marcado MathML

IntroducciónIntroducción

•Con los nuevos soportes electrónicos se plantea una cuestión de especial relevancia en el ámbito científico:

¿Cómo codificar el simbolismo matemático?

Page 3: Lenguaje de marcado MathML

•Las matemáticas aparecen por doquier:

•Ciencia•Técnica•Medicina

•Y por consiguiente el simbolismo que requieren.

CTM

El Simbolismo Matemático

El Simbolismo Matemático

Page 4: Lenguaje de marcado MathML

Características Generales de las publicaciones CTMCaracterísticas Generales de las publicaciones CTM• Las expresiones matemáticas están

presentes generalmente en ellas.• Se representan tradicionalmente por:

•Tex-LaTex•Editores de Ecuaciones (MathType,…)•PowerMath•HTML

» Etc…

• Están muy presentes en estas publicaciones tanto para uso interno como para difusión externa.

Page 5: Lenguaje de marcado MathML

Las Matemáticas en la Red

Las Matemáticas en la Red

• La publicación de contenido matemático en la red ha aumentado enormemente en los últimos años. Requiere de:– Codificar el material matemático útil para la

enseñanza y la comunicación científica a todo nivel.

– Codificar tanto notación matemática como significado matemático.

– Facilitar la conversión desde y hacia otros formatos de presentación.

– Poder aprovechar los recursos existentes.– Ser conveniente para la interacción con

software externo.– Ser extensible y permitir integrar futuras

notaciones novedosas.

Page 6: Lenguaje de marcado MathML

Las Matemáticas en la Red

Las Matemáticas en la Red

• La integración del simbolismo matemático en la red se ha venido realizando tradicionalmente con el lenguaje HTML.

• HTML no es del todo ideal: la capacidad de inclusión de fórmulas matemáticas es muy limitada.

Page 7: Lenguaje de marcado MathML

Algunas soluciones elementalesIMÁGENES

Algunas soluciones elementalesIMÁGENES

2 42

b b acx

a- ± -

=

( ) ( )1 1 1

1 11 1

xn nn x n xn n n

+ + ++ £ £ +

+ +

• Usar una aplicación que permita representar fórmulas matemáticas y guardarlas como imágenes para integrarlas en la página web.

Page 8: Lenguaje de marcado MathML

Algunas soluciones elementalesIMÁGENES

Algunas soluciones elementalesIMÁGENES

Ventajas

• La fuente, tamaño y espaciado son exactamente los especificados.

• Los trabajos mejoran ostensiblemente al incluir contenido matemático explícito.

Page 9: Lenguaje de marcado MathML

Inconvenientes

• La calidad de los documentos es pobre.• Los documentos cambian el tamaño del

texto, pero no de la imagen.• A menudo no están alineadas con el

texto• Tienen baja resolución de impresión.• La búsqueda, el indexado o la

reutilización en otras aplicaciones no es posible.

• Hace difícil la edición (cortar/pegar)• La edición manual es difícil: necesita

software especializado.• Documentos extensos son lentos de

cargar.

Algunas soluciones elementalesIMÁGENES

Algunas soluciones elementalesIMÁGENES

Page 10: Lenguaje de marcado MathML

Algunas soluciones elementalesCÓDIGO HTML

Algunas soluciones elementalesCÓDIGO HTML

• El código HTML necesario para conseguir la expresión anterior es:

<b> <pre> -b &#177; Sqrt(b<sup>2</sup> - 4ac) x = -------------------

2a </pre> </b>

-b ± Sqrt(b2 - 4ac)

x = ------------------- 2a

Page 11: Lenguaje de marcado MathML

Algunas soluciones elementalesCÓDIGO HTML

Algunas soluciones elementalesCÓDIGO HTML

Ventajas

• No es necesario dejar de trabajar en HTML

• No hay problemas con:• Búsquedas• Cortar• Pegar

• No hay problemas con las fuentes

Page 12: Lenguaje de marcado MathML

Algunas soluciones elementalesCÓDIGO HTML

Algunas soluciones elementalesCÓDIGO HTML

Inconvenientes

•Hay problemas en la representación de símbolos especiales, como el de sumatorio ( ) o el integral ( ).å ò

Page 13: Lenguaje de marcado MathML

Primer paso hacia la solución: XML

Primer paso hacia la solución: XML

• XML, es el estándar de Extensible Markup Language.

• XML no es más que un conjunto de reglas para definir etiquetas semánticas que nos organizan un documento en diferentes partes.

• XML es un metalenguaje que determina la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados.

Page 14: Lenguaje de marcado MathML

Evolución hacia XMLEvolución hacia XML• En los años 60, IBM intentó resolver sus

problemas asociados al tratamiento de documentos en diferentes plataformas a través de GML (Generalized markup Language).

• El principal problema era que cada aplicación utilizaba sus propias marcas para describir los diferentes elementos. Las marcas son códigos que indican a un programa cómo debe tratar su contenido y así, si se desea que un texto aparezca con un formato determinado, dicho texto debe ir delimitado por la correspondiente marca que indique cómo debe ser mostrado en pantalla o impreso. Y lo mismo ocurre con todas las demás características de cualquier texto.

Page 15: Lenguaje de marcado MathML

Evolución hacia XMLEvolución hacia XML• Conociendo este sistema y conociendo a la

perfección el sistema de marcas de cada aplicación sería posible pasar información de un sistema a otro sin necesidad de perder el formato indicado. La forma que IBM creó para solventar esto se basaba en tratar las marcas como texto accesible desde cualquier sistema, texto plano, código ASCII. Y la norma se denominó GML (General Modeling Language).

• Más tarde GML pasó a manos de ISO y se convirtio en SGML ( ISO 8879), Standart Generalized Markup Language. Esta norma es la que se aplica desde entonces a todos los lenguajes de marcas, cuyos ejemplos más conocidos son el HTML y el RTF.

Page 16: Lenguaje de marcado MathML

Evolución hacia XMLEvolución hacia XML• Los lenguajes de marcas no son equivalentes a los

lenguajes de programación aunque se definan igualmente como "lenguajes". – Son sistemas complejos de descripción de información,

normalmente documentos.– Si se ajustan a SGML, se pueden controlar desde cualquier

editor ASCII. • Las marcas más utilizadas suelen representarse por

textos descriptivos encerrados entre signos de "menor" (<) y "mayor" (>), siendo lo más usual que existan una marca de principio y otra de final.

• Se puede decir que existen tres utilizaciones básicas de los lenguajes de marcas: – los que sirven principalmente para describir su contenido

(por ejemplo en las bases de datos), – los que sirven más que nada para definir su formato (por

ejemplo en los programas de tratamiento de textos) y – los que realizan las dos funciones indistintamente (por

ejemplo en el lenguaje HTML)

Page 17: Lenguaje de marcado MathML

HTML vs. XMLHTML vs. XML

• En teoría HTML es un “subconjunto” de XML especializado en presentación de documentos para la Web, y a su vez

• XML es un subconjunto de SGML especializado en la gestión de información para la Web.

• En la práctica XML contiene a HTML aunque no en su totalidad. La definición de HTML contenido totalmente dentro de XML es XHTML (Extensible, Hypertext Markup Language).

Page 18: Lenguaje de marcado MathML

Objetivos de XMLObjetivos de XML• XML debe ser directamente utilizable sobre

Internet. • XML debe soportar una amplia variedad de

aplicaciones. • XML debe ser compatible con SGML. • Debe ser fácil la escritura de programas que

procesen documentos XML. • El número de características opcionales en XML

debe ser absolutamente mínimo, a ser posible nulo.

• Los documentos XML deben ser legibles por las personas y razonablemente claros.

• El diseño de XML debe ser preparado rápidamente.

• El diseño de XML debe ser formal y conciso. • Los documentos XML deben ser fáciles de crear. • La concisión en las marcas XML es de mínima

importancia.

Page 19: Lenguaje de marcado MathML

Características de XMLCaracterísticas de XML• Es una arquitectura más abierta y extensible. No se necesita

versiones para que puedan funcionar en futuros navegadores. Los identificadores pueden crearse de manera simple y ser adaptados en el acto en internet/intranet por medio de un validador de documentos (parser).

• Mayor consistencia, homogeneidad y amplitud de los identificadores descriptivos del documento con XML (los RDF Resource Description FrameWork), en comparación a los atributos de la etiqueta <META> del HTML.

• Integración de los datos de las fuentes más dispares. Se podrá hacer el intercambio de documentos entre las aplicaciones tanto en el propio PC como en una red local o extensa.

• Datos compuestos de múltiples aplicaciones. La extensibilidad y flexibilidad de este lenguaje nos permitirá agrupar una variedad amplia de aplicaciones, desde páginas web hasta bases de datos.

• Gestión y manipulación de los datos desde el propio cliente web.

• Los motores de búsqueda devolverán respuestas más adecuadas y precisas, ya que la codificación del contenido web en XML consigue que la estructura de la información resulte más accesible.

Page 20: Lenguaje de marcado MathML

Características de XMLCaracterísticas de XML• Se desarrollarán de manera extensible las búsquedas

personalizables y subjetivas para robots y agentes inteligentes. También conllevará que los clientes web puedan ser más autónomos para desarrollar tareas que actualmente se ejecutan en el servidor.

• Se permitirá un comportamiento más estable y actualizable de las aplicaciones web, incluyendo enlaces bidireccionales y almacenados de forma externa (El famoso epígrafe "404 file not found" desaparecerá).

• El concepto de "hipertexto" se desarrollará ampliamente (permitirá denominación independiente de la ubicación, enlaces bidireccionales, enlaces que pueden especificarse y gestionarse desde fuera del documento, hiperenlaces múltiples, enlaces agrupados, atributos para los enlaces, etc. Creado a través del Lenguaje de enlaces extensible (XLL).

• Exportabilidad a otros formatos de publicación (papel, web, cd-rom, etc.). El documento maestro de la edición electrónica podría ser un documento XML que se integraría en el formato deseado de manera directa.

Page 21: Lenguaje de marcado MathML

Y por fin la solución:MathML

Y por fin la solución:MathML

MathML

Lenguaje Matemático de Referencia

Mathematical

Markup Language

Page 22: Lenguaje de marcado MathML

¿Qué es MathML?¿Qué es MathML?

• «MathML hará la Web más asequible para los materiales técnicos, científicos y educativos. También tiene el potencial de hacer accesibles las matemáticas con impedimentos visuales. Permitirá que el contenido matemático pueda ser reutilizable e intercambiable con los sistemas de cálculo técnico, para su posterior manipulación. »

Tim Berners-Lee, Director de W3CCreador de la web semántica.

Page 23: Lenguaje de marcado MathML

¿Qué es MathML?¿Qué es MathML?• Es un lenguaje basado en XML para

la captura de la estructura y del contenido de expresiones matemáticas.

• Codifica la notación que representa a un objeto matemático y la estructura semántica del mismo.

• Ambas codificaciones pueden ser usadas juntas para definir presentación y contenido de una idea matemática.

• Se inspira de la norma ISO-12083 y de Latex.

Page 24: Lenguaje de marcado MathML

Algo de historiaAlgo de historia• 1994. Se incluye una propuesta para

matemáticas en HTML en el anteproyecto de HTML 3.0

• 1995 (Abril) Se celebra una mesa redonda sobre marcado matemático en la Conferencia WWW en Darmstadt.

• 1995 (Noviembre) Representantes de la empresa Wolfram Research presentan una propuesta para hacer matemáticas en HTML al equipo de W3C (= World Wide Web Consortium)

• 1996 (Mayo) La Iniciativa de Librerías Digitales celebran un encuentro en Champaign. Tras el mismo, se instaura un fondo editorial de matemáticas para HTML.

Page 25: Lenguaje de marcado MathML

Algo de historiaAlgo de historia

• 1997 (Marzo) Este grupo fue formalmente reconstituido como el grupo de trabajo matemático W3C.

• 1998 (Abril) El W3C desarrolla MathML 1.0 como una recomendación.

• 1999 (Julio) El grupo de trabajo para matemáticas apuesta por MathML 1.01, una versión revisada de la recomendación MathML 1.0

• 2001 (Febrero) MathML 1.01 es suplantado por MathML 2.0, como recomendación de W3C

Page 26: Lenguaje de marcado MathML

Objetivos de MathMLObjetivos de MathMLMathML conseguirá:

• Codificar material matemático adecuado para la enseñanza y la comunicación científica a todos los niveles.

• Codificar a la vez notación matemática y significado matemático.

• Facilitar la conversión desde y hacia otros formatos matemáticos, de representación y semántico. Los formatos de salida podrán incluir:– visualizaciones gráficas– sintetizadores de voz– sistemas de entrada de cálculo algebraico– otros lenguajes de esquema matemático, como TeX– visualización de texto plano– medios de impresión, incluyendo braille.

• Soportar la búsqueda eficiente de expresiones extensas.

• Ser legible por las personas y simple para el software de creación y proceso

Page 27: Lenguaje de marcado MathML

El papel de MathML en la red

El papel de MathML en la red

• Suministra la codificación de datos matemáticos para el sustrato básico

• No está proyectado para la edición manual, sino para ser utilizado por herramientas de edición especializadas.

• Facilita el uso y re-uso de contenido científico y matemático en la Web, y por otras aplicaciones.

• Intenta capturar algo del significado que hay tras la notación.

• En algunos casos, MathML es análogo a otros formatos de comunicación de bajo nivel, como el lenguaje PostScript de Adobe.

Page 28: Lenguaje de marcado MathML

Las Matemáticas y su notación

Las Matemáticas y su notación

• Están determinadas por un sistema complejo y altamente desarrollado de notaciones en dos dimensiones.

• Existen ideas subyacentes, independientes de la notación; sin embargo, la relación entre significado y notación es sutil.

• Gran parte de la potencia de las matemáticas es precisamente su capacidad de representar y manipular ideas de forma simbólica.

• Ejemplo de significado y notación:– “Usar la regla de la cadena para encontrar la

derivada de f compuesta con g”– “Escribir f prima, abrir paréntesis, g de f, cerrar

paréntesis, g prima de x”

Page 29: Lenguaje de marcado MathML

Descripción de MathMLDescripción de MathML

• El Lenguaje de referencia permite:

– Codificar la notación que representa a un objeto matemático

– Codificar la estructura semántica del objeto matemático

• Por ello, se puede realizar una clasificación de los elementos de MathML en tres categorías.

Page 30: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

1. 1. Elementos de presentaciónElementos de presentación• Corresponden a los tipos básicos de símbolos

y estructuras para la construcción de expresiones.

• La descripción de las estructuras notacionales que los elementos representan se dan de una manera visualmente orientada.

• Los elementos son sin embargo independientes de la materialización (han sido diseñados para contener suficiente información para diversas cuestiones como por ejemplo una buena representación hablada –lectores automáticos–).

• Los elementos de presentación sólo sugieren maneras específicas de representar.

Page 31: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

1. 1. Elementos de presentaciónElementos de presentaciónEstán divididos en 2 clases:

a) Elementos de símbolo (token element): representan símbolos, nombres, números, etc. En general sólo tienen texto como contenido. Los principales son:

• Identificadores: <mi> x </mi>• Números: <mn> 45 </mn>• Operadores: <mo> + </mo>

Page 32: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

1. 1. Elementos de presentaciónElementos de presentación

b) Esquemas de disposición (layout schemata): construyen las expresiones por partes y sólo pueden tener elementos como contenido. En MathML las expresiones se construyen igual que en la notación matemática tradicional, siendo los esquemas de disposición los que juegan el papel de constructores de expresiones. – Dentro de estos tenemos por ejemplo a

<mrow> … </mrow> que dice que se despliegue en una fila la información comprendida entre los tags (etiquetas), o por ejemplo <mfrac> … </mfrac>, que sirve para representar fracciones.

Page 33: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

2. 2. Elementos de ContenidoElementos de Contenido

• El objetivo básico de la codificación de contenido es el establecimiento de relaciones explícitas 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 de contenido permite crear agentes que procesen de manera mucho más precisa el contenido.

Page 34: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

2. 2. Elementos de ContenidoElementos de Contenido• La codificación de contenido de

MathML está basada en el concepto de árbol.

• En este árbol, las hojas corresponden a objetos matemáticos básicos como números, variables, etc. Los nodos intermedios suelen representar algún tipo de función u otra construcción matemática que crea un objeto compuesto.

• El elemento <apply>…<apply/> es el que aplica la función a sus argumentos.

Page 35: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

2. 2. Elementos de ContenidoElementos de Contenido

• Los elementos de contenido de MathML pueden ser agrupados en las siguientes categorías:

•Contenedores.•Operadores y funciones.•Calificadores.•Relaciones.•Condiciones.•Mapeos semánticos.•Constantes y símbolos.

Page 36: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

3. 3. Elementos de Interfaz.Elementos de Interfaz.• Son los relacionados con la

generación y representación de MathML.

• Son especialmente importantes los que insertan MathML en HTML y XHTML.

• Para insertar MathML en XML se deben tener en cuenta los siguientes inconvenientes:

Page 37: Lenguaje de marcado MathML

Categorias de elementos de MathML

Categorias de elementos de MathML

3. 3. Elementos de Interfaz.Elementos de Interfaz.Inconvenientes

• MathML debe estar semánticamente integrado en XML. Se soluciona con namespaces y con un tag que encapsula toda expresión de MathML:

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

</math>

• En el caso de HTML /XHTML, el renderizado de MathML debe estar integrado en el visualizador (browser), y por ahora son muy pocos los que soportan MathML.

• Las herramientas para generar y procesar MathML deben ser capaces de intercomunicarse, fáciles de usar y ser independientes de plataforma y marca.

Page 38: Lenguaje de marcado MathML

Presentación y ContenidoPresentación y Contenido• Elementos de Presentación.

– Hay 28 elementos de MathML con unos 50 atributos.

– La mayoría de los elementos representan plantillas o patrones para mostrar subexpresiones, como mfrac, usada para construir una fracción.

• Elementos de Contenido (empleando significado)– Hay unos 75 elementos con una docena de

atributos (aproximadamente).– Algunos elementos representan operaciones y

funciones matemáticas, como plus y sin.– Otras representan objetos matemáticos, como set

y vector.– Está orientado a facilitar aplicaciones de

presentación, como el álgebra computacional o la síntesis de voz.

– Sin embargo, es difícil de controlar directamente como una expresión que debe ser mostrada.

Page 39: Lenguaje de marcado MathML

Árboles de Expresión (I)Árboles de Expresión (I)

Algunas formas de organizar los símbolos matemáticos:

• Una fila, subíndices y superíndices, fracciones, matrices, etc.

• Los patrones de notación o esquemas a menudo aparecen anidados unos dentro de otros, como la raíz cuadrada de una fracción.

• Tienen generalmente un número de parámetros que dependen del contexto.

• Incluso complicadas, las expresiones anidadas se construyen con un puñado de esquemas simples.

Page 40: Lenguaje de marcado MathML

Ejemplo (I)(a+b)2

Ejemplo (I)(a+b)2

Con marcas de presentación

<msup><mfenced><mi>a</mi><mo>+</mo><mi>b</mi></mfenced><mn>2</mn>

</msup>

Con marcas de contenido

<apply><power/><apply>

<plus/><ci>a</ci><ci>b</ci>

</apply><cn>2</cn>

</apply>

En ambas representaciones se debe anteceder

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

>

y suceder

</math>

Page 41: Lenguaje de marcado MathML

Ejemplo (II) [a+b]260+{a+b}i

Ejemplo (II) [a+b]260+{a+b}i

Con marcas de presentación

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

<msup><mfenced open="[" close="]">

<mrow><mi>a</mi><mo>+</mo><mi>b</mi>

</mrow></mfenced><mn>260</mn>

</msup><mo>+</mo><msub>

<mfenced open="{" close="}"><mrow>

<mi>a</mi><mo>+</mo><mi>b</mi>

</mrow></mfenced><mi>i</mi>

</msub></mrow>

</math>

Page 42: Lenguaje de marcado MathML

Árboles de Expresión (II)Árboles de Expresión (II)

• Las expresiones de MathML son estructuras en árbol. Cada nodo en el árbol corresponde a un particular esquema de disposición, y sus ramas u hojas se corresponden con sus subexpresiones. En el diagrama se describe con un ejemplo cómo deberían anidarse los “tags” en MathML para codificar la información.

Page 43: Lenguaje de marcado MathML

Árboles de Expresión (II)Árboles de Expresión (II)

<mfrac/>

<mi>3</mi> <mrow>-</mrow>

<mo>(</mo>

<mi>x</mi>

<mo>+</mo>

<mn>2</mn>

<mo>)</mo>3

( x + 2 )

( x + 2 )

3( 2)x +

DESCOMPOSICIÓN EN ELEMENTOS

FUNDAMENTALES

CADA ELEMENTO VIENE DETERMINADO POR SUS

CORRESPONDIENTES “TAGS”

Page 44: Lenguaje de marcado MathML

HTML y MathMLHTML y MathML

• MathML utiliza un método de marcas muy similar al de HTML:

– Usa un <tag> de inicio y un </tag> final para marcar una sección.

– Podemos especificar variaciones añadiendo atributos, aunque la proporción de las tags con respecto al texto es mucho mayor que en HTML.

– Hay sólo unas pocas diferencias pequeñas : se generan del hecho de que la sintaxis de HTML procede de las reglas de SGML, mientras que MathML sigue las directrices de XML.

Page 45: Lenguaje de marcado MathML

XML y MathMLXML y MathML

• Algunas razones por las que MathML es una aplicación de XML:– XML será pronto la extensión de navegación

más utilizada. Al ser MathML una aplicación en XML, será pronto posible apreciar MathML en los navegadores originariamente.

– Es bastante fácil configurar un software para procesar XML, y habrá bastante más software de este tipo en el futuro.

– El lado negativo de la sintaxis en XML es su tediosa propensión al error al introducirlo manualmente, igual de complicado que HTML.

– La solución será utilizar herramientas como WebEQ Equation Editor o bien Page Wizard.

Page 46: Lenguaje de marcado MathML

Sintaxis en MathMLSintaxis en MathML

En MathML hay dos tipos de elementos:

• La mayoría de los elementos tienen tags de inicio y de fin de la forma: <nombre_elemento> ... </nombre_elemento>

• Los elementos restantes son elementos vacíos de la forma

<nombre_elemento/>

• Todos los elementos aceptan atributos:– Formato de los atributos:

<nombre_elemento atrib1='val1' atrib2='val2' ... > y

<nombre_elemento nombre_atrib=‘valor'/>

Page 47: Lenguaje de marcado MathML

Sintaxis en MathMLSintaxis en MathML• Los caracteres y los símbolos pueden

aparecer únicamente dentro de elementos especiales: los elementos de símbolo.

• La mayoría de los elementos de MathML aguardan para localizar únicamente otros elementos de MathML en su contenido, como lo hace mrow.

• Pero hay otros elementos (como mi y mo) cuyos contenidos consisten en caracteres y símbolos.

• Dentro de los elementos de contenido, podemos tener caracteres de texto plano, que se muestran tal cual, o referencias a entidades especiales. Ejemplos de referencias de carácter son &alpha, y &cap (como &amp, en HTML). La mayoría de los nombres son prácticamente iguales a los nombres de los símbolos de LaTeX.

Page 48: Lenguaje de marcado MathML

Notación de Presentación:Cajas de Diseño

Notación de Presentación:Cajas de Diseño

• Están basadas sobre la idea de una caja de diseño.

• Las cajas de diseño simples contienen sólo caracteres individuales, y sus dimensiones dependen sólo de la fuente que está siendo usada.

• Las cajas de diseño más complicadas organizan sus “subcajas” de acuerdo a algún algoritmo.

• Cada elemento representa algo de “plantilla inteligente” para mostrar subexpresiones de una determinada forma.

57

xx-

Page 49: Lenguaje de marcado MathML

Notación de Presentación:Símbolos

Notación de Presentación:Símbolos

• Los elementos de símbolo son los únicos elementos que contienen directamente caracteres:

• <mi> ... </mi> Indica que su contenido debe ser mostrado como un identificador. Sus atributos son las propiedades de las fuentes, como fontweight, fontstyle, etc.

• <mn> ... </mn> Indica que su contenido debe mostrarse como un número. Sus atributos son como los de mi.

• <mo> ... </mo> Indica que el contenido debe mostrarse como un operador. Sus atributos son lspace, rspace, stretchy, y movablelimits.

• También se usa para símbolos que son operadores en un sentido muy general: paréntesis, puntuación…

Page 50: Lenguaje de marcado MathML

Notación de Presentación:Esquemas de disposición

Notación de Presentación:Esquemas de disposición

• <mrow>subexp1,…</mrow>. El más común e importante propósito del esquema de disposición, muestra sus subexpresiones colocadas sobre la línea base en fila horizontal.

• <mfenced>subexp1,…</mfenced> es como mrow, excepto que muestra el contenido entre paréntesis.

• <mfrac>numerador denominador </mfrac> muestra una fracción, y evaluando la opción de linethickness como 0, puede usarse también para coeficientes binomiales.

• <msqrt>subexp1,…</msqrt> muestra las subexpresiones bajo un signo radical.

• <mroot> base índice</mroot> es prácticamente idéntico al elemento msqrt, con la diferencia de que muestra el índice sobre el radical.

Page 51: Lenguaje de marcado MathML

Ejemplo (III):mrow para agrupar

Ejemplo (III):mrow para agrupar

• La codificación para x2+4x+4 podría ser:

<mrow><mrow><msup><msup>

<mi>x</mi><mi>x</mi><mn>2</mn><mn>2</mn>

</msup></msup><mo>+</mo><mo>+</mo><mn>4</mn><mn>4</mn><mi>x</mi><mi>x</mi><mo>+</mo><mo>+</mo><mn>4</mn><mn>4</mn><mo>=</mo><mo>=</mo><mn>0</mn><mn>0</mn>

</mrow></mrow>

Page 52: Lenguaje de marcado MathML

Ejemplo (III):mrow para agrupar

Ejemplo (III):mrow para agrupar

• Otras codificaciones válidas son:

<mrow><msup>

<mi>x</mi><mn>2</mn>

</msup><mo>+</mo><mn>4</mn><mi>x</mi><mo>+</mo><mn>4</mn><mo>=</mo><mn>0</mn>

</mrow>

<mrow><mrow>

<msup><mi>x</mi><mn>2</mn>

</msup><mo>+</mo><mrow>

<mn>4</mn><mi>x</mi>

</mrow><mo>+</mo><mn>4</mn>

</mrow><mo>=</mo><mn>0</mn>

</mrow>

Page 53: Lenguaje de marcado MathML

Notación de Presentación:Herencia

Notación de Presentación:Herencia

• Hay tres formas de colocar atributos:– Colocarlos explícitamente en tags,– Buscarlos en el diccionario de operadores.– Los atributos pueden ser heredados del entorno.

• Cada elemento tiene un entorno que especifica valores por defecto para todos los atributos de MathML.

• Los valores colocados directamente en un tag afectan sólo al elemento sobre el que están colocados.

• Cualquier atributo de presentación puede ser colocado usando el elemento mstyle.

• Los atributos incorporados mediante mstyle son en efecto para todos los elementos dentro del alcance de mstyle.

Page 54: Lenguaje de marcado MathML

Ejemplo (IV)Uso de mstyleEjemplo (IV)

Uso de mstyle• Codificación de f(x+y) y f(x+y):

<mrow><mi>f</mi><mfenced><mrow>

<mi>x</mi><mo>+</mo><mi>y</mi>

</mrow></mfenced>

</mrow>

<mrow> <mi>f</mi> <mfenced> <mstyle color=‘#ff0000’> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> </mstyle> </mfenced></mrow>

Page 55: Lenguaje de marcado MathML

Ejemplo (V)Fórmula de la ecuación cuadrática.

Ejemplo (V)Fórmula de la ecuación cuadrática.

<mrow> <mi>x</mi><mo>=</mo><mfrac> <mrow> <mo>&#x2212;</mo><mi>b</mi><mo>&#x00B1;</mo><msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>&#x2212;</mo><mn>4</mn><mi>a</mi><mi>c</mi> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn><mi>a</mi> </mrow> </mfrac> </mrow>

2- - 42

b b acx

=

Page 56: Lenguaje de marcado MathML

Notación de PresentaciónDiseño de escritura

Notación de PresentaciónDiseño de escritura

<msub>base script</msub><msup>base script</msup>

• Muestran las subexpresiones como base, y como un subíndice o superíndice, respectivamente (vectores, índices, potencias).

<msubsup>base script</msubsup> • Coloca subíndice y superíndice a la vez con la

misma base.<munder>base script</munder>

<mover>base script</mover> • Muestran sus subexpresiones como una base, y

como una subexpresión o supraexpresión, respectivamente (tildes, líneas adjuntas)

<munderover>base script</munderover> • Asocia sub-supra escritura a una misma base,

como por ejemplo en los límites de sumación o de integración.

Page 57: Lenguaje de marcado MathML

Ejemplo (VI)<msub> y <msup>

Ejemplo (VI)<msub> y <msup>

<mrow><msup>

<msub><mi>x</mi><mn>1</mn>

</msub><mi>&alpha;</mi>

</msup><mo>+</mo><msubsup>

<mi>x</mi><mn>1</mn><mi>&alpha;</mi>

</msubsup></mrow>

1 1x xa a+

Page 58: Lenguaje de marcado MathML

Ejemplo (VII)<munderover>Ejemplo (VII)

<munderover><mrow>

<mstyle displaystyle='true'><munderover> <mo>sum</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>&infty;</mi> </munderover> <msup><mstyle><mo>+</mo><mstyle displaystyle='false'>

<munderover><mo>sum</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>&infty;</mi></munderover><msup><mi>x</mi><mi>i</mi></msup></mstyle></mrow>

11

i ii

i

x x¥

¥

==

+å å

Page 59: Lenguaje de marcado MathML

Notación de PresentaciónTablas

Notación de PresentaciónTablas

• Las tablas en MathML son muy parecidas a las tablas en HTML, con la salvedad de que poseen muchos más atributos para la correcta presentación del simbolismo específicamente matemático.

<mtable> fila1 ... </mtable> • Construye una tabla por filas.

– rowalign y columnalign determinan el alineamiento de filas y columnas, por ejemplo "center” (centrar), "left” (izquierda), "top“ (arriba), etc.

– Rowlines, columlines y frame dibujan lineas de separación. – rowspacing, columnspacing, equalrows, y equalcolumns

determinan el espaciado.

<mtr> celda1 ... </mtr> • Acepta atributos de tabla.

<mtd> subexp1 ... </mtd>• Acepta atributos de tabla. Atributos especiales son rowspan

y columnspan.

Page 60: Lenguaje de marcado MathML

Ejemplo (VIII)Matrices

Ejemplo (VIII)Matrices

<mrow><mi>A</mi><mo>=</mo><mfenced open='['; close=']'>

<mtable><mtr>

<mtd><mi>a</mi></mtd><mtd><mi>b</mi></mtd>

</mtr><mtr>

<mtd><mi>c</mi></mtd><mtd><mi>d</mi></mtd>

</mtr></mtable>

</mfenced></mrow>

a bA

c d

é ùê ú= ê úê úë û

Page 61: Lenguaje de marcado MathML

Notación de prefijoNotación de prefijo• Para realizar una operación como la suma

1+2, podemos representarla en:– Notación de sufijo (1 2 +)– Notación exacta (1+2)– Notación de prefijo (+ 1 2)

• Se corresponde más estrechamente con la mayoría de las construcciones naturales del lenguaje.– Como “f de x” o “restar 3 a 7”

• Una consecuencia interesante de esta notación, usada en MathML, es que los paréntesis no son estrictamente necesarios, ya que el orden de las operaciones es claro según la notación.– Ejemplo:

• (x-y)/2 se escribe como: / - x y 2• x – (y/2) se escribe como: – x / y 2

Page 62: Lenguaje de marcado MathML

Notación de contenido:Elementos de símbolo

Notación de contenido:Elementos de símbolo

• <apply> Elemento fundamental. Acepta un operador como primera subexpresión, e interpreta las subexpresiones siguientes como los argumentos del operador introducido.

• <reln> Es análogo a <apply>. Se usa por ejemplo en ecuaciones y relaciones.

• <ci> Representa identificadores, cuando un identificador es aproximadamente cualquier tipo de nombre o etiqueta. Un atributo tipo especifica el tipo de objeto que es representado.

• <cn> Se diseñó inicialmente para el marcado de números enteros, racionales reales o complejos, aunque acepta cualquier carácter (como <cn>xii</cn>). El atributo tipo especifica qué tipo de número es codificado. El atributo base especifica que la base es distinta de 10 (como hexadecimal).

• Los operadores y las funciones están representadas por elementos vacíos (no se necesitan elementos <co>), como <cos/> o <intersect>. También se puede usar el elemento fn.

Page 63: Lenguaje de marcado MathML

Notación de contenido:Contenedores

Notación de contenido:Contenedores

• MathML usa contenedores para representar objetos matemáticos básicos y tipos de datos:

<set> [<elt1> <elt2> ... | <condition>] </set>• Construye un conjunto matemático cuyos

elementos están especificados de dos formas: – lista de símbolos y contenedores– mediante una condición

<interval> <pt1> <pt2> </interval> • Especifica un intervalo, las subexpresiones

codifican los puntos extremos. El atributo closure determina cuales de los extremos pertenecen al intervalo, como ”open” (abierto), “open-closed”, etc.

Page 64: Lenguaje de marcado MathML

Notación de contenido:Contenedores

Notación de contenido:Contenedores

<vector> <elt1> <elt2> ... </vector> • Construye un vector. Por convenio, los

vectores se consideran por columna. <matrix> <row1> <row2> ... </matrix> • Acepta cualquier número de

subexpresiones, pero todas deben ser elementos de matriz por filas. Las subexpresiones de los elementos de matriz por filas representan las entradas individuales en la matriz.

Page 65: Lenguaje de marcado MathML

Ejemplo (IX)Intervalos

Ejemplo (IX)Intervalos

<reln> <eq/> <set> <bvar> <ci>x</ci> </bvar> <condition> <reln> <geq/><ci>x</ci><cn>0</cn>

</reln> </condition> </set> <interval closure='closed-open'> <cn>0</cn> <ci>&infty;</ci> </interval></reln> { } [ )0 0,x x| ³ = ¥

Page 66: Lenguaje de marcado MathML

Ejemplo (X)Matriz y Vector

Ejemplo (X)Matriz y Vector

<reln> <eq/>

<apply><times/>

<vector type=“row”> <cn>1 </cn> <cn>2 </cn> </vector>

<matrix><matrixrow> <cn>0 </cn> <cn>1 </cn> </matrixrow>

<matrixrow> <cn>1 </cn> <cn>0 </cn> </matrixrow> </matrix>

</apply> <apply> <transpose/>

<vector> <cn>2 </cn> <cn>1 </cn> </vector>

</apply>

</reln>

0 1(1,2) (2,1)

1 0t

é ùê ú´ =ê úê úë û

Page 67: Lenguaje de marcado MathML

Notación de contenido:Operadores y relacionesNotación de contenido:Operadores y relaciones

• Hay unos 50 elementos de operador vacíos que representan los operadores y funciones más comunes.

• El único elemento de operador distinto es el elemento <fn> , que se usa para declarar que una subexpresión es un operador.

• En notación de prefijo, no hay diferencia entre funciones y operadores.

• MathML elige relaciones de otras funciones y operadores. Por ejemplo <eq>.

• Observación: Los paréntesis en torno a la x en la expresión f(x) no aparece como marca de MathML, por lo que un intérprete debería usar algún tipo de decisión heurística cuando los paréntesis son apropiados visualmente.

Page 68: Lenguaje de marcado MathML

Ejemplo (XI)Funciones

Ejemplo (XI)Funciones

• (sin + cos)(x)

<apply> <fn>

<mfenced> <apply>

<plus/>

<sin/>

<cos/></apply></mfenced>

</fn><ci>x</ci>

</apply>

• g(y)

<apply>

<fn>g</fn>

<ci>y</ci>

</apply>

Page 69: Lenguaje de marcado MathML

Notación de contenido:Calificadores

Notación de contenido:Calificadores

• El mayor grupo de calificadores lo constituye los elementos int, sum y prod. Todos tienen un límite inferior, un límite superior y una variable asociada.

<apply><sum/> <bvar> <ci>n</ci> </bvar> <lowlimit> <cn>0</cn> </lowlimit> <uplimit> <ci>&infty;</ci> </uplimit> <apply><power/> <ci>x</ci> <ci>n</ci> </apply> </apply>

0n

nx

¥

Page 70: Lenguaje de marcado MathML

Notación de contenido:Calificadores

Notación de contenido:Calificadores

• Otra locución importante que involucra calificadores surge con los operadores diferenciales diff y partialdiff.

<apply><diff/> <bvar>

<ci>x</ci> <degree> <cn>3</cn> </degree> </bvar>

<apply><fn> f </fn> <ci> x </ci> </apply> </apply>

3

3 ( )d

f xdx

Page 71: Lenguaje de marcado MathML

Notación combinada: Razones

Notación combinada: Razones

• Es necesario utilizar en los diseños de expresiones matemáticas los dos tipos de elementos estudiados para una mayor efectividad.

• Las expresiones matemáticas deberán de exhibirse lo más correctamente posible, y estar el contenido así mismo lo más comprensible posible, además de estar disponible (y ser comprensible) para otros programas.

• El elemento que permite esto es <semantics>.• Con el elemento <annotation>, resp.

<annotation-xml> (dentro de <semantics>) se puede llegar a almacenar información adicional.

• Esto también es posible usando notación de presentación en la notación de contenido, y recíprocamente.

Page 72: Lenguaje de marcado MathML

Ejemplo (XII)<Semantics>Ejemplo (XII)<Semantics>

<semantics><mrow>

<msup> <mi>f</mi> <mi>&prime;</mi> </msup><mfenced><mi>x</mi></mfenced>

</mrow><annotation-xml encoding="MathML-Content"><apply><diff/>

<bvar> <ci>x</ci>

</bvar> <apply>

<fn> f </fn> <ci> x </ci>

</apply> </apply></annotation-xml> </semantics>

'( )f x

Page 73: Lenguaje de marcado MathML

MathML no es tan ideal… después de todo.

MathML no es tan ideal… después de todo.

• El uso de elementos de presentación de MathML para objetos matemáticos elementales es excesivo, dado que la representación en MathML es poco concisa comparada con ASCII. Por ejemplo, compárese la expresión 1+sen(x) con su código en MathML.

• El Software para MathML no es gratuito por regla general: – La mayoría de software disponible para MathML es

comercial.– Hay escasez de software “open source” para MathML en

general, y para referencias de contenido de MathML en particular.

– Para el software que está disponible, el proceso de edición se hace realmente tedioso por algunas soluciones que implementan su propia sintaxis.

• El soporte para geometría en MathML está limitado.• Para nuevos elementos (como en el punto anterior),

usamos el elemento <annotation-xml> con el Diccionario de contenido codificado de Open Math (otra opción para integrar matemáticas en la red), pero en donde puede no existir una codificación determinada.

Page 74: Lenguaje de marcado MathML

MathML frente a documentos PDF

MathML frente a documentos PDF

• Un trabajo desarrollado en XML permite componerlo en PDF para imprimir o bien en HTML para la Web.

• No se necesita almacenar grandes cantidades de ecuaciones en imágenes con el documento.

• Como MathML es una aplicación en XML, los documentos se puede procesar uniformemente con standards industriales. – No es necesario extraer la información matemática

para procesarla por separado, está anexa al documento.

• Los documentos en formato PDF han sido un medio tradicional para presentar contenido CTM en la web.

• El formato PDF es todavía una opción muy importante dentro de un trabajo en XML-MathML, pero hay algunos inconvenientes en el uso de PDF en la web.

Page 75: Lenguaje de marcado MathML

Desventajas de PDFDesventajas de PDF

• El texto y los gráficos no se recolocan para las especificaciones de los diferentes visualizadores (browsers).

• Acrobat Reader suplanta al visualizador-navegador al presentar un documento PDF y no se puede integrar el contenido con otro contenido de la web.

• El formato está limitado a la hora de incorporar cualquier medio no textual, como video o sonido.

• El texto en PDF se puede manipular, pero las ecuaciones matemáticas deben mostrarse como gráficos, limitando su pleno uso al lector.

• Los documentos son de mayor tamaño en comparación con los HTML

• Es difícil, si no imposible, asegurar el mandato “section 508” de accesibilidad.

Page 76: Lenguaje de marcado MathML

Herramientas y productos que soportan MathML

Herramientas y productos que soportan MathML

Los más importantes son:• Visualizadores: WebEQ

(Geometry Center), Techexplorer (IBM), Amaya (W3C), Mozilla.

• Editores : EZMath, STARS • Herramientas de conversion:

LaTex2HTML, Omega, TeX4ht, • Generadores: Mathematica

(WRI), Maple (WMI), MathType (Design Science)

Page 77: Lenguaje de marcado MathML

Herramientas y productos que soportan MathML

Herramientas y productos que soportan MathML

• Los browsers más populares que soportan MathML son principalmente dos:– Mozilla– Amaya

• Pero por ahora sólo pueden renderizar la notación de presentación.

• Internet Explorer aún no está preparado para soportar MathML, aunque existe un plug-in para el navegador proporcionado con la aplicación MathPlayer 2.0

Page 78: Lenguaje de marcado MathML

Despliegue comercial de MathML

Despliegue comercial de MathML

• Una forma de evaluar la viabilidad de la integración de la nueva tecnología es observar el éxito generado en:– Oficina de patentes de U.S.A.– Sociedad Física Americana.– Microsoft (usa ayuda matemática

en el servicio de MSN Encarta Premium para institutos).

Page 79: Lenguaje de marcado MathML

ConclusionesConclusiones

1.1. MathML:MathML:• Elimina la necesidad de imágenes• Permite crear PDFs para imprimir y HTML

(XHTML) para la Web.• Trabaja con formatos de página en XSL

(eXtensible Stylesheet Language, que define o implementa el lenguaje de estilo de los documentos escritos para XML).

• Reutilizable con copiar y pegar.• Información enriquecedora• Mejor información estructural• Codifica contenido matemático.• Mejora en la Búsqueda e Indexado.• Accesibilidad.

2. Se ha implementado con éxito en el uso a gran escala:

• Oficina de patentes de USA• Sociedad Física Americana• Microsoft

3. Para las publicaciones CTM en XML, no hay otras alternativas viables.

Page 80: Lenguaje de marcado MathML

Referencias y enlaces de interés sobre MathML

Referencias y enlaces de interés sobre MathML

Fundamentales

• www.w3.org/Math• www.w3.org/Math/mathml-faq.html• www.mathtype.com/support/tutorials/

mathml• www.w3.org/1999/07/REC-MathML-

19990707• tech.irt.org/articles/js081/#1• tech.irt.org/articles/js208/#intro• www.geom.umn.edu/~rminer/w3c/

interface• www.webeq.com/mathml/gitmml• www.tejedoresdelweb.com/307/article-

5809.html

Page 81: Lenguaje de marcado MathML

Referencias y enlaces de interés sobre MathML

Referencias y enlaces de interés sobre MathML

• Lenguaje XML:– http://www.w3.org/TR/1998/REC-xml-19980210

• Plug-in para IExplorer 6.0– http://www.dessci.com/en/company/press/releases/

040722.htm• Presentaciones:

– dmath.savonia-amk.fi/IIworkshop/pre/ TokushigeKobayashi/Presentation/XSL-FO+MathML.ppt

– www.cs.huji.ac.il/course/2003/sdbi/2001/MathML.ppt – www.xmlconference.org/xmlusa/2004/slides/bmathews/

Integrating%20MathML%20into%20a%20Publishing%20Workflow.ppt

– www-user.tu-chemnitz.de/~mzel/lehre/mathml/mathml.ppt

– fgb.informatik.unibas.ch/fgb/archive/ ss02/xmltech/material/online/sess11/mathml.ppt

– web.iu-vannes.fr/docinfo/ssites/XML/ EX_exp-XML-DESS-2002/MathML/PPT/mathmlSlideShow.ppt

• Poner matemáticas en la red:– http://math.wcupa.edu/~johnston/presentations/sshema/

Page 82: Lenguaje de marcado MathML

Trabajo realizado por:

Juan Carlos Marcos Sánchez

Para el curso: Látex – HTML

e-mail: [email protected]

Granada, Abril de 2005