A utilização das informações contidas em documentos possuem dois problemas fundamentais. O primeiro deles é que a informação não é estruturada a fim de permitir acesso de maneira simples por diferentes aplicações. O outro problema é que os documentos são armazenados em formatos proprietários, o que significa que eles não são de fácil reuso. Desta forma, os sistemas de informação que manipulam documentos, nas suas mais variadas formas, convivem com os seguintes tipos de dificuldades:
Na área de pesquisa de modelagem de documentos há uma grande variedade de técnicas que visam construir um modelo de definição e apresentação, bem como permitir busca de informações armazenadas em documentos [BRO 89, GAL 89, KEE 95, LIM 90], oferecendo métodos de pesquisa que extraem informações de documentos ou gráficos que são partes de documentos. O modelo que melhor representa as características encontradas em um sistema de produção de documentos é o modelo de hiperdocumentos. Neste modelo, novos pedaços de informação podem ser a qualquer momento introduzidos por diferentes usuários em uma estrutura principal. A partir desta estrutura é possível alcançar as novas informações como se fossem nodos de um grafo. As ligações entre a estrutura base e os nodos – que podem ser armazenados no mesmo local da estrutura base ou em locais distribuídos – possibilitam a navegação por todo o hiperdocumento [WUE 96].
Um modelo de documentos estruturados deve possuir características principais: estrutura, conteúdo e apresentação. A estrutura é a forma pela qual os componentes do documento são organizados ao longo da espinha dorsal básica. Essa organização se dá de acordo com as regras de seqüência e ordenação dos componentes no documento. Por exemplo, um documento "Carta" possui uma seqüência pré-definida e estabelecida por nós, ela é formada pelo nome do destinatário, uma data, o nome do remetente, o corpo da carta e por fim uma assinatura. Esta ordem representa, de uma forma simplificada, uma idéia da estrutura do documento carta. Construções mais elaboradas sempre podem ser feitas ao redor da estrutura básica do documento sobre o documento, como por exemplo incluir o logotipo da empresa remetente ou informações adicionais, porém todas essas adições serão realizadas ao redor da mesma estrutura básica, mantendo a mesma seqüência original dos itens básicos. O modelo de dados ODA (Office Document Architecture) foi definido desta forma. ODA define um documento como sendo uma árvore formada por componentes estruturados de informação. Cada um dos componentes de documento do modelo ODA representam uma parte da informação associada ao documento, e a sua grande contribuição é a facilidade visual para identificação das partes do documento assim como a forma de composição, que pode ser seqüência, escolha ou não sei qual a outra.
No entanto, ainda não é possível representar a estrutura do documento, apenas uma instância do mesmo. Para representar a meneira pela qual o documento pode ser formado, é necessária a utilização de regras para a composição do documento que dizem, além da ordem, a maneira com que cada componente é montado na estrutura principal do documento. Existem várias maneiras de representar as regras de composição. A mais conhecida é aquela que utiliza a definição de tipos de documentos, como proposto por SGML. SGML é uma linguagem padronizada para definição e construção de estruturas de documentos. Não é possível representar em SGML uma instância específica de um documento, mas sim como ela é formada. A utilização mais comum de SGML é a definição de tipos genéricos de documentos e isto serve de entrada para a construção de softwares de visualização de documentos. A aplicação mais conhecida de SGML é a linguagem HTML, amplamente usada na Internet para exibição de dados e execução de aplicações diversas. HTML, no entanto, não possui nenhum recurso para a definição e manutenção de componentes de documento. Os documentos escritos em HTML são na verdade documentos não estruturados que contém informação de formatação visual.
Porém, os modelos de hiperdocumentos como ODA e SGML por si só não incorporam aspectos decisivos da escolha por uma técnica de modelagem e criação de documentos, como por exemplo o método de armazenamento dos documentos, as técnicas de autoria e a forma de visualização. No entanto, estas características podem ser incorporadas a um modelo de documentos a fim de enriquecer o modelo e facilitar a sua manipulação e gerenciamento.
A utilização de documentos divididos em componentes facilita também o tratamento e o manuseio da estrutura do documento como um todo, pois os componentes retratam metáforas conhecidas da utilização de documentos, como por exemplo páginas, pastas, capítulos, seções, parágrafos e outros. Em outras palavras, utilizar componentes de documentos, além de facilitar a manutenção, oferece uma correspondência mais clara entre o objeto documento eletrônicos que está sendo manipulado no computador e o objeto documento real.
A Abordagem de Gerência de Documentos do Projeto GDOC
O que é o GDOC
Qual a proposta do Projeto GDOC
Como funciona, em linhas gerais, o DMS do Projeto GDOC
Em que o GDOC pode ser útil
Comparação da Abordagem GDOC com as abordagens existentes no mercado
Vantagens da Abordagem GDOC
Os documentos gerenciados pelo sistema proposto no projeto GDOC possuem uma estrutura pré-definida por um tipo de docuemento. O tipo do documento armazena a regra de composição básica para as instâncias daquele tipo. A instância armazena apenas o conteúdo do documento.
A plataforma de banco de dados utilizada na implementação do projeto GDOC é a relacional, por motivos de compatibilidade com a maior parte das aplicações de banco de dados do mercado.
A utilização de componentes de documentos aumenta o nível de reuso dos documentos. Cada componente é armazenado independentemente na base de dados, e por isso pode ser compartilhado por diferentes documentos. A característica de reusabilidade associa uma grande facilidade de atualização dos documentos, uma vez que as modificações do componente são realizadas apenas em si, não necessitando a propagação para as suas cópias no banco de dados, como nos sistemas convencionais de gerência de documentos.
A autoria de documentos industriais, como manuais de produtos, normas técnicas e relatórios, é muito prejudicada pela insuficiência das ferramentas no tratamento de componentes de documentos. Desta forma, torna-se necessário duplicar o conteúdo de documentos em uma aplicação onde o compartilhamento de informações é muito grande. Por exemplo, a figura de uma peça que está contida no manual de fabricação, no manual do produto e no manual de características técnicas, pode ser transformada em um componente de documento e ser compartilhada pelos três manuais, evitando desta forma a necessidade de atualização em diferentes lugares e diminuindo a necessidade de redundância da base de dados, que só deve ser empregada na replicação de dados por questões de segurança.
Pelo fato de o documento GDOC possuir uma estrutura bem definida, ele é simples de ser armazenado em uma base de dados. Cada componente possui uma associação direta com uma tupla da base de dados, e isto também facilita a sua recuperação através de consultas SQL.
A estrutura hierárquica dos documentos do sistema GDOC facilita a nevegação pela árvore de estrutura na ferramenta de autoria de documentos.
A visualização dos documentos gerados pelo sistema GDOC possuem uma apresentação escrita em linguagem HTML, pois dessa forma facilita a disponibilização dos documentos através da Internet através de web browsers.
Basta ter um browser de HTML para ter a mesma visão.
Desvantagens
Aumento da Complexidade da Autoria
Justificativa para a maior parte dos sistemas de gerenciamento de documentos não usarem modelos de documentos estruturados e limitarem-se a utilização de documentos não estruturados ou fracamente estruturados.
O modelo de Dados GDOC
Neste capítulo será apresentado o modelo conceitual da base de dados do projeto GDOC, a base de dados relacional usada para armazenar documentos. A notação usada para representar o modelo conceitual é a UML (Unified Modeling Language) [RAT 97].
O modelo de dados GDOC é composto de três partes inter-relacionadas:
A figura 2 apresenta o modelo de instâncias do modelo GDOC.
Na abordagem GDOC, cada documento é representado como uma instância de uma classe Documento. Esta classe é especializada nos vários tipos primitivos de documentos do modelo GDOC, como descrito a seguir.
A noção de tipos primitivos e tipos derivados segue o conceito adotado em linguagens de programação, onde se têm um conjunto básico de tipos primitivos ou ordinários de variáveis e é possível derivar tipos complexos através da estruturação e reorganização do conjunto básico de tipos.
Exemplo: Sendo "rptAtiv" um documento de um tipo rpt, a instância rptAtiv é um documento composto formado por cinco componentes, conforme a ordem a seguir:
A estrutura lógica do documento rptAtiv pode ser representada usando uma notação hierárquica como ODA [BRO 89], como mostra a figura x.
Para ilustrar como o modelo de instâncias GDOC representa um documento com a estrutura anterior, é mostrado a seguir o conteúdo de algumas classes no modelo de instâncias. O conteúdo de uma classe é representado na forma de uma tabela. O conteúdo da classe Documento e o relacionamento Componente para o documento rptAtiv são mostrados na figura x. As colunas Id Composto e Id Componente representam as instâncias que são associadas por uma instâncias de Componente.
O exemplo ilustra os dois principais aspectos dos modelos de documentos estruturados como o GDOC: o seqüenciamento e o aninhamento. O seqüenciamento é a ordem linear de ocorrência de cada um dos elementos dentro de um documento, como ilustrado pelos elementos ordenados cabeçalho_ativ, título_ativ, corpo_ativ, elo_ativ e rodapé_ativ e representados pela coluna Seqüência. O aninhamento é o relacionamento de composição entre os componentes do documento, como mostrado pelo documento corpo_ativ, que consiste de dois outros documentos, participante_ativ e itens_ativ.
|
Documento |
|
|
Identificador |
Nome |
|
RptAtiv |
Relatório de Atividades |
|
Cabeçalho_ativ |
Cabeçalho |
|
Título_ativ |
Título |
|
Corpo_ativ |
Corpo |
|
Elo_ativ |
Elo para página de descrição |
|
Rodapé_ativ |
Rodapé |
|
Participante_ativ |
Dados do participante |
|
Itens_ativ |
Lista de Atividades |
|
Ativ_1 |
Atividade 1 |
|
Ativ_2 |
Atividade 2 |
|
Ativ_3 |
Atividade 3 |
|
Ativ_4 |
Atividade 4 |
|
Componente |
||
|
Identificador do Composto |
Identificador do Componente |
Seqüência |
|
RptAtiv |
Cabeçalho_ativ |
1 |
|
RptAtiv |
Título_ativ |
2 |
|
RptAtiv |
Corpo_ativ |
3 |
|
RptAtiv |
Elo_ativ |
4 |
|
RptAtiv |
Rodapé_ativ |
5 |
|
Corpo_ativ |
Participante_ativ |
1 |
|
Corpo_ativ |
Itens_ativ |
2 |
|
Itens_ativ |
Ativ_1 |
1 |
|
Itens_ativ |
Ativ_2 |
2 |
|
Itens_ativ |
Ativ_3 |
3 |
|
Itens_ativ |
Ativ_4 |
4 |
|
Documento |
||
|
Identificador |
Nome |
Apresentação |
|
RptAtiv |
Relatório de Atividades |
Rpt |
|
Cabeçalho_ativ |
Cabeçalho |
Fig_cab |
|
Título_ativ |
Título |
Tit_cent |
|
Corpo_ativ |
Corpo |
Nula |
|
Elo_ativ |
Elo para página de descrição |
Elo_cent |
|
Rodapé_ativ |
Rodapé |
Rdp_pad |
|
Participante_ativ |
Dados do participante |
Txt_enf |
|
Itens_ativ |
Lista de Atividades |
Lst_ord |
|
Ativ_1 |
Atividade 1 |
Itm_lst |
|
Ativ_2 |
Atividade 2 |
Itm_lst |
|
Ativ_3 |
Atividade 3 |
Itm_lst |
|
Ativ_4 |
Atividade 4 |
Itm_lst |
O Modelo de Apresentação
O modelo de apresentação compreende as classes que determinam como um documento é apresentado no browser web. A figura x mostra o modelo de apresentação GDOC e a sua relação com o modelo de instâncias.
Nas linguagens de autoria da WWW, tais como HTML, o código de apresentação aparece combinado com o conteúdo do componente dentro do mesmo documento [VER 97]. O sistema GDOC segue uma abordagem diferente. O código de apresentação é armazenado separadamente do conteúdo dos componentes. Isto permite que um componente de documento tenha diferentes apresentações, dependendo do documento composto no qual o componente aparece. O código de apresentação para cada documento é armazenado como uma instância da classe Apresentação. Cada instância desta classe contém duas strings em HTML, as chamadas pré-Script e pós-Script. O atributo pré-Script contém o código HTML que é processado antes de o conteúdo do documento ser exibido e pós-Script contém o código HTML que é processado no final da exibição do conteúdo do documento.
Como exemplo, é mostrado o texto t1 do documento d1 da figure x. Supondo que este texto deva ser apresentado de maneira realçada (enfatizada), o seu pré-Script poderia ser a marca HTML <B>, que indica início de negrito, e o pós-Script poderia ser a marca </B> (encerramento de formatação em negrito).
Um documento pode ter duas apresentações mutuamente exclusivas: a apresentação de documento e a apresentação de componente. A apresentação de documento é aplicada quando um documento é apresentado sozinho, sem fazer parte de um outro documento. Neste caso, o documento passa a ser considerado como um documento raíz e, como tal, usa a apresentação definida para documento. Por outro lado, a apresentação de componente é aplicada quando um documento aparece em um contexto, ou seja, como um componente de outro documento. É importante observar que um documento que aparece como um componente em vários documentos tem várias apresentações de componente, uma para cada documento do qual ele faz parte.
As figuras x e x mostram um exemplo dos conteúdos das classes Apresentação, Documento e Componente para o documento d1 da figura x.
As tabelas Documento e Componente são obtidas pela adição da coluna Apresentação às tabelas mostradas na figura x. Esta coluna representa o relacionamento com a classe Apresentação. No exemplo, todos os documentos têm a mesma apresentação de documento (P001, o código HTML que inicia e finaliza um documento).
Usando estas tabelas, o documento d1 pode ser gerado dinamicamente pela navegação desta base de dados. Os passos para a geração deste documento são:
O resultado da geração dinâmica do documento d1 é uma string HTML, conforme mostrado pela figura x.
As marcas da linguagem HTML são responsáveis pela formatação do documento. A justificativa de adotar HTML como a linuagem de apresentação para o sistema GDOC é que ela é facilmente portada pelos web browsers e todos reconhecem ela e HTML se tornou um padrão forte para publicação de dados na Internet a partir do advento da WWW. Cada marca possui uma função específica. A marca inicial, representada pelo nome do comando, serve para iniciar a formatação. Desta forma, todo o texto ou composição gráfica que estiver contida a partir da marca inicial herdará a formatação especificada. A formatação só é encerrada quando o interpretador de HTML do web browser encontra a marca de fim de formatação, que é definida por um símbolo "/" seguido do nome do comando. A seguir são dados alguns exemplos de marcas HTML utilizadas na formatação de textos.
|
Marcas de HTML |
|||
|
Formatação |
Marca de Início |
Marca de Fim |
Efeito |
|
Texto enfatizado |
<B> |
</B> |
AaBbCc |
|
Texto italicizado |
<I> |
</I> |
AaBbCc |
|
Texto centralizado |
<CENTER> |
</CENTER> |
AaBbCc |
|
Título de nível 1 |
<H1> |
</H1> |
AaBbCc |
|
Título de nível 6 |
<H6> |
</H6> |
AaBbCc |
|
Item de lista |
<LI> |
</LI> |
· AaBbCc |
|
Apresentação |
|||
|
Identificador |
Nome |
Pré-Script |
Pós-Script |
|
Nula |
Apresentação Nula |
Null |
Null |
|
Rpt |
Relatório |
<HTML> <BODY bgcolor=#ffffff> |
</BODY> </HTML> |
|
Tit_cent |
Título Centralizado |
<H1><CENTER> |
</CENTER></H1> |
|
Fig_cab |
Figura de Cabeçalho |
<IMG src=logo_ufrgs.gif> <BR><HR> |
Null |
|
Elo_cent |
Elo Centralizado |
<CENTER> <A href=desc.html> |
</A></CENTER> |
|
Rdp_pad |
Rodapé Padrão |
<HR><CENTER><I> |
</I></CENTER> |
|
Txt_enf |
Texto Enfatizado |
<B> |
</B> |
|
Lst_ord |
Lista Ordenada |
<OL> |
</OL> |
|
Itm_lst |
Item de Lista |
<LI> |
</LI> |
O Modelo de Esquema
Os documentos do modelo GDOC podem ser documentos tipados ou não-tipados. Documentos não-tipados são documentos de estilo livre, nos quais a estrutura lógica e a apresentação são definidas em tempo de autoria do documento.
Um documento tipado é um documento no qual as estruturas lógica e de apresentação seguem regras pré-definidas. Durante a autoria do documento, o usuário insere apenas o conteúdo do documento e dos seus componentes, mas não altera a sua estrutura nem a sua apresentação. Estas informações são armazenadas previamente no tipo do documento.
Os tipos de documento são armazenados no modelo de esquema (figura x). As instâncias das classes do modelo de esquema são os tipos de documento, ao contrário do modelo de instâncias onde as instâncias da classe Documento são os próprios documentos.
As subclasses do Tipo de Documento armazenam os tipos de documentos. Cada tipo de documento pertence a um dos tipos primitivos do modelo GDOC (texto, atributo, figura, consulta e composto).
A composição de um documento pode ser dada por seqüência (os componentes de um documento do tipo devem aparecer em uma order pré-definida) ou por alternância (apenas um de um conjunto de componentes aparece). A composição de um documento pode ser entendida através de uma expressão de gramática regular [AHO 77], que descreve a ordenação válida dos componentes do documento de um tipo. Por exemplo, a instância d1 do documento mostrado na figura x poderia pertencer a um tipo de documento "d". A estrutura lógica de cada documento pode ser dada pela expressão:
d = t p { f | af } p*
Esta expressão descreve um tipo de documento "d". Os documentos deste tipo são compostos por:
Os relacionamentos entre um composto e os seus componentes são definidos pelas classes Componente de Alternância e Componente de Seqüência. Os atributos minocc and maxocc são usados para definir o número mínimo e máximo de instâncias de componentes do tipo específico que devem aparecer no composto em uma posição relativa específica. Ambos atributos determinam as cardinalidades mínima e máxima dos componentes em cada nível do documento, e são usadas pela ferramenta de autoria para validar a inserção ou remoção de componentes da estrutura do documento.
O atributo ferramenta especifica o programa que é usado para a autoria dos documentos de um tipo específico. Este atributo pode ser dados na forma do protocolo "MIME type/MIME subtype", para indicar ao browser a chamada de uma aplicação externa via OLE que manipula o conteúdo de um componente ou, alternativamente, na forma de uma string de configuração para o JDDE (Java Dynamic Data Exchange) que executa a carga de um programa externo diretamente pelo applet através de chamadas específicas do sistema operacional.
A classe Consulta armazena consultas SQL que são usadas para acessar atributos de uma base de dados externa. Isto é útil para inserir dados de outras fontes de dados nos documentos manipulados pelo sistema GDOC.
Cada tipo de documento pode ter associada uma apresentação que é usada para exibir as instâncias daquele tipo.
O relacionamento entre o modelo de esquema e o modelo de apresentação é mostrado na figura x. Assim como no modelo de instâncias, existem dois tipos de apresentação, a apresentação de documento e a apresentação de componente. A apresentação de documento é usada quando um documento de um tipo é apresentado sozinho, na forma de um documento raíz. A apresentação de componente é usada sempre que o documento de um tipo é apresentado como um componente de outro documento. Estas apresentações são modeladas na figura x pelos relacionamentos entre as classes Tipo de Documento e Apresentação e pelos relacionamentos entre as classes Componente_T e Apresentação respectivamente.
O relacionamento Default especifica a apresentação default a ser usada quando os documentos do tipo especificado são exibidos. Cada tipo de documento tem exatamente uma apresentação default. Opcionalmente, cada tipo de documento pode ter várias apresentações alternativas (modeladas pelo relacionamento Alternativa). A apresentação alternativa pode ser escolhida pelo usuário durante o processo de autoria de um documento de um certo tipo.
Para ilustrar como o modelo de esquema representa um tipo de documento, são mostrados a seguir (figura x) os conteúdos de algumas classes do modelo de esquema. Estas classes representam o tipo de documento "d" descrito anteriormente.
Cada linha da tabela Tipo de Documento especifica um tipo de documento. A linha com id igual a "d" corresponde ao próprio tipo de documento "d". As demais linhas correspondem aos tipos de documento dos componentes de "d".
As tabelas Texto_T, Figura_T e Atributo_T contém os atributos restantes de cada tipo de documento de acordo com o seu tipo primitivo (texto, atributo ou figura).
A tabela Compoto_T tem uma entrada para cada tipo composto. Esta entrada especifica se a composição é dada na forma de seqüência ou na forma de alternância.
A tabela Componente de Seqüência especifica os tipos de componentes para cada tipo composto por seqüência. Por exemplo, a primeira entrada nesta tabela especifica que o primeiro componente (seqüência=1) de um documento do tipo "d" é um documento do tipo "t" (coluna Id Componente). Este componente aparece exatamente uma vez (colunas minOcc e maxOcc). Um outro exemplo é a quarta entrada que especifica que na quarta posição (seqüência=4) o documento contém instâncias do tipo "p". O número de instâncias deste tipo que pode aparecer varia de zero até n, como especificado pelos campos minOcc e maxOcc. A coluna Apresentação representa a apresentação default a ser usada quando o componente é exibido.
A tabela Componente de Alternância especifica os tipos de componentes para os tipos compostos por alternância. No exemplo ela indica que um documento do tipo "f_or_af" é composto por uma instância do tipo "f" ou por uma instância do tipo "af", cada uma ocorrendo exatamente uma vez.
A figura x mostra a relação entre o modelo de instâncias e o modelo de esquema. Cada instância de documento pode pertencer a um único tipo de documento. As instâncias de documento podem ser de estilo livre, ou seja, não estarem relacionadas a um um tipo de documento.
Armazenamento de documentos do sistema GDOC
Tabelas
Relacionamentos
Estudos de Casos/Exemplos de Armazenamento
O Dicionário de Dados do Modelo de Documentos GDOC
Arquitetura do Sistema GDOC
Nesta seção são apresentados os requisitos que o problema do armazenamento de documentos apresenta aos sistemas de gerenciamento de documentos. O foco é dado ao armazenamento de documentos. Os requisitos relativos a outras funções do sistema, como controle de fluxo de documentos e autorização de acesso não são discutidos aqui.
Os principais requisitos de um sistema de gerência de documentos para o campo de aplicação considerado são listados a seguir:
Documentos parcialmente estruturados e documentos não-estruturados também são manipulados. O sistema deve permitir que o usuário crie documentos que são manipulados simplesmente como uma cadeia de caracteres sem subdivisões.