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.