Monografia - Triadbrasil

Transcrição

Monografia - Triadbrasil
Guilherme Mascarenhas Maciel
Geração automática de Web Clipping
alimentado por Spider
Belo Horizonte
Dezembro de 2007
Guilherme Mascarenhas Maciel
Geração automática de Web Clipping
alimentado por Spider
Monografia apresentada ao Departamento de
Ciência da Computação da Pontifı́cia Universidade Católica de Minas Gerais para a obtenção do tı́tulo de bacharel em Ciência da
Computação.
Orientador:
Prof. Manoel Palhares Moreira
Pontifı́cia Universidade Católica de Minas Gerais
Instituto de Informática
Departamento de Ciência da Computação
Belo Horizonte
Dezembro de 2007
Monografia apresentada à disciplina Trabalho de Diplomação como requisito parcial
para obtenção de Bacharelado do Curso de Ciência da Computação da Pontifı́cia Universidade Católica de Minas Gerais defendida por Guilherme Mascarenhas Maciel e avaliada
pela banca examinadora constituı́da por:
Prof. Manoel Palhares Moreira (Orientador)
Pontifı́cia Universidade Católica de Minas Gerais
Prof. Pasteur Ottoni de Miranda Júnior
Pontifı́cia Universidade Católica de Minas Gerais
Profa. Tassni Eunice Miguel Lopes Cançado
Pontifı́cia Universidade Católica de Minas Gerais
Agradecimentos
Agradeço a Deus, à minha famı́lia e as pessoas que me ajudaram a caminhar durante
todo esse perı́odo na PUC, tanto na Engenharia quanto na Computação, em especial o
professor Palhares, Flavinho, Anna Florência e Carol.
“A imaginação é mais importante que o conhecimento.” Albert Einstein
Resumo
Realizar pesquisas em ferramentas de busca existentes na web implica em saber não
só o que pesquisar, mas também como pesquisar. Muitas vezes, usuários leigos em informática não conseguem realizar pesquisas satisfatórias pelo simples fato de não saberem
informar corretamente os parâmetros de refinamento.
Em contrapartida, como ponto de vista estratégico, empresas e pessoas precisam
saber sobre assuntos, representados por palavras-chave, que são publicados diariamente
em portais e agências de notı́cias na web. Esse tipo de acompanhamento freqüente auxilia
na tomada de decisões importantes, como também na avaliação de marketing e imagem
de como essas empresas e pessoas estão sendo citados na mı́dia.
Essas duas premissas se aplicam diretamente ao conceito de clipping e podem ser
representadas através da utilização de um sistema web alimentado por uma ferramenta
de recuperação de informações do tipo spider.
O sistema de web clipping deste trabalho tem o papel de realizar a organização das
palavras-chave salvas como pesquisas, com os seus respectivos refinamentos. Esse conjunto
de pesquisas salvas, em um ambiente alimentado por informações obtidas por um spider
configurado especificamente para o problema, permite que os usuários leiam diariamente
tudo aquilo que foi publicado de novo em se tratando de conteúdo, os mantendo sempre
bem informados.
Sumário
Lista de Figuras
1 Introdução
p. 7
1.1
Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 9
1.2
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 10
1.2.1
Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 10
1.2.2
Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 10
Visão geral do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 11
1.3
2 Fundamentações teóricas
p. 12
2.1
Heritrix como mecanismo de recuperação de informação . . . . . . . . .
p. 12
2.2
Ferramentas de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 14
2.3
Ambiente de desenvolvimento do sistema de web clipping . . . . . . . .
p. 16
2.4
Metodologia de desenvolvimento . . . . . . . . . . . . . . . . . . . . . .
p. 17
3 Trabalhos relacionados
p. 19
4 Metodologia
p. 22
5 Desenvolvimento
p. 23
5.1
Esquema conceitual da base de dados em notação UML . . . . . . . . .
p. 23
5.2
Módulo de escrita em banco de dados para o Heritrix . . . . . . . . . .
p. 25
5.3
O sistema de web clipping . . . . . . . . . . . . . . . . . . . . . . . . .
p. 32
6 Resultados, trabalhos futuros e conclusão
p. 39
Referências
p. 41
Lista de Figuras
1
Arquitetura básica do Heritrix, mostrando a relação direta com o pedido
de uma ação de crawler (CrawlOrder) durante a execução de um Job
e as chamadas aos principais módulos e métodos internos da aplicação
(MOHR et al, 2004, p. 6). . . . . . . . . . . . . . . . . . . . . . . . . .
p. 13
2
Pontuação das empresas de acordo com o ACSI (FREED, 2007, p. 4). .
p. 15
3
Esquema de acesso ao sistema, mostrando as aplicações fundamentais
instaladas no servidor web. . . . . . . . . . . . . . . . . . . . . . . . . .
4
p. 16
Tela inicial de um usuário que acessa o Google News. À esquerda, as
opções de palavras-chave cadastradas (GOOGLE, 2007). . . . . . . . .
p. 20
5
Tela inicial de um usuário que acessa o My Yahoo! (YAHOO!, 2007). .
p. 21
6
Esquema conceitual da base de dados em notação UML. Os relacionamentos são demonstrados com a especificação das respectivas chaves. .
p. 26
7
Tela de login do Heritrix sendo acessada em http://localhost:8080 . . .
p. 27
8
Tela inicial do Heritrix, após efetuar o login, mostrando o console de
execução inativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 28
9
Tela de criação de Jobs. . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
10
Para finalizar a requisição do Job baseado no recovery, basta clicar em
Submit job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 29
11
Job criado e pendente no Heritrix. . . . . . . . . . . . . . . . . . . . . .
p. 30
12
Ao clicar em Start, o Job pendente começará a ser executado, recuperando as informações dos sites referenciados pelas seeds. . . . . . . . . .
p. 31
13
Informações sobre o Job sendo executado são mostradas no Console. . .
p. 31
14
Tela Inicial de acesso ao sistema de web clipping com o usuário ainda
não identificado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 32
15
Resultado de uma busca realizada no sistema (sem o usuário ter efetuado
login) pela string “galo”, sem a aplicação de qualquer tipo de refinamento. p. 33
16
Tela de cadastro de novo usuário. . . . . . . . . . . . . . . . . . . . . .
p. 34
17
Informa-se o e-mail e senha cadastrados para se identificar no sistema.
p. 34
18
Visualização principal do clipping, mostrando todas as informações sobre
o que há para as pesquisas salvas, dando a possibilidade de edição a todas
informações de configuração do sistema conforme necessidade. . . . . .
19
p. 35
É preciso clicar na lupa com o sı́mbolo de “+”para salvar a pesquisa no
clipping diário, ao lado da palavra-chave “galo”em negrito na faixa azul
informando a quantidade de resultados encontrados. . . . . . . . . . . .
20
É através dessa tela que o clipping realmente se inicia, uma vez que é
categorizado, refinado e salvo. . . . . . . . . . . . . . . . . . . . . . . .
21
p. 36
Para realizar a inserção de uma nota pessoal a esse conteúdo encontrado,
basta clicar no ı́cone referente a anotação (bloco de notas e lápis). . . .
22
p. 36
p. 37
Tela de edição de nota pessoal para um conteúdo especı́fico. Uma vez
salva essa nota, é possı́vel futuramente buscar por palavras-chave contidas nela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 38
7
1
Introdução
A explosão de informação ocorrida nos últimos anos impulsionou a pesquisa e o desenvolvimento na área de recuperação de informação por parte de algumas entidades
acadêmicas e empresas que focaram suas atividades no desenvolvimento de produtos e
serviços. Dentre os vários serviços prestados pelas empresas, um dos que mais se destaca
é a possibilidade de os usuários encontrarem conteúdos relevantes através de pesquisas
por palavras em mecanismos de busca. Graças a essa evolução, é possı́vel resolver dúvidas
e se informar rapidamente sobre fatos que acontecem em todo o mundo.
Dentre as empresas que atuam nesse segmento, a Google destaca-se atualmente pela
gama e pela qualidade dos produtos e serviços que oferece. Sua complexa ferramenta
de busca baseia-se em clusters gigantes de computadores de baixo valor que armazenam
complexos ı́ndices, softwares de manutenção e de detecção de falhas. Além disso, outros conjuntos de computadores são alocados à atividade especı́fica de recuperação de
conteúdos. Essa atividade é realizada por programas que trabalham como robôs, conhecidos como spiders, e são baseados no conceito de bot. Segundo Heaton (2002, p. 2), “todo
programa que puder alcançar a Internet e recuperar dados pode ser chamado bot”.
“Um spider é um bot especializado construı́do para vasculhar sites baseados em conteúdo encontrados em sites já conhecidos. Um spider trabalha iniciando em uma página web simples ou, algumas vezes, em várias
páginas. Essa página web é varrida na busca por referências a outras.
O spider então visita tais páginas e repete esse processo, continuando
indefinidamente”(HEATON, 2002, p. 3).
Essa aplicação constitui a estratégia inicial dos mecanismos de busca na web. Em
função do dinamismo da Internet, essas aplicações precisam ser automatizadas, ou seja,
precisam desempenhar seu papel sem haver a freqüente intervenção humana.
Apesar do porte da empresa e dos frutos financeiros que sua ferramenta de busca proporciona, os desenvolvedores da Google compartilharam o conhecimento adquirido, sendo
possı́vel acessar, em algumas de suas publicações, explanações relevantes que esclarecem
1 Introdução
8
aos usuários sobre suas facilidades em sua utilização. No caso de spiders, Brin e Page
(2007) informam sobre seu funcionamento e sobre as ferramentas de busca.
O serviço de clipping é bastante antigo para a área da comunicação. No entanto,
segundo Teixeira (2001, p. 4), apesar de ser um produto com existência já de algumas décadas e ter incorporado, inclusive, novas funções e tecnologias, ainda permanece
com bibliografia escassa. Freqüentemente, a definição de clipping é utilizada no meio
publicitário e jornalı́stico, significando um processo de pesquisa e seleção contı́nua, na
maioria das vezes diária, de notı́cias relacionadas a determinados assuntos, atendendo a
um público direcionado. Tais assuntos publicados na mı́dia podem abranger referências
diretas ou indiretas a este público.
O clipping pode ser um condensador de informações originadas em diversas fontes
primárias da mı́dia. Na Ciência da Informação, o conceito de fontes de informação
está atrelado a qualquer recurso que responda a uma demanda de informação por parte
dos usuários. Neste conjunto, incluem-se produtos e serviços de informação, pessoas especı́ficas ou até mesmo uma rede de pessoas, programas de computador, etc. O termo
fonte primária é um termo genérico e refere-se a qualquer material (escrito, visual, etc)
que possa servir como objeto de estudo (CAMPOS; CURY, 1997). A área de jornalismo
considera como fonte pessoas, tomadas individualmente ou em conjunto, e documentos
por meio dos quais os profissionais tomam conhecimento de informações ou opiniões, podendo inclusive verificar o rigor dos dados obtidos e sua veracidade. Fontes secundárias
são também fontes de pesquisas e são produzidas a partir de fontes primárias. Livros,
por exemplo, são considerados fontes secundárias. Assim, segunto Teixeira (2001, p. 5),
o clipping ao ser finalizado transforma-se em uma fonte secundária de informação, o que
implica em processos de seleção, classificação, indexação e recuperação segundo critérios
previamente determinados por um usuário, a partir de suas necessidades de informação.
Produtos relacionados a clipping surgiram como ferramentas gerenciais para pessoas
fı́sicas e jurı́dicas. A necessidade de estar informado sobre o que estava sendo publicado em
tablóides, revistas e jornais impressos deu margem a empresas de publicidades focarem
em informações especı́ficas para seus clientes. Com essas informações sendo separadas
especificamente por palavras-chave estratégicas aos seus clientes, tornou-se interessante
encontrar conteúdos e notı́cias de grande relevância a eles. As empresas de publicidade,
através de uma análise especı́fica, conseguem verificar o impacto que as notı́cias causam
a seus clientes, tanto positiva ou negativamente. Toda essa análise pode também ser feita
aos concorrentes de um cliente, dando possibilidade ao estudo de seu posicionamento no
1.1 Motivação
9
mercado.
A proposta desse trabalho é o desenvolvimento de uma ferramenta de busca personalizada denominada web clipping. A alimentação dessa ferramenta é feita por um
spider automatizado de código aberto. Apesar do papel fundamental de recuperação de
informação realizado pelo robô, o objetivo dessa ferramenta de busca é a organização
da informação apresentada em um sistema, desenvolvido no ambiente web, para gerir e
apresentar dados do clipping.
Organizar as palavras-chave pesquisadas e salvas, agrupando-as em categorias para
propósitos especı́ficos das pessoas, compreende também a proposta desse trabalho, pois
permite que cada usuário devidamente identificado na ferramenta de busca possa manter
seu histórico de pesquisas. Desse modo, a ferramenta mostra a distribuição do conteúdo
relevante aos usuários pelo simples fato de processar o que eles mais salvam como pesquisa
para o clipping.
1.1
Motivação
Apesar da superioridade e competência que as empresas desenvolvedoras de ferramentas de busca têm hoje, ainda existem carências no tratamento dos dados coletados na web.
Uma dessas carências encontra-se em ferramentas capazes de categorizar os dados recebidos das máquinas de busca. Facilitar esta coleta e sua posterior categorização através da
utilização de robôs espalhados na web e do emprego de tecnologia de bancos de dados para
tratar e classificar o resultado destas buscas tornou-se a grande motivação deste trabalho.
Outro fator motivador para o estudo foi o interesse em aprofundar o conhecimento sobre
o universo de ferramentas de busca e dos spiders.
Existem estudos focados no processamento distribuı́do das aplicações da máquina
Google, no volume de seus processos de computação e como eles foram e são realizados
na empresa. Algumas vezes, esses processos não levam em conta o possı́vel aprendizado
daquilo que é informado para se gerar um conteúdo relevante. Muita informação é passada
por usuários na web diariamente em todo o mundo, mas pouco volume é realmente tratado,
visando extrair a relevância e inteligência ali existente. Muitas vezes também essa extração
não demanda tanta carga computacional de processamento, mas sim o entendimento
coerente dos problemas em questão.
Existem ferramentas de buscas disponı́veis por várias empresas, embora não se encontre com freqüência propostas de customização de pequenos sistemas de busca que atendem
1.2 Objetivos
10
demandas especı́ficas de usuários. Um exemplo é a recuperação de informações em apenas alguns sites considerados importantes pelo usuário e informados ao robô automático,
também customizado e de código aberto, que salva o que captura em banco de dados.
O conceito de clipping se aplica de forma eficaz a um sistema para aqueles que pesquisam freqüentemente e precisam visualizar o que há de novo na web sem necessariamente
realizar pesquisas idênticas por palavras-chave.
Esse trabalho apóia-se em ferramentas disponı́veis gratuitamente na web como o Heritrix (HERITRIX, 2007), realizando o trabalho de spider, e o sistema gerenciador de
bancos de dados (SGBD) MySql (MYSQL, 2007), além da linguagem de programação
para sistemas web dinâmicos PHP1 (PHP.NET, 2007), utilizada na construção de uma
interface capaz de tornar mais fácil e automatizado o trabalho daqueles que pesquisam
com freqüência.
1.2
1.2.1
Objetivos
Geral
O objetivo geral desse trabalho é desenvolver uma ferramenta de busca capaz de
categorizar o resultado das pesquisas realizadas pelos usuários, utilizando de mecanismos
de aprendizado em pesquisas anteriormente realizadas, conforme as premissas de clipping.
1.2.2
Especı́ficos
Compreendem como objetivos especı́ficos:
- O aperfeiçoamento no aprendizado em desenvolvimento de ferramentas de busca que
possam ser mais amigáveis e customizáveis;
- O aprendizado nos processos que envolvem a customização de spiders de código
aberto, mais especificamente os aqui eleitos como utilitários, em atividades de recuperação
de informações em SGBDs, também de código aberto, como o MySql;
- Aplicar os conhecimentos aprendidos no curso de Ciência da Computação diante do
propósito apresentado.
1
Um acrônimo recursivo para Hypertext Preprocessor.
1.3 Visão geral do trabalho
1.3
11
Visão geral do trabalho
Este estudo organiza-se da seguinte forma: inicialmente, no segundo capı́tulo, apresentase a fundamentação teórica que apóia a proposta deste trabalho. São referenciados o
Heritrix como proposta de um spider de código-aberto, os fundamentos sobre ferramentas
de busca, o ambiente de desenvolvimento ao qual o sistema web de clipping proposto foi
desenvolvido e a metodologia de desenvolvimento através da qual o projeto foi gerenciado
e conduzido.
No terceiro capı́tulo, apresenta-se os trabalhos relacionados, confrontando os mesmos
com este projeto. No quarto capı́tulo, mostra-se a metodologia empregada.
No quinto capı́tulo, contempla-se todo o processo de desenvolvimento do trabalho,
iniciando pela diagramação do modelo em banco de dados, utilizando o diagrama de
Entidade-Relacionamento (DER) baseado na UML. Em seguida, descreve-se a forma de
integração do Heritrix com a base de dados, prosseguindo com a descrição dos procedimentos empregados para a geração automática de web clipping alimentado por spider.
No sexto capı́tulo, apresenta-se a análise dos resultados obtidos, a sugestão dos trabalhos futuros e a conclusão dos estudos.
12
2
Fundamentações teóricas
2.1
Heritrix como mecanismo de recuperação de informação
Um web crawler, também conhecido como web spider ou web bot, é um programa ou
script que navega na web de maneira metódica e automatizada. Outros nomes menos
freqüentemente utilizados para web crawlers são agentes, indexadores automáticos, robôs
e vermes (KOBAYASHI; TAKEDA, 2000, p. 153).
Segundo Mohr et al (2004, p. 1), o Heritrix1 é um projeto de web crawler da Internet
Archive2 de código aberto, extensı́vel, escalar a web, arquivável e qualitativo.
A escolha do Heritrix (versão 1.10.0) como responsável pela recuperação de informação
deste trabalho deu-se pelo fato dessa aplicação já ter sido concebida nos moldes de um
software reutilizável. O Heritrix é totalmente modularizado e documentado, dando assim
abertura a desenvolvedores encorajados a criar suas próprias adequações computacionais
conforme necessidade. Para atender a necessidade deste trabalho, foi preciso desenvolver
um módulo na linguagem nativa (Java) da aplicação. Tal módulo é responsável por salvar
as informações na tabela aqui nomeada docspider, no banco de dados MySql, a qual servirá
de repositório constante às pesquisas do sistema de web clipping.
Para utilizar um spider, é necessário escolher o tipo de rastreamento que irá realizar. Através desse rastreamento, se define-se a forma com que as informações poderão
ser aproveitadas posteriormente. Existem quatro tipos de rastreamento: amplo, focado,
contı́nuo e experimental. Para o trabalho proposto, foi utilizado o contı́nuo.
Tradicionalmente, os crawlers dão continuidade ao seu trabalho utilizando um snapshot
(uma “foto instantânea”) dos recursos de interesse, fazendo download único de todas as
1
Heritrix é uma palavra antiga para “heiress”, que significa “mulher que herda”(MOHR et al, 2004,
p. 3).
2
A Internet Archive é uma corporação sem fins lucrativos, cuja missão é construir uma biblioteca
pública digital. Mais detalhes em: http://www.archive.org/index.php
2.1 Heritrix como mecanismo de recuperação de informação
13
URL em uma só vez. O rastreamento contı́nuo, em contrapartida, visita novamente as
páginas já visitadas anteriormente, procurando por mudanças, descobrindo e coletando
novas páginas, e até mesmo alterando suas taxas de visitação (MOHR et al, 2004, p. 2).
O Heritrix possui uma interface web que permite ao usuário realizar a gerência de suas
ações. Tal interface é ativada a partir do comando “./heritrix –bind-/ –admin=usuario:senha”.
Uma visão da arquitetura básica do Heritrix corresponde à figura abaixo:
Figura 1: Arquitetura básica do Heritrix, mostrando a relação direta com o pedido de
uma ação de crawler (CrawlOrder) durante a execução de um Job e as chamadas aos
principais módulos e métodos internos da aplicação (MOHR et al, 2004, p. 6).
O console de administração3 via web pode ser acessado, se a aplicação estiver instalada
localmente, em http:/localhost:8080 (essa porta é padronizada para aplicações Java na
web, mas pode ser alterada).
O Heritrix não possui um módulo nativo e especı́fico para sua inicialização automática,
3
Maiores informações de
http://crawler.archive.org .
como
instalar
e
configurar
o
Heritrix
estão
disponı́veis
em
2.2 Ferramentas de busca
14
ou seja, um gatilho que possa realizar a criação de um CrawlOrder referente à última
execução do Job e iniciar a operação de rastreamento em um determinado momento préagendado. Dessa forma, foi necessária também a criação de um mecanismo com esse
objetivo.
A demontração completa da criação do trigger de inicialização automática e do módulo
responsável por salvar as informações no banco de dados MySql estão descritos no capı́tulo
5.
2.2
Ferramentas de busca
Existem diversos tipos de serviços disponı́veis na Internet os quais atraem a mira
dos navegadores de usuários em todo o mundo. Dentre esses serviços, destacam-se as
ferramentas de busca, pois auxiliam constantemente os usuários na procura por artigos
acadêmicos, livros, produtos eletrônicos, figuras, arquivos, ou seja, praticamente tudo.
Existem algumas versões sobre a origem das ferramentas de busca, também chamadas
de motores de busca, na Internet.
“Os motores de busca começaram a surgir quando o número de recursos
disponı́veis na web adquiriu proporções tais que impediam sua coleta
por meios manuais e a busca apenas através da navegação. A maioria
deles derivou do trabalho de estudantes de pós-graduação, professores,
funcionários do departamento de sistemas de empresas ou outras pessoas
interessadas na web”(CENDÓN, 2001, p. 41).
A tarefa principal em uma ferramenta de busca é devolver, depois de informado uma
frase ou palavra como argumento de busca, o resultado referente aos conteúdos que contém
essa frase (ou palavras-chave existentes nessa frase) ou a palavra em questão. Mas segundo
Witten et al (2007, p. 104), procurar em um texto não é tão simples quanto a tarefa que
realiza um computador quando procura do inı́cio ao final desse mesmo texto, buscando o
que você quer encontrar.
Torna-se necessário, então, a criação de estruturas de indexação de documentos obtidos pelos spiders, além da compactação desses documentos para poupar espaço em disco.
Para haver disponibilidade do serviço em uma ferramenta de busca em grande escala,
também é necessário distribuir a carga de trabalho. Para isso, estruturas complexas de
multiprocessamento são utilizadas, formando clusters e grids.
“Devido ao dinamismo da Internet, as bases de dados dos motores de
busca precisam ser atualizadas, não só para adicionar novas páginas,
2.2 Ferramentas de busca
15
mas também para eliminá-las ou incluir modificações às já indexadas.
Caso os robôs não revisitem periodicamente toda a Internet, os Uniform Resource Locators (URLs) que eles trazem como resultados de uma
busca podem não mais existir, ou podem existir mas não mais contar
as mesmas informações e, portanto, não mais serem relevantes para a
busca”(CENDÓN, 2001, p. 44).
As ferramentas de busca das principais empresas do mundo são avaliadas anualmente
em um relatório chamado “Annual E-Business Report”, produzido pela empresa ForeSee
Results. Este ı́ndice mede o American Consumer Satisfaction Index (ACSI), como o
próprio nome já menciona, o ı́ndice de satisfação dos consumidores americanos. O relatório
de 2007 revela dados interessantes: apesar da supremacia da Google, a empresa Yahoo!
apresenta uma ligeira alta, superando sua adversária em se tratando do valor de alta anual
na pontuação geral. Várias outras empresas também aparecem nessa pontuação como a
MSN e AOL.
Figura 2: Pontuação das empresas de acordo com o ACSI (FREED, 2007, p. 4).
Dados desse relatório também mostram que a Google tem perdido espaço nessa disputa
muitas vezes por seus novos serviços não serem de fato acessados e assimilados pelos
usuários comuns da Internet(aqueles que não têm grande conhecimento em navegação ou
sobre informática), levando a premissa de que não são todas as pessoas que conseguem
efetivamente navegar nos principais recursos que a empresa disponibiliza.
Isso leva ao principal foco deste trabalho: produzir uma interface simples e prática
para uma ferramenta de busca com aprendizado automático, baseada no conceito de
clipping, para tornar o trabalho dos usuários que pesquisam com freqüência na Internet
mais prático e inteligente. Tudo que se pesquisa no sistema proposto pode ser aprendido
2.3 Ambiente de desenvolvimento do sistema de web clipping
16
e categorizado.
2.3
Ambiente de desenvolvimento do sistema de web
clipping
O desenvolvimento do sistema de web clipping baseou-se no conceito de software livre
e linguagem de código aberto. Três aplicações são fundamentais para o seu perfeito
funcionamento:
1. O serviço web, capaz de receber solicitações de usuários na porta 80 do servidor,
utilizando o protocolo HTTP (HiperText Transfer Protocol);
2. O interpretador do código-fonte responsável pela tradução online do sistema (código
fonte sendo interpretado, sem a necessidade de geração de código-objeto), fazendo
com que a aplicação seja visualizada pelos usuários que a acessam;
3. O SGBD que irá assegurar e armazenar os dados a serem processados.
Figura 3: Esquema de acesso ao sistema, mostrando as aplicações fundamentais
instaladas no servidor web.
Respectivamente, para prover tal ambiente foram utilizados o Apache HTTP Server,
o PHP e o MySql. Com essas aplicações devidamente instaladas no ambiente de sistema
operacional Linux (distribuição Suse versão 10.2, no caso deste trabalho), é possı́vel utilizar satisfatoriamente o sistema sem que haja qualquer tipo de problema com desempenho
ou instabilidade. Todas as aplicações ditas como fundamentais para compor o ambiente
2.4 Metodologia de desenvolvimento
17
web do sistema são inclusive nativas para esse sistema operacional, ou seja, podem ser
instaladas junto com o Linux.
Algumas variáveis de ambiente foram configuradas antes da codificação, como as
sessões e as globais (parâmetros GET e POST), do sistema em PHP. Para isso, basta checar o arquivo denominado PHP.INI existente na pasta PHP (shell do Linux) em questão.
No MySql, também é importante verificar se as variáveis de ambiente estão assinaladas
com valores que realmente condizem com o quê a aplicação irá requisitar.
Pesquisas complexas envolvendo ı́ndices textuais precisam de variáveis de buffers com
tamanhos adequados, assim como variáveis que irão envolver a utilização de consultas
em que existam JOIN e ı́ndices diversos. Tais variáveis fazem parte de um processo
de tunning o qual nem sempre é realizado no inı́cio da vida útil de um sistema e sim
depois de se passar por um tempo de verificação e avaliação da necessidade de melhoria
de desempenho das consultas utilizadas. Para realizar essa tarefa, basta alterar o arquivo
MY.CNF existente nas pastas internas da instalação do MySql.
2.4
Metodologia de desenvolvimento
Para que o sistema proposto nesse trabalho fosse concebido de forma rápida e precisa,
optou-se por apoiar sua gerência na metodologia de desenvolvimento Getting Real (GETTING REAL, 2006). Trata-se de uma metodologia ágil, que enfoca a facilidade e certeza
do desenvolvimento de funcionalidades requisitadas, sem que haja extrema complexidade
no que se pretende construir.
Basicamente, a metodologia privilegia o simples e o alcançável para que versões ainda
mais simples de sistemas sejam lançadas com agilidade e confiança, diminuindo-se assim
os ciclos de revalidações na programação e correções de erros constantes.
A idéia principal do Getting Real é evitar ao máximo o que representa o aplicativo
(gráficos, diagramas, wireframes) e realmente construi-lo. Possui um foco em iterações
menores, diminuindo o custo das mudanças, para construir somente as funcionalidades
essenciais em primeiro momento. Propõe resolver o problema da forma mais simples
possı́vel, limitando-o em algo pequeno e ágil de resolver (GETTING REAL, 2006).
Toda análise do problema existente neste trabalho está relacionado a essa metodologia.
Existem diversas idéias que poderiam fazer parte deste estudo, mas ao conhecer e fixar
prazos e requisitos fundamentais, conforme sugestão da própria metodologia, nada a mais
2.4 Metodologia de desenvolvimento
18
do que o necessário precisou ser implementado. Os pontos de controle são baseados no
término de pequenas iterações inicialmente agendadas.
Metodologias mais conhecidas, utilizadas em projetos maiores e que envolvem variáveis
volumosas de tempo, requisitos, valores (dentre várias outras) poderiam tornar a gerência
do projeto mais demorada e burocrática. Por isso a escolha do Getting Real.
19
3
Trabalhos relacionados
Poucos são os trabalhos produzidos relacionados a clipping. Em contrapartida, trabalhos que envolvem a categorização de termos e o auto-aprendizado no processo de pesquisas em ferramentas de buscas já fazem parte inclusive da vida daqueles que utilizam a
Internet com freqüência.
Teixeira (2001) realizou seu trabalho nas premissas de clipping fı́sico baseado na classificação de recorte de jornais para a Assembléia Legislativa de Minas Gerais. Nesse
trabalho, não houve a interação de um sistema especialista que atuasse no processo de
identificação e classificação de conteúdo por palavras-chave.
Em contrapartida, trabalhos que envolvem a categorização de palavras foram publicados em maior número. Lima (2000) utilizou-se de bases de documentos médicos para
estabelecer um modelo baseado na correlação hierárquica de termos especializados. Com
o uso desse princı́pio, é possı́vel isolar a tarefa de categorização da influência desnecessária
de termos não pertencentes ao vocabulário médico controlado de referência e da linearidade do cálculo do peso de um termo na recuperação de informação proporcionada pelos
modelos tradicionais.
Rizzi et al (2000) trabalharam na categorização de textos relacionados ao meio empresarial. Através de ferramentas desenvolvidas nos conceitos de redes neurais, informações
gerenciais e administrativas podem ser mais bem trabalhadas e enviadas aos respectivos
setores de uma empresa com o ganho de visão de mercado e, conseqüentemente, competitividade no meio.
O Google News (2002) é um serviço diretamente relacionado a este trabalho, principalmente pela forma em que apresenta as informações aos usuários, baseando-se nos
conceitos de usabilidade. Essa ferramenta é capaz de “aprender”o que foi pesquisado anteriormente para os usuários devidamente cadastrados, atribuindo categorias às pesquisas
diárias realizadas, conforme necessidade de organização.
O conceito de clipping aplica-se ao Google News, pois seus robôs vasculham, diaria-
3 Trabalhos relacionados
20
mente, vários sites de notı́cias em busca de mais informações que se refiram às palavraschave pesquisadas anteriormente pelos usuários. O processo é extremante automatizado
e a qualidade é alta no serviço prestado pela empresa.
Figura 4: Tela inicial de um usuário que acessa o Google News. À esquerda, as opções
de palavras-chave cadastradas (GOOGLE, 2007).
A ferramenta de busca da empresa Yahoo! é anterior à da Google e também disponibiliza a possibilidade de personalização de buscas aos usuários previamente cadastrados. O
My Yahoo! (YAHOO!, 2007) é um serviço novo da empresa, mas ainda não contempla as
funcionalidades apresentadas pelo Google News. Nesse serviço, as opções de customização
são escassas e basicamente o que temos é a adição de novos conteúdos, edição de layout
e alteração de cores.
Este trabalho pretende alcançar um diferencial em relação ao Google News no que diz
respeito à forma de distribuição da informação e na praticidade da utilização dos recursos.
A proposta do sistema de web clipping é apresentar relevância sobre palavras-chave e seus
termos relacionados como forma de categorização de resultados.
Conforme já citado anteriormente na pesquisa apontada pela empresa ForeSee Results (FREED, 2007), a ferramenta da Google requer dos usuários conhecimentos mais
3 Trabalhos relacionados
21
Figura 5: Tela inicial de um usuário que acessa o My Yahoo! (YAHOO!, 2007).
avançados em informática diferindo exatamente nesse ponto do sistema proposto neste
trabalho.
22
4
Metodologia
O trabalho proposto se baseia em uma metodologia experimental apoiada em referencial teórico e precisa de uma seqüência linear de desenvolvimento que segue uma ordem
cronológica de implementações.
As etapas de desenvolvimento do trabalho contemplam:
- Customização da aplicação Heritrix, responsável pela recuperação da informação
(spider), criando um módulo especı́fico à aplicação que possibilita utilizar banco de dados;
- Modelagem da base de dados no SGBD MySql, conforme necessidade do sistema
web em questão, respeitando inclusive as necessidades básicas do spider;
- Desenvolvimento do sistema web responsável pelo processamento das informações
salvas pelo spider, organizando as informações e aplicando o conceito de clipping e de
relevância ao se aplicar refinamento nas pesquisas.
Para realizar a customização do spider, é necessária a programação em linguagem
Java. A modelagem da base de dados será feita para o SGBD MySql e, finalmente, a
aplicação que representará visualmente o sistema proposto será implementada em PHP,
linguagem de programação para conteúdos web dinâmicos.
23
5
Desenvolvimento
5.1
Esquema conceitual da base de dados em notação
UML
Segundo Elsmasri e Navathe (2004, p. 75), a linguagem de modelagem universal
(UML) vem sendo extensivamente aplicada no desenvolvimento de softwares e pode ser
utilizada também como uma forma alternativa de se realizar a notação do diagrama de
Entidade Relacionamento (DER). De forma análoga, o diagrama de classes de entidades
da UML pode ser modelado sobre o conceito de estrutura de tabelas de um banco de dados
e, dessa forma, se cria os respectivos atributos das classes para as colunas das tabelas.
Várias ferramentas UML disponı́veis no mercado geram inclusive, com essa modelagem,
o código SQL a ser implementado.
O esquema da base de dados do trabalho proposto abrange especificamente o minimundo planejado para o problema, ou seja, todas as tabelas e campos têm relação direta
com as premissas de clipping.
Foram criadas oito tabelas as quais seis foram padronizadas no módulo de estratégia
de armazenamento chamado INNODB, onde as propriedades ACID1 estão presentes. Nas
outras duas tabelas restantes, foi utilizada a padronização no módulo MyISAM ao qual
não contempla todas as propriedades ACID, mas permite a utilização vantajosa dos ı́ndices
FULLTEXT. Esse tipo de ı́ndice permite consultas mais otimizadas e ágeis em campos
extensos de texto, tipo TEXT, sendo aplicado na busca por palavras-chave neste trabalho.
Nos ı́ndices FULLTEXT (MYSQL, 2007), a cláusula WHERE de uma consulta conta
com uma declaração especial no banco de dados MySql: é a declaração “MATCH ...
AGAINST”. Essa declaração possibilita buscar em vários campos definidos como FULLTEXT por uma ou várias palavras-chave de uma só vez. Para que isso aconteça, é necessário informar o tipo “IN BOOLEAN MODE”na consulta, o qual define se a palavra1
A sigla ACID significa atomicidade, consistência, isolamento e durabilidade e está relacionada a banco
de dados que oferecem esse tipo de vantagem ao tratar suas transações internas.
5.1 Esquema conceitual da base de dados em notação UML
24
chave em questão precisa ser buscada com a ocorrência de outras palavras. Essa consulta
é realizada utilizando o operador “+”como cláusula obrigatória de ocorrência de strings.
Essa alternativa de busca é perfeita para a necessidade em questão.
Consultas que utilizam ı́ndices FULLTEXT e a forma correta de montá-las pode
ser mostrada da seguinte maneira, em um exemplo tı́pico de busca por palavra-chave
no sistema: SELECT * FROM docspider WHERE MATCH (docTitulo, docConteudo)
AGAINST (’ +galo +atlético’ IN BOOLEAN MODE).
Nesse exemplo ocorre a pesquisa em todas as notı́cias buscadas pelo spider e salvas na
tabela docspider e que tenha no tı́tulo ou no conteúdo a palavra “galo”e obrigatoriamente
(obrigatoriedade está explı́cita pelo sı́mbolo “+”) a palavra “atlético”. Uma variação desse
exemplo seria a retirada das duas ocorrências do sı́mbolo “+”. O resultado nesse caso seria
a busca por “galo”ou “atlético”, mostrando todas as notı́cias com ocorrências de ambos,
não necessariamente tendo apenas as ocorrências de ambos numa mesma notı́cia, como no
exemplo anterior. A utilização da especificação “IN BOOLEAN MODE”é fundamental
para que se utilize o operador “+”.
Realizando o levantamento dos requisitos para atender às necessidades do trabalho
proposto, chegou-se à modelagem da base contendo tabelas INNODB e MyISAM.
A base de dados proposta possui as seguintes tabelas e campos, com suas respectivas
descrições:
- tabela docspider, onde idDoc é a chave primária, idVeic é a chave estrangeira que
referencia o veı́culo do conteúdo capturado, docTitulo é o tı́tulo capturado no HTML da
página (tag title), docData é a data da captura, docUrl é o endereço real da notı́cia na
Internet, docConteudo é a conteúdo especı́fico da notı́cia salvo em um campo tipo TEXT
e, finalmente, docHtml é o conteúdo completo e cacheado do HTML da notı́cia;
- tabela definicao, onde idUsuKey é a chave estrangeira que referencia qual usuarioKeyword ela está definindo, e definicao contém a palavra-chave utilizada como refinamento
para uma palavra-chave de busca, esta última em usuarioKeyword;
- tabela comentario, onde idComentario é a chave primária, idUsu é a chave estrageira
do usuário que realizou o comentário, idDoc é a chave estrangeira do contéudo que foi
comentado por aquele usuário, comentario é o campo tipo TEXT que contém o texto do
comentário, e ultimaAtualizacao que salva o timestamp da última vez que o comentário
foi escrito;
- tabela usuarioKeyword, onde id é a chave primária. Os campos idCat, idUsu e idKey
5.2 Módulo de escrita em banco de dados para o Heritrix
25
são chaves estrangeiras referenciando as tabelas categoria, usuario e keyword, respectivamente. O campo cont realiza a contagem das vezes em que a pesquisa foi feita pelo
usuário, quando este evetualmente clica em um ı́cone de lupa no sistema;
- tabela categoriaUsuario, onde idCategoria é a chave primária, idUsu é a chave estrangeira que referencia a tabela de usuario e nome, que descreve o nome da categoria;
- tabela keyword, onde idKeyword é a chave primária e keyword é a palavra-chave de
uma pesquisa salva por um usuário;
- tabela usuario, onde idUsuario é a chave primária, nome contém o nome do usuário
cadastrado no sistema, assim com o campo e-mail e senha guardam as respectivas informações do usuário;
- tabela veiculo, onde idVeiculo é a chave primária, ulr é o endereço para se acessar
tal veı́culo e nome é o nome do veı́culo.
Nos campos docTitulo e docConteudo da tabela docspider existe o ı́ndice FULLTEXT,
assim como no campo comentario da tabela com esse mesmo nome, e por isso, apenas
essas tabelas estão no formato MySAM.
5.2
Módulo de escrita em banco de dados para o Heritrix
Os desenvolvedores do Heritrix adotaram a escrita em arquivos como a principal forma
de salvar as informações recuperadas da web. Tais arquivos podem ser acessados, ao final
da execução do Heritrix, como arquivos de texto comuns e conseqüentemente vasculhados
conforme necessidade, sendo bastante úteis para um estudo preliminar desse spider.
Para alcançar o objetivo deste trabalho foi necessário construir um módulo mais especı́fico e que atendesse a necessidade de salvar no banco de dados MySql. A versão
1.10.0 do Heritrix está codificada na linguagem Java e, consequentemente, o novo módulo
de escrita também foi desenvolvido nessa linguagem.
Basicamente, foi necessário desenvolver duas classes: DBConnection e MySQLWriterProcessorRSS, onde a primeira realiza a conexão em banco de dados através de parâmetros
como localização do servidor do banco (endereço web), base de dados a ser utilizada,
usuário do banco e senha. A segunda classe utiliza essa conexão estabelecida e processa
o conteúdo recuperado pelo Heritrix, salvando as informações na tabela docspider.
5.2 Módulo de escrita em banco de dados para o Heritrix
26
Figura 6: Esquema conceitual da base de dados em notação UML. Os relacionamentos
são demonstrados com a especificação das respectivas chaves.
5.2 Módulo de escrita em banco de dados para o Heritrix
27
Para realizar uma tarefa de recuperação de informações na web, o Heritrix necessita da
criação de um Job. Essa tarefa pode ser realizada manualmente, mas no trabalho proposto,
é realizada por um script construı́do no shell do Linux agendado no CRON2 . Esse script
monta o novo Job baseado na última execução realizada. Com essa tarefa, o Heritrix pode
então trabalhar de forma automatizada, diariamente e em horários pré-determinados,
recuperando frequentemente toda nova informação dentro dos sites configurados para
serem vasculhados.
Mesmo sendo construı́do um script de automatização do spider, é necessário conhecer passo-a-passo a forma como esse Job é criado e executado. Para iniciar o Heritrix
via shell do Linux, conforme já mencionado anteriormente, é necessário entrar no diretório BIN dentro do seu diretório raiz, e executar o comando: “./heritrix –bind-/ –
admin=admin:spider123”. Em seguida, acesse o endereço onde está instalada a aplicação
para ter acesso às telas de administração. O endereço possı́vel para visualização da administração, no caso, localmente, é: http://localhost:8080 (essa porta é padronizada para
aplicações Java na web, mas pode ser alterada).
Ao acessar o endereço sugerido, a tela inicial do Heritrix irá requerer o login e senha
já informados no parâmetro “usuário”e “senha”ao se inicializar no shell do Linux.
Figura 7: Tela de login do Heritrix sendo acessada em http://localhost:8080
A tela seguinte apresenta o painel de controle do Heritrix, mostrando o status da
execução de um Job naquele momento. O console de execução se mantém inativo uma
vez que não há Job sendo executado.
Para que se iniciar a criação de um Job, é necessário clicar no link Jobs. Já está
sendo considerado que um perfil de execução foi criado. Esse perfil define uma série
2
Uma ação do CRON do Linux representa uma chamada a função nativa CRONTAB a qual agenda
um evento no sistema operacional conforme necessidade.
5.2 Módulo de escrita em banco de dados para o Heritrix
28
Figura 8: Tela inicial do Heritrix, após efetuar o login, mostrando o console de execução
inativo.
de caracterı́sticas da execução de um Job, como por exemplo, o tempo em que o spider
irá tentar acessar um conteúdo, a profundidade que ele irá percorrer um site e outras
importantes configurações.
Essa tela de Jobs também mostra todos aqueles que já foram executados. Existe
um UID de cada Job que corresponde a um timestamp exato da execução. Com esse
identificador único é possı́vel distingüi-los e saber quando iniciaram suas execuções.
É necessário dar continuidade às execuções já realizadas para que conteúdos de sites
que já foram recuperados não sejam novamente buscados, replicando assim informações
salvas no banco. Para dar continuidade e recuperar apenas o conteúdo novo dos sites é
preciso direcionar a seta do mouse à área de Create New Job e em seguida escolher Based
on a recovery.
Todos os sites os quais se deseja “crawlear”, ou seja, efetuar a recuperação de informação, precisam agora estar na listagem de seeds do spider. Essa listagem faz referência aos endereços exatos dos sites onde haverá repositórios de novas informações. É
através dessas seeds que o Heritrix irá se guiar para procurar novos conteúdos. Todo o
resto dos sites (outros endereços) que não forem declarados como seeds serão recuperados
apenas na primeira execução de um Job, ou seja, os outros Jobs baseados em recovery
irão atuar apenas nas seeds. Por esse motivo essa primeira execução leva um tempo bem
maior para finalizar em relação à execução diária.
A caixa de texto da tela de submissão de Job contém todas as seeds desejadas de
acordo com cada site. Os sites escolhidos para serem “crawleados”pelo spider neste
5.2 Módulo de escrita em banco de dados para o Heritrix
Figura 9: Tela de criação de Jobs.
Figura 10: Para finalizar a requisição do Job baseado no recovery, basta clicar em
Submit job.
29
5.2 Módulo de escrita em banco de dados para o Heritrix
30
trabalho são: Clica Brası́lia, G1 - Globo, IG Notı́cias, Info Online, Jornal da Tarde, O
Globo, Portal Uai, Portos e Navios, Super Esportes, Terra Notı́cias, Rádio Brás e UOL
Notı́cias. A escolha desses sites tem o intuito de fomentar a categorização de palavraschave com temas esportivos e polı́ticos, principalmente. Novos sites voltados para outros
temas podem ser inseridos na execução do Heritrix conforme necessidade.
Ao se clicar em Submit job, a criação manual do mesmo estará pronta. É possı́vel
perceber na tela de Jobs, em seguida, existência de um pendente.
Figura 11: Job criado e pendente no Heritrix.
Para começar efetivamente a recuperação de informação é necessário iniciar o Job que
se encontra pendente. Isso é feito ao voltar ao link Console e clicar no link Start.
A partir daı́, o Heritrix realiza todo seu processamento interno das informações que
está obtendo e salva no banco de dados MySql graças ao módulo especı́fico. O tempo de
espera para finalização do Job depende diretamente do tempo de resposta que o spider está
obtendo dos sites referenciados nas seeds. Muitos sites estão hospedados em servidores
de baixa qualidade ou estão algumas vezes inclusive fora do ar3 .
3
O Heritrix permite configurar o número de tentativas de acesso a sites lentos e cujos endereços não
respondem. Detalhes em: http://www.archive.org/index.php
5.2 Módulo de escrita em banco de dados para o Heritrix
31
Figura 12: Ao clicar em Start, o Job pendente começará a ser executado, recuperando as
informações dos sites referenciados pelas seeds.
Figura 13: Informações sobre o Job sendo executado são mostradas no Console.
5.3 O sistema de web clipping
32
O Job permanece em execução até que o Heritrix consiga obter todos os novos
conteúdos dos sites. Ao finalizar, todas as informações de execução do Job desaparecem da tela de Console e o spider pode ser desligado ao se clicar em Shut down Heritrix
Software.
Como todo o conteúdo da execução do Job é salvo em banco de dados diariamente, o
sistema de web clipping fica então alimentado com novas informações dando aos usuários
a chance de acompanhar automaticamente o que há de novo nas suas pesquisas salvas,
cumprindo assim o objetivo do Heritrix e do módulo de escrita desenvolvido.
5.3
O sistema de web clipping
Com as informações salvas pelo spider, fica a cargo do sistema de web clipping então
auxiliar os usuários no trabalho de classificação e salvamento de pesquisas.
As premissas de clipping se encontram presentes no sistema, uma vez que a utilização
do refinamento e o salvamento das pesquisas atingem os objetivos. Para dar inı́cio à
utilização é necessário acessar o endereço sugerido visualizando assim a tela inicial de
usuários que ainda não se identificaram. Ao passar a seta do mouse sobre os links, sempre
haverá uma nota de ajuda respectiva à tela visualizada, auxiliando assim na navegação e
utilização da ferramenta.
Figura 14: Tela Inicial de acesso ao sistema de web clipping com o usuário ainda não
identificado.
É possı́vel, ainda nessa tela, realizar uma busca por uma string qualquer. Esse tipo
5.3 O sistema de web clipping
33
de pesquisa é comum em vários mecanismos de busca disponı́veis na Internet, mas com
o agravante de retornar todos os resultados possı́veis com a string procurada. Uma
busca pela palavra-chave “galo”, por exemplo, retorna 100 resultados sem a aplicação de
qualquer tipo de refinamento.
Figura 15: Resultado de uma busca realizada no sistema (sem o usuário ter efetuado
login) pela string “galo”, sem a aplicação de qualquer tipo de refinamento.
Para novos usuários, é necessário realizar um breve cadastro. O e-mail a ser cadastrado deve ser único no sistema, ou seja, não pode haver dois cadastros com o mesmo.
Com e-mail e senha devidamente cadastrados, é possı́vel em seguida efetuar o login.
A tela principal do sistema de web clipping é carregada a seguir, dando a visibilidade
de todas as pesquisas já salvas até então pelo usuário. Novos usuários têm a tela não
preenchida com informações e os links informativos auxiliam suas ações para realizar
pesquisas e já começar a salvar no sistema.
Os ı́cones de lupa espalhados pelo sistema possuem ação de realizar nova pesquisa
quando clicados, com o refinamento já especificado anteriormente. À medida que esses
ı́cones são clicados para se checar o que há de novo em termos de informação para as
pesquisas, seus contadores são incrementados, fazendo com que suas pesquisas mais utilizadas sejam sempre as primeiras a serem visualizadas no sistema. O número de vezes
que o usuário já clicou para cada pesquisa pode ser visto no número entre parênteses, ao
lado da palavra-chave da pesquisa em questão, no menu de categorias.
5.3 O sistema de web clipping
Figura 16: Tela de cadastro de novo usuário.
Figura 17: Informa-se o e-mail e senha cadastrados para se identificar no sistema.
34
5.3 O sistema de web clipping
35
Figura 18: Visualização principal do clipping, mostrando todas as informações sobre o
que há para as pesquisas salvas, dando a possibilidade de edição a todas informações de
configuração do sistema conforme necessidade.
As pequenas caixas azuis existentes ao redor da busca mostram as sete principais pesquisas que o usuário realiza com freqüência. Todas essas, assim como as demais no menu
de categorias, são pesquisas já salvas. Pesquisas não salvas não entram nas estatı́sticas e
não aparecem quando o usuário retornar novamente ao sistema.
Para se realizar uma nova pesquisa e conseqüentemente salvá-la, é preciso digitar a
string que se deseja procurar no campo de busca da caixa central de busca e clicar em
Buscar. Em seguida, na faixa azul que informa a quantidade de resultados encontrados,
é preciso clicar na lupa como sı́mbolo de mais (+) ao lado da palavra-chave procurada,
marcada em negrito.
Serão requisitadas algumas informações para salvar a busca conforme as necessidades.
Primeiramente, é necessário informar a categoria a qual se deseja salvar. Caso ela não
exista, é preciso sugerir uma nova. Em seguida, é permitido informar algumas palavraschave que possam acrescer um refinamento à busca, pois as consultas realizadas pelo
sistema web ao banco de dados, utilizando as cláusas MATCH ... AGAINST conforme já
mencionadas anteriormente, irão pesquisar tanto a palavra-chave em questão quanto as
palavras-chave que pertencem ao respectivo refinamento, de uma só vez, gerando assim
certa relevância no resultado encontrado.
5.3 O sistema de web clipping
36
Figura 19: É preciso clicar na lupa com o sı́mbolo de “+”para salvar a pesquisa no
clipping diário, ao lado da palavra-chave “galo”em negrito na faixa azul informando a
quantidade de resultados encontrados.
Figura 20: É através dessa tela que o clipping realmente se inicia, uma vez que é
categorizado, refinado e salvo.
5.3 O sistema de web clipping
37
Ao aparecer a mensagem de confirmação de salvamento de pesquisa, essa tela pode ser
fechada no navegador. A partir daı́ a pesquisa salva começa a ser mostrada freqüentemente
no sistema. O usuário agora tem essa pesquisa refinada salva toda vez que logar, ou
seja, basta apenas clicar na respectiva lupa obtendo assim, com agilidade, as últimas
informações que saı́ram para tal pesquisa.
Outra forma de incrementar relevância ao clipping dos usuários é a possibilidade de
inserção de notas pessoais aos conteúdos recuperadas pelo spider. Sempre que realizar
uma pesquisa no sistema, o usuário poderá utilizar dessas notas pessoais para auxiliá-lo a
retornar naquele conteúdo especı́fico futuramente. Para adicionar uma nota, basta clicar
no ı́cone de nota, ao lado do ı́cone de conteúdo cacheado.
Figura 21: Para realizar a inserção de uma nota pessoal a esse conteúdo encontrado,
basta clicar no ı́cone referente a anotação (bloco de notas e lápis).
Uma nova tela especı́fica de anotação é mostrada e, em seguida, é possı́vel inserir o
texto conforme necessidade. Para finalizar a inserção, basta clicar em Salvar essa nota
pessoal.
Para rever notas pessoais já criadas, é necessário realizar uma busca especı́fica por
notas na caixa de pesquisa do sistema, bastando apenas escrever a string de busca e
selecionar a opção Notas antes de clicar em Buscar. O resultado são conteúdos que têm
notas com a palavra procurada. Clicando novamente no ı́cone de edição de notas é possı́vel
visualizar o que já foi escrito para o conteúdo e inclusive editar. Todas as ações de edição
de funcionalidades no sistema remetem às telas onde haverá informações especı́ficas de
cada uma, permitindo que o usuário altere suas pesquisas conforme a necessidade.
5.3 O sistema de web clipping
38
Figura 22: Tela de edição de nota pessoal para um conteúdo especı́fico. Uma vez salva
essa nota, é possı́vel futuramente buscar por palavras-chave contidas nela.
39
6
Resultados, trabalhos futuros e
conclusão
O sistema pôde ser testado por usuários de áreas profissionais diferentes aos quais
fizeram algumas inferências a respeito da utilização do sistema e das funcionalidades existentes. Os resultados desses testes foram, de modo geral, satisfatórios tanto em se tratando
do objetivo proposto pelo sistema quanto pela facilidade na navegação, principalmente
depois de se conhecer todo o ambiente.
A utilização do sistema após o salvamento de pesquisas leva às premissas de clipping principalmente em se tratando de manter o usuário sempre informado a respeito do
que há de novo. Realizar constantemente pesquisas em mecanismos de buscas passando
como parâmetro palavras-chave adicionais que completam um refinamento causa certo
esforço adicional por parte dos usuários. O sistema de web clipping consegue suprimir
esse problema.
Dentre as funcionalidades secundárias existentes no sistema proposto, a possibilidade
de se salvar notas para cada conteúdo e buscar palavras-chave nessas notas, e a marca em
azul na palavra-chave procurada existente dentro dos conteúdos cacheados foram tidos
como grande auxı́lio aos usuários. Apesar de serem tidas como secundárias, tais funcionalidades auxiliam os usuários no árduo trabalho de se realizar pesquisas na web e ler
grandes quantidades de textos.
O layout proposto para o sistema foi aprovado pela maioria dos usuários que realizaram os testes, mas inovações e melhorias também foram sugeridas, principalmente por
aqueles que testaram e são da área de informática.
Sobre as premissas de clipping surgem várias inovações e idéias avançadas a respeito
de trabalho futuros. Dentre as idéias encontradas para melhoria e evolução do sistema,
pode ser sugerida a inserção de subcategorias às categorias já existentes e a aplicação
de inteligência artificial no processo de aprendizagem das palavras-chave que estão sendo
salvas com seus respectivos refinamentos. A inteligência estaria na definição humana do
6 Resultados, trabalhos futuros e conclusão
40
que cada palavra-chave significa, podendo levar à geração automática de uma série de
categorias sugestivas aos usuários, tornando o sistema ainda mais dinâmico. Levado por
essa idéia, seria possı́vel ainda agrupar conteúdos, recuperados pelo spider, por essas categorias que vão se auto-definindo, à medida que os usuários vão inserindo mais informações
no sistema.
A possibilidade de inserção de imagens nas notas pessoais e inserção de um banner
ao alto do layout tornariam a ferramenta ainda mais customizada ao usuário.
A implementação de “nuvem de tags”, muito utilizada em portais de notı́cias, seria
a última sugestão de trabalhos futuros. Esse conceito possibilita a um usuário visualizar
todas as palavras-chave que estão sendo mais pesquisadas por todos os usuários do sistema.
Esse tipo de recurso demonstra a tendência que os usuários de modo geral têm ao realizar
suas buscas uma vez que os termos mais pesquisados ficam em maior destaque, formando,
como o próprio nome sugere, nuvens de palavras de tamanhos diferentes.
Diante do respaldo passado pelas pessoas que realizaram os testes, pelas pesquisas
realizadas sobre clipping e tecnologias encontradas e implementadas neste trabalho, é
possı́vel concluir que muito do que procuramos para preencher lacunas de problemas do
nosso dia-a-dia está bem próximo a nós e de forma gratuita. É possı́vel trabalharmos sobre
as lacunas que grandes empresas ainda não preencheram e a cada trabalho realizado é
fundamental saber que sempre há mais a ser feito ou melhorado.
41
Referências
BRIN, S.; PAGE, L. The Anatomy of a Large-Scale Hypertextual Web Search Engine.
Stanford - USA: Computer Science Department, Stanford University, 2005. Disponı́vel
em: <http://infolab.stanford.edu/ backrub/google.html>. Acesso em: 20 ago. 2007.
CAMPOS, E. N.; CURY, M. Z. F. Fontes primárias: saberes em movimento. Rev. Fac. Educ, São Paulo, v. 23, n. 1, 1997. Disponı́vel
em: <http://www.scielo.br/scielo.php?script=sci arttext&pid=S010225551997000100016&lng=en&nrm=iso>. Acesso em: 7 out. 2007.
CENDóN, B. Ferramentas de busca na web. Ciência da Informação, Brası́lia, v. 30, n. 1,
p. 41–44, 2001.
ECLIPSE Project. [S.l.]. Disponı́vel em: <http://www.eclipse.org>. Acesso em: 10 ago.
2007.
ELSMASRI, R.; NAVATHE, S. B. Fundamentals of database systems. 4. ed. Boston,
USA: Addison Wesley, 2004. 75 p.
FREED, L. American custumer satisfaction index: Annual e-business report. Foresee
Results, Brası́lia, p. 4, 2007.
GETTING Real. [S.l.], 2006. Disponı́vel em:
<http://gettingreal.37signals.com/toc.php>. Acesso em: 16 ago. 2007.
GOOGLE. [S.l.], 2007. Disponı́vel em: <http://www.google.com>. Acesso em: 17 set.
2007.
GOOGLE News. [S.l.], 2002. Disponı́vel em: <http://news.google.com>. Acesso em: 4
out. 2007.
HEATON, J. Programming Spiders, Bots, and Aggregators in Java. California - USA:
Sybex, 2002. 2–3 p. (1).
HERITRIX. [S.l.], 2007. Disponı́vel em: <http://crawler.archive.org>. Acesso em: 20
set. 2007.
JAVA. [S.l.], 2007. Disponı́vel em: <http://java.sun.com>. Acesso em: 10 ago. 2007.
LIMA, L. R. S. Categorização de documentos médicos. Tese (Doutorado) — Universidade
Federal de Minas Gerais, Belo Horizonte - Brasil, 2000.
MOHR, G. et al. An introdution to heritrix: An open source archival quality web
crawler. 4th International Web Archiving Workshop, p. 1–6, 2004.
Referências
42
MY Yahoo! [S.l.], 2007. Disponı́vel em: <http://my.yahoo.com>. Acesso em: 5 out.
2007.
MYSQL. [S.l.], 2007. Disponı́vel em: <http://www.mysql.com>. Acesso em: 17 set.
2007.
PHP. [S.l.], 2007. Disponı́vel em: <http://www.php.net>. Acesso em: 17 set. 2007.
RIZZI, C. B. et al. Fazendo uso da categorização de textos em atividades empresariais. Curitiba-PR, 2000. Disponı́vel em:
<www.leandro.wives.nom.br/publicacoes/iskmdm2000-2.pdf>. Acesso em: 15
out. 2007.
TAKEDA, M. K. ad K. Information Retrieval on the Web. [S.l.]: ACM Computing
Surveys, 2002. 153 p.
TEIXEIRA, H. M. L. O clipping de mı́dia impressa numa abordagem interdisciplinar
sob os prismas da ciência da informação e da comunicação social; o jornal de recortes
da Assembléia Legislativa de Minas Gerais. 3–5 p. Dissertação (Mestrado) — Escola de
Ciência da Informação, Universidade Federal de Minas Gerais, Belo Horizonte - MG,
2001.
WITTEN, I. H.; GORI, M.; NUMERICO, T. Web Dragon: Inside the Myths of Search
Engine Technology. [S.l.]: Morgan Kaufmann Publishers-Elsevier, 2007. 104 p.