Você está na página 1de 45

UNIVERSIDADE FEDERAL DE SANTA CATARINA

DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE


CIÊNCIA DA COMPUTAÇÃO

Agentes inteligentes para pesquisas na Internet

Florianópolis
2004
UNIVERSIDADE FEDERAL DE SANTA CATARINA
DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA – INE
CIÊNCIA DA COMPUTAÇÃO

RAFAEL GAEBLER

Agentes inteligentes para pesquisas na Internet

Dissertação submetida à Universidade Federal de Santa Catarina como parte dos requisitos
para a obtenção do grau de Bacharel em Ciência da Computação.

Florianópolis
2004
RESUMO

Este projeto propõe a criação de um sistema de pesquisas na Internet.


Um sistema que realize estas pesquisas automaticamente sem a necessidade
da interação humana. Criando uma base de dados que estará sendo
constantemente atualizada com as informações obtidas por agentes que
varrem a Internet atrás de informações.
A proposta dos agentes de informação é amenizar de alguma forma o
problema específico de sobrecarga de informações. A grande utilidade dos
agentes de informação seria então a criação de uma interface com o usuário
para pesquisa e recuperação de informações tão simples para que as pessoas
usassem de uma forma bem natural.
ABSTRACT

(falta traduzir para o inglês) Este projeto propõe a criação de um sistema


de pesquisas na Internet. Um sistema que realize estas pesquisas
automaticamente sem a necessidade da interação humana. Criando uma base
de dados que estará sendo constantemente atualizada com as informações
obtidas por agentes que varrem a Internet atrás de informações.
A proposta dos agentes de informação é amenizar de alguma forma o
problema específico de sobrecarga de informações. A grande utilidade dos
agentes de informação seria então a criação de uma interface com o usuário
para pesquisa e recuperação de informações tão simples para que as pessoas
usassem de uma forma bem natural.
Lista de Figuras
Sumário

LISTA DE FIGURAS..................................................................................................................................5
SUMÁRIO....................................................................................................................................................6
INTRODUÇÃO............................................................................................................................................7
OBJETIVO...................................................................................................................................................7
JUSTIFICATIVAS..........................................................................................................................................7
PROBLEMA.................................................................................................................................................8
AGENTES INTELIGENTES.....................................................................................................................9
DEFINIÇÃO DE AGENTES............................................................................................................................9
TIPOS DE AGENTES..................................................................................................................................10
Agente Racional.................................................................................................................................10
MEDIDAS DE PERFORMANCE...................................................................................................................12
ESTRUTURA DE AGENTES INTELIGENTES................................................................................................13
PROGRAMAS DE AGENTES.................................................................................................................14
TIPOS DE PROGRAMA DE AGENTES.........................................................................................................15
Simple Reflex Agents..........................................................................................................................15
Model-Based Reflex Agents...............................................................................................................15
Goal-Based Agents.............................................................................................................................16
Utility-Based Agents..........................................................................................................................17
AMBIENTES.............................................................................................................................................17
PROPRIEDADE DOS AMBIENTES...............................................................................................................17
PROGRAMAS DE AMBIENTES...................................................................................................................18
PROGRAMAÇÃO OO VERSUS PROGRAMAÇÃO ORIENTADA A AGENTES...........................19
AGENTES DE INTERNET......................................................................................................................19
PROPOSTAS DOS AGENTES DE INTERNET.................................................................................................21
ELEMENTOS DE UM AGENTE DE INTERNET..............................................................................................22
A INTELIGÊNCIA DO AGENTE...........................................................................................................22
APRENDIZADO DE AGENTES INTELIGENTES............................................................................................23
PROCESSO DE EXTRAÇÃO DE CONHECIMENTO DE DADOS..................................................24
ALGORITMOS DE PESQUISA..............................................................................................................26
SOBRE ALGUNS TIPOS DE PESQUISA........................................................................................................27
CONSTRUINDO UM AGENTE..............................................................................................................29
MÉTRICAS DE PERFORMANCE PARA AGENTES DE INFORMAÇÃO............................................................35
MECANISMOS DE PESQUISA VERSUS AGENTES DE INTERNET.............................................36
APLICAÇÕES...........................................................................................................................................39
RESPONSABILIDADE NA PESQUISA...........................................................................................................39
CRITÉRIOS PARA AVALIAR FONTES DE INFORMAÇÕES NA INTERNET.............................40
BUSCAS FUTURAS..................................................................................................................................42
CONCLUSÃO............................................................................................................................................43
Referências Bibliográficas...........................................................................................................................44
Introdução

Neste projeto o conceito de Agentes será aplicada na área da Internet,


mais especificamente na realização de buscas e pesquisas, e no
monitoramento de páginas da Internet.
Esta área de acesso e gerenciamento da informação é de grande
atividade, tendo em vista a rápida popularização da Internet e a explosão da
informação disponível a seus usuários. Aqui agentes podem ser empregados
não apenas na pesquisa e filtragem de informação, mas também na
categorização, priorização, disseminação seletiva, anotação e no
compartilhamento cooperativo de documentos e informações.

Objetivo

Elaboração de um sistema que responsável por lançar agentes na


Internet. Estes agentes têm por objetivo percorrer páginas da web buscando
links para novas páginas, e assim o farão até um certo ponto quando
encontrarão um endereço eletrônico relevante e o mandarão para uma base de
dados.

Justificativas

Existem grandes motivos para a pesquisa na área de agentes de


informação:
Primeiro, porque existe uma demanda ainda reprimida por ferramentas
que possibilitem o gerenciamento da explosão de informações na Internet.
“Parece ser sensato pensar que num futuro bem próximo, por melhor que a
Internet possa ser organizada, não haverá outra forma de pesquisar
informações contidas na Internet a não ser através do uso de agentes de
informação, vai chegar o momento em que não se terá alternativa em função
deste espantoso crescimento no volume de informações armazenadas na
Internet” [1].
“Existe um potencial econômico muito grande a ser explorado por detrás
desta tecnologia, vale lembrar também que em termos de marketing este rótulo
de agentes vende muito bem” [1].
Ainda mais, este projeto pode ser base para futuros trabalhos, onde
poderá ser aplicado um conceito mais de profundo Inteligência Artificial e tornar
a arquitetura dos agentes mais complexa e eficiente.

Problema

“O armazenamento e recuperação de dados por pessoas e organizações


passaram por modificações substanciais ao longo dos últimos anos até a
recente popularização da Internet, que transformou a visão clássica de base de
dados, de uma coleção centralizada de dados homogêneos em coleções de
informação distribuídas e heterogêneas. Um dado não é mais uma entidade
estruturada e pode ser quase qualquer tipo de objeto representável, por
exemplo, um desenho, um som, um texto, um registro, etc. A disseminação das
redes de computadores tornou informações desse tipo disponíveis a qualquer
um e qualquer um pode representar simultaneamente o papel de produtor ou
consumidor dessa informação.” [1]
Agentes Inteligentes

Definição de Agentes

As pesquisas sobre Agentes é no momento um campo bastante popular.


Entretanto o termo Agente não possui uma definição que é aceita por todo
mundo, devido principalmente aos inúmeros enfoques sob os quais é aplicado.
Possíveis definições são as que seguem:

“Um agente é uma entidade que percebe o seu ambiente através de


sensores, e atua sobre este ambiente através de seus atuadores. Um agente
humano tem olhos, ouvidos e outros órgãos como seus sensores, e outras
partes do corpo como atuadores. Um robô agente pode possuir câmeras e
sensores infravermelhos como sensores e vários motores como atuadores. Um
agente de software possui bits decodificados como seus sensores e
atuadores”. [2]

“É uma peça de software que executa uma determinada tarefa


empregando informação extraída de seu ambiente para agir de forma
adequada no sentido de completar sua tarefa de modo bem sucedido. O
software deve ser capaz de adaptar-se a eventuais modificações ocorridas em
seu ambiente de modo a que o resultado pretendido seja independentemente
alcançado”. [4]
Então podemos dizer que, conceitualmente, entende-se por Agente um
sistema fundamentado em uma base de conhecimento, que percebe um
ambiente, seja este um mundo físico, representação gráfica, uma coleção de
outros agentes ou ambientes complexos; raciocina para interpretar estas
percepções; desenvolve inferências; resolve problemas e determina ações,
agindo sobre o ambiente para realizar um conjunto de metas ou tarefas para as
quais foi projetado.

Tipos de Agentes

Vários autores costumam classificar os agentes encontrados baseando-


se nas suas aplicações. A seguir é apresentada alguma dessas classificações
definidas por Nwana [4], mais precisamente para agentes com instruções
baseadas na web, que é o enfoque do trabalho.

 Agentes inteligentes – segundo o autor, este tipo de agente é mais o que


os pesquisadores desejam do que a própria realidade;
 Agentes de informação – são caracterizados por aquilo que “fazem” e
não por aquilo que “são”. São responsáveis pelo gerenciamento,
manipulação e ordenação da informação obtida de diferentes fontes;
 Agentes móveis – são processos de software que conseguem se
locomover por uma rede de computadores. Porém esta mobilidade não é
uma condição necessária e nem suficiente para caracterizar um agente.
 Agentes híbridos – são oriundos da combinação de mais de um tipo de
agente.
 Agentes colaborativos – colaboram com outros agentes para realizar
uma determinada tarefa.

Agente Racional

“Para cada seqüência em sua história perceptiva, um agente racional


ideal deve realizar qualquer ação que maximize sua medida de desempenho,
levando em consideração as evidências proporcionadas pela seqüência
perceptiva, e qualquer outro conhecimento que o agente tenha disponível”. [2]

Stuart Russell e Peter Norvig [2] ainda afirmam que a racionalidade de


um agente depende de pelo menos quatro fatores:
 A medida de performance que define o grau de sucesso;
 Tudo o que o agente percebeu, a sua memória perceptiva;
 O que o agente sabe sobre o ambiente em que atua;
 As ações que o agente pode executar.

“Através destas afirmações, percebe-se claramente que os agentes


dependem da sua seqüência perceptiva. Estas seqüências são os critérios
usados para definir a ação que um agente deve executar, é ideal criar um
mapeamento que relacione o que o agente ”percebeu“ com o que o agente
deve fazer. E, se estas tabelas de mapeamento descrevem agentes, um agente
ideal é descrito por um mapeamento ideal.

Para se projetar um agente racional é muito importante que o


mapeamento das ações do agente sejam feitas da melhor maneira possível.
Porém, está não é a única característica que define um agente racional. É
necessário que o agente também tenha autonomia para aprender sozinho.

Pode parecer estranho que um agente com pouca, ou nenhuma


experiência, possa aprender sozinho. Por isso, é provável que no início ele
precise do auxílio do projetista. Assim como um animal, que quando é pequeno
aprende a caçar para que possa sobreviver, o agente necessita de um
conhecimento inicial, assim como a habilidade de aprender.” [2]

Outras características de um bom agente, citadas por [5], são as


seguintes:

 Direção: capaz de receber diretrizes de usuários e outros agentes;


 Persistência: capaz de operar por longos períodos sem atenção;
 Confiabilidade: desempenho de acordo com expectativas;
 Antecipação: antecipar necessidades, resultados, informações,
aprendizagem;
 Atividade: capaz de iniciar solução de problemas, fusão de informação,
etc;
 Cooperação: entre sistemas e outros agentes; resolução de conflitos;
conflitos, etc;
 Flexibilidade: estruturas heterogêneas de agentes e fontes de
informação;
 Adaptação: acomodação de modificações de objetivos, tarefas,
aprendizagem.

Medidas de Performance

A medida de desempenho de um agente dever ser objetiva. Como e


quando o sucesso deve ser avaliado depende do projetista do agente e do
objetivo do agente em questão.

“Por exemplo, para avaliar um agente responsável pela limpeza de uma


sala, os prováveis fatores que deveriam ser avaliados, o “Como”:
 a limpeza do chão;
 a quantidade de sujeira retirada;
 a quantidade de eletricidade consumida;
 o barulho produzido;
 o tempo gasto para a limpeza.

O “Quando” não é menos importante, se quisermos avaliar os agentes


que começam a trabalhar mais cedo, devemos verificar a quantidade de sujeira
limpa na primeira hora do dia. Porém esta escolha do quando deve ser tomada
com cuidado, pois podemos estar punindo agentes que estão fazendo o seu
trabalho direito. Seguindo o nosso exemplo, os agentes que trabalham
constantemente durante o dia todo poderiam estar sendo mal avaliados, nas
horas iniciais do dia a sala pode não estar completamente limpa, porém mais
tarde ela estará.” [2]

Outros cuidados devem ser tomados no momento em que avaliamos um


agente:

 “Racionalidade ≠ “Omniscience”(achar traducao correta): Considere o


seguinte exemplo: você está andando em uma avenida movimentada, e
vê uma nota de $100 do outro lado da rua. Neste momento não está
passando nenhum veículo e você decide atravessar para pegar o
dinheiro. Mas quando está na metade do caminho um pedaço de um
avião que havia se desprendido cai sobre sua cabeça. É claro que
apesar do insucesso, a sua ação foi racional, as chances de atravessar
a rua eram enormes, você evitou ser atropelado por um, carro porém
não tinha como notar o que estava vindo do céu. Em outras palavras,
não podemos punir um agente que falhou por um fator que ele não pode
perceber.
 Racionalidade ≠ Perfeição: Racionalidade maximiza a performance
esperada, enquanto a perfeição maximiza a performance atual”. [2]

Estrutura de Agentes Inteligentes

Esta é uma estrutura apresentada por [2]:

Agente = Arquitetura + Programa

 Programa – Implementa a função que mapeia as percepções com suas


devidas ações. Tem como entrada as percepções atuais e como saída a
ação que deve ser efetuada;
 Arquitetura – Roda o programa, é o dispositivo físico, e que caso seja
necessário possui os atuadores e sensores.
Programas de Agentes

As versões mais novas dos programas de agentes possuem um simples


formato, e são descritas por [2] da seguinte maneira:

Estes programas possuem uma estrutura de dados interna que é


atualizada toda vez que uma nova percepção chega. Estas estruturas de dados
são operadas pelos procedimentos de escolha de um agente para decidir uma
ação, que é então passada para a arquitetura para ser executada.

Devemos notar duas coisas neste pseudocódigo de agentes. Primeiro,


apesar do mapeamento de ações ser definido por uma seqüência de
percepções, o programa recebe apenas uma percepção como entrada.

Segundo, o objetivo ou as medidas de performance não faz parte do


esqueleto do programa. Isto porque a medida de performance é aplicada
externamente para que o agente seja julgado, e porque é possível obter boas
performances sem ter conhecimento das medidas de performance.

A escolha de qual ação o agente deve escolher não deve ser somente
olhar para uma tabela de seqüência de percepções. Não é muito difícil notar
que isto tende a falhar:

 A tabela necessária para o agente realizar uma tarefa muito fácil pode
tornar-se imensa;
 Pode-se levar muito tempo para projetar uma tabela;
 O agente não será realmente autônomo. E uma mudança de cenário
pode deixar o agente perdido;
 Mesmo que o agente ganhe um mecanismo de aprendizado para se
tornar autônomo, ele poderia não aprender os valores corretos de todas
as tabelas de entrada.

Tipos de Programa de Agentes

Os tipos de programas de agentes podem variar de acordo com a


aplicação de cada um, [2] classificam alguns tipos de agente da seguinte
maneira:

Simple Reflex Agents

Para resolver problemas com tabelas de percepções muito grandes, é


possível resumir partes da tabela notando certas associações de entrada e
saída que ocorrem freqüentemente. Por exemplo, estamos dirigindo nosso
carro por uma estrada e o carro da frente freia, as luzes de freio do carro se
acendem, então o motorista deve notar isto e começar a frear. Em outras
palavras, o processo “começar a frear” pode ser desencadeado quando se
observa o processo “o carro da frente está freando”.

Este tipo de agente tem uma estrutura fácil de entender. A função


INTERPRET-INPUT gera uma descrição abstrata do estado atual da
percepção, e a função RULE-MATCH retorna a primeira regra de um conjunto
de regras que se encaixa com o estado descrito.

Model-Based Reflex Agents


O agente anterior só irá funcionar baseado na percepção atual.
Considere o seguinte caso: de tempo em tempo o motorista olha pelo retrovisor
para verificar onde estão os veículos próximos. Quando o motorista não está
olhando pelo retrovisor os carros tornam-se “invisíveis”, pois neste momento
ele não sabe onde eles se encontram, e isto é um problema caso ele queira
trocar de pista.

Este problema ocorre pois os sensores não têm acesso ao completo


estado do ambiente. Em alguns casos, o agente precisa manter informações do
estado atual, para que possa distinguir entre estados do ambiente que geram a
mesma entrada de percepção, mas que são ligeiramente diferentes.

Atualização do estado interno requer conhecimento sobre:


 Que informação perceptiva é relevante?
 Como o ambiente reage independentemente do agente?
 Quais serão os efeitos da ação do agente?

A parte interessante do agente apresentado acima é a função UPDATE-


STATE, que é responsável por criar uma descrição do novo estado interno. Isto
dará ao agente conhecimento necessário sobre coisas que não estão
totalmente visíveis a ele.

Goal-Based Agents
Saber o estado atual do ambiente não é o suficiente para saber o que é
preciso fazer. Por exemplo, quando dirigimos e chegamos em um trevo,
podemos virar a esquerda ou à direita, ou ainda seguir em frente. A decisão
correta vai depender de onde estamos querendo chegar. Em outras palavras,
tanto quanto saber a descrição do estado atual, o agente necessita de
informações dos seus objetivos. O programa de agente pode combinar isto
com informações sobre resultados das possíveis ações para escolher aquela
que vai levá-lo ao seu objetivo. Isto pode ser uma tarefa fácil, mas também
pode torna-se bem complicada, quando o agente tem que tomar várias
decisões para chegar ao destino. Pesquisa e planejamento são dois
subcampos da IA destinados a encontrar seqüência de ações que atingem o
objetivo dos agentes.

Utility-Based Agents

Objetivos não são suficientes para que possamos obter um


comportamento de alta qualidade. Seguindo o exemplo, quando chegamos ao
cruzamento mais de um caminho pode nos levar ao objetivo, mas algum é mais
rápido, mais seguro, mais barato, ou mais confiável que o outro. Por isso, é
preciso saber qual o caminho mais útil para o agente.

Uma descrição completa de uma função de um Utility-Based Agents


permite que decisões racionais sejam tomadas quando ocorrer dois tipos
problemas com os objetivos. Primeiro, quando houver conflito de objetivos, por
exemplo, o que se deseja: segurança ou rapidez. Segundo, quando vários
objetivos podem ser alcançados, neste caso a função vai decidir qual deles tem
mais importância para a solução do problema.

Ambientes

Os ambientes onde rodam os agentes foram classificados por [2], e são


apresentados abaixo.
Propriedade dos Ambientes

 Acessíveis x Inacessíveis – Um ambiente é acessível quando todos os


seus aspectos estão disponíveis ao agente, eles são convenientes para
os agentes que precisam manter um estado interno de todo o ambiente.
 Determinístico x Não-determinístico – Se o próximo estado do ambiente
é completamente determinado pelo estado atual e pelas ações
selecionadas pelo agente, então dizemos que este é um ambiente
determinístico.
 Episódico x Não-Episódico – Em um ambiente episódico, a experiência
de um agente é dividida em episódios. Cada episódio consiste na
percepção e na ação do agente. A qualidade da ação vai depender do
episódio em si, pois episódios subseqüentes não dependem dos
episódios anteriores.
 Estático x Dinâmico – Um ambiente é dito dinâmico se suas
propriedades mudam com o passar do tempo.
 Discreto x Contínuo – Se existe um número limitado de opções de
percepções e opções de ações, nós dizemos que este é um ambiente
discreto.

Programas de Ambientes

Esta é uma estrutura básica de um ambiente, definida por [2]:


O procedimento RUN-ENVIROMENT coloca corretamente um agente no
ambiente. Para se obter uma maior quantidade de informações quanto ao
desempenho do agente foi inserido um código para medir o desempenho. A
função RUN-EVAL-ENVIRONMENT faz isto.

Programação OO versus Programação Orientada a Agentes

A programação orientada a agentes usa simultaneamente objetos e


agentes. Em algumas situações os agentes podem ser pensados como meta-
objetos, pois também são caracterizados por estado e comportamento. Porém,
diferentemente dos objetos, os agentes possuem metas pré-estabelecidas e
orientam seu trabalho com o intuito de satisfazê-las. Os métodos de um objeto
são simplesmente procedimentos codificados para lidar com diferentes
mensagens e são usualmente estáticos. Um agente, entretanto, consegue
sintetizar planos para lidar com situações não previstas inicialmente e também
aprender a partir da experiência.[1]

Agentes de Internet
Os agentes de Informação, surgiram pela necessidade das pessoas de
possuírem ferramentas de gerenciamento de informações num dado momento
histórico em que existe um aumento explosivo na quantidade de informações
disponível. Este aumento se justifica em grande parte justamente em função da
popularização da Internet e parece que continuará sendo uma tendência
irreversível nos próximos anos. Os agentes de Informação tem a função de
gerenciar, manipular e consolidar informações de muitas fontes de informação
distribuídas. [4]

Existe uma certa dificuldade em se diferenciar precisamente o que sejam


agentes de informação, agentes de interface ou agentes colaborativos.
Inicialmente os agentes de interface e os colaborativos tinham funções bem
distintas, mas com a popularização da Internet e devido a sua ampla
aplicabilidade nesta gigantesca rede, existe hoje em dia uma grande
sobreposição de funções entre os três tipos de agentes. Por exemplo, como
classificaríamos um agente colaborativo que atue na área específica de
“informação”, ou um agente de filtragem de news que ajudasse na filtragem e
seleção de artigos do fluxo contínuo de mensagens de noticias da rede Usenet.
Esta dificuldade ocorre porque os Agentes de Internet ou de Informação são
definidos usando-se critérios diferentes. Eles são definidos pelo que eles
fazem, em contraste com os agentes colaborativos e de interface que são
definidos pelo que eles são, ou seja por seus atributos. Um agente com ênfase
na autonomia e aprendizado seria um agente de interface, mas se este fosse
utilizado em funções na Internet, então esse agente seria um agente de
informação, em um certo sentido. [1]

Uma recente e bem fundamentada taxonomia para agentes autônomos


é apresentada em [8], onde um conceito amplo de agência é adotado. Na
figura abaixo se representa uma especialização dessa taxonomia, conduzindo
a agentes de informação.
Propostas dos Agentes de Internet

“A disponibilidade de informações na Internet, que à primeira vista


aparenta ser o seu maior apelo, é ao mesmo tempo o seu maior ponto fraco: a
quantidade de informação disponível é tamanha que muitas vezes a tarefa de
localizar uma informação específica se torna inviável. A informação procurada
(muito provavelmente) se encontra disponível em algum lugar, mas pode ser
recuperada apenas em parte, ou a fonte não é confiável, ou até mesmo
algumas vezes nada pode ser diretamente obtido. Os métodos de pesquisa
convencionais não parecem capazes de lidar com tais problemas. A questão é
que tais métodos partem do princípio de que se conhece de antemão qual
informação está disponível (e qual não está) e onde exatamente esta
informação pode ser encontrada. Para tornar isto possível, índices gigantescos
são construídos sobre bases de dados alimentando grandes sistemas de
informações. Por meio de tais índices é possível saber a qualquer momento
que informação está disponível e onde tal informação se encontra. Esta
estratégia, entretanto, falha por completo ao lidar com a complexidade da
Internet.” [2]

O problema tem a ver com o “senso comum”. Como um sistema vai


saber qual informação é relevante para cada usuário? Resposta: Ele não vai
saber. Quem pode qualificar informação para um outro usuário é um outro
usuário com um interesse parecido. Daí o sistema pode cruzar as informações
– gerar um perfil por IA etc, além de servir como ferramenta para as empresas
que criam conteúdo. Um sistema faz uma busca geral e apresenta para
usuários o resultado desta busca que, por sua vez, qualificam a informação
para outros usuários. Daí algo como um informativo é gerado.

Elementos de um agente de Internet

No caso de agentes para pesquisa na Internet, o ambiente é a World


Wide Web para a pesquisa e o computador para interação com o usuário. As
percepções do agente são as palavras de um documento HTML (Hypertext
Markup Language) adquiridas através do uso de sensores de software que se
conectam a Web utilizando HTTP (Hypertext Transfer Protocol). As ações dos
agentes são o que determinam se o website é o alvo da pesquisa (contém as
palavras-chave, por exemplo) ou não, e determinam também os próximos
caminhos para os quais a pesquisa deve prosseguir. O agente atua no
ambiente usando métodos de saída para atualizar constantemente o status da
pesquisa ou o resultado final da mesma. [9]

A inteligência do agente

Achar uma definição para o que é “ser inteligente” sempre foi, e continua
sendo, um grande debate na área da Inteligência Artificial. Porém, para evitar
entrar nesta infinita discussão, podemos definir como agente de informação
inteligente aquele que toma uma decisão racional no momento de fazer uma
escolha. Esta decisão deve ser tomada levando em conta o que o agente
percebeu durante sua pesquisa atual e suas pesquisas anteriores. Em outras
palavras, tendo um objetivo, ele irá toma decisões para seguir o curso das
ações que o conduzam ao seu objetivo. Além disso, a ação “inteligente” que
deve ser feita quando um problema é encontrado é aquela que se dirige em
direção à solução e não aquela que foge dela. [9]

Aprendizado de Agentes Inteligentes

O aprendizado de um agente inteligente é considerado um processo


constante e complexo pois, necessita em coletar um extensivo conhecimento
de um determinado domínio. Um modelo de aprendizagem interessante para
agentes inteligentes, é o que consiste em realizar a extração de conhecimento
a partir da base de dados, utilizando técnicas de data mining (mineração de
dados). Com isso, o agente é capaz de adquirir conhecimento para tomar
decisões em busca de seu objetivo.[12]

Data mining é um dos passos do processo de extração de dados,


permitindo ao usuário explorar e inferir informações úteis a partir dos dados
extraídos, pois revela os relacionamentos que estão encapsulados. Para a
exploração dos dados existem inúmeras técnicas, tais como: redes neurais,
indução de regras e indução de árvores de decisão. [12]

No projeto de um agente consta o que ele deve analisar e, a partir da


análise tomar decisões, as especificações de quais tomadas de decisões
devem ser realizadas não estão definidas no projeto, sendo realizadas de
forma autônoma e mais flexível possível, partindo da análise da base de dados.
O agente promove uma ação autônoma e flexível, identificando o meio onde
está alocado e percebendo todas as alterações realizadas ao seu redor, ação
essa totalmente impossível de ser realizada por uma máquina comum. [12]

A ação promovida pelo agente inteligente é flexível, podendo ser


subdivida em três categorias [13]:
 reatividade: possui a percepção do meio, e responde às mudanças que
ocorrem no meio, a fim de satisfazer os seus objetivos;
 pró-atividade: exibe comportamento objetivo-direção, tomando a
iniciativa para satisfazer os objetivos;
 habilidade social: capaz de interagir com outros agentes (e
possivelmente com humanos) para satisfazer os objetivos.

O aprendizado de agentes inteligentes é uma área multidisciplinar de


pesquisa, que compreende mecanismos pelos quais o conhecimento é
adquirido através de experiências. Duas das principais abordagens para o
aprendizado de agentes baseiam-se nos paradigmas simbolista e conexionista
da Inteligência Artificial. [12]

O aprendizado de um agente é classificado em duas categorias distintas,


aprendizado isolado (isolated learning) e aprendizado interativo (interactive
learning) [13]. O aprendizado é dito isolado quando os processos de
aprendizagem são executados isoladamente, não requerendo nenhuma
interação com outros agentes. Por outro lado, o aprendizado interativo
necessita de comunicação entre os outros agentes para realizar o processo de
aprendizagem. [12]

Processo de Extração de Conhecimento de Dados

O processo de extração de conhecimento de dados (Knowledge


Discovery in Database -KDD) tem como objetivo revelar informações
"escondidas" em dados, facilitando assim um processo de tomada de decisão
[14]. Esse processo é interativo e iterativo, constituído de cinco etapas que
começam a partir dos dados em um estado bruto e culminam num
conhecimento [15]:

 seleção: seleciona ou segmenta os dados de acordo com algum


critério;
 pré-processamento: limpeza dos dados, no qual certas informações
podem ser removidas quando julgadas desnecessárias;
 transformação: transformação dos dados para um modelo entendível por
um sistema de aprendizado;
 data mining: a extração de padrões (ou modelos) a partir dos dados,
podendo ser realizada com a aplicação de sistemas de aprendizado;
 interpretação e Avaliação: análise dos padrões extraídos pelo sistema
de aprendizado, podendo ser usados para suporte à tomada de decisão.

A etapa Data Mining apresenta -se como um conjunto de técnicas e


ferramentas inteligentes, capazes de cooperar amplamente na resolução de
alguns dos problemas de extração de conhecimento em grandes bases de
dados[12]. Essa etapa é bastante complexa, pois é responsável em encontrar
padrões e regularidades nos dados [15]. Dentre as técnicas existentes,
destaca-se:

 Redes Neurais: é uma técnica que possui um alto poder de mineração


de dados, porém é a de mais difícil compreensão. As redes neurais
tentam construir uma representação interna de modelos ou padrões
encontrados nos dados, porém essas representações não são
apresentadas para o usuário. Com as redes neurais o processo de
descoberta de padrões é tratado pelos programas de data mining, por
meio de um processo de “caixa preta”.
 Indução de Regras (Rule Induction): refere-se à detecção de
tendências dentro de grupos de dados, ou de “regras” sobre o dado. As
regras são, então, apresentadas aos usuários como uma lista “não
encomendada”. A tradução das regras para um modelo aproveitável é
feita pelo usuário ou por uma interface de árvore de decisão.
 Visualização: também pode ser encontrada como “complexas
ferramentas de visualizações” ou “geração de gráficos”. A visualização
mapeia um dado sendo minerado de acordo com as dimensões
especificadas. Nenhuma análise é executada pelo programa de data
mining além da manipulação estatística básica. O usuário, por sua vez,
interpreta os dados num espaço amostral. O analista pode pesquisar a
ferramenta novamente para obter diferentes visões ou outras
dimensões.
 Indução de Árvores de Decisão: a árvore de decisão cresce a partir da
aproximação de uma análise de Detecção de Iteração Automática. Essa
análise tem a finalidade de realizar testes automáticos, com todos os
valores do atributo, para identificar aqueles que são fortemente
associados com o item de saída selecionado para o exame. As árvores
de decisão são utilizadas quase sempre em conjunto com a indução de
regras, apresentando os resultados da indução de regras num formato
com priorização. Logo, a regra mais importante é apresentada na árvore
com o primeiro nó e as regras menos relevantes são representadas
como nós subseqüentes. A utilização de regras contidas em árvores de
decisão pode ser feita por diversos sistemas que necessitem da
utilização dessa técnica de data mining. [12]

Além dessas técnicas de data mining apresentadas, existem também


alguns métodos de meta aprendizagem que, em geral, têm um comportamento
melhor do que o uso de apenas um algoritmo de aprendizagem para a extração
de padrões. Isto porque esses métodos fornecem um conjunto de padrões
identificados [12]. Dentre esses métodos, destacam-se Bagging, Stacking e
Boosting [16].

Algoritmos de Pesquisa

Nos estudos de inteligência artificial, os problemas podem ser


freqüentemente reduzidos a uma pesquisa. Um agente pode gerar
constantemente todos os resultados possíveis de um evento, mas então ele
precisará procurar entre estes resultados aquele que poderá ajudá-lo a
completar sua tarefa, executar o caminho (seqüência de passos) definido por
este resultado, começando pelo inicial, ou estado atual, para tentar chegar ao
estado desejado. Em nosso caso, o agente fará da sua pesquisa uma
navegação através da World Wide Web como o intuito de alcançar seu
objetivo. Existem inúmeros algoritmos de pesquisa, livros e artigos publicados
que tratam deste assunto.[9]

Existem duas classes básicas de algoritmos de pesquisa: uninformed e


informed. Uninformed são aquelas pesquisas que não possuem informações a
respeito da quantidade de passos ou o custo necessário para se chegar ao
objetivo partindo de um determinado estado inicial. Estas pesquisas incluem:
depth-first, breadth-first, uniform-cost, depth-limiting, e iterative deepening
search. Informed, ou heurística, são pesquisas que possuem informações do
alvo da pesquisa; esta informação, conhecida como heurística, geralmente é o
custo ou número de passos para se chegar até ele. Isto permite que este último
tipo de pesquisa tenha uma performance melhor que as pesquisas uninformed
e, permitem também, que estas pesquisas sejam feitas de uma maneira mais
“racional”. Nesta categoria se incluem: best-first, hill-climbing, beam, A*, e IDA*
(iterative deepening A*) searches.[9]

Sobre alguns tipos de pesquisa

Breadth-first é um dos dois algoritmos de busca mais comuns que todos


os estudantes de ciência da computação aprendem (o outro é o depth-first). O
breadth-first propõe que a pesquisa inicie com um fila contendo listas de nodos
para serem visitados. Um nodo é um estado ou valor; geralmente é
implementado como sendo uma estrutura que contém informações particulares
a respeito do ambiente ou do domínio do problema. Em nosso caso, o nodo é
uma página da Internet.

O algoritmo inicia colocando o estado inicial do problema no começo da


fila. O próximo passo da busca é visitar o primeiro nodo e adicionar à fila todos
os nodos conectados a ele. Quando vista como uma árvore de um grafo, a
busca pode ser feita da esquerda para a direita a partir do nodo atual, e sempre
adicionando à fila os nodos conectados a ele. Os nodos iniciais da fila que já
foram visitados são removidos e a busca prossegue para o próximo nodo. Este
processo continua até que os alvos da busca sejam alcançados ou até que se
chegue a um ponto em que não haja mais nodos para se visitar.[9]
O tipo de busca uniform-cost é similar ao breadth-first, porém, após ser
adicionado um nodo na fila, o próximo nodo a ser visitado é o que tiver o menor
custo.[9]

Para pesquisas heurísticas, a busca best-first é similar ao uniform-cost,


exceto pelo fato de que o nodo é sorteado usando heurística. É uma busca
rápida, mas não garante que a solução seja encontrada. Uma busca A* é uma
melhora do best-first. Elas trabalham da mesma maneira, porém no sorteio do
próximo nodo além da heurística o custo também é levado em conta.[9]

Pesquisa é uma ferramenta de grande valor em muitas aplicações, e é a


componente chave para a construção de um agente inteligente dedicado a
Internet.

Construindo um agente

O que é necessário para construir um agente de busca inteligente deve


ser esclarecido. Devemos deixar claro também que os conhecidos robots,
spiders, ou web crawlers são espécies de agentes, um pouco mais sofisticados
que o apresentado aqui. Alguns autores classificam o tipo de agente tratado
neste trabalho como “Web Hunters”, esta é uma boa descrição, pois é
justamente o que eles fazem. Além disso um agente completo também possui
mecanismos para buscas de múltiplas palavras-chave não importando se estão
combinadas ou não, exclusion handling, e a habilidade de procurar novos
lugares para sua busca quando um o espaço de pesquisas já foi todo
analisado. [9]

Após ser indicado um alvo, o agente deve prosseguir por todos os


caminhos que forem possíveis. Este agente será baseado por palavras-chave.
O método utilizado é iniciar por um endereço que o usuário forneceu e procurar
todos os outros endereços obtidos a partir dele. Buscas cegas baseadas em
números randômicos de IP podem ser longas e entediantes, porém, apesar de
ser um método exaustivo, é uma alternativa de busca completa pela Internet.
Existem alguns parâmetros que devem ser definidos para que a
pesquisa seja realizada. É preciso saber o alvo (palavra-chave ou frase), onde
iniciar, quantas iterações devem ser feitas (quanto mais URLs melhor), quanto
tempo a pesquisa deve durar, e que método deve ser utilizado no momento de
se definir um caminho a ser seguido.

O desenvolvimento desse agente de informação consiste de quatro


fases principais, que são: inicialização, percepção, ação, e efeito.

 Na fase de inicialização o agente deve “setar” todas as variáveis,


estruturas, e “arrays”. É necessário também resgatar toda a informação
básica para conduzir a busca – o objetivo, a página inicial (uma boa
busca depende muito do lugar por onde ela começa), e o método de
busca.

 A fase de percepção é centrada no uso do conhecimento que o agente


possui para conectar a um site e retornar a informação deste lugar. Ele
precisa, também, identificar se o alvo da busca está presente e os
outros caminhos para novas páginas.

 Na fase da ação, a agente toma toda a informação que ele possui e


determina se o objetivo foi alcançado e se a busca deve continuar. Caso
a busca prossiga, o agente deve decidir para qual caminho ele deve
prosseguir. Esta é a inteligência do agente, e o método da pesquisa dita
o quanto esperto o agente será.

 A fase do efeito consiste em listar as localizações do alvo e dar um


resultado final ao usuário. Bases de dados também podem ser
atualizadas nesta fase.

Durante a inicialização, uma estrutura de dados que irá conter as


informações das páginas visitadas deve ser criada. Os nodos dessa estrutura
devem conter informações sobre a URL, o diretório que a página está
localizada, o custo para chegar até ela, e outros possíveis valores heurísticos
utilizados durante a busca.

O primeiro nodo a ser criado deve conter os critérios iniciais da busca,


portanto, é neste momento que é indicado por onde a pesquisa deve ser
iniciada. Este atributo pode ser um número de IP aleatório porém, neste caso,
não será possível saber de imediato se a pesquisa iniciou por uma página
adequada, e provavelmente poucos resultados serão encontrados ao fim da
busca. È recomendável sempre iniciar a pesquisa em uma página com um
mecanismo de busca (Google, HotBot) ou uma URL conhecida e que contenha
links do assunto desejado. [9]

A seguir, um objetivo para a busca deve ser claramente definido e um


alvo deve ser estabelecido. Por simplicidade, iniciamos uma busca por palavras
chave. Deve ficar claro também o que o usuário deseja, se é uma simples
busca de uma única página ou se ele deseja monitorar várias páginas e
guardar os resultados da busca para consultas posteriores. Para tanto, o
agente deve ser flexível tanto para realizar uma busca agressiva, trazendo a
maior quantidade de páginas no menor tempo possível, quanto para realizar
uma pesquisa mais profunda e criteriosa. Dadas as características da
pesquisa, o comportamento do agente poderá ser “setado” e a busca pode
começar.

Estando com o agente configurado, deve-se estabelecer uma conexão


com a página inicial da pesquisa. Neste trabalho foi utilizado o pacote “java.net”
da API do JAVA, ele oferece classes e métodos que facilitam a trabalho para se
fazer uma conexão em páginas da WEB.

Quando a conexão for estabelecida, a página em questão deve ser


capturada para que seja feita uma análise sobre ela. Esta análise consiste em
fazer um “parser” das TAG´s que mais interessam. As TAG´s denominadas
META podem dizer muito de uma página, nela podem estar contida toda a
informação da página, como o autor, as palavras-chave e a descrição. Veja um
exemplo dessas TAGs retiradas do site do UOL (Universo On-line –
www.uol.com.br):

<meta name=description content="O Universo Online é o maior provedor de


acesso à Internet do Brasil. É também o maior provedor de conteúdo em língua
portuguesa do mundo.">

<meta name=keywords content="Esporte, esporte, Jornais, Revistas,


Biblioteca, Folha Online, Classificados, Compras, Computador, Corpo e Saúde,
Crianças, Diversão e Arte, Economia, Internet, Jogos, Novelas, Rádios e TVs,
Tempo e Trânsito, Últimas Notícias, Viagem, jornalismo, informação, notícia,
jornais, revistas, cultura, entretenimento, lazer, opinião, análise, jogos, internet,
televisão, fotografia, arte, imagem, som, áudio, rádio">

Porém, a grande maioria das pessoas que colocam suas páginas na


WEB não tem o costume de criar este tipo de TAG. Neste caso, torna-se mais
difícil classificar a página em que está sendo feito o parser, pois as palavras-
chave devem ser procuradas em outros lugares do texto, e talvez não se têm
informações que dêem confiabilidade à página, como quem é o autor e qual a
data de atualização.

O próximo passo é encontrar referências para outras páginas. Deve-se


buscar pelas palavras “HREF=” e “SRC=” no documento, o link estará entre
aspas logo após estas palavras. Caso o objetivo da busca seja a coleta de
imagens deve-se seguir a referência contida na TAG do tipo “SRC=”, caso o
objetivo sejam outras páginas, a TAG “HREF=” deve ser analisada. Por
exemplo:

1. <a href="http://java.sun.com/products/servlet">Sun's Servlet Site</a><br>


2. <img src="tomcat.gif" alt="The Mighty Tomcat - MEOW!">

A descrição do destino do link também pode ser obtida nesta TAG:

1. <a href="http://java.sun.com/products/servlet">Sun's Servlet Site</a><br>


2. <img src="tomcat.gif" alt="The Mighty Tomcat - MEOW!">

Caso o site em que o agente permanece já foi analisado e foi


considerado fora dos critérios, não é interessante percorrer outras páginas do
mesmo host e sim partir para novas fontes. O agente pode tomar estas
decisões analisando a URL contida na TAG. Por exemplo, sabe-se que o site X
(www.xis.com.br/index.htm) não interessa ao agente, assim, as TAGs que
contém o HOST atual (www.xis.com.br) e os links relativos podem ser
descartadas:

1. <a href="http://www.xis.com.br/diretorio/pagina2.htm">descrição</a><br>
2. <a href="/diretorio2/outra_pagina.htm">descrição</a><br>

Após o agente ter capturado a página e extraída as informações


consideradas mais importantes, está no momento de “pensar” e agir. Se o
objetivo foi alcançado então a busca está acabada, caso contrário, uma
decisão sobre qual será o próximo passo deve ser tomada. O coração da
decisão é a escolha de qual algoritmo utilizar. Os nodos capturados do
documento atual serão adicionados à fila, a método de procura irá ditar a
ordem de preferência na fila e quanto mais informada for esta nova pesquisa,
melhores serão as chances de alcançar algum resultado satisfatório.

Um custo para websites pode ser definido pela sua distância do agente
de Internet. Os comandos “traceroute” e “ping” podem ser usados para medir a
distância (custo) de um website. Ping, que mede o “round-trip-time” para um
pacote na rede, é recomendado para a velocidade. A distância, ou velocidade
de acesso, pode ser usado como uma heurística desde que cada nodo possa
visto como uma parte do objetivo e uma parte deste objetivo serve para
minimizar o tempo total da procura.

Outro fator que pode ser usado para fazer esta medição de custos são
os tipos de domínios existentes, como ``COM'', ``NET'', ``EDU'', ``ORG'' e
``GOV'', uma busca baseada em sites nacionais (“BR”) pode penalizar com
altos custos sites estrangeiros, isso também por serem possivelmente de uma
língua desconhecida pelo usuário. Existem muitas outras possibilidades para
heurísticas e custos, que implementadas corretamente garantem uma maior
confiabilidade no agente. [9]

Após a busca ter inserido e/ou deletado algum nodo, é necessário


ordená-los por ordem de algum critério. A escolha de como eles serão
ordenados é de certa importância, pois com certeza a escolha correta garantirá
maior performance ao agente. Após a fila dos nodos ter acabado, o agente
poder começar uma nova pesquisa por outra página inicial fornecida pelo
usuário, ou simplesmente acabar suas tarefas. Ainda nesta fase de efeito, o
estado da pesquisa e o seu resultado final são fornecidos ao usuário.

O agente move-se da fase de inicialização para um ciclo de tarefas que


consiste das fases de percepção, ação e efeito, e permanece neste ciclo até
que o objetivo seja alcançado ou até um momento pré-definido pelo usuário.
Métricas de Performance para Agentes de Informação

Um agente implementado não terá a mesma performance como um


mecanismo de busca comercial que usam bases de dados criadas por agentes
web similares, chamadas spiders.
Testar a velocidade das pesquisas de um determinado alvo é uma boa
métrica. Avaliar o loop de fases percepção-ação-efeito em uma função de
tempo, testar a velocidade das buscas utilizando diferentes técnicas de
pesquisa e conhecimento do agente sobre o objetivo também são importantes.
[9]

Entretanto, é necessário verificar qual o objetivo final do agente, se ele


deve procurar única página com o assunto dado pelo usuário, ou estar
constantemente atualizando uma base de dados. Neste último caso, a
velocidade não é tão importante, e o que deve ser avaliado é se o agente está
monitorando corretamente o assunto pelo qual foi designado a trabalhar. A
métrica que pode ser usada então, é a quantidade de páginas que o agente
encontrou e a qualidade da sua pesquisa.

O que deve ser levado muito em conta é a página inicial da pesquisa,


pois algumas páginas iniciais são melhores que outras. Utilizar mais de uma
página inicial para realizar uma mesma pesquisa pode melhorar a performance
do agente. O programa pode também determinar a sua própria página inicial,
ou através de um IP qualquer, gerado aleatoriamente, ou verificando pesquisas
feitas anteriores que obtiveram sucesso e que se assemelhem à pesquisa
atual. [9]

Mecanismos de Pesquisa versus Agentes de Internet

Segue a tabela [1]:

Mecanismos de Pesquisa Agentes de Informação Inteligentes

1 Uma pesquisa é realizada com base Agentes conseguem pesquisar


. em uma ou mais palavras-chaves informações de modo mais inteligente,
fornecidas pelo usuário. Isto por exemplo com o uso de ferramentas
pressupõe que o usuário é capaz de (tais como um thesaurus) que os
formular o conjunto mais adequado habilitam a realizar a pesquisa
de palavras-chaves para a baseados em termos relacionados ou
recuperação da informação desejada. até mesmo em conceitos. Os agentes
Consultas realizadas com palavras- também podem empregar tais
chaves erradas, a mais ou a menos ferramentas para refinar ou até corrigir
irão produzir a recuperação de consultas, com base em um modelo do
informação irrelevante (ruído) ou não usuário ou outras informações
irão recuperar informação relevante.

2 O mapeamento da informação é Agentes de informação individuais


. realizado pela coleta de podem criar sua própria base de
(meta-)informação sobre a conhecimento sobre fontes de
informação e documentos disponíveis informação disponíveis na Internet, a
na Internet. Este método consome qual é atualizada e expandida após
tempo demasiado, além de ocasionar cada pesquisa. Quando a informação
o tráfego de grandes quantidades de (um documento) houver sido removida
dados. Falta-lhe eficiência e uma para um outro local o agente deve ser
melhor adequação à natureza capaz de encontrá-la e atualizar sua
dinâmica da Internet e à da base de conhecimento.
informação que nela pode ser
encontrada.

3 A pesquisa por informações é muitas Agentes de informações podem


. vezes limitada a apenas alguns assumir os detalhes protocolares de
serviços da Internet, como o WWW. conexão com os diversos serviços e
Pesquisar informações oferecidas por também a localização da informação,
outros serviços (p. ex.: uma base de deixando para o usuário apenas a
dados com acesso via telnet) é um formulação da consulta: o que
trabalho usualmente executado de exatamente deve ser procurado, sem
forma manual pelo usuário. se preocupar com onde possa estar.

4 Os mecanismos de pesquisa nem O agente pessoal de informações está


. sempre estão disponíveis. O servidor sempre à disposição de seu usuário e
onde um serviço reside pode ter pode ser executado em paralelo com
caído ou então estar sobrecarregado. outras tarefas ao longo das 24 horas
Os usuários regulares então terão de do dia. Além disso pode ser
procurar um serviço alternativo, programado para detectar e evitar
provavelmente com características e horas de pico em diferentes fusos
forma de operação diferentes. horários.

5 Mecanismos de pesquisa atuam de Agentes inteligentes serão capazes de


. forma independente de domínio no pesquisar por informação com base
modo de tratar a informação coletada em contextos. Irão deduzir tal contexto
e no modo com que a oferece ao a partir do modelo que possuem do
usuário. Os termos nos documentos usuário ou por meio de outros serviços
coletados são extraídos de seu como, por exemplo, um thesaurus.
contexto e tratados como se fossem
mera lista de palavras-chaves.

6 A informação na Internet comporta-se Os agentes podem ajustar-se às


. de forma extremamente dinâmica e preferências e desejos de seus
muitas vezes os mecanismos de usuários individuais. Idealmente isto
pesquisa referem-se a informações poderá conduzir a agentes em
que foram transferidas para locais permanente ajuste quanto ao que deve
desconhecidos, ou simplesmente ser procurado com base nas reações
desapareceram. Os coletores de de seus usuários ao resultado de
informações não aprendem com tais pesquisas anteriores. Além disso os
tentativas fracassadas e portanto não agentes são capazes de pesquisar a
se auto ajustam para evitar falhas Internet de modo contínuo em busca
futuras. Além disso, como realizam de nova informação sobre tópicos em
sua pesquisa em intervalos regulares que seu usuário costuma estar
o usuário não tem notícia de interessado.
atualizações realizadas nesse
ínterim.

Aplicações
Ultimamente, talvez o maior impacto dos agentes advém de sua
habilidade para monitorar bases de dados heterogêneas, tais como aquelas na
Internet. Qualquer coisa que for colocada num site Web pode rapidamente ser
descoberta. Mais ainda, qualquer navegador na Internet pode fornecer
informações para sites na Web sobre interesses dos usuários.

Os agentes podem monitorar mudanças num site da web, e sites na web


podem usar agentes para monitorar usuários com o objetivo de criar perfis dos
interesses dos usuários. Já foram desenvolvidas algumas ferramentas que
permitem a geração de agentes projetados para encontrar mudanças em sites
na web, facilitando várias tarefas tais como obter análise de novidades e de
notícias (news).

Após a criação do agente, ele não ficará preso somente a um tipo de


aplicação. Um sistema de buscas completo pode ser criado, incluindo na
aplicação, além do agente, um gerador de palavras e um gerador de números
de IP para uma busca exaustiva pela Internet. Os resultados podem ser
armazenados em uma base de dados para consultas posteriores. Este agente
também pode ser modificado para fazer pesquisas em diferentes tipos de
ambiente, como documentos de texto, e não somente em páginas da web.

Responsabilidade na pesquisa

Velocidade foi mencionada inicialmente como uma importante


característica de uma busca, porém algumas pesquisas podem estar
bombardeando os servidores com repetidas solicitações. Deve-se limitar a
velocidade em que repetidas consultas são feitas em um mesmo servidor
através da introdução de um “tempo de espera”. [9]

O problema é que este tempo de espera pode comprometer a


performance de um agente quem tenha por objetivo fazer pesquisas rápidas.
Uma maneira de se manter a velocidade da pesquisa, é visitar diferentes
servidores enquanto se espera para fazer uma nova requisição no primeiro
servidor visitado. Porém é interessante sempre procurar por novos sites, caso
contrário, corre-se o risco de ficar preso em um loop de espera por servidores e
comprometer a produtividade da busca.

Uma outra característica de uma pesquisa responsável, é criar agentes


que provém uma maneira de se identificar da mesma maneira que as páginas
da web fazem. Se o agente estiver realizando constantes atividades em um
determinado servidor, ele poderá identificar-se com o administrador do sistema
que está sofrendo a pesquisa.

Outro item que deve ser levado em conta são os arquivos /robots.txt
presentes em alguns websites. Os agentes sempre devem checar a existência
desses arquivos, pois eles sempre contêm informações direcionadas
especialmente aos agentes da web. Além disso, páginas HTML podem incluir
Tags do tipo <META NAME=``ROBOTS'' CONTENT=``NOFOLLOW''> que
especificam que não se deve fazer o “parser” da página, isto é, por uma
questão de ética não se deve realizar pesquisas na página em questão.

A Internet é um espaço imenso, com muitos lugares a serem


pesquisados e com muita informação a ser descoberta. Porém é interessante
tomar uma aproximação conservacionista, usar os recursos adequadamente,
ser cortez e ser seguro.[9]

Critérios para avaliar fontes de informações na Internet

O que a URL pode dizer

 É uma página pessoal?


Páginas pessoais não são necessariamente ruins, mas o autor deve ser
investigado com cuidado. Em páginas pessoais não existe ninguém
respondendo pelas informações encontradas na página.

 Qual o tipo de domínio?


O domínio é apropriado ao seu interesse? Qual o tipo de fonte de
informação é mais confiável? (edu, gov, org)

Analisando o perímetro da página

 Quem escreveu a página?


É interessante apresentar ao menos o e-mail do responsável pela
página.
 A página é datada?
E alguns casos uma data antiga na página indica que o autor perdeu
interesse por ela e seu conteúdo está desatualizado.

Indicadores de qualidade da informação

 As fontes são documentadas com links?


Links que não funcionam, que levam para páginas que não estão
relacionadas ao assunto mostram que a página tem uma fonte com
pouca credibilidade.
 È uma informação reproduzida?
Pode-se verificar procurando por um “copyright” na pagina.
 Existem links para outras fontes de informação?
Verificar se os links funcionam, se as páginas para qual eles são
redirecionadas são confiáveis.

O que os outros dizem

 Quem possui um link para a página?


Verificar se muitas páginas e que tipo de páginas referenciam a página
em questão.

Buscas Futuras
Existem numerosas possibilidades para melhorias na tecnologia atual de
agentes inteligentes. A natureza complexa da dinâmica World Wide Web fazem
da pesquisa uma tarefa difícil, por isso, métodos de pesquisas avançados
devem ser planejados para que possam ser empregados em agentes de
Internet.

A interface homem-computador ainda não é a adequada. Existem


algumas disparidades entre a maneira como as pessoas desejam pela
informação e da maneira como os computadores armazenam estes dados. Se
as pessoas pudessem interagir de uma maneira mas natural com eles e o
agente pudesse entender melhor a solicitação do usuário, então uma busca
mais eficiente poderia ser executada. A pesquisa deve sair da base das
informações sintáticas para uma base de informações semânticas permitindo
ao agente buscar idéias e não somente palavras. Se o agente entender
conceitos então o aprendizado da máquina e a pesquisa poderão ser utilizados
para entender o comportamento do usuário e com isso refinar as buscas para
uma maneira personalizada, baseada nas preferências do usuário. Melhorias
na integração do processamento da linguagem natural e aprendizado da
máquina podem deixar estes tipos de agente mais inteligentes.[9]
Conclusão
Referências Bibliográficas

[1]
Porto, P. R. R; Palazzo A. M. P.; CASTILHO J. M. V. Agentes de Informação
Inteligente. Artigo apresentado em um Workshop.

[2]
Russell, S.; Norvig, P. Artificial Intelligence: A Modern Approach – 1995
Prentice-Hall, Inc.

[3]
Lecky-Thompson, J.W. Software Agents Mail List
URL: http://www.ee.mcgill.ca/~ agent_faq.html

[4]
Nwana, H. S.: Software Agents: An Overview. To appear in “Knowledge
Engineering Review”, 1996.

[5]
UNICAMP, material de ensino da matéria de Inteligência Artificial do curso de
Ciência da Computação.

[6]
Cunha L. M., Fuks, H. Lucena, C. J. P. Sistemas Multi-agentes e Instrução
Baseada na Web.

[7]
Brown, C..: AI on the WWW: Supply on Demand Agents.
EEE Expert, v.10, n.4. August 1995, pp. 50-55.

[8]
Franklin, S.; Graesser, A.: Is it an Agent or just a Program?: A Taxonomy
for Autonomous Agents. Institute of Intelligent Systems. University of
Memphis. 1996
URL: http://www.msci.memphis.edu/~franklyn.

[9]
Youngblood, G. M., Web Hunting: Design of a Simple Intelligent Web
Search Agent.
URL: http://www.acm.org/crossroads/xrd5-4/webhunting.html

[10]
Koster, M. ``The Web Robots FAQ.''
http://info.webcrawler.com/mak/projects/robots/faq.html. 30 Nov. 1998.

[11]
Bogo, L. M.; Rodriguez, A. M.
Agentes inteligentes para a formação de comunidades virtuais de
aprendizado
http://www.celepar.br/batebyte

[12]
Maciel, L.; Padilha, T. P. P.
Um Modelo de Aprendizado de Agentes Inteligentes Baseado em Técnicas
de Data Mining
Centro Universitário Luterano de Palmas (CEULP)

[13]
Wooldridge, M..
Multiagent System – A Modern Approach to Distributed Artificial
Intelligence, In: Intelligent Agents, Edited by Gerhard Weiss,
England, 2001.

[14]
Wirth, R.; Reinartz, T. P.
Detecting Early Indicator Cars in an Automotive Database: A Multi-
Strategy Approach.
“Proceedings The Second International Conference on Knowledge Discovery”,
v. 3, n. 4, p. 76-81, 1996.

[15]
Fayyad, U., Shapiro, G. P. e Smyth P.,
From Data Mining to Knowledge Discovery in Databases. AAAIMIT Press,
p.37-54, 1996.

[16]
Ian H. and Eibe.
Data Mining: Practical Machine Learning Tools and Techniques with Java
Implementations. Morgan Kaufmann, October 1999

[17]
Gianni, V.: The Info Agent. Internet Draft, 1995.

[18]
Hermans, B.:
Intelligent Software Agents on the Internet: an inventory of currently
offered functionality in the information society & a prediction of (near)
future development.
Tese de PhD. Tilburg University, 1996.

Você também pode gostar