RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA … · 2.1 PHP Criada em 1994 por Rasmus Lerdof,...
Transcript of RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA … · 2.1 PHP Criada em 1994 por Rasmus Lerdof,...
UNIVERSIDADE FEDERAL DE SANTA CATARINA
CENTRO TECNOLÓGICO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA
CURSO DE GRADUAÇÃO DE CIENCIAS DA COMPUTAÇÃO
RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA EM BIBLIOTECAS DIGITAIS
Autor Fernando de Lucca Siqueira
Florianópolis 2009
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE GRADUAÇÃO DE CIENCIAS DA COMPUTAÇÃO
RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA EM BIBLIOTECAS DIGITAIS
Trabalho de Conclusão de Curso
apresentado ao Curso de Ciências da Computação da Universidade Federal de Santa Catarina
para a obtenção do título de Bacharel em Ciências da Computação.
Autor Fernando de Lucca Siqueira
Orientação: Prof. Dr. Roberto Willrich
Florianópolis 2009
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA EM BIBLIOTECAS DIGITAIS
Fernando de Lucca Siqueira
___________________________________
Prof. Dr. Luiz Fernando Friedrich
Coordenador do Curso
Banca Examinadora
________________________________
Prof. Dr. Roberto Willrich (Orientador)
INE/UFSC
________________________________
Prof. Dr. Vitório Bruno Mazzola
INE/UFSC
________________________________
Prof. Dr. Alckmar Luiz dos Santos
CCE/UFSC
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
Resumo
A expansão da Web está facilitando serviços que, antes somente oferecidos em meio físico, pudessem ser implementados no meio digital, tornando o acesso, organização, estrutura mais fácies e baratos. Entre vários serviços existentes, a Biblioteca Digital se destaca em vários aspectos.
Facilitando acesso a obras e informações, uma Biblioteca Digital pode reunir um conjunto enorme de dados que, por sua vez, confunde o usuário. Para melhorar e organizar o resultado surgiram as técnicas de Recuperação de Informação Adaptativa, que tem como papel, reestruturar a apresentação dos dados para melhor aproveitamento.
Essas técnicas se baseiam em um perfil de usuário. Este trabalho propõe uma técnica de Recuperação de Informação com base em um perfil do usuário construído a partir de seu comportamento no sistema, considerando metadados de obras acessadas e construindo um escore para cada metadados. O trabalho também integra a mesma técnuca com um sistema de busca de texto de obras, combinando seus escores. Além disso, disserta sobre o estudo de bibliotecas digitais, recuperação de informação e técnicas de recuperação de informação adaptativa.
Para testar a proposta, a técnica foi implementada na Biblioteca Digital de Literatura Brasileira e Catarinense (BD-LB), desenvolvida no projeto de Sistema de Disponibilização de Informações para o Ensino (SIDIE).
Palavras-chaves: Biblioteca Digital, Recuperação de Informação Adaptativa, Perfil de Usuário, Dublin Core Metadata Iniciative
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
5
Abstract The expansion of Web is facilitating some services, which once existed only in physical way, but now they can be implemented in a digital world, making the access, organization and structure easier and cheaper. One of those services is the Digital Library.
Facilitating the access to books and information, a Digital Library can gather so much data that the user may get confused. For improve and organize the results, techniques of Adaptive Information Retrieval emerged to restructure the data's presentation.
These techniques are based in a user profile. This work propose a Information Retrieval procedure based in a user profile built from his behavior from the system, recital metadata from the accessed books and also building a score to each metadata. This work also integrates this new technique with a full text search system, combining the scores. Moreover, this project is about a study of digital library, information retrieval and methods of adaptive information retrieval.
To test this proposal, the technique was implemented in Biblioteca Digital de Literatura Brasileira e Catarinense (BD-LB), developed on the Sistema de Disponibilização de Informações para o Ensin (SIDIE) project.
Keywords: Digital Library, Adaptive Information Retrieval, User Profile, Dublin Core Metadata Iniciative
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
LISTA DE FIGURAS
Figura 1 Exemplo de consulta no MySQL ............................................................................ 15 Figura 2 Protocolo OAI-PMH .............................................................................................. 21
Figura 3 Arquitetura da BD-LB ............................................................................................ 24 Figura 4 Interface da busca por conteúdo ............................................................................. 27
Figura 5 Interface do HtDig em execução ............................................................................ 28 Figura 6 Interface do perfil do Usuário I .............................................................................. 32
Figura 7 Interface do perfil do Usuário II ............................................................................. 32
Figura 8 Processo de Adaptatividade .................................................................................... 36
Figura 9 Nova arquitetura proposta ...................................................................................... 39
Figura 10 Técnica de RIA anterior, busca por 'Flor' .............................................................. 40
Figura 11 Resultado não adaptado, busca por 'Flor' .............................................................. 46
Figura 12 Resultado adaptado, busca por 'Flor' ..................................................................... 47
Figura 13 Resultado de busca por conteúdo não adaptado, busca por 'Cocheira' ..............
Figura 14 Resultado de busca por conteúdo adaptado, busca por 'Cocheira' .......................... 48
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
48
LISTA DE TABELAS
Tabela 1 Propriedades da Biblioteca Digital segundo Harter ................................................ 18 Tabela 2 Metadados do padrão Dublin Core ......................................................................... 20
Tabela 3 Verbos do padrão OAI-PMH ................................................................................. 22 Tabela 4 Tipos de campos do Zend_Search_Lucene ............................................................. 30
Tabela 5 Exemplo de metadados observados e seus escores ................................................. 42
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
.............................................................................................................................................50
......................................................................................................................................................46 .....................................................................................................................................44
.......................................................................................................................................44 .......................................................................................................................43 ......................................................................................................................40
....................................................................................................................................................39 .....................................................................................................................38
.....................................................................................................38
6.4 Testes
...................................................................................................................................37 .............................................34
..........................................................................................................................33 .....................................................................................................................33
....................................................................33 ............................................................................................33
...................................................................................................................................31 .......................................................................................................................29
....................................................................................................................................................27 ............................................................................................................................26
...............................................................................................................25................................................................................................................25
..................................................................................................................................25 .............................................................................................................................25
................................................................................................................................23 ..........................................................................................23
.............................................................................................................................................21 ....................................................................................................................................................19
...........................................................................................19 ................................................................................................................................17
....................................................................................................................................15....................................................................................................................................................14
.........................................................................................................................................................13 ..........................................................................................................................13
........................................................................................................................ 11 ..................................................................................................................................... 11
................................................................................................................................................. 11 ............................................................................................................................................ 11
................................................................................................................................................. 10
Sumário
1
1. Introdução1.2 Justificativa1.3 Objetivos1.3.1 Objetivo Geral1.3.2 Objetivos Específicos
2
2. Ferramentas Utilizadas2.1 PHP2.2 MYSQL2.3 ZendFramework
3
3. Bibliotecas Digitais3.1 Compartilhamento e Interoperabilidade3.1.1 DCMI3.1.2 OAI-PMH
4
4. Biblioteca Digital de Literatura Brasileira4.1 Arquitetura BD-LB4.1.1 Camada de Dados4.1.2 Camada Lógica4.1.3 Camada de Apresentação4.2 Modelo do Banco de Dados4.3 Busca Por Conteúdo4.3.1 HtDig4.3.2 Zend_Search_Lucene4.4 Perfil do Usuário
5
5. Recuperação de Informação Adaptativa5.1 Conceito e Modelos de Recuperação de Informação5.1.1 Modelos Quantitativos5.1.2 Modelos Dinâmicos5.2 Conceito e Exemplos de Recuperação de Informação Adaptativa5.3 Perfil do Usuário
6
6. Nova Técnica de RIA para a BD-LB6.1 Nova Arquitetura BD-LB6.2 Escore6.2.1 Escore de Preferência6.2.2 Escore de Relevância6.2.3 Escore Final6.3 Implementação
7
7. Dificuldades
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
..............................................................................................................................................55
................................................................................................................................53 ...............................................................................................................................................52
8
8 . Conclusão8.1 Trabalhos Futuros
9
9. Bibliografia
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
10
1. Introdução
A cada dia que passa mais e mais informações vão sendo geradas e distribuídas pelo
mundo. Com a invenção da internet, ficou mais fácil e rápido disseminar essas informações
entre as pessoas. O problema é que nem todos esses dados são aproveitáveis para cada
indivíduo, que passa a perder tempo na seleção de informações úteis ou que são de seu
interesse. Esse problema pode ser aplicado em qualquer área de pesquisa que lida com
grandes quantidades de informações diferentes entre si, como sites de busca, lojas de
produtos e bibliotecas.
Uma das medidas possíveis para tratar o excesso de dados é integrar com a
Recuperação de Informação (RI) o conceito de adaptabilidade, formando assim a uma RI
Adaptativa (RIA), fazendo um tratamento dos resultados obtidos com alguma métrica para a
filtragem e/ou ordenação das informações, entregando ao usuário uma visão personalizada e
reorganizada do resultado anterior. A RIA se faz ainda mais necessária em ambientes com
uma grande coleção de recursos, onde uma busca pode trazer diversos resultados que não
corresponde com o objetivo final. Como as informações, com o passar do tempo, são cada
vez mais geradas, a tendência é de que os recursos vão expandindo.
No cenário de Bibliotecas Digitais tal sistema de RIA torna a busca por obras mais
eficiente e direta. Diferente do uso em sites de buscas, quando um usuário utiliza uma
biblioteca digital, sabe o que procura, tentando encontrar a obra ou autor que busca o mais
rápido possível. Em um sistema de busca baseado em metadados (dados que descrevem
recursos) é normal encontrar vários resultados sobre o termo buscado, dificultando a
identificação do resultado desejado. Uma RIA trataria esses resultados, mostrando para o
usuário os itens mais relevantes de acordo com seu perfil.
Nesse trabalho, aplicado na Biblioteca Digital de Literatura Brasileira (BD-LB) do
projeto Sistema de Disponibilização de Informações para o Ensino (SIDIE), é proposta uma
técnica de RIA baseada em um perfil de usuário, onde cada usuário tem uma conta no
sistema que, por sua vez, constrói um perfil do usuário baseado no seu comportamento. Já foi
feito algo semelhante nessa biblioteca para a busca por autores e obras, a nova proposta é
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
11
expandir essa adaptação para busca por conteúdo e substituir o sistema anterior pelo novo,
analisando seus impactos e comparando seus resultados com o sistema antigo.
1.2 Justificativa
Todo sistema deve ser disposto a um usuário de modo que ele consiga atingir seus
objetivos no menor tempo possível, sendo assim, essencial que se utilize técnicas e
ferramentas para minimizar esse tempo ao máximo.
Quando se trata ainda de grandes quantidades de dados o tempo se torna mais crítico
ainda, pois existem mais informações a serem recuperadas e analisadas pelo usuário.
No cenário de Bibliotecas Digitais, tal problema é constantemente presente, visto que
há uma grande gama de informações disponíveis sobre vários autores e suas obras, tornando
uma busca simples muito ineficiente para o usuário.
1.3 Objetivos
1.3.1 Objetivo Geral
Desenvolver uma ferramenta para o reordenamento das informações recuperadas
através de uma busca no sistema, levando em consideração para esse cálculo, as definições
e atributos do perfil do usuário e implementá-la na Biblioteca Digital de Literatura Brasileira.
1.3.2 Objetivos Específicos
Objetivos específicos desse projeto englobam:
• Compreender e implementar técnicas de adaptação em recuperações de
informações.
• Compreender e estudar a arquitetura da Biblioteca Digital do projeto Sidie
• Estudar a linguagem de programação PHP
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
12
• Estudar o funcionamento e implementação do Sistema de Gerenciamento de
Banco de Dados MySQL
• Estudar e testar o impacto da nova ferramenta no sistema
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
13
2. Ferramentas Utilizadas
2.1 PHP
Criada em 1994 por Rasmus Lerdof, PHP (Hypertext Preprocessor) é uma linguagem
de programação script voltada para a internet. Com o intuito de primeiramente servir como
substituta de um conjunto de scripts em Perl, PHP se tornou uma das linguagens mais
utilizadas na geração dinâmica de páginas web.
Com a expansão da internet e o sucesso da linguagem, Zeev Suraski e Andi Gutmans
reescreveram o analisador, aumentando recursos de orientação a objetos. Mas somente na
versão 5 que tais recursos foram implementados corretamente, como construtores e
destrutores de classe, visibilidade de objetos, etc.
Uma das maiores vantagens do PHP é que não é necessário que a máquina do
cliente tenha o compilador da linguagem, todo o processamento, geração e interpretação do
código é feito em um servidor e depois repassado o código resultante para o cliente, que no
caso da web, é retornado em HTML (Hyper-Text Markup Language).
Uma das características mais marcantes de PHP é ser uma linguagem de tipagem
fraca, que não é necessário definir o tipo das variáveis antes de criá-las, sendo interpretada
no momento que precisar ser utilizada. Isso permite uma manipulação mais fácil das variáveis,
apesar de exigir maior cuidado ao chamar funções para garantir que seu tipo corresponda ao
tipo exigido.
Outra propriedade fundamental da linguagem é o suporta aos SGBDs mais comuns
como Oracle, Sybase, MySQL, ODBC, PostgreSQL, etc. Tal integração é essencial para
websites que utilizem de uma base de dados, seja para armazenar ou para recuperar
informações. A linguagem permite manipulações como conectar a base de dados, realizar
buscas, obter a linha de um resultado, criar banco de dados, etc.
Praticamente todos os sistemas operacionais do mercado têm suporte ao PHP, tal
como servidores web também. Todas essas propriedades juntas tornam PHP uma linguagem
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
14
completa para criação de página web com manipulação de informações armazenadas em
SGBDs.
2.2 MYSQL
MySQL é um Sistema de Gerenciamento de Banco de Dados Relacional (RSGBD)
aberto e livre, sendo o banco de dados mais utilizado em aplicações web. MySQL utiliza a
linguagem Structured Query Language (SQL) para a interface de busca. SQL é o padrão da
maioria dos bancos de dados existentes.
Fundado na Suécia por David Axmark, Allan Larsson e Michael "Monty" Widenius, foi
lançado em 1995 e é até hoje atualizado, estando atualmente na versão estável 5.1.34 (dia
08/05/09).
MySQL é escrito em C e C++, sendo portável para várias plataformas como Windows,
Linux, Mac OS, Solaris, etc.
O que alavancou o uso do MySQL como SGBD foi a integração com o PHP, tornando
a união dos dois uma poderosa ferramenta para desenvolvimento web. Além de PHP, possui
integração com várias outras linguagens como Java, C, C++, Python, Perl, Ruby, .NET, etc.
Dentre outras vantagens podemos citar consistência, alta performance, confiabilidade e de
fácil uso.
Várias empresas utilizam o MySQL, podendo citar Yahoo, Motorola, NASA, Wikipédia,
entre outras.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
15
Figura 1 Exemplo de consulta no MySQL
2.3 ZendFramework
Zend Framework (ZF) é um framework aberto implementado em PHP voltado para a
web. Ele segue o padrão de orientação a objetos, com classes e heranças entre elas.
Segundo FAYAD (1997), “Framework é um conjunto de classes que colaboram para
realizar uma responsabilidade para um domínio de um subsistema da aplicação”. Assim, um
Framework tem como uma de suas finalidades, prover serviços e funções para o suporte de
uma aplicação.
Desenvolvido pela Zend Technologies em 2005 e apresentado na Zend Conference,
ZF é o framework mais completo e eficiente para aplicações web em PHP, sendo lançado
oficialmente em 1 de Setembro de 2007.
O ZF possui uma arquitetura use-at-will (use à vontade), ou seja, mesmo sendo feito
orientado a objeto, existe pouca dependência entre as classes, permitindo então que o
usuário utilize apenas o que precisar dos componentes.
A implementação do framework segue o modelo padrão Model-View-Control (MVC),
usado comumente em aplicações web. Tal padrão faz a separação dos dados (Model) e o
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
16
layout (View) sendo intermediados por um componente de controle (Control), onde se
encontra a lógica do software.
A tecnologia do ZF é utilizada em várias empresas de renome. Podemos citar Fox
Interactive Media's IGN Entertainment division, BM Research & Development Labs' Emerging
Internet Technologies, Indianapolis Motor Speedway, entre outras.
Uma das vantagens do ZF é a grande comunidade por trás do framework, trazendo
atualizações constantes. Existe um grande fórum para usuários reportarem problemas e bugs,
que facilita a melhoria da ferramenta.
Seu uso prático, integração direta com PHP e excelente serviço de suporte
contribuíram para o uso do ZF no desenvolvimento deste trabalho.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
17
3. Bibliotecas Digitais
Com o surgimento da Web, a troca e disponibilização de informações se tornaram
mais prática, rápida e eficiente. Vários setores da sociedade aproveitaram essa tecnologia
para implementar um ambiente real em um virtual, utilizando a Web para difundir e torná-lo
disponível para todos.
O mesmo ocorreu com as Bibliotecas, criando o conceito de Biblioteca Digital. Há
várias definições para o termo Biblioteca Digital, de acordo com suas funcionalidades
oferecidas.
A Digital Library Federation (1988) define bibliotecas digitais como uma organização
que oferece recursos comuns de bibliotecas, como material de consulta, documentos, etc,
além de uma equipe própria e especializada, responsável por organizar, coordenar e dar
assistência aos documentos digitais existentes.
A Digital Libraries Initiative (1988) acrescenta que além de conjunto de dados e de
sua organização, uma Biblioteca Digital deve fornecer serviços para a continuidade, melhoria
e difusão de seu conjunto de informação.
Alguns autores defendem uma visão mais educativa e personalizável de uma
Biblioteca Digital. Lucier (1995) e Fox (1995) dizem que várias outras funcionalidades devem
estar presentes em uma Biblioteca Digital como ensino a distância, publicações,
comunicação, ferramentas personalizadas, interação entre interface e usuário, etc.
Harter (1996) diz que 'Biblioteca Digital’ é o termo mais recente de um conceito antigo,
surgido juntamente com o primeiro computador. Tal conceito define uma biblioteca
computadorizada que iria suplementar, adicionar funcionalidades ou até substituir bibliotecas
tradicionais.
Ele também define algumas propriedades de uma Biblioteca Digital segundo três
visões diferentes; Visão física (baseada na biblioteca tradicional), visão digital (baseada na
internet) e visão intermediária (meio termo entre as duas visões anteriores). Porém, tal
biblioteca pode ser implementada pegando propriedades de todas as visões, não sendo
obrigatório se limitar a apenas uma.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
18
Tabela 1 Propriedades da Biblioteca Digital segundo Harter
VISÃO FÍSICA VISÃO INTERMEDIÁRIA VISÃO DIGITAL
Objetos são fontes de informações
Maioria dos objetos são fontes de informações
Objetos podem ser qualquer coisa
Objetos são selecionados por qualidade
Alguns objetos são selecionados por qualidade
Sem controle de qualidade
Objetos estão em local físico
Objetos estão em lugares lógicos (podem ser distribuídos)
Objetos não estão localizados nem em lugar físico nem lógico
Objetos organizados Sem organização
Objetos estão sujeitos a uma autoridade
Algumas funções de autoridade estão presentes
Sem controle de autoridade
Objetos são fixos (não mudam)
Objetos mudam de forma padrão Objetos podem mudar a qualquer momento
Objetos são permanentes A permanência do objeto é controlada
Objetos podem desaparecer a qualquer momento
Autoria é um conceito importante
Conceito de autor é franco Não há conceito de autor
Objetos são limitados a determinada classes de usuários
Alguns objetos são limitados a algumas classes de usuário
Tudo pode ser acessado por qualquer um
Serviços de assistência são oferecidos
Único serviço oferecido é pelo computador
Existem especialistas na área (Bibliotecários)
Não existem especialistas
Existe um grupo de usuários bem definidos
Algumas classes de objetos tem grupos de usuários definidos
Não existe grupo de usuários definido
Uma biblioteca digital pode, mas não necessita, estar integrada com um ambiente
online, uma vez que, por possuir conteúdo digital, o acesso pode ser feito de qualquer
computador com internet, se tornando a maior e mais atrativa propriedade de uma biblioteca
digital. Tal disponibilização do conteúdo na internet ajuda a difundir cultura e permitir fácil
acesso a obras e documentos.
Um ponto em comum entre as definições e a base de uma Biblioteca Digital é oferecer
conteúdo digital de documentos ou sua representação, além de informações acerca dele, e
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
19
disponibilizá-los para um grupo de pessoas que possam, de alguma forma, manipular os
documentos a seu favor.
3.1 Compartilhamento e Interoperabilidade
Com a expansão da internet e consequentemente, das Bibliotecas Digitais, a
necessidade de padronizar os mecanismos de buscas dessas Bibliotecas. Como cada
sistema era implementado independentemente de outros, não havia um padrão de buscas e
armazenamentos, dificultando uma das maiores propriedades fornecidas por uma Biblioteca
Digital: Compartilhamento de informações.
Existe a visão de arquitetura centralizada, onde a biblioteca não compartilha dados e
utiliza apenas informações que já possui. Já numa arquitetura distribuída aumenta
exponencialmente o acervo disponível, mas requer seguir algum protocolo para garantir a
interoperabilidade entre outras bibliotecas.
Segundo Tazi (2005), documentos disponibilizados por uma biblioteca digital são
descritos por metadados constituídos por um conjunto de atributos ou elementos. Esses
metadados servem para descrever, explicar e localizar os documentos pertencentes a um
conjunto em uma biblioteca, facilitando sua utilização. O grande desafio é decidir quais
metadados são relevantes para descrever um documento de uma biblioteca digital.
3.1.1 DCMI
Dublin Core Metadata Iniciative (DCMI) teve suas origens em outubro 1994, na
Segunda Conferencia Mundial de World Web Wide, em Chigaco. Yuri Rubinsky, Stuart
Weibel, Eric Miller, Terry Noreault e Joseph Hardin discutiram sobre a dificuldade de achar
recursos na internet sobre a visão de Web semântica.
Em 1995, no workshop de metatados em Dublin, Ohio, mais de 50 pessoas discutiram
sobre como um conjunto de termos semânticos iria facilitar a busca e recuperação de
informação na web. Dessa discussão surgiu o DCMI, que é composto de vários grupos, cada
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
20
um atuante em uma área específica, responsável por definir os metadados que descrevem os
documentos relativos a sua área.
Na área de Biblioteca Digital, o grupo de trabalho é denominado DCMI – Libraries
Working Group. Atualmente estão definidos um conjunto de 15 metadados que definem um
documento de biblioteca digital. Tais metadados foram definidos para que possam coexistir
com outros metadados não definidos pela DCMI, ou futuramente decididos.
Tabela 2 Metadados do padrão Dublin Core
METADADO SIGNIFICADO
Title Um título dado ao recurso.
Subject O assunto referente ao conteúdo do recurso, definido com palavras-chave ou tópicos.
Description Uma breve descrição sobre o conteúdo do recurso.
Creator Uma entidade principal responsável pelo conteúdo do recurso
Publisher Um agente ou agência responsável pela disponibilização do recurso em sua forma atual, geralmente uma editora.
Contributor Pessoas, além dos autores que contribuíram substancialmente para o conteúdo do recurso.
Date Data da disponibilização do recurso em sua forma descrita.
Type Tipo do objeto, por exemplo, um livro ou páginas Web.
Format Formato que o recurso assume, geralmente um formato de arquivo, como PDF, HTML, MPEG.
Identifier Uma cadeia de caracteres que identifica exclusivamente o recurso, por exemplo, ISBN e URLs.
Relation Relacionamento, se existir, do recurso com outros recursos, normalmente descrito como parte de um conjunto maior.
Source Outras fontes, se existirem, das quais o recurso se origina.
Language O idioma no qual o recurso foi desenvolvido.
Coverage A área geográfica que o recurso se engloba, se aplicável.
Rights Direitos ou outras propriedades intelectuais especificando as condições através das quais o recurso pode ou não ser usado.
Fonte: Penedo (2005) Uma Técnica de Recuperação Adaptativa de Obras em Bibliotecas Digitais
Baseada no Perfil do Usuário
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
21
3.1.2 OAI-PMH
A iniciativa Open Archives ou OAI, surgiu na Convenção de Santa Fé (Novo México)
em 1999 com a proposta de desenvolver e promover soluções de interoperabilidade que
facilitem uma disseminação eficiente do conteúdo.
Assim foi criado o OAI-PMH (Open Archives Initiative Protocol for Metadata
Harvesting), protocolo baseado na colheita e compartilhamento de metadados dos
documentos existentes. Seguindo o modelo proposto pela DCMI, o OAI-PMH promoveu a
interoperabilidade e compatibilidade entre Bibliotecas Digitais pelo mundo, sendo considerado
o padrão mundial.
São definida duas classes de participantes do protocolo:
• Data Providers (Provedores de Dados): Classe que fornece os dados
(documentos) que implementam o protocolo OAI-PMH
• Service Providers (Provedores de Serviço): Classe que coletam os metadados
dos dados fornecidos por um ou mais provedores de dados
Fonte: Ferneda (2003) Recuperação de Informação: Análise sobre a Contribuição da Ciência da
computação para a Ciência da Informação
Figura 2
Protocolo OAI-PMH
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
22
A comunicação entre o provedor de serviços e de dados se dá com uma requisição ao
provedor de dados, que este por sua vez envia os metadados referentes aos seus
documentos ao provedor de serviços.
O protocolo também define seis verbos que servem como funções de requisição para
o provedor de serviço enviar a um provedor de dados para coletar os metadados de seus
documentos.
Tabela 3 Verbos do padrão OAI-PMH
VERBO SIGNIFICADO
Identify Obtêm dados administrativos sobre o provedor de dados, política de publicação de documentos, etc.
ListSets Lista as classificações sob as quais os documentos são organizados no provedor de dados.
ListMetadataFormats
Lista em que formato os metadados do provedor de dados podem ser apresentados.
ListIdentifiers Lista os identificadores de registros do provedor de dados.
List Records Lista os metadados dos registros por set ou por data.
GetRecords Dado um identificador de registros, obtém os metadados armazenados neste registro.
Fonte: Penedo (2005) Uma Técnica de Recuperação Adaptativa de Obras em Bibliotecas Digitais
Baseada no Perfil do Usuário
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
23
4. Biblioteca Digital de Literatura Brasileira
A BD-LB foi desenvolvida por uma parceria entre o Núcleo de Pesquisas em
Informática, Literatura e Lingüística (NUPILL) e o projeto SIDIE. O NUPILL, que conta com
mais de 12 anos de vida, coletou e armazenou dados que formam atualmente a maior
biblioteca digital de literatura brasileira, a BD-LB. A parceria de mais de 4 anos com o projeto
SIDIE veio aprimorar e desenvolver novas ferramentas de busca e manipulação das obras
existentes. O trabalho proposto nesse documento é um exemplo disso.
O NUPILL atua desde 1995. É vinculado ao Curso de Pós-Graduação em Literatura e
ao Departamento de Línguas e Literaturas Vernáculas do Centro de Comunicação e
Expressão da Universidade Federal de Santa Catarina.
A BD-LB contém em seu acervo mais de 63 mil obras e 15 mil autores, sendo que
dessas, mais de 600 estão disponíveis digitalmente, acessadas através da interface da
biblioteca.
4.1 Arquitetura BD-LB
A BD-LB é definida pela seguinte fórmula:
BD = (D, M, U, UP)
Onde temos:
• D = {di | i Є [1,I]} é o conjunto de documentos que compõem a coleção da BD,
que tem um total de I documentos.
• M = {mdj | j Є [1,J]} é o conjunto de elementos de metadados utilizados para
descrever os documentos da coleção, onde J é o número de elementos de
metadados. A notação di.mdj é utilizada para referenciar o valor do elemento mdj
metadados do documento di. Por exemplo, no caso da BD-LB, o conjunto M é
composto por um subconjunto dos elementos de metadados DC e outros
elementos necessários para a descrição de propriedades específicas de obras
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
24
literárias (por exemplo, gênero literário, crítica literária, fatos históricos e
personagens).
• U = {uk | k Є [1,K]} é o conjunto de usuários registrados do BD, onde K é o
número de usuários registrados.
• UP = {Pk | k Є [1,K]} é o conjunto de perfis de usuários. Cada usuário uk é
associado a um perfil Pk.
Em questão de implementação, a BD-LB tem sua arquitetura na plataforma LAMP
(Linux, Apache, MySQL, PHP) de código livre. Adotou os metadados da DCMI em conjunto
com o protocolo OAI-PMH e se baseia em 3 camadas.
Figura 3 Arquitetura da BD-LB
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
25
4.1.1 Camada de Dados
A Camada de Dados é a camada onde se encontra todos os dados referentes a
biblioteca digital, como os metadados das obras, dados dos autores e usuários, sendo esses
armazenados no banco de dados.
Há também os documentos digitalizados das obras, dispostos em html, pdf, txt, etc.
4.1.2 Camada Lógica
A Camada Lógica compreende da recuperação, modificação e exclusão dos dados. A
inserção de obras e personalização do perfil do usuário são trabalhos dela.
4.1.3 Camada de Apresentação
A Camada de Apresentação é onde o usuário se comunica com o sistema. Serve
tanto para administradores (que possuem poder total de manipulação dos dados),
colaboradores (que possuem poder de inserção e modificação de obras e autores) e usuários
(que apenas consultam os dados pela interface de busca).
4.2 Modelo do Banco de Dados
A BD-LB usa o SGBD (Sistema de Gerenciamento de Banco de Dados) MySQL,
usado para armazenar os metadados referentes aos documentos existentes na Biblioteca.
Inicialmente, o banco de dados contava apenas com informações referentes à BD-LB,
porém no final de 2008 foi introduzido um novo projeto de uma nova biblioteca, batizado de
Pronex, baseada em imagens de documentos recuperados.
Essa nova biblioteca seguiu o exemplo de organização e tipos de documento baseado
em uma arquitetura proposta pela PUCRS, em 1995, por Maria da Glória. Como tais
documentos não se resumem apenas a obras literárias e para manter a proposta de
interoperabilidade entre as bibliotecas, um novo esquema de banco de dados teve que ser
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
26
produzido. Tal modelo manteve o padrão da DCMI e foi baseado em um modelo de herança
de classes.
Foi definida a classe pai PR_DOCUMENTO, classe que contém o conjunto dos 15
metadados definidos pela DCMI, sendo que as classes filhas tem os campos específicos
relativo ao seus documentos.
Tal modelo se mostrou eficiente e cumpriu o dever de promover a integração dos
dados de ambas as Bibliotecas Digitais.
4.3 Busca Por Conteúdo
Quando se tem um acervo razoável de documentos digitalizados, é interessante
fornecer uma ferramenta para busca não apenas por metadados acerca de informações
formais sobre ele, e sim uma ferramenta para a busca no próprio conteúdo do documento.
Uma diferença entre a BD-LB de outras Bibliotecas Digitais é ter esse serviço
disponível para o usuário, que pode procurar por palavras e frases contidas em um
documento digitalizado disponível para consulta. É uma técnica interessante, uma vez que o
usuário pode ter poucas informações a respeito de um documento, mas alguma sobre o
conteúdo de fato.
Um empecilho dessa funcionalidade é quanto ao número de documentos digitais
disponíveis. Poucos documentos tornam a busca pouco eficiente, e muitos tornam a busca
pesada.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
27
Figura 4 Interface da busca por conteúdo
Também é necessário uma ferramenta de indexação, que percorreria os documentos,
ligando cada termo encontrado com seu respectivo documento, permitindo que na
recuperação retorne de fato os documentos relacionados com o termo buscado.
4.3.1 HtDig
No contexto onde se propõe mudar sua arquitetura (busca por conteúdo), antigamente
estava implementada a ferramenta de indexação htdig, escrita na linguagem C++, que dificulta
a integração com o resto da biblioteca, implementada em PHP.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
28
Outra dificuldade é o fato do htdig só poder ser acionado com comando direto no
console do servidor, inibindo assim a possibilidade de ser acionado diretamente do website.
Além disso, ele não suporta a adição única de um novo documento, sendo necessário a
indexação de todos os documentos a cada novo adicionado.
O htdig suporta caracteres especiais (necessários para a língua portuguesa) e possui
busca por todas as palavras, qualquer palavra, frase exata e booleana, podendo o resultado
ser ordenado pelo escore ou algum outro atributo do arquivo (título, dia da criação, etc), outra
dificuldade, pois não há suporte para a ordenação pelo autor, gênero ou outros dados mais
relevantes.
Tais características prejudicam o uso dessa ferramenta para a formação da RIA, já
que os metadados provenientes do perfil do usuário são dos autores e gêneros das obras
identificados pelo usuário ou pelo sistema.
Figura 5 Interface do HtDig em execução
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
29
4.3.2 Zend_Search_Lucene
O projeto Apache Lucene é uma ferramenta de busca e indexação de textos e
documentos de alta performance escrita em Java. O projeto é open source e disponível para
download gratuito no website do projeto.
Ela foi desenvolvida por Doug Cutting e atualmente pertence ao projeto Apache, que
dá continuidade a implantação de novas funcionalidades e melhorias das existentes.
Apesar de ser uma ferramenta poderosa, Lucene é uma biblioteca, sendo necessário
então que o usuário crie os algoritmos para chamar suas funções de indexação e busca.
Os métodos e algoritmos da implementação de Lucene foram exportados para várias
linguagens diferentes de Java como C, Delphi, .NET, Pearl, e PHP, através do Zend
Framework.
O projeto Zend Framework possui vários pacotes de classes que compõe uma ou
mais funcionalidades, sendo que um desses pacotes é o Zend_Search_Lucene, a
implementação da máquina Lucene em PHP.
O Zend_Search_Lucene cria um documento referente à mídia original, podendo ser
adicionado campos que descrevem tal documento como título, autor, caminho do documento,
etc. O conteúdo da mídia é indexado e linkado com o documento criado, criando então uma
relação entre as palavras e o documento.
Tal documento, relativo a classe Zend_Search_Lucene_Document, pode ser
composto de cinco tipos de campos diferentes:
• Keyword: Tipo de campo que é armazenado e indexado, logo ele pode ser usado
tanto para a recuperação quanto para a apresentação dos resultados. Ele não é
separado por palavras, ou seja, é indexado todo seu conteúdo, sendo utilizado
normalmente para campos de identificação e url.
• UnIndexed: Tipo de campo que não é indexado, mas é armazenado, sendo
utilizado na apresentação dos resultados. Serve para campos que não são
buscados, como data de criação.
• Binary: Tipo de campo que não é indexado nem tokenizado, mas armazenado
para recuperação. É usado para dados codificados em binário, como imagens.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
30
• Text: Tipo de campo que é armazenado, indexado e tokenizado. A diferença
desse campo para o Keyword é que agora toda palavra é tokenizada. É utilizado
para indexar campos como título e autor, que são buscados e apresentados.
• UnStored: Tipo de campo que é tokenizado e indexado, mas não é armazenado
no index. Serve para textos longos, como é o caso de obras digitalizadas.
Tabela 4 Tipos de campos do Zend_Search_Lucene
TIPO ARMAZENADO INDEXADO TOKENIZADO BINÁRIO
Keyword Sim Sim Não Não
UnIndexed Sim Não Não Não
Binary Sim Não Não Sim
Text Sim Sim Sim Não
UnStored Não Sim Sim Não
Também é possível criar um documento a partir de um arquivo HTML com a classe
Zend_Search_Lucene_Document_Html. Esse tipo de documento reconhece as tags Html
como campos.
A ferramenta oferece também uma função para otimizar o index. A otimização se faz
necessária, pois a cada documento adicionado, o Lucene trata como um segmento novo,
fragmentando o index. Quando otimizado, todos esses segmentos são unidos, diminuindo o
tamanho do index e melhorando a recuperação.
Como a BD-LB está implementada em um conjunto de PHP e Html, a utilização da
implementação de Lucene em PHP facilita a comunicação entre a API e a Biblioteca Digital.
Outra vantagem é a possibilidade de inserir novos documentos sem a necessidade de
reindexar todos os já presentes. Assim como o htDig, Zend_Search_Lucene tem as opções de
busca por frase exata, todas as palavras ou qualquer palavra.
Por ser um porte de Lucene para outra linguagem, o Zend_Search_Lucene obtêm um
bom desempenho se comparado com outras ferramentas, apesar de relativamente inferior à
original, devido a limitações da linguagem.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
31
4.4 Perfil do Usuário
Um diferencial em relação a alguns sistemas de buscas que a BD-LB possui é a
possibilidade de cadastro de usuário. O usuário cadastrado tem direito a um perfil que é
usado na adaptação de resultados.
O perfil Pk de um usuário uk é definido por:
Pk = (DPUk, PGk, PEk)
Onde temos:
• Dados Pessoais do Usuário (DPU): mantém os dados pessoais do usuário, como
o identificador do usuário, seu nome completo, informações de contato, sua
página Web, e dados de autenticação. Os DPU devem ser explicitamente
informados pelo usuário.
• Preferências Gerais (PG): são as preferências em termos de formato de
apresentação e de conhecimentos gerais do usuário (por exemplo, a lista de
línguas conhecidas). PG deve ser explicitamente informado pelo usuário.
• Preferências específicas (PE) são as preferências do usuário sobre o domínio do
BD. Eles são capturados implicitamente por uma análise de freqüência dos
valores de um subconjunto dos elementos de metadados dos documentos
acessados pelo usuário.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
32
Figura 6 Interface do perfil do Usuário I
Figura 7 Interface do perfil do Usuário II
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
33
5. Recuperação de Informação Adaptativa
5.1 Conceito e Modelos de Recuperação de Informação
Recuperação de Informação se refere a identificar objetos e dados no sistema
referentes às informações fornecidas pelo usuário, mantendo a consistência e representação
dos documentos em relação aos dados alimentados.
As técnicas referentes a recuperação de informação na literatura clássica podem ser
divididas em dois grandes grupos: Modelos Quantitativos e Modelos Dinâmicos.
5.1.1 Modelos Quantitativos
Os modelos quantitativos são baseados na lógica, estatística e teoria dos conjuntos,
apoiados normalmente por um processo de indexação de termos relacionados com a
informação. Entre eles existe o modelo Booleano, caracterizado por usar as expressões
lógicas (AND, OR, NOT) para relacionar o termo buscado com os metadados dos documentos
existentes; o modelo Vetorial, onde cada palavra-chave de um documento está
representada em um vetor, associando o peso da relevância dessa palavra-chave com seu
documento de origem; o modelo Probabilístico, que usa o teorema probabilísticos para definir
a probabilidade de um documento de satisfazer a um termo ou conjunto de termos e o modelo
Fuzzy, que usa a definição de lógica fuzzy onde não existe um valor absoluto e sim relativo a
um grau de pertinência de certo valor a um contexto.
5.1.2 Modelos Dinâmicos
Os modelos dinâmicos por sua vez têm um caráter construtivo, onde os próprios
usuários ajudam a alimentar o sistema para a definição da representação dos documentos.
Eles usam técnicas de IA mais refinadas e baseadas em sistemas de aprendizagem, usando
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
34
coeficientes de associação para estabelecer o ligamento entre os objetos e seus termos.
Entre eles existe o modelo de Sistemas Especialistas, que buscam construir o modelo de um
objeto de acordo com uma pessoa especializada na área, sendo formada por uma base de
conhecimento (extraída do especialista) e um motor de inferência; o modelo de Redes
Neurais, onde se tem modelado neurônios e suas ligações, sendo associada determinados
pesos a cada uma delas, e de acordo com o dado de entrada em um neurônio, a saída final
será o conjunto de documentos relacionados com aquele dado e o modelo de Algoritmos
Genéricos, sendo mais usados em modelos de busca e otimização, visto que algoritmos
genéricos são por definição, utilizados em meios onde não se conhece a natureza do
ambiente, passando por um processo de seleção natural, onde documento é representado
como uma espécie de código genético, e cromossomo é representado por um vetor binário,
sendo que cada elemento armazena um valor binário correspondendo à ausência ou
presença do termo na representação do documento.
5.2 Conceito e Exemplos de Recuperação de Informação Adaptativa
Modelos de Recuperação de Informação tendem a retornar os objetos relacionados
apenas com os termos fornecidos, sem levar em conta preferências e escolhas do usuário,
assim, recuperando dados que podem não ser relativos ou de importância para ele. Nesse
caso, a solução é implantar no modelo de Recuperação de Informação o conceito de
adaptabilidade, fornecendo assim ao usuário os dados que seriam relevantes no seu contexto.
Um Sistema de Recuperação de Informação Adaptativa tem como finalidade usar de
métricas e definições para modificar o resultado gerado por uma recuperação a fim de
fornecer a um usuário um resultado mais condizente com seus interesses.
Existem várias técnicas renomadas de RIA, mas algumas se destacam e são
utilizadas até hoje.
O Mecanismo de Aprendizagem de Park (1998) se baseia em um sistema de
avaliação. O perfil do usuário é construído a partir da avaliação positiva ou negativa que ele
dá aos documentos que visita. São extraído os termos dos documentos, criando então uma
ligação entre o usuário e os dados que ele avaliou positivamente. Existe também a noção de
Termo Frequência (TF), que é usado para calcular o peso dos termos, e Inverso-documento-
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
35
frequência (IDF), que significa que quanto mais certo termo aparece em documentos
diferentes, menor o seu valor para diferenciar tais documentos.
ALIPES, de Windyantoro (1999), se baseia em três descritores, sendo um de longo e
dois de curto prazo, sendo esses positivo e negativo, um perfil de usuário e o algoritmo de
aprendizagem. As palavras chaves utilizam o esquema de peso TF-IDF, onde a frequência de
um termo em um documento é proporcional ao seu peso, e o número de documentos em que
aparece é inversamente proporcional. Nesse sistema, novamente se utiliza da avaliação dos
documentos pelo usuário. Com ela, são formado os vetores de avaliações positivas e
negativas (curto prazo) e o vetor do documento (longo prazo) com ambas as avaliações.
Lui (2001) propôs um Catálogo Eletrônico, um sistema baseado em metadados e
perfil do usuário. O usuário deve explicitar seus interesses em cada tipo de metadado e em
seu valor, dando um peso. Como exemplo, para o metadado cor deu o peso 0.5 e dentro dele,
existe os valores azul, que deu peso 0.2, verde, com peso 0.5 e vermelho, com peso 0.2.
Então um produto de cor vermelho tem o valor de 0.5*0.2 = 0.1. Assim o usuário constrói seu
perfil colocando pesos nos metadados e valores disponíveis.
Wu (2001) apresenta um Modelo de Referência para aplicação em Hipermídias
adaptáveis, construindo o sistema Adaptive Hypermedia Application Model, que se baseia em
três fatores: Adaptação baseada em um modelo de domínio, ter um modelo de usuário que
represente suas preferências e possibilidade de adaptação do conteúdo seguindo o modelo
de domínio e de usuário. O modelo de domínio deve ter a idéia de conceitos e relações de
conceitos. O conceito é um item descritor de valor único, enquanto relações de conceitos
formam um par que relaciona dois ou mais conceitos. O modelo de usuário, por sua vez,
consiste em pares de atributo e valor, onde se é dado um peso para um conceito
armazenado. Deve permitir tanto o usuário explicitar seus valores quanto capturar seu
comportamento no sistema para a construção do perfil.
Em sistemas RIA existem os conceitos de adaptabilidade e adaptatividade. Na
adaptabilidade é fornecido ao usuário a possibilidade de escolher suas preferências e gostos,
explicitando formalmente os dados que gostaria que fossem relevantes na sua modificação da
recuperação. Apesar de ser mais fiel por ter dados explicitados pelo próprio usuário, essa
técnica peca na parte de obrigar ao usuário a passar por esse processo de construção de seu
perfil, podendo ser ignorado.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
36
Já na adaptatividade, o sistema em si busca quais são as preferências e gostos do
usuário baseado no comportamento do próprio usuário enquanto está usando o sistema, se
tornando assim algo automatizado. Assim não é preciso que o usuário alimente o sistema com
seus gostos para a construção de um perfil, mas isso pode resultar em um perfil que não
condiz com a realidade do usuário.
Figura 8 Processo de Adaptatividade
Entre várias técnicas já difundidas e usadas de RIA percebe-se um ponto em comum
que é a construção da adaptabilidade baseada no perfil de usuário. A fim de prover uma
adaptação para um usuário, é essencial construir sua base de perfil, que servirá para
modificar e personalizar a relevância de certo documento em uma recuperação na visão
desse usuário.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
37
5.3 Perfil do Usuário
Uma RIA é construída com a finalidade de facilitar a navegação do usuário. Como na
internet, não se tem um controle certo de quem usa o sistema, não há como fazer uma
adaptação genérica que serviria para todos usuários. Nesse ambiente se faz então necessário
construir o perfil de cada usuário que acessa o sistema.
Em todas as técnicas já citadas faz-se o uso de um perfil de usuário. O problema fica
em como montar tal perfil. Para a construção do perfil, Cazella (2008) sugere dois métodos de
coleta de informações sobre o usuário: Explícita e Implícita.
A coleta explícita se dá normalmente com questionários que o usuário deve
responder. Quanto maior e mais detalhado, mais fiel ao gosto, porém mais tempo vai ser
gasto respondendo as perguntas. Uma alternativa é perguntar a cada item visitado se o
usuário teve uma impressão positiva ou negativa.
A coleta implícita se torna interessante por não precisar que o usuário preencha
campos, sendo montado o perfil de acordo com seu comportamento. Deve-se então analisar
as ações para inferir qual seria a avaliação dele. Entre essas ações ganham destaque a
frequência de visita a um documento, o tempo gasto nessa visita, movimentos do mouse e
barra de scroll. A natureza de tais comportamentos remetem no pensamento do usuário.
Apesar de aparentar mais fiel, a coleta implícita tem alguns defeitos. A falta de
garantia de ser realmente o usuário que está utilizando o sistema no momento e mudanças de
comportamento bruscas podem ferir a confiabilidade da adaptação. Uma abordagem melhor
seria uma mistura das duas coletas, apresentando seu resultado ao usuário e permitindo que
ele altere dados e valores para corrigir eventuais falhas da captura.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
38
6. Nova Técnica de RIA para a BD-LB
A área de Recuperação de Informação Adaptativa é vasta e bem diversificada,
dispondo de variados métodos de recuperação e adaptação de informações já citados nesse
trabalho.
No contexto de Bibliotecas Digitais, a RIA se torna mais relevante ainda, visto que um
acervo grande de documentos tende a gerar um resultado grande em uma recuperação,
sendo necessária a aplicação de um método de organização para que documentos
importantes para o usuário sejam privilegiados.
A nova técnica proposta utiliza os metadados coletados no perfil do usuário de
autores e gênero, combinando dos dois para a formação de um único escore, que será
utilizado como critério de classificação.
Quando se fornece uma ferramenta de busca no conteúdo dos documentos
digitalizados, uma técnica RIA ainda é importante. Alguns termos e frases são amplamente
usados em diversos documentos diferentes, sendo assim interessante um tratamento da
recuperação deixando apenas coisas relevantes a um usuário.
Logo, a técnica é aplicada não somente nas buscas pelos metadados, mas também
na busca por conteúdo das obras disponíveis.
6.1 Nova Arquitetura BD-LB
Para implementar o novo sistema de adaptação na busca no conteúdo das obras, foi
necessário mudar a ferramenta de indexação e procura do HtDig pelo Zend Framework,
causando uma modificação na arquitetura original da BD-LB ao acrescentar um item na
Camada Lógica e um na Camada de Dados.
Na Camada de Dados teríamos os índices, que são os dados provenientes da
indexação dos textos. Eles são gerados automaticamente quando a ferramenta é acionada,
sendo armazenados em arquivos próprios.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
39
Na Camada Lógica acrescentaria a Ferramenta de Indexação. Ela será implementada
utilizando o framework Zend como biblioteca e adicionando funcionalidades referentes a
própria BD-LB.
Figura 9 Nova arquitetura proposta
Além da inclusão dos itens nas camadas, a lógica de busca e recuperação de
informação será modificada. Agora, além de considerar a relevância dos termos buscados,
também se considera um cálculo baseado no perfil do usuário para o ordenamento dos
resultados.
6.2 Escore
Escore é uma pontuação numérica sobre uma função em relação a fatores definidos.
Tal escore serve para organizar e qualificar um item comparado com outro no mesmo
contexto.
Ao contrário da técnica implantada anteriormente por Penedo (2005), que se baseava
em agrupamento da informação recuperada de acordo com o perfil do usuário, o novo sistema
conta com um escore, que serve como item de comparação para o reordenamento dos
resultados.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
40
Nessa técnica utilizamos três escores: Escore de Preferência, Escore de Relevância e
Escore total, baseado na combinação dos dois primeiros.
6.2.1 Escore de Preferência
Para o Escore e Preferência (EP), foi definido dois metadados a serem observados,
autor e gênero. Tais metadados são capturados no acesso do usuário a uma obra disponível
digitalmente no sistema e calculado seus pesos separadamente. O resultado final é definido
por um conjunto de pares ordenados de autor e gênero, formando um escore a cada par
ordenado.
Anteriormente era possível ao usuário explicitar suas preferências de autores e
gêneros, fazendo o sistema ser mais relacionado ao seu gosto. Porém foi considerado que
observar o comportamento do usuário no sistema pode ser mais fiel, além de poupar o
trabalho que ele teria em procurar e cadastrar seus gostos.
Segundo Chen (2002), existe três maneiras diferentes de analisar o comportamento
de um usuário baseando nos metadados observados:
Figura 10 Técnica de RIA anterior, busca por 'Flor'
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
41
• Análise de Existência: todos os valores dos elementos dos metadados
observados dos documentos acessados recebem peso igual de preferência,
independentemente de quando e quantas vezes eles são acessados. Esta
análise é muito simplista e não é adequado para estimar as preferências do
usuário.
• Análise de Freqüência: o peso de preferência associado com um valor de
elemento de metadado observado é definido pelo número de documentos
acessados com este valor. Existem alguns métodos possíveis para estimar o
peso de preferência. No método Whole-History (WH), o peso de preferência é
definido pelo número total de acessos. No método Past-Days (PD), os valores
dos elementos de metadados observados encontrados nos documentos
acessados pelo usuário nos últimos n dias são marcados pela freqüência de
acesso durante o período.
• Análise Recente: ele dá a cada valor do elemento de metadado observado um
peso de acordo com a idade de acesso ao documento com este valor. Chen
define uma equação para calcular o peso baseado na idade acesso.
O tipo de análise depende muito da própria biblioteca digital. Questões como
mudança de preferências do usuário ou se acessos recentes tem mais relevância que antigos
devem ser levadas em conta. No nosso contexto optamos pela Análise de Freqüência, onde
levamos em conta o número de acessos a documentos relacionados com os metadados
colhidos, dado pela fórmula:
wen = numAcessos(moe,ven)/numDocsAcessados(uk)
Onde temos:
• numAcessos(moe,ven) é o número de documentos acessados com o valor do
elemento de metadados mom igual a ven;
• numDocsAcessados(uk) é o número total de documentos acessados pelo usuário
uk.
A análise de frequência reforça ainda mais a opção de capturar os metadados com o
comportamento do usuário. Deixando a opção de escolha, mesmo que definisse seus autores
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
42
preferidos, o número de acesso poderia ser sempre zero, caso nunca acessasse alguma obra
do autor.
Sendo assim, temos o EP (Escore de Autor) dado por:
EPk = {EIAn}, n [1..N]
Onde temos:
• EIAn é o escore do metadado autor n do usuário k
E temos EG (Escore de Gênero) dado por:
EGk = {EIGn}, n [1..N]
Onde temos:
• EIGn é o escore do metadado gênero n do usuário k
Obtendo o EA e o EG podemos montar o EP sobre o par ordenado [A,G]
(autor,gênero), que tem como fórmula:
EPk = {αxEIAn + βxEAIGm}, n [1..N] m [1..M] & α+ β=1
Calculando o escore do usuário k na composição do escore do autor n com peso α
somado ao escore do gênero m com o peso de β. Para esse caso foi definido que ambos
metadados devem ter o mesmo peso, tendo assim α = β = 0.5.
Com isso temos um peso de medida baseado no perfil do usuário. Tal escore é usado
na adaptação nas buscas por obras, ordenando os resultados de acordo com a obra que mais
se encaixar no perfil do usuário. Ele também é utilizado na adaptação da busca por conteúdo
juntamente com o escore calculado pela ferramenta Zend.
Um exemplo hipotético. Suponhamos um usuário André. Foi observado que após um
período, ocorreram10 visitas de obras, sendo 7 de Machado de Assis e 3 de José de Alencar,
sendo que destas foram 8 Contos e 2 Romances. Como resultado, se tem a tabela:
Tabela 5 Exemplo de metadados observados e seus escores
METADADO LISTA DE VALORES Autor
Gênero
VALOR Peso (w) Conto 0,8 Romance 0,2
VALOR Peso (w)
Machado de Assis 0,7
José de Alencar 0,3
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
43
Note que os pesos são obtidos normalizando já o resultado. A partir desta tabela é
montado o EU:
EUandré = {Machado de Assis x Conto = 0,56 ; Machado de Assis x Romance = 0,14 ;
José de Alencar x Conto = 0,24 ; José de Alencar x Romance = 0,06}
6.2.2 Escore de Relevância
A indexação e busca das mídias foi feita usando a biblioteca disponível pelo Zend
Framework. A ferramenta permite um certo nível de personalização das funções, formas de
indexar e até sobre o algoritmo de recuperação de informação, porém foi mantido o original
Escore de Relevância (ER) que se dá pela fórmula:
ERqd = sum(tf(t in d)*idf(t)*getBoost(t.field in d)*lengthNorm(t.field in
d))*coord(q,d)*queryNorm(q)
Onde temos:
• tf(t in d) - Zend_Search_Lucene_Search_Similarity::tf($freq) – Fator de escore
baseado na frequência do termo ou frase no documento
• idf(t) - Zend_Search_Lucene_Search_Similarity::tf($term, $reader) – Fator de
escore de um termo simples com um index específico
• getBoost(t.field in d) – O fator de peso do campo de termo
• lengthNorm($term) – O valor normalizado para um termo a partir do número total
de termos em um campo. Esse valor é guardado no index. Esse valor, junto com
o peso do campo, são guardados em um index e multiplicado em escores a cada
hit de cada campo na busca
• coord(q,d) - Zend_Search_Lucene_Search_Similarity::coord($overlap,
$maxOverlap) – Fator de escore baseado na fração de todos termos da busca
que o documento tem
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
44
6.2.3 Escore Final
O Escore Final (EF), peso que é considerado para a reordenação na busca por
conteúdo, é calculado com a união de ambos os escores anteriores com a fórmula:
EFkd = { αxEPnd + βxERdt}, d [1..D] t [1..T] & α+ β=1
Onde temos:
• EPnd é o escore de preferência de um usuário n em relação aos metadados
autor e gênero de um documento d;
• ERdt é o escore de relevância do conjunto de termos t buscado em relação ao
documento d;
Consideramos que o escore de relevância e de preferência tem o mesmo peso para o
usuário, tendo assim α = β = 0.5. Nada impede porém que se passe a considerar as
preferências do usuário mais importantes que a de relevância ou vice-versa, necessitando
apenas mudar os valores de α e β.
6.3 Implementação
A implementação do sistema teve os seguintes passos:
• Instalação do Zend Framework
• Indexação dos documentos
• Criação do cálculo de escore de preferência
• Criação do cálculo final do documentos na busca por conteúdo
• Criação da reordenação dos resultados
Como o Zend Framework é utilizado importando suas classes e funções, sua
instalação se resume a criar no servidor uma pasta com seus arquivos e classes. Já a
indexação dos documentos requer criação de código.
Na parte de indexação, com o código no apêndice 1, primeiramente foram capturados
todos registros de documentos digitais cadastrados no banco de dados. Com esses dados,
localiza-se a mídia digitalizada no servidor e cria-se a representação do documento que será
indexada e linkada com o original.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
45
Foram selecionados alguns campos para descrever o documento:
• Document_id: O identificador do documento em si. É formado pelo nome do
documento, que é único para cada um. Utiliza o tipo de campo Keyword.
• Url: Localização na web de onde o documento digitalizado se encontra.
Utiliza o tipo de campo UnIndexed
• Title: Título do documento. Utiliza o tipo de campo Text
• Content: Texto do documento digitalizado. Utiliza o tipo de campo UnStored
O código do apêndice 2 mostra a construção da representação do documento que
será indexado. Além de definir os valores dos campos descritos acima, cabe a esse
documento transformar a codificação do texto em UTF-8, codificação suportada pela
ferramenta e que possibilita acentos e caracteres especiais.
Com a representação formada, ela é indexada e se passa para a próxima mídia
digitalizada. Ao fim da indexação, é chamada uma função de otimização. A criação do index é
um processo separado e realizado pelo administrador via console, sem contato com o usuário
e será utilizado apenas na busca por conteúdo.
O cálculo do escore de preferência é feito dinamicamente quando o usuário realiza
uma busca. É feita uma consulta no banco sobre os autores e gêneros capturados,
armazenando o valor normalizado. Quando é feita a consulta relativa a busca do usuário, se
compara os metadados de autor e gênero dos resultados com os dados capturados do perfil,
dando um escore relativo a cada item.
Se for feita uma busca por obras, código no apêndice 3, se normaliza o escore de
preferência e apresenta o resultado para o usuário, reordenando as informações por ordem
decrescente de escore.
Caso seja feita uma busca por conteúdo, código no apêndice 4, é capturado também
o escore de relevância, dado pela ferramenta Zend Framework, e calculado o escore final,
apresentando na interface os três escores, sendo possível reordenar o resultado por ordem
decrescente de cada um deles.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
46
6.4 Testes
Para testar a implementação do sistema primeiramente alocamos alguns alunos de
letras para usar a biblioteca e posteriormente responder a alguns questionários. Porém tal
método focava mais em gostos específicos de cada um e foi abandonado. Por falta de tempo
para implementar outro método, optamos por fazer um teste manual nós mesmos.
Em tal teste consideramos o perfil de usuário Fernando, apresentado nas figuras 6 e 7
desde documento. Para nosso exemplo, vamos focar em alguns dados que podemos
observar nessas figuras. Note que o escore do metadado de autor 'José Martiniano de
Alencar' é 10, sendo o maior escore dos metadados de autores. Observem também que nos
metadados de gênero, 'Romance e Novela' tem escore 12 e 'Teatro' tem escore 8. Seguindo
nosso cálculo de escore de preferência, temos que o par de metadados com maior peso será
o elemento formado por { José Martiniano de Alencar, Romance e Novela } e seguido por {
José Martiniano de Alencar, Teatro }.
Agora para um exemplo prático. Sem estar logado no sistema, Fernando busca por
obras que tenham em seu metadado 'Título' a palavra 'Flor' obtemos o resultado expresso na
figura 11. Em tal resultado a ordenação padrão de apresentação leva em conta a ordem
alfabética do metadado 'Título', podendo também ser organizado por 'Autor', 'Gênero' e
'Ano/Sec'. Como a ordenação está por ordem alfabética, ela não expressa nenhuma relação
com preferências do usuário que está buscando, visto que o primeiro resultado é de um autor
Figura 11 Resultado não adaptado, busca por 'Flor'
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
47
que não está presente nos metadados observados do usuário.
Logando no sistema, Fernando repete a mesma busca (Figura 12). Porém, desta vez,
tem uma ordenação dos resultados por uma nova coluna apresentada, a Escore(Perfil), que é
o escore de preferência baseado no perfil do usuário. Como já esperado, o item que ocupa o
primeiro lugar na ordem é uma obra que contém exatamente o par de metadados { José
Martiniano de Alencar, Romance e Novela }, seguida pela obra que contém o par { José
Martiniano de Alencar, Teatro }. Esses, como visto anteriormente, são os pares de maior peso
que uma obra pode ter com o perfil de Fernando. Também percebe-se que várias obras bem
posicionadas na ordenação contém metadados com alto escore no perfil do usuário como
obras com o gênero 'Romance e Novela'.
Agora supondo que Fernando faça busca por conteúdo pela palavra 'Cocheira' mas
sem estar logado no sistema. A ferramenta irá calcular a relevância do termo em cada obra e
apresentar o resultado com ordenação do escore de relevância, como demonstra a Figura 13.
Nota para o primeiro resultado, 'A Carteria' de Joaquim Maria Machado de Assis, que obteve
um alto escore de relevância e para o décimo segundo resultado, 'A Viuvinha' que contém o
par de metadados { José Martiniano de Alencar, Romance e Novela } que, como visto
anteriormente, tem o maior peso pelo perfil do usuário.
Figura 12 Resultado adaptado, busca por 'Flor'
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
48
Repetindo a mesma busca mas agora logado no sistema, Fernando terá o resultado
da Figura 14. Nota-se diferenças na ordenação do resultado. 'A Viuvinha', antes em décimo
segundo lugar, agora ocupa a terceira colocação devido ao escore de preferência elevado,
que serviu para aumentar seu escore final combinado com o escore de relevância. A obra 'A
Carteira' continua em primeira, visto seu alto escore de relevância e por ter também um certo
escore de preferência, que combinados, ainda superaram os demais escores finais das outras
obras que teriam maior relação com o perfil do usuário.
Figura Resultado de busca por conteúdo adaptado, busca por 'Cocheira'
Figura Resultado de busca por conteúdo não adaptado, busca por 'Cocheira'
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
14
13
49
Esses testes demonstram que a ferramenta realmente cumpre seu papel em
reordenar os resultados de acordo com um perfil de usuário, apresentando as obras de
acordo com suas preferências e não ordem alfabética ou numeral.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
50
7. Dificuldades
Como todo trabalho, a construção do novo sistema de RIA teve suas dificuldades que
tiveram que ser contornadas ou deixadas de lado para futuros consertos.
• HtDig
• Problema: HtDig era a ferramenta de indexação e busca por conteúdo
originalmente implementada na BD-LB. Seu maior empecilho para o novo sistema era
sua linguagem em C++ e a falta de uma função de retorno do valor do escore. A
ferramenta, apesar de calcular corretamente o escore da busca, não permitia que se
pudesse coletar esse dado.
• Solução: A troca do HtDig pelo Zend Framework, que além de
implementado em C++, possui fácil interface e a função de retorno do escore.
• Pronex
• Problema: Um novo projeto de biblioteca digital surgiu e com estrutura
muito diferente da BD-LB.
• Solução: Modelar e implementar um novo esquema de banco de dados
que permitiria a integração de ambas bibliotecas, mantendo a interoperabilidade entre
elas.
• Codificação do Texto
• Problema: Por falta de padronização, alguns documentos digitalizados
tinham codificações diferentes do texto, alguns em UTF, outros em ISO e até em ASCII.
• Solução: O problema realmente recaía sobre a codificação ASCII. O
Zend_Search_Lucene tem suporte para codificação UTF-8 e o PHP consegue
transformar um texto codificado em ISO para UTF-8, mas não de ASCII. Problema foi
resolvido implementando a mão um algoritmo que substitui uma string codificada em
ASCII para uma em UFT-8.
• Estouro de Memória do Zend
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
51
• Problema: Algumas vezes, procurando por 'frase exata' e utilizando muitos
termos comuns de texto (a, o, um, da, etc) ocorre um estouro de memória e a
ferramenta não consegue encontrar o resultado.
• Solução: Não foi encontrada uma solução. Foi feito testes separando o
arquivo de index para não sobrecarregar tudo em um arquivo e pensou em excluir os
termos comuns de indexação (o que era inviável). Como nenhuma das alternativas
funcionaram, acredita-se que seja um bug da ferramenta que já foi notificado à equipe
de desenvolvimento. Deve ser consertado em futuras versões.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
52
8 . Conclusão
O mundo está evoluindo e gerando cada vez um conjunto maior de informações uma
vez que a informação nunca é destruída e sempre é gerada. A internet comprova esse fato e
reforça que além da grande gama de informações, é rapidamente disseminada por toda a
rede. Tais informações em grande quantidade podem ser prejudiciais uma vez que se busca
por algo em específico. Um meio de ajudar nessa situação é adaptar o resultado obtido.
Nesse trabalho foi estudado diversos meios de adaptação de recuperação de
informações que buscam apresentar ao usuário os resultados mais condizentes com o que
busca. Um modelo de adaptabilidade baseada em um perfil de usuário permite que se adapte
o resultado individualmente, facilitando a busca não só de um grupo, mas de todos usuários
cadastrados.
Uma adaptação se mostra eficiente e evita perda de tempo, procurando resultados. A
técnica proposta, ordenando os resultados por um escore considerando perfil do usuário, tem
suas qualidades e defeitos. Podemos destacar como qualidades:
• Implementação fácil
• Não exige que o usuário defina suas preferências
• Facilita encontrar obra já visitada
• Para resultados grandes apresenta melhor os itens que combinam mais com as
preferências do usuário
Entre defeitos, encontramos:
• Dificuldade para encontrar obras não visitadas
• Para resultados pequenos não é muito eficiente
• Análise de frequência pode não relacionar com verdadeiro gosto do usuário
O trabalho também ajudou a compreender a importância da adaptabilidade em um
sistema de recuperação de informações e a necessidade de apresentar resultados da melhor
maneira possível para o usuário.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
53
Com estudo da arquitetura da BD-LB, se observou que ela está condizente com os
padrões difundidos mundialmente, seguindo o modelo recomendado na literatura da união dos
metadados DCMI e padrão OAI-PMH.
Além dos aprendizados já citados, o trabalho forçou a entender e pesquisar sobre a
linguagem de programação PHP e o SGBD MySQL, ferramentas que se mostraram
excelentes para aplicações na web e trabalham em perfeita sintonia.
8.1 Trabalhos Futuros
Sistemas de RIA é um assunto ainda em discussão na informática, principalmente em
ambientes Web, onde o desconhecimento sobre quem está utilizando o sistema acarreta na
falta de um tratamento adequado ao usuário.
No ambiente de Bibliotecas Digitais, tal sistema se torna poderoso, uma vez que o
usuário comum utiliza a ferramenta para busca de informações específicas, relacionadas com
seus gostos e opiniões.
Apesar da proposta deste trabalho, várias outras funcionalidades podem ser
adicionadas, tornando o sistema mais completo. Dentre elas pode destacar:
• Uso de outros Metadados: Os metadados considerados nesse trabalho foram
Autor e Gênero, porém existem outros referentes tanto ao padrão Dublin Core
quanto a outros padrões de metadados, que poderiam ser relevantes em outro
ponto de vista.
• Uso de outras Métricas de Escore: A análise de frequência se mostrou eficiente
no contexto de Biblioteca Digital mas não é perfeita. Existem outras métricas de
coleta de informações que poderiam ser utilizadas.
• Uso de Ontologias: Web Semântica é uma área nova, porém com grande
potencial. Apesar dos protocolos baseados em metadados serem de grande
valor, a utilização de uma descrição semântica dos documentos é uma
alternativa interessante.
• Recomendação: Um sistema muito utilizado em lojas virtuais é a recomendação
de produtos. Uma vez que a pessoa se interessa em um produto, o sistema
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
54
fornece alternativas ou produtos compatíveis com o perfil do usuário. Tal sistema
poderia ser adaptado a obras literárias.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
55
9. Bibliografia
Apache Lucene Overview; Apache Lucene; disponível em http://lucene.apache.org/java/docs/index.html acesso em 01/11/08
Atkinson, Ross. "Library functions, scholarly communication, and the foundation of the digital library: Laying claim to the control zone." Library Quarterly 66 (1996): 239-265.
Cazella. Silvio César. Sistemas de Recomendação para E-Commerce, Escola Regional de Banco de Dados, Florianópolis2008
Chen, M., LaPaugh, A.S., Singh, J.P. Predicting Category Accesses for a User in a Structured Information Space. SIGRI’02, August 11-15, 2002, Tampere, Finland.
Chen, Mao, Paugh, Andrea La; Singh, Jaswinder Pal. Categorizing Information Objects from User Access Patterns. CIKM’02, November 4-9, MCLean, Virginia, USA. ACM 2002.
Creating A Fulltext Search Engine In PHP 5 With The Zend Framework's Zend Search Lucene; phpRiot; disponível em http://www.phpriot.com/articles/zend-search-lucene/ acesso em 30/03/09
DCMI, Libraries Working Group. DC- Library Application Profile. Disponível em: http://dublincore.org/ acesso em 05/11/08
DLF, Digital Library Federation.Waters, Donald J. What are Digital Libraries ? Clir issues number 4, july/august 1998. Disponível em: http://www.clir.org/pubs/issues/issues04.html acesso em 08/12/09.
FAYAD, Mohamed; Schmidt, Douglas. Object-Oriented Application Frameworks. Communications of the ACM, New York, v. 40, n. 10, p. 32-38, Oct. 1997.
Ferneda, Edberto. Recuperação de Informação: Análise sobre a Contribuição da Ciência da computação para a Ciência da Informação. Tese de doutorado USP, 2003
Fox, Edward A. Digital Libraries. Communications of the ACM, 38(4), april/1995, pp.23-8.
Garcia, Patrícia de Andrade Bueno; O Protocolo OAI-PMH Para Interoperabilidade em Bibliotecas Digitais; I Congresso de Tecnologias Para Gestão de Dados e Metadados do Cone Sul, 2003
Harter, Stephen P. ; What is a Digital Library? Definitions, Content, and Issues; disponível em http://php.indiana.edu/~harter/korea-paper.htm acesso em 10/04/09
Introduction to Zend Framework; Zend Framework; disponível em http://framework.zend.com/manual/en/introduction.html acesso em 31/03/09
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
56
Liu, Duen-Ren; Lin, Yuh-Jaan; et.al. A Framework for Personalized E-Catalogs: an Integration of XML-based Metadata, User Models and Agents. Proceedings of the 34 th Hawaii International conference on System Sciences – IEEE. 2001.
Lucier, Richard E..Buindilg Digital Library for The Healt Science: Information Space Complementign Information Place. Bulletin of The Medical Library Association, 83 (3) jul/1995, pp. 346-50.
MySQL :: The world's most popular open source database, MySQL; disponível em http://www.mysql.com/ acesso em 08/04/09
NaHipermídia, Adaptabilidade x Adaptatividade, disponível em http://www.nahipermidia.com/blog/?p=50 acesso em 01/11/2008
OAI. The Open Archives Initiative Protocol for Metadata Harvesting. Disponível em: http://www.openarchives.org/OAI/openarchivesprotocol.html acesso em 05/11/08
Park ,Youn-Woo; Lee, Eon-Seok. A New Generation Method of An User Profile for Information Filtering on the Internet. 13 th International Conference on Information Networking (ICOIN’98), January, 21-23 1998. Tokyo, Japan.
Penedo, Sérgio Murilo; Uma Técnica de Recuperação Adaptativa de Obras em Bibliotecas Digitais Baseada no Perfil do Usuário; Tese de doutorado UFSC; 2005
PHP: Hypertext Preprocessor; disponível em http://www.php.net/ acesso em 31/03/09
Pickler, Kênia Karim; da Silva, Marcelo Viana; Hipermídia Adaptativa em Biblioteca Digital; Trabalho de Conclusão de Curso, UFSC 2003
Porque MySQL? ; MySQL Brasil; disponível em http://www.mysqlbrasil.com.br/?q=node/2 acesso em 08/05/09
Speroni, R. M., Lima, C.V., Dias, A.L.O., Willrich, R. Uma Biblioteca Digital Aberta com Serviços Personalizados. Anais do II Workshop de Biblioteca Digitais, p. 11-20, 2006.
Tazi, S. Description of multimedia documents, standards and trends (in French). Les hypermédias, Conception et Réalisation, Hermès, Imad Saleh (Editeur), pp. 277-308, Avril 2005.
Tazi, S. Description of multimedia documents, standards and trends (in French). Les hypermédias, Conception et Réalisation, Hermès, Imad Saleh (Editeur), pp. 277-308, Avril 2005
Widyantoro, Dwi H.; Thomas R. Loerger; John Yen. An Adaptive Algorithm for Learning Changes in User Interests. CIKM’99- Kansas City, MO, USA. ACM- 1999.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
57
Wu, Hongjing; Erik de Kort, Paul de Bra. Design Issues for General Purpose Adaptive Hypermedia Systems. HT’01, AARHUS, Denmark. ACM- 2001
Zend_Search_Lucene; Zend Framework; disponível em http://framework.zend.com/manual/en/zend.search.lucene.html acesso em 01/11/08
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
58
APÊNDICES
Apêndice 1 – Código Fonte do arquivo list.php <?php require('Zend/Search/Lucene.php'); require('PhpRiotIndexedDocument.php'); require "../comuns/connect.php"; require "../Consulta/functions/functionsProfile.php"; require('Zend/Memory.php'); $backendOptions = array( 'cache_dir' => 'tmp/' ); $memoryManager = Zend_Memory::factory('File', $backendOptions); $index = Zend_Search_Lucene::create('indexes'); Zend_Search_Lucene_Analysis_Analyzer::setDefault(new
Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive()); $db = conecta_base_dados(); $result = mysql_query("SELECT * FROM Midia WHERE idTIPO =12 ORDER BY `objm` ASC", $db); $num = mysql_num_rows($result); $j=0; $array = array(); while ($row = mysql_fetch_array($result)){ array_push($array, $row); } for($j=0;$j<$num-2;$j++){ $document = $array[$j]['objm']; $document=$document.".html"; $doc = new PhpRiotIndexedDocument($document); $index->addDocument($doc); echo "\n ADICIONADO DOCUMENTO ".$j; $index->commit(); echo "\n COMITADO DOCUMENTO ".$j."\n"; flush(); } $index->optimize(); echo "OTIMIZOU \n"; unset($index);
Apêndice 2 - Código Fonte do arquivo PhpRiotIndexedDocument.php <?php require_once('Zend/Search/Lucene.php'); class PhpRiotIndexedDocument extends Zend_Search_Lucene_Document { public function __construct($document) { $analyzer = new
Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive; Zend_Search_Lucene_Analysis_Analyzer::setDefault($analyzer); $identf = substr($document, 0, -5); echo $identf."\n"; $db=conecta_base_dados(); $querySQL = "SELECT * FROM `Midia` WHERE `objm` LIKE '%$identf%' ";
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
59
$resultado = mysql_query($querySQL,$db); echo mysql_error($db); $array2 = array(); while ($row = mysql_fetch_array($resultado)){ array_push($array2, $row); } $title = $array2[0]['Titulo']; mysql_free_result($resultado); if($title==''){ $title = 'Sem Titulo'; } $fileContent =
file_get_contents("/var/www/html/bdnupill/arquivos/texto/".$document); $char_incorretos = array("\"", "\'"); $char_corretos = array("",""); $er = "/charset=(\".*?\"|[A-Za-z0-9_]*?).*?\">/"; preg_match($er,$fileContent,$charset); if($charset[0]=="charset=us-ascii\">"){ $char_incorretos = array(
"\"","\'","ã","õ","ç","á","é","í","ó","ú","à","è","ì","ò","ù","â","ê","î","ô","û"," ");
$char_corretos = array( "","","ã","õ","ç","á","é","í","ó","ú","à","è","ì","ò","ù","â","ê","î","ô","û",""); $contents = strip_tags($fileContent); $contents = str_replace($char_incorretos, $char_corretos, $contents); } else{ $contents = strip_tags($fileContent); $contents = str_replace($char_incorretos, $char_corretos, $contents); $contents = utf8_encode($contents); } $this->addField(Zend_Search_Lucene_Field::Keyword('document_id', $document,'UTF-8')); $this-
>addField(Zend_Search_Lucene_Field::UnIndexed('url',"http://www.literaturabrasileira.ufsc.br/arquivos/texto/".$document,'UTF-8'));
$this->addField(Zend_Search_Lucene_Field::Text('title',$title,'UTF-8')); $this->addField(Zend_Search_Lucene_Field::UnStored('content',$contents,'UTF-8')); echo "TITULO= ".$this->title."\n\n"; unset($fileContent); unset($contents); } } ?>
Apêndice 3 -ResultadoAdaptadoBusca.php <?php $msgcab = "Resultado da Busca Adaptada"; require "../../comuns/connect.php"; require "../functions/functionsProfile.php"; if (!isset($db)){ $db=conecta_base_dados(); } require "../../comuns/css.php"; echo $css;
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
60
$autoresScoreBusca = "SELECT autor, escore FROM ad_autores_preferidos p WHERE p.usuario='$id'";
$autorEscore = array(); $result1 = mysql_query($autoresScoreBusca ,$db); while ($row = mysql_fetch_array($result1)){ array_push($autorEscore, $row); } $autorTot = 0; for($i=0;$i<count($autorEscore);$i++){ $autorTot = $autorEscore[$i][1]+$autorTot; } for($i=0;$i<count($autorEscore);$i++){ $autorEscore[$i][1] = $autorEscore[$i][1]/$autorTot; } $generoScoreBusca = "SELECT cod_genero, escore FROM ad_usuario_genero p WHERE
p.cod_usuario='$id'"; $generoEscore = array(); $result1 = mysql_query($generoScoreBusca ,$db); while ($row = mysql_fetch_array($result1)){ array_push($generoEscore, $row); } $generoTot = 0; for($i=0;$i<count($generoEscore);$i++){ $generoTot = $generoEscore[$i][1]+$generoTot; } for($i=0;$i<count($generoEscore);$i++){ $generoEscore[$i][1] = $generoEscore[$i][1]/$generoTot; } if($ordenacaoPesq=="") $ordenacaoPesq = "Titulo"; if($tipobusca=="simples"){ require "mysqlSimples.php"; }else{ require "mysqlObra.php"; } $query = $query." order by ".$ordenacaoPesq; $result = mysql_query($query, $db); $numArray = mysql_num_rows($result); echo " <a href=javascript:history.back(1) target=corpo class=txmf
onMouseOver=this.className='botaoPress'; onMouseOut=this.className='txmf';><font color=blue>Voltar</a><br>";
if ($numArray==0) { echo("<FONT class=txmf>Nenhuma <strong>obra</strong> foi encontrada com
estas descrições. <br><br>"); } else { $array = array(); while ($row = mysql_fetch_array($result)){ array_push($array, $row); } $escorePerfil = array(); $escorePerfilTotal = 0; for($i=0;$i<$numArray;$i++){ $escorePerfil[$i]=0;
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
61
for($j=0;$j<count($autorEscore);$j++){ if($array[$i]['Codigo_Autor']==$autorEscore[$j][0]){ $escorePerfil[$i]=$autorEscore[$j][1]/2; } } for($j=0;$j<count($generoEscore);$j++){ if($array[$i]['idGenero']==$generoEscore[$j][0]){
$escorePerfil[$i]=$escorePerfil[$i]+($generoEscore[$j][1]/2); } } $array[$i]['escorePerfil']=$escorePerfil[$i]; $escorePerfilTotal = $escorePerfilTotal+$array[$i]['escorePerfil']; } for($i=0;$i<$numArray;$i++){ $array[$i]['escorePerfil']=$array[$i]['escorePerfil']/$escorePerfilTotal; } if($escore=="sim"){ foreach($array as $temp_list) { $sort_aux[] = ($temp_list['escorePerfil']); } array_multisort($sort_aux, SORT_DESC, $array); } $adaptado="sim"; require "imprimeObra.php"; } ?>
Apêndice 4 - Código Fonte do arquivo Resultado_ZendAdaptado.php <? session_start("obras"); require "../../comuns/connect.php"; require "../../comuns/inverte_dataNormal.php"; require "../functions/functionsProfile.php"; if (!isset($db)){ $db=conecta_base_dados(); } require "../../comuns/css.php"; echo $css; set_include_path('/var/www/html/bdnupill/pronex/zend'); $db = conecta_base_dados(); $autoresScoreBusca = "SELECT autor, escore FROM ad_autores_preferidos p WHERE p.usuario='$id'"; $autorEscore = array(); $result1 = mysql_query($autoresScoreBusca ,$db); while ($row = mysql_fetch_array($result1)){ array_push($autorEscore, $row); } $autorTot = 0; for($i=0;$i<count($autorEscore);$i++){ $autorTot = $autorEscore[$i][1]+$autorTot; } for($i=0;$i<count($autorEscore);$i++){ $autorEscore[$i][1] = $autorEscore[$i][1]/$autorTot; }
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
62
$generoScoreBusca = "SELECT cod_genero, escore FROM ad_usuario_genero p WHERE p.cod_usuario='$id'";
$generoEscore = array(); $result1 = mysql_query($generoScoreBusca ,$db); while ($row = mysql_fetch_array($result1)){ array_push($generoEscore, $row); } $generoTot = 0; for($i=0;$i<count($generoEscore);$i++){ $generoTot = $generoEscore[$i][1]+$generoTot; } for($i=0;$i<count($generoEscore);$i++){ $generoEscore[$i][1] = $generoEscore[$i][1]/$generoTot; } ini_set("memory_limit","128M"); echo ("<body leftmargin='0' topmargin='0' marginwidth='0' marginheight='0' alink=".$cor_texto_lin."
vlink=".$cor_texto_lin." link=".$cor_texto_lin."><table width=100% bgcolor=#F2F2F2> <tr> <td width=3%></td>
<td width=94%><FONT class=txm>Resultado da Busca</font> | <a href=javascript:history.back(1) target=corpo class=lma onMouseOver=this.className='botaoPress'; onMouseOut=this.className='lma';>Volta</a></font><br>");
//----------imprimir--------------------------------------------------------------------------- $conteudo = ""; function imprimir_Obra($row, $pagina, $anterior, $cor) { $pagTemp = $pagina; if (($row['secEsc']!='')||($row['dataEs1']!='')) { if ($row['dataEs1']!='') { $data = $row['dataEs1']; } else { $data = $row['secEsc']; } } else { if ($row[10]!='') { $data = $row['dataEd1']; } elseif ($row[9]!='') { $data = $row['sec']; } } if (isset($data)){ $ano = $data; }else{ $ano = ""; } echo(" <tr class=".$cor."> <td><a href=Catalogo.php?obra=$row[0]&pagTemp=$pagTemp style='text-
decoration:none;'><b>$row[1]</b></a></td> <td><a href=../Autor.php?autor=$row[2] style='text-
decoration:none;'><b>$row[3]</b></a></td> <td><a href=resultadoAvancado_sec.php?genero_Literario=$row[4] style='text-
decoration:none;'><b>$row[5]</b></a></td>");
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
63
echo(" <td><a href=resultadoAvancado_sec.php?ano1=$ano&ano2=$ano style='text-decoration:none;'><b>$ano</b></a></td>
<td align='center'>"); if ($row['url'] != "") { $resultadoContador = mysql_query("select SUM(visitas) from Midia where Obra=
".$row['CodMaterial']); $visitas = mysql_fetch_array($resultadoContador); mysql_free_result($resultadoContador); ?><a href="<?echo $row['url'];?>"
target="_blank"><center><img src=../img/cliqueaqui.gif border=0></a><? echo("(".$visitas[0].")"); } echo("</td> <td>"); if ($row['escore'] > -1) { echo($row['escore'] ); } echo("</td> <td>"); if ($row['escorePerfil'] > -1) { echo($row['escorePerfil'] ); } echo("</td> <td>"); if ($row['escoreTotal'] > -1) { echo($row['escoreTotal'] ); } echo("</td></tr> "); } //------fim imprimir-------------------------------------------------------------------------------- require '../../zend/Zend/Search/Lucene.php'; Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('UTF-8'); $index = Zend_Search_Lucene::open('../../zend/indexes'); $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive; Zend_Search_Lucene_Analysis_Analyzer::setDefault($analyzer); $busca = ltrim($busca); $busca=$textBusca; $textBusca = strtolower($textBusca); $char_incorretos = array(",", ".","?","!","-",";"); $char_corretos = array("","","","","
","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""); $textBusca = str_replace($char_incorretos, $char_corretos, $textBusca); $textBusca = utf8_encode($textBusca); $words1 = explode(" ",$textBusca); $words = $words1; if($tipobusca=="frase"){ $query1 = new Zend_Search_Lucene_Search_Query_Phrase(); for($w=0;$w<$i;$w++){ if($words[$w]!=''){ $query1->addTerm(new Zend_Search_Lucene_Index_Term($words[$w])); } } }else{ $query1 = new Zend_Search_Lucene_Search_Query_MultiTerm(); for($w=0;$w<count($words1);$w++){ if($words[$w]!=''){ if($tipobusca=="palavras"){
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
64
$query1->addTerm(new Zend_Search_Lucene_Index_Term($words[$w], 'content'), true); } else {
$query1->addTerm(new Zend_Search_Lucene_Index_Term($words[$w], 'content')); } }
}} $db = conecta_base_dados(); $scoreTot = 0; $t = 0; $array = array(); $index = Zend_Search_Lucene::open('../../zend/indexes'); $hits1 = $index->find($query1); $numArray = count($hits1); if($numArray!=0){ foreach ($hits1 as $hit) { $docid = substr($hit->document_id, 0, -5); $query2 = "SELECT h.idObraLiteraria AS codMaterial, d.Titulo AS tit,
a.Codigo_Autor AS codAutor, concat( a.Nome_Autor, ' ', a.Sobrenome_Autor ) AS nomeautor, i.descr AS idioma, g.Nome AS genero, h.DataEdicao1 AS dataEd1, d.DataProducao AS dataEs1, h.SeculoPub AS sec, h.SeculoProd AS secEsc, g.idGENERO as generoId , (
SELECT count( codigo_midia ) FROM Midia WHERE obra = h.PR_DOCUMENTO_CodMaterial ) AS midias, ( SELECT count( Codigo_Critica ) FROM Criticas WHERE codigo_obra = h.idObraLiteraria ) AS critica, CodMaterial FROM Midia t INNER JOIN PR_OBRALITERARIA h ON ( h.PR_DOCUMENTO_CodMaterial = t.Obra ) INNER JOIN PR_DOCUMENTO d ON ( h.PR_DOCUMENTO_CodMaterial = d.CodMaterial ) LEFT JOIN PR_AUTORDOCUMENTO ad ON ( ad.PR_DOCUMENTO_CodMaterial = d.CodMaterial ) INNER JOIN Autores a ON ( ad.Codigo_Autor = a.Codigo_Autor ) INNER JOIN PR_GENERO g ON ( d.GENERO_idGENERO = g.idGENERO ) INNER JOIN idioma i ON ( d.Linguagem = i.codigo ) WHERE (t.objm LIKE '".$docid."')"; $result = mysql_query($query2,$db); while ($row = mysql_fetch_array($result)){ array_push($array, $row); } if($array[$t][1]==''){ $t--; }else{ $array[$t]['escore']= $hit->score; $array[$t]['url']= $hit->url; $scoreTot = $scoreTot+$hit->score; } $t++; } } unset($index); $numArray = count($array); if($numArray==0){ echo ("<FONT class=txmf>Nenhuma <strong>obra</strong> foi encontrada com estas
descrições : <b>".$busca."</b>"); } else{ $char_incorretos = array(" ");
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
65
$char_corretos = array("%20"); $nextbusca = str_replace($char_incorretos, $char_corretos, $busca); echo ("<FONT class=txmf><STRONG>$numArray</STRONG> obras encontradas com estas
descrições. Busca por ' <strong> $busca </strong> '.</font>"); echo ("<br>"); echo ("<br>"); echo (" <table width='100%' border='0' cellpadding='3' cellspacing='1'> <tr class='tr0'> <td width='30%'><left><b>Título da Obra</left></td> <td width='25%'><left><b>Autor</left></td> <td width='17%'><left><b>Gênero</left></td> <td width='9%'><left><b>Ano / Sec.</left></td> <td width='11%'><left><b>Obra\n(consultas)</left></td> <td width='18%'><left><b><a
href=resultado_ZendAdaptado.php?textBusca=$nextbusca&&ordem=escore&&tipobusca=$tipobusca style='text-decoration:none; color:".$cor_texto_cab.";'>Relevancia </a></left></td>
<td width='18%'><left><b><a href=resultado_ZendAdaptado.php?textBusca=$nextbusca&&ordem=escorePerfil&&tipobusca=$tipobusca style='text-decoration:none; color:".$cor_texto_cab.";''>Preferencia</left></td>
<td width='18%'><left><b><a href=resultado_ZendAdaptado.php?textBusca=$nextbusca&&ordem=escoreTotal&&tipobusca=$tipobusca style='text-decoration:none; color:".$cor_texto_cab.";''>Escore(Total)</left></td>
</tr> "); $escorePerfil = array(); $escorePerfilTotal = 0; for($i=0;$i<$numArray;$i++){ $escorePerfil[$i]=0; $array[$i]['escore']= $array[$i]['escore']/$scoreTot; for($j=0;$j<count($autorEscore);$j++){ if($array[$i]['codAutor']==$autorEscore[$j][0]){ $escorePerfil[$i]=$autorEscore[$j][1]/2; } } for($j=0;$j<count($generoEscore);$j++){ if($array[$i]['generoId']==$generoEscore[$j][0]){ $escorePerfil[$i]=$escorePerfil[$i]+($generoEscore[$j][1]/2); } } $array[$i]['escorePerfil']=$escorePerfil[$i]; $escorePerfilTotal = $escorePerfilTotal+$array[$i]['escorePerfil']; } for($i=0;$i<$numArray;$i++){ $array[$i]['escorePerfil']=$array[$i]['escorePerfil']/$escorePerfilTotal; $array[$i]['escoreTotal']=($array[$i]['escorePerfil']+$array[$i]['escore'])/2; } foreach($array as $temp_list) { $sort_aux[] = ($temp_list[$ordem]); } array_multisort($sort_aux, SORT_DESC, $array); $color = 'tr1'; $pagina = 0; for ($i=0; $i<$numArray; $i++) { if ($i!=0)
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
66
$obraAnt = $array[$i-1]; else $obraAnt = $array[$i]; $obraAtual = $array[$i]; $obraPost = $array[$i+1]; if ($color == 'tr1') $color = 'tr2'; else $color = 'tr1'; imprimir_Obra($array[$i], $pagina, false, $color); } echo "</table></td> <td width=3%> </td> </tr> </table>"; mysql_free_result($result); } ?> </body> </html>
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
67
Apêndice 5 – Artigo
Busca Personalizada de Documentos em Bibliotecas Digitais Baseada em Metadados1
Roberto Willrich, Fernando de Lucca Siqueira, Departamento de Informática e Estatística/UFSC
Florianópolis, Brasil
{willrich, fernandols}@inf.ufsc.br
ABSTRACT1 Digital libraries adopt metadata to describe the documents available in their collections. While improving the efficiency and accuracy of information retrieval, the use of metadata cannot bring satisfactory results when the volume of the collection is large. The growth of digital collections available in libraries requires the use of more refined techniques to search for documents and reporting of results. In particular, the right ranking of documents is crucial. This paper proposes a technique for reordering the results of searches for documents in digital libraries based on the user's preferences. In this technique, the user profile is built implicitly, based on the metadata values of the documents accessed by the user. The user profile is employed for re-ranking the results of every performed search, according to the users' preferences. RESUMO Bibliotecas digitais adotam metadados para descrever as obras disponibilizadas em suas coleções. Apesar de melhorar a eficiência e a precisão da recuperação de informação, o uso de metadados pode não trazer resultados satisfatórios quando o volume da coleção é grande. O crescimento das coleções disponibilizadas em bibliotecas digitais exige o uso de técnicas mais apuradas para a busca de documentos e a apresentação dos resultados. Em particular, a correta ordenação dos documentos satisfazendo o critério de busca é crucial. Este artigo propõe uma técnica de reordenação dos
1 Trabalho foi realizado com o apoio do CNPq (Proc. No 506789/2004-7).
resultados de busca de documentos em bibliotecas digitais com base nas preferências do usuário. Nesta técnica, o perfil do usuário é construído sem importuná-lo, com base no histórico de valores dos metadados dos documentos por ele acessados. O perfil do usuário é usado para reordenar os resultados de cada busca efetuada, de modo a dar precedência aos resultados relacionados com o perfil do usuário.
Categories and Subject Descriptors H.3.3 [Information storage and retrieval]: Information Search and Retrieval – search process; H.3.4 [Systems and Software]:– User profiles and alert services; .3.7 [Digital Libraries]:– User issues.
General Terms Algorithms, Design, Human Factors.
Keywords Recuperação de Informação Adaptativa, Bibliotecas Digitais.
INTRODUÇÃO A área de Biblioteca Digital (BD) tem recebido muita atenção por oferecer uma forma eficiente de organizar os documentos disponibilizados. BDs usam metadados para descrever/catalogar os documentos. A natureza estruturada dos metadados permite que as BDs ofereçam aos seus usuários a possibilidade de construir critérios de busca usando campos específicos das obras, tais como título, autor, resumo e palavras-chaves.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
68
Além disso, a busca por conteúdo pode ser combinada com critérios de busca relativos aos metadados descrevendo o documento procurado.
Similar ao problema da sobrecarga de informação da Web, o crescimento das coleções das BDs motivou o desenvolvimento de técnicas mais eficientes de recuperação de informações (RI). Uma das funções básicas de qualquer sistema de RI é a ordenação dos documentos satisfazendo o critério de busca de acordo com seus níveis de relevância. Existem várias técnicas que levam em consideração o critério de busca e o conteúdo da informação para ordernar (rank) os resultados 0. Visando melhorar este cálculo da relevância, alguns trabalhos consideram o perfil do usuário, contendo suas preferências e conhecimentos, na determinação da relevância (00000). No âmbito de RI, o perfil do usuário pode ser definido como uma coleção de informações que permitam ao sistema interpretar, processar e apresentar os resultados das consultas de cada usuário de acordo com suas necessidades específicas. Até a interface do sistema pode se adaptar às necessidades dos usuários. As RIs que levam em conta o perfil do usuário são chamadas de RI Adaptativas (RIA).
Em 0 nós definimos uma técnica de busca personalizada aplicada a BDs que permite organizar o resultado da busca levando em conta somente o perfil do usuário. Esta organização se dá via agrupamento dos documentos satisfazendo os critérios da consulta em grupos de relevância descritos no perfil do usuário, dando precedência a documentos relacionados com temas de maior relevância para o usuário. O perfil do usuário é atualizado ao final de cada busca efetuada, sem a necessidade de interações adicionais com o sistema, mas de maneira transparente, através de uma análise da freqüência dos valores dos metadados das obras acessadas (e.g., se o usuário acessar muitas obras de um determinado autor, tal autor assume maior relevância no perfil do usuário).
Este artigo propõe uma técnica de reordenação dos resultados de busca de documentos em BDs que combina as preferências do usuário com o grau de relevância do documento com respeito à consulta especificada. Esta proposta adota o mesmo modelo de perfil de usuário definido em 0. A fim de ilustrar a aplicação da técnica de reordenação, este artigo apresenta uma extensão da Biblioteca Digital de Literatura Brasileira (BD-LB) 0 que implementa a técnica proposta. A BD-LB também serviu com estudo de caso para avaliar a eficiência da técnica proposta.
Este artigo está organizado na forma que segue. A seção 2 descreve trabalhos relacionados em busca personalizada e reordenação dos resultados, posicionando nosso trabalho em relação aos existentes. Em seguida, a seção 3 apresenta a BD-LB e a técnica de personalização implementada por esta BD. Na seqüência, a seção 4 apresenta a técnica de reordenação proposta. Em seguida, a seção 5 apresenta uma análise empírica da técnica proposta. Finalmente, a seção 6 apresenta as conclusões e os trabalhos futuros.
Trabalhos Relacionados
Existem diversos trabalhos que propõem técnicas de personalização no processo de busca de informações. A maior parte destes trabalhos tem a Web como ambiente de recuperação de informações (00), mas existem diversos trabalhos na área de busca em banco de dados (000). Este artigo trata da personalização de buscas em banco de dados, mais especificamente em BDs.
Personalização é o processo de apresentar a informação certa, para o usuário certo, no momento certo. Para tal, é necessário construir o perfil do usuário. Este perfil pode ser construído de maneira explícita ou implícita.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
69
Na construção explícita, normalmente o usuário deve explicitamente realimentar o sistema (RF – Relevance Feedback) com uma avaliação dos documentos lidos 00. Apesar de essas técnicas serem potencialmente mais eficientes, a construção explícita tem alguns problemas, como relutância do usuário a em prover este tipo de informação (devido ao trabalho adicional ou outras razões), inconsistência de dados e repasse de informações incorretas 00.
A construção implícita do perfil é mais discreta e menos trabalhosa para o usuário, construindo o perfil automaticamente com base nas características dos documentos consultados, no histórico de navegação, consultas realizadas, etc.
Em 0, o perfil é construído através do histórico de consultas, isto é, avaliando os critérios de consulta submetidos, os resultados retornados e as páginas selecionadas a partir dos resultados. 0, por outro lado, constrói o perfil baseado em uma ontologia que permite classificar o conteúdo das páginas Web visitadas.
Existem diversas técnicas para personalizar a busca de informações usando como base o perfil do usuário. Estas técnicas podem usar o perfil para: focar a busca, filtrando os resultados de acordo com uma combinação do critério de busca com o perfil do usuário; ou reordenar o resultado da busca levando em conta o perfil do usuário. Existem vários trabalhos que cobrem estes dois aspectos, tais como 00.
0 apresenta um modelo de preferências, um algoritmo de personalização de busca e uma função de ordenação para banco de dados. Estes algoritmos selecionam as preferências ligadas a uma consulta e geram progressivamente os resultados personalizados, classificados segundo os interesses do usuário. As preferências são expressas pelos valores dos atributos e pela relação entre as entidades. Este modelo permite definir preferências positivas (o que o usuário gosta) e negativas (o que ele não gosta).
0 propõe uma técnica de re-escrita de consultas em bibliotecas digitais. Esta técnica é baseada em um perfil que armazena regras de reescrita de consultas, onde é associado um peso a cada consulta.
Este trabalho trata especificamente da personalização da busca via re-ordenação 000. 0 propõe um sistema multi-agente de RIA que realiza a ordenação de uma coleção de documentos recuperados da Internet com base no perfil do usuário. Um algoritmo genético (AG) é usado para adaptar os vetores de consulta, que são os modelos das necessidades de informação do usuário.
0 usa um perfil de usuário construído explicitamente para a reordenação das respostas via composição das relevâncias do documento para o usuário, para a comunidade de usuários da biblioteca digital e em relação à consulta (TFIDF). 0 propõe uma técnica de re-ordenação do resultado, combinando um grau de relevância baseado no perfil com o ordenamento obtido pelo Google.
Em 0 listamos algumas características da maioria das BD que permitem simplificar o problema da busca personalizada em BD:
(i) Os documentos são descritos por um conjunto de metadados;
(ii) As BDs geralmente são temáticas, ou seja, suas coleções de obras disponibilizadas pertencem a um domínio específico de conhecimento (p.e., biblioteca de trabalhos científicos, de obras literárias).
(iii) As obras não apresentam hiperlinks para outras obras, sendo que o acesso é realizado unicamente via mecanismos de busca e navegação na coleção;
(iv) As obras são páginas estáticas e apenas o primeiro acesso é considerado para a determinação do perfil, os demais acessos são considerados uma revisita à obra (p.e. para continuar sua leitura após uma interrupção).
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
70
Nossa técnica explora as características (i) e (ii) de maneira a modelar o perfil do usuário de forma a manter suas preferências sobre o tema tratado pela BD. Por exemplo, que tipo de gênero literário o usuário prefere, que ritmo musical ele prefere, etc. A adoção de metadados (i) facilita a determinação do nível de relevância dos documentos e a modelagem do perfil do usuário. Devido às considerações (iii) e (iv), técnicas usadas para otimização de buscas na Web não são aplicáveis, pois nestas técnicas a probabilidade de visita de uma página (no caso da BD-LB, uma visita a uma obra), implica no aumento do interesse do usuário pelo tema tratado na página.
O perfil do usuário adotado neste trabalho pressupõe uma atribuição consistente de valores de metadados a todos os documentos, isto é, uma anotação coerente dos documentos com valores de metadados. Isso é necessário porque os valores de metadados associados aos documentos recuperados por um usuário são utilizados para determinar suas preferências. Considerando que a técnica proposta é orientada a bibliotecas digais, onde o processo catalogação da coleção é uma preocupação constante, os riscos de construção de um perfil incorreto devido a inconsistências nos valores dos metadados são minimizados.
Busca personalizada na Biblioteca Digital de Literatura Brasileira (BD-LB)
A BD-LB 00 disponibiliza uma grande coleção de obras literárias brasileiras de domínio público, tão bem quanto informações sobre escritores brasileiros. Atualmente estão catalogadas 61828 obras (das quais 536 estão digitalizadas) e 15804 autores. Para sua implementação, foi adotada a plataforma
LAMP (Linux, Apache, MySQL, PHP) de código livre.
A BD-LB adota os metadados Dublin Core (DC) 0 e suporta o protocolo OAI-PMH (Open Archives Initiative - Protocol for Metadata Harvesting) 0. Além dos elementos DC, outros metadados foram necessários para registrar dados como gênero literário, críticas literárias, fatos históricos e personagens.
A BD-LB segue um modelo a três camadas (Figura 1):
A camada de apresentação é uma parte do código da aplicação que interage com o usuário final, com os catalogadores e com o administrador da BD. Em particular, a interface de usuário permite a sua autenticação, revisão do perfil, busca e navegação na coleção, além da apresentação dos documentos.
A camada lógica é responsável pelo acesso à camada de dados para recuperar, modificar e remover os dados, e enviar os resultados à camada de apresentação.
A camada de dados corresponde às fontes de dados, sendo composta pelas bases de dados de metadados e de usuários, além do repositório dos documentos. A base de dados de usuários é a que mantém os perfis dos usuários da BD-LB.
Figura 1. Arquitetura da BD-LB
O componente de Recuperação de Informação Adaptativa (RIA) da camada lógica da BD-LB oferece serviços de recuperação de informações
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
71
adaptativa. Este módulo permite a busca de documentos utilizando os metadados e a apresentação personalizada dos resultados da busca. Para a busca em conteúdo (no caso texto), o motor de busca utilizado é o ht://Dig 0, sendo que a apresentação dos resultados originalmente não levava em consideração o perfil do usuário.
O modelo do perfil de usuário adotada mantém as seguintes informações sobre cada usuário:
• Identificação do Usuário (IU): são dados pessoais sobre o usuário para autenticação, contato e descrição.
• Preferências Gerais (PG): são preferências gerais em termos de formato de apresentação e conhecimentos gerais do usuário.
• Controle de Apresentação dos Resultados (CAR): define o critério de agrupamento e o método de ordenação dos resultados das buscas. O CAR deve ser configurado explicitamente pelo usuário.
• Preferências Específicas (PE): são preferências do usuário no tema da BD. Elas são capturadas implicitamente via uma análise na freqüência de ocorrência de valores de um sub-conjunto de metadados dos documentos acessados pelo usuário. Estes metadados analisados são chamados de metadados observados. Na BD-LB, os metadados observados são autor e gênero literário. Com base na freqüência de acessos, avalia-se a preferência do usuário em termos de autores de obras literárias e gêneros literários. Para cada autor e gênero literário é associado um peso, que define o grau de interesse do usuário no autor ou gênero.
Na BD-LB, os documentos resultantes de uma consulta são agrupados em três Grupos de Relevância:
• Preferidos: contém os documentos cujo valor do metadado observado escolhido como de agrupamento pertence ao conjunto de Valores Preferidos (VP). Por exemplo, caso o usuário opte por agrupar por autor, neste grupo estarão os documentos dos autores preferidos do usuário.
• Visitados: contém os documentos cujo valor do metadado observado escolhido como de agrupamento pertence ao conjunto de Valores Visitados (VV). Por exemplo, agrupa os documentos dos autores que o usuário já acessou documentos, mas que ainda não atingiu o grau de preferido.
• Outros: agrupa os documentos cujo valor do metadado observado escolhido como de agrupamento não foi verificado em nenhum documento acessado anteriormente. Por exemplo, agrupa os documentos cujo usuário não tenha acessado nenhuma obra.
A razão de agrupar os documentos resultantes da consulta em grupos de relevância é oferecer uma categorização destes documentos e com
isto possivelmente reduzir o tempo de busca da informação.
Técnica de REORDENAção Aplicada A BD
Esta seção apresenta uma técnica de reordenação dos resultados de busca de documentos aplicada a BDs. Diferente da técnica que propomos em 0, esta nova técnica não organiza os documentos em categorias (preferidos, visitados e outros). O objetivo aqui é gerar uma lista ordenada única, levando em consideração não apenas o perfil do usuário, mas também o critério de busca formulado.
Definição de BD A técnica proposta considera a seguinte definição de Biblioteca Digital (BD):
BD = (D, M, CP)
Onde: • � = {� � }, � ∈ [1, � ] é a coleção de documentos
disponibilizados pela BD. No caso da BD-LB D é o conjunto de obras literárias disponibilizadas.
• � = � � � � � , � ∈ [1, � ] é o conjunto de metadados utilizados
para descrever os elementos da coleção. Utiliza-se aqui a notação di.mdj para denotar o valor do metadado mdj do documento di. No caso da BD-LB, o conjunto M é composto pelos metadados DC e outros metadados necessários para descrever atributos específicos das obras literárias (p.e. gênero literário, críticas literárias, fatos históricos e personagens).
• � � = {� � }, � ∈ [1, � ] é o conjunto de perfis dos usuários. Cada usuário da biblioteca pk e é associado a um perfil Pk.
Perfil do Usuário Esta técnica utiliza a mesma definição de perfil de usuário definida por 0. Mais especificamente, ela considera exclusivamente as Preferências Específicas (PE) do perfil do usuário, que será referenciado a partir daqui simplesmente de perfil de usuário.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
72
Da mesma forma que 0, a captura do perfil do usuário é realizada via uma análise da freqüência dos valores de um sub-conjunto de metadados observados (MO), onde:
� � = {� � � }, � ∈ [1, � ] onde e M é o número de metadados observados. A cada acesso a um documento di da biblioteca, os valores de di.mdm são avaliados. Por exemplo, para a BD-LB, MO={autor, gênero}. Nesta BD, quando o usuário acessa um documento, são analisados os metadados autor e gênero do documento acessado. A freqüência de ocorrência de valores destes metadados vai permitir determinar os pesos de relevância de cada autor e gênero literário para um dado usuário. É o administrador da BD que seleciona os metadados observados que melhor caracterizem as preferências dos usuários. Como os MOs serão usados para modelar as preferências específicas do usuário no tema da BD, o administrador deve selecionar os metadados que melhor caracterize as preferências dos usuários e excluir metadados que não são relevantes para a captura do perfil do usuário. Por exemplo, em uma biblioteca com o tema música, os metadados observados poderiam ser gênero musical e cantor. Título da música ou gravadora não são relevantes para formar o perfil do usuário. O perfil do usuário k adotado nesta proposta é definido por conjunto de vetores Listas de Valores (LV), formalmente:
� � = {� � � }, � ∈ [1, � ]
onde LVm (Lista de Valores) é uma lista ponderada de valores do metadado observado mom. A cada valor de mom é associado um peso. Assim, um LVm será representado como um vetor de valores dado por:
� � � = {(� � � , � � � )}, � � [1 � ]
onde wmn representa o peso de relevância do valor vmn no mom.
Para a BD-LB 0 foi adotada a análise por freqüência para determinar os pesos de relevância. Nesta análise, o peso de relevância de um valor de metadado é obtido a partir do número de ocorrências deste valor nos documentos acessados. Para um dado usuário,
a normalização dos pesos é dada da seguinte forma:
� � �
= � � � � � � � � � � (� � � , � � � ) � � � � � � � � � � � � � � � (� � )⁄
onde:
• � � � � � � � � � � (� � � , � � � ) é o número de documentos acessados com o valor do metadado mom igual a vmn.
• � � � � � � � � � � � � � � � (� � )é o número total de documentos acessados pelo usuário pk.
Para outras BD, outras formas de determinação do peso de relevância podem ser adotadas. Uma lista das possibilidades é apresentada em 0. Para ilustrar a proposta, considere um usuário da BD-LB chamado Pedro e os metadados observados autor e gênero. O seu perfil de usuário é apresentado na Figura 2. Ele foi construído após Pedro acessar dez obras, das quais sete são de Machado de Assis (peso 7/10) e três são de José de Alencar (peso 3/10). Dessas dez obras, oito foram do gênero conto (peso 8/10) e duas eram romance (peso 2/10).
Metadado Observado (MO)
Listas de Valores (LV)
Autor
Valor Peso (w)
Machado de Assis 0,7
José de Alencar 0,3
Gênero
Valor Peso (w) Conto 0,8 Romance 0,2
Figura 2. Perfil do Usuário Pedro Portanto, o perfil do usuário Pedro é anotado como:
PPedro = {{(Machado de Assis 0,7) (José de Alencar 0,3)}, {(Conto 0,8) (Romance 0,2)}}
Reordenação da Busca em BDs Em um sistema de busca convencional, os documentos satisfazendo o critério de busca são ordenados levando em consideração uma função de ordenação (como, boolean spread activation, most-cited, TFxIDF e vector spread activation), nomeada aqui de escoreRI. Desta forma, quando
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
73
um usuário pk realiza uma consulta na BD com critério de busca q, é apresentada uma seleção de documentos Rq = {du|uє[1,k], escoreRIq,u-
1≥escoreRIq,u }. Estes documentos são apresentados em ordem decrescente de relevância. Para este trabalho, considere uma normalização do escoreRI, onde:
∑ � � � � � � � � � ,��� � � = 1
Nesta seção será apresentada uma proposta de reordenação que leva em conta o escoreRI e as preferências do usuário pk.
Para ilustrar a proposta, considere que o usuário Pedro efetuou uma busca com um critério q, que resultou nos três documentos da Figura 3.
Título Autor Gênero escoreRI Niterói José de Alencar Poesia 0,42 Casa velha Machado de Assis Romance 0,31 A paixão Manuel de Paiva Conto 0,27
Figura 3. Documentos resultantes de uma busca
Grau de Interesse dos Metadados
A fim de prever o grau de interesse de um usuário pelo documento, é necessário inicialmente determinar individualmente o peso de relevância de cada um dos valores dos metadados observados dos documentos resultantes da busca. Desta forma, um documento duєRq terá um grau de interesse dos metadados (gdim):
� � � � � = � � � � � ,� � , � � [1 � ]
onde gdim representa o grau de interesse do usuário no valor d.MOi (o valor do metadado MOi no documento d). gdiik é determinado por:
� � � � ,�
= �� � � ; � � � � . � � � є � � � � � � � = � � . � � �
0 ; � � � ã� �
A Figura 4 apresenta os graus de interesse dos metadados dos documentos resultantes da busca de Pedro.
Título gdiautor gdigênero Niterói 0,3 0 Casa velha 0,7 0,2 A paixão 0 0,8
Figura 4. Documentos resultantes de uma busca
Note que a técnica proposta apenas tenta capturar preferências positivas, ou seja, elas expressam o que o usuário gosta. Preferências negativas (o que o usuário não gosta), como capturada por 0, não são detectadas de maneira implícita.
Grau de interesse do documento
O grau de interesse de um documento é uma combinação dos graus de interesse do usuário por cada um dos metadados observados do documento. Nesta proposta, quem define quais metadados poderão ser combinados para prever o grau de interesso do usuário na obra é o administrador da BD, que vai selecionar quais metadados serão os metadados observados. Mas o usuário, via edição de seu perfil, poderá optar por quais metadados observados serão usados para prever suas preferências. Baseado em 0, e no caso de se distinguir apenas preferências positivas e usando valores de metadados dos documentos, pode-se distinguir duas formas básicas de combinação das preferências individuais: combinação somativa e combinação dominante. Na Combinação somativa, todos os metadados observados contribuem para formar o grau de interesse do usuário no documento. Existe diferentes alternativas de combinação somativa. Caso todos os metadados observados têm a mesma importância para formar o grau de interesse no documento, uma média simples permitiria determinar o grau de relevância do documento. Neste caso, o grau de interesse (gdi) de um documento DєRq para um usuário é definido como:
� � � � = ∑ � � � � ,�
�� � �
��
Considerando unicamente o perfil do usuário Pedro e considerando também a composição
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
74
somativa, a ordem de apresentação dos documentos resultantes da busca seria aquela apresentada na Figura 5.
Título gdi Casa velha 0,45 A paixão 0,4 Niterói 0,15
Figura 5. Documentos resultantes de uma busca
Na combinação dominante, o grau de interesse do documento é igual ao maior peso de relevância do valor do metadado de di. Assim:
� � � � = max� � � ,�
( � � � � ,� )
Considerando a composição dominante, no caso da consulta do usuário Pedro seria aquela apresentada na Figura 6. Comparado com a composição somativa, ouve uma inversão da ordem de preferência dos dois primeiros documentos. No caso da obra A paixão, o que seria mais significativo para Pedro é que é um conto. Já Casa velha, o mais significativo é que a obra é uma obra de Machado de Assis. Como conto tem um peso maior que Machado de Assis, A paixão teve um maior grau de interesse.
Título gdi A paixão 0,8 Casa velha 0,7 Niterói 0,3
Figura 6. Documentos resultantes de uma busca
O tipo de composição a ser adotada depende do perfil do usuário e do domínio da BD. Com base em entrevistas dos usuários, no caso da BD-LB consideramos que a composição somativa seria mais adequada, pois todos os metadados observados geralmente contribuem para definir o interesse do usuário em uma obra literária. No caso de uma composição dominante, seria utilizada uma comparação entre diferentes aspectos da obra, por exemplo comparação entre autor e gênero literário. Neste caso, poder-se-ia dizer que os usuários gostam de um gênero literário independente de quem é o seu autor, ou vice-versa. Isto não foi observado nas entrevistas realizadas.
Reordenação do resultado
De maneira similar a 0, 0 e 0, o escore combinado (ec) de um documento duєRq, com um � � � � � � � � � ,� para um critério de busca q é
definido como:
� � � = � � � � � + (1 − � )� � � � � � � � � ,� , � � � � �
∈ [0,1]
O valor do parâmetro α permite definir o impacto da personalização na re-ordenação do resultado. Quando a tem um valor 0, as preferências do usuário não são consideradas. Se α tem um valor 1, a reordenação leva em consideração apenas o perfil do usuário. Neste último, é realizada uma busca binária, e a ordenação é dado por gdi(u,di).
Nesta proposta, o valor de α será implicitamente definido pelo usuário através da seleção do tipo de ordenamento (visto na seção 0).
No caso da consulta de Pedro e considerando a composição somativa e um α=0,5, a ordenação dos documentos seria aquela apresentada na Figura 7. Esta ordenação com α=0,5 foi possível considerar o critério de busca e o perfil de usuário com o mesmo peso.
Título escoreRI gdi ec Casa velha 0,31 0,45 0,38 A paixão 0,27 0,4 0,335 Niterói 0,42 0,15 0,285
Figura 7. Documentos resultantes de uma busca
implementação na bd-lb Foram necessárias modificações em alguns componentes da BD-LB para a implementação da técnica de busca personalizada proposta neste trabalho.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
75
Alteração no Motor de Busca Uma das modificações foi a substituição do motor de busca utilizada pela BD-LB. Originalmente, a BD-LB utilizava o motor ht://DIG 0. Devido à descontinuidade do projeto ht://DIG e da dificuldade de se obter os escoreRI dos documentos resultantes da busca, foi necessária a substituição deste motor de busca. Na nova versão da BD-LB foi implementado um motor e busca usando o Zend_Search_Engine do Zend Framework (ZF) 0 derivado do projeto Apache Lucene. Zend_Search_Engine é uma ferramenta de busca escrita em PHP5, o que facilitou a integração da BD-LB também desenvolvida nesta linguagem. Ele utiliza o mesmo algoritmo de ordenação do Java Lucene, sendo uma combinação dos modelos VSM (Vector Space Model) e Boleano.
Interface com o Usuário Do ponto de vista do usuário, foram alteradas as interfaces de edição do perfil do usuário e de apresentação do resultado da busca. A Figura 8 apresenta a nova interface de edição do perfil do usuário. Nela pode-se verificar a inclusão de permitir o não agrupamento dos documentos resultantes da busca nos grupos preferidos, visitados e outros. Também foi dada a possibilidade de o usuário poder escolher quais metadados observados serão combinados para determinar o grau de interesse de cada documento resultante da busca.
Figura 8. Interface de Atualização do Perfil
A Figura 9 apresenta o resultado de uma busca personalizada. Inicialmente, os documentos são reordenados conforme a técnica proposta neste artigo. Nesta implementação adotamos α=0,5, considerando que o grau de interesso e escoreRI têm o mesmo peso para formar o escore personalizado. Caso o usuário clique em Escore(Zend), os documentos serão reordenados conforme o escoreRI, ou seja α=0. Isto é interessante quando o usuário quer realizar uma busca sem que ele tenha efetivamente um interesse literário no livro. Caso o usuário clicar em Escore(Perfil), os documentos são ordenados exclusivamente com base no grau de interesse do usuário nos documento, ou seja α=1. Isto é interessante quando o usuário estiver buscando um livro de seu interesse que satisfaça o critério de busca (busca booleana). Caso o usuário clicar em Escore(Total), a reordenação personalizada é apresentada novamente.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
76
Figura 9. Interface de Apresentação do Resultado
Avaliação da Proposta Alguns experimentos foram conduzidos na BD-LB para demonstrar a eficiência da técnica de personalização proposta neste trabalho. Para este experimento, foi utilizada a busca em obras digitalizadas da BD-LB, que oferece um conjunto de 536 obras literárias de domínio público. Foram realizados diversos experimentos com vários perfis de usuários e tipos de consulta (usando metadados, busca em conteúdo e buscas combinando metadados e conteúdo). Os perfis de usuários foram criados a partir de uma pesquisa com alunos e professores do Departamento de Língua e Literatura Vernáculas da UFSC. Para cada indivíduo foi solicitada uma lista, em ordem decrescente de interesse, de dez obras literárias disponíveis na BD-LB. Por se tratar de obras literárias, seria muito relativo determinar a relevância de todos os documentos resultantes de uma busca. Isto, pois a determinação de que uma obra é irrelevante para um usuário é muito complexa, haja vista que o usuário teria que ler completamente a obra e informar sua relevância. Portanto, este trabalho não utilizou técnicas que determinam de maneira mais formal a precisão da técnica proposta. Os usuários realizaram uma séria de buscas arbitrárias e analisaram o resultado personalizado confrontando-os com a ordenação oferecida pela máquina de busca. A interface de apresentação
dos resultados desenvolvida (Figura 9) oferece facilidades para esta comparação, pois um simples clique permite alterar o tipo de ordenação. Para este estudo foram analisadas, de maneira empírica, as seguintes propriedades da técnica proposta: (a) a adequação da reordenação do resultado da busca; (b) os benefícios da busca personalizada. Esta análise foi feita com base em entrevistas com os usuários. Em relação à adequação da reordenação, a maioria considerou que a ordenação dos documentos usando com base o perfil de usuário e o critério de busca é mais adequado quando o usuário realiza buscas com interesses pessoais na leitura da obra. Isto, pois eles verificaram que a técnica capturou de maneira correta as preferências de leitura em termos de autores e gêneros literários. O que foi observado é que obras do autor preferido e do gênero preferido são os primeiros da lista. Em relação aos benefícios da técnica proposta, maior parte dos entrevistados considerou que a proposta reduz efetivamente o esforço da busca de informação. Isto quando o usuário procura uma obra com interesse pessoal na sua leitura. Como a BD-LB é também usada no ensino, diversas buscas têm outros objetivos, como a análise de textos e expressões. Mas nestes casos, a interface de apresentação do resultado oferece meios para desabilitar a personalização com um simples clique, como apresentado na seção 0.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
77
conclusões Este artigo propõe uma técnica de reordenação dos resultados de buscas que leva em consideração os critérios de consulta especificados por um usuário e as preferências deste usuário. A meta desta técnica é reduzir o tempo de busca de documentos nas bibliotecas digitais, reordenando o resultado de maneira que os documentos mais relevantes estejam nas primeiras posições do resultado da busca, reduzindo assim o tempo de análise dos resultados e conseqüentemente o tempo dispendido pelo usuário do processo de busca como um todo.
Este trabalho, diferente de outras propostas, considera os valores dos metadados dos documentos acessados pelo usuário. O objetivo é determinar as preferências do usuário a partir dos dados descritivos do documento. O conjunto de metadados a serem observados é selecionado pelo administrador da biblioteca de maneira a caracterizar as preferências dos usuários sob diferentes aspectos (por exemplo, em termos de preferência por gênero literário, autor e assunto).
Como trabalho futuro, pretende-se estudar técnicas para a otimização da reordenação. Para tal estão sendo investigadas formas de combinar as preferências específicas dos usuários com o grau de popularidade das obras disponibilizadas. Também serão investigadas a adaptação de técnicas baseadas em ontologia de domínio da BD.
REFERêNCIAS Dhyani, D., Ng, W. K., Bhowmick, S.S. A survey
of web metrics. ACM Computing Surveys (CSUR), 34(4):469.503, 2002. ISSN:0460-0300.
Pitkow, J., Schutze, H., Cass, T., Cooley, R., TurnBull, D., Edmonds, A., Adar, E., Breuel,
T. Personalized Search. Communications of the ACM, Vol. 45(9), 2002.
Maleki-Dizaji, S., Othman, Z.A., Nyongesa, H.O., Siddiqi, J. Evolutionary Reinforcement of User Models in An Adaptive Search Engine. IEEE/WIC International Conference on Web Intelligence (WI 2003), pp. 706-709, 2003.
Rohini, U., Ambati, V. A Collaborative Filtering Based Re-ranking Strategy for Search in Digital Libraries. ICADL 2005: 194-203.
Carroll, J.M. e Rosson, M.B. The paradox of the active user. Interfacing Thought: Cognitive Aspects of Human-Computer Interaction, Bradford Books/MIT Press, p. 80-111, 1987.
Speretta, M., Gauch, S. Personalized search based on user search histories. IEEE/WIC/ACM International Conference on Web Intelligence, pp 622- 628, 2005.
Willrich R. et al. Sistema de Recuperação de Informações Adaptivo Aplicado a Biblioteca Digitais. XII Simpósio Brasileiro de Sistemas Multimídia e Web, p. 165-173, 2006.
Koutrika, G. e Ioannidis Y. Personalization of Queries Based on User Preferences. Gianni Bosi, Ronen I. Brafman, Jan Chomicki, Werner Kießling (Eds.): Preferences: Specification, Inference, Applications. 2004.
Koutrika, G. e Ioannidis Y. Rule-based query personalization in digital libraries. International Journal on Digital Libraries, Springer-Verlag, 4(1): 60-63, 2004.
Trajkova J., Gauch S. Improving Ontology-Based User Profiles. RIAO 2004, Vaucluse, France, April 26-28, pp. 380-389.
Speroni, R. M., Lima, C.V., Dias, A.L.O., Willrich, R. Uma Biblioteca Digital Aberta com Serviços Personalizados. Anais do II Workshop de Biblioteca Digitais, p. 11-20, 2006.
Dublin Core Metadata Initiative. URL: http://www.dublincore.org/. Acessado em Julho de 2006.
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.
78
Open Archives Initiative. URL: http://www.openarchives.org/. Acessado em Julho de 2006.
Ht://Dig. http://www.htdig.org/. Acessado em Julho de 2008.
Challam, V., Gauch, S., Chandramouli, A. Contextual Search Using Ontology-Based User Profiles. Em Conference RIAO2007, 2007.
Zend framework. http://framework.zend.com/. Acessado em Julho de 2008
Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.