RECUPERAÇÃO ADAPTATIVA DE INFORMAÇÕES APLICADA … · 2.1 PHP Criada em 1994 por Rasmus Lerdof,...

79
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 Software http://www.foxitsoftware.com For evaluation only.

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(

"\"","\'","&atilde;","&otilde;","&ccedil;","&aacute;","&eacute;","&iacute;","&oacute;","&uacute;","&agrave;","&egrave;","&igrave;","&ograve;","&ugrave;","&acirc;","&ecirc;","&icirc;","&ocirc;","&ucirc;","&nbsp;");

$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&#231;&#245;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&#231;&#245;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&#231;&#245;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&#237;tulo da Obra</left></td> <td width='25%'><left><b>Autor</left></td> <td width='17%'><left><b>G&#234;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%>&nbsp;</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.

79

Generated by Foxit PDF Creator © Foxit Softwarehttp://www.foxitsoftware.com For evaluation only.