5.1 Introdução
Colaboração é uma parte essencial para muitos tipos de trabalho, mas não é ainda muito utilizada nas escolas. De acordo com Crook (1994), existe uma demanda pela modelagem de ambientes de ensino colaborativo para uso através de redes de computadores. Ambientes de ensino colaborativo são ambientes eletrônicos que suportam e mediam trabalho e aprendizado cooperativo em uma rede de computadores (Ayala e Yano, 1995).
Atualmente existem vários trabalhos em ambientes colaborativos. Cargile (1997) apresenta um ambiente virtual de ensino colaborativo chamado Collaboratory. Este ambiente é implementado como uma sala de aula virtual onde um grupo de estudantes interage através de um conjunto de ferramentas que permitem o ensino através da prática. Entretanto, apesar do Collaboratory possuir uma interface realmente interessante, baseada em ambientes 3D e 2D (mas não imersiva), ele não oferece tutores inteligentes. A responsabilidade de avaliar e mediar o trabalho é de professores humanos e dos próprios estudantes. Em (Oliver et al, 1997), é proposto ambiente de ensino colaborativo através da Internet. Este modelo discute como a utilização de ferramentas, como salas de discussão e páginas www (world wide web), pode ser aplicada para a colaboração dos estudantes. Novamente, este ambiente procura oferecer recursos para a colaboração, mas não são apresentados mecanismos para automatizar aspectos de tutoria inteligente.
Os agentes inteligentes também têm sido utilizados para a construção de ambientes de ensino colaborativo (Boy, 1997). Ayala e Yano (1994, 1995) apresentam um sistema de ensino colaborativo para o aprendizado da língua japonesa. Uma das características deste ambiente é ter sido desenvolvido para ser utilizado em um laboratório de computadores com os alunos trabalhando ao mesmo tempo. Outra questão é que sua interface foi projetada para uma aplicação específica. Boy (1997) apresenta como os diversos trabalhos de Schank em arquiteturas de ensino (Schank, 1982, 1991, 1994) oferecem uma base para a construção de agentes em ambientes colaborativos. Os trabalhos de Schank estão focados principalmente na idéia de que o ensino pode ser alcançado pela exploração de casos e resolução de problemas. Usando esta mesma abordagem, Ploetzner e Fehse (1998) apresentam um modelo cognitivo para o ensino colaborativo através da troca de explicações e experiências entre os estudantes.
Como visto, agentes inteligentes e raciocínio baseado em casos são abordagens que oferecem uma grande contribuição para a implementação de ambientes colaborativos. Da mesma forma, o uso da Internet oferece um suporte de comunicação ideal, pelas suas características de abrangência e baixo custo.
A análise dos trabalhos discutidos anteriormente mostra que eles apresentam diversas características interessantes para um sistema colaborativo. Entretanto, os sistemas não apresentam soluções integradas que permitam uma evolução do processo de ensino/aprendizagem tradicional para os novos paradigmas da educação. Algumas ferramentas conseguem trabalhar vários princípios pedagógicos da colaboração, mas não implementam modelos de orientação inteligente. Outras ferramentas são totalmente orientadas a um específico domínio de conhecimento.
Dentro deste contexto, este trabalho estabelece um modelo para o ensino colaborativo através da Internet. O objetivo principal é agregar diversos aspectos pedagógicos do processo colaborativo com o ensino através de experiências e por demanda. O modelo ainda permite que a cooperação possa ocorrer em modo assíncrono.
É definida uma plataforma orientada a agentes para suportar a cooperação de usuários através de uma rede de computadores. Torna-se importante ressaltar que os agentes podem se comunicar em qualquer rede baseada nos protocolos da Internet. Estes protocolos são adotados pela grande maioria das soluções em redes de computadores. Esta característica faz com que a cooperação possa ocorrer tanto em pequenos laboratórios de aula como através da Internet, sem limite de distância.
A plataforma define um sistema multi-agente que adota a estrutura de uma federação de agentes. A comunicação dos agentes utiliza uma estrutura formalizada baseada na Linguagem de Comunicação de Agentes (ACL – Agent Communication Language). Como apresentado no capítulo 3, um sistema multi-agente é composto de agentes que compartilham um ambiente comum. Conseqüentemente, eles devem atuar coletivamente para identificar e resolver conflitos, sendo, ao mesmo tempo, beneficiados pela ação de outros agentes.
São definidas três classes de agentes para a implementação da plataforma: agentes de interface, agentes de informação e agentes consultivos. Esta abordagem foi inicialmente proposta em (Thiry, 1998a). Uma extensão desta abordagem para a aplicação no ensino à distância foi proposta em (Thiry, 1998b). Os agentes utilizam técnicas diferentes para resolver problemas específicos e interpretar situações. As principais abordagens de raciocínio utilizadas são raciocínio baseado em casos (o enfoque é ensino baseado em casos) e regras de produção.
O trabalho mostra a utilização desta plataforma como a base para a implementação de uma aplicação para suportar o ensino à distância. Esta ferramenta é desenvolvida como um navegador Internet inteligente.
O modelo genérico da plataforma possui três tipos de agentes assim definidos: agente de interface, agente de informação e agente consultivo (Fig. 8). O agente de interface é responsável pela interação com usuário. O agente de informação é relacionado com o acesso ao banco de dados e à base de conhecimento. O agente consultivo oferece assistência pessoal ao usuário. Os agentes cooperam através de uma rede de computadores, que pode ser a Internet, uma Intranet ou até mesmo uma rede local isolada.
A complexidade da plataforma proposta e dos diferentes tipos de serviços
que os agentes podem oferecer indicam a necessidade da aplicação
de mais de uma técnica de inteligência artificial. Embora
tenha se pensado inicialmente na utilização de sistemas híbridos,
os quais incorporam facilidades de duas ou mais técnicas na resolução
de problemas (Thiry, 1998a), decidiu-se por utilizar as técnicas
separadamente. Esta conclusão é motivada pelas diferentes
aplicações das técnicas adotadas.
Fig. 8 – Arquitetura genérica para o ambiente de ensino colaborativo.
Inicialmente, dois paradigmas estão sendo combinados para orientar o processo de raciocínio dos agentes propostos: sistemas especialistas e raciocínio baseado em casos. Um sistema especialista é apropriado em domínios onde o conhecimento pode ser representado na forma de frames (objetos) e regras. Como já discutido anteriormente, o enfoque adotado neste trabalho para a abordagem RBC é o ensino baseado em casos. Os casos passados auxiliam o usuário, informando sobre possíveis situações problemáticas e evitando repetição de erros.
O agente de interface interage com o usuário e coopera com os outros agentes trocando informações sobre capacidades, comprometimentos e metas de aprendizado dos usuários. Além disso, o agente de interface deve ser provido com facilidades para a representação de seu usuário. O agente de interface deve poder assumir o papel de seu usuário quando este não estiver presente. É importante notar que o agente de interface, em sua primeira versão, não oferece muitas funções para automatizar tarefas para seu usuário. Entretanto, eles foram estruturados para permitir a adição de funcionalidades de forma incremental.
A figura 9 apresenta a estrutura básica de um agente de interface.
É possível verificar quatro níveis bem estruturados:
interface, interpretação, operação e comunicação.
Fig. 9 – Estrutura básica do agente de interface.
O Nível de Interface oferece a funcionalidade de comunicação com o usuário. Ele é responsável por captar as consultas do usuário e por apresentar as mensagens vindas do sistema. O Nível de Interpretação tem a função básica de tradução. Ele procura preparar e ordenar as consultas feitas pelo usuário em uma estrutura de dados interna que é manipulada pelo agente. O Nível Operacional representa a parte principal do agente, pois é nele que reside a funcionalidade de raciocínio. Este nível é responsável pela monitoração das atividades do usuário e pela manutenção do conhecimento. O Nível de Comunicação é a parte do agente que lida com a troca de mensagens com outros agentes. O formalismo adotado neste nível para a representação das mensagens é a linguagem KQML.
Os agentes na arquitetura proposta estão sendo modelados através de uma estrutura de camadas. A proposta é oferecer funções bem definidas em cada camada. Esta analogia com arquiteturas de redes de computadores permite a independência de implementação para cada camada. A comunicação entre as camadas é realizada através de uma interface bem definida. Esta abordagem também oferece modularidade. Por exemplo, o Nível de Interface está sendo inicialmente implementado através de menus popup e mensagens, mas uma interface em linguagem natural pode ser adicionada com impacto mínimo na estrutura do agente.
O processo de aprendizado do usuário consiste na criação de um conjunto de crenças sobre a informação disponível no sistema. Estas crenças estão sendo implementadas como duas bases de conhecimento diferentes. A primeira base utiliza uma abordagem para aprender e representar a informação sobre preferências do usuário. A segunda base de conhecimento utiliza raciocínio baseado em casos para a construção de uma representação parcial sobre o domínio, ou seja, o conhecimento a ser aprendido. O usuário pode solicitar ao agente de interface, a qualquer momento, a revisão dos casos que ele já tenha trabalhado. Torna-se importante ressaltar que, neste caso, não há necessidade de trocar mensagens com outros agentes. Todo o processo é feito localmente.
O banco de dados de recursos representa informação adicional. Ele armazena o endereço do agente, o nome como ele é conhecido e seu mapeamento na rede. Atualmente, está sendo implementado um histórico sobre tudo o que o agente de interface está fazendo, incluindo-se comunicação com usuário e com outros agentes. Esta facilidade permitirá, além de um acompanhamento dos resultados da implementação, uma interessante forma de avaliação da plataforma.
Este agente armazena a representação do conhecimento do domínio utilizada pelos agentes de interface como base para a construção de suas próprias interpretações do domínio. É definida uma interface de acesso aos dados. Os níveis de interpretação e interface não estão presentes, uma vez que o usuário não possui acesso direto a este agente. Os agentes realizam todo o processo de comunicação. Ambos, agentes de interface e agentes consultivos podem acessar o agente de informação. A figura 10 apresenta a estrutura básica do agente de informação.
A informação é dividida em duas categorias diferentes:
material didático e base de conhecimento. O material didático
compreende páginas em formato HTML (Hypertext Markup Language),
imagens, textos e multimídia em geral. Esta categoria de informação
está sendo armazenada atualmente em um banco de dados relacional
e através de um site Internet (páginas HTML). De fato,
a melhor abordagem para armazenar o material didático seria um banco
de dados orientado a objetos. Ganhos importantes com esta abordagem seriam
um melhor armazenamento dos recursos de multimídia e a organização
das páginas como objetos e não como arquivos em um conjunto
de diretórios. Entretanto, a validação e a funcionalidade
do modelo pode ser obtida com o uso de um banco relacional.
Fig. 10 – Agente de Informação.
A base de conhecimento é organizada através de um conjunto de casos e regras. Na verdade, a versão atual utiliza regras apenas para a estrutura de recuperação dos casos. Os casos representam as situações a serem exploradas pelos estudantes. Apesar deste trabalho diferir entre banco de dados e base de conhecimento, é importante ressaltar que os casos estão sendo armazenados também em um banco de dados relacional. A terminologia base de conhecimento continuará sendo adotada para identificar claramente o tipo de informação que está sendo discutida.
Os casos estão sendo modelados através de um formulário com os seguintes atributos:
O agente consultivo adota o paradigma de um assistente pessoal inteligente. Neste sentido, ele assiste o usuário através de uma monitoração constante, indicando a aplicação apropriada do conhecimento. Isto é feito através da verificação da situação do usuário e pela identificação dos casos mais apropriados para aquele momento.
Este agente pode ser consultado indiretamente pelo usuário, através do agente de interface. Neste caso, o usuário faz a solicitação ao agente de interface que faz o repasse ao agente consultivo. Por sua vez, o agente consultivo verifica as bases de crenças individuais de cada usuário e solicita ao agente de informação pelos casos mais relevantes na base de conhecimento global (quando comparados ao pedido do usuário).
Outra importante característica do agente consultivo é a avaliação das ações e construções das crenças do usuário. O agente procura encontrar similaridades entre os casos derivados de um usuário e os casos inicialmente contidos no material didático. Os resultados destas buscas podem ser disponibilizados ao usuário.
A estrutura do agente consultivo é praticamente a mesma utilizada para implementar o agente de informação (fig. 10). Novamente, não há a necessidade dos níveis de interface e interpretação. Entretanto, a diferença básica está no nível operacional. Enquanto o agente de informação possui facilidades de acesso ao conhecimento e banco de dados, o agente consultivo possui mecanismos para monitorar o usuário e para reconhecer situações onde é necessário apresentar explicações. Existe também a possibilidade de fornecer informações adicionais como exemplos ou contra-exemplos para o usuário.
O agente consultivo permite explorar duas abordagens diferentes: o ensino baseado em casos e ensino por demanda. Os benefícios pedagógicos destas abordagens foram discutidos no capítulo 2 e na seção 4.7 deste trabalho. O ensino baseado em casos é utilizado quando o agente procura apresentar situações aos estudantes, baseado na interpretação de suas crenças (base de casos local). Uma das formas mais valiosas de aprendizado ocorre quando o estudante com um problema descreve sua situação a um professor, então o professor é lembrado e responde através de uma estória aplicável. Em tal situação, o estudante pode adaptar a estória, endereçá-la e aplicá-la no seu problema. Esta parte do agente consultivo é baseada na estrutura da aplicação para ensino interativo SPIEL (Story Producer for Interactive Learning) (Burke e Kass, 1996).
O ensino baseado em demanda procura explorar o fato do estudante não receber toda a informação de uma única vez. O agente consultivo procura monitorar o estudante, identificando tópicos (pontos específicos) no material, e procura encontrar de forma autônoma um caso (experiência/explicação) adequado para aquele determinado tópico.
5.3.4 Arquitetura de Comunicação
Como apresentado anteriormente, a plataforma está estruturada
com base na proposta de Genesereth e Ketchpel (1994), onde é definida
uma arquitetura para interoperabilidade. A comunicação dos
agentes ocorre através da troca de mensagens padronizadas que adotam
o padrão ACL (Agent Communication Language). Este padrão
estabelece que a comunicação não ocorre diretamente
entre os agentes, mas através de um programa especial denominado
Facilitador.
A figura 11 apresenta um visão da arquitetura de comunicação
adotada. São implementadas duas bases de dados locais: na primeira,
o Facilitador armazena toda a informação necessária
para executar o roteamento das mensagens. Na segunda base ele registra
todas as mensagens trocadas. O formato destas bases é bastante simples
e não cabe descrevê-las aqui.
Fig. 11 – Arquitetura de comunicação adotada.
A principal diferença entre a arquitetura implementada e o padrão ACL está na quantidade de Facilitadores. No padrão ACL, é indicado que cada computador host possua um Facilitador para seus agentes locais. A arquitetura utilizada define apenas um único Facilitador para todos os agentes. Esta aparente limitação é, na verdade, uma decisão de projeto. Usualmente, os agentes de interface estarão espalhados em diferentes hosts, muitas vezes em diferentes redes locais. Em outras palavras, será muito difícil existirem dois agentes de interface sendo executados no mesmo computador. Esta avaliação fez com que a estrutura de comunicação fosse simplificada, reduzindo a troca de mensagens. Outra questão importante está no fato dos agentes nunca trocarem mensagens diretamente. No padrão ACL, um Facilitador pode passar o endereço de um agente a outro, permitindo que este entre em contato diretamente. A proposta adotada permite manter controle centralizado (neste caso, através do Facilitador) para facilitar a formação de registros históricos. Estes registros são importantes para auxiliar no processo de avaliação dos usuários, uma vez que eles registram todo o processo de colaboração ocorrido entre os agentes.
A linguagem externa KQML está sendo utilizada para encapsular o conhecimento dos agentes. O padrão ACL adota a linguagem interna KIF para representar o conteúdo do conhecimento. A plataforma está preparada para aceitar esta linguagem, mas a versão atual não possui um tradutor KIF implementado. Entretanto, as mensagens KQML (performatives) podem carregar conhecimento em diversos tipos de linguagem como Prolog ou SQL.
As performatives KQML, apresentadas na figura 12, são
utilizadas para realizar o processo inicial de conexão de um agente
com o Facilitador.
Fig. 12 – Performatives KQML para conexão inicial entre os agentes e o Facilitador.
A mensagem register-agent é enviada pelo agente ao Facilitador para solicitar seu registro no grupo. Os agentes consultivo e de informação também devem realizar esta operação, uma vez que o Facilitador não teria como saber as suas localizações na rede. No conteúdo desta mensagem são passados o número IP (Internet Protocol) e o tipo de agente. No exemplo dado, um agente de interface em um host com endereço "10.0.0.1" está solicitando seu registro.
A mensagem unregister-agent é enviada pelo agente ao Facilitador solicitando seu desligamento do grupo. Esta mensagem é usualmente feita por um agente de interface.
A mensagem reply é enviada pelo Facilitador ao agente que solicitou um registro. O conteúdo da resposta é um nome de agente disponível. Este nome não é conhecido pelo usuário, no caso do solicitante ser um agente de interface. O nome identifica o agente apenas no nível de comunicação. Este nível também recebe um número de porta (socket) temporário.
As performatives register-agent e unregister-agent não existem na especificação inicial da linguagem KQML (Finin et al, 1993). Entretanto, a linguagem permite a adição de novas performatives.
Depois do processo de registro concluído, um agente está pronto para receber e enviar mensagens através da plataforma.
5.3.5 Encapsulamento dos Casos
Todos os três tipos de agente definidos na plataforma (o Facilitador não está sendo considerado) devem possuir a habilidade de transmitir e receber casos da base de conhecimento. Desta forma, tornou-se necessário especificar como um caso poderia ser enviado através da rede. A solução foi encapsular os casos em mensagens KQML, uma vez que um caso é uma forma de representação do conhecimento.
Na primeira versão da plataforma, utilizava-se estruturas Prolog para a modelagem dos casos. Estas estruturas eram transportadas no parâmetro content de uma mensagem KQML. Entretanto, era necessário a utilização de um interpretador Prolog para que o caso pudesse ser explorado. Esta solução não era muito eficaz e necessitava da adoção de programas externos para funcionar adequadamente. Na versão atual, os casos estão modelados através de uma classe de objetos. Esta visão é interna à plataforma, uma vez que o banco de dados utilizado é relacional. Um importante aspecto desta nova abordagem é que novas classes podem ser generalizadas, permitindo que a representação dos casos possa ser melhorada em versões futuras. É importante notar que o uso de um banco de dados relacional limita a facilidade introduzida pela orientação a objetos. Entretanto, o modelo está parcialmente preparado para a migração para um banco de dados orientado a objetos.
Para o transporte adequado de um caso, a classe oferece um método de serialização que transforma um objeto caso em uma cadeia de caracteres (string). Para transmitir um caso através de uma mensagem KQML, o caso é convertido e colocado no parâmetro content, além do parâmetro language ser preenchido com o valor CASE-TEXT. Esta linguagem foi definida pela plataforma para indicar ao agente que o conteúdo da mensagem está carregando um caso.
5.4 Aplicação no Ensino à Distância
Uma grande parte dos sistemas de ensino baseados em computador utiliza metodologias tradicionais, onde o professor é o centro do conhecimento. Esta abordagem defende que o processo ensino-aprendizagem é somente uma simples transmissão de conhecimento. Desta forma, o aluno é convertido em um agente passivo com muito pouca participação na construção do conhecimento. Sistemas com estas características não conseguem explorar com muito sucesso as capacidades reais dos estudantes. Como apresentado, ferramentas que exploram a colaboração entre indivíduos podem alcançar resultados interessantes para o processo de aprendizagem.
Este trabalho utiliza a plataforma definida anteriormente para criar um ambiente de ensino colaborativo através da Internet. Neste contexto, agentes de interface podem interagir com os estudantes, os agentes de informação apresentarem o conhecimento sobre o tema estudado e os agentes consultivos podem ser interpretados como os monitores ou professores. O conceito de professor neste ambiente é aquele indivíduo que apresenta novas situações aos estudantes e avalia os resultados obtidos através da colaboração entre eles.
A plataforma definida na seção anterior pode ser ajustada perfeitamente como um ambiente de ensino interativo. Como visto nos sistemas de ensino baseados em computador, apresentados no capítulo 2, todos os componentes de um sistema tutor inteligente estão presentes:
5.4.1 Navegador Internet Inteligente
O módulo de comunicação necessita de uma metáfora que permita ao estudante acessar o sistema. A proposta é introduzir um ambiente na forma de um navegador Internet inteligente. A interação do navegador com a plataforma multi-agentes é feita através do agente de interface.
Uma das facilidades do navegador é sua habilidade de funcionar
como uma ferramenta tradicional de treinamento através da Internet,
permitindo que o estudante possa navegar livremente (de modo não
linear) pelas informações. Contudo, o ambiente providencia
também mecanismos que exploram a interação entre os
estudantes. A figura 13 apresenta como o navegador é inserido na
arquitetura de comunicação sem alterar a estrutura definida
anteriormente na seção 5.3.4. O agente de interface passa
a ser um componente do navegador inteligente, mantendo toda a responsabilidade
de acessar a plataforma multi-agente.
Fig. 13 – Arquitetura de comunicação com a inserção do navegador inteligente.
A interface proposta para o navegador inteligente possui quatro áreas básicas:
Fig. 14 – Ambiente colaborativo na forma de um navegador inteligente para a Internet.
5.4.2 Aplicação em Engenharia de Software
Para efeito de teste e avaliação do ambiente de ensino proposto, está sendo implantado um curso para a disciplina de Engenharia de Software. A figura 15 apresenta a interface do curso, onde podem ser observados três estudantes cadastrados.
Neste exemplo, pode-se verificar o resultado de uma solicitação
do estudante para a definição do termo "classe". O agente
de interface, após troca de mensagens com o agente consultivo, apresentou
o caso recuperado. Por ser um caso do tipo "definição", não
há informação no campo "problema". O campo "solução"
é um texto livre que contém a definição de
uma classe segundo a abordagem orientada a objetos. As palavras-chave estão
indicadas pelos símbolos "[" e "]".
Fig. 15 – Recuperação de um caso.
O caso recuperado pode ainda ser explorado pelo estudante, o qual pode
criar sua própria definição. Este processo de construção
das crenças do estudante possibilita a individualização
de cada aluno. A individualização considera que cada estudante
é diferente com diferentes níveis de conhecimento (Bork,
1997). Ao mesmo tempo, a colaboração entre alunos para resolver
ou entender alguma situação providencia a aquisição
de conhecimento.