UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
BIBLIOTECA VIRTUAL ELIS II
Área de Banco de Dados
por
Fernando Miranda
Adriana Gomes Alves, MEng. Orientadora
Itajaí (SC), junho de 2009
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR
CURSO DE CIÊNCIA DA COMPUTAÇÃO
BIBLIOTECA VIRTUAL ELIS II
Área de Banco de Dados
por
Fernando Miranda Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientadora: Adriana Gomes Alves, MEng.
Itajaí (SC), junho de 2009
SUMÁRIO
LISTA DE ABREVIATURA S .................................................................v
LISTA DE FIGURAS................................................................................vi
RESUMO...................................................................................................vii ABSTRACT.................................................................................................8
1 INTRODUÇÃO........................................................................................9 1.1 PROBLEMATIZAÇÃO ................................................................................... 11 1.1.1 Formulação do Problema............................................................................... 11 1.1.2 Solução Proposta............................................................................................. 11 1.2 OBJETIVOS ...................................................................................................... 12 1.2.1 Objetivo Geral ................................................................................................. 12 1.2.2 Objetivos Específicos ...................................................................................... 12 1.3 METODOLOGIA.............................................................................................. 12 1.4 ESTRUTURA DO TRABALHO ..................................................................... 13
2 FUNDAMENTAÇÃO TEÓRICA......................................................14 2.1 ELIS II ................................................................................................................ 14 2.1.1 Descrição do Elis II ......................................................................................... 14 2.1.2 Tecnologias ...................................................................................................... 16 2.1 BIBLIOTECA VIRTUAL ................................................................................ 17 2.2 PESQUISA TEXTUAL EM BANCO DE DADOS ........................................ 18 2.2.1 Índices invertidos com contadores de posição.............................................. 19 2.2.2 Índice para a próxima palavra ...................................................................... 20 2.3 FERRAMENTAS .............................................................................................. 21 2.3.1 Ferramentas usadas no Elis II ....................................................................... 21 2.3.2 Ferramentas para desenvolvimento da biblioteca virtual .......................... 24
3 PROJETO.............................................................................................28 3.1 MODELO DO PROJETO................................................................................ 28 3.1.1 Requisitos Funcionais ..................................................................................... 28 3.1.2 Regras de Negócio ........................................................................................... 28 3.1.3 Requisitos Não-Funcionais.............................................................................29 3.1.4 Casos de Uso .................................................................................................... 29 3.1.4.1 Pacote 01 – administração Elis II ........................................................... 29 3.1.4.2 Pacote 2 - Biblioteca Virtual ................................................................... 31 3.1.5 Modelo de banco.............................................................................................. 33 3.1.6 Modelo de classes ............................................................................................ 34 3.1.7 Desenvolvimento com Oracle Text................................................................ 35 4 DESENVOLVIMENTO DA FERRAMENTA............................................... 38 4.1 BANCO DE DADOS E ORACLE TEXT ....................................................... 38
iv
4.2 DESENVOLVIMENTO PHP COM SYMFONY .......................................... 40 4.3 IMPLANTAÇÃO............................................................................................... 40 5 APRESENTAÇÃO DA BIBLIOTECA VIRTUAL ................. ...................... 43 5.1 TELAS BIBLIOTECA VIRTUAL ........................... ....................................... 43 5.2 TESTES .............................................................................................................. 47
6 CONCLUSÕES ....................................................................................52
7 REFERÊNCIAS BIBLIOGRÁFICAS...............................................54
v
LISTA DE ABREVIATURA S
API Application Programming Interface CAPES Coordenação de aperfeiçoamento de pessoal de nível superior CTTMAR Centro de Ciências Tecnológicas da Terra e do Mar DTI Departamento de Tecnologia da Informação da Univali HTML HyperText Markup HTTP Hypertext Transfer Protocol LCA Laboratório de Computação Aplicada MVC Model-View-Controller PDF Portable Document Format PHP Hypertext Preprocessor SGBD Sistema Gerenciador de Banco de Dados SQL Structured Query Language SSL Secure Sockets Layer TCC Trabalho de Conclusão de Curso UFSC Universidade Federal de Santa Catarina UNESP Universidade Estadual Paulista “Júlio de Mesquita Filho” UNIVALI Universidade do Vale do Itajaí URL Uniform Resource Locator
vi
LISTA DE FIGURAS
Figura 1. Página principal do Elis II ..................................................................................................16 Figura 2. Estrutura de um arquivo invertido ......................................................................................19 Figura 3. Índice para a próxima palavra.............................................................................................21 Figura 4. Diagrama de UC, Administração Elis II .............................................................................30 Figura 5. Biblioteca Virtual................................................................................................................31 Figura 6. Modelo de autorização........................................................................................................33 Figura 7. Modelo de Classes ..............................................................................................................35 Figura 8. Exemplo criação tabela.......................................................................................................36 Figura 9. Exemplo criação índice.......................................................................................................36 Figura 10. Exemplo busca documentos..............................................................................................37 Figura 11. Pesquisa principal. ............................................................................................................39 Figura 12. Fluxo de cadastro de eventos. ...........................................................................................42 Figura 13. Página inicial Biblioteca Virtual.......................................................................................44 Figura 14. Página de resultados da Biblioteca Virtual .......................................................................45 Figura 15. Página de detalhes da Biblioteca Virtual..........................................................................46 Figura 16. Tela inicial da biblioteca virtual. ......................................................................................48 Figura 17. Tela de listagem dos resultados da pesquisa.....................................................................49 Figura 18. Tela de detalhes da biblioteca virtual. ..............................................................................50 Figura 19. Arquivo baixado da biblioteca virtual. .............................................................................51
vii
RESUMO
MIRANDA, Fernando. Biblioteca Virtual Elis II. Itajaí, 2009. 55 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2009. Neste trabalho, foi desenvolvida uma biblioteca virtual para o sistema de eventos da Univali, o Elis II. O Elis II é um sistema de informação que possui um banco de dados de artigos técnico-científicos de ótima qualidade dos mais variados assuntos, publicados em seus eventos. Porém, o sistema carece de pesquisas avançadas e públicas de todo o seu acervo, estando atualmente restrito aos organizadores dos eventos. Visando oferecer, ao Elis II, uma ferramenta de busca e divulgação dos artigos publicados, foi desenvolvida, neste projeto, uma biblioteca virtual, cuja função principal é permitir a busca textual nos artigos que constam na base de dados do Elis II, dentre outros parâmetros a serem informados. As ferramentas usadas neste projeto são o banco de dados Oracle, a linguagem de programação PHP com o framework Symfony e o Oracle Text, que consiste na ferramenta de pesquisa textual. O banco de dados Oracle e a linguagem de programação PHP com o Symfony são as ferramentas de desenvolvimento do Elis II e, por isso foram utilizadas. Por sua vez, o Oracle Text, após análise, foi considerado a melhor opção para este trabalho. Palavras-chave: Biblioteca virtual, Oracle Text, Pesquisa textual.
ABSTRACT
This work did develop a virtual library for Univali’s events system, Elis II. Elis II is an information system with a database for top-quality scientific papers about many subjects, which were published in the events. However, the system lacks advanced and public search of its collection, to which only the events organizers have access. Seeking to provide Elis II with a tool for searching and divulging papers, this project will develop a virtual library, whose main function will be allowing textual search of those papers in the system’s database, among other parameters to be informed. The tools used in this project will be the Oracle database, the PHP programming language, and Oracle Text, which will be the textual search tool. The Oracle database and the PHP programming language are the system’s developing tools, thus, they will be used. In its turn, Oracle Text, after being analyzed, was considered the best option for this work. Keywords: Virtual library. Oracle Text. Textual search.
9
1 INTRODUÇÃO
Com o objetivo de automatizar o gerenciamento de eventos técnico/científicos organizados
pelo CTTMar/Univali, em 2002 foi iniciado o desenvolvimento de um sistema que implementou
diversas facilidades para a gestão de eventos. Com a facilidade de acesso à internet e à tecnologia
para criação de sistemas Web surgiu o Elis II, o qual atende aos requisitos necessários para o
gerenciamento e divulgação de eventos técnicos e científicos (ALVES e BOHNER, 2005).
O Elis II tem como principais objetivos possibilitar e/ou facilitar a interação
interinstitucional, divulgação e promoção, uso, implantação, monitoramento e acesso 24 horas de
qualquer computador ligado à internet.
O sistema permite um melhor gerenciamento e divulgação das informações, tais como:
auxiliar no processo de recebimento e avaliação de trabalhos, permitir o processo de pré-inscrição e
inscrição via Web, manter informações para a geração de páginas dinâmicas do evento,
disponibilizar os artigos para consulta, gerar relatórios para conferência e controle de participantes
nas atividades do evento, permitir o pagamento de inscrições via Web, o controle dos pagamentos
efetivados e também o controle das entradas de recursos.
O sistema iniciou para eventos do CTTMar, porém seu uso foi ampliado quando, em 2005,
foi adotado como sistema de eventos da Univali, dando apoio à Central de Gestão de Eventos da
instituição. Nesse período mais de 500 eventos já foram realizados, com mais de 1.500 trabalhos
publicados e mais de 15.000 autores. Com isso a quantidade de artigos que o sistema tem
armazenado em seu banco de dados é de mais de 9.000 entre publicados e não-publicados, uma vez
que passam por processo de avaliação por bancas especializadas. Porém, atualmente, o sistema não
dispõe de um mecanismo de consulta ao seu acervo de artigos, ficando os mesmos disponíveis
somente aos gestores dos eventos. Mesmo as consultas pelos gestores são limitadas, pois não
existem formas avançadas de busca pelo conteúdo dos textos, além da visão integrada dos dados,
uma vez que cada gestor apenas pode acessar dados do seu evento.
Por esta dificuldade de encontrar os materiais desejados no Elis II surgiu a idéia deste TCC
que foi implementar uma biblioteca virtual para os artigos armazenados no Elis II. Uma biblioteca
virtual pode ser compreendida como “troca de informações através de mídia on-line e na criação de
fontes de informação que não possuam necessariamente uma propriedade física. Constituem um
referencial de pesquisa que pode ser acessado a qualquer hora e em qualquer lugar” (DINIZ, 2008).
Essa biblioteca facilitará a busca dos materiais desejados e a consulta aos mesmos, através da Web,
10
onde as pessoas que acessam terão opções para busca como palavras-chave, autor, assunto, bem
como do conteúdo existente nos artigos.
O Elis II usa o banco de dados Oracle para armazenar suas informações, portanto este será o
SGBD (Sistema gerenciador de banco de dados) adotado, bem como o PHP, que também é
linguagem utilizada pelo Elis II. Cabe ressaltar que os textos dos artigos podem ser encontrados em
diferentes formatos, tais como: .doc e .pdf, conforme configuração do gestor do evento. Esses
arquivos são armazenados em campos blog do Oracle e será necessário implementar rotinas para
busca dos seus conteúdos.
A busca textual em banco de dados é uma técnica já muito utilizada hoje para pesquisa na
Web, “existem dois métodos principais de busca por frases em banco de dados textuais utilizando
indexação de textos, um é arquivos invertidos com contadores de posição e o outro é índices para a
próxima palavra. Um arquivo invertido possui duas partes principais: uma estrutura de busca,
chamada de vocabulário, contendo todos os termos distintos existentes nos textos indexados e, para
cada termo, uma lista invertida que armazena os identificadores dos registros contendo o termo.
Consultas são feitas tomando-se a lista invertida correspondente ao termo procurado. As consultas
booleanas são feitas obtendo-se a conjunção ou disjunção entre as listas relativas ao termos
presentes na consulta. Os índices para a próxima palavra apresentam uma abordagem mais eficiente
do que o uso de arquivos invertidos com contadores de posição. Nessa abordagem, para cada
palavra existente no vocabulário é criado uma lista com as palavras que ocorrem em uma posição
subseqüente no texto, juntamente com apontadores de posição para essas ocorrências” (ROCHA,
COSTA e SANTOS NETO, 2008).
Os artigos estão armazenados no banco de dados onde serão feitos as buscas. O Oracle
disponibiliza uma ferramenta de busca textual chamada “Oracle text”, que vai ser a ferramenta
utilizada para fazer a busca textual. O “Oracle text é uma funcionalidade embutida no banco de
dados que utiliza a linguagem SQL para indexar, pesquisar e analisar textos e documentos binários
armazenados nas tabelas. Esta tecnologia oferece uma solução completa para pesquisa de textos na
qual a mesma permite filtrar e extrair textos e conteúdos de diferentes formatos de documentos. O
Oracle text suporta mais de 150 formatos de documentos, incluindo os mais populares como o
Microsoft Office, além de formatos de arquivos do Adobe PDF, arquivos HTML e XML
”(LEGATTI, 2008).
A implementação da biblioteca virtual justifica-se como TCC porque, além de promover a
disseminação do conhecimento existente no Elis II, vai ser implementada usando técnicas como
índices invertidos com contadores de posição, conhecimentos de banco de dados e programação, e o
11
aprendizado de tecnologias de busca em arquivos texto em banco de dados como o Oracle Text, a
implementação de sistemas para internet, uso de frameworks de desenvolvimento e técnicas de
engenharia de software que vão permitir ao acadêmico elaborar um trabalho que vai além dos
conteúdos estudados em sala, mostrando um pouco a realidade do mercado de trabalho e fazendo
com que o aluno aprenda novas tecnologias e agregue valor no espírito de pesquisa e auto-
aprendizado.
1.1 PROBLEMATIZAÇÃO
1.1.1 Formulação do Problema
O sistema de eventos da Univali Elis II tem cadastrado mais de 500 eventos, com mais de
1.500 trabalhos publicados e mais de 15.000 autores. Com isso a quantidade de artigos que o
sistema tem armazenado em seu banco de dados é de mais de 9.000, todos esses artigos passam por
processo de avaliação por bancas especializadas. Esse sistema com tantas informações de ótima
qualidade peca muito no quesito busca, pois o Elis II não tem nenhum método de busca avançado e
a maneira de busca que os administradores possuem para consultar os trabalhos é a pesquisa no
evento que esta sendo consultado, e não tem a possibilidade de cruzamento das informações com os
outros eventos e de pesquisa por palavras nos textos. Isso dificulta bastante o acesso dos usuários ao
material que esta disponível neste sistema.
1.1.2 Solução Proposta
A proposta deste trabalho foi a análise, projeto e implementação de uma Biblioteca Virtual
para os artigos armazenados no Elis II. Essa biblioteca facilitará a busca dos materiais desejados e a
consulta aos mesmos, através da Web, onde as pessoas que acessam terão opções para busca como
palavras-chave, autor, assunto, bem como do conteúdo existente nos artigos. A Biblioteca Virtual
será uma área pública onde os usuários vão poder pesquisar os artigos em diversos eventos o que
hoje é uma limitação. Porém somente serão feitas as pesquisas nos eventos que estejam autorizados
por seus administradores.
12
1.2 OBJETIVOS
1.2.1 Objetivo Geral
O objetivo geral é projetar e implementar uma biblioteca virtual para o banco de dados de
trabalhos do Elis II – Sistema de Gerenciamento de Eventos Técnico-científicos da Univali.
1.2.2 Objetivos Específicos
• Pesquisar sobre bibliotecas virtuais e seu funcionamento;
• Estudar o Elis II com vistas a compreender seu funcionamento e o banco de dados
necessários ao desenvolvimento do projeto;
• Determinar os requisitos exigidos para a biblioteca virtual;
• Definir uma política de divulgação dos trabalhos do Elis II;
• Pesquisar os conceitos e tecnologias necessárias ao desenvolvimento da biblioteca
virtual;
• Realizar a modelagem da biblioteca virtual;
• Implementar a biblioteca virtual;
• Testar e avaliar o software desenvolvido; e
• Documentar o desenvolvimento e resultados do projeto.
1.3 Metodologia
Para a fundamentação teórica foram pesquisados livros, publicações e anais de eventos.A
metodologia utilizada neste trabalho foi dividida em 3 etapas principais: (1) estudo, (2) modelagem
do projeto e (3) desenvolvimento.
Na etapa de estudo se definiu o tema/problema deste projeto e adquiriu-se o conhecimento
necessário sobre as soluções e tecnologias existentes com o objetivo de poder propor a solução mais
adequada e eficiente para a solução do problema.
Na etapa de modelagem visou-se especificar completamente o funcionamento da solução
proposta criando um modelo conceitual da mesma, definindo seus requisitos e regras.
Na etapa de desenvolvimento foi feita a implementação das classes, requisitos e regras de
negócio definidas no pojeto, bem como a implementação dos protótipos definidos.
13
1.4 Estrutura do trabalho
No primeiro capítulo deste trabalho é apresentada uma introdução sobre o Elis II e discute-
se o problema tratado neste trabalho. Também no capítulo 1, definem-se os objetivos do mesmo e a
metodologia utilizada para alcançá-los. No segundo capítulo apresentam-se os embasamentos
teóricos que nortearam o desenvolvimento deste trabalho: revisão sobre o Elis II, biblioteca virtual,
pesquisa textual e ferramentas de desenvolvimento, no terceiro capítulo, está o projeto de
desenvolvimento da biblioteca virtual com modelagem, especificações e protótipo, no quarto o
desenvolvimento da aplicação. E no quinto é apresentada a ferramenta obtida com o
desenvolvimento do projeto.
No capítulo final estão descritas as conclusões sobre este trabalho falando sobre o que foi
feito, ferramentas e desenvolvimento da aplicação.
14
2 FUNDAMENTAÇÃO TEÓRICA
2.1 Elis II
2.1.1 Descrição do Elis II
O Elis II foi desenvolvido pelo LCA (Laboratório de Computação Aplicada) reunindo
esforços dos cursos de Ciências da Computação e Oceanografia para fazer o gerenciamento e
divulgação de eventos técnicos e científicos, de modo a oferecer recursos para o apoio automatizado
às tarefas envolvidas na organização de diversas fases e etapas de um evento. Originalmente foi
desenvolvido para atender ao International Coastal Symposium - ICS2004. (ALVES e BOHNER,
2005), porém prevendo uma arquitetura que permitisse quaisquer outros eventos utilizarem seus
recursos.
O sistema iniciou para eventos do CTTMar – Centro de Ciências Tecnológicas da Terra e do
Mar. Porém, seu uso foi ampliado quando, em 2005, foi adotado como sistema de eventos da
Univali, dando apoio à Central de Gerenciamento de Eventos da instituição. Nesse período, mais de
500 eventos já foram realizados, com mais de 9000 trabalhos submetidos, dentre os quais 1.500
trabalhos aprovados e mais de 15.000 autores cadastrados. A qualidade dos trabalhos é garantida
porque os mesmos passam por processo de avaliação por bancas especializadas (BALABA, 2008).
Os objetivos principais do Elis II são auxiliar no processo de recebimento e avaliação de
resumos e artigos dos eventos, fazer o processo de pré-inscrição e inscrição via Web, manter
informações para páginas dinâmicas dos eventos, disponibilizar os eventos para consulta, gerar
relatórios para acompanhamento e controle dos participantes, permitir o pagamento da inscrição via
Web e também permitir o controle das entradas de recursos que são utilizados nos eventos (ALVES
e BOHNER, 2005).
O Elis II foi planejado e construído para ser utilizado via Web, principalmente com os
objetivos de facilitar a integração inter-institucional, divulgação, promoção, uso, implantação,
monitoramento e acesso a qualquer hora de qualquer computador que tenha acesso à internet.
(ALVES e BOHNER, 2005)
15
O sistema é dividido em módulos, a saber: o módulo de usuário Web, o módulo de
coordenação do evento e o módulo de administração.
O módulo de usuário Web é onde os usuários consultam as informações públicas do sistema,
como a divulgação dos resultados das avaliações dos artigos; podem fazer seus cadastros, pré-
inscrição e inscrição nos eventos e também submeter seus trabalhos para publicação.
O módulo de coordenação do evento é onde o responsável por um evento, ou as pessoas que
tenham sido autorizadas por ele, podem inserir ou editar todas as informações do evento. Aqui
também são manipuladas as informações de avaliação dos trabalhos do evento, inscrições e os
dados financeiros. Este módulo também disponibiliza funcionalidades de avaliação de artigos pelas
bancas de avaliadores, através da web.
E, no último módulo, administração do Elis II, é onde é feita a administração geral do
sistema, podendo criar novos eventos e autorizar os responsáveis para manutenção dos dados dos
mesmos (ALVES e BOHNER, 2005).
Atualmente o sistema não dispõe de um mecanismo de consulta ao seu acervo de artigos,
ficando os mesmos disponíveis somente aos gestores dos eventos. Mesmo as consultas pelos
gestores são limitadas, pois não existem formas avançadas de busca pelo conteúdo dos textos, além
da visão integrada dos dados, uma vez que cada gestor apenas pode acessar dados do seu evento.
Uma das soluções para este problema é a criação de uma biblioteca virtual para disponibilizar estes
artigos para os usuários com mais facilidade.
A Figura 1. Página principal do Elis IImostra a página que os usuários utilizam para acessar
as funções do sistema e ter uma idéia de como é o Elis II, suas características e possibilidades.
Mostra uma lista de eventos ativos e em destaque, opção de pesquisar o evento, informações sobre o
Elis II, contato e FAQ.
16
Figura 1. Página principal do Elis II
Fonte: www.univali.br/eventos
2.1.2 Tecnologias
O Elis II é um sistema totalmente voltado para a internet para que tenha um acesso fácil a
qualquer computador com acesso a internet. O sistema roda na plataforma Linux na versão Red Hat
Linux (GNU/Linux) 6.2, o SGBD (Sistema Gerenciador de Banco de Dados) é o Oracle 10g. A
interface do portal foi feita através de um servidor HTTP (Hypertext Transfer Protocol) seguro
Apache SSL (Secure Sockets Layer) e as páginas Web foram desenvolvidas usando PHP (Hypertext
Preprocessor) (ALVES e BOHNER, 2005).
“Originalmente o sistema não foi desenvolvido usando orientação objeto, porém à medida
em que novas funcionalidades foram desenvolvidas ou refeitas, adotou-se o framework Symfony”
17
(ALVES e BOHNER, 2005), o qual adota uma arquitetura MVC (Model-View-Controller) para
implementação das classes, em PHP. O módulo que utiliza esta arquitetura atualmente é o usuário
Web, para o qual foram implementadas melhorias de funcionalidades e facilidades de uso. Também
a avaliação de artigos foi refeita nesta arquitetura. A nova versão do Elis, que vai ser o Elis III, será
totalmente desenvolvida no framework Symfony.
2.1 Biblioteca Virtual
Bibliotecas são coleções públicas ou privadas de documentos, organizadas para estudos,
leitura e consulta (ZANG, FELIPIAK e SENGER, 2000).
Existem dois tipos principais de bibliotecas: as reais e as virtuais. As reais são aquelas que
possuem seu acervo fisicamente, que está concentrado em algum edifício ou recinto, e as bibliotecas
virtuais que são aquelas que não existem como ambiente físico, mas, sim, em bancos de dados em
arquivos digitalizados onde esses podem ser acessados de qualquer computador com acesso a
internet.
As bibliotecas virtuais apresentam-se como uma alternativa para ampliar as condições de
busca, disponibilidade e recuperação de informações de forma globalizada, aliando o acesso com a
internet, pois o acervo destas bibliotecas é totalmente digitalizado o que facilita muito a
disponibilização dos documentos (MACHADO, 2003).
Existem, atualmente, várias bibliotecas virtuais espalhadas pela internet. Aqui serão citados
três exemplos: a Biblioteca Virtual da UFSC (Universidade Federal de Santa Catarina) que pode ser
acessada pelo endereço eletrônico http://www.bu.ufsc.br/design/virtuais1.php, a Biblioteca Virtual
de Teses e dissertações da UNESP (Universidade Estadual Paulista “Júlio de Mesquita Filho”) que
pode ser acessada pelo endereço eletrônico http://www2.fc.unesp.br/BibliotecaVirtual/index.jsp e a
Biblioteca ACM Portal que não é totalmente de acesso livre e também é internacional podendo ser
acessada pelo endereço http://portal.acm.org/portal.cfm.
A Biblioteca Virtual da UFSC é um ambiente que apresenta áreas abertas como base de
dados gratuitas, revistas científicas, sites selecionados, produção UFSC e livros on-line e também
áreas restritas como o portal de periódicos da CAPES (Coordenação de aperfeiçoamento de pessoal
de nível superior), portal da pesquisa e o e-livro. Essa biblioteca disponibiliza no acesso gratuito
várias sub-bibliotecas através de links, e essas bibliotecas são de várias áreas, como medicina e
18
psicologia. Dentro dessas sub-bibliotecas são disponibilizados vários documentos relacionados ao
assunto, onde estes podem ser pesquisados através de consultas mais específicas, por exemplo, por
uma palavra-chave.
A biblioteca da UNESP que é a Biblioteca Virtual de Teses e dissertações disponibiliza
também seus materiais gratuitamente, tendo em sua página inicial uma pequena descrição do que
ela é e de seu objetivo,uma lista dos documentos mais acessados, a quantidade de teses e
dissertações disponíveis e assim por diante. Permite, também, que seja feita uma pesquisa simples
por palavras-chave ou uma pesquisa mais específica, podendo informar instituição, área, ano, título,
autor e outras opções. Disponibiliza um menu de ajuda de como publicar um documento nesta
biblioteca e uma ferramenta para converter arquivos para PDF (Portable Document Format).
O Portal ACM é uma biblioteca virtual internacional e muito bem conceituado tendo em sua
base de dados uma grande quantidade de documentos. Essa biblioteca não é totalmente gratuita. A
maior parte dos documentos só pode ser acessada tendo um usuário e senha para fazer a
autenticação. Como esta é uma biblioteca internacional o seu portal de acesso está totalmente em
inglês. Em sua página principal o Portal possui uma opção de busca por frases ou palavras-chave e
também alguns links para assuntos bastante procurados. Como diferencial, existe uma área onde os
usuários podem fornecer um feedback sobre a biblioteca ou conteúdos dela, o que é importante para
o crescimento e melhora contínua do portal.
2.2 Pesquisa Textual em banco de dados
Um banco de dados textual consiste em uma tabela de dados, onde cada linha é uma unidade
de informação e cada coluna por sua vez representa um dos campos de informação. Então quando
consideramos uma linha da tabela estamos vendo todos os campos referentes a um registro. Nestes
bancos de dados textuais estão armazenados coleções de documentos (CONCEITO ...2008).
Para fazer busca nestes documentos pode ser usada a técnica de indexação de textos que tem
dois métodos principais: o método de arquivos invertidos com contadores de posição e o método de
índices para próxima palavra.
Os arquivos invertidos possuem duas partes, uma é o vocabulário que é a estrutura de busca
que tem todos os termos que estão no texto indexado, e para cada termo há uma lista invertida
contendo um identificador dos termos. As consultas são feitas pegando a lista invertida do termo
19
desejado, e fazendo comparações booleanas entre as listas e os termos das consultas (ROCHA,
COSTA e SANTOS NETO, 2008).
“Para a técnica de índices para a próxima palavra, em cada palavra presente no vocabulário é
criada uma lista com as palavras do texto e os apontadores dessas palavras nos textos” (ROCHA,
COSTA e SANTOS NETO, 2008).
2.2.1 Índices invertidos com contadores de posição
Arquivos invertidos são usados principalmente para a implementação de índices ordenados.
Nas pesquisas por frases um arquivo invertido pode ser uma lista ordenada de palavras-chave onde
cada palavra tem um apontador para cada documento onde a palavra ocorre e onde esta palavra está
dentro do documento. Esta pesquisa é bastante eficiente, mas ela tem um custo adicional de que o
arquivo invertido pode ter de 10 a 100% do tamanho do documento original e também a cada
atualização do documento o arquivo invertido tem que ser atualizado também. A
Figura 2 mostra a estrutura de um arquivo invertido onde D1 à Dn são os documentos e O1 à On
são as localizações das palavras nos documentos (ROCHA, COSTA e SANTOS NETO, 2008).
Figura 2. Estrutura de um arquivo invertido
Adaptado de: (ROCHA, COSTA e SANTOS NETO, 2008).
Para que o custo-benefício desta pesquisa não seja ruim é comum colocar restrições nos
arquivos invertidos. A restrição mais comum é principalmente no vocabulário, onde é feita a
remoção de palavras mais freqüentes como artigos e preposições, isso torna o arquivo invertido
menor e faz com que a performance das pesquisas sejam melhores, mas em contra-partida elas
ficam mais imprecisas (ROCHA, COSTA e SANTOS NETO, 2008).
20
2.2.2 Índice para a próxima palavra
Arquivos invertidos permitem a pesquisa por frases, mas as técnicas por indexação são
melhores como, por exemplo, a de índices para a próxima palavra.
Um índice para a próxima palavra w é um vocabulário de palavras onde, para cada palavra,
tem uma lista de palavras s que a sucedem. A lista das próximas palavras s que sucedem w em
algum local da base de documentos. Para cada ws existe as localidades onde elas ocorrem nos
documentos (ROCHA, COSTA e SANTOS NETO, 2008).
Existe uma abordagem que combina as técnicas de índices invertidos e índices para próxima
palavra que é chamada de esquema baseado na freqüência máxima que tem por objetivo manter a
eficiência das consultas e também se propõe a diminuir o tamanho dos índices. Esse método foi
criado pelo fato de palavras comuns estarem presentes em grande parte das consultas, então apenas
as palavras mais comuns são utilizadas como índice para a próxima palavra, o restante é indexado
normalmente (ROCHA, COSTA e SANTOS NETO, 2008).
A Figura 3 é um exemplo de índices para a próxima palavra. No primeiro nível se tem a lista
de palavras que esta no banco de dados e que possuem uma próxima palavra. Cada palavra do
primeiro nível tem um apontador para o segundo nível onde estão as próximas palavras. No
segundo nível cada nó tem um ponteiro para uma lista de documentos onde o par de palavras
ocorre. Na lista de documentos tem o identificador dos documentos e a posição onde o par de
palavras ocorre.
21
Primeiro nível Segundo nível Terceiro nível
Figura 3. Índice para a próxima palavra.
Fonte: Jesus (2003).
2.3 Ferramentas
2.3.1 Ferramentas usadas no Elis II
O Elis II foi desenvolvido com a linguagem PHP que é projetada para programar scripts, é
gratuita e multiplataforma executando do lado do servidor (ALVARES, 2008). Algumas das
funcionalidades da versão do sistema que está em uso, bem como a versão III do sistema em
desenvolvimento, utilizam o framework Symfony, o qual baseia-se na arquitetura MVC (Model-
View-Controller).
Um framework simplifica o desenvolvimento das aplicações, pois ele tem alguns dos
padrões de desenvolvimento já automatizados para resolver as tarefas mais comuns. Um framework
também obriga que o desenvolvedor faça códigos fontes estruturados e mais legíveis deixando-os
fáceis de manter (ZANINOTTO e POTENCIER, 2008).
22
O Symfony é um framework que visa otimizar o desenvolvimento de aplicações Web. Ele
tem separações como às de regra de negócio, lógica de servidor e a apresentação da aplicação web,
que é a arquitetura MVC. Este oferece também várias ferramentas e classes projetadas para facilitar
o desenvolvimento das aplicações Web, principalmente as complexas. Automatiza as tarefas mais
comuns, deixando que o desenvolvedor fique mais focado na aplicação em si. “O resultado final de
todas essas vantagens é que não se deve reinventar a roda cada vez que uma nova aplicação web for
construída” (ZANINOTTO e POTENCIER, 2008).
O Symfony foi criado totalmente em PHP 5, é compatível com a maioria dos bancos de
dados incluindo MySQL, Oracle, PostgreSQL e Microsoft SQL (Structured Query Language)
Server e sua primeira versão foi lançada em 2005. Esta ferramenta foi totalmente criada visando o
desenvolvimento de aplicações orientadas a objeto. As principais características deste framework
são (ZANINOTTO e POTENCIER, 2008):
• Fácil de instalar e configurar na maioria das plataformas (e funcional em plataformas padrão
*nix e Windows);
• Independente de SGDB - Sistema Gerenciador de Banco de Dados;
• Fácil de usar na maioria dos casos, ainda que suficientemente flexível para adaptar-se aos
casos mais complexos;
• Baseado na premissa de convenção sobre configuração -- o desenvolvedor precisa
configurar apenas o que não for convencional;
• Segue a maioria das melhores práticas e padrões de projeto para a web;
• Pronto para aplicações empresariais e adaptável a política e arquiteturas próprias de cada
empresa, além de ser suficientemente estável para o desenvolvimento de aplicações a longo
prazo;
• Código de leitura e manutenção fácil que inclui comentários do phpDocumentor; e
• Fácil de estender, permitindo integração com outras bibliotecas distribuídas por terceiros.
O Symfony como já citado anteriormente automatiza várias funções comuns no
desenvolvimento, como por exemplo (ZANINOTTO e POTENCIER, 2008).:
• A camada de Internacionalização do Symfony que permite a tradução dos dados da
interface, assim como a adaptação local dos conteúdos;
23
• A camada de apresentação utiliza templates e layouts que podem ser construídos por
webdesigners HTML (HyperText Markup) que não possuem qualquer conhecimento sobre o
framework. Os Assistentes (Helpers) incluídos permitem a minimizar o código utilizado na
apresentação, já que encapsulam grandes porções de código em simples chamadas a
funções;
• Formulários suportam validação e repopulação automáticas, o que assegura a obtenção de
dados corretos e melhora a experiência do usuário;
• Os dados incluem mecanismos de escape que permitem uma melhor proteção contra ataque
de dados corrompidos;
• O gerenciamento de cache reduz uso de banda e o processamento do servidor;
• A autenticação e o gerenciamento de credenciais simplifica a criação de áreas restritas e a
gestão de segurança do usuário;
• O sistema de roteamento e URLs (Uniform Resource Locator) limpas transformam os
endereços das páginas em partes da interface, além de torná-los amigáveis para mecanismos
de busca;
• O suporte de e-mail incluído e o gerenciamento de APIs (Application Programming
Interface) permitem as aplicações web interagir além das interfaces dos navegadores;
• Listagens são mais amigáveis graças aos recursos de paginação, ordenação e filtragens
automáticas;
• Os plugins, as Factories (padrões de projeto "Factory") e "mixins" permitem construir
extensões do Symfony; e
• Interações Ajax são fáceis de implementar graças aos assistences (helpers) de uma - linha
que encapsulam efeitos Java Script cross-browser-compatible Esta ferramenta de
desenvolvimento pode ser totalmente personalizada de acordo com a necessidade de quem a
usa. Mas por padrão já incorpora vários ambientes de desenvolvimento e faz com que sejam
automatizadas as tarefas mais comuns de engenharia de software, como exemplo de algumas
(ZANINOTTO e POTENCIER, 2008).:
• As ferramentas de geração de código são ótimas para protótipos de aplicações e back-ends
administrativos;
• O framework de desenvolvimento de teste unitário e funcional proporciona as ferramentas
ideais para o desenvolvimento baseado em testes, o chamado ("test-driven development");
24
• O painel de debug simplifica a depuração, disponibilizando todas as informações que o
desenvolvedor precisa na mesma página em que ele está trabalhando;
• A interface em linha de comando automatiza a instalação das aplicações entre servidores.
• É possível realizar mudanças "quentes" da configuração (sem necessidade de reiniciar o
servidor); e
• O completo sistema de logs permite aos administradores acesso até o último detalhe das
atividades que uma aplicação realiza.
Então o Symfony vem para auxiliar os desenvolvedores com suas ferramentas e facilidades a
desenvolverem aplicações Web utilizando a linguagem PHP.
2.3.2 Ferramentas para desenvolvimento da biblioteca virtual
A ferramenta principal que foi utilizada para a construção da biblioteca virtual é uma
ferramenta de pesquisa textual em banco de dados, além do Symfony para o desenvolvimento da
parte Web e o banco de dados Oracle, adequando à arquitetura atual do Elis II. A ferramenta de
pesquisa textual será a responsável por identificar os parâmetros das buscas dentro da base de dados
do Elis II no que se refere ao conteúdo dos arquivos referentes aos artigos, visto que alguns dados
podem ser extraídos das próprias tabelas do Elis II, tais como: autores, título do artigo, evento,
dentre outros.
Para a pesquisa textual foram estudadas algumas soluções, as quais serão descritas neste
item do trabalho: a Oracle text que a ferramenta de busca da própria Oracle, a Autonomy e a
Google Seach Appliance.
2.3.4.1 Oracle Text
A Oracle text é a ferramenta de busca textual da Oracle, recurso existente no SGBD Oracle
desde 1996, na versão Oracle 7, com o Context Option. Mas seu licenciamento era adquirido à
parte. Este produto evoluiu e deu origem ao InterMedia Text lançado em 1999, que acompanhava o
Oracle 8i e que faz parte do Oracle Text, nome que ganhou depois da versão 9i e que agora faz
parte do pacote do banco de dados (SANTOS A, 2008).
Esta ferramenta possibilita a manipulação de dados como textos da Web, dados, imagens,
áudio e vídeo (DUARTE, REZENDE e RIGHETTI, 2008). A estrutura do Oracle Text é um índice
invertido, uma lista de palavras em um documento, onde cada palavra tem uma lista de documentos
25
onde elas aparecem. É chamado de índice invertido por que é o inverso da forma usual de se
analisar um texto, onde na forma usual temos documentos que contém uma lista de palavras
(SANTOS B, 2008). A técnica de índice invertido é melhor descrita no capítulo de Pesquisa Textual
(capítulo 1.7).
Os índices do Oracle text podem ser manipulados da mesma maneira que os índices padrão
do Oracle, ou seja, eles podem ser acessados por expressões SQL. Os índices têm um tempo de
resposta muito rápido para consultas com as funções CONSTAINS, CATSEARCH e MATCHES
que consultam os índices CONTEXT, CTXCAT e CTXRULE respectivamente (SANTOS B,
2008).
2.3.4.2 Autonomy
A ferramenta Autonomy tem a função de busca e tratamento de qualquer tipo de informação
não estruturada e estruturada como textos, áudio, vídeo e informações de banco de dados. Essas
pesquisas são feitas por um servidor desta ferramenta chamada de IDOL (DEUTSCH, MORESI e
NEHME, 2008).
O IDOL tem funcionalidades que facilitam as buscas: como um guia automático de busca
que determina o contexto do usuário que faz a consulta e apresenta os resultados mais apropriados ,
juntamente com outras sugestões, o agrupamento onde o servidor IDOL agrupa automaticamente as
informações que tem maior semelhança para facilitar a visualização e uso dos resultados, detecção
automática de línguas, correção ortográfica das palavras da busca, criação de sumários de
informações e outros.
O Autonomy suporta mais de 200 tipos de arquivos como Microsoft Office, PDF, arquivos
de áudio como MP3 e suporta a busca também nos banco de dados Oracle e IBM DB2 (DEUTSCH,
MORESI e NEHME, 2008).
2.3.4.3 Google Search Appliance
Essa aplicação é um produto que oferece um mecanismo de busca Google de grande
produtividade e que é vendido com licença para dois anos (DEUTSCH, MORESI e NEHME,
2008).
26
A administração deste sistema é feita por uma interface Web ou por comandos usando o
padrão SMTP, podendo ser criados várias perfis de administrador. O índice de busca pode ser
segmentado para mostrar resultados diferentes para usuários diferentes ou perfis diferentes. As
buscas podem ter filtros diferentes como tipo de arquivos ou um idioma específico. O processo de
rastreamento e indexação é chamado de crawling.
Para localizar os arquivos para indexação o Google Search Appliance usa um sistema robô.
Ele pode fazer sua pesquisa em páginas Web, documentos de servidores de arquivos onde esses
servidores tenham instalado o servidor Web Microsoft IIS e em arquivos armazenados em banco de
dados relacionais como o IBM DB2, Microsoft SQLServer, MaySql, Oracle e Sybase. O Google
Seach Appliance pode ler e indexar mais de 220 tipos de arquivos como HTML, Microsoft Office,
PDF e outros.
O Google Search Appliance tem padrões de busca como pesquisar todas as palavras e não
diferenciar letras maiúsculas de minúsculas, reconhecer o sinal de menos (-) para excluir palavras
não desejadas, colocar aspas para pesquisar frases e utilizar o operador OR para especificar termos
alternativos.
O Google Search Applience reconhece mais de 25 línguas entre elas o português
(DEUTSCH, MORESI e NEHME, 2008).
27
2.3.4.4 Conclusões
Na Tabela 1 podem ser vistas algumas comparações entre as ferramentas de busca textual
estudadas.
Características Fermentas de pesquisa textual Tipos de
arquivos Locais de
busca Tipo de busca
Sem custo? Operadores Booleanos?
Oracle Text Multi-arquivos
Banco de dados, Web.
Índices invertidos
Não Sim
Google Search
Applience
Multi-arquivos
Banco de dados, Web, servidores de
arquivos, desktops
Índices invertidos
Não Sim
Autonomy Multi-arquivos
Banco de dados, Web,
Desktops
- Não Sim
Tabela 1. Comparações entre as ferramentas de pesquisa textual.
Dentre as ferramentas analisadas, a escolhida para o desenvolvimento da biblioteca virtual
foi o Oracle Text. Uma das características mais impactantes na decisão foi que todas as ferramentas
são pagas, porém como o Oracle Text já vem incluso dentro do banco de dados Oracle que é o
usado no Elis II e já adquirido pela Univali, não haverá custo algum para ser usada no
desenvolvimento. Quanto as demais características das ferramentas, consideram-se que são muito
parecidas e todas fazem a busca em arquivos armazenados dentro de bando de dados Oracle em
várias extensões.
28
3 PROJETO
Neste capítulo é apresentado o projeto da biblioteca virtual para o Elis II contendo suas regras de
negócio, requisitos funcionais e não-funcionais, casos de uso e modelo do banco de dados.
3.1 Modelo do Projeto
3.1.1 Requisitos Funcionais
Os requisitos funcionais são as descrições do que o sistema deve permitir/fazer. Esses
requisitos dizem aos usuários quais serão as ações que o sistema permitirá que eles façam. A seguir
são apresentados os requisitos funcionais da Biblioteca Virtual:
RF01 - O sistema deve permitir que o usuário faça pesquisa aos arquivos dos artigos e nos dados
das tabelas por meio de parâmetros.
RF02 - O sistema deve listar para o usuário os resultados da sua pesquisa.
RF03 - O sistema deve permitir que o usuário veja os detalhes dos artigos registrados no banco de
dados.
RF04 - O sistema deve permitir ao usuário que faça o download dos arquivos encontrados na busca.
RF05 - O sistema deverá fazer a pesquisa dos artigos na base do Elis II.
RF06 - O sistema deverá ser acessado pela página principal do Elis II.
RF07 - No Elis II deve conter um campo de identificação dizendo se o artigo pode ou não ser
acessado pela biblioteca.
RF08 - O sistema deverá ter um termo de concordância que estará disponível para os usuários.
3.1.2 Regras de Negócio
As regras de negócio restringem os requisitos funcionais, descrevendo as regras do sistema
como suas restrições e possibilidades. As regras da Biblioteca Virtual são listadas a seguir:
RN01 - Somente estarão disponíveis para busca os artigos dos eventos que estiverem habilitados
para serem acessados pela biblioteca virtual.
RN02 - Condições para busca será autor, data, evento, frase, área e trabalho .
RN03 - O sistema deve permitir que o usuário possa combinar duas ou mais condições da pesquisa.
RN04 - Somente artigos com status de publicado poderão ser apresentados na biblioteca virtual.
29
RN05 - Os artigos só ficarão disponíveis na biblioteca virtual após a data de término do evento.
RN06 - Somente eventos com status de publicado poderão ser apresentados na biblioteca virtual.
3.1.3 Requisitos Não-Funcionais
Os requisitos não-funcionais apresentados neste projeto referem-se às tecnologias utilizadas
pelo sistema em que ambiente vai funcionar.
RFN05 - Ferramenta para desenvolvimento PL\SQL é o PL\SQL Developer.
RNF01 - Banco de dados Oracle.
RNF02 - Ferramenta de pesquisa textual Oracle Text.
RNF03 - Linguagem de programação PHP e PL\SQL.
RNF04 - Framework para desenvolvimento PHP Symfony.
RNF06 - O sistema deverá conseguir fazer as pesquisas em todos os textos disponíveis no Elis II
independente de formato.
RNF07 - Sistema Voltado para Web.
3.1.4 Casos de Uso
Os casos de uso representam toda interação entre o sistema e o usuário seja ele homem ou
máquina, descrevendo como será esta interação e as ações tanto do sistema quanto do usuário.
Apresenta as funcionalidades do ponto de vista do usuário, sem demonstrar como será feita a
implementação. Na modelagem da Biblioteca Virtual foram identificados dois pacotes de casos de
uso: o primeiro refere-se aos casos de uso já existentes no Elis II e que necessitaram alterações para
o funcionamento da biblioteca, o segundo pacote refere-se às funcionalidades implementadas para a
biblioteca virtual.
3.1.4.1 Pacote 01 – administração Elis II Este pacote de casos de uso já existe no Elis II. Propõe-se que para o funcionamento da
biblioteca virtual seja alterado o UC02.02, o qual contempla o cadastro do evento e a inclusão de
um novo caso de uso que é o UC02.07 para autorização da publicação dos artigos de um evento na
biblioteca virtual. Esses casos de uso são destacados num quadro na Figura 4.
30
uc Pacote 02 - Administração do Elis2
Administrador do Elis2
UC 02.01 Loga no Sistema
UC 02.02 Cadastra Evento
UC 02.03 Mantém usuário
UC 02.04 Libera permissões
UC 02.05 Consulta registros de acesso
aos cenários
UC 02.07 Autoriza publicação
biblioteca virtual
UC 02.06 Cadastra scripts
do sistema
«include»
‘
Figura 4. Diagrama de UC, Administração Elis II
UC 02.02 Cadastra Evento
Este caso de uso permite que seja cadastrado e configurado um evento no Elis II. Para funcionamento da biblioteca virtual, faz-se necessário que o responsável pelo evento autorize a publicação dos trabalhos já aprovados pelos avaliadores. Desta forma, propõe-se que seja acrescentada às configurações do evento, a autorização de publicação, a qual é detalhada no UC02.07.
UC 02.07 Autoriza publicação biblioteca virtual
Este caso de uso descreve o cenário onde o usuário vai autorizar o evento para que seus artigos sejam acessados pela biblioteca virtual em suas buscas. Os requisitos funcionais que este caso de uso atende é o RF08 que foi descrito anteriormente.
Pré-condições: Evento tem que estar cadastrado e publicado.
Pós-condições: Evento autorizado ou não para acesso pela biblioteca virtual.
31
Cenários � Autoriza Evento - Principal
Nota Passo 1 - Administrador entra na página de autorização. Passo 2 - Administrador opta pela opção de concordo. Passo 3 - Sistema disponibiliza evento para biblioteca virtual. Passo 4 - Sistema volta para a página do evento.
� Não concordo - Alternativo Nota Se no passo 2 o Administrador optar pela opção de não concordo: Passo 2.1 - Sistema bloqueia evento para a biblioteca virtual. passo 2.2 - retorna para o passo 4.
3.1.4.2 Pacote 2 - Biblioteca Virtual
Para o desenvolvimento da biblioteca virtual, foram identificados os casos de uso para pesquisa e download dos documentos, conforme apresentado na Figura 5.
uc Pacote 1 - Biblioteca Virtual
Usuario da Biblioteca Virtual
UC 01.01 - Fazer pesquisa de
arquivos
UC 01.02 Fazer download dos
arquivos
«include»
Figura 5. Biblioteca Virtual
UC 01.01 - Fazer pesquisa de arquivos
Neste caso de uso é descrita a ação principal da biblioteca virtual, que é fazer a pesquisa nos
artigos armazenados no Elis II. Este caso de uso atende aos requisitos funcionais RF01, RF02 e
RF03 que foram descritos anteriormente.
Pré-condição: Os artigos devem estar autorizados para o acesso da biblioteca virtual.
Pós-condição: Resultados encontrados de acordo com os parâmetros informados pelo
usuário.
32
Cenários
� Pesquisar - Principal Nota Passo 1 - Usuário entra na página inicial da biblioteca virtual (página inicial). Passo 2 - Usuário entra com os parâmetros da pesquisa (página inicial). Passo 3 - Usuário faz a pesquisa (página inicial). Passo 4 - Sistema mostra os resultados da pesquisa (página de resultados). Passo 5 - Usuário visualiza detalhes do resultado (página de detalhes). Passo 6 – Retorna a pagina inicial da biblioteca (Passo 1)
� Recomeçar Pesquisa - Alternativo Nota Se no passo 2 o usuário optar por recomeçar a pesquisa: Passo 2.1 - Usuário escolhe opção reiniciar pesquisa (página de resultados). Passo 2.2 - Sistema limpa os campos já preenchidos e mostra a tela inicial de pesquisa para o usuário (página inicial). Passo 2.3 - Volta ao passo 2.
� Cancelar Pesquisa - Alternativo Nota Se no passo 3 o usuário optar por cancelar a pesquisa: Passo 3.1 - Usuário escolhe opção cancelar pesquisa (página de resultados). Passo 3.2 - Sistema cancela a pesquisa e mostra a página inicial da biblioteca virtual. Passo 3.3 - Volta ao passo 1.
� Download Documento - Alternativo Nota Se no passo 5 o usuário optar por fazer o download do documento: Passo 5.1 - Usuário escolhe download e é executado o UC01.02. Passo 5.2 - Volta ao passo 5.
� Datas inválidas – Alternativo Nota Se no passo 3 as datas foram informados com formato incorreto: Passo 3.1 – Sistema exibe a mensagem de data inválida. Passo 5.2 – Volta ao passo 2.
UC 01.02 Fazer download dos arquivos Cenários
� Download - Principal Nota Passo 1 - Usuário escolhe fazer download de um arquivo. Passo 2 - Sistema busca o documento para o usuário dando a opção de salvar uma copia. Passo 3 - Usuário salva o arquivo.
33
Cenários
� Cancelar Download - Alternativo Nota Se no passo 3 o usuário optar por cancelar o download: Passo 3.1 - Usuário escolhe a opção cancelar. Passo 3.2 - Sistema cancela o download e volta a mostrar os resultados da busca UC 01.01 passo 5.
3.1.5 Modelo de banco
Para a implementação da biblioteca virtual algumas alterações no banco do Elis II foram
necessárias. Uma delas foi a criação dos campos autoriza_publicar na tabela Parametro_evento e na
tabela trabalho do Elis II. Estes campos permitem registrar quais são os eventos e trabalhos
autorizados para o acesso da biblioteca virtual na busca dos artigos. A Figura 6. Modelo de
autorização apresenta uma visão parcial do banco de dados do Elis II, destacando as tabelas
alteradas.
Figura 6. Modelo de autorização
34
A segunda alteração foi no módulo onde são armazenados os artigos do Elis II, pois para que
a biblioteca virtual faça a busca nos artigos, foi necessário criar índices context na tabela onde os
mesmos ficam armazenados, que é a tabela ARQUIVOS. Logo, a alteração será apenas a criação do
índice nesta tabela de artigos, não sendo alterada sua estrutura.
3.1.6 Modelo de classes A Biblioteca Virtual é iniciada pela página principal, que está representada pela classe
principalSucess, a qual está ligada à classe Actions.class.php que fará o controle de todas as ações
da biblioteca. Na interface listagemSucess são listados os resultados da pesquisa e na
detalhesSucess são apresentados os resultados específicos de cada registro encontrado, esta duas
também são ligadas à classe de controle. As demais classes estão representando as tabelas onde
ficam fisicamente os dados do Elis II que são usados por esta aplicação. Na figura 7 é apresentado o
modelo de classes da Biblioteca Virtual.
35
Figura 7. Modelo de Classes
3.1.7 Desenvolvimento com Oracle Text
A ferramenta utilizada para a pesquisa textual, que é a parte mais complexa deste projeto, é
o Oracle Text. Esta ferramenta faz a busca dos documentos dentro da base de dados do Elis II
através de índices sobre esses artigos.
Esta ferramenta já é instalada junto ao banco de dados Oracle e, para que a biblioteca virtual
funcione corretamente os índices Context devem ser criados sobre a coluna da tabela onde estão
36
armazenados os documentos (tabela ARQUIVO) para que a busca obtenha os resultados corretos e
com bom desempenho.
Os índices são criados através de comandos em SQL nas colunas onde estão armazenados os
documentos ou os identificadores de onde estão os documentos, que podem ser campos CLOB por
exemplo. No caso da coluna armazenar apenas o ponteiro para o documento, um diretório para
armazenar o documento deve ser criado (JESUS, 2003).
Os exemplos das Figuras 8, 9 e 10 mostram a criação de uma tabela para armazenar os
documentos e a criação do índice sobre a tabela e a busca posteriormente usando esse índice.
Na Figura 8 esta sendo mostrada a criação da tabela, de uma seqüência para preencher a
Primary Key da tabela My_Docs quando os documentos forem inseridos e o comando para a
criação do diretório onde os documentos físicos ficaram armazenados(Neste caso o campo DOC da
tabela está apenas armazenando o ponteiro para o documento) .
Figura 8. Exemplo criação tabela
Criação do índice:
Figura 9. Exemplo criação índice
Busca dos documentos primeiro pela palavra “SQL SERVER” depois pela palavra “XML”
usando os índex context que esta demonstrado na Figura 10 pela primeira restrição da clausula
Where que é a CONTAINS.
37
Figura 10. Exemplo busca documentos
A pesquisa textual feita por esta ferramenta possui vários parâmetros para sua configuração
que determinam, por exemplo, se a busca vai ser case-sensitive ou não, ou se vai considerar a
acentuação. Os comandos para estabelecer os valores destes parâmetros estão listados a seguir.
Criação das preferências:
Ctx_Ddl.Create_Preference ('mixed_case_lexer_pref','BASIC_LEXER');
Configurando preferência de case-sensitive:
Ctx_Ddl.Set_Attribute ( 'mixed_case_lexer_pref', 'mixed_case', 'FALSE');
Configurando preferência de consideração da acentuação:
Ctx_Ddl.Set_Attribute ( 'mixed_case_lexer_pref', 'base_letter','TRUE'); (SANTOS B,
2008).
Os comandos e as configurações mencionadas nesta seção foram usados de base para a
criação da Biblioteca Virtual.
38
4 DESENVOLVIMENTO DA FERRAMENTA
Neste capitulo é apresentado o desenvolvimento da Biblioteca Virtual do Elis II, com a
utilização do framework Symfony, a ferramenta de busca textual Oracle Text e o banco de dados
Oracle.
4.1 Banco de dados e Oracle Text
Para o funcionamento correto da biblioteca virtual algumas alterações foram feitas na base
de dados do Elis II: a criação de dois novos campos nas tabelas parametro_evento e trabalho e a
criação de alguns índices context para a busca textual do Oracle Text.
O campo autoriza_publicar foi criado na tabela parametro_evento e na tabela trabalho da
base de dados do Elis II para armazenar a informação da autorização de acesso da biblioteca virtual
aos dados dos eventos, conforme apresentado no item 3.1.5 . Este campo é do tipo character e
armazena a letra S para sim - autorizada a publicação e N para não autorizada a publicação.
Os índices context que foram criados em alguns campos das tabelas da base de dados têm a
função de auxiliar e permitir o acesso e a pesquisa da ferramenta de busca textual Oracle Text. O
Oracle text foi utilizado para buscar as palavras ou frases nos documentos armazenados na base de
dados com formatos .doc, .pdf , dentre outros formatos. Também foi utilizada esta ferramenta para
busca textual em campos textuais da base de dados, como no nome do autor do trabalho, no nome
do evento e no titulo do trabalho. Os índices context que foram criados são:
• arquivos_busca para o campo arquivo da tabela arquivos, onde estão armazenados
os documentos;
• busca_autor para o campo nome_completo da tabela pessoa, onde se encontra o
nome do autor;
• busca_evento para o campo no nome_evento_por da tabela evento; e
• nome_trabalho no campo titulo da tabela trabalho.
Esses índices foram criados com as configurações de ignorar letras maiúsculas e minúsculas
e acentos nos nomes e palavras.
39
O comando para a criação do índice é, respectivamente:
create index arquivos_busca on arquivos(arquivo) indextype is ctxsys.context parameters ('LEXER MIXED_CASE_LEXER_PREF') ;
Para retornar os resultados da pesquisa foram usados comandos SQL, que fazem acesso aos
campos da base do Elis II, alguns deles fazem acesso aos índices context. O SQL usado para fazer a
pesquisa principal da biblioteca virtual é apresentado na Figura 11.
Figura 11. Pesquisa principal.
Os campos que utilizam os índices context iniciam com CONTAINS, que são no nome do
autor, nome do evento, frase e título do trabalho, se o resultado do comando for maior que 0 (zero) é
por que a condição foi atendida.
40
Com as duas alterações no banco de dados do Elis II foi possível utilizar a busca nos
trabalhos e documentos com a query apresentada acima conseguindo retornar os resultados
desejados.
4.2 Desenvolvimento PHP com Symfony
O framework Symfony, o qual é orientado a objeto e utiliza a linguagem PHP, foi usado
para o desenvolvimento da biblioteca virtual. Com este framework o desenvolvimento ficou
dividido em telas, controle e banco de dados.
Foram desenvolvidas três telas para a biblioteca virtual: a principal, a listagem e a detalhes.
Na tela principal é onde ficam os parâmetros de entrada para as buscas realizadas, a tela listagem
apresenta os resultados da busca para os usuários e a tela detalhes apresenta as informações do
documento escolhido com a opção de download do documento. Para controlar as telas e os dados
apresentados nelas foi desenvolvida uma única classe de controle, que faz todas as validações
necessárias, acesso as telas e ao banco de dados.
4.3 Implantação
Para a implantação da biblioteca virtual na Univali foi criado no cadastro do evento e no
cadastro do trabalho um identificador de autorização da publicação do evento para o acesso da
biblioteca, que preencherá o campo criado na tabela parametro_evento e na tabela trabalho com S
ou N.
As outras duas alterações são a inclusão de um link para a página principal da biblioteca
virtual na página publica do Elis II e a última alteração é a criação dos 4 índices context no banco
de dados para que a ferramenta de busca textual consiga trabalhar e a configuração das preferências
para esses índices. Os comandos para a criação das preferências e para a criação dos índices são os
seguintes:
Preferências:
Ctx_Ddl.Create_Preference ('mixed_case_lexer_pref','BASIC_LEXER');
Ctx_Ddl.Set_Attribute ( 'mixed_case_lexer_pref', 'mixed_case', 'FALSE');
Ctx_Ddl.Set_Attribute ( 'mixed_case_lexer_pref', 'base_letter','TRUE');
41
Índices:
create index arquivos_busca on arquivos(arquivo) indextype is ctxsys.context parameters ('LEXER MIXED_CASE_LEXER_PREF') ; create index busca_autor on pessoa(nome_completo) indextype is ctxsys.context parameters ('LEXER MIXED_CASE_LEXER_PREF') ;
create index busca_evento on evento(nome_evento_por) indextype is ctxsys.context parameters ('LEXER MIXED_CASE_LEXER_PREF') ;
create index nome_trabalho on trabalho(titulo) indextype is ctxsys.context parameters ('LEXER MIXED_CASE_LEXER_PREF') ;
Essas alterações estão sendo feitas pela equipe do DTI – Departamento de Tecnologia da
Informação da Univali, responsável pela manutenção do Elis II.
Após reunião com a DTI e com a responsável pela criação de eventos na Central de Gestão
de Eventos da Univali, definiu-se um novo fluxo de autorização e cadastro dos eventos, conforme
apresentado na Figura 12. Pretende-se que o responsável pelo evento assine um documento
autorizando a publicação do mesmo para o acesso da biblioteca virtual, permitindo que a
responsável na Central de Gestão de Eventos crie o evento autorizando a publicação dos
documentos na Biblioteca Virtual e que também o autor autorize o seu trabalho para a Biblioteca
Virtual na hora da submissão do mesmo. Vale lembrar que somente os artigos aprovados no evento
farão parte da Biblioteca Virtual, jamais sendo apresentados artigos apenas submetidos e não
aprovados. Outro detalhe importante é que os artigos só ficarão disponíveis na biblioteca virtual
após a data de término do evento.
42
Figura 12. Fluxo de cadastro de eventos.
43
5 APRESENTAÇÃO DA BIBLIOTECA VIRTUAL
Neste capítulo é apresentada a ferramenta que foi desenvolvida e seu funcionamento.
5.1 Telas Biblioteca Virtual
Conforme descrito no caso de uso (UC01.01), inicialmente é apresentada a página principal
da Biblioteca Virtual Elis II, onde são solicitados os parâmetros da pesquisa que o usuário pode usar
para buscar os artigos desejados (Figura 13). Os parâmetros autor, evento e trabalho fazem pesquisa
textual no banco de dados em campos de caracteres das tabelas, o campo de data verifica todos os
eventos que tenham data de início entre as datas informadas, a área busca em qual das grandes áreas
de conhecimento1 o evento se encaixa e o campo frase é aquele que faz a busca dentro dos arquivos
de textos armazenados no Elis II.
1 As grandes áreas são a divisão dos assuntos em exatas, humanas, saúde sociais, engenharias, biológicas e outras.
44
Figura 13. Página inicial Biblioteca Virtual
45
Após informados os parâmetros, o sistema realiza a busca dos artigos que satisfazem as
requisições do usuário, e apresenta a página de resultados da busca (Figura 14). O usuário pode
solicitar a apresentação dos detalhes de algum item ou de iniciar uma nova pesquisa. Os dados
apresentados nesta listagem são: quantidade de resultados encontrados, o nome do evento, título do
trabalho e extensão do documento armazenado.
Figura 14. Página de resultados da Biblioteca Virtual
46
Ao selecionar o botão Detalhe, é apresentada a página dos detalhes do item, onde o usuário
tem as opções de voltar para a página de resultados ou fazer download do arquivo, conforme
apresenta a Figura 15. As informações apresentadas aqui são: nome do evento, data do início do
mesmo, a área de conhecimento, a área, idioma em que o texto foi escrito, tipo do trabalho, título do
trabalho, os autores e o resumo. A área conhecimento é a mesma que é apresentada na tela de
parâmetros e são bastante abrangentes como por exemplo humanas e o campo a área é mais restrito,
ou seja, mais aproximado do conteúdo do evento.
Figura 15. Página de detalhes da Biblioteca Virtual
47
Estas são as telas e funcionalidades que serão disponibilizadas para os usuários do Elis II para
facilitar a busca de conteúdo em sua base de dados. Também estará disponível o download dos
arquivos que estão na base do Elis II e foram resultados das buscas da biblioteca virtual.
5.2 Testes
Os testes da Biblioteca Virtual foram realizados com dois eventos disponibilizados pela
Univali, o Slade Brasil 2006 & Encontro Luso-brasileiro de Estratégia e o 3º Congresso de
Extensão Universitária. Este eventos possuem juntos 2370 arquivos armazenados na base do Elis II
divididos em mais de 2400 trabalhos, estes arquivos são somente de extensão .doc, ou seja, arquivos
do Word. A base de autores possui mais de 5200 registros.
Os testes para a biblioteca virtual, realizados somente no ambiente de desenvolvimento, por
ora, foram feitos utilizando todos os parâmetros de busca que são nome do autor, frase, área, nome
do evento, nome do trabalho e data de início do evento.
O conteúdo do campo frase é comparado ao conteúdo dos textos que estão dentro dos
arquivos armazenados no banco de dados, como por exemplo nos .doc ou .pdf. Com estes dados
disponibilizados todas as funções da ferramenta de busca a biblioteca virtual puderam ser testadas.
Apenas a performance dos índices na base de dados completa do Elis II e ambiente de produção da
DTI não pode ser testada, principalmente o impacto da inserção de um novo autor, trabalhos ou um
novo evento.
Os eventos cedidos pela Unvali para os testes contém apenas arquivos em extensão .doc, por
este motivo os testes foram realizados apenas com documentos em World.
Os testes completos, inclusive os de performance e de extensões diferentes, serão feitos
pelos usuários depois da biblioteca virtual implantada na Univali e liberada para uso. Assim os
testes estarão sendo feitos com a base de dados completa o que com certeza trará total
confiabilidade para os mesmos.
Nas Figuras 16, 17, 18 e 19 é mostrado um exemplo de busca feita na biblioteca virtual utilizando vários parâmetros na pesquisa.
48
Na Figura 16 está sendo mostrada a tela inicial da biblioteca virtual com os parâmetros de
busca informados. No campo autor esta informado o nome AnA, na Frase parte de um parágrafo de
um texto, no Evento o inicio do nome do evento e no Trabalho parte do nome do trabalho. Todos
esses campos não diferenciam letras maiúsculas e minúsculas e palavras acentuadas, e as frases e
títulos não precisam estar informados completamente iguais aos dos textos e sim apenas parte deles
para que encontre o resultado.
Figura 16. Tela inicial da biblioteca virtual.
49
Na Figura 17 é apresentado o resultado encontrado para os parâmetros informados na Figura
16, onde se pode observar o Evento e o Titulo do trabalho que foram nos parâmetros.
Figura 17. Tela de listagem dos resultados da pesquisa.
50
E na Figura 18 é então mostrado os detalhes do documento encontrado pela pesquisa
anterior, onde é confirmado o nome do evento, o Titulo do trabalho e o nome da autora.
Figura 18. Tela de detalhes da biblioteca virtual.
51
Na figura 19 esta o texto vinculado ao trabalho encontrado pelos parâmetros de pesquisa
deste exemplo, onde se pode confirmar que a frase pesquisada realmente esta no texto do arquivo.
Figura 19. Arquivo baixado da biblioteca virtual.
Com este exemplo confirma-se que os resultados encontrados pela biblioteca virtual são
condizentes com os todos os parâmetros informados na Tela inicial, dando confiabilidade nos
resultados.
52
6 CONCLUSÕES
Com o desenvolvimento deste trabalho foram estudadas algumas tecnologias de banco de
dados, desenvolvimento Web e pesquisa textual que auxiliaram na construção da biblioteca virtual
para o Elis II. Com este estudo foi possível desenvolver uma ferramenta que vai auxiliar os usuários
do Elis II, resolvendo o problema da dificuldade de busca dos trabalhos na base de dados que era o
real objetivo.
Com a combinação das tecnologias de busca textual em banco de dados que é o Oracle Text
e o framework de desenvolvimento Web em linguagem PHP, que é o Symfony, foi possível fazer
com que uma aplicação Web fizesse buscas em arquivos que estão armazenados dentro de campos
no Banco de dados, mantendo o padrão e a tecnologia adotada no Sistema Elis II.
A busca textual dentro do banco de dados obteve resultados muito confiáveis trazendo
sempre resultados que eram condizentes com os parâmetros informados. A criação das preferências
nos índices context que deixou de fazer distinção de letras maiúsculas e minúsculas e de palavras
acentuadas e não acentuadas, fez com que o número de registros encontrados fosse maior, trazendo
mais opções para os usuários, mantendo a confiabilidade nos resultados.
Sem dúvida o facilitador deste trabalho foi o Oracle text, pois esta ferramenta ficou com o
trabalho de abrir os arquivos que se encontram dentro do banco de dados e fazer a busca pelas
palavras informadas, que era um dos principais objetivos deste projeto.
O framework Symfony possibilitou que o trabalho fosse organizado em classes separadas de
banco de dados, controle e visualização o que condiz com o modelo MVC de programação em
camadas. Com isto o trabalho pôde ser desenvolvido utilizando a orientação objeto para uma maior
organização e melhor entendimento.
Como resultado este projeto obteve a biblioteca virtual que é uma ferramenta de fácil uso,
onde os usuários apenas precisam informar os parâmetros desejados em sua página inicial para
obter os resultados desejados. Todo o trabalho de busca e pesquisa feito pela ferramenta é
transparente para o usuário final o que traz a simplicidade no uso já comentada.
O próximo passo para este trabalho é a disponibilização do mesmo no ambiente de produção
da DTI, bem como seu link para a página de eventos da Univali. Também sugere-se o contato com
53
responsáveis de eventos já realizados através do Elis II com vistas a autorização de seus artigos para
publicação na Web. Desta forma a Univali estará oferecendo mais um serviço e disseminando
conhecimento para a comunidade acadêmica e de pesquisa, através da Biblioteca Virtual Elis II.
54
7 REFERÊNCIAS BIBLIOGRÁFICAS
ALVARES, Miguel Angel. O que é PHP? 2004. 1 f. Disponível em: <http://www.criarweb.com/artigos/202.php>. Acesso em: 27 set. 2008.
ALVES, Adriana Gomes; BOHNER, Andréia B. Gestão de web sites para eventos técnico-científicos suportados por um sistema de informação In: II Simpósio Brasileiro de Sistemas de Informação, 2005, Florianópolis. II SBSI Simpósio Brasileiro de Sistemas de Informação. , 2005.
BALABA, Rodrigo. Dados sobre o Elis II [mensagem pessoal]. Mensagem recebida por [email protected] em 13 ago. 2008.
CONCEITO de banco de dados textual Disponível em: <http://dsc.ufcg.edu.br/~dalton/web/index.php/Labprog1/Experimento_9>. Acesso em: 30 jun. 2008.
DEUTSCH, Leopoldo; MORESI, Eduardo Amadeu Dutra; NEHME, Cláudio Chauke. Tecnologia da Informação Aplicada à Inteligência Competitiva: uma Análise da Solução. Disponível em: <http://www.otg.org.br/textos/artigos_otg/gestaoconhecimento/inteligenciacompetitiva.pdf>. Acesso em: 08 out. 2008.
DINIZ, Patricia. BIBLIOTECA DO FUTURO. Disponível em: <http://www.cgi.br/gt/gtbv/artigo02.htm>. Acesso em: 25 out. 2008.
DUARTE, Carlos; REZENDE Ricardo; RIGHETTI, Rodrigo. Full Text Search no Oracle - Parte 01: Explorando o Oracle interMedia. 2005. 3 f. Artigo Disponível em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=7793>. Acesso em: 07 out. 2008
JESUS, Edmilson Dos Santos de. CONSTRUÇÃO DE UM PROTÓTIPO PARA INDEXAR DOCUMENTOS DE TEXTO LONGO DIRECIONADO AO FIREBIRD. 2003. 48 f. Artigo - Curso de Análise de Sistemas, Universidade Do Estado Da Bahia, Salvador, 2003. Disponível em: <http://www.edmilson.eti.br/publicacoes/monografia.pdf >. Acesso em: 10 jan. 2009.
LEGATTI, Eduardo. Isto é um teste do oracle text. Disponível em: <http://eduardolegatti.blogspot.com/2008/06/um-pouco-do-oracle-text.html>. Acesso em: 20 out. 2008.
MACHADO, Maria Hermínia Veiga de Moura. Biblioteca Virtual uma perspectiva de gestão de recursos de informação. 2003. 43 f. Artigo - Universidade Fernando Pessoa, Porto, 2003. Disponível em: <http://www.cerem.ufp.pt/~nribeiro/aulas/tid/TID_maria_machado.pdf>. Acesso em: 20 set. 2008.
ROCHA, Marcus Vinícios; COSTA, Mateus Conrad B. da; SANTOS NETO, Pedro de Alcântara. Busca por Frases em Bancos de Dados Textuais. Disponível em: <http://homepages.dcc.ufmg.br/~nivio/cursos/pa02/seminarios/seminario3/seminario3.html>. Acesso em: 15 ago. 2008.
55
SANTOS, Edivaldo Vicente Dos. Introdução ao Oracle Text - Parte 01. Disponível em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=8771>. Acesso em: 07 out. 2008 A.
SANTOS, Edivaldo Vicente Dos. Introdução ao Oracle Text - Parte 02. Disponível em: <http://www.devmedia.com.br/articles/viewcomp.asp?comp=8771>. Acesso em: 07 out. 2008 B.
SILVA, Luiz Claudio Marini. UMA ANÁLISE DOS PROCEDIMENTOS DE MINERAÇÃO DE TEXTOS NO SGBD ORACLE 10G: Explorando o Oracle interMedia. 2008. 96 f. Dissertação (Mestrado) - Curso de Engenharia Civil, Universidade Federal do Rio de Janeiro, Rio de Janeiro, 2008. Disponível em: <http://wwwp.coc.ufrj.br/teses/mestrado/inter/2008/Teses/SILVA_LCM_08_t_M_int.pdf>. Acesso em: 10 jun. 2008.
ZANG, Nelson; FELIPIAK, Edinara; SENGER, Igor. Biblioteca Virtual: Conceitos, Metodologia e implantação. Revista de Pesquisa e Pós-graduação, Erechim, n. , p.217-236, 10 jan. 2000. Disponível em: <http://www.uri.br/publicaonline/revistas/artigos/14.pdf>. Acesso em: 20 set. 2008.
ZANINOTTO, François; POTENCIER, Fabien. Tradução do Livro "The Definitive Guide To Symfony". Disponível em: <http://trac.symfony-brasil.com/wiki/documentacao/livro>. Acesso em: 30 set. 2008.