Serviço Federado de Busca de Objetos de Aprendizagem

Transcrição

Serviço Federado de Busca de Objetos de Aprendizagem
Serviço Federado de Busca de Objetos de Aprendizagem
Baseado em Agentes
Carla Fillmann Barcelosa, João Carlos Gluzb, Rosa Maria Vicaric
a,b
Programa Interdisciplinar de Pós Graduação Em Computação Aplicada (PIPCA) –
Universidade do Vale do Rio dos Sinos (UNISINOS) – Caixa Postal 275 – 93.022-000 –
São Leopoldo – RS – Brasil
c
Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS)
Caixa Postal 15.064 – 91.501-970 – Porto Alegre – RS – Brasil
Abstract. The operation and implementation aspects of software that compose a Distributed System Search of Learning
Objects will be the topic approached in this paper. The system is composed by three software agents Librarian, Finder
and Inter-Librarian, responsible for providing the access to educational content. It will be presented the architecture of the
proposed system, by approaching the technologies and tools used in the system’s implement and the functioning of the
entire system. Throughout this article, it will be shown, also, the results obtained until the current time of system
development and the expected results that must be obtained by implementing the next stages of work.
Keywords: Research Service, Learning Objects, Software Agents.
PACS: 01.50.H; 07.05.Mh
1. INTRODUÇÃO
O Ministério da Educação disponibiliza conteúdos pedagógicos de forma digital com acesso gratuito
através do programa RIVED - Rede Interativa Virtual de Educação [15]. Esse programa é destinado ao
desenvolvimento e à disponibilização de materiais educacionais eletrônicos por meio de Objetos de Aprendizagem
(OA), que consistem em atividades educacionais com recursos multimídia, animações e simulações. Entretanto,
existem problemas na localização desses conteúdos durante a realização de uma busca por materiais em um
repositório. Para que os OAs, disponibilizados pelo RIVED, sejam acessados e recuperados, é preciso indexá-los de
forma correta. O processo de indexação corresponde ao preenchimento dos Metadados de um OA. Esses Metadados
representam as informações que descrevem as características do próprio documento que os possui, a fim de que
sejam entendidas e utilizadas por outras pessoas ou agentes de software [17].
A indexação representa um dos maiores desafios na obtenção de OAs, pois é a partir desse processo que se
tornam capazes de ser encontrados por meio dos mecanismos de busca. A indexação incorreta dos OAs acarreta a
ineficácia dos processos de busca a partir de seus repositórios. Com o aumento da produção de OAs, no Brasil e no
mundo, por diversas instituições, percebeu-se que esse conteúdo somente teria utilidade se houvesse um modo
unificado e eficiente de recuperar esse material. Caso contrário, seu uso fica restrito à instituição que o criou.
Atualmente não existe uma infraestrutura global que dê apoio à pesquisa e recuperação de conteúdos de
aprendizagem [3].
Visando sanar a deficiência existente na busca e recuperação de recursos educacionais, este trabalho propõe
o desenvolvimento de um Sistema Federado de Busca de Objetos de Aprendizagem, via web, cujo objetivo geral é
criar uma infraestrutura de federação de catálogos de OAs, baseada em agentes de software, para auxiliar a busca e
obtenção de recursos educativos. Com o desenvolvimento desse sistema de busca, propõe-se otimizar a obtenção de
OAs com o uso de Sistemas Multiagentes (SMA), que constituem uma subárea da Inteligência Artificial Distribuída
[18; 19]. O Sistema de Busca utilizará o serviço de diretórios LDAP a fim de obter os Metadados de OAs existentes
em repositórios que oferecem suporte a esta tecnologia. O LDAP (Lightweight Directory Access Protocol) é um
protocolo para atualização e pesquisa de diretórios, que opera sobre TCP/IP. Também, para a obtenção de
Metadados, será utilizado o protocolo OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting), que
consiste em um meio de prover interoperabilidade entre repositórios digitais.
O Sistema de Busca proposto é formado por três agentes de software, Librarian, Finder e Inter-Librarian. O
agente Finder provê o serviço de busca de OAs, permitindo ao usuário acessar conteúdos educacionais existentes em
diferentes repositórios. Por meio de uma interface web, o agente Finder possibilita a recuperação de objetos que
tenham sido cadastrados pelo agente Librarian. O agente Finder, por sua vez, além da interface web, também possui
uma interface FIPA-ACL [7] atendendo a mensagens de consulta Query cujo conteúdo é formado por expressões
lógicas em FIPA-SL [5] a respeito dos OAs. A função principal do agente Librarian é manter um registro local de
Metadados de diversos OAs por meio da aquisição de informações diretamente dos repositórios de conteúdos
educativos. Esses Metadados, armazenados pelo agente Librarian, são responsáveis por permitir a localização e
recuperação dos OAs. O agente Inter-Librarian auxilia o agente Librarian na obtenção dos Metadados, pois é
responsável por proporcionar a interoperação com o serviço de diretório LDAP, estendendo assim as
funcionalidades do sistema para abranger um número maior de repositórios.
Este trabalho tem por finalidade descrever o funcionamento do Serviço de Busca de OAs, apresentando a
arquitetura do sistema e os resultados obtidos até o atual momento de implementação. Primeiramente, será realizada
a etapa de revisão bibliográfica, abordando os tópicos relacionados ao tema proposto, incluindo os padrões de
metadados adotados nesta implementação, IEEE LOM (Learning Object Metadata) [9], Dublin Core [12] e OBAA
[20]. Nas seções seguintes, será abordado o desenvolvimento do serviço de busca utilizando-se a linguagem Java,
para o desenvolvimento dos agentes e a linguagem JSP, para o desenvolvimento do site que proporcionará o acesso
dos usuários ao sistema. Será descrito, também, a utilização da plataforma JADE [1,11], utilizada na implementação
dos agentes, que consiste em um ambiente para desenvolvimento de aplicações baseadas em agentes conforme as
especificações da FIPA. Com base no modelo iterativo de desenvolvimento de software adotado nesta
implementação, será mostrada a evolução dos softwares e os testes funcionais realizados, conforme se obtiveram
partes estáveis dos softwares durante o progresso de sua implementação, a fim de avaliar o seu desempenho.
2. METADADOS
Entende-se por metadados as informações estruturadas que representam registros, cuja finalidade é
descrever as características de uma entidade digital, tornando-a localizável, utilizável ou gerenciável. São
informações que podem ser reconhecidas e interpretadas por máquinas. Neste projeto, serão abordados três padrões
para metadados: Dublin Core, IEEE LOM e OBAA. Além dos padrões citados anteriormente, existe outras
iniciativas de padronização sobre conteúdos educacionais, como o SCORM (Shareable Content Object Reference
Model) [16], que especifica como pode ser feita a agregação e navegação de conteúdos de objetos de aprendizagem,
e o IMS (Instructional Management Systems) [10] que especifica as propriedades de sistemas educacionais. Porém,
ambas as iniciativas utilizam o padrão IEEE LOM para definir o formato dos Metadados de seus objetos.
O padrão de Metadados Dublin Core possui 15 elementos para serem utilizados na descrição de um recurso
eletrônico e divide-se em duas classes de termos: elementos (nomes) e qualificadores (adjetivos) [12]. Um exemplo
de elemento englobado por esse padrão é o Title, que consiste no título do recurso. Os demais elementos são os
seguintes: Creator, Subject, Description, Publisher, Contributor, Date, Type, Format, Identifier, Source, Language,
Relation, Coverage e Rights. Os qualificadores servem para tornar mais claro e objetivo o significado de um
determinado elemento que compõe o padrão Dublin Core. Por exemplo, um qualificador para o elemento
Contributor, poderia ser “Orientador”.
O IEEE LOM, Learning Object Metadata, é um padrão de Metadados especificado pelo IEEE Learning
Technology Standards Comitee, com o intuito de especificar um conjunto mínimo de atributos necessários para a
correta descrição de um recurso eletrônico. Os Metadados usados para descrever o objeto de aprendizagem podem
incluir informações pedagógicas, como forma de ensino, nível de escolaridade e pré-requisitos, além de informações
a respeito do tipo de objeto, autor, proprietário e formato. Este padrão compreende um conjunto de pouco mais de 70
elementos divididos em 9 grupos distintos de metadados: general, lifecycle, Meta-metadata, technical, educational,
rights, relation, annotation e classification.
Por fim, o padrão OBAA, que consiste em uma proposta de Padrão para Metadados de Objetos de
Aprendizagem Multiplataforma, é composto por 11 grupos distintos de Metadados. Os grupos são os seguintes:
general, lifecycle, Meta-metadata, technical, educational, rights, relation, annotation e classification, acessibility e
SegmentInformationTable, mostrados na imagem abaixo.
FIGURE 1. Grupos que formam o padrão de Metadados OBAA.
3. AGENTES E SISTEMAS MULTIAGENTES
Os agentes são entidades computacionais que possuem comportamento autônomo, encontram-se inseridas
em um ambiente e podem se comunicar com outros agentes. Os agentes de software são caracterizados por, entre
outros aspectos, autonomia, proatividade e capacidade de se comunicar. Sendo autônomos, podem realizar tarefas
complexas independentemente. Sendo proativos, podem tomar a iniciativa de realizar uma determinada tarefa,
mesmo sem um estímulo explícito a partir de um usuário. Sendo comunicativos, podem interagir com outras
entidades para ajudar em sua própria tarefa e em outros objetivos. Segundo a definição de Wooldridge [19] um
agente é um sistema computacional, situado em um determinado ambiente, que é capaz de executar ações de forma
autônoma, a fim de satisfazer seus objetivos. A característica fundamental dos agentes em um SMA é a capacidade
que os agentes possuem de se comunicar. É por meio da comunicação com outros agentes que um determinado
agente busca alcançar seus objetivos.
A principal forma de comunicação entre agentes é através de uma Linguagem de Comunicação entre
Agentes (Agent Communication Language - ACL) [13; 2]. A principal linguagem de comunicação utilizada
atualmente é a linguagem FIPA-ACL, especificada pela FIPA (Foundation for Intelligent Physical Agents –
www.fipa.org). A FIPA é uma organização internacional sem fins lucrativos destinada ao desenvolvimento de
padrões de software voltados à utilização em sistemas baseados em agentes. Mais recentemente, a FIPA se tornou
um grupo de trabalho do IEEE, mantendo o mesmo objetivo de desenvolvimento de padrões de comunicação para
agentes. O conjunto de todas as especificações da FIPA é dividido em cinco categorias distintas: Comunicação entre
Agentes, Transporte de Mensagens entre Agentes, Gerenciamento de SMA, Arquiteturas Abstratas e Aplicações.
Dentre as categorias citadas, a Comunicação entre Agentes, que define a linguagem FIPA-ACL, constitui a
especificação principal do modelo de SMA da FIPA [2]. A especificação de Gerenciamento de SMA estabelece um
modelo de referência para a criação, registro, localização, comunicação, migração e extinção de agentes.
A plataforma JADE consiste basicamente em um ambiente de desenvolvimento de SMA baseado nos
padrões da FIPA que simplifica o desenvolvimento desses sistemas, pois trata da comunicação e do ciclo de vida dos
agentes, além de auxiliar no monitoramento da execução [11]. A JADE contribuiu para a difusão das especificações
da FIPA, pois fornece um conjunto de abstrações de software e ferramentas que proporcionam aos programadores a
capacidade de aplicar as especificações da FIPA, sem um conhecimento técnico profundo destas. A plataforma
JADE oferece o seguinte conjunto de ferramentas gráficas para apoiar os programadores na depuração e no
monitoramento dos agentes: RMA (Remote Management Agent), Agente Dummy, Agente Sniffer, Agente
Introspector, Agente DF (Directory Facility) e Agente LogManager.
O modelo de Gerenciamento de Sistemas Multiagentes da FIPA é implementado por dois agentes da
plataforma JADE: agente AMS (Agent Management System), responsável por supervisionar a plataforma e o agente
DF, responsável pelo serviço de diretórios. O agente DF executa o serviço de busca que deve ser usado por qualquer
agente que pretenda registrar seus serviços ou buscar por outros agentes existentes no sistema. Este agente também
aceita inscrições de agentes que desejarem ser notificados sempre que um registro de serviço ou modificação for
realizada. Múltiplos agentes do tipo DF podem ser iniciados concomitantemente, a fim de distribuir o serviço de
páginas amarelas em vários domínios. Se necessário, agentes DFs situados em distintas plataformas JADE podem
ser integrados em uma federação (“federados”) por meio da criação de registros cruzados uns com os outros,
permitindo a propagação do pedido do agente em toda a federação de agentes DF.
4. ARQUITETURA DO SERVIÇO FEDERADO DE BUSCA
O serviço de busca proposto é parte de uma infraestrutura de agentes, mais geral, denominada MILOS
(sigla em inglês para Multiagent Infrastructure for Learning Object Support) que está sendo projetada por nosso
grupo de pesquisa para prover diversos tipos de serviços de suporte de OAs, como busca semântica, apoio a autoria
de conteúdos e Metadados, gerenciamento de conteúdos digitais, além de adaptação e conversão de conteúdos para
distintos tipos de plataformas. A contribuição desse serviço para a infraestrutura MILOS é formada pelos agentes
Librarian e Inter-Librarian, responsáveis por obter, cadastrar e registrar OAs, e pelo agente Finder, cuja função será
realizar uma busca por um determinado objeto, para isso fornecendo uma interface web ao usuário. As informações
sobre os OAs podem ser armazenadas localmente e utilizadas sempre que necessário, mantendo um cadastro
atualizado dos Metadados de diferentes repositórios. Dessa forma, o agente Librarian tem por função básica buscar
em repositórios digitais pelos Metadados de OAs e disponibilizá-los ao agente Finder, isso permitirá a realização de
buscas por esses OAs por meio de um navegador de internet.
Esse tipo de solução oferece várias vantagens técnicas, porque faz uso de um serviço padronizado da FIPA
que suporta integralmente a noção de federação de diretórios. Pois, por meio da plataforma JADE/FIPA é possível
realizar federações entre os agentes de Plataformas distintas visando distribuir a busca por OAs em diferentes
repositórios a fim de otimizar esta busca do lado servidor da aplicação. Este serviço é utilizado da seguinte forma, os
Metadados dos OAs obtidos em repositórios, são cadastrados na Plataforma FIPA como sendo serviços dos agentes
que pertencem a uma determinada Plataforma, sendo assim, podem ser disponibilizados para os demais agentes da
federação. Para implementar a solução de federação entre Plataformas de agentes por meio do serviço DF da FIPA,
foi necessário, primeiramente, resolver o problema do serviço DF, de não permitir cadastrar e pesquisar OAs
diretamente, mas apenas agentes e seus serviços associados. De acordo com a definição assumida pelo IEEE LOM,
que também é seguida por este trabalho, um OA não é, necessariamente, um agente ou um serviço, mas uma
entidade digital (ou até não digital) que pode ser usada para fins educacionais. Assim, foi necessário buscar uma
interpretação tecnicamente viável de como mapear OAs nos elementos que podem ser cadastrados e pesquisados no
DF da FIPA.
Interpretar um OA como um agente, apesar de possível, é uma solução tecnicamente complexa para o
problema em vista, porque implica a definição e a implementação da funcionalidade de agente para o OA. Sendo
assim, neste trabalho se está assumindo que um OA poderia ser interpretado, pelo menos para fins de registro no DF,
como um serviço disponibilizado por um dado agente, se forem seguidas as seguintes diretrizes: 1) o tipo do serviço
pode ser usado para indicar que se trata de um OA; 2) o nome do serviço fornece um identificador único para o OA;
3) as demais informações sobre o serviço (ontologias, linguagens de conteúdo, protocolos de acesso, identificação
do “dono” do serviço e lista de propriedades específicas do serviço) detalham informações adicionais sobre o OA.
Para fins de catalogação, os OAs podem ser considerados apenas sob a perspectiva das informações que
descrevem suas propriedades, ou seja, apenas na medida em que se necessita catalogar os Metadados que definem
um determinado OA. É esse conjunto de registros de Metadados que é armazenado no serviço de diretórios da FIPA
e que poderá ser localizado por meio da operação de busca desse serviço. Um dado OA será representado como um
‘serviço’ de um agente. O tipo de serviço será fixo, sendo identificado pelo rótulo lo-md-index, indicando que aquilo
que está sendo disponibilizado pelo serviço é, na verdade, o índice de um OA, composto pelos registros de
Metadados que permitem indexar o OA no diretório da FIPA e também localizar esse OA a partir das informações
armazenadas nos Metadados, em repositórios de OAs externos à plataforma FIPA. O nome do serviço corresponde a
um identificador único para o OA dentro do agente associado ao serviço.
A fim de tratar dos diversos padrões para Metadados, foram definidas distintas ontologias OWL (Web
Ontology Language) para caracterizar a estrutura e significado dos Metadados em cada padrão. Para tanto, foram
definidas as ontologias OWL correspondentes aos padrões IEEE-LOM e Dublin Core identificadas,
respectivamente, por lom-md-ontology e dc-md-ontology. A ontologia associada a um dado OA fornece a base para
a operação de busca, definindo as propriedades que podem ser usadas para procurar os OAs no serviço de diretórios
da FIPA. A relação básica entre uma ontologia de Metadados MILOS e a ontologia de gerenciamento da FIPA é
feita através do conjunto de propriedades (properties) que pode ser associado a cada serviço. Cada uma das
propriedades desse conjunto é formada por um par (nome, valor). Os Metadados definidos nas ontologias de
Metadados MILOS são, então, mapeados em propriedades distintas do serviço a ser cadastrado no DF. A Figura 2 a
seguir mostra as principais características da arquitetura MILOS.
Ontologias OWL de
lom -md -ontology
Metadados de OAs
Servi ço MILOS de
Cat álogo de OAs
dc-md -ontology
JENA Framework
Agentes que
usam MILOS
Milos
...
Librarian
Milos
Finder
Agent
Milos
Inter -Librarian
Agent
Agent
Middleware FIPA/JADE
Diret ório
Local
DF Agent
AMS Agent
Demais
Agentes
...
Plataforma FIPA/JADE
FIGURE 2. Arquitetura MILOS
5. AGENTES DO SERVIÇO DE BUSCA
O agente Librarian tem por função gerenciar e cadastrar os índices dos OAs que estarão sob sua
responsabilidade. Esse agente manterá um catálogo de diversos OAs localizados em diferentes repositórios, por
meio do registro de serviços através de sua interface gráfica e, também, pela obtenção dos índices diretamente dos
repositórios. A cada novo OA adicionado, ou atualização de algum existente, o agente Librarian atualizará a lista,
composta pelos índices dos OAs, no Agente DF da Plataforma. Os índices cadastrados são formados pelos registros
dos Metadados de cada OA, que pode ser do tipo IEEE LOM, Dublin Core ou OBAA. Tendo em vista que um OA
será representado como um serviço de um agente, seu tipo será fixo, identificado por lo-md-index, que indica que o
serviço ofertado disponibiliza o índice de um OA. Esse agente possui uma interface direta com o usuário para
adquirir os Metadados e demais informações referentes aos OAs que serão cadastrados na plataforma. Os Metadados
dos objetos cadastrados são armazenados em disco e carregados sempre que a interface do agente Librarian é
executada. Por meio dessa interface, é possível ao usuário cadastrar, editar e excluir Metadados de OAs. A Figura 3,
a seguir, mostra as principais interfaces deste agente, incluindo a interface com o usuário.
Milos
Milos
Milos
Finder
Librarian
Inter -Librarian
Agent
Reposit ório
de OAs
OAI -PMH
Agent
Agent
Reposit ório
de OAs
OAI -PMH
Middleware
Interface
Web/JSP
Diret ório
Local
Biblioteca
Digital
FIPA/JADE
Z39.50
DF Agent
Cadastro
manual
FIGURE 3. Interfaces do Agente Librarian
Outro meio para obtenção dos índices dos OAs consiste na interação direta com diferentes repositórios a
fim de obter os Metadados referentes aos OAs armazenados. Para implementar essa interação entre repositórios, é
utilizado o protocolo OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting), próprio para
consultas de Metadados, que não possui nenhuma relação com a plataforma FIPA.
Realizando uma busca periódica nos repositórios, o agente Librarian mantém uma lista contendo
informações (Metadados) sobre os OAs encontrados nos repositórios (juntamente com os objetos previamente
cadastrados por usuários). Essa lista é registrada no agente DF de uma Plataforma FIPA, sendo atualizada sempre
que forem detectados novos objetos, seja pela interface do agente Librarian ou pela criação de um novo objeto em
algum repositório. Também se pretende adicionar no agente Librarian a funcionalidade de acesso a outros tipos de
catálogos de conteúdos digitais, como por exemplo, os catálogos de bibliotecas que pode ser acessados através do
protocolo ANSI/NISO Z39.50. O agente Finder tem como função implementar o mecanismo de busca por um
determinado objeto a partir das informações contidas em seus Metadados. Esta busca pode ser feita, tanto pelo
usuário final, através de uma interface gráfica, quanto por outros agentes, por meio de mensagens FIPA-ACL query
(Figura 4).
Milos
Milos
Milos
Librarian
Inter-Librarian
Agent
Agent
FIPA-Query
Protocol
Outros
Agentes
Finder
Agent
Interface
Web/JSP
MiddlewareFIPA/JADE
Diretório
Local
...
DF Agent
FIGURE 4. Interface do Agente Finder
Consulta
manual
O mecanismo de busca implementado pelo Finder permite que os objetos sejam encontrados por
expressões lógicas cujos predicados básicos são definidos pela comparação de valores dos Metadados dos objetos.
Estas expressões permitem a conjunção (E), disjunção (OU) e negação (NÃO) dos predicados básicos. Este
mecanismo é implementado sobre o serviço de diretórios da FIPA. Assim, após localizar através de pesquisas no DF
uma lista inicial de objetos que poderia atender os requisitos básicos da consulta, é feito uma filtragem com base nas
comparações e operações da expressão do OA desejado. Uma versão user-friendly deste mecanismo é
disponibilizada pela interface gráfica do agente. Por meio de sua interface, além de uma busca básica, um usuário
pode realizar uma busca refinada, especificando alguma propriedade do objeto buscado. As características completas
dos mecanismos de busca podem ser empregadas através de mensagens FIPA-ACL Query, cujo conteúdo é formado
por fórmulas lógicas em uma versão simplificada da linguagem de conteúdos FIPA-SL [5].
Além dos agentes Librarian e Finder, faz parte do sistema de busca, também, o agente Inter-Librarian.
Esse agente auxilia o agente Librarian na aquisição dos Metadados dos OAs que se encontram em repositórios que
suportam o protocolo LDAP. Sua função é prover a interoperação com o serviço de diretório LDAP, buscando
diretamente nos repositórios pelos Metadados disponíveis, criando um gateway de comunicação com repositórios de
OAs que utilizam o LDAP para cadastro e busca de objetos. Assim como o Librarian, o Inter-Librarian acessa e
recupera os Metadados de repositórios de OAs, com a diferença de interagir apenas com repositórios que suportam o
protocolo LDAP. Os Metadados coletados pelo agente Inter-Librarian são armazenados localmente, ficando à
disposição do agente Librarian.
6. BUSCA FEDERADA
Os serviços DF de diversas plataformas FIPA podem ser integrados em uma federação de agentes DF,
tornando possível propagar uma busca para outros DFs através de toda a federação. A federação de agentes DF
provê um único e distribuído catálogo de páginas amarelas. A Figura 5, a seguir, mostra um exemplo de como
poderia ser constituída uma federação de diretórios englobando alguns repositórios de OAs.
CESTA
Milos
Milos
Librarian
Agent
Milos
Finder
Agent
Milos
Inter -Librarian
Milos
Librarian
Finder
Agent
Agent
Milos
Inter -Librarian
Agent
Agent
Middleware FIPA/JADE
Middleware FIPA/JADE
HTTP -MTP
Diret ório
Local
HTTP -MTP
Diret ório
Local
DF Agent
DF Agent
Internet
Federa ção
de DFs
Diret ório
Local
DF Agent
HTTP -MTP
Middleware FIPA/JADE
Milos
Librarian
Agent
Milos
Finder
LUME
Milos
Inter -Librarian
Agent
Agent
FIGURE 5 Exemplo de federação de DFs pela MILOS
O agente DF possui um mecanismo de busca que, primeiramente, realiza uma pesquisa local para, então, no
caso de estar federado, estender sua pesquisa aos DFs da federação. É possível definir, entre outros parâmetros, o
número máximo de respostas retornadas pela busca (max-results). Além disso, no caso do DF pertencer a uma
federação, deve ser configurado no agente local quais DFs remotos da federação podem ser acessados diretamente.
Sempre que um agente DF receber uma solicitação para realizar uma busca, pode decidir se a busca precisa ser
propagada para os DFs da federação. Entretanto, uma pesquisa somente será propagada caso o valor do parâmetro
que define a profundidade máxima da busca, max-depth, for maior que 1. Além disso, é necessário que o DF não
tenha recebido uma pesquisa com o mesmo identificador, search-id, de uma pesquisa realizada anteriormente. Caso
o DF opte por estender a busca, algumas diretrizes devem ser seguidas: 1) o valor do parâmetro search-id não deve
ser alterado. Ao se propagar uma busca, o valor do search-id é único em toda a pesquisa. 2) o valor do parâmetro
max-depth deve ser decrementado em uma unidade sempre antes de ser realizada uma propagação.
Para que a comunicação entre os agentes ocorra corretamente em diferentes ambientes, como no caso de
uma federação, utiliza-se o protocolo HTTP (Hypertext Transfer Protocol). Para a comunicação entre plataformas
FIPA, o framework JADE fornece suporte para dois protocolos de transporte de mensagem (MTP - Message
Transport Protocol), HTTP e IIOP (Internet Inter-ORB Protocoll). A partir da versão 3.2 do JADE, o MTP-HTTP
passou a ser fornecido juntamente com sua distribuição principal. O HTTP passou a ser o padrão MTP para
comunicação interplataforma, substituindo o IIOP [8]. Por padrão, o HTTP-MTP é ativado no contêiner principal,
nos demais contêineres nenhum MTP é ativado. Com isso, cria-se um Server socket no contêiner principal, que
aguarda por conexões via HTTP. Para a comunicação entre agentes que se encontram na mesma plataforma, utilizase o protocolo RMI (Remote Method Invocation), que assim como o HTTP e o IIOP, também é utilizado pelo JADE.
7. OS PROTOCOLOS OAI-PMH E LDAP
O protocolo OAI-PMH consiste em um mecanismo para prover interoperabilidade entre repositórios
digitais, definindo como deve ser feita a aquisição de Metadados. Sua principal função é facilitar o
compartilhamento de metadados existentes em diversos repositórios, que ofereçam suporte a este protocolo. O
padrão OAI define duas entidades básicas: o provedor de dados e o provedor de serviços. Um provedor de dados tem
por função buscar pelos Metadados em bases de dados, e disponibilizá-los por meio do protocolo OAI-PMH. Por
sua vez, um provedor de serviços utiliza os Metadados disponibilizados por um provedor de dados, realizando um
harvesting nos repositórios (14). Neste caso, o termo harvesting refere-se à procura, em repositórios, pelos
Metadados dos objetos. Na Figura 6 é apresentado o funcionamento do protocolo OAI-PMH.
FIGURE 6 Funcionamento do protocolo OAI-PMH
Um provedor de serviços pode realizar um harvesting, a fim de buscar pelos Metadados que estejam sob a
responsabilidade de um provedor de dados. Para isso, são enviadas requisições baseadas em HTTP aos provedores
de dados. Esses provedores de dados possuem repositórios onde realizam as buscas pelos Metadados. A resposta a
uma requisição HTTP, que tenha sido enviada pelo harvester, consiste em um documento XML contendo os
Metadados existentes no repositório pesquisado. Para a realização de uma coleta de dados, primeiramente, deve-se
selecionar os repositórios dos quais se desejam obter os metadados, para isso é necessário possuir as respectivas
URLs desses repositórios. É por meio da URL do repositório, somada ao verbo de requisição, é que são realizadas as
consultas. O protocolo OAI-PMH define seis verbos para serem usados na especificação das condições de uma
consulta, e são representados como parâmetros em uma requisição HTTP. A seguir é mostrado o exemplo de uma
consulta ao repositório BIOE, do ministério da educação, usando o OAI-PMH. Neste exemplo, o uso do verbo
ListRecords significa que se deseja recuperar todos os registros existentes nesse repositório. Já o argumento
metadataPrefix, informa que se deseja retornar apenas um tipo de metadado, neste caso o Dublin Core, identificado
por “oai_dc”.
http://objetoseducacionais2.mec.gov.br/oai/request?verb=ListRecords&metadataPrefix=oai_dc
URL do repositório
Verbo
Argumento
O LDAP consiste em um serviço de diretórios que roda sobre TCP/IP e se baseia no modelo clienteservidor. Nos servidores LDAP as informações são armazenadas em uma estrutura hierárquica de diretórios (ver
Figura 7). Esse protocolo é baseado no padrão X.500 DAP (Directory Access Protocol), entretanto é
significativamente mais simples e mais facilmente adaptado para atender à diferentes necessidades. Ao contrário do
X.500, o LDAP suporta TCP/IP, que é fundamental para acesso à Internet. Foi chamado de Lightweight, pois é o
menor e o mais simples dos protocolos que já foram derivados da série de padrões para redes de computador X.500.
FIGURE 7 A estrutura de uma base LDAP
O atributo dn significa Distinguished Name e seu conteúdo deve ser único em todo o banco de dados. Um
dn identifica um único objeto em toda a árvore de dados e é composto pelo atributo mais o caminho para ser chegar
até a raiz da árvore. O atributo dc significa Domain Component e é utilizado para determinar o caminho até a raiz da
árvore: Exemplo: dn: ou=lom, ou=pgie3, dc=ufrgs,dc=br. Tendo realizado o estudo das tecnologias e ferramentas
que serão utilizadas na implementação do sistema de busca de OAs, foi possível especificar uma arquitetura para o
sistema proposto.
8. RESULTADOS PARCIAIS E CONTINUIDADE DA PESQUISA
Com o auxílio do Framework JADE, foram desenvolvidos, em JAVA, os protótipos dos agentes Librarian,
Inter-Librarian e Finder. Com a utilização do Librarian, pode-se realizar o registro de um OA por meio do cadastro
de seus Metadados. Também se implementou a obtenção de Metadados diretamente de repositórios por meio do
protocolo OAI-PMH. Com o uso do agente Inter-Librarian foi possível realizar buscas por OAs em repositórios que
suportam o protocolo LDAP. Utilizando-se o Finder é possível realizar a busca por OAs de acordo com o seu tipo de
Metadado, tendo como resultado ao usuário as informações pertinentes aos dados buscados. A interface web do
Finder permite ao usuário executar uma pesquisa definindo o nível de especificidade desejado, por meio da opção de
busca básica ou busca avançada.
Inicialmente, foi criado um agente simples de software capaz de registrar seus serviços no agente DF de
uma plataforma FIPA. Esse agente realizava seu registro junto ao agente DF e, também, cadastrava seus serviços,
previamente definidos na sua programação. Utilizando a ferramenta DF GUI, disponibilizada pelo JADE, é possível
a visualização do registro do agente em uma determinada plataforma FIPA, bem como seus serviços. O início do
desenvolvimento do agente Librarian ocorreu a partir da adição de funcionalidade ao agente inicial, criado com o
uso do JADE. Visando a tornar possível ao usuário a realização do cadastro de OAs, desenvolveu-se uma interface
básica, na qual é possível cadastrar os Metadados de um OA de acordo com seu tipo. Esses metadados são
cadastrados como propriedades dos serviços que o agente Librarian oferece. Por meio dessa interface, também é
possível excluir objetos anteriormente cadastrados, além de editar esses mesmos objetos. Por fim, implementou-se
no agente Librarian a funcionalidade de buscar por Metadados diretamente em repositórios de OAs, utilizando o
protocolo OAI-PMH.
Após se ter o software Librarian funcional, foi implementado o Finder, a fim de possibilitar a realização de
buscas por OAs. Esse software, basicamente, realiza uma pesquisa por OAs que satisfaça os itens especificados na
interface de busca. Para que isso ocorra, o agente Librarian deve estar federado ou, simplesmente, cadastrado no DF
da plataforma na qual se encontra o agente Finder. Por fim, desenvolveu-se o agente Inter-Librarian, para
efetivamente acessar repositórios digitais por meio do serviço de diretórios LDAP. Com a base de dados composta
por Metadados de diversos OAs, mantida pelos agentes de software, no servidor, é possível por meio de páginas web
realizar pesquisas por OAs de diferentes repositórios digitais por meio de uma única plataforma.
Em termos de continuidade da pesquisa, será dada continuidade ao desenvolvimento do web site que
permitirá acesso ao Sistema de Busca proporcionando a interoperação entre repositórios digitais OAI-PMH e LDAP
através de uma plataforma unificada. Outra possibilidade ainda em estudo é o acesso a outros tipos de catálogos de
conteúdos digitais, como, por exemplo, os catálogos de bibliotecas que podem ser acessados por meio do protocolo
ANSI/NISO Z39.50.
REFERÊNCIAS
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
F. BELLIFEMINE, G. CAIRE e D. GREENWOOD,Developing Multi-Agent Systems with JADE. John Wiley & Sons,
2007.
B. CHAIB-DRAA e F. DIGNU, Trends in agent communication language. Computational Intelligence. 2002, 2(5):1-14.
CORDRA, An introduction to CORDRA - Content Object Repository Discovery and Registration/Resolution
Architecture. CORDRA Management Group. Disponível <http://cordra.net/introduction/>, 2009.
FIPA, FIPA Abstract Architecture Specification - SC00001L, 2002ª. Disponível <http://www.fipa.org/specs/fipa00001/>.
FIPA, FIPA SL Content Language Specification- SC00008I, 2002b. Disponível <http://www.fipa.org/specs/fipa00008/>.
FIPA, FIPA Agent Management Specification - SC00023J, 2002c. Disponível <http://www.fipa.org/specs/fipa00023/>.
FIPA,
FIPA
ACL
Message
Structure
Specification
–
SC00061G,
2002d.
Disponível
<http://www.fipa.org/specs/fipa00061/>.
D. GRIMSHAW, Tutorial 4: Using the HTTP MTP for Inter-Platform Communication. Disponível
<http://jade.tilab.com/doc/tutorials/JADEAdmin/ HttpMtpTutorial.html>, acesso jul. 2009.
IEEE, Standard for Learning Object Metadata - IEEE 1484.12.1-2002. 2002, Learning Technology Standards
Committee of the IEEE.
IMS, Instructional Management Systems - Global Learning Consortium. 2009, Disponível <http://www.imsglobal.org/>,
acesso jul. 2009.
JADE. JADE - Java Agent Development Framework. 2009, Disponível <http://jade.tilab.com/>, acesso ago. 2009.
J. KUNZE e T. BAKER. The Dublin Core Metadata Element Set: RFC 5013. California: IETF. Agosto 2007.
Y. LABROU, T. FININ e Y. PEN, Agent communication languages : the current landscape. IEEE Intelligent Systems,
1999 Marsh-April, 45-52.
OAI. Open Archives Initiative - Standards for Web Content Interoperability. 2009, Disponível
<http://www.openarchives.org>.
RIVED, RIVED - Rede Interativa Virtual de Educação. 2009, Disponível <http://rived.mec.gov.br/site_objeto_lis.php>.
SCORM. Model (SCORM) Version 1.2: The SCORM Overview, 2001, Alexandria: ADLnet. Disponível
<http://www.adlnet.org>.
C. TAYLOR, An Introduction to Metadata. Univ. Queensland, 2003, Australia. Disponível
<http://www.library.uq.edu.au/iad/ctmeta4.html>.
B. WEISS, Multiagent Systems: A Modern Approach to Distributed Modern Approach to Artificial Intelligence. The
MIT Press 1999..
M. WOOLDRIDGE, An Introduction to Multiagent Systems. 2002, John Wiley & Sons.
VICCARI, R., GLUZ, J., PASSERINO, L. M., SANTOS, E., PRIMO, T., ROSSI, L., BORDIGNON, A., BEHAR, P.,
FILHO, R. e ROESLER, V. (2010) The OBAA Proposal for Learning Objects Supported by Agents. Proceedings of
MASEIE Workshop – AAMAS 2010. Toronto, Canada, 2010.