4.2. Arquitectura de um sistema SGML

Figura 4-2. Arquitectura de um sistema SGML

Na Figura 4-2, faz-se uma apresentação esquemática de um sistema SGML, com as componentes de informação e de software.

O SGML está por detrás da maior parte dos componentes da arquitectura: nas anotações dos textos, na definição do DTD e na acção do parser. Normalmente, estes componentes são transparentes para o utilizador, estão inseridos no sofware com o qual o utilizador interage, como o editor, o formatador e a base de dados.

4.2.1. Textos SGML

São ficheiros que contêm textos enriquecidos com anotações definidas num DTD escrito em SGML. Hoje em dia, há editores de SGML bastante poderosos capazes de tornar as anotações invisíveis para o utilizador, validar a estrutura do texto que está a ser inserido e fornecer uma ajuda contextual na escrita desse texto.

O SGML, uma vez que é independente de plataformas de hardware e software, não especifica nenhuma directiva de comportamento dos editores. Assim, estes nascem apenas das ideias da equipa que os implementa tendo apenas uma coisa que é comum a todos: para se ser um editor SGML tem que se poder importar qualquer texto SGML e, tem que se conseguir exportar qualquer texto criado em SGML.

4.2.2. Um ou mais DTDs

Os DTDs são o elo de ligação de um sistema SGML. Não se pode utilizar SGML sem se pensar num DTD. Não se pode pensar em estruturar um documento sem antes ter pensado e definido uma estrutura para esse tipo de documento.

Um DTD deve ser pensado e definido por um especialista. Este processo deve surgir no início de qualquer projecto editorial, numa fase que se designa por Análise Documental (ver Secção 5.1), que é em tudo semelhante à fase de análise na implementação de um sistema de informação.

4.2.3. Um parser

Para assegurar que as anotações num documento estão consistentes com o DTD e sem erros, um sistema SGML tem um programa que reconhece as anotações de um documento SGML e que lhes aplica um processo de validação. Este programa tem o nome de parser.

Um documento SGML deve ser sempre submetido a um parser (passar por um processo de validação) antes de ser exportado para outra palataforma ou antes de ser processado com o objectivo da sua transformação.

Um parser verifica:

Um editor SGML inclui estas facilidades de validação estrutural e, por isso, tem sempre um parser associado. Como se poderá constatar mais à frente, não são apenas os editores que incluem um parser, mas todas as ferramentas que processam textos SGML. No entanto, a maior parte dos parsers de SGML disponíveis têm a capacidade de funcionar individualmente sem necessidade de estarem dependentes de outras ferramentas.

Existe uma grande variedade de parsers disponíveis, uns comerciais, outros simplesmente livres para quem os quiser utilizar. Curiosamente, e ao contrário de muitas outras tecnologias, são estes últimos, sem encargos comerciais, os mais utilizados, quer pela comunidade de utilizadores SGML, quer pelos produtores de software que os incluem nos editores e formatadores que desenvolvem. Assim pode-se enumerar, por ordem de evolução, alguns dos parsers mais utilizados: o ARCSGML [ARCSGML], o SGMLS [Cla96c] e por último, o SP [Cla96d].

O ARCSGML é considerado como um dos primeiros parsers a cobrir a maioria da funcionalidade descrita no sandard SGML. O SGMLS é já um parser da nova geração; resultou da reescrita do ARCSGML por James Clark que uns anos depois voltou a reescrever, desta vez o SGMLS, numa implementação orientada a objectos, o SP.

O SP deve ser o parser de SGML mais utilizado, de momento. O seu autor desenvolveu um conjunto de ferramentas que o incluem, que são livres de direitos comerciais e que são utilizadas por muitas pessoas e empresas no dia-a-dia: nsgmls, sgmlnorm, spam, spent.

4.2.4. Um sistema de processamento

Uma vez que não têm informação específica sobre a sua formatação, os documentos SGML são constituídos apenas pelo conteúdo textual e informação estrutural. Para um utilizador comum, um documento SGML acaba por ser um texto de alguma maneira codificado que ele não entende. Assim, depois de validados pelo parser, os documentos SGML têm que ser processados de modo a serem transformados numa forma mais próxima do utilizador final. A sua estrutura tem que ser traduzida para um conjunto de comandos de um processador de texto, ou de uma base de dados, conforme o objectivo final. Por exemplo, se se quiser uma versão em papel de um documento SGML, para distribuir a um conjunto de leitores, ter-se-á que converter de SGML para RTF, ou Postscript, ou PDF e usar um formatador para imprimir (no caso do RTF, o MSWord poderia ser usado para criar a versão papel).

O processamento de documentos SGML está fora dos limites da norma. No entanto, a comunidade ligada à publicação electrónica está atenta e em 1996 foi publicada uma outra norma ISO que visa normalizar o processamento de documentos SGML; esta nova norma foi designada por DSSSL ("Document Style and Semantics Specification Language") [Cla96,Mul98] e é analisada na Secção 6.2.

Apesar de ser recente, o DSSSL tem vindo a ser utilizado cada vez mais. Isto deve-se ao facto de, com este novo componente, se conseguir obter uma abordagem completamente normalizada para a produção documental, desde a criação do documento até ao resultado final.

Já existem disponíveis vários sistemas de processamento baseados em DSSSL, uns comerciais e outros livres de direitos. Mais uma vez, o mais divulgado é um sistema sem direitos comerciais, podendo ser utilizado por quem quiser, o Jade [Cla96b].

Neste momento, não há nenhum sistema que implemente uma especificação DSSSL na globalidade das suas potencialidades. O Jade representa a implementação mais conseguida, oferecendo praticamente tudo o respeitante ao processamento de estilos (as primitivas necessárias para formatar graficamente um documento) e a um ou outro detalhe semântico.

O resultado do sistema de processamento é variável, desde o documento traduzido num formato que pode ser carregado num processador de texto até uma lista de nomes colectada ao longo do documento, ou simplesmente um resumo estatístico do conteúdo do documento.