Information">
Dissertação - Vitor Bremgartner Da Frota
Dissertação - Vitor Bremgartner Da Frota
Dissertação - Vitor Bremgartner Da Frota
Manaus – AM
Fevereiro de 2012
A Deus, o Senhor de todas as obras.
Agradecimentos
Antes de tudo agradeço a Deus, porque Ele é quem me ajudou nos momentos mais
difíceis, não só do Mestrado, mas de minha vida, e que me amou antes mesmo de eu ter fé
nEle, sempre me abençoando e sendo provedor dos meus conhecimentos.
Queria agradecer aos meus pais que sempre me deram as condições ideais para que
eu me dedicasse aos estudos, além de terem me dado o exemplo de caráter a ser seguido.
Obrigado dona Raquel Bremgartner e seu Jocílio Frota!
Obrigado a meus irmãos por todo o carinho e confiança em mim. São eles Rebeca,
Gabriel e Davi.
Queria agradecer ao meu orientador, professor José Netto, que sempre acreditou em
mim, fornecendo importantes orientações para toda a execução deste projeto e pela ideia
que permeia este trabalho.
Obrigado ainda aos colegas que tiveram papéis importantes de alguma forma no
decorrer do Mestrado: Adriano Gomes, Renan, Viviane, Márcia, Márcio, Marcelo, Ricardo,
Leonardo, Mackson, André e Andréa. Mas a lista é muito maior daqueles que caminham e
caminharam comigo, que tenho medo de esquecer algum na minha fraqueza de memória,
mas não me interpretem mal.
Agradeço também a CAPES pela bolsa de estudos, que possibilitou uma dedicação
integral a este curso e também ao CNPq, cujo projeto chamado LaboREAm possibilitou
auxílio financeiro em atividades no decorrer do mestrado.
Obrigado a todos!
iv
"Tudo posso nAquele que me
fortalece."
Filipenses 4:13
v
Resumo
Com a disseminação dos cursos de Educação a Distância, um problema cada vez mais
frequente é a falta de um acompanhamento personalizado ao aluno e a demora em responder
por parte de mediadores e demais colegas às dúvidas e requisições dos alunos em Ambientes
Virtuais de Aprendizagem (AVAs), normalmente postadas em fóruns de discussão ou
manifestada via e-mails. A abordagem adotada para solução deste problema apresentada nesta
dissertação baseia-se em Sistemas Multiagente e em uma ontologia estendida da especificação
IMS Learner Information Package (LIP) a partir da teoria de habilidades e competências
desenvolvida pelo sociólogo suíço Phillipe Perrenoud. Por meio dos agentes e da ontologia são
detectadas as eventuais dúvidas dos alunos e estas são direcionadas aos membros da
comunidade que possuem o perfil mais adequado a solucioná-la, isto é, para aqueles que
possuem as habilidades e competências adequadas, diminuindo a demora de resposta às dúvidas
dos alunos. Dessa forma, os alunos poderão interagir entre si com o propósito de solucionar
eventuais dúvidas ou erros em determinadas atividades, compartilhando conhecimentos. A
solução descrita nesta dissertação se baseia na aprendizagem colaborativa pela interação entre
aprendizes, na qual é uma estratégia empregada com o propósito de construir conhecimento de
maneira mais significativa em um AVA. O processo de recomendação personalizada é
realizado por agentes que utilizam a ontologia. Para validação do sistema, foi desenvolvida uma
Rede de Petri que representa as interações entre os agentes, além de simular a correta ordem de
execução ou o paralelismo entre eles. A partir dessas concepções, foi implementado um SMA
que utiliza a ontologia de modelo de aluno desenvolvida e este foi empregado para auxiliar
alunos e tutores em um curso de Cálculo Numérico que faz uso do AVA Moodle. Os resultados
obtidos com os testes aplicados no sistema comprovam a validade e a viabilidade da solução
encontrada, composta de duas etapas: uma simulação em uma turma fictícia, a fim de avaliar a
eficácia dos agentes e da ontologia e outro teste em uma turma real, com o objetivo de avaliar a
eficácia do processo de recomendação entre os alunos. Questionários de pesquisa de opinião
foram passados em sala de aula a fim de obter e avaliar as impressões dos alunos quanto ao
recurso disponível aos mesmos no AVA.
vi
Abstract
With the spread of distance education courses, an increasingly common problem is the lack
of a personalized support and the delay in responding by mediators and other colleagues to
doubts and requests from students in Learning Management Systems (LMSs), or Virtual
Learning Environments (VLEs), usually posted on discussion forums or manifested via e-
mail. The approach taken to solving this problem presented in this dissertation is based on
multi-agent systems and an extended ontology of the IMS Learner Information Package
(LIP) standard from the theory of skills and competencies developed by the Swiss
sociologist Philippe Perrenoud. It is proposed here that doubts of the students are detected
by the agents and the ontology. So, these doubts are directed to community members who
have the best suited profile resolve it, i. e., for those who have the appropriate skills and
competencies decreasing the delayed response to questions from students. Thus, students
can interact with each other in order to resolve any doubts or errors in certain activities,
sharing knowledge. The solution described in this dissertation is based on collaborative
learning through interaction between students, which is a strategy employed in order to
build knowledge more meaningfully in a VLE. The agents and the ontology also perform
the recommendation process. To validate the system, we developed a Petri Net that
represents the interactions between agents, and simulate the correct order of execution or
the parallelism between them. From these notions, we implemented a multi-agent system
that uses the competency-based learner model ontology that was used to assist students and
tutors on a course of Numerical Analysis making use of the Moodle VLE. The results
obtained with the tests applied in the system, discussed throughout the paper, demonstrate
the validity and feasibility of the proposal, comprised of two stages: a simulation on a
fictional class in order to evaluate the effectiveness of agents and the ontology and other
test in a real class, with the aim of evaluating the effectiveness of the recommendation
process among students. Survey questionnaires were spent in the classroom in order to
obtain and evaluate the students' impressions about the resources available to them in the
VLE.
Keywords: Agents, ontology, Learner Model, Virtual Learning Environment (VLE), Petri
Nets, personalization, competencies
vii
Lista de Siglas
ACL Agent Communication Language
AID Agent Identifier
AMS Agent Management System
AVA Ambiente Virtual de Aprendizagem
CAI Instrução Assistida pelo Computador
DF Directory Facilitator
DTD Document Type Definition
EaD Educação a Distância
IA Inteligência Artificial
IAD Inteligência Artificial Distribuída
IDE Integrated Development Environment
IEEE Institute of Electrical and Electronics Engineers
IIOP Internet Inter-Orb Protocol
IMS Instructional Management Systems
ISO International Organization for Standardization
JADE Java Agent Development Framework
LIP Learning Information Package
Moodle Modular Object-Oriented Dynamic Learning Environment
MTS Message Transport System
MySQL My Structured Query Language
PAPI Personal and Private Information
PHP PHP: Hypertext Preprocessor
QCL Qualifications, Certificates and Licenses
RDCEO Reusable Definition of Competency or Educational Objective
RdP Rede de Petri
RMI Remote Method Invocation
SMA Sistema Multiagente
STI Sistema Tutor Inteligente
TIC Tecnologia da Informação e Comunicação
WAMP Apache, PHP, MySQL on Windows
XML Extensible Markup Language
viii
Lista de Figuras
ix
Figura 19. Edição de níveis de competências e habilidades iniciais dos alunos. ................. 45
Figura 20. Alerta de novas atividades aos alunos pelo Notifier Activity Agent. ................... 46
Figura 23. Mensagem de auxílio a dúvidas de alunos pelo Help Tutor Agent. .................... 49
Figura 24. Mensagem de atraso de tarefas de alunos pelo Help Tutor Agent. ...................... 49
Figura 30. Tela principal do ambiente Moodle utilizado em turma real .............................. 62
x
Lista de Tabelas
xi
Sumário
Agradecimentos ................................................................................................................... iv
Resumo ................................................................................................................................. vi
Capítulo 1
Introdução ............................................................................................................................. 1
1.2 Objetivos....................................................................................................................... 2
Capítulo 2
2.3.1 JADE...................................................................................................................... 7
2.3.2 Protégé................................................................................................................... 9
xii
2.4.2 Modelos de Aluno IEEE PAPI e IMS LIP ............................................................ 14
Capítulo 3
Capítulo 4
Capítulo 5
xiii
5.1 Descrição dos Testes Empregados .............................................................................. 58
Capítulo 6
xiv
Capítulo 1 - Introdução
Capítulo 1
Introdução
O avanço das tecnologias de comunicação, a crescente expansão de ofertas de cursos nas
modalidades semipresencial e Educação a Distância (EaD) e o aumento da procura por
plataformas educacionais baseadas na Internet, que consigam suportar eficientemente as
diversas situações de interatividade que ocorrem entre professores e alunos, têm
transformado a Internet em uma importante ferramenta para fins pedagógicos [Bremgartner
e Netto, 2011b]. Cada vez mais as Tecnologias da Informação e Comunicação (TICs) são
consideradas no processo de ensino-aprendizagem, para tentar romper as barreiras do
tempo e distância, além de procurar um processo efetivo, onde as ferramentas usadas
permitem uma dinâmica mais flexível e agradável.
Diversas questões de pesquisa têm surgido com a difusão do uso dos AVAs pelo
Brasil e pelo mundo, no qual uma delas é o problema descrito nesta dissertação, detalhado
na seção a seguir.
1
Capítulo 1 - Introdução
Como solução estratégica, propõe-se neste trabalho que uma camada de inteligência
formada por um sistema multiagente esteja acoplada ao ambiente educacional, utilizando
uma ontologia para auxiliar as atividades dos alunos no ambiente pela indicação
personalizada de algum estudante do mesmo curso. A personalização, no contexto deste
trabalho, é a busca por um ou mais estudantes com perfil adequado, isto é, estudantes que
possuam habilidades e competências desejáveis para tratar de dúvidas sobre determinado
assunto das questões de alunos. A proposta se baseia na ideia de que a conclusão de
determinadas atividades colaborativas através das interações entre os estudantes em um
AVA é uma forma de construir o conhecimento do aluno, além das diversas táticas de
ensino presentes na literatura, como a recomendação de materiais de estudos para o aluno e
estratégias de tutoria adaptativas.
1.2 Objetivos
Os objetivos geral e específicos são:
2
Capítulo 1 - Introdução
Específicos:
1.3 Justificativa
3
Capítulo 1 - Introdução
ao longo das interações dos usuários com ele. Por exemplo, se dois alunos A e B obtém as
notas mais altas da turma nas avaliações e possuem as mesmas áreas de interesse, porém A
tem a característica de acessar com mais frequência o sistema ou ainda, possui habilidades
e competências específicas inferidas pelo sistema a mais que B, é certo que o estudante A
seria o mais recomendado para dirimir dúvidas de seus colegas [Bremgartner e Netto,
2010].
Além deste capítulo de Introdução, esta dissertação está estruturada da seguinte forma: o
capítulo 2 trata da revisão bibliográfica relacionada com o projeto desenvolvido, mostrando
conceitos e definições como agentes, ontologias, ferramentas utilizadas, Sistemas Tutores
Inteligentes, perfis e modelos de alunos e Redes de Petri. O capítulo 3 mostra os trabalhos
correlatos. O capítulo 4 apresenta os métodos utilizados no desenvolvimento do projeto,
mostrando o processo de recomendação de estudantes pelo sistema multiagente, sua
ontologia de modelo de aluno e a modelagem do sistema multiagente em Redes de Petri.
Por sua vez, o capítulo 5 apresenta os experimentos realizados, bem como a avaliação e
discussão dos resultados obtidos. No capítulo 6 são relatadas as conclusões e trabalhos
futuros. Por fim, o capítulo 7 mostra as referências bibliográficas.
4
Capítulo 2 – Conceitos e Definições
Capítulo 2
Conceitos e Definições
Este capítulo tem por objetivo contextualizar o projeto de Mestrado, apresentando a
fundamentação teórica dos conteúdos que embasam o desenvolvimento deste trabalho, com
a exposição de algumas abordagens atuais e principais que existem na literatura envolvendo
os agentes de software e SMAs, ontologia, ferramentas utilizadas para o desenvolvimento
do projeto, STIs, modelo de aluno, a questão de habilidades e competências no âmbito
educacional e modelagem em Redes de Petri.
5
Capítulo 2 – Conceitos e Definições
2.2 Ontologias
6
Capítulo 2 – Conceitos e Definições
compartilhado em comum por uma comunidade de usuários [Campos, 2007]. Conceitos são
organizados em hierarquias de classes e possuem atributos e relações entre si. Uma
ontologia é representada em linguagem “inteligível” por agentes de software e usada por
estes para fazer inferências sobre os conceitos desse domínio.
2.3 Ferramentas
O sistema multiagente desenvolvido foi integrado ao AVA Moodle em sua versão 1.9.6, no
qual para o seu funcionamento foi utilizado o pacote WAMP 2.0 contendo o servidor
Apache, o banco de dados MySQL e o PHP no sistema operacional Windows 7. No
desenvolvimento do sistema multiagente foi usado o framework JADE 3.7 [JADE, 2011],
que será descrito a seguir com mais detalhes. A ontologia integrada ao sistema multiagente
foi desenvolvida no editor Protégé versão 3.3.1 [PROTÉGÉ, 2011], que também é
apresentado nesta seção. Para a modelagem em Rede de Petri do sistema multiagente, foi
utilizado o software Snoopy [SNOOPY, 2011].
2.3.1 JADE
O JADE (Java Agent Development Framework) é uma plataforma implementada em Java
que simplifica o desenvolvimento de Sistemas Multiagente (SMAs) [Bellifemine e Caire,
2007]. Os componentes desta plataforma são apresentados na Figura 1.
7
Capítulo 2 – Conceitos e Definições
8
Capítulo 2 – Conceitos e Definições
2.3.2 Protégé
O Protégé [PROTÉGÉ, 2011] é uma ferramenta desenvolvida pelo Departamento de
Informática Médica da Universidade de Stanford. Foi modernizado gradativamente para
acompanhar a evolução da tecnologia de Sistemas Baseados em Conhecimento. É uma
ferramenta que permite construir ontologias de domínio, personalizar formulários de
entrada de dados, inserir e editar dados, possibilitando então, a criação de bases de
conhecimento guiadas por uma ontologia. Sua interface gráfica provê acesso a barra de
menus e barra de ferramentas, além de apresentar áreas de visualização (views) que
funcionam como módulos de navegação e edição de classes, atributos, formulários,
instâncias e pesquisas na base de conhecimento, propiciando a entrada de dados e a
recuperação das informações. A Figura 2 mostra a tela padrão do Protégé.
9
Capítulo 2 – Conceitos e Definições
A capacidade de tratar cada um dos alunos que utilizam o sistema de uma forma
diferenciada é o aspecto mais importante e que caracteriza um STI, pois, apesar das muitas
dúvidas ainda existentes sobre o processo da aprendizagem humana, uma das certezas que
já se tem é que as pessoas aprendem de maneiras diversas.
Os STIs são programas que, ao interagirem com o aluno, modificam as suas bases
de conhecimento (aprendem), percebem as intervenções do aluno e possuem a capacidade
de adaptar as estratégias de ensino de acordo com o desenrolar da interação do aluno com o
ambiente. Este tipo de programa de ensino permite que o conteúdo seja gerado sob
demanda, além de possibilitar que a interação seja iniciada pelo aluno, através de perguntas,
dividindo, assim, com ele o controle sobre a aprendizagem.
Segundo Viccari e Giraffa, os STIs foram projetados como uma tentativa de fazer
com que os programas educacionais deixassem de ser meros “viradores de páginas” e se
tornassem um elemento mais ativo no processo de ensino-aprendizagem. Para as autoras, a
abordagem dos STIs, mesmo que timidamente, vem ao encontro das modernas teorias de
educação, que estão trocando o modelo centrado no professor, por um modelo centrado no
aluno. Algumas diferenças entre um STI e em CAI criados desde a década de 50 são
10
Capítulo 2 – Conceitos e Definições
apresentadas na Tabela 1. Todas essas diferenças devem-se ao fato dos STIs separarem três
questões importantes: o que deve ser ensinado; para quem será ensinado e como será
ensinado.
11
Capítulo 2 – Conceitos e Definições
As informações que fazem parte do perfil do aluno podem vir de diversas fontes,
como o próprio aluno, a interação do aluno com o ambiente, o professor ou o administrador
do sistema. Dependendo do tipo de dados que se têm em um perfil de aluno, poderão ser
utilizadas as informações mais relevantes que irão constituir em um modelo de aluno para
algum objetivo específico no sistema (adaptação do sistema), como preferências,
conhecimento, objetivos e histórico de navegação. Nos sistemas educacionais adaptativos
ou STIs, os dados dos alunos são coletados e com isso, os modelos de alunos são criados.
Sendo assim, o modelo do aluno pode ser obtido através do perfil de aluno, cujo
modelo é um registro de ações do estudante, além de informações sobre seus históricos. Um
12
Capítulo 2 – Conceitos e Definições
13
Capítulo 2 – Conceitos e Definições
preenchidas em um formulário pelo próprio aluno antes de usar pela primeira vez o AVA,
como: nome, áreas de interesse, preferências e curso. Já os dados dinâmicos referem-se ao
desempenho do estudante de acordo com as questões formuladas pelo professor e ao uso
que faz interagindo com o sistema, como por exemplo, sua quantidade de acessos, o
assunto relativo às perguntas que ele elabora no fórum, se o aluno costuma fazer ou não os
trabalhos propostos pelo professor e suas competências e habilidades que os alunos vão
adquirindo ao longo do uso do AVA ou STI. Como exemplo de dados dinâmicos, para cada
área de conhecimento que o aluno pertence podem ser definidos também níveis de suas
habilidades e competências face à maturidade do estudante através das atividades
realizadas, sendo estes níveis atualizados a cada nova experiência do aluno (indicando que
ele estaria mais apto a resolver problemas ou auxiliar seus colegas nesta área), tendo por
base também a quantidade de erros e acertos nas atividades propostas. Outra informação
dinâmica importante do aluno é o seu grau de sociabilidade no ambiente, ou seja, se ele
costuma perguntar frequentemente no fórum ou costuma postar algum arquivo interessante
ou ainda, usa o AVA frequentemente. Além disso, deve ser levado em conta se o aluno
possui a habilidade de ser proativo (por exemplo, se ele entrega rapidamente os exercícios
propostos pelo tutor ou professor).
O padrão IEEE PAPI [PAPI, 2011], criado em 1998, especifica a sintaxe dos dados
14
Capítulo 2 – Conceitos e Definições
• Learner Contact: contém dados pessoais do aluno, como nome, endereço, telefone,
e-mail etc;
A forma de combinar essas categorias não é definida no padrão, o que permite que
sistemas que o adotarem agrupem os dados da forma que julgarem mais adequados. PAPI
não especifica todas as informações possíveis sobre o aluno, mas permite que sistemas
definam suas próprias extensões ou utilizem apenas as categorias que julgarem mais
relevantes para a aplicação. No documento PAPI também são descritas regras para
codificação dos elementos de dados para XML.
Uma das limitações do PAPI é que algumas características não são suficientemente
utilizadas, como objetivos, preferências e interesses, dados essenciais em sistemas
adaptativos. No entanto, um ponto forte é ter focado em dados sobre desempenho e
competências do aluno adquiridas ao longo do seu período acadêmico.
15
Capítulo 2 – Conceitos e Definições
Outro padrão é o IMS LIP, definido em 2001 pelo Global Learning Consortium da
IMS [LIP, 2011], que é um consórcio de instituições educacionais, companhias de software
e editoras. O objetivo do consórcio é promover a disseminação de especificações que
permitam ambientes virtuais de aprendizagem distribuídos. Além disso, a especificação LIP
possui diversos casos de uso descritos em sua especificação, entre eles da perspectiva
individual de padronizar dados de histórico de um aluno em uma aplicação para fins
específicos, bem como fazer um gerenciamento de carreira de alunos. De 1997 a 1999, IMS
trabalhou em conjunto com a IEEE na definição do PAPI, porém no final de 1999, IMS
decidiu produzir sua própria especificação para modelo de aluno, e a partir de 2001 foi
produzido o documento LIP que inclui o modelo de dados e esquemas XML para
implementação do modelo. Atualmente está na sua versão 1.0.1, de 2005. As informações
do aluno são divididas em 11 categorias, conforme pode ser visto na Figura 5.
16
Capítulo 2 – Conceitos e Definições
17
Capítulo 2 – Conceitos e Definições
Em cada categoria foram definidos elementos, que são na sua maioria opcionais, e
estruturas de dados que podem ser estendidas. Em cada categoria LIP são associados os
metadados: referencial (referencial), temporal (temporal) e privacy (privado). O metadado
referencial define a estrutura que contém o identificador único do dado. O metadado
temporal contém informações de tempo relacionadas com o dado, como por exemplo, data
de criação, validade, entre outros, sob os quais devem seguir o padrão ISO8601. Já o
metadado privacy contém os dados relevantes para privacidade. Não há uma especificação
padrão para os metadados privacy e referencial.
Quanto à privacidade dos dados, LIP permite associar uma descrição do tipo de
privacidade que deve ser usada em cada categoria. Mecanismos que devem ser
implementados ou arquiteturas que possam ser empregadas para suportar a privacidade dos
dados não são explicitados no LIP. Quanto à segurança de acesso aos dados, LIP apresenta
a estrutura de chaves públicas e assinatura digital. A forma de implementar esta estrutura,
os algoritmos ou padrões que devem ser utilizados, estão fora do escopo do LIP.
Tanto no modelo IEEE PAPI quanto no IMS LIP em suas categorias foram definidos
elementos que em sua maioria são opcionais, além de estruturas de dados que podem ser
estendidas. O modelo LIP possui a vantagem de ter sido desenvolvido com base no PAPI,
18
Capítulo 2 – Conceitos e Definições
19
Capítulo 2 – Conceitos e Definições
20
Capítulo 2 – Conceitos e Definições
21
Capítulo 2 – Conceitos e Definições
22
Capítulo 2 – Conceitos e Definições
b) Nos Parâmetros Curriculares Nacionais, o quadro que consta ao final de cada área e
disciplina traz as respectivas competências e habilidades, como se ambas fossem
idênticas;
23
Capítulo 2 – Conceitos e Definições
competências, no qual esta palavra possui muitos significados e ninguém pode se arriscar
em dar uma definição única. Perrenoud afirma também que o próprio conceito de
competência mereceria longas discussões, onde a noção de tal termo designa uma
capacidade de mobilizar diversos recursos cognitivos para enfrentar diversos tipos de
situações [Perrenoud, 2000]. Deffune e Depresbiteris [Deffune e Depresbiteris, 2000]
também buscaram definir competências: “as definições dependem dos autores que foram
baseadas, das metodologias de análise das atividades do mundo do trabalho e das maneiras
como as competências serão vertidas para o currículo”.
24
Capítulo 2 – Conceitos e Definições
Porém, o autor nos dá uma ideia de competências e habilidades que pode ser
utilizada em diversas situações na Educação:
25
Capítulo 2 – Conceitos e Definições
Redes de Petri (ou simplesmente RdP) é uma técnica de modelagem que permite a
representação de sistemas, utilizando como alicerce uma forte base matemática [Maciel,
Lins e Cunha, 1996]. Essa técnica possui a particularidade de permitir modelar sistemas
paralelos, concorrentes, distribuídos discretos e não-determinísticos.
RdP foram criadas a partir da tese de doutorado de Carl Adam Petri, intitulada
Kommunication mit Automaten (Comunicação com Autômatos), apresentada à
Universidade de Bonn em 1962 [Petri, 1966]. Desde o princípio, RdP objetivaram a
modelagem de sistemas com componentes concorrentes. A década de setenta marcou o
desenvolvimento da teoria de RdP e a expansão de seu campo de aplicação Em relação às
aplicações, RdP atingiu áreas como a modelagem de componentes de hardware, controle de
processos, linguagens de programação, sistemas distribuídos e protocolos de comunicação.
Ainda na década de setenta, surgiram RdP capazes de modelar características temporais
determinísticas, as RdP temporizadas. As aplicações de RdP aumentaram
consideravelmente na década de oitenta, com o surgimento das chamadas Redes de Petri de
alto nível, como por exemplo, as numéricas, as predicado/transição e as coloridas. Em
meados da década de oitenta surgiram também extensões de RdP estocásticas. Tais
inovações acrescentaram uma grande força descritiva ao processo de modelagem, pelo uso
de marcas com identidade e, consequentemente, do uso de conjuntos de marcas na
representação da dinâmica dos sistemas modelados, bem como pela possibilidade de se
associar taxas de ocorrência não determinísticas aos eventos dos sistemas modelados. Desta
forma, as RdP atingiram outras áreas, como automação de escritórios, bancos de dados,
inteligência artificial e sistemas de informação de maneira geral. Na década de noventa as
RdP tiveram como seu principal representante a segunda versão das RdP Coloridas.
26
Capítulo 2 – Conceitos e Definições
Marcas (tokens) são informações atribuídas aos lugares, para representar a situação
(estado) da rede em um determinado momento. Define-se uma rede de Petri Marcada pela
dupla RM = (R, Mo), onde R é a estrutura da rede e Mo a marcação inicial. Assim, para
simular o comportamento dinâmico dos sistemas, a marcação da rede de Petri é modificada
a cada ação realizada (transição disparada). A Figura 7 ilustra uma rede marcada.
27
Capítulo 2 – Conceitos e Definições
28
Capítulo 2 – Conceitos e Definições
associando um recurso para manipulação de agentes (ou uma ação a ser executada)
mediante uma condição. O trabalho de [Ezzedine, 2008] faz uma abordagem baseada em
agentes de interface para com o usuário, utilizando propriedades internas dos agentes (de
controle, em que não há interação com o usuário) e propriedades externas (que há uma
interação com o usuário, como mostrar uma determinada tela para o usuário). A Figura 9
mostra uma transição que modela serviços de agentes baseada em eventos do ambiente, seja
uma ação do usuário, uma operação finalizada por um agente ou alguma falha no sistema.
29
Capítulo 2 – Conceitos e Definições
Na seção 2.1 foram abordados a tecnologia dos agentes de software e SMAs, o seu
funcionamento como um sistema de computador, sua capacidade, exemplos de aplicações,
o processo de implementação, a estrutura e a arquitetura do sistema.
A seção 2.4 destaca as características dos STIs. Apesar do Moodle utilizado neste
trabalho não ser um STI, algumas características de STI como a personalização e o uso de
modelo de aluno foram acrescidas ao Moodle. Nesta seção são descritos também os
conceitos de perfil e modelo de aluno, além de explanar sobre os dois padrões mais
utilizados atualmente de modelo de aluno: IEEE PAPI e IMS LIP.
A seção 2.6 apresenta o conceito de Redes de Petri, muito úteis para a modelagem
do SMA deste trabalho, além de apresentar suas aplicações em sistemas de tempo real e
extensões que podem ser feitas desta modelagem a fim de ficarem mais compreensíveis os
sistemas desenvolvidos.
30
Capítulo 3 – Trabalhos Correlatos
Capítulo 3
Trabalhos Correlatos
Serão apresentados neste Capítulo os principais trabalhos correlatos que exploram a
personalização em AVAs, onde alguns fazem o uso de SMAs integrados com AVAs, outros
utilizaram modelos de aluno apropriados para suas abordagens, aliado ou não à ontologias.
Todos estes trabalhos ofereceram sustentação para a ideia de integrar um AVA com agentes
de software e ontologias para apoiar as atividades colaborativas desenvolvidas por meio da
personalização, objeto de estudo desta pesquisa.
31
Capítulo 3 – Trabalhos Correlatos
Figura 10 – Ontologia para perfil de aluno no projeto ELENA [Alrifai; Dolog; Nejdl, 2006].
(que dependem do curso) e com as que foram marcadas, são recomendados objetos de
aprendizagem que utilizam o padrão Learning Object Metadata (LOM) e atividades para o
usuário estudar e alcançar aquelas competências desejadas. O sistema serve para gerência
de recursos humanos em empresas e ambientes educacionais.
32
Capítulo 3 – Trabalhos Correlatos
33
Capítulo 3 – Trabalhos Correlatos
Foi apresentada por Faddouli et al [Faddouli et al, 2011] uma proposta de um ambiente
adaptativo que utiliza modelos pedagógicos baseados nas competências que um aluno
pretende alcançar, mas sem ser específico em como obtê-las, apenas inferi-las por meio de
resultados de avaliações de atividades pelo processo de avaliação formativa. Seu trabalho
usa os padrões IMS (LD, QTI e LIP) e de acordo com as notas das avaliações dos alunos,
atividades e materiais de estudos (por exemplo, objetos de aprendizagem) são
recomendados, tendo como objetivo o aumento do nível de aprendizado do estudante. Esse
trabalho baseia-se na ideia de que a mesma tática de ensino que é bem-sucedida para um
aluno pode não ter o mesmo efeito em outro aluno em uma AVA. Os padrões IMS são
utilizados para reuso de materiais, neste caso, objetos de aprendizagem recomendados aos
alunos. A Figura 13 mostra a arquitetura do sistema proposto.
Figura 13. Arquitetura do sistema proposto integrado ao e-learning [Faddouli et al, 2011].
34
Capítulo 3 – Trabalhos Correlatos
35
Capítulo 4– Análise e Implementação do Sistema
Capítulo 4
36
Capítulo 4– Análise e Implementação do Sistema
• Update Profile Agent: responsável por atualizar os dados dos modelos de alunos
mediante as interações dos mesmos com o ambiente, como a atualização dos seus
níveis de habilidades e competências (que variam numa faixa de 0 a 10) específicas
mediante as informações oriundas do Initial Skills Agent e do Activity Assessment
Agent.
37
Capítulo 4– Análise e Implementação do Sistema
• Doubt & Error Profile Agent: agente que faz a busca por dúvidas e erros dos alunos
com base nos resultados das questões respondidas no ambiente e que mapeia tais
erros em habilidades e competências necessárias para a realização das tarefas. Com
estas informações, este agente envia uma mensagem ao Recommended Profile Agent
os dados da existência de alunos com dúvidas e erros;
• Recommended Profile Agent: agente que busca por alunos com níveis de habilidades
e competências específicas (maiores ou iguais às sugeridas pelo professor no
cadastro de novas atividades) capazes de resolver as questões propostas tendo por
base as requisições feitas pelo Doubt & Error Profile Agent. Um aluno também só
poderá ser recomendado se ele tiver acessado recentemente o AVA (cerca de 20
dias). Os dados de recomendações de alunos selecionados pelo Recommended
Profile Agent são salvos no banco de dados do AVA para depois serem listados aos
alunos com erros ou dúvidas relativos à atividade proposta.
Por fim, os agentes de tutoria, que enviam mensagens aos alunos no AVA, são:
• Help Tutor Agent: responsável por enviar dois tipos de mensagens. O primeiro tipo
consiste em mensagens para os alunos com dúvidas, enviando um link que eles
podem acessar para ver seus colegas recomendados. O segundo tipo de mensagens é
para aqueles alunos que não entregaram a tarefa no prazo estabelecido pelo
professor. Assim, uma mensagem de notificação é enviada e também um link para a
tela de recomendação de alunos que podem ajudar a resolver as atividades
atrasadas, tornando o ambiente mais interativo, face a característica de proatividade
dos agentes. As Figuras 23 e 24 mostram mensagens enviadas a um aluno com
dúvidas ou que não entregou sua atividade no prazo pelo serviço de mensagens do
Moodle.
38
Capítulo 4– Análise e Implementação do Sistema
Além dos agentes, outro passo importante do projeto descrito neste trabalho foi desenvolver
uma ontologia de domínio a fim de representar o modelo do aluno baseado em suas
competências e habilidades. Além de permitir uma maior facilidade de inferências e
interpretações semânticas do sistema e do AVA, a ontologia também é útil para a correta
manipulação das trocas de mensagens entre os agentes.
Para a construção do modelo de aluno foi utilizado o padrão IMS LIP, por ter
suporte e exemplos de implementações do modelo, além de ser um padrão muito usado
atualmente e por permitir extensões. Porém, dados como competências e habilidades do
estudante no padrão LIP são genéricos, o que para determinadas disciplinas ou cursos
específicos, pode não refletir diretamente como está o nível de conhecimento do aluno.
Sendo assim, embora utilizando este padrão, o LIP foi estendido para as necessidades deste
projeto, enfatizando as competências e habilidades do aluno, tanto genéricas (que não
dependem da disciplina ou curso, como responder rapidamente qualquer atividade proposta
pelo professor) quanto específicas (por disciplina ou curso), nas categorias Activity e
Competency. Na categoria Activity também estão dados das atividades propostas pelo
39
Capítulo 4– Análise e Implementação do Sistema
Interest Description
40
Capítulo 4– Análise e Implementação do Sistema
definição de Perrenoud na seção 2.5. Sendo assim, cada competência do aluno é composta
por um conjunto de habilidades específicas, como mostrado graficamente na Figura 15.
Formalmente, seja C o conjunto de competências {C1, C2, ...,, Ci}, onde cada elemento Ci
de C é composto por diversas habilidades, ou seja, Ci = {hi1, hi2, ..., him}. Dessa forma, C =
{{h11, h12, ..., h1m1}, {h21, h22, ..., h2m2}, ..., {hi1, hi2, ..., himi}}, indicando que cada
competência Ci é composta ou formada por mi habilidades. Como exemplo, no contexto da
disciplina de Cálculo Numérico, componente curricular de cursos de Engenharia e
Ciências, segundo Burden e Faire [Burden e Faire, 2010] existem diversas técnicas para
encontrar raízes de funções, onde cada técnica está associada a uma ou mais competências
necessárias para resolver esse tipo de questão. Segundo um professor experiente nessa área
de Cálculo Numérico, uma abordagem para a competência “Achar as raízes de funções pelo
método da Bisseção” pode ser definida como a composição das seguintes habilidades:
“Manuseio da máquina de calcular”, “Compreensão de funções (continuidade, Teorema do
Valor Médio, plotagem de gráficos, convergência e divergência, etc.)” e “Entendimento do
funcionamento do Método da Bisseção (escolha do intervalo inicial, aplicação de fórmula,
critério de seleção do novo intervalo, etc.)”. As competências e habilidades específicas
estão no banco de dados do Moodle como campos acrescidos na tabela “mdl_user”.
A ontologia de modelo de aluno foi elaborada no editor Protégé e possui três classes
principais: Concept, cujas filhas são as subclasses AID (contendo os agentes que fazem
parte do sistema multiagente) e Learner_LIP (contendo as cinco categorias utilizadas
responsáveis pelo modelo do aluno no padrão LIP); Predicate, responsável pelos fatos
sobre o ambiente onde atuam os agentes; e AgentAction, contendo as ações que os agentes
executam no sistema. Todas as três classes são úteis para permitir que a ontologia seja
integrada ao sistema multiagente implementado no framework JADE. A ontologia
desenvolvida no Protégé foi convertida em beans Java através de um plugin chamado
BeanGenerator, que possibilitou fazer a integração dos agentes com a ontologia.
41
Capítulo 4– Análise e Implementação do Sistema
42
Capítulo 4– Análise e Implementação do Sistema
43
Capítulo 4– Análise e Implementação do Sistema
requeridas para execução de atividades com os níveis que cada aluno possui.
44
Capítulo 4– Análise e Implementação do Sistema
O estudante, por sua vez mostrado em (2) na Figura 14, interage com o sistema, seja
pelo cadastro de seus dados pessoais, cujos dados fazem parte da categoria Identification do
padrão de modelo de aluno LIP utilizado na ontologia, pela postagem de algo no fórum ou
resolução de atividades propostas no ambiente pelo professor. À medida que os estudantes
vão interagindo com o ambiente e respondendo as atividades, seus modelos de aluno que
contém seus dados de interação com o sistema, incluindo seus níveis de habilidades e
competências (que variam de 0 a 10), são atualizados no banco de dados pelo Update
Profile Agent que está integrado à ontologia de modelo de aluno. O agente de tutoria
Notifier Activity Agent, como o próprio nome diz, recebe dados de novas atividades e
prepara mensagens a serem enviadas aos alunos. Essas mensagens notificam e alertam os
alunos, quando eles realizam login no ambiente, de novas atividades propostas pelo
professor, como é ilustrado na Figura 20.
45
Capítulo 4– Análise e Implementação do Sistema
Figura 20. Alerta de novas atividades aos alunos pelo Notifier Activity Agent.
46
Capítulo 4– Análise e Implementação do Sistema
base nesta escolha, devem calcular os demais valores de x até que f(x) = 0 usando o método
da bisseção, considerando uma tolerância de ±0,0001.
Assim que o aluno responde a questão com todos os valores, o agente de atualização
Activity Assessment Agent será o encarregado de fazer a correção da atividade, para calcular
a pontuação do aluno e enviar esta pontuação como mensagem ao Update Profile Agent,
que armazena a pontuação do aluno no banco de dados do AVA e calcula de quanto os
níveis de competências e habilidades devem ser incrementados ou decrementados em
função dos resultados das questões dos alunos.
Na execução das atividades, dúvidas ou erros podem surgir por parte dos alunos,
devido aos seus resultados negativos nas atividades, detectados pelo agente de
recomendação Doubt & Error Profile Agent. Com o objetivo de ajudar o aluno a encontrar
a resposta correta para sua atividade, outro agente de recomendação, Recommended Profile
Agent, utilizando as regras definidas pela ontologia de modelo de aluno, é responsável por
47
Capítulo 4– Análise e Implementação do Sistema
Outro dado utilizado pelo Recommended Profile Agent diz respeito às datas de
acesso pelos alunos ao ambiente, onde os alunos que acessaram mais recentemente o
ambiente (tendo como base os últimos 20 dias) poderão ser os recomendados. Mesmo que
eles tenham elevados níveis de competências e habilidades, eles não podem ser
recomendados se eles não tiverem acessado o AVA ultimamente. Os dados de acesso ao
ambiente educacional compreendem a categoria Accessibility do LIP.
Para indicar aos alunos com dúvidas que eles podem obter ajuda em suas
atividades, o agente de tutoria Help Tutor Agent prepara mensagens a serem enviadas via
ambiente educacional aos alunos que têm dúvidas para obterem ajuda, notificando que eles
podem clicar no link “clicando aqui!”. A Figura 23 mostra uma mensagem enviada a um
aluno com dúvidas pelo serviço de mensagens do Moodle.
O Help Tutor Agent também pode enviar mensagens para os alunos que não
entregaram as tarefas solicitadas pelo professor no prazo estipulado para entrega, como
apresentado na Figura 24, tornando o ambiente mais interativo, face à característica de
proatividade dos agentes.
48
Capítulo 4– Análise e Implementação do Sistema
Figura 23. Mensagem de auxílio a dúvidas de alunos pelo Help Tutor Agent.
Figura 24. Mensagem de atraso de tarefas de alunos pelo Help Tutor Agent.
Quando o aluno que estiver com dificuldades nas tarefas clicar no link “clicando
49
Capítulo 4– Análise e Implementação do Sistema
aqui!” mostrado nas Figuras 23 e 24, será mostrada a tela de alunos recomendados para
sanar dúvidas, representada na Figura 25, contendo o nome da atividade que o aluno tem
dúvidas, os colegas recomendados e os interesses dos alunos recomendados. É importante
ressaltar que os alunos podem também clicar no link “Dúvidas? Clique aqui para ver quem
pode ajudar você...”, mostrado na Figura 21 anteriormente, para a tela de recomendação
sempre ficar acessível aos estudantes no AVA.
Para o sistema desenvolvido foi feita uma modelagem em Rede de Petri Marcada não-
determinística, com o intuito de mostrar a correta ordem de execução e sincronismo dos
50
Capítulo 4– Análise e Implementação do Sistema
agentes, bem como as interações dos usuários com o AVA, que influencia diretamente no
comportamento dos agentes. A modelagem, apresentada na Figura 27 com as marcações
iniciais, e a validação da RdP desenvolvida foram feitas no software Snoopy [SNOOPY,
2011]. O não determinismo da RdP se aplica em casos como o acerto de atividades pelos
alunos ou se o professor não elaborou novas atividades ainda, justificando o fato de que nas
simulações realizadas, nem sempre os lugares finais (de recomendação e de mensagens aos
alunos) foram alcançados. Os lugares (nomeados por P1, P2,..., P24) e as transições (T1,
T2,..., T25) foram convenientemente nomeados desta forma para uma melhor disposição
estética da modelagem. As descrições dos lugares e das transições estão listadas na Tabela
3.
Na RdP Marcada da Figura 27, as transições T1, T5, T10, T11, T12, T16 e T19
foram expandidas e projetadas no paradigma de condição-ação, utilizando-se uma
adaptação dos trabalhos de [Gonçalves, 2010] e [Ezzedine, 2008]. O padrão adotado destas
transições expandidas é mostrado na Figura 26.
Transição T
Condição
Ações a Ações a
serem serem
executadas executadas
em caso em caso
afirmativo negativo
Nestas transições expandidas, mediante a uma dada condição, ações são executadas
em caso afirmativo e outras, em caso negativo. O recurso a ser utilizado é alguma
ferramenta ou ação a ser executada (como trocas de mensagens entre agentes e recurso de
mensagens do Moodle, por exemplo) independentemente do resultado da condição aplicada
ser afirmativo ou negativo. As transições que sofreram esta expansão são apresentadas no
Apêndice D desta dissertação.
51
Capítulo 4– Análise e Implementação do Sistema
52
Capítulo 4– Análise e Implementação do Sistema
53
Capítulo 4– Análise e Implementação do Sistema
54
Capítulo 4– Análise e Implementação do Sistema
55
Capítulo 4– Análise e Implementação do Sistema
56
Capítulo 5– Testes e Avaliação do Sistema
Capítulo 5
Foram realizados diversos testes para detectar a presença de falhas no sistema, bem
como avaliar sua eficácia. A abordagem de implementação foi a prototipação e a cada
funcionalidade implementada foram realizados testes específicos e com isso a qualidade do
software foi sendo melhorada.
1
http://www.apachefriends.org/pt_br/xampp-windows.html
2
http://www.apachefriends.org/pt_br/xampp-windows.html
3
http://www.mysql.com/
4
http://php.net/
5
http://www.oracle.com
57
Capítulo 5– Testes e Avaliação do Sistema
Este capítulo descreve os testes efetuados. Para melhor compreensão esta seção está
subdividida nas seguintes seções: a seção 5.1 trata da descrição do processo de teste
empregado, abordando as duas etapas, que foram a simulação com uma turma fictícia e um
teste em uma turma real, ambas de Cálculo Numérico; e a seção 5.2 apresenta as
conclusões dos testes.
Foram realizados testes de nosso sistema com uma turma simulada de Cálculo Numérico no
Moodle contendo 15 alunos (nomeados de A1 a A15) que possuem diferentes perfis. O AVA
esteve disponível no servidor do Laboratório de Robótica Educacional da Universidade
Federal do Amazonas (que faz parte do projeto LaboREAm). Foram elaboradas duas
atividades envolvendo assuntos de Método da Bisseção (chamadas de atividades 1 e 3) e
uma atividade envolvendo o Método da Falsa Posição (atividade 2).
Nas atividades (1) e (3), cuja competência envolvida é “Achar as raízes de funções
pelo método da Bisseção”, os níveis de habilidades requeridos escolhidos pelo professor
para “Manuseio da máquina de calcular”, “Compreensão de funções” e “Entendimento do
método da bisseção” foram, respectivamente, 3, 4, e 5. Na atividade (2), cuja competência
envolvida é “Achar as raízes de funções pelo método da Falsa Posição”, as habilidades
requeridas que têm o mesmo nome das atividades (1) e (3) tiveram os mesmos níveis destas
e as habilidades “Noção de erro absoluto” e “Entendimento do funcionamento do método
da falsa posição” tiveram, respectivamente, 4 e 5.
58
Capítulo 5– Testes e Avaliação do Sistema
(antes da execução das atividades pelos alunos) e finais (depois da execução das atividades
e dos agentes de atualização) que caracterizam os alunos. As habilidades iniciais dos alunos
estão na primeira coluna de cada habilidade requerida para as atividades, enquanto que as
habilidades finais estão em cada segunda coluna. As identificações de quais atividades cada
aluno fez até a data de término das mesmas estão na última coluna, sendo que as atividades
representadas em colchetes mostram que o aluno errou aquela atividade. Todos os 15
alunos receberam a notificação de novas atividades, antes de responderem as mesmas, pelo
Notifier Activity Agent, como mostrado na Figura 20.
Tabela 4. Níveis iniciais e finais de habilidades dos alunos [Bremgartner, Netto, 2011b].
Cada estudante com dúvida em atividades recebeu uma mensagem do Help Tutor
Agent indicando que eles poderiam tirar dúvidas com seus colegas, clicando no link de
recomendação já mostrado na Figura 23. Quando o estudante com dúvida clica neste link
aparece a tela mostrada na Figura 25, com os alunos recomendados para cada atividade e
seus interesses, a fim de que os alunos saibam que outras áreas de interesse seus colegas
59
Capítulo 5– Testes e Avaliação do Sistema
costumam atuar. O Help Tutor Agent também notificou todos os alunos que não entregaram
as tarefas na data limite, enviando a mensagem já mostrada na Figura 24. Percebe-se na
Tabela 4, por comparações entre as duas colunas de cada habilidade requerida nas
atividades, que os níveis de competências e habilidades dos alunos foram incrementados de
uma unidade para cada questão correta, enquanto houve um decréscimo de uma unidade
para cada uma das atividades erradas.
Na Figura 28, os agentes Activity Assessment Agent (representado por “a”) e Initial
Skills Agent (representado por “i”) fazem requisições a um agente auxiliar chamado
Directory Facilitator (“df”), que existe por padrão no JADE e é responsável pelo correto
gerenciamento das mensagens, registrando agentes que solicitam e que fornecem serviços.
Em seguida, é estabelecida a comunicação entre os agentes Update Profile Agent (“u”) e
60
Capítulo 5– Testes e Avaliação do Sistema
Activity Assessment Agent e Initial Skills Agent, a fim de que estes dois agentes enviem
informações para o Update Profile Agent, onde este é responsável por atualizar no banco de
dados do Moodle as informações relativas ao modelo do aluno.
61
Capítulo 5– Testes e Avaliação do Sistema
Após os resultados satisfatórios obtidos com o teste em uma turma fictícia, foi a vez de
avaliar a eficácia do sistema em uma turma real composta por 33 alunos da disciplina de
Cálculo Numérico do curso de Matemática do período letivo 2011/02 da Universidade
Federal do Amazonas, ministrada de forma presencial, porém as atividades para testes do
sistema foram passadas pelo ambiente Moodle (disponível no link
http://laboream.dcc.ufam.edu.br/moodle/). A Figura 30 mostra o ambiente usado pela
turma.
Como pode ser visto na Figura 30, foram passadas duas atividades: uma envolvendo
o método da bisseção e outro envolvendo o método da falsa posição. Os alunos tiveram
acesso a um arquivo no formato PDF explicativo sobre como os alunos devem fazer as
atividades no ambiente. No AVA estavam também alguns links de notícias, fórum para
postagens de dúvidas e o link de recomendação, para mostrar quem são os alunos que
podem auxiliar no caso de dúvidas ou erros em atividades.
O teste em turma real foi dividido em duas etapas, na qual a primeira etapa foi
disponibilizar o AVA no servidor do LaboREAm para que os alunos fizessem as atividades
em um período de tempo pré-estabelecido, com os agentes sendo executados em paralelo ao
62
Capítulo 5– Testes e Avaliação do Sistema
Moodle a fim de tornar o ambiente mais adaptável aos alunos pela recomendação de alunos
com dúvidas. A segunda etapa consistiu em avaliar e verificar o processo de interação com
os alunos após a recomendação de alunos auxiliares da mesma turma, verificando-se ainda
se os alunos que erraram na primeira etapa, após o contato com seus colegas que podem
auxiliá-los, acertaram ao fazerem os exercícios de Cálculo Numérico pela segunda vez. A
execução das tarefas dos agentes nestas duas etapas ocorreu do mesmo modo que no
processo de teste simulado.
Ao final de cada etapa dos testes reais foi passado um questionário de pesquisa de
opinião a fim de que os alunos expressassem suas ideias a respeito do sistema apresentado a
eles, além de obter informações para entender o motivo pelo qual muitos alunos não
responderam as atividades propostas no AVA Moodle. O questionário que foi passado aos
alunos ao término da primeira fase dos testes, com seus resultados obtidos, está apresentado
na Tabela 5.
63
Capítulo 5– Testes e Avaliação do Sistema
Percebe-se pela Tabela 5 que existiram alunos que não fizeram as atividades. Com
isso, muitos alunos foram alertados do atraso de suas atividades pelos agentes de tutoria.
Apenas 2 alunos acertaram as questões nesta primeira etapa dos testes, que foram os
recomendados pelos agentes de recomendação a auxiliarem seus colegas. Após a segunda
etapa de testes reais foi passado o segundo questionário, onde as perguntas e resultados
obtidos estão apresentados na Tabela 6.
64
Capítulo 5– Testes e Avaliação do Sistema
65
Capítulo 5– Testes e Avaliação do Sistema
A Figura 31 mostra por meio de gráficos o desempenho dos alunos antes e depois
do processo de recomendação, ou seja, nas duas etapas dos testes em turma real. Percebe-se
que houve uma melhora por parte dos alunos na resolução de suas atividades, apesar da
taxa de erros ainda ser elevada (63%). Porém, estes erros persistiram em decorrência de
fatores externos ao AVA, como falta de compromisso e motivação por parte dos alunos para
refazerem as atividades propostas.
(a) (b)
Figura 31. Gráficos de comparação de desempenho dos alunos (a) antes e (b) depois do
processo de recomendação na turma de Cálculo Numérico.
Os resultados dos testes realizados nesta seção não somente comprovam que o sistema é
viável de ser executado em ambientes educacionais reais, como também mostram que o
recurso de recomendação personalizada de alunos com perfil adequado para tirar dúvidas
de seus colegas aumentou a motivação da aprendizagem colaborativa entre estudantes,
sendo uma importante estratégia pedagógica, face à utilização do sistema multiagente que
utiliza a ontologia baseada em competências e habilidades do aluno elaborados neste
projeto de Mestrado, ambos integrados ao AVA Moodle. Os resultados dos testes aplicados
mostraram-se satisfatórios, tanto em sua parte técnica, pelas simulações, quanto no uso do
sistema por alunos reais, com base nas respostas obtidas pelos alunos através dos
questionários passados em sala de aula. Conseguiu-se, assim, observar que a interação entre
aprendizes incentivados pela integração dos agentes com a ontologia de modelo de aluno
66
Capítulo 5– Testes e Avaliação do Sistema
no Moodle foi um papel importante para os alunos concluírem as atividades propostas pelo
professor com êxito.
Uma situação interessante que houve no processo de testes era quando um aluno
tinha um perfil composto de habilidades características de um exercício específico, por
exemplo, “método da bisseção”, mas não tinha a composição de habilidades necessárias
para a competência “entendimento do método da falsa posição”. Neste caso, ele foi
recomendado apenas para a atividade relacionada a “método da bisseção”. Nota-se que o
SMA analisa as habilidades individualmente, sendo preciso no processo de recomendação
de estudantes.
Contudo, esta estratégia utilizada de recomendação veio a ser mais uma forma de
auxiliar alunos a concluírem suas atividades, aumentando seus níveis de aprendizado por
meio de interações entre si.
67
Capítulo 6 – Conclusões e Trabalhos Futuros
Capítulo 6
Os testes simulados com uma turma fictícia foram pautados para explorar a
68
Capítulo 6 – Conclusões e Trabalhos Futuros
Com os resultados dos testes, pode-se dizer que o sistema obteve sucesso em
questões fundamentais como: 1) A ontologia desenvolvida de modelo de aluno baseado em
suas habilidades e competências tendo por base as teorias de Perrenoud e fazendo uso do
padrão mais utilizado atualmente, o LIP, foi útil para o correto funcionamento do sistema;
2) O SMA desenvolvido conseguiu executar seus objetivos a ele designados; 3) os alunos
interagiram com o sistema e entre si, a fim de obterem maior êxito em suas atividades.
Nos testes também foi observado que o SMA faz uma análise das habilidades dos
alunos separadamente, ou seja, cada uma delas é analisada para verificar se o aluno estaria
apto ou não a ser recomendado pelo sistema. Isto foi útil, pois apesar de um aluno não ter
todas as habilidades que constituem uma determinada competência, algumas delas fizeram
parte de uma outra competência. Desta forma, ficou comprovado que usar a teoria de
Perrenoud, dividindo as competências dos alunos em habilidades específicas, foi uma
estratégia promissora aplicada no SMA e na ontologia.
69
Capítulo 6 – Conclusões e Trabalhos Futuros
base nas competências e habilidades específicas e detalhadas que cada aluno possui. Sendo
assim, apesar de não termos parâmetros quantitativos devido às diferenças de métodos
empregados para compararmos a eficiência de nosso sistema com outras abordagens na
literatura, nosso sistema aqui apresentado nesta dissertação vem a ser mais uma forma de
contribuir para o auxílio de aprendizagem de alunos com dúvidas em atividades através da
recomendação de alunos auxiliares, além das diversas existentes na literatura, com táticas
pedagógicas distintas, como recomendação de objetos de aprendizagem, modificações de
cenários de ambientes, recomendações de atividades propostas, entre outras.
70
Capítulo 6 – Conclusões e Trabalhos Futuros
melhores perfis baseados em suas habilidades e competências serão feitas a partir de reuso
de dados de um mesmo aluno em outros sistemas para auxiliar estudantes com dificuldades
de aprendizado. Além disso, outra sugestão de trabalho futuro é integrar este trabalho a
diversos outros trabalhos que existem no LaboREAm, como apoio de atividades de fóruns
em AVAs e caracterização de agentes para apoiar atividades em laboratórios de telerobótica.
71
Referências Bibliográficas
Alrifai, M.; Dolog, P.; Nejdl, W. (2006) “Learner Profile Management for Collaborating
Adaptive eLearning Applications”. APS'2006: Joint International Workshop on
Adaptivity, Personalization and the Semantic Web at the 17th ACM Hypertext’06
conference, Odense, Denmark.
Bellifemine, F.; Caire, G. (2007) “Developing Multi-Agent Systems with JADE”. Ed.
Wiley, England.
Berners-Lee, T.; Hendler, J.; Lassila, O. (2001) The Semantic Web, Scientific American.
Bremgartner, V.; Netto, J.F.M. (2010) “Utilizando Ontologias para Personalizar Atividades
Colaborativas em Ambientes Virtuais de Aprendizagem”. Anais da II Escola Regional
de Informática, Manaus, AM.
72
Mapa Conceitual”. Encontro Nacional de Pesquisa em Ciência da Informação, UFBA,
Salvador.
Ezzedine, H. (2008) “Use of Petri Nets for Modeling an Agent-Based Interactive System:
Basic Principles and Case” Petri Net: Theory and Apllications, Open Databse Access.
Fröschl, C. (2005) “User Modeling and User Profiling in Adaptive E-learning Systems”.
Master’s Thesis, Institute for Information Systems and Computer Media, Graz
University of Technology, Graz, Austria.
73
Bento Gonçalves, Brazil.
Liu, W. (2009) “Using data mining to dynamically build up just in time learner models”.
Master’s Thesis, Department of Computer Science, University of Saskatchewan,
Saskatoon, Canada.
Maciel, P.R.M., Lins, R.D., Cunha, P.R.F. (1996) Introdução às Redes de Petri e
Aplicações, 10ª Escola de Computação, São Paulo, Campinas.
MOODLE (2011). A Free, Open Source Course Management System for Online Learning.
URL: <http://www.moodle.org/>. Acesso em fevereiro de 2011.
Musa, D. L.; Oliveira, J. P. M.. (2007) “OntoLearner: Uma Ontologia para Perfis de Alunos
Baseada em Padrões”, Anais Do XVIII SBIE – Simpósio Brasileiro de Informática na
Educação. São Paulo - SP.
Okada, A. (2003) “Desafio para EaD. Como fazer Emergir a Colaboração e a Cooperação
em Ambientes Virtuais de Aprendizagem?” Educação Online: teorias, práticas,
74
legislação, formação corporativa. Edições Loyola, 2ª ed., São Paulo.
PAPI. IEEE, Draft 8 standard for learning technology. (2011). Public and Private
Information for Learners. URL: < www.edutool.com/papi>. Acesso em janeiro de 2011.
Perrenoud, P. (2000) “10 Novas Competências para Ensinar”. Artmed, Porto Alegre, RS.
Perrenoud, P; Thurler, M. G. et al. (2002) “As Competências para Ensinar no Século XXI –
A Formação dos Professores e o Desafio da Avaliação”. Artmed, Porto Alegre, RS.
Petri, C.A. (1966) Kommunication mit Automaten. Schriften des IIM Nr.2, Institut für
Instrumentelle Mathematik, Bonn, 1962. Traduzida para o inglês como:
Communication with Automata, Technical Report RADC-TR-65-377, Griffiths Air
Force Base, New York, 1966, Vol.1, Suppl.1.
RDCEO. Reusable Definition of Competency or Educational Objective 1.0. (2011). URL: <
http://www.imsglobal.org/competencies/rdceov1p0/imsrdceo_infov1p0.html >. Acesso
em abril de 2011.
75
Ribeiro, J. P. A. Reategui, E. Boff, E. (2007) “Integrando um Agente Pedagógico para
Recomendação de Tutores a um Sistema de Gerência de Cursos”. In: Revista Novas
Tecnologias na Educação, vol. 5, nº 1.
Russel, S.; Norvig, P. (2004): “Inteligência Artificial”. Editora Campus, São Paulo.
Sleeman, D. & Brown, J. S. (1982) “Intelligent Tutoring Systems”. New York: Academic
Press.
76
APÊNDICE A – Publicações Produzidas no
Decorrer do Mestrado
Bremgartner, V.; Netto, J.F.M. (2010) “Utilizando Ontologias para Personalizar Atividades
Colaborativas em Ambientes Virtuais de Aprendizagem”. Anais da II Escola Regional
de Informática, Manaus, AM.
Bremgartner, V. e Netto, J.F.M. (2011) “An Adaptive Strategy to Help Students in e-
Learning Systems Using Competency-Based Ontology and Agents”. Proc. IEEE
International Conference on Intelligent Systems Design and Applications – ISDA 2011.
Bremgartner, V.; Netto, J.F.M. (2011) “Auxílio Personalizado a Estudantes em Ambientes
Virtuais de Aprendizagem Utilizando Agentes e Competências”. Anais do XXII
Simpósio Brasileiro de Informática na Educação (SBIE), Aracaju, SE.
Silva, V.; Bremgartner, V.; Ribeiro, M.; Castro Junior, A. N.; Nascimento, R.P. (2011)
“Uma Experiência de Virtualização de Disciplina em Cursos de Graduação”. Anais do
XVII Workshop de Informática na Escola (WIE), Aracaju, SE.
77
APÊNDICE B – Ontologia de Modelo de Aluno
Desenvolvida
As duas figuras a seguir mostram a ontologia resumida e a ontologia completa,
apresentando as principais relações entre os agentes e suas ações realizadas sobre o modelo
de aluno baseado no padrão IMS LIP.
78
79
As linhas a seguir mostram os “slots” ou propriedades das classes em código OWL,
que é um trecho da ontologia que constitui o modelo de aluno.
<!--
/////////////////////////////////////////////////////////////////////////
//////////////
//
// Data properties
//
/////////////////////////////////////////////////////////////////////////
//////////////
-->
<!-- http://jade.cselt.it/messagecontentontology#RDCEO_description --
>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#RDCEO_description"
>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
</owl:DatatypeProperty>
<!--
http://jade.cselt.it/messagecontentontology#RDCEO_description_required --
>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#RDCEO_description_
required">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#acc_extension">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Accessibility"/
>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#act_extension">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
80
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#address">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#comp_biss">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#comp_extension">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#comp_fp">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#comp_newrap">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
81
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#contactinfo">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#contentype_activity
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#contentype_activit
y">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!--
http://jade.cselt.it/messagecontentontology#contentype_competency -->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#contentype_compete
ncy">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#description_activity
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#description_activi
ty">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!--
http://jade.cselt.it/messagecontentontology#description_comp_biss -->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#description_comp_b
iss">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_biss"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#description_comp_fp
-->
82
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#description_comp_f
p">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_fp"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!--
http://jade.cselt.it/messagecontentontology#description_comp_newrap -->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#description_comp_n
ewrap">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#description_interest
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#description_intere
st">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Interest"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#email">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#contactinfo"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#evaluation">
<rdfs:comment>campo sumgrades</rdfs:comment>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
83
<!-- http://jade.cselt.it/messagecontentontology#firstname -->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#firstname">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#name"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#has_com_abserr_not -
->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_abserr_not
">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_biss">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#has_com_calc_conc --
>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_calc_conc"
>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_calc_mac">
84
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#has_com_comp_func --
>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_comp_func"
>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_f_pos">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#has_com_newrap">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:range rdf:resource="&xsd;boolean"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#id_activity">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#id_identification --
>
85
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#id_identification"
>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!--
http://jade.cselt.it/messagecontentontology#id_identification_last_data_a
cess -->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#id_identification_
last_data_acess">
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#acc_extension"/
>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#last_data_access">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Accessibility"/
>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#acc_extension"/
>
<rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#lastname">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#name"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#level_com_abserr_not
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_abserr_n
ot">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
86
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_biss">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#level_com_calc_conc
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_calc_con
c">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#level_com_calc_mac -
->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_calc_mac
">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#level_com_comp_func
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_comp_fun
c">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
87
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_f_pos">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_com_newrap">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
<rdfs:range rdf:resource="&xsd;int"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#level_required">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#act_extension"/
>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_extension"
/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#name_com_abserr_not
-->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_abserr_no
t">
88
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_fp"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_biss">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_biss"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#name_com_calc_conc -
->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_calc_conc
">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#name_com_calc_mac --
>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_calc_mac"
>
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_biss"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_fp"/>
89
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<!-- http://jade.cselt.it/messagecontentontology#name_com_comp_func -
->
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_comp_func
">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_biss"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_fp"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_f_pos">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_fp"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#name_com_newrap">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Competency"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#RDCEO_descripti
on"/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#comp_newrap"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#phone">
90
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Identification"
/>
<rdfs:subPropertyOf
rdf:resource="http://jade.cselt.it/messagecontentontology#contactinfo"/>
<rdfs:range rdf:resource="&xsd;string"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#preference">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Accessibility"/
>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#queryresult">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#HasAssessment"/
>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#queryskills">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#HasrequiredSkil
ls"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#startdate">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&xsd;dateTimeStamp"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty
rdf:about="http://jade.cselt.it/messagecontentontology#testmonial">
<rdfs:domain
rdf:resource="http://jade.cselt.it/messagecontentontology#Activity"/>
<rdfs:range rdf:resource="&rdfs;Literal"/>
</owl:DatatypeProperty>
91
APÊNDICE C – Código-fonte de um Agente
Neste apêndice é apresentado o código-fonte do agente Doubt & Error Profile Agent
desenvolvido na plataforma JADE.
DoubtErrorProfileAgent.java
package LIPontology;
import jade.content.lang.Codec;
import jade.content.lang.Codec.CodecException;
import jade.content.lang.sl.SLCodec;
import jade.content.onto.Ontology;
import jade.content.onto.OntologyException;
import jade.core.AID;
import jade.core.Agent;
import jade.core.behaviours.*;
import jade.domain.DFService;
import jade.domain.FIPAException;
import jade.domain.FIPAAgentManagement.DFAgentDescription;
import jade.domain.FIPAAgentManagement.ServiceDescription;
import jade.lang.acl.ACLMessage;
import jade.lang.acl.MessageTemplate;
import java.awt.List;
import java.io.IOException;
import java.io.Serializable;
import java.net.URLConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import LIPontology.OWL_LIP_profileOntology;
/**
* @author Vitor Bremgartner
*
* Um agente que faz uma busca por dúvidas e
* erros dos alunos com base nos resultados das questões postadas no
* ambiente pelo aluno (Doubt & Error Agent) e que mapeia tais erros de
* determinada tarefa em habilidades e competências necessárias para
92
* a realização da mesma. Envia mensagem de informação de alunos com
* dúvidas ao RecommendedProfileAgent paar este buscar os melhores alunos com
estas habilidades
* e competencias que possam ajudar na tarefa.
*/
@Override
protected void setup() {
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn =
DriverManager.getConnection("jdbc:mysql://localhost:3306/sala","peter","secret");
mp = new MessageParser();
getContentManager().registerLanguage(codec);
getContentManager().registerOntology(ontology);
}
catch (Exception e) {
e.printStackTrace();
msg.setLanguage(codec.getName());
msg.setOntology(ontology.getName());
93
List l = new List();
reccomendedProfileAgents = new
AID[result.length];
msg.addReceiver(reccomendedProfileAgents[i]);
}
}
catch (FIPAException fe) {
fe.printStackTrace();
}
try {
String resultado = "";
int iduser;
String atualizacao = null;
String consulta = null;
String consulta2 = null;
String consulta11 = null;
Statement stmt =
conn.createStatement();
Statement stmt2 =
conn.createStatement();
94
Statement stmt3 =
conn.createStatement();
Statement stmt4 =
conn.createStatement();
Statement stmt5 =
conn.createStatement();
Statement stmt11 =
conn.createStatement();
//String stmtStr = "SELECT
MAX(person_id) from person;";
//consulta abaixo para saber o ultimo que
acessou
/* String stmtStr = "SELECT firstname
from mdl_user join mdl_user_lastaccess " +
"on
mdl_user_lastaccess.userid = mdl_user.id where mdl_user_lastaccess.timeaccess =
(select MAX(mdl_user_lastaccess.timeaccess)from mdl_user_lastaccess);";
*/
/* String stmtStr = "SELECT firstname
FROM mdl_user JOIN mdl_user_lastaccess " +
"ON
mdl_user_lastaccess.userid = mdl_user.id " +
"WHERE
mdl_user_lastaccess.timeaccess > ( SELECT MAX( mdl_user_lastaccess.timeaccess ) "
+
"FROM mdl_user_lastaccess )
-300;"; */
95
//1 ResultSet rs =
stmt.executeQuery(stmtStr);
// 2 ResultSet rs =
stmt.executeQuery(stmtStrQuestion);
//3
ResultSet rs =
stmt.executeQuery(stmtStrQuizErr);
/* if (rs.first()) {
// maxIdx = rs.getInt(1);
resultado = rs.getString(1);
} */
/*
//obtendo idusers, levels e atualizando levels
int levelt;
if (rs.first()){
while(rs.next()){
} }
*/
int levelt;
ResultSet rs5;
String rec1, samecourse;
//mesmo curso do aluno com dúvida
samecourse = " and id in (SELECT
96
u.id FROM mdl_role_assignments rs INNER JOIN mdl_user u " +
" ON u.id = rs.userid INNER
JOIN mdl_context e ON rs.contextid = e.id " +
" WHERE e.contextlevel =50
AND rs.roleid =5 AND e.instanceid = ";
if (rs.first()){
//Elementos da ontologia
//userid
defaultidentification.setId(rs.getInt(1));
defaultactivity.setIdactivity(rs.getInt(2));
defaultactivity.setEvaluation(rs.getInt(3));
resultado = resultado +
defaultidentification.getId()+ " "+ defaultactivity.getIdactivity()+ " "+
defaultactivity.getEvaluation() + "\n";
// userid
quiz max(sumgrades)
//verificar quais as competencias e
//habilidades requisitadas nos quizzes
que os alunos tiveram problemas (os de menor sumgrades)
//pegar tbm os cursos deles
consulta = "select
has_com_calc_mac , has_com_comp_func, has_com_abserr_not," +
" has_com_calc_conc,
has_com_biss , has_com_f_pos, has_com_newrap, course " +
" from mdl_quiz where
id = " + defaultactivity.getIdactivity(); //rs.getInt(2) eh o id do questionario
ResultSet rs2 =
stmt2.executeQuery(consulta);
//verificar quais os níveis de
competencias e
//habilidades requisitadas nos
quizzes que os alunos tiveram problemas (os de menor sumgrades)
//pegar tbm os cursos deles
consulta11 = "select
level_com_calc_mac , level_com_comp_func, level_com_abserr_not," +
" level_com_calc_conc,
level_com_biss , level_com_f_pos, level_com_newrap, course " +
" from mdl_quiz where id = "
+ defaultactivity.getIdactivity(); //rs.getInt(2) eh o id do questionario
ResultSet rs11 =
97
stmt11.executeQuery(consulta11);
Activity defaultactivity2 = new
Activity();
// consulta2 = "select
level_com_calc_mac , level_com_comp_func, level_com_abserr_not," +
// "level_com_calc_conc,
level_com_biss , level_com_f_pos, level_com_newrap " +
// "from mdl_user where
id = " + defaultidentification.getId();
// ResultSet rs3 =
stmt3.executeQuery(consulta2); //obtem usuario com suas competencias e
habilidades
// ResultSet rs3 =
stmt3.executeQuery(consulta2); //obtem usuario com suas competencias e
habilidades
//para cada habilidade
if ((rs2.first()) &&
(rs11.first())){
int rs4;
//com as compet. e
habilidades necessarias obtidas dos quizzes de menor sumgrade, agora o
//objetivo é buscar os
alunos que tem as melhores compet. ou hab.
if (rs2.getBoolean(1))
{
//pega o id da questao onde
o aluno foi mais fraco, id deste aluno mais fraco e o id do melhor usuario com
aquela habilidade esepcifica.
//mas esse id deve ser
diferente do aluno com duvida, o rs.getInt(1)
// rec1 = "select
"+defaultactivity.getIdactivity() +", "+ defaultidentification.getId() +", id" +
// " from mdl_user
where id <> " + defaultidentification.getId() + " " +
// "
and level_com_calc_mac in (select max(level_com_calc_mac) from mdl_user) " +
//
samecourse + rs2.getInt(8) + ")";
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultactivity2.setLevel_com_calc_mac(rs11.getInt(1));
rec1 = "select
98
"+defaultactivity.getIdactivity() +", "+
if (rs5.first()){
//int aux = ;
//enviar aqui
mensagem para Recommended
l.add(Integer.toString(rs5.getInt(1)));
while(rs5.next()){
l.add(Integer.toString(rs5.getInt(1)));
}*/
99
}
if (rs2.getBoolean(2))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +", id from
mdl_user where id <> " + defaultidentification.getId() + " and
level_com_comp_func in (select max(level_com_comp_func) from mdl_user) " +
samecourse +
rs2.getInt(8) + ")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_comp_func(rs11.getInt(2));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
l.add(rec1);
// rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(3))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +", id from
mdl_user where id <> " +
defaultactivity2.setLevel_com_abserr_not(rs11.getInt(3));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
l.add(rec1); // rs5 =
100
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(4))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +
", id from mdl_user where
id <> " + defaultidentification.getId() + " and level_com_calc_conc in (select
max(level_com_calc_conc) from mdl_user) " +
samecourse +
rs2.getInt(8) + ")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_calc_conc(rs11.getInt(4));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
l.add(rec1); // rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(5))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultactivity2.setLevel_com_biss(rs11.getInt(5));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
101
l.add(rec1);;//apenas para
teste
// rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(6))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultactivity2.setLevel_com_f_pos(rs11.getInt(6));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
l.add(rec1); // rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(7))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultactivity2.setLevel_com_newrap(rs11.getInt(7));
rec1 = "select
102
"+defaultactivity.getIdactivity() +", "+
l.add(rec1);
}
}
while(rs.next()){
//Elementos da ontologia
//userid
defaultidentification.setId(rs.getInt(1));
defaultactivity.setIdactivity(rs.getInt(2));
defaultactivity.setEvaluation(rs.getInt(3));
resultado = resultado +
defaultidentification.getId() + " "+ defaultactivity.getIdactivity()+ " "+
defaultactivity.getEvaluation()+ "\n";
// userid
quiz max(sumgrades)
//verificar quais as
competencias e habilidades requisitadas nos quizzes que os alunos tiveram
problemas (os de menor sumgrades)
consulta = "select
has_com_calc_mac , has_com_comp_func, has_com_abserr_not," +
"
has_com_calc_conc, has_com_biss , has_com_f_pos, has_com_newrap, course " +
" from mdl_quiz
where id = " + defaultactivity.getIdactivity(); //rs.getInt(2) eh o id do
questionario
rs2 =
stmt2.executeQuery(consulta);
consulta11 = "select
level_com_calc_mac , level_com_comp_func, level_com_abserr_not," +
"
level_com_calc_conc, level_com_biss , level_com_f_pos, level_com_newrap, course
" +
103
" from mdl_quiz where
id = " + defaultactivity.getIdactivity(); //rs.getInt(2) eh o id do questionario
rs11 =
stmt11.executeQuery(consulta11);
// ResultSet rs3
= stmt3.executeQuery(consulta2); //obtem usuario com suas competencias e
habilidades
//para cada habilidade
if (rs2.getBoolean(1))
{
//pega o id da questao onde o
aluno foi mais fraco, id deste aluno mais fraco e o id do melhor usuario com
aquela habilidade esepcifica.
//mas esse id deve ser diferente
do aluno com duvida, o rs.getInt(1)
// rec1 = "select
"+defaultactivity.getIdactivity() +", "+ defaultidentification.getId() +", id" +
// " from mdl_user where
id <> " + defaultidentification.getId() + " " +
// " and
level_com_calc_mac in (select max(level_com_calc_mac) from mdl_user) " +
//
samecourse + rs2.getInt(8) + ")";
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_calc_mac in (select max(level_com_calc_mac) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
defaultactivity2.setLevel_com_calc_mac(rs11.getInt(1));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_calc_mac >= " + defaultactivity2.getLevel_com_calc_mac() +
samecourse + rs2.getInt(8) +
")";
104
verificar se o aluno recomendado pertence ou nao ao mesmo curso
// do aluno com duvida. os dois
DEVEM pertencer ao mesmo curso
if (rs5.first()){
l.add(Integer.toString(rs5.getInt(1)));
while(rs5.next()){
l.add(Integer.toString(rs5.getInt(1)));
}*/
}
if (rs2.getBoolean(2))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +", id from
mdl_user where id <> " + defaultidentification.getId() + " and
level_com_comp_func in (select max(level_com_comp_func) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_comp_func(rs11.getInt(2));
105
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_comp_func >= " + defaultactivity2.getLevel_com_comp_func() +
samecourse + rs2.getInt(8) +
")";
l.add(rec1);
// rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(3))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +", id from
mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_abserr_not in (select max(level_com_abserr_not) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_abserr_not(rs11.getInt(3));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_abserr_not >= " + defaultactivity2.getLevel_com_abserr_not() +
samecourse + rs2.getInt(8) +
")";
l.add(rec1); // rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(4))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+defaultidentification.getId() +
", id from mdl_user where id <> "
+ defaultidentification.getId() + " and level_com_calc_conc in (select
max(level_com_calc_conc) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_calc_conc(rs11.getInt(4));
rec1 = "select
106
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_calc_conc >= " + defaultactivity2.getLevel_com_calc_conc()+
samecourse + rs2.getInt(8) +
")";
l.add(rec1); // rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(5))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_biss in (select max(level_com_biss) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
//enviar msg para
RecommendedProfiles
defaultactivity2.setLevel_com_biss(rs11.getInt(5));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_biss >= " + defaultactivity2.getLevel_com_biss() +
samecourse + rs2.getInt(8) +
")";
107
defaultactivity2.setLevel_com_f_pos(rs11.getInt(6));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_f_pos >= " + defaultactivity2.getLevel_com_f_pos() +
samecourse + rs2.getInt(8) +
")";
l.add(rec1); // rs5 =
stmt5.executeQuery(rec1); //obtem os melhores usuarios com suas compet e
habilidades maximas para aquela compt. ou habilidade.
}
if (rs2.getBoolean(7))
{
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_newrap in (select max(level_com_newrap) from mdl_user) " +
samecourse + rs2.getInt(8) +
")";
//enviar msg para
RecommendedProfiles
//apenas para teste
defaultactivity2.setLevel_com_newrap(rs11.getInt(7));
rec1 = "select
"+defaultactivity.getIdactivity() +", "+
defaultidentification.getId() +",
id from mdl_user where id <> " +
defaultidentification.getId() + "
and level_com_newrap >= " + defaultactivity2.getLevel_com_newrap() +
samecourse + rs2.getInt(8) +
")";
l.add(rec1);
}
}
//iduser = rs.getInt(2);
//levelt = rs.getInt(3);
108
} }
Logger.getLogger(DoubtErrorProfileAgent.class.getName()).log(Level.SEVERE, null,
ex);
rslt=false;
}
}
defaultactivity.setTestmonial(aux);
defaulthasdoubt.setActivity(defaultactivity);
defaulthasdoubt.setIdentification(defaultidentification);
try {
//
System.out.println(defaulthasdoubt.getActivity().getTestmonial().toString());
getContentManager().fillContent(msg,
defaulthasdoubt);
send(msg);
// msg.setContentObject(l);
} catch (CodecException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OntologyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
109
ACLMessage msg2 = myAgent.receive(template2);
if (msg != null) {
Logger.getLogger(DoubtErrorProfileAgent.class.getName()).log(Level.INFO,
"Msg. received: " +
msg.getContent());
}
else {
block();
}
}
} );
}
110
APÊNDICE D – Transições Expandidas na Rede de
Petri do Sistema
Neste apêndice são apresentadas as transições expandidas da RdP do sistema mostrada na
Figura 27, na seguinte ordem: T1, T5, T10, T11, T12, T16 e T19.
111
Se aluno acertou questões e Update Profile Agent ON
112
Se aluno errou em atividades e Doubt & Error Profile Agent ON
113
Se há mensagens do Doubt & Error Profile Agent prontas a serem
enviadas e Doubt & Error Profile Agent ON e Recommended
Profile Agent ON
114
Se níveis de habilidades/competências requeridas para atividades ≤
níveis de habilidades/competências dos alunos e Doubt & Error
Profile Agent On e Recommended Profile Agent ON
115
Se (aluno está com dúvida ou aluno errou alguma atividade ou
aluno não entregou a tarefa em tempo hábil) e Help Tutor Agent
ON
116
Se professor elaborou novas atividades e Notifier
Activity Agent ON
117