Anotação Estrutural de Documentos e sua Semântica

Especificação da Sintaxe, Semântica e Estilo para Documentos

José Carlos Leite Ramalho

Departamento de Informática - Escola de Engenharia - Universidade do Minho

Supervisão: Pedro Rangel Henriques

Este documento descreve o trabalho realizado no âmbito da tese de doutoramento do autor.

O trabalho teve duas grandes linhas orientadoras. A estruturação de documentos, como a maneira de os tornar mais "ricos" e mais "vivos". E, a semântica dos documentos, desde a aparência visual até à interpretação (significado) do seu conteúdo. No fim, estas duas linhas acabaram por convergir na elaboração de um novo modelo de processamento documental.

Ao longo da dissertação, irá ser apresentada uma comparação de modelos de processamento documental, ou publicação electrónica; referir-se-á o processamento dos documentos normais, que são apenas textos, e dos documentos anotados, que têm uma estrutura lógica e um conteúdo. Esta análise será ilustrada com alguns casos práticos que se desenvolveram ao longo deste trabalho.

As vantagens dos documentos estruturados serão apresentadas e os passos para a implementação de um sistema de produção de documentos estruturados serão descritos.

A seguir, apresentar-se-á o conjunto de necessidades e requisitos actuais que se podem colocar a um sistema destes e analisar-se-á aquilo que se designou por "semântica dos documentos". As necessidades identificadas estão relacionadas com o problema da qualidade de conteúdos na publicação electrónica. A qualidade em publicações electrónicas pode ser analisada segundo vários parâmetros, desde o aspecto visual, o linguístico e literário, à correcção da informação (significado, semântica). A tecnologia existente permite de alguma forma automatizar e normalizar todos estes aspectos, excepto o último. Foi no desenvolvimento de uma solução para este problema que se centrou esta dissertação: como adicionar semântica estática (condições contextuais ou invariantes) aos documentos e como processar esta semântica estática de um modo integrado com a tecnologia existente.

São apresentadas duas vias para a solução da especificação e processamento da semântica estática, a primeira segue uma aproximação via modelos abstractos, a outra, uma aproximação via gramáticas de atributos.

No fim, uma das soluções será escolhida e integrada num sistema (S4) que sugere um novo modelo de processamento para documentos estruturados e que explora alguns paradigmas novos neste contexto (adoptam-se para os documentos metodologias utilizadas nas linguagens de programação como consequência de uma hipótese levantada pelo autor, da existência de um paralelismo entre o processamento de documentos e o processamento das linguagens de programação), que vão desde a análise da informação até ao seu tratamento.

A dissertação inclui a apresentação dos passos seguidos na produção do seu próprio texto, uma vez que se adoptaram as soluções defendidas e nela apresentadas.

Este documento foi submetido, pelo autor, à Escola de Engenharia da Universidade do Minho para obtenção do grau de Doutor. Os direitos de cópia do documento encontram-se reservados, portanto, à instituição e autor do mesmo.


Dedicatória

À minha família, a Carmen, o David e o pequeno Leonardo, que toleraram as minhas ausências e a minha obsessão durante um largo período de tempo.

Índice
Agradecimentos
1. Introdução
1.1. A Tese
1.2. Estrutura da Dissertação
2. Notações e Formalismos utilizados
2.1. Gramáticas de Atributos
2.1.1. Cálculo de Atributos
2.1.2. Synthesizer Generator (SGen)
2.2. CAMILA: uma pequena introdução
3. Documentação Estruturada
3.1. Anotação
3.1.1. Anotação Procedimental
3.1.2. Anotação Descritiva
3.1.3. Linguagens de Anotação
3.1.4. Formatação e/ou Estrutura?
3.2. Documentos e Linguagens de Anotação
3.2.1. Evolução
3.2.2. O Sentido Ecuménico do HTML
4. SGML - ISO8879
4.1. Documentos SGML
4.2. Arquitectura de um sistema SGML
4.2.1. Textos SGML
4.2.2. Um ou mais DTDs
4.2.3. Um parser
4.2.4. Um sistema de processamento
4.3. Componentes de um Documento SGML
4.3.1. Prólogo
4.3.2. DTD
4.3.3. Instância
5. O Ciclo de Desenvolvimento dos Documentos SGML
5.1. Análise Documental
5.1.1. Determinação da área de aplicação
5.1.2. Definição de uma estratégia para o DTD
5.1.3. Identificação dos utilizadores
5.1.4. O nome do DTD
5.1.5. Os elementos lógicos do DTD
5.1.6. Elemento ou atributo?
5.1.7. Determinação da estrutura hierárquica
5.1.8. Diagramas de Estrutura
5.2. Edição de Documentos SGML
5.3. Validação
5.4. Formatação e Transformação
5.5. Armazenamento
6. Documentos e Semântica
6.1. Documentos e Programas
6.2. Semântica Dinâmica: o DSSSL
6.2.1. Componentes funcionais de especificação
6.2.2. Modelo Conceptual
6.2.3. Linguagem de Transformação
6.2.4. O Processo de Transformação
6.2.5. Linguagem de Estilo
6.2.6. O Processo de Formatação
6.2.7. Algumas especificações exemplo
7. Validação Semântica em Documentos SGML
7.1. Semântica Estática
7.1.1. Qual é o problema?
7.1.2. Restrições e condições de contexto
8. Validação Semântica com Modelos Abstractos
8.1. Modelos Abstractos: porquê?
8.2. Linguagem de Restrições
8.3. Associação de Restrições aos Elementos
8.4. Processamento das Restrições
8.4.1. Implementação
9. Validação Semântica com Gramáticas de Atributos
9.1. Aproximação via gramáticas de atributos
9.2. S4: desenvolvimento integrado de documentos
9.2.1. Arquitectura do sistema S4
9.2.2. Editor de DTDs
9.2.3. Editor de Estilo
9.2.4. Editor Específico
9.2.5. Linguagem de Restrições
9.2.6. Estado actual do S4
10. Conclusão
10.1. Trabalho Futuro
A. Como foi produzida esta tese
A.1. O DTD
A.2. O Editor
A.3. O Formatador
A.4. A organização da tese em módulos
A.5. Resultados gerados
B. Projectos desenvolvidos
B.1. Publicação Electrónica
B.1.1. Publicação na Internet das "Memórias Particulares de Inácio José Peixoto"
B.1.2. Publicação na Internet do "Index das Gavetas do Cabido da Sé de Braga"
B.1.3. Publicação na Internet do Livro "Ensaio Sobre as Minas de Joze Anastacio da Cunha"
B.2. Recuperação de edições esgotadas
B.2.1. Recuperação do livro "Índice da gaveta das Cartas"
B.2.2. Recuperação do livro "Inventário da gaveta das Visitas e Devassas"
B.3. Outros Projectos
C. Conversão de DTDs para Gramáticas
C.1. Regras gerais
C.1.1. Elemento genérico
C.1.2. Elemento sem atributos
C.1.3. Elemento com conteúdo #PCDATA
C.1.4. Elemento definido como um grupo - ()
C.2. Conversão de declarações de elementos
C.2.1. Elemento com estrutura singular
C.2.2. Operador de ocorrência zerone
C.2.3. Operador de ocorrência zeron
C.2.4. Operador de ocorrência onen
C.2.5. Operador de conexão seq (sequência)
C.2.6. Operador de conexão or (alternativa)
C.3. Regras para os atributos
C.3.1. Elemento com atributos
C.3.2. Atributo do tipo enumerado
C.3.3. Atributo do tipo CDATA
C.3.4. Atributo do tipo NUMERICAL
C.3.5. Atributo do tipo ID
C.3.6. Atributo do tipo IDREF
C.3.7. Atributo do tipo ENTITY
C.3.8. Atributo definido com o valor #IMPLIED
C.3.9. Atributo definido com o valor #REQUIRED
C.3.10. Atributo definido com o valor #FIXED
C.3.11. Atributo definido com o valor #CURRENT
C.4. Regras de conversão para entidades
C.4.1. Entidades
C.5. Uma conversão passo a passo
D. Futuras normas relacionadas com SGML
D.1. Extensible Markup Language (XML) 1.0
D.1.1. O Passado
D.1.2. Porquê XML?
D.1.3. XML: características
D.2. Document Object Model (DOM)
D.3. CSS e XSL
D.3.1. Cascading Style Sheets (CSS)
D.3.2. Extensible Stylesheet Language (XSL)
D.4. Extensible Linking Language (XLL) e Extended Pointers (XPointer)
D.5. NameSpaces in XML (XML Namespace)
D.6. Vector Markup Language
D.7. Simplified Markup Language - SML
Bibliografia
Lista de Tabelas
2-1. Tipos Abstractos de Dados e CAMILA
2-2. Funções Finitas: X → Y
2-3. Sequências: X-seq
4-1. Tipos de Atributo
4-2. Valores por omissão
6-1. Documentos e Programas
8-1. Esquema de Tradução SGML ↔ CAMILA
9-1. Esquema de Tradução SGML ↔ Gramáticas de Atributos
C-1. Valores por omissão de Atributos
D-1. Domínios de acção
D-2. CSS versus XSL
Lista de Figuras
4-1. Estrutura do texto anotado
4-2. Arquitectura de um sistema SGML
4-3. Estrutura Física de um documento
4-4. Os vários tipos de entidades
5-1. Ciclo de desenvolvimento dos documentos SGML
5-2. Estrutura hierárquica do memo
5-3. Travessia da árvore
5-4. Um elemento
5-5. Sequência
5-6. Alternativa
5-7. Qualquer ordem
5-8. Uma ou mais vezes
5-9. Opcional
5-10. Zero ou mais vezes
5-11. Elemento terminal
5-12. Diagrama de Estrutura do elemento MEMO
5-13. Diagrama de Estrutura do elemento PARA
5-14. Diagrama de Estrutura do elemento DE
5-15. Diagrama de Estrutura do elemento CORPO
5-16. Diagrama de Estrutura do elemento P
5-17. Diagrama de Estrutura do elemento C
5-18. ELM-tree do Memo
5-19. Documentos Estruturados numa BDR
5-20. Estrutura funcional de um sistema de query para uma BDR documental
6-1. DSSSL - modelo conceptual
6-2. DSSSL - processo de transformação
6-3. DSSSL - processo de formatação
7-1. Edição baseada em SGML
8-1. Novo Modelo para Processamento de Documentos SGML
8-2. O Novo Componente de Validação -- CAMILA
9-1. S4 - os conceitos
9-2. S4 - Ambiente para Programação de Documentos
9-3. S4 - Blocos principais
9-4. Arquitectura funcional de um editor estruturado
9-5. Editor de DTDs
9-6. Máquina Abstracta
9-7. Editor Específico
Lista de Exemplos
2-1. Uma gramática de atributos para tratamento de datas
2-2. Especificação do modelo Stack
3-1. Uma carta anotada
3-2. Texto anotado em TeX
3-3. Texto anotado de uma carta
3-4. Anotação orientada ao formato
3-5. Anotação orientada à estrutura
3-6. Anotação orientada ao conteúdo
4-1. Documento anotado em SGML
4-2. Um Prólogo SGML
4-3. DTD para uma carta
4-4. Inclusão
4-5. Exclusão
4-6. Atributos - tipos e valores
4-7. Declaração de uma entidade geral
4-8. Referência a uma entidade geral
4-9. Entidades gerais utilizadas na escrita da tese
4-10. Referência a uma entidade carácter
4-11. Declaração de uma entidade externa
4-12. Identificadores públicos e o Catálogo
4-13. Referência a uma entidade externa
4-14. Entidades externas e escrita modular de documentos
4-15. Entidades paramétricas
4-16. Entidades com o mesmo nome
4-17. Instrução de Processamento
4-18. Instância de CARTA
5-1. A Inexistência de uma estrutura única
5-2. Memo (SGML)
5-3. Elemento ou Atributo?
5-4. DTD correpondente aos DEs do Memo
5-5. Memo em formato ESIS
6-1. Grove - estrutura para manipulação de documentos SGML
6-2. A Transformação identidade
6-3. Regra associada ao documento
6-4. Regra associada a todos os elementos no documento original
6-5. Regra associada a uma classe de elementos
6-6. Regra associada a um elemento específico identificado por um atributo do tipo ID
6-7. Regra associada a uma 'query'
6-8. Especificação de Estilo básica
6-9. Adicionando margens
6-10. Formatando os títulos
6-11. Adicionando variáveis para facilitar a manutenção
6-12. Utilizando mais de uma passagem sobre o documento
7-1. SGML com restrições
7-2. Normalização via adição de um atributo
7-3. Atributos "#FIXED"
7-4. Uma árvore binária
8-1. Literate Programming
8-2. Reis e Decretos
8-3. Restrições como comentários
8-4. Restrições num ficheiro externo
8-5. Restrições numa entidade externa
8-6. Dum DTD para CAMILA
9-1. GIC derivada do DTD de Literate Programming
9-2. Um sistema noticioso automático
9-3. Query simples
9-4. Query mais complexa
9-5. Selecção de contextos
9-6. Selecção com "*"
9-7. Selecção com atributos
9-8. Sub-query
9-9. Operadores booleanos
9-10. Equivalência
9-11. Construção de um atributo do tipo Grove
C-1. Elemento Titulo sem atributos
C-2. Elemento com conteúdo #PCDATA
C-3. Operador de conexão seq
C-4. Elemento News com atributos
C-5. Atributo do tipo enumerado
C-6. Uma conversão: DTD → GA
D-1. Um documento bem estruturado
D-2. Um documento válido
D-3. Especificação de estilo para um elemento
D-4. Documento XML
D-5. curso.css
D-6. Esqueleto de uma folha de estilo XSL
D-7. Regra de construção
D-8. XPointer
D-9. XML NameSpaces