desenvolvimento e aplicação de agentes web inteligentes para pesquisa de...

34
Ano Lectivo 2010/2011 Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de publicações científicas nas áreas da biomedicina e bioinformática Carlos André Machado Carvalhal Número Mecanográfico: 19263 Projecto de Final de Curso Engenharia Biomédica Orientador: Professor Doutor Leonel Domingues Deusdado Co-orientador: Professor Doutor Sérgio Alípio Domingues Deusdado

Upload: others

Post on 27-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

Ano Lectivo 2010/2011

Desenvolvimento e aplicação de agentes Web

inteligentes para pesquisa de publicações científicas

nas áreas da biomedicina e bioinformática

Carlos André Machado Carvalhal

Número Mecanográfico: 19263

Projecto de Final de Curso

Engenharia Biomédica

Orientador: Professor Doutor Leonel Domingues Deusdado

Co-orientador: Professor Doutor Sérgio Alípio Domingues Deusdado

Page 2: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

1

Page 3: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

2

Agradecimentos

A elaboração deste projecto não seria possível sem a colaboração de algumas

pessoas que me auxiliaram e apoiaram ao longo desta etapa.

Em primeiro lugar, gostaria de agradecer aos meus orientadores. Ao Doutor Leonel

Deusdado pela sua disponibilidade, orientação e conselhos nos momentos certos. Ao

Doutor Sérgio Deusdado pela sua dedicação, encorajamento e ensinamento ao longo do

semestre.

Agradeço também ao Dr. Nuno Carvalho, que ofereceu o seu profissionalismo e

eficácia com a ajuda no servidor e base de dados do serviço, ao José Miguel Couto

pelos seus conselhos e experiência na Web, e não por último à minha família, amigos e

a Vânia Rodrigues por todo o carinho e apoio ao longo da minha licenciatura.

Page 4: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

3

Page 5: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

4

Resumo

Este projecto tem como principal objectivo disponibilizar um serviço Web que

permita aos seus utilizadores a criação e manutenção de agentes destinados a

automatizar as pesquisas bibliográficas online, orientando-se particularmente para as

áreas científicas da biomedicina e da bioinformática. O serviço tem como suporte uma

base de dados de agentes e de utilizadores, interligada com módulos de software,

implementados em JavaScript, PHP e Perl, que gerem os inputs e outputs do sistema.

No essencial, os agentes caracterizam-se por um conjunto de palavras-chave que são

submetidas como queries combinadas na pesquisa da PubMed - um dos maiores

repositórios mundiais de bibliografia científica na área onde este projecto é

desenvolvido. Durante o período de validade dos agentes, e com periodicidade semanal,

um módulo de software presente no servidor executa as pesquisas e notifica por e-mail

os utilizadores dos resultados obtidos. Deste modo, os utilizadores obterão maior

disponibilidade para outras tarefas, uma vez que contam com a automatização da

pesquisa bibliográfica.

Um protótipo funcional do serviço criado (ASAP – Automate Search with Agents in

Pubmed) está disponível em http://www.esa.ipb.pt/~agentes . Na concepção da interface

privilegiou-se a simplicidade e a usabilidade para os processos de gestão de utilizadores

e dos seus agentes.

Os testes efectuados permitiram validar as metodologias seguidas, tendo sido

obtidos resultados satisfatórios no tocante à eficácia e à eficiência do sistema

desenvolvido.

Palavras-chave: Agentes Web, PubMed, Crawler.

Page 6: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

5

Abstract

This project has the primary objective of creating a Web service that allows its users

to create and edit Web agents aimed to automate online bibliographic search,

particularly targeting the scientific areas of biomedicine and bioinformatics. The service

is supported by a database of agents and users, interconnected with software modules

implemented in JavaScript, PHP and Perl, which manage the system’s inputs and

outputs. Essentially, the agents are characterized by a set of keywords that are submitted

as combined queries in a PubMed search – one of the world’s largest repositories of

scientific bibliography in the area on which this project was developed. During the valid

period of the agents, and with weekly periodicity, the software module present in the

server makes the search and notifies the users with the results. With this service, the

users will have more time to concentrate on other tasks, once they have the automated

bibliographic search.

A functional prototype of the created service (ASAP – Automate Search with

Agents in PubMed) is available in http://www.esa.ipb.pt/~agentes. The conception of

the interface was based in simplicity and usability for the management process of users

and agents.

The tests conducted to evaluate the service allowed the validation of the followed

methodologies, obtaining satisfying results relating to the system’s efficiency and

effectiveness.

Keywords: Web Agents, PubMed, Crawler.

Page 7: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

6

Índice

Capítulo 1 - Introdução .............................................................................................. 8

1.1 Enquadramento ................................................................................................ 8

1.2 Estrutura do Relatório ...................................................................................... 9

Capítulo 2 – Fundamentos ....................................................................................... 10

2.1 A Pesquisa Científica na Web ........................................................................ 10

2.2 Agentes Web e Crawlers ................................................................................ 11

2.3 Trabalho Anterior ........................................................................................... 13

2.4 Linguagens de Programação .......................................................................... 15

2.5 Programas Utilizados ..................................................................................... 17

Capítulo 3 – O Serviço ASAP ................................................................................. 19

3.1 Conceito Inicial .............................................................................................. 19

3.2 Arquitectura dos Agentes ............................................................................... 21

3.3 O Crawler ...................................................................................................... 21

3.4 Aplicação do Crawler .................................................................................... 24

3.4.1 Base de Dados ......................................................................................... 24

3.4.2 O Site Web ASAP ................................................................................... 25

3.4.3 As Ligações Site / Base de Dados ........................................................... 26

3.5 ASAP – Pesquisa Autónoma com Agentes na PubMed ................................ 27

3.6 Resultados ...................................................................................................... 28

Capítulo 4 – Conclusões .......................................................................................... 30

4.1 Conclusão ....................................................................................................... 30

4.2 Trabalho Futuro ............................................................................................. 31

Page 8: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

7

Índice de Figuras

Fig. 1 – Representação das tipologias de crawlers inseridas no crawler ASAP. .... 13

Fig. 2 – Representação esquemática das linguagens de programação aplicadas à

construção do projecto .................................................................................................... 17

Fig. 3 – Conceptualização inicial da estrutura do serviço ASAP. ........................... 19

Fig. 4 – Representação do funcionamento do crawler. ........................................... 22

Fig. 5 – Modelo ER (Entidade-relacionamento) da base de dados. ......................... 24

Fig. 6 – Protótipo da página inicial do serviço ASAP. ............................................ 25

Fig. 7 – Formulário de registo (protótipo). .............................................................. 26

Fig. 8 – Formulário de login (protótipo). ................................................................. 27

Fig. 9 – Formulário de criação de agente (protótipo). ............................................. 27

Fig. 10 – Diagrama do funcionamento geral do crawler e serviço ASAP. ............. 28

Page 9: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

8

Capítulo 1 - Introdução

1.1 Enquadramento

As áreas da biomedicina e bioinformática têm desenvolvido, nos últimos anos, um

exponencial de investigação científica sem igual, demonstrado principalmente no

número de artigos científicos publicados desde a década de 90. Este crescimento,

acompanhado de grandes progressos nesta área, apresenta também dificuldades

relativamente à pesquisa, organização e actualização de novos artigos publicados.

Os artigos publicados disponíveis na World Wide Web nestas áreas aumentam a

cada dia que passa, e tipicamente, o investigador comum gasta uma porção significativa

de tempo e esforço para encontrar publicações relevantes na Web. Esta pesquisa, para

além de necessária para bibliografia de suporte à investigação, é feita também para

evitar a duplicação de trabalho já feito, o que várias vezes acaba por acontecer na

biomedicina e bioinformática, pois sendo áreas de investigação em rápida expansão, a

taxa de publicação de artigos na Web cresce impetuosamente catalisada por serviços que

facilitam a leitura e publicação destes artigos, como por exemplo a PubMed [1].

O objectivo deste trabalho é criar um serviço ou ferramenta de agentes Web que

permita aos investigadores automatizar a sua forma de pesquisar e actualizar

bibliografia científica de forma a torná-la mais rápida e fácil. O seu desenvolvimento

passa pela investigação na ligação de agentes externos aos repositórios de bibliografia

científica para elaboração de pesquisas, implementação de um serviço Web de raiz,

implicando a aprendizagem de vários assuntos relacionados com a Web e a informática,

e ao seu domínio, para aplicação no funcionamento do serviço.

Consequentemente, serviços como este poderão ajudar no progresso científico dos

investigadores da biomedicina e bioinformática e na organização da pesquisa

personalizada de cada investigador. Este tipo de investigação abre um leque alargado de

ideias relacionadas com o suporte à pesquisa e combate aos problemas expostos acima.

Page 10: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

9

1.2 Estrutura do Relatório

Este relatório de projecto aborda os processos e temáticas inerentes ao

desenvolvimento do serviço, expondo as etapas subjacentes e o estudo analítico

envolvente na criação de ferramentas Web.

No capítulo 2 é abordada a actualidade das pesquisas na Web, e todo o trabalho

relacionado com o projecto que é utilizado como ferramenta de pesquisa pelos

investigadores hoje em dia.

No capítulo 3 são explicados todos os processos trabalhados na criação do crawler

de pesquisa na PubMed e sua implementação no ambiente Web, bem como os

resultados verificados na sequência de testes efectuada.

O quarto e último capítulo contém a análise conclusiva à elaboração deste projecto

e o trabalho futuro que pode ser feito para melhorar o serviço ASAP.

Page 11: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

10

Capítulo 2 – Fundamentos

2.1 A Pesquisa Científica na Web

Desde o início da condução das publicações científicas para a Internet, de forma

independente ou auxiliada por repositórios científicos online, várias identidades têm

criado ferramentas de pesquisa, principalmente construídas como motores de busca para

suportar pesquisas direccionadas à comunidade científica. Algumas dessas ferramentas

estão bastante bem construídas e são utilizadas hoje em dia como o Google Scholar

(http://scholar.google.pt/), a Web of Knowledge (http://wokinfo.com/), para além dos

motores de busca já integrados nos repositórios científicos.

Estes motores de pesquisa usualmente oferecem uma caixa de texto onde podemos

escrever um conjunto de palavras-chave (query) filtradoras e selectivas dos artigos que

desejamos visualizar. Podem também disponibilizar em simultâneo um conjunto de

opções de refinamento da pesquisa como a data das publicações, pesquisa por autor ou

tema, entre outras. Estes serviços são os mais utilizados actualmente para pesquisa de

bibliografia científica, pela sua rapidez e eficiência a curto prazo.

Alguns destes mecanismos utilizam também uma abordagem de data mining, que se

define como a extracção de informação nova e útil relacionada com aquela que é

procurada. O seu mecanismo passa pela construção de programas que procuram nas

bases de dados a generalização e relacionamento de padrões conforme a informação que

é encontrada e o seu nível de correspondência com a informação que procuramos [2].

Um exemplo simples é a marcação de palavras da pesquisa em textos onde são

encontradas.

Mecanismos menos imediatos, mas mais úteis e eficazes utilizados na Web são os

crawlers ou agentes destinados a reunir informação ao serviço dos utilizadores. Apesar

do seu funcionamento não diferir totalmente dos motores de pesquisa habituais, a sua

automatização marca pela diferença, pois pode usufruir de duas aplicações diferentes: a

pesquisa mais alargada ao nível da quantidade e variedade de repositórios científicos

e/ou a actualização de resultados autónoma. Obviamente, todos os motores de pesquisa

Page 12: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

11

populares usam crawlers que têm de cobrir o crescimento substancial da Web. No

entanto, devido à natural competitividade da comercialização destes motores, os

detalhes funcionais destes crawlers raramente se encontram disponíveis publicamente, e

se existem, são demasiado vagos para permitir a sua reprodutibilidade [3].

2.2 Agentes Web e Crawlers

Um agente define-se por aquele que pode agir em lugar de outro com permissão. No

contexto da informática, esta definição estende-se a que o agente é um programa ou

entidade de software que elabora um conjunto de operações em nome de um utilizador

ou outro programa com algum nível de independência ou autonomia. Complementando

esta definição à característica autónoma do agente, pode-se dizer que um agente

autónomo é um sistema que faz parte de um ambiente, analisando-o e agindo com base

nele num determinado período de tempo, em busca da sua própria agenda [4].

Embora a teoria por detrás dos agentes já exista há muito tempo, os agentes têm-se

tornado mais proeminentes com o crescimento da Internet. Muitas empresas vendem

actualmente software que torna possível a configuração pessoal de um agente para

procurar na Web certos tipos de informação. Na área da ciência dos computadores,

existe uma perspectiva que afirma que a mente humana consiste em milhares ou

milhões de agentes a trabalhar em paralelo. Para criar verdadeira inteligência artificial,

devemos construir sistemas computacionais que contenham igualmente muitos agentes

e sistemas para arbitrar entre vários possíveis resultados obtidos a partir destes agentes.

Um agente Web é então, um programa ou software de auxílio ao utilizador

construído especialmente para o ambiente da World Wide Web, de forma a apresentar-se

através de uma interface numa página Web.

Os Web crawlers – também conhecidos como robots, spiders, worms ou wanderers,

são quase tão antigos como a própria Web. O primeiro crawler criado, o wanderer de

Matthew Gray, foi escrito em 1993. Também vários artigos sobre Web crawling foram

apresentados nas duas primeiras conferências da World Wide Web. No entanto, nesses

dias a Web não tinha a magnitude que tem hoje, portanto esses sistemas não previam os

problemas inerentes à criação de um crawler hoje em dia, que como qualquer outro

software, debruçam-se principalmente sobre a constante actualização de

acompanhamento no seu meio Web.[3]

Page 13: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

12

Um crawler é no fundo um programa ou um conjunto de módulos de software que

reúne informação a partir de sites Web, através de tópicos de pesquisa ou queries

conjugadas com seguimentos de hiperligações que o permitem aceder a pontos de

informação. Têm também como característica o seu autonomismo, com que podem

manipular livremente a informação que obtêm.

Existem diferentes cenários em que os crawlers podem ser usados para aquisição de

informação. Seguem-se alguns exemplos de tipos de crawlers utilizados de diferentes

modos.

Crawler de expansão: Para construir um motor de pesquisa ou repositório

com magnitude relativamente alta, crawlers de alta performance começam

com um pequeno conjunto de páginas e depois exploram outras pelo

intermédio de hiperligações de modo a expandirem o seu conteúdo;

Crawler de segundo plano: Muita da informação existente através da Web

encontra-se em bases de dados e pode apenas ser obtida pela construção de

queries apropriadas ou preenchimento de formulários nas páginas. Este tipo

de crawlers tem sido mais desenvolvido recentemente para ganhar acesso a

esta informação, também chamada de “Deep Web” ou “Hidden Web”, pois a

sua criação normalmente apresenta uma série de desafios;

Crawler de especialização: Alguns motores de pesquisa podem usar

políticas de procura que se concentrem apenas em certos tipos de páginas

com uma linguagem ou tema definidos. O objectivo deste crawler é

encontrar muitas páginas de interesse sem usar muita largura de banda. Ou

seja, não é necessário um crawler de alta performance, a não ser que se

deseje que este se torne uma base bibliográfica específica bastante mais

actualizada que um motor de expansão comum;

Crawler de actualização: Depois das páginas serem inicialmente obtidas,

podem ser periodicamente retiradas para verificação de actualizações. Numa

situação simples, isto pode ser feito por um novo crawler copiado do

primeiro, ou pelo reprocessamento dos URL (Uniform Resource Locator)

desse crawler. Claro que este sistema pode ser optimizado pelo crescimento

da complexidade da programação do crawler, pois boas projecções de

crawlers de actualização são cruciais para uma pesquisa actualizada com

baixo processamento [5].

Page 14: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

13

Neste projecto foi desenvolvido um crawler que conjuga simultaneamente os três

últimos tipos de crawlers descritos anteriormente de forma a conseguir o objectivo

inicialmente proposto. Uma ilustração esquemática das tipologias de crawlers é

apresentada na Fig. 1.

Fig. 1 – Representação das tipologias de crawlers inseridas no crawler ASAP.

2.3 Trabalho Anterior

À medida que as ferramentas deste serviço Web foram desenvolvidas, a pesquisa na

Web levou à descoberta de outros serviços semelhantes e outras ferramentas

relacionadas com este projecto.

O serviço desenvolvido neste projecto usa um dos maiores repositórios científicos

de bibliografia relacionada com as áreas da biomedicina e bioinformática, a PubMed,

mediada pelo NCBI (National Center for Biotechnology Information). Devido ao seu

forte impacto nestas áreas, o NCBI criou uma série de ferramentas que podem ser

exploradas por agentes inteligentes de software. Ferramentas denominadas eUtils,

acrónimo para Entrez Programming Utilities, são um conjunto de sete programas em

servidores paralelos que proporcionam uma ligação útil ao sistema de base de dados e

pesquisa da Entrez no NCBI.

Esta ferramenta usa uma sintaxe fixa de URL, que traduz um conjunto standard de

parâmetros de entrada nos valores necessários para componentes de software variados

do NCBI procurarem e obterem a informação pretendida. As eUtils são, então, um tipo

Page 15: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

14

de interface estruturada para o sistema Entrez, que actualmente inclui 23 bases de dados

preenchidas de grande variedade de informação biomédica.

Existem sete ferramentas nas eUtils:

EInfo – disponibiliza o número de registos indexados em cada campo de

uma certa base de dados, a data da última actualização da base de dados e

ligações disponíveis dessa base de dados a outras dentro da Entrez;

EGQuery – retribui o número de registos observados em cada base de dados

Entrez de acordo com uma dada query;

ESearch – retribui a lista de UID’s (identificadores únicos) numa certa base

de dados e a traduções dos termos dados de acordo com uma dada query;

ESummary – retribui os sumários dos documentos de acordo a uma lista de

UDI’s;

EPost – aceita uma lista de UDI’s, guarda o conjunto no servidor do

histórico, e retribui a chave da query correspondente e meio Web;

EFetch – retribui os registos de informação correspondentes a uma lista de

UID’s;

ELink – dada uma lista de UDI’s de uma base de dados, retribui uma lista de

ID’s relacionados na mesma base ou uma lista de ID hiperligados noutra

base de dados Entrez;

Construindo um software em Perl, Python, Java ou C++, é possível anexar os URL

das eUtils ao NCBI, obter os resultados e depois processar a informação livremente, o

que cria um potencial alargado à manipulação de dados deste repositório científico

processada em segundo plano [6].

Um serviço semelhante relacionado com este projecto é o PubCrawler

(http://www.pubcrawler.ie/), um serviço de alertas desenvolvido pelo departamento de

genética do Trinity College de Dublin, que efectua actualizações diárias às bases de

dados do NCBI, à PubMed e à GenBank. O PubCrawler consegue manter os

investigadores informados sobre os conteúdos destas bases de dados pela listagem de

novos artigos que se relacionam com as suas pesquisas [7].

Este serviço serviu de objecto de estudo, para tentar verificar o que poderia ser

melhorado e diferenciado num serviço como este. Podemos verificar muitas dessas

características na secção do trabalho futuro. Quanto ao trabalho efectuado neste

Page 16: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

15

projecto, pode ser verificado, numa comparação ao PubCrawler, que a abordagem é

bastante mais simplificada para o utilizador, e diferencia-se principalmente na sua

facilidade de uso, apelatividade e eficiência da interface. Apesar de o PubCrawler ser

um serviço já completamente desenvolvido, tal não facilitou a tarefa a desenvolver no

projecto, pois como já vimos antes, os crawlers e agentes Web são um objecto de difícil

reprodutibilidade, e neste campo existem as mais variadas formas de alcançar os

mesmos objectivos. De tal forma, o mais importante nem sempre é o objectivo definido,

mas a forma como este é trabalhado e alcançado.

2.4 Linguagens de Programação

A maior parte da elaboração deste projecto centrou-se numa forma de trabalho que

se estendeu a todos os campos da parte prática: a programação. Só deste modo se

consegue desenvolver um sistema como o idealizado no início deste serviço. Para além

do suporte existente na Web, todas as linhas de código inerentes ao serviço criado foram

cuidadosamente implementadas de forma a elaborar o conceito e utilidade idealizadas

ao início do projecto.

As linguagens de programação servem para escrever programas que permitem a

comunicação entre o utilizador e a máquina. Programas especiais denominados de

compiladores convertem as instruções escritas em linguagens de programação em

instruções escritas em linguagem binária que a máquina consegue entender [8].

Ao decorrer da construção do serviço, foram utilizadas seis linguagens de

programação: Perl, PHP, MySQL, HTML, Javascript e CSS. Cada uma delas contribui

para diferentes e importantes aspectos na constituição dos agentes Web e sua aplicação

no serviço ASAP. Segue-se uma pequena descrição de cada uma das linguagens.

O Perl é uma linguagem para manipulação facilitada de texto, ficheiros e processos,

que oferece uma forma mais concisa e legível de efectuar muitas tarefas diferentes que

seriam mais complexas de desenvolver utilizando outras linguagens mais de base como

C. Esta linguagem é caracterizada pela sua simplicidade, rapidez, segurança,

versatilidade e a sua excelência como ferramenta na criação de novas aplicações. A sua

estrutura é semelhante à da linguagem C e por isso fácil de usar [9].

Page 17: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

16

O HTML (HyperText Markup Language) é a linguagem da World Wide Web. Todos

os documentos da Web são escritos em HTML e todas as formatações de documentos,

hiperligações, imagens gráficas ou de multimédia foram também baseadas nesta

linguagem. HTML é portanto, o principal constituinte da Web, a base de todas as

páginas e inerentes que é possível encontrar na rede mundial, sendo neste projecto uma

linguagem obrigatória na aplicação dos agentes desenvolvidos [10].

O JavaScript, anteriormente conhecido como LiveScript, é uma linguagem que

permite o melhoramento e interactividade das páginas Web ou de algumas outras

aplicações. O objectivo do JavaScript passa muitas vezes por proporcionar o máximo de

interactividade e resposta sem ser necessário actualizar novas páginas Web. No decorrer

deste projecto são abordadas as limitações do JavaScript quanto à sua interactividade

com os agentes [11].

O CSS (Cascade Style Sheets) é uma linguagem com o objectivo de definir estilos

aos ficheiros HTML. É utilizada para modificar a estrutura visual das páginas Web,

formatando texto, espaçamentos e outras características.

O MySQL é um sistema de manipulação de bases de dados relacionais via SQL. A

sua linguagem é direccionada à criação e modificação de bases de dados online, para o

armazenamento de informação relacional na Web.

O PHP (Hypertext Preprocessor) é a linguagem de desenvolvimento Web paralela

ao servidor, compatível com a maior parte dos servidores Web. É também uma

linguagem que se consegue anexar facilmente ao HTML e a sua principal característica

é actuar como uma ligação das páginas Web a servidores de bases de dados,

especificidade para a qual foi usada no decorrer do projecto [12].

A figura 2 representa a utilização destas linguagens na estrutura do serviço, no qual

a HTML, CSS e Javascript se aliaram para a interface do site, o PHP formou a ligação à

base de dados MySQL que está por sua vez disponível para fornecer informação ao

crawler baseado em Perl.

Page 18: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

17

Fig. 2 – Representação esquemática das linguagens de programação aplicadas à

construção do projecto

2.5 Programas Utilizados

Para a construção do serviço vários softwares foram utilizados como ferramentas de

auxílio à programação de código, sendo a maioria gratuitos.

Para a criação de páginas Web com HTML e o seu preenchimento com

complementos de JavaScript e CSS, foi usado o programa Adobe Dreamweaver

(http://www.adobe.com/products/dreamweaver.html), software de criação e edição que

apresenta utilidades do ponto de vista visual e a nível de código que permitem construir

Websites em vários sistemas.

O FileZilla FTP Client (http://filezilla-project.org/) é um programa utilizado para

transferência de ficheiros de e para o servidor, permitindo colocar conteúdo na Web.

O EngInSite Perl Editor LE (http://www.enginsite.com/Perl.htm) foi o editor

preferido de linguagem Perl utilizado neste projecto, contém uma interface direccionada

a este objectivo.

O Notepad++ (http://notepad-plus-plus.org/) é um programa que oferece um

ambiente favorável à programação de várias linguagens diferentes, e foi utilizado para

auxiliar a construção de módulos de software rascunho do serviço.

O Paint.Net (http://www.getpaint.net/) é um programa de imagem gratuito utilizado

para a construção de imagens a anexar na interface do site Web.

Page 19: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

18

O Secure Shell Client (http://www.filewatcher.com/m/SSHSecureShellClient-

3.2.9.exe.5517312.0.0.html) foi o serviço usado para aceder ao servidor e testar o

crawler remotamente.

Page 20: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

19

Capítulo 3 – O Serviço ASAP

3.1 Conceito Inicial

O conceito inicial deste projecto é a criação de um serviço Web, que seja acedido

através de um site a desenvolver, que permita aos utilizadores registados a activação e

configuração de agentes Web inteligentes criados para pesquisar autonomamente

bibliografia relacionada com a biomedicina e bioinformática de acordo com os seus

interesses, e notificá-los periodicamente das suas pesquisas. Apesar do conceito inicial

estar bem definido, o conceito do desenvolvimento operacional deste serviço foi

mudando ao longo da sua construção, pois verificou-se uma necessidade de adaptação

às regras e factores que envolvem a Web e a sua estrutura.

A Fig. 3 representa o conceito da estrutura que foi idealizada no início do projecto.

Esta estrutura baseia-se bastante no potencial de processamento oculto nas páginas Web,

de modo a promover a interacção com o utilizador juntamente com a troca de

informação através da Internet. Para este objectivo, foi confiada a tarefa de manipulação

de agentes ao potencial de processamento do JavaScript, o que levou a um estudo

intenso desta linguagem.

Fig. 3 – Conceptualização inicial da estrutura do serviço ASAP.

No conceito primário desta abordagem, o site ASAP seria, juntamente com a base

de dados, a base do serviço. Armazenando as informações dos utilizadores e seus

agentes na base de dados e criando a interface através do site Web, é possível criar um

sistema estável para aplicar o mecanismo de pesquisa dos agentes.

Page 21: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

20

Para a manipulação de agentes, foi idealizada a construção de um conjunto de

módulos de software em JavaScript, que inseridos no código fonte das páginas do site

ASAP, trabalhariam em paralelo com o código fonte do site da PubMed, e por

processos de data mining obteriam os dados necessários para o utilizador.

Estes mecanismos de interacção entre o JavaScript e a PubMed seriam o principal

objecto de investigação deste projecto. Para o desenvolvimento destes mecanismos, a

investigação passou pela iniciação ao JavaScript através de tutoriais e módulos de

aprendizagem até ao seu domínio prático e estudo aprofundado das suas capacidades e

limitações. Nesse estudo foram descobertas algumas características determinantes para a

estrutura do serviço:

O JavaScript é uma ferramenta ideal para activar a interacção de páginas

Web com os utilizadores e com elementos de formulário, característica

bastante útil para o serviço.

Consegue controlar navegação multi-frame e outras aplicações, que

teoricamente levaria ao carregamento e processamento do código fonte

das páginas da PubMed.

O JavaScript não é capaz de extrair o texto contido numa página HTML

ou os seus ficheiros do servidor, o que impede, portanto, a extracção dos

resultados das pesquisas na PubMed, criando uma barreira ao

desenvolvimento desta abordagem [11].

A capacidade de expansão e utilidade do JavaScript está também

impedida pelas leis ou regras de privacidade e acesso a servidores, regras

que impediam também algum do desenvolvimento pretendido para o

nosso serviço.

Estas características foram fulcrais no conhecimento sobre esta linguagem aplicada

à construção do serviço ASAP. Os dois primeiros pontos descrevem as principais razões

pelas quais o JavaScript foi inicialmente escolhido para o mecanismo, enquanto que os

dois últimos representam a razão pela qual não foi possível progredir utilizando

unicamente esta linguagem, o que levou a mais investigação relacionada com a

reestruturação do mecanismo de pesquisa.

Após esta abordagem, foi decidido utilizar a linguagem JavaScript apenas para

enriquecimento do site ASAP, e começar uma nova conceptualização da ferramenta de

pesquisa baseada num crawler.

Page 22: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

21

3.2 Arquitectura dos Agentes

A estrutura dos agentes Web está baseada na criação de uma base de dados,

composta por duas tabelas e os seus respectivos campos. Os campos essenciais são o

nome desse utilizador, o nome do agente, as keywords correspondentes à sua pesquisa, a

data de validade dos agentes e um número identificativo de cada agente. Os detalhes

podem ser vistos mais à frente na secção 3.4.1.

Esta estrutura permite aos utilizadores guardarem cada um dos seus agentes, com as

keywords definidas, e determinarem uma data para que o agente seja desactivado. A

programação da base de dados é feita em MySQL, e as informações são inseridas nela

através de PHP inserido no site ASAP. Desta forma conseguimos proporcionar uma

simples e rápida criação de agentes aos utilizadores, deixando todo o processo de

pesquisa e gestão para segundo plano, independente ao utilizador.

O restante processo de pesquisa periódica é efectuado por um software baseado na

tipologia de crawlers. No entanto, a criação do software não estava planeada desde o

início deste projecto. A sua construção foi originada na extensa investigação das

dificuldades que se depararam ao longo do seu desenvolvimento, como podemos

verificar no subcapítulo 3.1.

3.3 O Crawler

A criação do crawler advém da pesquisa efectuada a linguagens de programação

alternativas que ultrapassassem as restrições observadas no Subcapítulo 3.1 para o

JavaScript. Foi verificado que para realizar as acções que eram pretendidas, era

necessária uma linguagem de programação menos especializada, que tivesse a

capacidade de abranger mais aplicações e de trabalhar bem em ambiente de servidor. As

possibilidades a escolher mostraram-se variadas, desde o C++, Perl, Python, Java e

possivelmente entre outras. Para o mecanismo deste crawler, foi escolhida a linguagem

Perl, devido à sua predisposição de interacção com a Web e as restantes características

referidas no Subcapítulo 2.4.

A conceptualização idealizada do crawler criado é representada na Fig. 4, contendo

o seu conceito básico de funcionamento.

Page 23: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

22

Fig. 4 – Representação do funcionamento do crawler.

O crawler, ao ser accionado periodicamente por um daemon ou programa de

activação periódica, extrai as keywords dos agentes definidos na base de dados, formula

a string da query, efectua a pesquisa na PubMed através da interface das eUtils e recebe

os resultados da pesquisa. Com esses resultados, envia um e-mail através do servidor

agentes para os utilizadores registados.

Para a interacção deste crawler com o servidor da NCBI, foram usadas as

ferramentas das eUtils, descritas no Subcapítulo 2.3. Estas ferramentas são ideais para a

criação de uma correlação entre o nosso serviço e o servidor na NCBI, e constituem um

factor determinante para o funcionamento deste projecto. Entre as sete ferramentas

disponíveis, foram usadas duas: O eSearch e o eFetch.

O eSearch permite obter uma série de identificativos (UID’s) de acordo com o

envio de uma query. O crawler foi programado então para compor a string da

query a partir das keywords armazenadas na base de dados, invocar o comando

eSearch e obter os identificativos, como podemos ver no Excerto 1:

my $utils = "http://www.ncbi.nlm.nih.gov/entrez/eutils";

my $db = "Pubmed";

my $query = join '',$keyword1,'+',$keyword2,'+',$keyword3;

my $esearch = "$utils/esearch.fcgi?" .

"db=$db&retmax=1&usehistory=y&term=";

Page 24: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

23

my $esearch_result = get($esearch . $query);

print "\nESEARCH RESULT: $esearch_result\n";

Excerto 1: Código correspondente ao uso da ferramenta eSearch.

Respectivamente ao código em Perl, foi criada uma variável com a string

denominada Utils com a URL das eUtils, seguindo-se a variável db, com a string

relativa à base de dados PubMed. A variável query efectua uma concatenação das

strings keyword1, keyword2 e keyword3 que correspondem às palavras-chave de um

dos agentes da base de dados. Seguidamente na variável esearch complementa-se a

string da ferramenta eSearch no URL, e com a variável esearch_result guarda-se a

variável de instrução de comando dessa mesma ferramenta, concatenando as palavras-

chave, e a instrução é activada na última linha.

Após este passo, foi convocado o eFetch, que dados os identificativos, retribui as

informações correspondentes, como o título, o PMID (número de identificação do artigo

na PubMed) e o resumo da publicação. Na presença destes dados, o crawler envia-os

para cada utilizador correspondente, obtendo o endereço de e-mail da base de dados.

Também cada um destes comandos contém parâmetros específicos relativos às suas

especificações. Segue-se a programação relativa ao eFetch presente no Excerto 2.

my $retstart;

my $retmax=6;

for($retstart = 0; $retstart < 6; $retstart += $retmax) {

my $efetch = "$utils/efetch.fcgi?" .

"rettype=$report&retmode=text&retstart=$retstart&retmax=$retmax&" .

"mindate=$mindate&db=$db&query_key=$QueryKey&WebEnv=$WebEnv";

my $efetch_result = get($efetch);

if ($efetch_result == '') { $efetch_result='A pesquisa não devolveu

qualquer resultado para as palavras-chave indicadas.'; }

Excerto 2: Código correspondente à utilização da ferramenta eFetch.

A primeira e segunda variáveis são definidas para a criação de um ciclo na terceira

linha de código. A variável efetch contém uma string com a parte do URL relativa à

ferramenta eFetch, contendo os parâmetros acima definidos, incluindo a mindate,

relativa à data mínima de publicação dos artigos. A variável efetch_result guarda o

comando de chamada do eFetch, usada depois no envio do e-mail. A última linha do

Page 25: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

24

Excerto 2 refere-se à possibilidade de a pesquisa não obter resultados na PubMed,

respondendo assim com uma frase descritiva desta situação.

3.4 Aplicação do Crawler

Para aplicação no nosso constituinte principal de investigação, o crawler do serviço

ASAP, é necessário elaborar toda a interface e suporte do serviço Web, nomeadamente

as páginas Web, a base de dados e as suas ligações. Para isso, foi aproveitada a estrutura

da primeira abordagem do projecto descrita no Subcapítulo 3.1, substituindo apenas o

processo de pesquisa em JavaScript pelo crawler criado.

3.4.1 Base de Dados

A Base de Dados do serviço ASAP é a base de armazenamento de dados constituída

por duas tabelas, agentes e users. A primeira contém o número identificativo do agente,

o nome do agente, o nome do utilizador que criou o agente, três palavras-chave, a data

mínima de publicação dos artigos e a data de validade do agente. A segunda contém os

números identificativos dos utilizadores, os nomes de utilizadores, palavras passe e

correios electrónicos. A ligação entre estas é o nome de utilizador (login), que

estabelecem os campos-chave, ligando o utilizador aos seus agentes. É a chave primária

das tabelas, pois não se repete permitindo assim a criação de vários agentes para o

mesmo utilizador, como podemos ver na Fig. 5.

Fig. 5 – Modelo ER (Entidade-relacionamento) da base de dados.

Esta base de dados foi construída na linguagem MySQL, que para além de ser das

mais utilizadas e acessíveis, permite uma ligação facilitada com o nosso crawler. Esta

ligação é feita graças a um módulo de software denominado DBD::mysql que é uma

Page 26: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

25

“package” de instalação disponível em Perl, a qual serve de interface entre a linguagem

Perl e o MySQL, e juntamente com a DBI, uma “package” de ligação semelhante mas

menos específica, disponibilizam uma série de comandos que comunicam com a base de

dados através do crawler.

3.4.2 O Site Web ASAP

Para a aplicação do crawler desenvolvido, é imprescindível a criação de um local na

Web que sirva de plataforma à depuração do crawler e onde os investigadores possam

tirar partido da ferramenta criada. É necessária então a construção de um site Web, onde

o serviço possa ser disponibilizado à comunidade científica, e eventualmente onde se

possam desenvolver novas funcionalidades ao serviço, por meio do constante

melhoramento e actualização.

Fig. 6 – Protótipo da página inicial do serviço ASAP.

O Website ASAP foi construído na linha da simplicidade e eficiência, pretende

oferecer aos seus utilizadores um serviço de pesquisa com a simplicidade mais próxima

possível de um motor de busca. Obviamente, este serviço trabalha com um maior

conjunto de variáveis de personalização, portanto foi construído com base num sistema

Page 27: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

26

de registo, uma forma de manter as pesquisas privadas e oferecer um espaço de

investigação apelativo ao utilizador. Desta forma foi criado um site Web com especial

foco na rapidez, eficiência, simplicidade e elegância com ênfase no utilizador e a sua

segurança, conforme uma série de premissas definidas [13].

Os rascunhos básicos da interface e funcionalidade do site foram inicialmente

desenvolvidos numa aproximação de programador construindo linha a linha o código

num software como o Notepad++. Mas cedo foi denotada, devido à dimensão da

interface, a necessidade de um software mais acessível na construção das páginas e que

fizesse a abordagem da sua construção também pela parte do seu design. O software

Dreamweaver mostrou-se uma ferramenta profissional mais adequada a esta tarefa, já

que é uma ferramenta bastante completa e que torna o processo de criação fácil e rápido.

3.4.3 As Ligações Site / Base de Dados

O PHP é uma linguagem direccionada para a Web, e foi utilizada neste projecto

para estabelecer a ligação do site Web com a base de dados. O site contém vários tipos

de formulários a serem preenchidos pelo utilizador, e estes vão servir para que o PHP

adicione ou modifique as informações aí submetidas na base de dados. Também é a

linguagem utilizada para manter o utilizador na sessão que iniciou e mantém as

informações em segurança.

No site Web existem três formulários essenciais à obtenção de informação essencial

do utilizador. O primeiro é, obviamente, o formulário de registo (ver Fig. 7), que

preenche a tabela utilizadores da base de dados com o nome, palavra passe e e-mail do

utilizador.

Fig. 7 – Formulário de registo (protótipo).

Page 28: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

27

O segundo não preenche a base de dados pois é o formulário de identificação ou

login, apresentado na Fig. 8. Este deve ser preenchido cada vez que o utilizador deseja

iniciar sessão, confirmando o seu nome e palavra-passe.

Fig. 8 – Formulário de login (protótipo).

O terceiro formulário corresponde à criação de agentes de pesquisa, onde são

pedidas as informações necessárias a preencher a tabela agentes da base de dados (ver

Fig. 9).

Fig. 9 – Formulário de criação de agente (protótipo).

Com o preenchimento destes campos é possível manipular toda a informação

necessária ao utilizador, sendo quaisquer opções posteriormente adicionadas livres de

preenchimento obrigatório.

3.5 ASAP – Pesquisa Autónoma com Agentes na PubMed

Organizando toda a estrutura algorítmica do agente podemos caracterizar o seu

funcionamento pela Fig. 10.

Page 29: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

28

Fig. 10 – Diagrama do funcionamento geral do crawler e serviço ASAP.

Pode-se aqui observar a esquemática geral do mecanismo de pesquisa em que o

serviço está baseado, e pode ser dividido numa sequência de quatro passos.

No primeiro passo, após o período definido, o crawler é activado por um programa

(daemon) anexo, começando assim o ciclo de pesquisa. O crawler vai então à base de

dados e estabelece uma ligação, recolhendo os dados necessários para a sua pesquisa,

constituindo o segundo passo. No terceiro passo, o crawler utiliza as eUtils e os

algoritmos de pesquisa para obter os resultados da pesquisa para cada um dos agentes

da base de dados, e no quarto passo, os resultados são publicados através de o envio de

um e-mail ao utilizador.

Para denominar este serviço foi escolhido, numa abordagem tanto “comercial”

como profissional, o título (ASAP – Automate Search with Agents in PubMed),

descrevendo o objectivo principal do serviço numa sigla já conhecida.

3.6 Resultados

Este projecto resultou não só no desenvolvimento de agentes de pesquisa na Web,

mas também na criação de um serviço suportado por um site Web, disponibilizando a

investigação efectuada no âmbito deste trabalho de forma aberta à comunidade. O

Page 30: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

29

desenvolvimento de todos os componentes de forma cuidada e permanente permitiu a

estabilidade e abrangência de um serviço presente e funcional.

A fase de testes e depuração permitiu a correcção e melhoramento de vários

aspectos do crawler e do serviço em geral. O seu aperfeiçoamento foi composto por

uma série de tentativas de pesquisa e análise de diferentes resultados, resultando

também em novas ideias e aplicações no serviço.

Em termos de desempenho, o serviço mostrou-se eficaz e rápido, elaborando a

pesquisa e envio de resultados de cada agente em poucos segundos. Estes resultados são

compostos pelo resumo, PMID, número e URL dos artigos encontrados na pesquisa.

É de verificar que, como qualquer serviço Web, o melhoramento e actualização

constante do mesmo é essencial para o seu sucesso e expansão, o que dará origem

também na obtenção de novos desafios e resultados.

Page 31: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

30

Capítulo 4 – Conclusões

4.1 Conclusão

Todo o trabalho efectuado no âmbito deste projecto culminou na criação do site

Web ASAP, um serviço ao dispor da comunidade do IPB e já em completo

funcionamento. A sua instalação efectuada num servidor dentro do Instituto Politécnico

de Bragança permite a sua exclusividade, funcionando internamente e disponível apenas

aos portadores de um webmail IPB. Este pode ser acedido em http://esa.ipb.pt/~agentes.

É uma ferramenta disponível a toda a comunidade do IPB, mas principalmente

dedicada aos investigadores, estudantes e professores a trabalhar nas áreas de

biomedicina e bioinformática. O propósito deste serviço é acelerar o trabalho de

investigação destas áreas, auxiliando também a componente da inovação do trabalho

dos investigadores e incentivando a actualização de informação necessária a áreas de

rápido desenvolvimento como estas.

O seu desenvolvimento proporcionou barreiras e novos desafios que resultaram em

duas abordagens diferentes ao problema, o que levou a uma melhor investigação e

conhecimento na área da manipulação de informação. A primeira abordagem envolveu

um profundo conhecimento do JavaScript e funcionalidades, enquanto que a segunda

expandiu os horizontes da aplicação desenvolvida, permitindo o desenvolvimento de um

crawler e revelando todas as possibilidades a ele associado. Este foi o maior marco no

decorrer deste projecto, solucionando um problema que se aparentava intransponível à

primeira vista.

A nível pessoal e profissional, este projecto permitiu a aprendizagem, em todo o

conjunto, de seis linguagens de programação, seis ferramentas de software, criação de

bases de dados, sites Web e crawlers, uma série de conhecimentos relacionados com a

informática e a concretização de um objectivo.

Em relação aos resultados do trabalho, conclui-se que esta foi uma etapa de

enriquecimento e de trabalho positivo, pois os objectivos foram concluídos e originaram

um variado e extenso seguimento de trabalho.

Page 32: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

31

4.2 Trabalho Futuro

Existe uma infinidade de trabalho suplementar que este serviço pode suportar pois,

sendo um protótipo, a ferramenta criada está apenas a mostrar o seu mínimo potencial

como serviço Web. Esse potencial está prestes a crescer com a possível continuação da

sua expansão e funcionalidade, com o objectivo de tornar o ASAP uma ferramenta

abrangente, útil e mais eficiente.

Entre os complementos e alterações a efectuar neste serviço, verificam-se as

seguintes:

Extensão do serviço às redes sociais (Facebook, Twitter, etc.), criando um

complemento que permita aos utilizadores fazerem pesquisas remotamente;

Melhoramento da interface do site, já que o design é um aspecto importante

na apelatividade ao utilizador, a tentativa de actualizações periódicas ao

aspecto do site Web é imperativo, mantendo ainda assim a sua simplicidade;

Diversificação do método de envio dos resultados das pesquisas, pondo em

hipótese o envio destas por notificação nas redes sociais, publicações,

mensagens de texto e outros;

Melhoramento do método de actualização de resultados, criando um módulo

anexo de software que notifique o utilizador apenas quando a sua pesquisa

está a resultar em novos artigos acabados de ser publicados;

Expansão do serviço a mais repositórios de investigação científica,

aumentando assim a diversidade de resultados;

Aumento das definições de pesquisa ao utilizador, como o número de

resultados a ser enviados, a periodicidade das pesquisas, o método de

recepção de resultados, a definição do âmbito da pesquisa (autor, título,

resumo…) e outros. Tudo isto sem comprometer a dinâmica do serviço, ou

seja, disponibilizar estas opções mas apenas se o utilizador as requerer,

colocando-as numa página de definições de pesquisa à parte;

Criação de um sistema de classificação onde os utilizadores possam dar a

sua opinião sobre os resultados ou artigos visualizados, com um “rating” de

qualidade de uma a cinco estrelas;

Disponibilização de outros idiomas no site Web, permitindo o mais fácil

acesso a utilizadores estrangeiros;

Page 33: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

32

Possibilidades de expansão do serviço a utilizadores externos ao Instituto,

para que mais investigadores possam usufruir deste serviço;

Aplicação de técnicas de data mining num processamento posterior à

obtenção de resultados e anterior ao seu envio.

Page 34: Desenvolvimento e aplicação de agentes Web inteligentes para pesquisa de ...esa.ipb.pt/~agentes/projectoasap.pdf · 2018. 3. 16. · Ano Lectivo 2010/2011 Desenvolvimento e aplicação

33

Referências Bibliográficas

[1] K. D. Bollacker, S. Lawrence, e C. L. Giles, “CiteSeer: An Autonomous Web

Agent for Automatic Retrieval and Identification of Interesting Publications”.

[2] I. H. Witten e E. Frank, Data Mining : Pratical Machine Learning Tools and

Techniques, 2o ed. Morgan Kaufmann Publishers, Inc., 2005.

[3] A. Haydon e M. Najork, “Mercator: A scalable, extensible Web crawler”.

[4] S. Franklin e A. Graesser, “Is It an agent, or just a program?: A taxonomy for

autonomous agents”, in Intelligent Agents III Agent Theories, Architectures, and

Languages, vol. 1193, J. P. Müller, M. J. Wooldridge, e N. R. Jennings, Orgs.

Berlin/Heidelberg: Springer-Verlag, 1997, p. 21-35.

[5] V. Shkapenyuk e T. Suel, “Design and Implementation of a High-

PerformanceDistributed Web Crawler”.

[6] E. Sayers e D. Wheeler, “Building Customized Data Pipelines Using the Entrez

Programming Utilities (eUtils) - NCBI Short Courses - NCBI Bookshelf”. [Online].

Available: http://www.ncbi.nlm.nih.gov/books/NBK1058/. [Accessed: 23-jun-2011].

[7] M. Palakal, S. Mukhopadhyay, J. Mostafa, R. Raje, M. N’Cho, e S. Mishra, “An

intelligent biological information management system”, Bioinformatics, vol. 18, no. 10,

p. 1283-1288, out. 2002.

[8] L. J. Aguilar, Fundamentos de programação, 3o ed. McGraw-Hill.

[9] L. Wall e R. L. Schwartz, Programming Perl. Tim O’Reilly, 1991.

[10] T. Evans, t l : si les e r i . São Paulo: Makron, 199 .

[11] D. Goodman e B. Eich, Javascript Bible, 3o ed. IDG Books Worldwide.

[12] T. Converse, J. Park, e C. Morgan, PHP5 and MySQL Bible. Wiley Publishing

Inc.

[13] D. Gehrke e E. Turban, “Determinants of successful Website design: relative

importance and recommendations for effectiveness”, in Proceedings of the 32nd Annual

Hawaii International Conference on Systems Sciences. 1999. HICSS-32. Abstracts and

CD-ROM of Full Papers, Maui, HI, USA, p. 8.