Sistema de Navegação Cooperativa para Websites: Abordagem e Implementação Wu Man Qi, Li Weigang, Paulo G. Vieira Departamento de Ciência da Computação Universidade de Brası́lia - UnB Caixa Postal 4.466 - 70.919-970 - Brası́lia - DF Resumo AntWeb is an adaptive navigation system for Websites which approach is inspired by ant colonies foraging behavior. The system considers the Web users as artificial ants. This paper presents an extension to AntWeb by considering the human’s complex behavior during the searching process, using Web usage mining techniques to capture Website visitors navigation patterns, making it more adequate and applicable to Web´s reality. Our proposal is based on preprocessing Web log files, discovering clusters of users that exhibit similar information needs and providing adaptive pages dynamically with marked links that allow visitors to achieve common interests. In addition, information of ongoing implementation based on free software of this proposed model is described. 1 Introdução O AntWeb é um sistema de navegação adaptativo que funciona como uma metáfora ao comportamento das formigas reais a procura de alimento. Assim como as formigas, os usuários navegam pela Web em busca de informação de seu interesse. O seu modelo básico está detalhado em [10]. No AntWeb, diferentemente de outras aplicações tradicionais [3], as formigas artificiais não são componentes de software e sim os próprios usuários da Internet. Nessa abordagem, foi sugerida o uso do algoritmo descrito em [9] para identificação de páginas alvo do usuário. O AntWeb por sua vez iria levar os usuários com objetivo comum a essas páginas alvo pelo menor caminho existente no Website. Sendo assim, o comportamento de navegação dos usuários é assemelhado ao das formigas, sem levar em consideração a complexidade envolvida nesse processo como o interesse atual dos usuários. A fim de tornar seu modelo mais adequado e aplicável à realidade da Web, este artigo apresenta uma pesquisa relacionada aos temas como CSCW (Computer Supported Cooperative Work) e busca e mineração de dados na Web, através da extensão do modelo do AntWeb [10] para grupos de indivı́duos e da implementação de um protótipo baseado em dados reais do Portal Interlegis (www.interlegis.gov.br). Este Portal faz parte do primeiro grande projeto [7] de modernização e integração do Legislativo brasileiro e exerce um papel fundamental na integração entre as Casas Legislativas de diferentes esferas: federal, estadual e municipal. O AntWeb irá permitir que os membros do Portal com interesses similares cooperem entre si, trocando experiências de uma forma implı́cita, em prol de um objetivo comum que é alcançar suas páginas alvo de uma forma mais rápida. As seções seguintes estão organizadas em três partes: logo após esta introdução, apresentaremos o modelo estendido do AntWeb. Na terceira seção, falaremos brevemente da implementação do protótipo baseado no Portal Interlegis. E por último, a quarta seção apresenta as considerações finais. 2 Modelo Estendido do AntWeb Este modelo do AntWeb surgiu pela junção dos conceitos de navegação social, inteligência coletiva e filtragem colaborativa. O termo navegação social surgiu da percepção de que fatores sociais influenciam no comportamento navegacional dos indivı́duos. Segundo [4], navegação social é definida como o movimento em direção a um grupo de pessoas ou a um lugar em particular porque alguém esteve lá antes ou viu alguma coisa. Inteligência coletiva é definida como a habilidade que um grupo de indivı́duos (pessoas, insetos, robôs ou agentes de software) possuem em resolver mais problemas ou encontrar soluções melhores do que seus membros individuais [6]. O conceito de filtragem colaborativa ou filtragem social de informação baseia-se principalmente na automação do processo de recomendação de produtos ou serviços de uma pessoa para outra[8]. O enfoque do AntWeb é, portanto, auxiliar os usuários na navegação coletando preferências que estão implı́citas na navegação dos usuários em um Website, não requerendo nenhum esforço adicional por parte dos usuários ao usar o sistema. A Figura 1 mostra a estrutura estendida do AntWeb. Como um pré-requisito para o funcionamento deste sistema, é preciso que o módulo de Web mining offline seja executado antes para identificarmos as possı́veis categorias de usuários existentes num Website com a utilização da técnica de clustering. Este processo consiste no pré-processamento dos dados registrados nos logs de acesso do servidor Web e na posterior extração de categorias, onde cada categoria resultante é formada por sessões representadas por um conjunto de páginas visitadas ou requisitadas pelos usuários pertencentes a esta categoria. Assim, estas páginas são consideradas de interesse para estes usuários, já que um Website é formado por uma quantidade de páginas, onde cada página pode ser vista como um ”item de interesse”. Este método é uma alternativa ao uso do método proposto em [9], uma vez que o nosso foco em questão é tratar a navegação de grupos de indivı́duos e não mais de um único indivı́duo. Figura 1. Estrutura estendida do AntWeb Completado este processo, o sistema funciona da seguinte forma: quando o usuário ativo no site requisitar uma página ao servidor Web, esta informação é mantida na sessão do usuário. O sistema por sua vez executa o módulo de Web mining online para classificar dinamicamente este usuário em uma categoria já identificada baseada na sequência de URLs visitados por ele na sessão ainda em andamento; caso este usuário faça parte de alguma categoria, o sistema fará o uso das informações registradas no banco de dados que são as quantidades de feromônio1 contidas nos links da página para a categoria em questão. A quantidade de feromônio associada a um link (i, j) representa o quanto é desejável para os usuários desta categoria escolher a página j, estando na i, em um determinado momento. Em seguida o sistema fará a adaptação da página de forma que os links contendo uma quantidade razoável de feromônio e que levem às páginas de interesse ainda não visitadas por este usuário sejam destacados. Finalmente, o sistema retorna a página adaptada para o usuário e o ciclo é iniciado novamente, porém, uma vez que o usuário já tenha sua categoria classificada, o módulo de Web mining online não é mais executado e qualquer acesso feito pelo usuário é gravado no log armazenado no banco de dados que servirá para o processo de atualização do feromônio. 2.1 Pré-processamento dos Dados Nesta fase, realiza-se uma limpeza no arquivo log do servidor Web, isto significa eliminar todos os acessos a arquivos de imagens, de áudio e de vı́deo. Além disso, identificam-se as sessões distintas contidas nele. O resultado deste processo é a conversão de cada sessão em um vetor que a represente. Por exemplo, se um usuário durante uma sessão acessou páginas A, B e C, e sendo o número de acessos a estas páginas igual a 1, 2 e 1 respectivamente, seu vetor correspondente é <(A,1),(B,2),(C,1)>. 2.2 O Algoritmo para Extração de Categorias O objetivo deste algoritmo é descobrir grupos de sessões que exibam interesses similares. Similaridade pode ser definida de diversas maneiras. Por exemplo, dois vetores são similares se a distância euclidiana entre eles é suficientemente curta ou o ângulo formado entre eles é suficientemente pequeno. Neste trabalho, a similaridade é medida pela distância euclidiana. O algoritmo leader [5] foi escolhido para ser utilizado nesta fase devido a sua eficiência no processamento de grande quantidade de entradas no arquivo log. O algoritmo é dado a seguir: Entrada: um conjunto de vetores V, NumMinPag, DistanciaMax, TamMinCategoria Saı́da: um conjunto de categorias C Inicialize C = vazio Para cada v em V faça Se a cardinalidade de v > NumMinPag ent~ ao Encontre categoria c em C tal que a dist^ ancia d entre a média de c e v seja o mı́nimo d = o mı́nimo encontrado entre todas as categorias existentes em C Se a dist^ ancia d < DistanciaMax ent~ ao Adicione v à categoria c Sen~ ao adicione {v} ao conjunto C Para cada c em C faça Se o tamanho de c < TamMinCategoria ent~ ao Remova c de C Retorne C 1 O termo feromônio é utilizado em analogia com a substância secretada por insetos, que serve de meio de comunicação entre indivı́duos da mesma espécie, em especial as formigas. Este algoritmo inicia-se sem nenhuma categoria e os vetores de entrada são examinados um a um. Cada vetor é adicionado à categoria mais próxima, se a distância euclidiana for menor do que a DistanciaMax. Se não existir tal categoria, o vetor forma uma nova categoria. O parâmetro NumMinPag significa o número mı́nimo de páginas acessadas em uma sessão e o TamMinCategoria significa o tamanho mı́nimo de uma categoria. Estes dois parâmentros servem para remover respectivamente sessões e categorias que são insignificantes nesse processo, e podendo, com isso, melhorar também a sua performance. Os algorimos para classificação online dos usuários e adaptação dinâmica das páginas ainda se encontram em fase de estudo e análise. 3 Implementação do AntWeb Um protótipo do modelo estendido do AntWeb está sendo implementado baseado em um escopo reduzido do Portal Interlegis. Esta implementação utiliza a abordagem orientada a objetos e a plataforma de desenvolvimento empregada é toda ela baseada em software livre, tendo o Zope [1] como o servidor de aplicações Web, o PostgreSQL [11] como o banco de dados relacional e o Python [2] como a linguagem de programação. 4 Considerações Finais O AntWeb combina a teoria das formigas com a tecnologia da Web adaptativa como uma nova abordagem no campo de pesquisa de Web Inteligente. Este artigo apresentou uma pesquisa ainda em andamento, porém, estamos convencidos de que este trabalho merece o conhecimento da comunidade cientı́fica, especialmente a de Web adaptativa e sistemas formiga para que sejam dadas sugestões para seu aprimoramento. Referências 1. Bernstein, M. R., Robertson, S., Team the C. D.: Zope bible. Hungry Minds, Inc., New York, NY. (2002) 2. Brueck, D., Tanner, S.: Python 2.1 bible. Hungry Minds, Inc., New York, NY. (2001) 3. Dorigo, M., Caro, G. D.: The ant colony optimization meta-heuristic. New Ideas in Optimization, McGraw Hill. (1999) 11–32 4. Dourish, P., Chalmers, M.: Running out of space: models of information navigation. Proceedings of BCS HCI 94, ACM Press, Glasgow. (1994) 5. Hartigan, J.: Clustering algorithms. John Wiley. (1975) 6. Heylighen, F.: Collective intelligence and its implementation on the web: algorithms to develop a collective mental map. Computational and Mathematical Theory of Organizations. 5(3) (1999) 253–280 7. Nascimento, A. R. C., Arroio, R., Damasceno, A. P., Conde, S.: Documento de Projeto InterLegis. Prodasen, Brası́lia. (1998) 8. Shardanand, U., Maes.: Social information filtering: algorithms for automating ’word of mouth’. Proceedings of CHI’95 - Human Factors in Computing Systems. (1995) 210–217 9. Srikant, R., Yang, Y.: Mining web logs to improve website organization. Proceedings of the Tenth International World Wide Web Conference, Hong Kong. (2001) 10. Teles, W. M., Weigang, L., Ralha, C. G.: AntWeb - the adaptive web server based on the ants’ behavior. WI (International Conference on Web Intelligence), IEEE/WIC, Halifax, Canada. (2003) 11. Worsley, J. C., Drake, J. D.: Practical PostgreSQL. O’Reilly & Associates, Inc., Sebastopol, CA. (2002)