Sistema de Recomendação Baseado na Arquitetura Multiagente Paulo Burin 1 Orientadora: Fabiana Lorenzi 2 Resumo. Este artigo propõe a construção de uma ferramenta de software baseada na arquitetura multiagente utilizada para recomendação de pacotes turísticos. Através das preferências informadas pelo usuário, o sistema recomenda o melhor pacote turístico, composto pelos itens transporte, hospedagem e atrações. Após a recomendação, o usuário avalia o pacote turístico recebido e esta avaliação será utilizada pelo sistema para melhorar a qualidade das futuras recomendações. Tecnologias open-source do tipo PHP e MySQL serão utilizadas no desenvolvimento da ferramenta. Palavras-chave: Arquitetura multiagente, sistema de recomendação. 1 Introdução A tarefa de planejar uma viagem não é um processo fácil. Por este motivo, as pessoas sentem a necessidade de procurar agências de viagens. Neste processo o agente de viagem deve ter conhecimentos, para conseguir atender as necessidades e expectativas dos clientes. Estes conhecimentos vão desde informações sobre o destino escolhido pelo cliente, como de todos os detalhes relacionados a um pacote turístico, por exemplo, a localização de hotéis, o horário de abertura de atrações turísticas ou a escolha do melhor horário de vôo. Estas informações podem fazer a diferença quanto à preferência do cliente, porque um pacote turístico bem organizado, pode representar um aproveitamento melhor do período da viagem, permitindo assim que o turista consiga conhecer mais atrações e até mesmo um maior número de lugares diferentes (Lorenzi et al., 2006). Neste contexto, o desenvolvimento de uma ferramenta para auxiliar no processo de recomendação de pacotes turísticos, onde o agente de viagem possa informar as preferências do cliente e o sistema apresenta uma sugestão de um pacote turístico, representa ganhos para a agência. Porque nem sempre o agente de viagem tem a informação necessária, muitas vezes ele precisa buscar informações na Internet ou com seus colegas, desperdiçando tempo e muitas vezes ligações telefônicas. Caso algum item do pacote recomendado ou o pacote não agradar ao cliente, o agente pode fazer 1 Universidade Luterana do Brasil (ULBRA) Curso de Sistemas de Informação,<prburin@hotmail.com> 2 Universidade Luterana do Brasil (ULBRA) Curso de Sistemas de Informação, professora orientadora. 1
simulações até encontrar a melhor solução. Para o cliente, a ferramenta traz vários benefícios, além de estar com as informações atualizadas e ter condições de apresentar uma recomendação de melhor qualidade, o tempo gasto no processo é menor. 1.1 Motivação Ao se aproximar o período de férias, as pessoas começam a procurar as agências de viagens em busca de informações turísticas. Esta procura pode ser das mais variadas possíveis, desde lugares exóticos, cidades históricas, parques de diversões, praias entre outros, aumentando o número de clientes necessitando de informações e sobrecarregando os agentes de viagens. Muitas vezes o cliente chega na agência de viagem sem um destino definido ou sem conhecimento sobre o lugar em que deseja visitar. Em muitos casos as decisões são tomadas mediante sugestões de amigos, mas na maioria das vezes as decisões são tomadas mediante as informações obtidas através do agente de viagem (Silva & Machado, 2005 p13). A responsabilidade do agente de viagem ao passar informações de algum lugar para um cliente é muito grande, porque se ele não conseguir passar corretamente e o cliente não tiver suas expectativas atendidas, provavelmente irá responsabilizar o agente, podendo inclusive não voltar mais procurar a agência. Em outros casos o cliente pode querer visitar algum lugar que não é conhecido pelo agente, podendo o cliente procurar outra agência na busca por informações, afetando assim o faturamento da agência (Silva & Machado, 2005 p13). Ciente das necessidades das agências de viagens e vislumbrando uma área muito grande de atuação profissional relacionada a sistemas de recomendação, sistemas multiagentes e a combinação dos dois modelos de sistemas, surge a oportunidade e o desafio de buscar conhecimento sobre o tema e habilitar-se profissionalmente para o mercado de trabalho. Esta oportunidade veio na forma de participação no desenvolvimento de um sistema de recomendação baseado na arquitetura multiagente, no qual, será possível obter conhecimentos sobre sistemas, técnicas, ferramentas e o mercado relacionado ao processo de recomendação ao usuário final. O desenvolvimento de um sistema de recomendação deste nível traz vários benefícios para a sociedade como um todo, tais como: maior satisfação dos clientes, recomendações mais qualificadas, maior segurança para o agente de viagens no momento da recomendação, maior faturamento para as agências de viagens, divulgação do turismo de determinada região, aumento no faturamento econômico da região, entre outros. 1.2 Objetivos O presente projeto propõe o desenvolvimento de uma ferramenta de software que disponibiliza uma interface Web onde permite ao usuário realizar pesquisas, tornando mais fácil e ágil a tarefa de recomendar pacotes turísticos pelos agentes de viagens. Como objetivos específicos podem ser citados: Criar uma interface gráfica (Graphical User Interface, GUI) que permite ao usuário informar as preferências pessoais. A partir destas preferências o sistema retorna a recomendação de um pacote turístico, incluindo vôos, hotéis e atrações; 2
Disponibilizar uma lista de tarefas para que os agentes de busca apresentados por Lorenzi et al., (2006) possam acessar para resolvê-las; Organizar a recomendação e apresentar de forma amigável ao usuário; Permitir que o usuário avalie a recomendação recebida, sendo que deve ser diferenciada por vôo, hotel e atração; Criar interfaces para permitir o cadastro das informações utilizadas como parâmetros de entrada da recomendação, tais como, cidade, pais, categoria, tipo de acomodação, acomodação, tipo de empresa de transporte, empresa de transporte, tipo de atração e cliente; Criar uma interface que permite que sejam consultadas as recomendações realizadas e armazenadas na base de dados. Este artigo apresenta o projeto de uma ferramenta de software responsável por recomendar pacotes turísticos e está estruturado da seguinte maneira: Na seção 2 é apresentada a fundamentação teórica necessária para a compreensão de sistemas multiagentes, sistemas de recomendação e sistemas de recomendação baseado na arquitetura multiagente. A seção 3 descreve o projeto proposto e por fim na seção 4 é apresentada a conclusão. 2 Fundamentação Teórica Neste tópico é apresentada a pesquisa bibliográfica sobre os temas estudados para a construção deste trabalho. É dada uma visão teórica de sistemas multiagentes, sistemas de recomendação e sistema de recomendação baseada na arquitetura multiagente. 2.1 Sistemas Multiagente A inteligência artificial distribuída (IAD) é uma sub-área da inteligência artificial (IA) que tem analisado modelos de conhecimento, técnicas de comunicação e raciocínio em que vários sistemas interagem para solucionar um problema em comum. Os sistemas multiagentes (SMA) são uma abordagem da IAD em que é usada a designação agente para as entidades que participam das atividades na solução de problemas, ou seja, o foco da pesquisa são os agentes (Silva & Machado, 2005 p15). Os SMA têm por objeto de estudo não somente um indivíduo, mas sim a coletividade. Assim sendo, tenta compreender o comportamento do todo através de simulações dando ênfase à interação entre as entidades que formam o sistema, chamadas de agentes e suas organizações. Tal paradigma foi criado através de observações de sistemas naturais, em que surgem comportamentos inteligentes a partir da interação de seus elementos (Hübner, 2003 p19). Exemplos disto são apresentados por Hübner (2003 p19) apesar de uma colônia de formigas ser formada por seres simples, pode-se dizer que o formigueiro como um todo é um sistema complexo cujo comportamento é mais inteligente do que os das formigas que o formam; os neurônios são células simples, mas de sua interação e organização emerge um comportamento complexo e inteligente. A área de SMA estuda o comportamento de agentes autônomos organizados em grupos cooperando entre si para resolver problemas que seriam impossíveis de serem 3
resolvidos individualmente. A autonomia dos agentes e sua organização são propriedades fundamentais para SMA. A autonomia significa que um agente tem sua existência independente dos demais e do problema que esta sendo resolvido, enquanto que a organização submete restrições comportamentais aos agentes, estabelecendo um comportamento coeso ao grupo (Hübner, 2003 p19). Em SMA, os agentes são projetados para solucionar todo tipo de problemas, porque estes agentes são entidades com conhecimento de sua existência e da existência de outros agentes, assim sendo, colaboram entre si para atingirem um objetivo comum. Os agentes devem possuir uma linguagem especifica para poderem se comunicar, sendo que cada agente deve ser capaz de executar uma tarefa cooperando assim para alcançar o objetivo global. Sendo agentes autônomos, a intervenção humana no processamento não será continua e a autodeterminação em relação ao meio ambiente em que o agente está inserido, deve ser um pré-requisito (Silva & Machado, 2005 p15). Em um SMA é necessário adotar uma política de cooperação, sendo que é através deste mecanismo que os agentes expressam suas necessidades a outros agentes, a fim de realizar uma determinada tarefa. A política de cooperação determina a maneira como os agentes expõem suas necessidades a outros agentes a fim de atingir determinado objetivo. Geralmente na realização de uma tarefa por um agente, surge a necessidade da ajuda de outros agentes da sociedade, ou ao contrário, prestam auxilio a outros agentes para que o objetivo geral do sistema seja alcançado (Silva & Machado, 2005 p22). A negociação é outro conceito que deve ser considerado em um SMA, sendo o aperfeiçoamento da concordância em pontos de vista comuns ou planos, através da troca estruturada de informações relevantes. Os principais objetivos da negociação são: modificar os planos locais de agentes, no caso de interações negativas; identificar situações onde potenciais interações são possíveis. Desta forma os agentes se comunicam para atingir um objetivo comum. Mais especificamente, a negociação é usada para alocação de tarefa e recurso, para reconhecimento de conflitos, a resolução de disparidades de objetivos, a determinação da estrutura organizacional e, então, para coerência da sociedade (Silva & Machado, 2005 p22). De acordo com Meneses (2001) Sistemas Multiagentes são sistemas constituídos de dois ou mais agentes, em um ambiente, que interagem para alcançarem alguns objetivos. Esses objetivos podem ser comuns a todos os agentes ou não. O ambiente pode ser aberto ou fechado, pode ter número fixo ou variável de agentes, os agentes podem ser heterogêneos ou homogêneos, colaborar ou competir, etc. 2.1.1 Agentes Um agente é uma entidade lógica ou física á qual é atribuída uma certa missão que ela é capaz de cumprir de maneira autônoma e em coordenação com outros agentes (Briot & Demazeau, 2002). Conforme Pozzebon et al., (2003 p2) um agente pode ser definido em termos de suas propriedades fundamentais e deve possuir um certo grau de autonomia para raciocinar e tomar decisões por sua própria vontade além de interagir com outros agentes. Por fim, um agente deve possuir um certo grau de independência para resolver um problema, nem que seja uma parte dele. Não existe uma definição única para o 4
conceito de agente, e isto ocorre porque os autores normalmente ligam a definição ao domínio da aplicação, às formas de cooperação e nos níveis de autonomia. Segundo Sichman et al., (1992) um agente é uma entidade virtual ou real, que pode perceber e representar partes de seu ambiente. Possuindo também capacidade de se comunicar com outros agentes, podendo possuir um comportamento autônomo, sendo uma conseqüência de suas observações, de seu conhecimento e de suas interações com os demais agentes. Ainda conforme Sichman et al., (1992) os agentes podem ser classificados em duas principais categorias: Agentes reativos: agentes reativos realizam ações de acordo com outras ações realizadas por eles. Tendo o comportamento seguindo o processo de estimuloresposta, não havendo memória em relação às ações realizadas no passado e não fazendo previsão de ações que poderão vir a ser realizadas futuramente. A capacidade interna realiza somente associações de entrada e saída, não realizando processamento. São baseados em modelos de organização etnológica ou biológica, como exemplo, podem ser citadas as colônias de formigas (Silva & Machado, 2005 p20). Agentes cognitivos: conforme Pozzebon et al., (2003 p3) os agentes cognitivos são baseados em organizações sociais humanas como grupos, hierarquias e mercados. Os agentes possuem uma representação explícita do ambiente e dos outros agentes, dispõem de memória, e por isto são capazes de planejar ações futuras. Agentes cognitivos podem comunicar-se entre si diretamente, isto é, seus sistemas de percepção e de comunicação são distintos, o que não acontece nos reativos. Normalmente estão em pequena quantidade no sistema e são de média ou alta complexidade, além disso, requerem sofisticados mecanismos de coordenação e protocolos de alto nível para suporte à interação. Os agentes cognitivos aumentam a qualidade do sistema sob o ponto de vista pedagógico porque permitem gerar um sistema mais perceptivo com autonomia, flexibilidade, colaboração e adaptação. 2.2 Sistemas de Recomendação Com a globalização e a facilidade de pesquisas através da utilização da Internet, atualmente a busca por uma informação específica em meio a um grande número de informações disponíveis, pode se tornar um processo difícil e demorado, ocasionando uma sobrecarga ao usuário final. Sendo que para a realização de uma pesquisa com maior grau de complexidade, pode ser consumido um tempo muito grande e não pode ser garantida a integridade dos dados. Para aumentar a confiabilidade das informações e diminuir o tempo de pesquisa é necessária a redução do universo de pesquisa. Se o universo para pesquisa for muito grande, podem ser encontrados sérios problemas, podendo ser desde informações desnecessárias, inconsistentes ou até falsas. Estes problemas motivaram o desenvolvimento de sistemas para automatizar estas pesquisas, sendo denominados de sistemas de recomendação. Estes sistemas são projetados para facilitar recomendações em diferentes tipos, com base em conhecimentos prévios adquiridos através de casos previamente registrados (Silva & Machado, 2005 p24). 5
Conforme Silva & Machado (2005 p24, apudd Reategui & Cazella, 2005) atualmente a principal área de utilização dos sistemas de recomendação é o chamado comércio eletrônico, onde a disputa entre as empresas pela descoberta das preferências do cliente é um fato que pode ser decisivo ao fazê-lo optar por uma ou outra empresa. A descoberta da preferência do cliente em um curto período de tempo pode resultar em um custo muito menor para a empresa. Por esse motivo, diversos investimentos são feitos para se tentar chegar a excelência nos sistemas de recomendação. Para manter a fidelidade e aumentar a lucratividade das empresas, o comércio eletrônico utiliza diferentes estratégias para personalizar recomendações aos usuários. Reategui & Cazella (2005, p5) colocam as principais estratégias de recomendação sendo: lista de recomendação, avaliação de usuários, suas recomendações, usuários que se interessam por X também se interessam por Y e associação por conteúdo. O objetivo dos sistemas de recomendações é auxiliar a tomada de decisão pelo usuário, mesmo que este não possua conhecimento suficiente sobre o assunto. Estes sistemas aprendem com as preferências do usuário e sugerem automaticamente produtos que atendam ao seu perfil. 2.3 Sistemas de Recomendação Baseados na Arquitetura Multiagente Sistemas de recomendação baseados na arquitetura multiagente são sistemas que utilizam agentes para auxiliar no processo, visando melhorar a qualidade da recomendação apresentada ao usuário. Os agentes cooperam e negociam para satisfazer as necessidades dos usuários, interagindo entre si para completar suas soluções parciais ou resolver conflitos que podem aparecer durante o processo (Lorenzi et al., 2006 p3). Em Lorenzi et al., (2006 p3, apudd Macho et al., 2000) é apresentado um o sistema de recomendação baseado na arquitetura multiagente responsável por organizar reuniões, considerando as restrições das agendas pessoais dos participantes. Este sistema propôs três agentes, sendo eles: assistente pessoal é o agente com que o usuário interage com o sistema, ou seja, é a interface entre o usuário e o sistema; flight travel é o agente responsável pela tarefa de recuperar os vôos em uma base de dados e o accommodation hotel é o agente responsável por encontrar acomodações nas cidades envolvidas em reuniões. Outro exemplo de sistema de recomendação que faz uso de agentes é o CASIS, apresentado em Lorenzi et al., (2005), para apoiar no processo de negociação entre os agentes, este sistema utiliza abordagens swarm intelligence. A metáfora da dança das abelhas é utilizada em conjunto com a abordagem de Raciocínio Baseado em Casos (RBC) com o objetivo de recomendar o melhor pacote turístico ao usuário. O processo de recomendação funciona da seguinte forma: o usuário informa suas preferências; as abelhas visitam todos os casos da base e quando elas encontram o melhor caso (de acordo com as preferências do usuário), elas dançam para este caso, recrutando novas abelhas; e o caso com o maior número de abelhas dançando para ele será recomendado ao usuário (Lorenzi et al., 2006 p3). A vantagem deste sistema é que sempre será recomendado um pacote ao usuário. Sabendo que, mesmo que não for exatamente o desejo do passageiro, mas se tratando de turismo recomendar um pacote é um fator muito importante. O sistema possui como desvantagem à necessidade de 6
centralizar as fontes de informações, não sendo possível recuperar informações distribuídas. Em Lorenzi et al., (2006) é descrito uma abordagem multiagente para desenvolvimento de sistemas de recomendação de pacotes turísticos. Esta abordagem é baseada na colaboração entre agentes que trocam informações contidas em suas bases de conhecimento sobre pacotes turísticos. Para garantir a integridade da base de conhecimento dos agentes, cada agente possui um componente de manutenção de verdade que é responsável pela revisão de suas crenças, garantindo assim que cada agente virtual tenha o mesmo comportamento de um agente humano de viagens. A recomendação é dividida em sub-tarefas e distribuídas aos agentes através de uma lista. Cada agente é responsável então por escolher uma tarefa a ser realizada. Esta escolha, leva em consideração o grau de familiaridade que o agente tem com a tarefa, ou seja, ele dá preferência para aquelas que já tenham sido atendidas com êxito. Isto possibilita que a provável solução da tarefa esteja armazenada em sua base de conhecimento, não necessitando assim interagir com os outros agentes para troca de conhecimento. A abordagem propõe uma arquitetura formada por um conjunto de agentes com um objetivo global e com objetivos individuais. O objetivo global é a recomendação final que será apresentada ao usuário e os objetivos individuais, são as tarefas que os agentes resolverão para compor a recomendação. Neste cenário existem os Agentes de Busca(Src) que são responsáveis pela localização das informações necessárias na formação do pacote turístico a ser recomendado ao usuário. Estes agentes sempre retornam alguma informação ao sistema. Se eles não encontraram a informação solicitada pelo usuário, eles retornarão a informação mais parecida. No objetivo de gerar a melhor recomendação, muitas vezes é preciso que os agentes Src interajam entre si na tentativa de localizar as informações distribuídas que melhor atendam as preferências do usuário. 3 Projeto O presente trabalho propõe o desenvolvimento do ambiente de interação com o usuário para o cenário proposto em Lorenzi et al., (2006), o processo de recomendação, bem como a avaliação do usuário em relação à recomendação recebida. A partir da informação das preferências do usuário, o sistema disponibiliza uma lista de tarefas, para que os agentes Src possam acessar e resolvê-las, retornando as informações solicitadas e informando que a tarefa foi realizada. A partir deste momento o sistema organiza as informações e apresenta a recomendação para o usuário. O usuário analisa a recomendação e retorna ao sistema qual foi sua medida de satisfação em relação à qualidade da recomendação apresentada, sendo que esta medida é diferenciada por vôo, hotel e atração. 3.1 Interfaces Os protótipos das interfaces não serão apresentados, devido ao limite de páginas da proposta, sendo que somente serão descritas suas funcionalidades. 7
3.1.1 Cadastros O projeto conta com interfaces que permitem o cadastro das informações utilizadas como parâmetros de entrada para a recomendação, tais como, pais, estado, cidade, categoria, tipo de acomodação, acomodação, tipo de empresa de transporte, empresa de transporte, tipo de atração e cliente. 3.1.2 Recomendação de Pacotes Turísticos Esta é a GUI principal do sistema, é por ela que o usuário interage com o sistema de recomendação, informando as preferências pessoais e o sistema retorna uma recomendação de um pacote turístico incluindo vôos, hotéis e atrações. A partir das informações do usuário, a GUI disponibiliza uma lista de tarefas para que os agentes de busca (Src) apresentados por Lorenzi et al., (2006) possam acessar para resolvê-las. Quando os agentes Src informarem que as tarefas foram realizadas, a GUI deve receber as informações, organizar a recomendação e apresentar de forma amigável ao usuário. A GUI provê meios para que o usuário possa retornar ao sistema qual foi sua medida de satisfação em relação à qualidade da recomendação apresentada, sendo que esta medida é diferenciada por vôo, hotel e atração. 3.1.3 Consulta Histórico de Recomendações Esta interface permite que sejam consultadas as recomendações realizadas e armazenadas na base de dados. Conta com filtros que permitem a redução do número de recomendações retornadas pelo sistema, para que seja mais fácil a localização da recomendação que esta sendo requisitada. Como filtros, podem ser citados: CPF do cliente, data da recomendação, cidade, empresa de transporte entre outros. 3.2 Casos de Uso O diagrama de casos de uso é utilizado para descrever e definir os requisitos funcionais do sistema. Contém elementos gráficos que representam o sistema, os atores e os casos de uso, mostrando o relacionamento entre estes elementos. Os principais objetivos são: descrever os requisitos funcionais do sistema; delimitar o sistema; oferecer as possíveis situações do mundo real para a fase de teste do sistema; servir de base para usuários que não entendem de informática. O Diagrama de casos de uso deste projeto é apresentado na Figura 1. Figura 1: Casos de Uso 8
4 Conclusão Sistemas de recomendação são muito utilizados no comércio eletrônico, onde a descoberta das preferências do cliente é um fator decisivo para influenciar a tomada de decisão. Estes sistemas são projetados para facilitar o processo de recomendação de determinado produto ou serviço, dando mais confiança nas informações e diminuindo o tempo gasto na pesquisa, diminuindo consideravelmente o custo para as empresas. O objetivo dos sistemas de recomendação é auxiliar a tomada de decisão pelos usuários, mesmo que estes não possuam conhecimento suficiente sobre o assunto. Com o presente projeto, nota-se que um sistema de recomendação é de suma importância para que um agente de viagem possa recomendar com segurança um pacote turístico, o qual deve abranger transporte, hospedagem e atrações. O sistema de recomendação de pacotes turísticos pode ser considerado o ponto de partida, para que o agente de viagem possa atender as expectativas dos clientes e obter sucesso profissional. Este artigo é uma proposta para a disciplina de TCC1, por este motivo, neste momento não tem como apresentar resultados, ficando este processo para a disciplina de TCC2, quando será feita a defesa do trabalho. Como trabalhos futuros, sugere-se implementação dos agentes Src os quais são responsáveis por selecionar as tarefas da lista, resolvê-las e retornar as informações, para que o sistema possa organizar e apresentar a recomendação para o usuário. Os agentes Src devem considerar a medida de satisfação retornada pelo usuário, quando da necessidade de resolver novas tarefas. 5 Referências Bibliográficas Amorim, F. (2004) Sistema de recomendação para turismo. Universidade Luterana do Brasil, Sistemas de Informações, Canoas. Trabalho de conclusão de curso. Briot, J. P. & Demazeau, Y. (2002). Principes et architecture des systèmes multi-agents. Paris, Hermes. Hübner, J. F. (2003) Um modelo de reorganização de sistemas multiagentes. Escola Politécnica da Universidade de São Paulo, Engenharia Elétrica, São Paulo. Tese de doutorado. Lorenzi, F. & Ricci, F. (2005) Case-based recommender systems: a unifying view. In: Mobasher, B. and Anand, S., editors, Intelligent Techniques for Web Personalization: IJCAI 2003 Workshop, ITWP 2003, Acapulco, Mexico, August 11, 2003, Revised Selected Papers. : Springer-Verlag GmbH, 2005, v. 3169, p. 89-113. Lorenzi, F., Bazzan, A. L. C., Abel, M. (2006) Manutenção de verdade na negociação de tarefas em sistemas multiagentes para recomendação turística. In: Semana acadêmica - seminário de informática, Instituto de Informática da Universidade Federal do Rio Grande do Sul, Porto Alegre. 9
Macho, S., Torrens, M., Faltings, B. (2000). A multi-agent recommender system for planning meetings. In: Workshop on Agent-based recommender systems (WARS 2000), Barcelona. Meneses, E. & Silva, F. (2001) Integração de Agentes de Informação, Jornada de Atualização em Inteligência Artificial. Disponível em http://www.ime.usp.br/~eudenia/jaia/jaia_aula1, acesso 23 Apr. 2007. Pereira, A. L. (2004) Sistema WEB para turismo. Universidade Luterana do Brasil, Tecnologia em Informática, Canoas. Trabalho de conclusão de curso. Pozzebon, E., Frigo, L. B., Bittencourt, G. (2004) O papel dos Agentes Inteligentes nos Sistemas Tutores Inteligentes. In: WCETE - World Congress on Engineering and Technology Education. São Paulo, p. 667-671. Reategui, E. B. & Cazella, S. C. (2005) Sistemas de Recomendação Mini Curso. In: Enia XXV Congresso da Sociedade Brasileira da Computação. UNISINOS - São Leopoldo, p. 306-348. Sichman, J. S., Demazeu, Y., Boissier, O. (1992) How can knowledge-based systems be called agents? In: Simpósio Brasileiro de Inteligência Artificial. Pontifícia Universidade Católica do Rio de Janeiro - Rio de Janeiro, p.173-185. Silva, P. E. D., & Machado, G. R. D. F. (2005) Sistema para recomendação de pacotes turísticos. Universidade Luterana do Brasil, Matemática Aplicada à Informática, Canoas. Trabalho de conclusão de curso. 10