Para alcan¸car os requisitos do sistema enunciados previamente, uma arquitetura mo- dular para a aplica¸c˜ao de referˆencia foi desenvolvida. Esta arquitetura foi dividida em quatro m´odulos que ser˜ao detalhados a seguir.
Os m´odulos implementados s˜ao respons´aveis pela l´ogica de neg´ocios da aplica¸c˜ao. Cada m´odulo possui componentes que assumem fun¸c˜oes espec´ıficas em cada camada do sistema. A intera¸c˜ao entre os m´odulos ´e feita atrav´es de interfaces baseadas em chamadas ao sistema e passagem de parˆametros. Os m´odulos da arquitetura s˜ao listados como Gerenciamento de Usu´arios, Gerenciamento de Anota¸c˜oes, Cria¸c˜ao de Conte´udo e Busca Semˆantica. Cada um deles ser´a detalhado nas se¸c˜oes seguintes.
Um m´odulo pode ser definido como um conjunto de propriedades que determinam seu comportamento dentro do ambiente. Desse modo, cada um dos itens descritos como m´odulo foi baseado em um objetivo a ser alcan¸cado, com a¸c˜oes pr´e-definidas para cada tipo de requisi¸c˜ao recebida.
4.4.1 Gerenciamento de Usuários
Esse m´odulo faz a comuni¸c˜ao da aplica¸c˜ao com a interface apresentada aos usu´arios. Respons´avel por atender `as requisi¸c˜oes feitas pelo usu´ario, atrav´es do front-end, esse m´odulo gerencia o perfil do usu´ario, controlando suas permiss˜oes, registro de a¸c˜oes e intera¸c˜ao com o sistema.
H´a dois tipos de usu´arios definidos no sistema, o professor e o aluno. Cada tipo de usu´ario possui diferentes permiss˜oes e atividades dentro da aplica¸c˜ao. Um professor atua como administrador, sendo capaz de criar novas disciplinas e novos OAs. Esses OAs est˜ao associados a arquivos n˜ao estruturados que s˜ao semanticamente anotados e inclu´ıdos no reposit´orio do sistema. Os alunos podem matricular-se em disciplinas oferecidas e explorar o conte´udo disponibilizado. Cada usu´ario pode fazer a manuten¸c˜ao de seu pr´oprio perfil que ´e salvo com as caracter´ısticas de cada um. O perfil de um aluno cont´em seu hist´orico
de disciplinas cursadas, o que determina seu acesso aos OAs pertinentes. Esse m´odulo de Gerenciamento de Usu´arios tamb´em faz a conex˜ao da interface com a aplica¸c˜ao e os dados referentes ao perfil de cada usu´ario.
Um professor tem acesso total a todo o material dispon´ıvel no reposit´orio educacional. Mesmo que um OA n˜ao tenha sido criado por ele, h´a a possibilidade de visualiza¸c˜ao e referˆencia de cada objeto na cria¸c˜ao do seu pr´oprio material. J´a um aluno tem acesso restrito ao material de conceitos n˜ao correspondentes ao seu n´ıvel de conhecimento. Ou seja, um aluno pode acessar todas as aulas dispon´ıveis para as disciplinas em que est´a matriculado ou que j´a cursou, mas n˜ao pode ver o conte´udo de uma disciplina `a frente do seu est´agio atual.
Este m´odulo ainda ´e respons´avel por dar acesso aos recursos para cada usu´ario. A autoriza¸c˜ao para acessar, alterar ou criar recursos depende das regras pr´e-determinadas na l´ogica de neg´ocios e o perfil de cada usu´ario. Quando um usu´ario cria um OA, qualquer a¸c˜ao em rela¸c˜ao a este objeto est´a relacionada ao perfil de quem quer acess´a-lo, seja para criar, alterar, excluir ou simplesmente visualizar um desses recursos. Por exemplo, um usu´ario requisita acesso aos OAs de uma determinada disciplina. Uma vez confirmada a permiss˜ao da a¸c˜ao desejada por este usu´ario, o reposit´orio de OAs pode ser listado segundo a organiza¸c˜ao das disciplinas da ementa ou em p´aginas personalizadas atrav´es de uma busca semˆantica. Este ´ultimo processo ´e esclarecido na Se¸c˜ao 4.4.4.
4.4.2 Gerenciamento de Anotações
O m´odulo de Gerenciamento de Anota¸c˜oes trata todos os aspectos do processamento semˆantico da aplica¸c˜ao. Ele faz a conex˜ao com o m´odulo de Gerenciamento de Usu´arios, para controle de acesso e permiss˜oes de todos os OAs. Neste m´odulo tamb´em h´a o controle da ontologia. Desde o carregamento do arquivo OWL, passando pela chamada ao sistema que desencadeia a rotina para extrair as informa¸c˜oes estruturais da ontologia. Os m´odulos que assumem os pap´eis de anota¸c˜ao semˆantica podem ser classificados como Crawler e Reasoner.
A anota¸c˜ao semˆantica utiliza a API Jena 1 e, atrav´es do Crawler especifica as infor- ma¸c˜oes estruturais, como superclasses e as subclasses de cada conceito, al´em das suas propriedades. Em seguida a esse processo, o m´odulo de Gerenciamento de Anota¸c˜oes ativa a rotina do Reasoner para fazer anota¸c˜oes sobre os dados n˜ao estruturados, a partir
das regras de inferˆencia e as informa¸c˜oes estruturais coletadas anteriormente.
Para esse processo h´a uma varredura do arquivo, onde os termos da ontologia s˜ao des- tacados e usados para a montagem de uma tripla contendo o termo, o arquivo pertencente e a frequˆencia com que esse termo aparece. A frequˆencia de apari¸c˜oes ´e mais tarde usada no ranqueamento dos OAs na p´agina de resultados da busca semˆantica. Esse t´opico ´e melhor explicado na Se¸c˜ao 4.1.
4.4.3 Criação de Conteúdo
A cria¸c˜ao de OAs ´e permitida apenas para usu´arios do tipo professor, sendo essa per- miss˜ao a primeira verifica¸c˜ao feita pelo m´odulo de Gerenciamento de Usu´arios, respons´avel pela requisi¸c˜ao. Uma vez estabelecida a conex˜ao do perfil do usu´ario com esse novo OA que deve ser criado, algumas informa¸c˜oes devem ser acrescentadas aos seus dados.
Primeiramente, um OA precisa estar relacionado a uma disciplina, que pode ser se- lecionada no cat´alogo de mat´erias existente ou atribu´ıda a uma nova disciplina. Caso o material criado seja pertencente a uma nova disciplina, o professor precisa inserir seus da- dos e relacion´a-la `as demais existentes, dentro da ementa do curso definida pela ontologia. Com a disciplina determinada, os pr´e-requisitos necess´arios para que um aluno acesse esse conte´udo s˜ao criados e armazenados.
Terminada essa rela¸c˜ao estrutural, a interface para a cria¸c˜ao do OA ´e carregada e suas informa¸c˜oes podem ser inclu´ıdas. Al´em dos conceitos e referˆencias a outros OAs do reposit´orio, o professor pode ainda anexar arquivos extras. Assim que o carregamento desses dados ´e feito, o m´odulo do Gerenciamento de Anota¸c˜oes ´e ativado e a anota¸c˜ao semˆantica ´e automaticamente processada e armazenada.
Quando h´a uma requisi¸c˜ao para cria¸c˜ao de OA, o m´odulo de Gerenciamento de Ano- ta¸c˜oes ´e acionado e ativa automaticamente o processamento semˆantico do conte´udo e o adiciona ao reposit´orio de OAs com seus respectivos relacionamentos para referˆencias futuras.
4.4.4 Busca Semântica
O m´odulo de Busca Semˆantica s´o ´e inicializado depois que todos os dados iniciais foram carregados e processados. Este m´odulo precisa de informa¸c˜oes dos OAs, usu´arios e estrutura do curso. A partir da´ı, quando ativado, identifica o usu´ario respons´avel pela
chamada e faz a conex˜ao com a interface de pesquisa. O usu´ario insere sua consulta no formul´ario e ent˜ao o sistema faz sua varredura pelo reposit´orio de triplas identificando os OAs que cont´em o conceito desejado.
Os dados encontrados como resultado s˜ao ent˜ao exibidos em uma p´agina personalizada para o usu´ario. Essa personaliza¸c˜ao est´a embasada no perfil do solicitante. Se for um professor, todos os OAs ser˜ao exibidos. Se for um aluno, ser˜ao omitidos os resultados referentes a disciplinas que n˜ao est˜ao contidas no seu hist´orico. Outro ponto relevante dessa apresenta¸c˜ao est´a na sua organiza¸c˜ao. Os resultados s˜ao divididos em trˆes categorias: O que eu preciso saber?, Resultados e Saiba mais.
Os Resultados contˆem a lista de OAs em formato de aulas, separados por disciplina que cont´em o conceito desejado, ranqueadas pela frequˆencia de apari¸c˜oes. Na categoria O que eu preciso saber? est˜ao listados todos os conceitos encontrados como pr´e-requisitos para aprender o termo buscado. J´a em Saiba mais os conceitos complementares est˜ao relacionados. Esses pr´e-requisitos e aprofundamentos s˜ao determinados atrav´es de regras semˆanticas encontradas na ontologia que especifica a ementa do curso, explicados na Se¸c˜ao4.1.