Marcado de textos y XML

Romina De León

¿Qué son los lenguajes de marcado?

Recorrido en el marcado

En 1967 W. W. Tunnicliffe expuso por primera vez los conceptos de los lenguajes de marcado. Estos tienen orígenes en la época de la invención de la imprenta, debido a las instrucciones necesarias que se añadían en los márgenes de los manuscritos para su impresión, así como las indicaciones sobre tipo de letra, estilo, tamaño, corrección de errores.

Obviamente con la aparición de la informática, estas actividades fueron trasladadas a dicha área, que facilitaron la automatización y estandarización.

Tunnicliffe presentó como novedad la separación entre presentación y estructura del texto, codificación genérica (GenCode). Sin embargo, la piedra angular del marcado fue el estandar SGML (Standard Generalized Markup Language), elaborada por un comité dirigido por Charles Goldfarb, investigador de la compañía IBM. Desde ese momento, se han establecido distintos estándares de publicación, como ser TeX, LaTeX, y el poputal HTML.

HTML es el tipo de documentos más empleado en el mundo, debido a su sencillez, sin embargo durante la década del 90, se produjeron enorme cantidades de sitios web, sin embargo estos se encontraban mal estructurados, no respetaban estándares. La respuesta a estos problemas se produjo con el surgimiento del XML (eXtensible Markup Language).


Ahora ¿qué son los lenguajes de marcado?

Los lenguajes de marcado son una manera de codificar documentos que incorporan etiquetas o marcas contenedoras de información adicional, referida a la estructura o presentación de los textos. No son lenguajes de programación, puesto que los primeros no tienen funciones o variables.

Se pueden diferenciar en tres clases de lenguaje de marcado, asimismo pueden combinarse en un mismo documento. Estas clases son marcado de presentación (que indica el formato de los textos, el maquetado de los documentos para su presentación de lectura), de procedimientos (útil tanto para la presentación como para la edición del texto) y descriptivos (Coombs, Renear y De Rose, 1987).

Estos últimos, también se denominan semánticos, permiten describir fragmentos de textos utilizando etiquetas, pudiendo tener cualquier formato de salida. Incluso, mayormente la transformación y presentación para publicar en un sitio web se relega a una etapa posterior. En este grupo encontramos SGML y XML.

Ejemplos de tipos de lenguajes

¿Qués es XML?

Logo de XML

XML (eXtensible Markup Language), lenguaje de marcado extensible, es un metalenguaje de marcado utilizado para estructurar datos de manera que sean legibles tanto para humanos como para máquinas. A diferencia de HTML, XML no tiene etiquetas predefinidas, por ello permite crear etiquetas personalizadas que definen la estructura y el contenido de los datos, desde las especificaciones creadas por W3C. Proviene, como se mencionó, del lenguaje SGML y facilita la definición de la gramática de lenguajes para estructurar documentos de grandes tamaños. XML da soporte a bases de datos, generando intercomunicación e integración de información.

Principales características de XML

  • Extensible, porque sus etiquetas no son fijas, permitiendo definir etiquetas personalizadas.
  • Jerárquico, ya que los datos se organizan en una estructura de árbol (arbórea), es decir los elementos pueden contener subelementos.
  • Legible por humanos, posee un formato de texto claro que facilita la lectura y la edición manual.
  • Interoperable, sus datos son intercambiables entre diferentes plataformas y sistemas.

Por estas características, existen muchos lenguajes basados en XML, como ser XHTML, MathML, SVG, XUL, XBL, RSS, y RDF. También puedes crear uno propio.

Estructura básica de archivos XML


La estructura de un archivo XML se compone de una serie de etiquetas. Para que un documento de este tipo sea correcto debe estar bien formado, es decir, cumplir con las reglas de sintaxis, y validado, acorde a las reglas de un lenguaje específico. A continuación encontrarán un ejemplo simple:

<xml version="1.0" encoding="UTF-8"?>
<libro> <titulo>Don Quijote de la Mancha</titulo> <autor>Miguel de Cervantes</autor> <año_publicacion>1605</año_publicacion> <editorial>España</editorial>
</libro>

Un documento mal formado sería si tiene una etiqueta de apertura y no tiene una de cierre, ni tampoco se cierra a sí misma.

<message> <warning> Hola, mundo
<!--Este tipo de anotación es para añadir comentarios, y en este encuentran que el error de este XML es que no está cerrada la etiqueta "warning" de la siguiente forma </warning> --> </message>

Para ser válido, un documento XML necesita cumplir ciertas reglas de semántica que son generalmente definidas en un esquema XML o en una Definición de Tipo de Documento (doctype, DTD). Un documento que contiene una etiqueta no definida es inválido. Por ejemplo, si nunca definimos la etiqueta </warning>, el documento ejemplo no será válido.

Veamos los elementos básicos de un archivo XML:

  • Declaración XML, esta se encuentra en la primera línea, por ejemplo:
    <?xml version="1.0" encoding="UTF-8"?>
    Indica que estamos ante un archivo XML, además se especifica la versión y la codificación de caracteres.
  • Etiquetas, se utilizan para definir elementos (como ser <libro>, <titulo>, <autor>, etc). Recordar que para que esté bien formado el XML, cada elemento debe tener una etiqueta de apertura y otra de cierre (ejemplo: <titulo> y </titulo>).
  • Contenido, es lo que encontramos dentro de las etiquetas, el valor de cada elemento. Como en nuestro ejemplo: Don Quijote de la Mancha entre las etiquetas <titulo> y </titulo>.
  • Estructura jerárquica, es decir que los elementos pueden contener otros elementos. En nuestro ejemplo, el elemento <libro> contiene elementos como <titulo>, <autor>, etc.

Sintaxis en archivos XML

Para que un documento se encuentre bien formado, debe cumplir con las siguientes reglas básicas:

  • Etiqueta de cierre obligatoria
  • Sensibilidad a mayúsculas y minúsculas, es decir, <Nombre> y <nombre> son diferentes.
  • Raíz única, debe ser la que contenga todos los demás elementos en un documento XML; en el ejemplo anterior <libro> es el elemento raíz.
  • Atributos, proporcionan información adicional de los elementos. Estos siempre se escriben dentro de las etiquetas de apertura: <libro categoria="novela"> <titulo>Don Quijote de la Mancha</titulo> </libro>
    Se observa que la categoria="novela" es un atributo del elemento <libro>.

Estándar de marcado, TEI-XML

Logo de XML

En las unidades anteriores, hemos trabajado las diferencias existentes entre un texto digitalizado y uno digital. El primero ha sufrido un proceso de tranformación de formato físico, como ser un libro o un documento, a un formato digital mediante escaneo o fotografía, siendo almacenado generalmente en formato PDF con imágenes que contienen el texto. Mientras que, el texto digital es creado directamente en un dispositivo electrónico por medio de procesadores de textos; es legible tanto por humanos como por máquinas. Otra diferencia importante es que el texto digital permite la búsqueda, edición y reemplazo de caracteres. Asimismo, cabe señalar, que en PDFs de textos digitalizados, mediante un proceso de Reconocimiento Óptico de Caracteres (OCR, siglas en inglés), pueden reconocer los textos contenidos en las imágenes digitalizadas.

Los tipos de textos digitales son diversos: desde documentos en Google Docs, publicaciones en redes sociales o blogs, y e-books, hasta su formas más sencilla, el texto plano. Ya hemos trabajado con ellos; son los documentos que tienen extensión *.txt. Estos contienen solo caracteres y espacios, sin ningún tipo de añadido en cuanto al formato. Los tipos de textos digitales mencionados son enriquecidos con información adicional, como estructura y forma, mediante lenguajes de marcado, que hemos presentado en esta unidad.

Hemos presentado los lenguajes de marcado, y a XML en particular. Sin embargo, en esta unidad profundizaremos en XML-TEI, un estándar de marcado basado en el lenguaje XML. La TEI o Text Encoding Initiative es el consorcio que surgió a fines de los 80s, y desarrolló en 1994 este estándar, y lo continúa manteniendo y actualizando. Las Guidelines TEI son utilizadas por bibliotecas, museos, editores y académicos para presentar textos con diferentes fines, como ser investigación, enseñanza, preservación en línea, entre otros. Estas se encuentran traducidas en 8 idiomas incluido el español.

Ejemplo comentado del marcado de un pequeño fragmento de la obra de Oscar Wilde, The Importance of Being Earnest.

Ejemplo de codificación de un texto dramático (Alcaraz Martínez y Vázquez Puig, 2016).


¿Qué es TEI?1

Las TEI Guidelines for electronic text encoding and interchange son pautas que definen y documentan el estándar TEI. Estas directrices se organizan en diferentes capítulos en los cuales se aborda el sistema de clases y de atributos, y los diferentes módulos que conforman el esquema2. Ha sido creado bajo la premisa de generar un lenguaje flexible y extensible, y que pudiese representar cualquier texto, así como adaptarse a las necesidades de cada usuario. Esto implica que podremos estructurar los textos en lo formal como en lo semántico, permitiéndonos que sean procesados, comprendidos y analizados por las máquinas como por humanos.

Como hemos mencionado, TEI es un lenguaje de marcado del tipo descriptivo, por ello se centra en el contenido semántico, y no en su presentación, como es el caso de HTML. Es decir, no se indicará si una palabra se encuentra en negrita o cursiva, sino que tipo será, por ejemplo un título. Por otra parte, un XML-TEI puede ser fácilmente transformado a distintos formatos, como DOC, ePub, HTML, PDF, etc. Sin embargo, no siempre se puede al revés. Por ende, la separación en un texto de la forma o su presentación hace más sencilla la reutilización de este, pues no se halla limitado a formatos.

Volviendo a las directrices, núcleo de la TEI, brindan manuales de uso y normativas para buenas prácticas. Estas incluyen TEI esquemas (schemas), código de TEI; esta documentación es actualizada periodicamente y se encuentra disponible en acceso abierto. Además proponen aislar el marcado en etiquetas de las características textuales, pudiendo ser estructurales (capítulos de libro, secciones, apartados, párrafos, versos, etc.), físicas (páginas, columnas en un manuscrito, etc.), como semánticas o conceptuales (nombres de personas, lugares, palabras clave, etc.) Recuerden lo visto en la unidad anterior en Recogito. Asimismo, siempre al abrir una etiqueta recuerden que debe tener un cierre, para que el XML-TEI esté bien formado y sea válido.

El uso de TEI tiene varias ventajas, como que no depende de ningún software o programa, además de ser gratuito e independiente, por ello se puede utilizar sin ninguna variación en cualquier sistema operativo. Además como ha sido diseñado por y para la comunidad científica, permite la reutilización de manera sencilla del mismo material, en diferentes formatos, contextos y usuarios.

Ejercitación

A continuación comenzaremos a trabajar un archivo XML-TEI, que les compartiré en el campus, para poder iniciar la incorporación de conceptos, reglas y nociones fundamentales en este lenguaje de marcado, que encontrarán en el siguiente apartado.

Asimismo, el paso que sigue, antes de empezar a trabajar, es la instalación de un editor de código. Mi recomendación es Visual Studio Code, creo que la mayoría ya lo tienen instalado. En caso contrario podrán encontrar como realizar la instalación aquí. Usaremos VS Code porque es gratuito, con una enorme cantidad de funciones adicionales, la más interesante para nuestro propósito es la posibilidad de instalar extensiones con funciones adicionales, que pueden ser creadas por los usuarios. Dentro de estas encontraremos algunas que han sido específicamente desarrolladas para trabajar con documentos XML-TEI. Por lo anterior recomiendo que instalen la extensión Scholarly XML, que próximamente nos será muy útil. Para ello les comparto un vídeo con los pasos para instalar extensiones.

Finalmente, les comparto algunos atajos o shortcuts de VS Code, que facilitarán el trabajo con documentos TEI, para Windows, iOS y Linux.

Bibliografía recomendada:

Alcaraz Martínez, R., & Vázquez Puig, E. (2016). TEI: un estándar para codificar textos en el ámbito de las humanidades digitales. BID. https://bid.ub.edu/es/37/alcaraz.htm

Calarco, G. & Márquez Molins, C. (2022). "Edición filológica con Visual Studio Code." TTHub. Hub de Tecnologías del Texto. https://tthub.io/aprende/tutorial/edicion-digital-con-VS-code/

Coombs, J. H., Renear, A. H., & DeRose, S. J. (1987). Markup systems and the future of scholarly text processing. Communications Of The ACM, 30(11), 933-947. https://doi.org/10.1145/32206.32209

De la Rosa, A., & Senso, J. A. (1999). XML como medio de normalización y desarrollo documental. Revista Española de Documentación Científica, 22(4), 488-504. https://doi.org/10.3989/redc.1999.v22.i4.346

Linares-Sánchez, J. J., Sánchez-Cuadrado, S., & Morato, J. (2022). Datos enlazados para el análisis de la literatura grecolatina. Revista Española De Documentación Científica, 45(1). https://doi.org/10.3989/redc.2022.1.1842


  1. Debemos tener en cuenta, que el término TEI será utilizado indistintamente para referirnos a la Text Encoding Initiative o el Consorcio TEI, las TEI guidelines así como al mismo lenguaje. Utilizaremos la forma femenina para referirnos a la Iniciativa, y el estándar TEI para mencionar al lenguaje.↩︎

  2. Existen varios tutoriales sobre XML-TEI, recomiendo: TTHub, TEI: un estándar para codificar textos en el ámbito de las humanidades digitales y Introduction to TEI.↩︎