SGML

María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen.

Inicio     navega al azar mapa conceptual  buscar

 

SGML o Standard Generalized Markup Language fue definido por la norma ISO 8879 en 1986 y desde entonces ha sido considerado el lenguaje estándar para mantener los depósitos centrales de la estructura documental. Se trata de un lenguaje para marcar y describir documentos con independencia total del hardware y software utilizados.

En los años 60, IBM intentó resolver los problemas asociados al tratamiento de documentos en diferentes plataformas a través de GML (Generalized markup Language), se trataba de encontrar un lenguaje normalizado basado en tratar las marcas como texto accesible desde cualquier sistema ya que, hasta entonces, cada aplicación utilizaba sus propias marcas para describir los diferentes elementos y era imposible pasar información de un sistema a otro sin perder el formato original. 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, cómo debe ser impreso o cómo debe ser almacenado. Y lo mismo ocurre con todas las demás características de cualquier texto.

En 1978 el Instituto Nacional Americano de Normalización (ANSI) empezó a trabajar en las especificaciones para los procesadores de textos y el resultado fue el lenguaje SGML que, en 1986, pasó a manos de la ISO y se convirtió en la norma 8879, SGML (Standart Generalized Markup Language).

Los lenguajes de marcas no son equivalentes a los lenguajes de programación aunque su definición como "lenguajes" induzca a confusión.  Se trata de sistemas complejos de descripción de información, normalmente documentos que, si se ajustan a SGML, se pueden controlar desde cualquier editor ASCII. Las marcas más utilizadas suelen representarse por textos descriptivos encerrados entre los signos de "menor" (<) y "mayor" (>), siendo lo más usual que existan una marca de principio y otra de final. 

Un lenguaje de marcas o de etiquetado no es lo mismo que un lenguaje de marcas generalizado. Con un lenguaje de marcas se describen las reglas para el procesamiento de un texto, para describir los diferentes caracteres y sus características de impresión. Un lenguaje de marcas generalizado, por el contrario, no especifica cómo deben verse las cosas o el proceso que se ha de realizar, sino que provee información sobre la estructura del documento e identifica las partes lógicas y el tipo de elementos que constituyen el documento.

Al hablar de los lenguajes hipertextuales, ya hemos establecido las diferencias entre los 2 tipos básicos de los lenguajes de marcado diferenciando el etiquetado procedimental del etiquetado descriptivo.

El etiquetado descriptivo identifica los elementos estructurales de un documento, determinando su estructura lógica. Así, el lenguaje SGML utiliza un conjunto de caracteres que se basan en el estándar ASCII (American Standard Coding for the Interchange of Information), que puede ser reconocido por cualquier tipo de plataforma y de sistema informático. Los caracteres especiales, que no están contemplados en el conjunto de caracteres ASCII se transforman en representaciones ASCII y se denominan referencias de entidad. SGML subordina el etiquetado a los aspectos lógicos de la estructura de los documentos. partiendo del criterio de que existe una relación directa entre cuestiones como el cambio de tipografía y una cabecera, la utilización de la cursiva para resaltar un término, el dibujo de un recuadro con un gráfico, etc. En SGML todo el etiquetado es lógico, es decir, se utilizan "nombres de elementos" en vez de caracteres aleatorios, delimitados por marcas que indican el comienzo y final de los objetos lógicos. Estos delimitadores permiten que el software reconozca qué caracteres deben ser leídos en modo de "etiqueta" o "marca", y qué otros como "contenido".

La potencia de SGML radica en dos aspectos fundamentales: por un lado, permite que se definan lenguajes de marcas de forma independiente y, por otro lado, facilita el intercambio y conservación de documentos y recursos digitales estructurados.

 

Así pues, SGML no es un lenguaje de marcas en sí mismo, sino un metalenguaje o marco general para la descripción de lenguajes de marcado, particularmente aquellos usados en el intercambio electrónico, manejo y publicación de documentos. Por ejemplo, HTML es un ejemplo de un lenguaje definido en SGML, se trata de una simplificación de SGML ya que la complejidad de éste hacía que este lenguaje no fuera apropiado para la Web. En realidad, HTML es una DTD (descripción del tipo de documento) de SGML utilizado para documentos en la Web. El HTML original no era completamente compatible con SGML, ya que poseía algunas deficiencias sintácticas a cambio de una mayor simplicidad. Ahora, las ventajas en la compatibilidad, como la validación, la utilización de herramientas basadas en SGML y la capacidad de interactuar, han sobrepasado a las desventajas y HTML2 se ha convertido en el nivel común en la mayoría de los navegadores. La compatibilidad con la Web reside en la estandarización de los datos, no en las aplicaciones.

SGML es un estándar internacional, no propietario y abierto, que provee un método para la descripción de la estructura de documentos basándose en la relación lógica de sus partes. Provee una codificación estándar para la transmisión de documentos entre sistemas de computación diferentes como distintas plataformas, diferentes soportes físicos y lógicos, distintos sistemas de almacenamiento y presentación, con independencia de su grado de complejidad.

El lenguaje SGML debe utilizarse cuando existan algunas de las siguientes condiciones:

  •  Cuando exista la necesidad de intercambiar documentos entre diferentes sistemas de computación o de edición.
  •  Cuando los documentos tengan una larga vida de uso.
  •  Cuando sea fundamental la estructura de un documento.
  •  Cuando se utilice una base de datos para el almacenamiento y recuperación de los elementos del documento.

Cuando se concibe un documento en SGML se debe tener en cuenta que:

  •  El material que constituye un documento se puede distribuir en diferentes archivos, tantos como sean necesarios. Estos archivos, además, pueden estar almacenados en un sistema distribuido en varios ordenadores. Un archivo puede contener la portada, otro la introducción, otro una parte de una hoja de cálculo, otro un gráfico, otro un organigrama, otro la bibliografía, etc.

  •  En SGML, cada uno de estos objetos recibe el nombre de entidad. Las entidades se conciben como objetos independientes.

  •  Las entidades pueden tener cualquier tamaño, haber sido creadas por cualquier programa de software o estar almacenadas en cualquier ordenador.

  •  Las entidades pueden ser compartidas por distintos documentos.

  •  Un documento estará definido en función de la estructura de las entidades que lo conforman.

  •  En el índice de materias de un documento no se encontrará ninguna referencia a los archivos que contienen las entidades.

  •  Las entidades se organizan en una estructura lógica de manera jerarquizada, en la que se definen conceptos como capítulos, tablas y párrafos y que configuran lo que se denomina estructura de los elementos del documento.

  •  Elementos y entidades pueden coincidir: un elemento lógico como tabla puede ser también una entidad en un archivo hoja de cálculo.

Un documento SGML se marca de tal modo que no dice nada respecto a su representación en la pantalla o en papel. Un programa de presentación (filtro) debe unir el documento marcado con un esquema de estilo, a fin de producir una representación impresa en la pantalla o en papel del contenido del documento. Con SGML se pueden definir varias características que dependan de las necesidades de cada documento:

SGML es un estándar internacionalmente aceptado que soporta diferentes tipos de contenido, así como la estructuración lógica del documento. Como su propio nombre indica, constituye un lenguaje y una notación para la descripción de clases de documentos. Un documento codificado según este estándar se estructura en una serie de elementos (párrafos, subsecciones, apéndices, figuras, etc.) delimitados con "strings"o cadenas de caracteres comúnmente llamados "tags" o marcas.

Un documento SGML se compone de tres partes o archivos: 

  •  Declaración SGML 
  •  Declaración de tipo de documento (DTD) 
  •  Instancia de Documento 

La declaración SGML caracteriza la DTD y, por tanto, las instancias de documento (que incluyen el contenido propiamente dicho) que se generen a partir de ella, en términos de conjunto de caracteres usados y otros puntos opcionales de SGML. Esta declaración puede ser omitida, en cuyo caso se asumen unos grupos de caracteres por defecto y ninguna característica opcional.

Una clase de documentos tiene en común una gramática que define el marcado permitido en esa clase, el marcado requerido, y cómo debe ser utilizado dicho marcado en la instancia de documento. El estándar define esta gramática mediante la DTD. SGML no especifica ningún conjunto particular de elementos; el conjunto de elementos que pueden utilizarse se define en la DTD. También existe la posibilidad de hacer referencia a una DTD pública, mezclar definiciones originales con la DTD pública o generar una DTD original. La DTD es necesaria. 

La instancia de documento lleva, pues, el contenido estructurado según el marco definido en la DTD y con las características fijadas por la declaración SGML. Sin embargo, SGML presenta un inconveniente importante: no permite incorporar información de apariencia (layout) del documento. Para solventar esta carencia ha sido desarrollado otro estándar, el Document Style and Semantics Specification Language (DSSSL).

Veamos con más detenimiento las 3 partes de que consta un documento SGML.

La declaración SGML

La declaración SGML dice al usuario qué puede y qué no puede estar contenido en el documento SGML, qué caracteres serán usados, qué características específicas de SGML serán implementadas, y qué sintaxis se utilizará en el documento. Se trata de un diagrama formal y normalizado que le indica al sistema receptor el conjunto de caracteres, los delimitadores y las características opcionales de SGML que se están utilizando. La declaración SGML y la DTD trabajan de forma conjunta. Si la declaración SGML dice que una función en particular no podrá ser usada, la DTD debe respetarlo, de otra manera existirán errores en el documento. La declaración SGML puede ser parte de la Muestra de Documento. La declaración SGML es necesaria para cada documento SGML que se transmite y también puede utilizarse desde cualquier ubicación considerada no local. A través de la declaración SGML se identifican de manera inmediata los parámetros para la marca generalizada contenida en la DTD. Sin embargo, la declaración SGML suele omitirse cuando tanto el sistema emisor como el receptor utilizan la sintaxis por defecto o una sintaxis de referencia concreta.

La DTD

En la DTD (Document Type Definition o Definición del Tipo de Documento) se identifica la estructura del documento, esto es, aquellos elementos que son necesarios en la elaboración de un documento o un grupo de documentos estructurados de manera similar. Contiene las reglas de dichos elementos: el nombre, su significado, dónde pueden ser utilizados y qué pueden contener. Si la DTD se almacena en un archivo separado (con la extensión .dtd), éste se puede referenciar sin residir dentro del documento SGML, porque es corriente que se sustituya la DTD completa por una línea que indique que la DTD se edita como un texto público o se encuentra ya disponible en el sistema receptor. Sin la DTD ( o una referencia a él), el documento SGML no será validado apropiadamente por el "parser". El parser es una herramienta que asegura la adecuada conformación de SGML dentro de las múltiples especificaciones que un documento SGML puede tener. Un documento no será validado por el parser si no cumple con las especificaciones de la DTD, por ejemplo, si carece de título, ya que éste es un elemento obligatorio.

Las definiciones de los elementos -denominadas formalmente "declaraciones de elementos"- tienen dos funciones: por un lado, dar un nombre formal a las etiquetas y, por otro, describir lo que cada elemento puede contener -el denominado "modelo de contenido"-. El nombre formal aparecerá dentro de los delimitadores, por ejemplo: <capitulo> que será el nombre formal con el que nos refiramos a un capítulo.

He aquí un ejemplo de definición de la DTD:

<!ELEMENT DOCUMENTO - - (titulo, contenido, autor?) >

<!ELEMENT CONTENIDO - - (capitulo+) >

<!ELEMENT CAPITULO - (subtitulo, parrafo?)

Lo que está situado dentro de los paréntesis especifica qué puede o debe contener el elemento y es llamado el contenido del modelo. Es obligatorio que haya un título y un contenido, pero es opcional que tenga autor. Dentro de CONTENIDO puede haber uno o más capítulos, que a su vez también es otro elemento que contiene subtítulo y párrafos. En este ejemplo puede verse claramente que existe una estructura organizada y jerárquica.

En la definición del tipo de documento o DTD (Document Type Definition) se utilizan los comandos ELEMENT, ENTITY y ATTLIST. El comando ELEMENT sirve, a su vez, para definir una etiqueta. Con el comando ENTITY se pueden indicar ciertos elementos del texto en forma de sucesiones de caracteres ASCII y también utilizar dentro del texto los caracteres reservados para la sintaxis de SGML, como los signos 'menor que' o 'mayor que'. El comando ATTLIST permite establecer atributos complementarios para determinados elementos concretos. Todos los atributos pertenecientes a un elemento se resumen aquí en una sola lista en la que se establecen los nombres de los atributos, así como los valores autorizados de cada atributo. 

Otro concepto importante dentro del SGML y del DTD es el de secciones marcadas. Una sección marcada se inicia con la secuencia de caracteres "". Las claves para la especificación de las secciones marcadas son INCLUDE, IGNORE, CDATA, RCDATA o TEMP. 

Otros comandos importantes son USEMAP y SHORTREF, que sirven para establecer abreviaturas y el comando NOTATION, que sirve para fijar anotaciones en la llamada hoja de estilo. Y por último el comando DOCTYPE que sirve para incluir un DTD o para llamar a un archivo con la extensión .dtd que lo contiene.

Escribir la DTD es una tarea compleja ya que hay que analizar los documentos, pero también tener se deben tener en cuenta los posibles cambios y requerimientos futuros: revisiones, borrado de los documentos, etc.  Además, las etiquetas definidas en la DTD servirán para que editores, motores de búsqueda y visualizadores interpreten los documentos SGML.

Los documentos no tienen una estructura generalizada, es decir, cada texto tiene una estructura diferente (por ejemplo, la estructura de un texto en prosa tiene una estructura muy diferente a la de un poema o a la de un artículo científico e, incluso, existen variaciones entre los documentos del mismo tipo, por tanto, hay que analizar y definir bien la estructura de los documentos para poder jerarquizar y seccionar adecuadamente las partes que contendrá la DTD.

El documento contendrá, pues, un subconjunto de la declaración del tipo de documento o conjunto formal de declaraciones de elementos, atributos y entidades que le indican a un sistema exactamente el tipo de etiquetado que se utiliza en dicho documento.

Muestra de Documento

La Muestra de Documento contiene el marcado o etiquetado y el contenido del texto, es decir, contiene el documento en sí que incluye tanto el texto como el marcado. El contenido del documento tiene objetos SGML que siguen la estructura del árbol definido en la DTD. Los objetos SGML son principalmente dos: elementos (insertados como etiquetas y sus atributos locales); y entidades (para caracteres especiales, texto almacenado y archivos externos).

El siguiente ejemplo es una pequeña muestra de cómo se hace el marcado de un texto:

<titulo>HIPERTEXTO</titulo>

<autor> MARIA JESUS LAMARCA </autor>

<contenido>

  <capitulo>

    <subtitulo><EL NUEVO CONCEPTO DE DOCUMENTO EN LA CULTURA DE LA IMAGEN</subtitulo>

    <parrafo> Doctorado: Fundamentos, Metodología y Aplicaciones de las Tecnologías Documentales y Procesamiento de la Información. </parrafo>

  </capitulo>

</contenido>

Intuitivamente podemos distinguir las etiquetas del contenido. Las etiquetas se distinguen del resto del texto porque están delimitadas por los caracteres < > para abrir y por </ > para cerrar. Claramente observamos que sólo se divide un documento en partes y no se dice cómo debe diseñarse cada una de esas partes. Para este efecto debe hacerse un filtro, u hoja de estilo, un programa que traducirá las etiquetas SGML en cualquiera de las aplicaciones con las cuales es compatible.

Los delimitadores o etiquetas de inicio y final permiten que el software reconozca qué caracteres deben leerse en modo etiqueta y cuáles en modo contenido. Los caracteres básicos utilizados en el lenguaje SGML vienen descritos en la ISO 8879. Además, de los caracteres < > con el nombre de un elemento en su interior), si encontramos el signo & seguido por un nombre, y éste a su vez seguido de un punto y coma, sabremos que se están representando entidades tales como imágenes gráficas o caracteres especiales.

El lenguaje SGML ha logrado simplificar estos 3 pasos descritos anteriormente para construir un documento SGML sin que tenga que intervenir el usuario pues, en este sistema, cada componente establece los valores y parámetros para el siguiente componente. El único etiquetado que aparece ha sido declarado en la DTD y la sintaxis de la DTD se ha indicado mediante la declaración SGML definida por el estándar. La ventaja de esta secuenciación de indicaciones es que los ordenadores pueden seguirla para comprobar si los documentos se adaptan a las reglas establecidas. SGML, a pesar de ser un lenguaje incomprensible para los seres humanos, es un lenguaje informático muy preciso ya que un programa llamado parser puede leer la declaración SGML y aprender sus reglas. A continuación, lee la DTD y aprende las reglas del marcado y etiquetado y, finalmente, determina si la muestra de documento cumple dichas reglas.

El procesamiento de un documento SGML se realiza, pues, de forma automática. La máquina es quien valida el documento puesto que el parser lee el documento SGML y separa los datos del etiquetado. Por ejemplo, si el parser detecta que el etiquetado ha sido minimizado, lo expande. O, si por ejemplo, el contenido incluye una referencia a una hoja de cálculo o a un gráfico, dará las instrucciones al sistema para encontrar dichas entidades y que aparezca la imagen de dicho gráfico. Si el contenido incluye alguna instrucción especial para el sistema de edición en su propio lenguaje interno (llamada en SGML instrucción de procesamiento), ésta pasará directamente a la aplicación. O, si por ejemplo, se utiliza el componente de sección marcada y se ha indicado que algunas partes de su documento no han de aparecer en la versión editada, el parser sabrá que no tiene que enviarlas, al igual que si se utiliza el componente de declaración de comentarios para enviar y recibir una nota o un mensaje entre autor y editor, el "parser" sabrá que no ha de enviarlo a la aplicación receptora.

Así, pues, SGML es un lenguaje muy potente y flexible para construir aplicaciones e intercambiarlas de forma independiente. SGML ofrece un enfoque lógico en el tratamiento de la información, basado en la estructura, los objetos y los atributos, y va más lejos que las interfaces para índices, plantillas y hojas de estilo que se suelen utilizar en otros lenguajes.

El estándar SGML, además de dar origen a otros lenguajes tan conocidos como HTML, ha servido de punto de partida para otros muchos subconjuntos de lenguajes como el Extensible Markup Language (XML), publicado como una Recomendación del W3C en 1998. Dependiendo de las perspectivas y requerimientos, las diferencias entre SGML y XML son nimias o inmensas. SGML es más flexible y más poderoso que XML, pero más complejo. Ambos, SGML y XML, son metalenguajes porque se usan para definir lenguajes de marcas. Un lenguaje de definición de marcas que usa SGML o XML tiene un vocabulario específico (etiquetas para elementos y atributos) y una sintaxis declarativa (gramática que define la jerarquía y otras características).

Cada lenguaje tiene sus propias característica, por ejemplo, HTML representa estructura y diseño; XML permite definir etiquetas propias y representa la estructura definida en la DTD, permite validar el documento XML, que se concreta en MathML (para fórmulas matemáticas), XSL (para hojas de estilo en XML), SMIL (para documentos multimedia), WML (para tecnología WAP), XTM ( para Topic Maps), etc. RDF  sirve para la descripción de recursos, XHTML es una reformulación de HTML como aplicación XML, etc.

 


Bibliografía:

CLARK's, James. Comparison of SGML and XML http://www.w3.org/TR/NOTE-sgml-xml.html

Cover Pages. SGML: General Introductions and Overviews. http://xml.coverpages.org/general.html

Cover Pages. Standard Generalized Markup Language (SGML). http://xml.coverpages.org/sgml.html

Cover Pages. SGML/XML Special Topics. http://xml.coverpages.org/topics.html

FAUSEY, John. All my data is in SGML, Now what?. Journal of the American Society for Information Science, 1997, vol. 7, nº 48.

GAYNOR, Edward. From MARC to Markup: SGML and Online Library Systemas. Charlottesville, University of Virginia Library, Special Collections. http://xml.coverpages.org/gaynorMARC96.html

MÉNDEZ RODRÍGUEZ, Eva. Metadatos y recuperación de información: Estándares, problemas y aplicabilidad en bibliotecas digitales. Gijón, Trea, 2002.

ISO 8879:1996 Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML) http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=16387

 


 

 Título: Hipertexto, el nuevo concepto de documento en la cultura de la imagen
 Autora: María Jesús Lamarca Lapuente (currículo personal)

 Contacta

 Tesis doctoral. Universidad Complutense de Madrid

 URL: http://www.hipertexto.info

 Fecha de Actualización: 29/07/2018   

 184 páginas web. 2.627 archivos. 2.208 imágenes. Tamaño: 52.406Kb.
 34.389 enlaces (10.436 externos y 23.953 internos)
  

 

Esta obra está licenciada bajo las siguientes condiciones: 
Creative Commons License
Creative Commons Reconocimiento-NoComercial-NoDerivados-Licencia España 2.5.

 


OTRAS PÁGINAS DE LA AUTORA
 

           Blog El Cultural a la PuertaBlog El Cultural a la Puerta:
                 http://puertadetoledo.blogspot.com/ 

                                                                                                                AGETECA. Base de Datos de Gestión Cultural
                                                                                                                 Ageteca. Base de Datos de Gestión Cultural:
      
                                                                                                    http://www.agetec.org/ageteca


Fundación Ricardo Lamarca, ajedrez y cultura

Fundación Ricardo Lamarca, Ajedrez y cultura (en constitución) http://www.fundacionlamarca.es

 

 

La artesa digital

Blog La artes@ digital
http://artesadigital.blogspot.com

Blog La artesa digital Flickr La artes@ digital:
Galería de fotos mundo
 digital y mundo analógico: http://www.flickr.com/photos/artesadigital/

 

Proyecto Museo del Ajedrez - Casa de Campo
https://museodelajedrez.es Museo del ajedrez

 

 

Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores