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.