Capítulo 4 Sistema baseado em agentes de apoio à elaboração de propostas de TCC
4.2 Agentes no ambiente AgenTCC
4.2.1 Agente Administrativo
O Agente Administrativo (AAdm) é único, isto é, só existe um AAdm no AgenTCC. Ele é responsável por criar e controlar os demais agentes. É ele também que controla as cone- xões e o cadastramento dos agentes humanos (usuários). Em seguida, ele passa o controle aos respectivos agentes. Por essas atribuições, o Agente Administrativo deve permanecer sempre
ativo. É ele quem inicia os agentes assistentes com o status ativo. O AAdm também garante a
existência de somente um coordenador no ambiente. Abaixo, esse agente é descrito em termos de seus objetivos (Seção 4.2.1.1), conhecimento (Seção 4.2.1.2) e comportamento e controle (Seção 4.2.1.3).
4.2.1.1 Objetivos
O Agente Administrativo faz o papel de coordenador dos demais agentes. Ele é res- ponsável, principalmente, por criar os agentes assistentes de cada novo agente humano (pro-
fessor ou estudante), por carregá-los a cada reinício do sistema e por controlar seu status (ati-
vo, hibernando ou acordado).
Um agente assistente pode estar (i) ativo, se seu assistido está cadastrado no sistema,
(ii) hibernando, caso em que o seu agente humano não está mais cadastrado, ou (iii) acorda- do, se o seu agente humano não está mais cadastrado no sistema, mas deseja-se consultar o
conhecimento do agente. Assim, a cada novo agente humano que se cadastra, o AAdm cria o seu agente assistente de acordo como o perfil deste: professor, professor coordenador ou estu- dante. O AAdm controla, através da bases de dados que alimenta o sistema, qual o professor é o coordenador no ambiente, tendo este um AAP como os demais professores, porém com um status que o identifica como tal.
Todo agente recém criado recebe o status de ativo, permanecendo desta forma até o
do de um estudante, este finalize a sua proposta ou se desligue do curso. O AAdm determina
nesses casos o status de hibernação ao agente. Quando o agente está em hibernação não pode
responder a solicitações de outros agentes.
Agentes assistentes que não estejam com seus agentes humanos em atividade no sis- tema, devem ser colocados em hibernação com o propósito de aliviar o ambiente da grande quantidade de agentes ativos que se acumularia com o tempo. Preservar os agentes em status de hibernação vem a possibilitar que se recupere/consulte o seu conhecimento quando for ne- cessário. Assim, quando necessário basta acordá-lo e depois retorná-lo ao status anterior. Des- sa forma, apenas os agentes assistentes que estejam assistindo a agentes humanos (sejam pro-
fessores ou estudantes) durante o período letivo estarão ativos.
Resumidamente, o AAdm tem por objetivos:
− permitir o login e o cadastramento de agentes humanos;
− criar os agentes assistentes e manter suas situações no ambiente.
4.2.1.2 Conhecimento
Os agentes, especialmente os agentes assistentes, só podem apoiar seus assistidos se mantêm seu perfil. No caso do AAdm, este controla o ciclo de vida dos demais agentes. Por esse motivo ele precisa conhecer esses agentes em termos de suas características e conheci- mento que o ajude a identificar qual(is) agente(s) precisa(m) ser acordado(s) em pesquisas solicitadas pelos demais agentes do ambiente. Assim, o AAdm mantém uma base com infor- mação sobre os agentes e suas capacidades de resposta (aquilo que o agente atende em termos de pedidos).
Com a intenção de, ao mesmo tempo definir as estruturas de armazenamento do co- nhecimento e deixá-las o mais independente possível da plataforma de implementação, optou-
se pelo uso de documentos XML e de DTD. O uso de DTDs e XMLs é uma escolha bastante
natural em sistemas distribuídos e de topologia orientada a Internet e Intranet. Nesse tipo de
sistema, há a necessidade de programas e de bases de dados que sejam independentes de pla- taforma. Como neste trabalho o objetivo é fornecer uma visão geral do sistema, optou-se pela
utilização de DTD e XML como primeiro passo rumo à definição de esquemas mais sofistica-
dos que permitam busca semântica.
Ainda que bases de dados em XML possuam características favoráveis, elas não po-
bancos de dados relacionais. Essas bases de dados possibilitam relacionamentos tipicamente em árvore, ou seja, um para muitos (1 para N). Como será visto adiante (Seção 4.2.2.2, Figura 27 e Figura 28), o perfil do professor inclui suas áreas de atuação, linhas de pesquisas e abor- dagens, os projetos aos quais esteja vinculado e os laboratórios de pesquisa que freqüenta. Como estão, esses elementos não podem ser relacionados entre si como se poderia fazer usan- do bancos de dados relacionais. Seria interessante associar esses elementos em relacionamen- tos N para N e assim poder-se-ia saber, por exemplo, quais áreas estariam relacionadas a um projeto e vice versa. Isso ajudaria nas pesquisas dos estudantes, que poderiam identificar esses relacionamentos. Se um estudante, por exemplo, quiser saber quais os demais assun- tos/domínios relacionados a um projeto, não seria possível usando o perfil dos professores sem o registro de suas orientações.
Isso é um fator que merece observação, mas não chega a afetar esse sistema. No A- genTCC, foram criados relacionamentos entre as orientações (propostas) e os domínios de pesquisa (veja o elemento orientações na Figura 27). Com esse elemento, é possível identifi- car quais os domínios de pesquisa relacionados à orientação, assim como esses se relacionam. Se, por exemplo, dois laboratórios e um projeto estão associados à mesma orientação, con- clui-se que eles estão relacionados entre si.
Alguns documentos XML têm sua formatação estruturada e podem ser previstos por
meio de DTDs (agendas, perfis de usuários, etc.). Outras não podem ter sua estrutura prevista
em tempo de projeto uma vez que sua estrutura será definida em função do modelo adotado na IES (documentos de propostas) ou de sua própria dinâmica de uso (fóruns e Modelos de Colaboração). Por esse motivo não é possível determinar seu formato em documento do tipo
DTD.
O Agente Administrativo, especificamente, precisará apenas de um documento para armazenar seu conhecimento: Controle de Agentes. Esse documento lhe servirá de apoio para
efetivamente controlar o ciclo de vida dos demais agentes. O arquivo DTD do Controle de
Agentes pode ser visto na Figura 26. Nele, se pode identificar um elemento principal, intitula- do “ControleDeAgentes” que contém apenas um sub-elemento direto: “agente”. Para cada agente do sistema será criado um sub-elemento “agente” abaixo do Controle de Agentes.
<!ELEMENT ControleDeAgentes (agente*)> <!ELEMENT agente (servico+)>
<!ATTLIST agente
nomeAgente CDATA #REQUIRED tipoAgente (AAP|AAE) "AAE" dataCriacao CDATA #REQUIRED dataInicioPeriodo CDATA #REQUIRED dataTerminoAtividades CDATA #REQUIRED statusAgente (ativo|hibernando|acordado) "ativo" matriculaUsuario CDATA #REQUIRED >
<!ELEMENT servico EMPTY> <!ATTLIST servico
nome CDATA #REQUIRED >
Figura 26: DTD do documento de Controle de Agentes
O elemento “agente” contém sete atributos: (i) “nomeAgente”, que conterá o nome do
agente no sistema, que é único, (ii) “tipoAgente”, que identifica se o agente é um assistente de
professor ou de estudante, (iii) “dataCriacao”, que é a data em que foi criado o agente, (iv)
“dataInicioPeriodo” que é a data que o AAdm busca na base de dados externos (do sistema da
IES) e determina em que data o período letivo corrente iniciou-se, (vi) “dataTerminoAtivida-
des”, que identifica quando encerra o período letivo corrente (também obtida da base de dados
externos), (vi) “situacaoAgente”, que identifica se o agente encontra-se ativo, hibernando ou
acordado, (vii) “matriculaUsuário” que guarda a matrícula do agente humano no sistema pro-
prietário do agente assistente; e um sub-elemento: “servico” que identifica os serviços que o agente pode atender.
Quanto à data de encerramento das atividades, vale ressaltar que ela determina o fim do período letivo e portando das atividades no sistema. Assim, todo agente assistente de estu- dante criado no período letivo e ativo após o seu encerramento deve ser posto em status de
hibernação pelo AgenTCC. O AAdm verifica ciclicamente a base de dados externos para atu-
alização de sua própria base.
É importante também destacar que a data de encerramento das atividades, a priori, não
determina o prazo de entrega das propostas. Este prazo é determinado pelo professor coorde- nador e é agendado pelos agentes assistentes do sistema. Isso será discutido na seção de co- nhecimentos do AAP.
4.2.1.3 Comportamento e controle
No AgenTCC, o comportamento dos agentes assistentes está centrado nas comunica- ções entre eles e é por meio de tais comunicações que pedidos de informação ou ações são solicitadas de um agente para outro. Agentes assistentes solicitam ações de outros agentes pa- ra completar suas atividades e agentes que recebem solicitações realizam tarefas para atendê-
las. Assim, os agentes assistentes cooperam para realizarem tarefas que lhes são solicitadas.
Para tanto esses agentes devem estar com status ativo ou acordado.
O Agente Administrativo interage com todos os agentes do sistema, pois é ele quem os
cria e controla seu status – se ativos, hibernando ou acordados. O AAdm detém o conheci-
mento acerca dos agentes que estão inativos, mas que podem atender solicitações de outros
agentes, se responsabilizando por acordá-los e colocá-los de novo em hibernação. Por suas
responsabilidades implícitas, o AAdm deve estar sempre escutando o canal de comunicação entre os agentes e interceder quando necessário.
Assim, as funções do Agente Administrativo estão relacionadas especialmente com o controle dos demais agentes do sistema. Mas, além de controle dos agentes o AAdm, possibilita também o acesso ao sistema e o cadastramento de novos agentes humanos:
− Login de usuários. Recebe os dados para conexão dos agentes humanos e encaminha-o para o seu agente, que assume o controle a partir desse momento.
− Cadastro. Permite o cadastro de novos agentes humanos no sistema, consultando a base de dados alimentada pela IES e montando seus dados pessoais no perfil.
− Criação de agentes assistentes. Para cada novo agente humano o AAdm cria um agente
assistente apropriado para o perfil deste. Por medida de segurança, o AAdm envia um e-
mail com pedido de confirmação para o agente humano.
− Controle de status dos agentes. O AAdm é responsável por acompanhar o status dos agentes no sistema. Agentes cujos agentes humanos não estejam mais cadastrados no
sistema devem ter seu status alterado para hibernando. Agentes em hibernação devem
ser acordados quando são necessários e, quando não mais necessários, devem retornar ao status anterior. Ao final de cada período letivo, o AAdm destina todos os AAEs ao
status de hibernação e não podem mais voltar ao status de ativo. Professores que
deixam de orientar são destinados à hibernação, mas podem retornar ao status ativo se
for cadastrado novamente como orientador na base de dados de apoio do sistema. O AAdm checa ciclicamente a base de dados para identificar esse tipo de informação. O AAdm não permite a entrada ou cadastramento de agentes humanos com seus agentes