Capítulo 4. SGML - ISO8879

Índice
4.1. Documentos SGML
4.2. Arquitectura de um sistema SGML
4.3. Componentes de um Documento SGML

Depois de alguma resistência, principalmente da parte da indústria de software, o SGML tem-se vindo a impôr gradualmente a nível mundial. Os seus primeiros clientes residem na indústria que produz mais documentação sobre os produtos que fabrica: a aeronáutica (manuais de construção, manutenção e utilização), a farmacêutica, maquinaria pesada, etc. A seguir vieram as bibliotecas digitais que, despolatadas por um projecto piloto na universidade americana Virginia Tech, existem um pouco por todo o mundo.

Hoje, o SGML, é uma realidade, no meio académico, na indústria e no sector terciário. A maioria das empresas já estudou ou está a estudar os custos de uma migração para esta tecnologia.

Neste capítulo serão realizadas várias travessias, em diferentes perspectivas, do SGML, tentando dar uma ideia dos níveis de complexidade e de utilização possíveis para a norma.

Assim, discutir-se-á o que são documentos SGML em geral (Secção 4.1), quais as entidades de informação que interagem num sistema SGML (Secção 4.2) e por fim, quais os componentes do SGML e qual a utiliadade de cada um deles (Secção 4.3).

4.1. Documentos SGML

No âmbito da anotação genérica, ou descritiva, o termo documento não refere uma entidade física, como um ficheiro ou um conjunto de folhas impressas. Um documento é visto como uma estrutura lógica encarada como uma hierarquia, identificando-se um elemento especial como a raiz de uma árvore de componentes que constituem o conteúdo do documento. Por exemplo, livro pode ser a raiz de um documento que conterá elementos do tipo capítulo que, por sua vez, podem conter elementos do tipo parágrafo ou imagem.

Os elementos distinguem-se uns dos outros por informação extra -- anotações ou marcas -- que é adicionada ao conteúdo do documento. Assim, um documento contém dois tipos de informação: dados e anotações.


Exemplo 4-1. Documento anotado em SGML

<PARAG>O <toponimico valor='PRÚSSIA, Rei da'>rei
da Prussia</toponimico> andava no exercito. 
Em hua aldeia sentio quatro tiros; hum lhe matou o 
cavallo. 
Hum guarda julgando o rei morto hia a vingar-se da 
atrocidade. O rei clamou: --- Estou vivo sem ferida,
não haja efusão de sangue. Recolheo-se a 
<toponimico valor='VERDUN, Praça de'>Praça de Verdun
</toponimico> e ahi ficou sitiado pelos franceses. 
Mas quem não poderia aqui fazer reflexoens?  A 
<toponimico valor="PRÚSSIA">Prussia</toponimico> 
queria isto, elle não fazia o negocio deveras.</PARAG>
<PARAG>Entretanto chusmas de franceses expatriados 
se recolhião a Inglaterra. 
Aqui se abrirão consignaçoens para remedio destes 
miseraveis e nem a diferença de religião nem a politica
impedio a generosidade anglicana a esta demonstração de 
piedade christã. Alguns ministros protestantes se 
mostrarão os mais zelosos na caridade. A causa dos 
miseraveis era tocante.</PARAG>

Excerto do livro "Memórias de Inácio Peixoto dos Santos".

Como se pode observar, o texto tem os parágrafos devidamente anotados (marca <PARAG>) e em cada um deles os nomes próprios relativos a pessoas e lugares estão marcados respectivamente com as anotações <toponimico> e <antroponimico>.


Figura 4-1. Estrutura do texto anotado

O exemplo apresentado apenas mostra um extracto de uma das partes que constituem um documento SGML. Um documento SGML é composto por três partes distintas:

Prólogo ("SGML declaration")

O prólogo [Omn98b] é utilizado para declarações iniciais que vão permitir distinguir as anotações do texto: quais os caracteres delimitadores das marcas; qual o tamanho máximo dos seus identificadores; ...

Normalmente, sempre que não for desenvolvido um Prólogo próprio, novo, é assumido um por omissão -- o prólogo que se encontra especificado na norma (hoje em dia, insuficiente para a maior parte das aplicações).

DTD ("Document Type Declaration")

O DTD é um conjunto de declarações, escritas na metalinguagem SGML, que no seu conjunto especificam um tipo de documento.

Dois documentos com estrutura diferente (carta, memo, livro, ...), dizem-se de tipos diferentes, ou pertencentes a diferentes classes e terão, por isso, DTDs distintos.

Um DTD:

  • Define qual a estrutura de um documento.

  • Especifica quais as anotações/marcas disponíveis para anotar cada um dos elementos constituintes dos documentos deste tipo.

  • Para cada elemento, especifica quais os atributos que lhe estão associados, qual o seu domínio e quais os seus valores por omissão.

  • Para cada elemento, define a estrutura do seu conteúdo: que subelementos tem; em que ordem; onde é que pode aparecer texto normal; onde é que podem aparecer dados que não sejam texto.

Texto Anotado (Instância)

A terceira parte é o documento propriamente dito. Contém a informação (o conteúdo textual), as anotações e uma referência ao DTD se este não estiver presente no documento. Um DTD pode ser externo aos documentos, i.e., os documentos concretos (instâncias) podem apenas ter uma referência para o seu DTD que é armazenado noutro ficheiro.

O SGML, com os DTDs veio criar um novo conceito: o de documento válido. Um documento é válido se a sua estrutura respeitar as regras especificadas no DTD de que ele se diz uma instância.

Antes de se pormenorizar mais o SGML (ver Secção 4.3), vai-se contextualizar esta tecnologia (Secção 4.2).