Home
Temas
Preguntas
Webs Amigas

Tecnología y Cultura
Sexo y Religión


Derechos Animales
Fotos Naturaleza
Ecología y Filosofía

Copyleft
Licencia de Creative Commons
Temas >> XML y Marcado
XML, estructura vs. presentación
XML es una tecnologia emergente para hacer explicita la estructura de los documentos por sobre su presentacion

Necesitamos algo de terminología mínima antes de entrar en aguas más profundas. Para ello, hagamos algunas observaciones sobre la materialidad (impresión) de este artículo. Usted puede distinguir varias partes, un título, un subtítulo, el texto del artículo, que a la vez son varios párrafos, y una firma. A un nivel más amplio, esta publicación está compuesta de un conjunto de artículos, separados por líneas, titulares, imágenes o simplemente, distancia física en la página; y a nadie le cuesta mucho trabajo reconocer cuando termina un artículo y empieza el siguiente, al márgen de la cuestión temática, porque están separados por ciertas convenciones de forma.

El hecho de que usted pueda distinguir fácilmente estas componentes de un documento, que llamaremos estructura del texto, proviene de convenciones tipográficas y de diagramación, a saber, que lo normal es tener el título destacado con un color, un tamaño o una tipografía distinta, separado del texto. Así mismo, es común que la firma tenga algún atributo distinto (por ejemplo, estar en cursiva) y se encuentre al final del documento. A todos estos elementos los llamaremos el formato del texto.

La primera observación es entonces, que el formato permite a los lectores reconocer la estructura del texto.

A pesar de que una misma estructura puede dar origen a varios formatos distintos (basta mirar las portadas de los periódicos o revistas para darse cuenta de que existe una miríada de maneras distintas de representar una estructura básica consistente en un titular y varias noticias con sus correspondientes resumenes), el problema de recuperar la estructura a partir del formato y poder contestar preguntas como "¿Hay algun artículo escrito por Perico Palotes?", "¿Cómo le fue al Chino Ríos?" es trivial para cualquier persona.

Sin embargo estas preguntas exceden las capacidades de los sistemas automatizados de recuperación de la información actuales. Todos los que han navegado por Internet y han ocupado un sistema de búsqueda se han dado cuenta de que los resultados de las búsquedas son en varias ocasiones irrelevantes respecto a la pregunta planteada.

Los sistemas de búsqueda obtienen respuestas irrelevantes en gran parte porque no son capaces de reconocer la estructura del documento a partir de distintos formatos.

Supongamos que nos proponemos permitir búsquedas estructuradas sobre la portada de un diario o sitio web, abstraigámonos un momento del formato y pensemos en una manera de describir esta estructura. Para conseguirlo, le entregamos al computador el texto de la portada con ciertos marcadores para que él pueda ver la estructura, por ejemplo:

<PORTADA>
  <TITULAR>
    <TITULO>Ganó el Chino Ríos</TITULO>
<RESUMEN>Ahora es de nuevo Top 10</RESUMEN>
</TITULAR> <NOTICIA> <TITULO>Sorprendente alza del dólar</TITULO>
<RESUMEN>Subió 10 pesos en la jornada de ayer</RESUMEN>
</NOTICIA> </PORTADA>

Un programa computacional puede ver este texto, determinar su estructura, basándose en los marcadores <XXXX> y guardar en su memoria una representación (como un árbol jerárquico, por ejemplo) de dicha estructura, para que después alguien pueda hacer preguntas al programa sobre el texto.

La forma de describir la estructura que acabamos de ver se denomina XML (eXtensible Markup Language - Lenguaje de Marcadores Extensibles) y corresponde a una tecnología emergente propuesta por un consorcio de empresas dedicado a desarrollar estándares para el web, llamado W3C (World Wide Web Consortium) y que reune a todos los gigantes de la industria como IBM, Microsoft, Netscape, Apple, Adobe, etc.

XML estaría "incompleto" si dejara de lado otro asunto importante: los humanos nos sentimos más cómodos cuando el formato no es tan explícito, y nos gusta ver documentos diagramados con criterios estéticos más que informáticos. Desde el punto de vista de quien crea una publicación, sería interesante contar con algún tipo de mecanismo estándar para dar el formato a partir de la estructura.

No hay problema, siempre que seamos comprensivos con las limitaciones de un computador y le entreguemos la información de manera que él pueda procesarla, por ejemplo:

<PLANTILLA TIPO="PORTADA">
    <formato:CENTRADO>
        <formato:GIGANTE>La Gazetta</formato:GIGANTE>
</formato:CENTRADO> <PROCESAR TIPO="TITULAR"> <PROCESAR TIPO="NOTICIA"> <formato:MEDIANO> <INSERTAR_FECHA> </formato:MEDIANO> <formato:CHICO> Chile: $1000, Recargo por flete: $50 </formato:CHICO> </PLANTILLA>
<PLANTILLA TIPO="TITULAR"> ... </PLANTILLA>
<PLANTILLA TIPO="NOTICIA"> <formato:GRANDE> <TITULAR> </formato:GRANDE> <formato:CHICO> <formato:CURSIVA> <RESUMEN> </formato:CURSIVA> </formato:CHICO> </PLANTILLA>

Este lenguaje puede parecer críptico al principio. Analicémoslo: el marcador <PLANTILLA> ... </PLANTILLA> encierra la descripción de lo que se debe hacer con cada elemento estructural; lo mismo para con los marcadores <PROCESAR>. Además, hay algunos marcadores que sirven específicamente al propósito de proveer el formato, como <formato:GRANDE>, <formato:CURSIVA>, etc.

Esto es XSL (eXtensible Stylesheet Language - Lenguaje extensible de hojas de estilo), un lenguaje para procesar estructuras y convertirlas en textos con legibilidad adecuada.

XML es un estándar para denotar explícitamente la estructura de un texto. XSL es un estándar para convertir esa estructura a un formato adecuado para la lectura.

La motivación principal de XML/XSL era crear una forma de crear y transmitir documentos estructurados en el Web, esto debido a que el lenguaje estándar (HTML - Hyper Text Markup Language) para el web adolesce de numerosas limitaciones, siendo la principal de ellas la imposibilidad de definir marcadores propios para aplicaciones específicas.

Ahora veamos como una colección grande de problemas, todos relacionados con la necesidad de transmitir y procesar información de manera coherente, se resuelven con el uso de XML y XSL.

En la Ciencia

La idea de conseguir desplegar información y realizar búsquedas es central al mundo científico y a la necesidad de poder compartir reportes y papers de carácter técnico, que de por sí poseen una estructura compleja.

Por ejemplo, la única posibilidad de un matemático de poner una fórmula en el web es recurriendo al truco de crear la fórmula en algún programa, sacarle una "foto", es decir, tomar sólo una imágen de la fórmula y ponerla en su página.

Esto significa que otro matemático no puede tomar directamente la fórmula o ecuación, copiarla de la página y pegarla en algún software de algebra, cálculo o gráficos para analizarla.

XML al rescate. Con XML, es posible la existencia de MathML (Mathematics Markup Language - Lenguaje de marcadores matemáticos)

Tomemos la ecuación "X2 + 4X + 4 = 0" y veamos su representación en alguno de los dos "sabores" de MathML, que son el descriptivo y el conceptual, sólo a manera de ejemplo.

Desde el punto de vista descriptivo, una posible forma de marcar la ecuación utiliza los átomos <CODE><MI></CODE> (identificador matemático) <MO> (operación matemática) y <MN> (número matemático), junto <MROW> para juntar términos y <MSUP> para denotar superíndice.

<mrow>
<mrow>
<msup>
<mi>x</mi>
<mn>2</mn>
</msup>
<mo>+</mo>
<mrow>
<mn>4</mn>
<mo>&invisibletimes;</mo>
<mi>x</mi>
</mrow>
<mo>+</mo>
<mn>4</mn>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>

Desde el punto de vista conceptual, utilizamos <APPLY> (aplicar operación) <TIMES> (multiplicar) <PLUS> (sumar) junto a <CI> (identificador conceptual) y <CN> (número conceptual).

<apply>
<plus/>
<apply>
<power/>
<ci>x</ci>
<cn>2</cn>
</apply>
<apply>
<times/>
<cn>4</cn>
<ci>x</ci>
</apply>
<cn>4</cn>
</apply>

Así como existe MathML, hay esfuerzos en desarrollar:

ChemML, para modelamiento y representación de moléculas AML, para datos astronómicos AIML, para operación de instrumentos astronómicos BioSequenceML, para datos genéticos

Y se espera que con el tiempo se desarrollen más aplicaciones en esta línea. Hay un artículo muy interesante al respecto en la revista Scientific American (Mayo 1999).

En comercio electrónico

Hay un apodo divertido para el World Wide Web, aun cuando encierra un poco de crueldad: World Wide WAIT (espera mundial); y al momento de buscar responsabilidades todos los dedos acusadores se levantan y apuntan al ancho de banda (la capacidad física instalada de las líneas telefónicas) como el gran culpable.

Pero existe otro motivo que no es menor. Cuando un cliente desea hacer una compra en Internet y agrega un producto a su orden de compra y saber cual es el total (¡una simple operación de suma!) debe presionar un botón, enviar su orden parcial al servidor de la empresa que está ofreciendo el producto y esperar la respuesta. Esto explica lo lento que funciona comprar libros, CDs u otros productos a través de Internet. Cada vez que se realiza cualquier operación sencilla el servidor debe re-enviar toda una página de vuelta. Este problema puede ser resuelto transfiriendo parte del trabajo al navegador del cliente por medio de información estructurada.

Otro punto que también crea desánimo y molestia en los usuarios de un sitio web es que muchos diseñadores, al ver todas las limitaciones de HTML, optan por llenar el sitio de grandes imágenes gráficas, que obtienen un resultado visualmente atractivo pero absolutamente poco práctico para quien está conectado desde su casa. Esto causa el abandono de los usuarios de gran cantidad de sitios.

El uso intensivo de XML y XSL permitirá mejorar simultáneamente la presentación y la velocidad de transmisión, lo que sumado al incremento, más modesto, del ancho de banda disponible, permitirá acercar aún más a las empresas y sus clientes.

Un último asunto es el siguiente: veamos qué pasa si varias empresas ofrecen un producto y publican en Internet sus respectivos catálogos de producto. Un ejemplo del mismo aviso de dos vendedores distintos:

  • Peugeot 505 1995 impecable 18.000km, sólo 2560000 llamar al fono 666 1995
  • 1.500.000 Peugeot 505 excelente estado, sólo 10000km llamar 2560000 conversable

Usted y yo probablemente con sólo estas dos opciones nos decidiríamos por el segundo. ¿Pero que pasa si hay 80 avisos ofreciendo el mismo automóvil?. No se puede pedir a un programa computacional que busque "el más barato" porque le sería imposible distinguir ciertas cosas (el teléfono y el precio, por ejemplo) que son evidentes para un humano, en cambio, se puede crear una versión estructurada del mismo aviso:

<AVISO>
<MARCA>Peugeot>
<MODELO>505>
<ESTADO>
<USADO>15000</USADO>
<UNIDAD>Kilómetros</UNIDAD>
</ESTADO>
<PRECIO>
<VALOR>2560000</VALOR>
<UNIDAD>Pesos Chilenos</UNIDAD>
</PRECIO>
<VENDEDOR>
<TELEFONO>6668822</TELEFONO>
</VENDEDOR> </AVISO>

Esta situación crea un escenario completamente distinto, amplía las posibilidades del comprador y crea un mejor ambiente de competencia que el existente actualmente, además, si usted quiere cambiar el formato en que se presenta el catálogo de productos, no necesita cambiar el aviso.

Existe un lenguaje en desarrollo basado en XML para avisaje de productos, creado por la asociación norteamericana de periódicos, para ser utilizado en el web. Más información en esta línea está disponible en el sitio de XML.COM, perteneciente a un grupo privado dedicado a difundir aplicaciones tecnológicas y posibilidades de XML.

En Noviembre de 1996, en una conferencia sobre el "padre" de XML (SGML - Standar Generalized Markup Language) se presenta un reporte técnico inicial respecto a XML. En Marzo de 1997 se realiza la primera conferencia sobre XML, aún con sólo la idea general al respecto; en Octubre de 1997 el World Wide Web Consortium define algunos lineamientos fundamentales, para tener la primera edición del estándar publicada en Diciembre de 1997

Las motivaciones fundamentales del grupo de trabajo (http://www.w3.org/XML/) son:

  • 1.XML está desarrollado para ser usado en Internet
  • 2.XML está hecho pensando en desarrolladores, proveedores de contenido, buscadores y todos los demás actores.
  • 3.Debe ser relativamente fácil hacer programas para XML
  • 4.No deben haber aspectos opcionales de XML, pues son ellos los que llevan a la aparición de incompatibilidades. En este sentido, XML es mucho más estricto que HTML
  • 5.Si bien se debe poder leer XML y entenderlo razonablemente bien sin ayuda de un editor, idealmente se espera que la gente cree sus documentos por medio de programas ad-hoc
  • 6.A pesar de lo anterior, debe poder hacerse un documento XML a mano o con un programa sencillo
  • 7.El estándar debe estar listo pronto y debe ser conciso y formal a la vez

Paralelo a los primeros pasos en XSL, entre Enero y Agosto de 1998 se trabaja en obtener XQL, XLink y XPointer, que son lenguajes para poder realizar consultas y referenciar documentos estructurados en XML. En Diciembre de 1998 se obtiene una forma de describir el lenguaje HTML (el usado actualmente en Internet) en términos de XML y XSL. En Enero de 1998 se tiene una versión un poco más estable de XSL y en Febrero de 1998 se prepara el escenario determinando cómo distintas empresas podían repartir los nombres de los identificadores para evitar confusiones entre ellas.

Paralelamente al desarrollo del estándar formal(con muy pocas cosas claras al respecto) se ha ido desarrollando software. Uno de los objetivos de los desarrolladores de XML era que "en menos de dos semanas, cualquier programador competente pueda hacer un programa que funcione y maneje XML".

Dado que XML tiene una perspectiva web-céntrica, la mayoría de los programas están hechos en Java, un lenguaje multiplataforma, optimizado para lograr un alto grado de compatibilidad. Estos programas están orientados a implementar el análisis de un documento XML (la parte fácil), la transformación de documentos vía XSL (la parte más o menos difícil) y el formateo y visualización de documentos vía XSL (la parte difícil).

Software

Para los dos primeros ítems, existen soluciones desarrolladas principalmente por programadores independientes y por la división AlphaWorks de IBM). Sus software incluyen un excelente editor de XML llamado Xeena y herramientas de proceso para la transformación de documentos.

Un aspecto interesante de notar, es que IBM ha ofrecido una "recompensa" de 60000 dólares para un desarrollador o una empresa que escriba el primer programa en Java que pueda realizar la parte de formateo y visualización de un documento en XML y XSL.

Respecto a las soluciones particulares, como ChemML y MathML, existen programas que manejan bastante bien ambos:

Para ChemML, está "Jumbo", un browser capaz de desplegar moléculas descritas en este lenguaje, orientado al mundo de la química (http://www.xml-cml.org/) Para MathML, tanto el paquete Mathematica como Maple, en sus versiones más recientes, incluyen soporte. En el caso de Mathematica, bajo la forma de poder importar/exportar archivos en MathML y en el caso de Maple, manipulación y edición.

Los browsers actuales (2004) incorporan soporte para desplegar documentos XML, y algo del proceso de transformación XSL.

Dos conceptos claves para los desarrolladores:

  • Implementación parcial: al igual que pasa con HTML, abrán implementaciones parciales, particularmente del formateo en XSL que estarán disponibles antes que una implementación "final". Lo más probable es que los aspectos avanzados, tipografías y dirección del texto, manejo de fondos texturizados y todo lo que les pueda parecer superfluo a los desarrolladores de browsers sea postergado en pos de conseguir una implementación rápida de las características fundamentales.
  • Coexistencia: HTML seguirá siendo por mucho tiempo el estándar para describir documentos, en tal sentido cada sitio web probablemente ofrecerá sus documentos en dos versiones: XML/XSL y HTML; el proceso de transformación de XML/XSL a HTML se realizará en el lado del servidor y será una tarea común, con un alto grado de automatización, al momento de implementar un sitio web.

Varias empresas han hecho un esfuerzo e inversión importante en software para esta nueva generación del web. La comunidad científica parece haber recibido de buena forma este estándar emergente, y para los usuarios finales los beneficios son muchos. El punto débil es que no hay disponible mucho software al respecto, y que la versión de XSL actual aún no tiene suficiente estabilidad, pero está claro que ya el camino está trazado y que más temprano que tarde será habitual visualizar separadamente estructura y formato, y aprovechar las posibilidades que se abren en esta nueva etapa del web.

Alojamiento Web

ChaTo = Carlos Castillo, Ph.D.  :::  Acerca de este Sitio ChaTo = Carlos Castillo, Ph.D. ::: Acerca de este Sitio