<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>ROSAI - Uma abordagem baseada em lógica para representar e consultar objetos de aprendizado</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Francisco H. T. Costa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fábio A. M. Porto</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Instituto Militar de Engenharia - IME-RJ</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ecole Polytechnique Fédérale de Lausanne - EPFL</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>O ROSA é um sistema para recuperação de objetos de aprendizado baseado na descrição semântica de seus conteúdos. Este trabalho tem por objetivo estender o modelo de dados ROSA, a partir de sua representação como uma base de conhecimento, na quais assertivas são definidas como fatos e restrições e regras são expressas através de fórmulas lógicas. Consultas são expressões lógicas com variáveis livres. Sua avaliação sobre a base de conhecimento permite a inferência de novos fatos, segundo a premissa do mundo aberto. A base de conhecimento é implementada em uma máquina Prolog que tratará fatos e regras, correspondendo ao domínio de aplicações suportadas pelo ROSA.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Resumo</title>
    </sec>
    <sec id="sec-2">
      <title>1. Introdução</title>
      <p>A Web Semântica, conforme proposta por Berners-Lee [01], sugere o desenvolvimento de
tecnologia para suporte à descrição e processamento semântico de recursos disponíveis na Web,
tais como (XML, RDF, DAML-OIL, OWL, etc). Um aspecto relevante deste elenco de
tecnologias está na possibilidade de representação e processamento de relacionamentos rotulados
entre recursos. Tais relacionamentos estabelecem associações semânticas entre conceitos ou
recursos, segundo diferentes níveis de qualificação, dependendo da tecnologia empregada (RDF,
DAML-OIL, etc).</p>
      <p>Diversas aplicações se mostram beneficiárias de um modelo de dados no qual a
representação semântica de suas associações seja computável. Essas associações são relevantes
tanto na descrição dos objetos do domínio quanto no suporte à consultas de usuários. Ferramentas
de gerência de documentos compartilhados (ex. arquivos de músicas) constituem um exemplo
dessas aplicações.</p>
      <p>ROSA[2] é um sistema concebido segundo este princípio, no qual objetos de
aprendizagem são contextualizados por redes semânticas que associam: Cursos, Disciplinas e
Tópicos. ROSA segue a abordagem de banco de dados para representação de seu modelo e
consultas são expressas diretamente sobre o modelo lógico.</p>
      <p>Este trabalho tem por objetivo estender o sistema ROSA a partir da representação de seu
modelo através de uma base de conhecimento. Para tal, o modelo de dados foi representado como
fatos na base de conhecimento e enriquecido com a definição de regras. Consultas, como as
expressas em ROSA atual, foram traduzidas para fórmulas lógicas com variáveis livres. Em sua
avaliação, consultas fazem uso de inferência sobre os fatos e regras permitindo inferir fatos não
definidos na base (premissa do mundo-aberto), bem como tratar herança de conceitos e
propriedades de relacionamentos, de forma automática.</p>
      <p>O restante desse trabalho encontra-se estruturado da seguinte forma. Na Seção 2 é feita
uma breve descrição do sistema ROSA, destacando-se sua estrutura atual e identificando pontos
interessantes para sua extensão. Em seguida, na Seção 3, apresenta-se a representação em lógica
para o modelo de dados ROSA. A Seção 4 discute a arquitetura proposta para o ROSAI e na
Seção 5 são descritos alguns detalhes de implementação. A Seção 6 destaca iniciativa similar a
do ROSAI e, finalmente na Seção 7 apresentam-se as considerações finais.</p>
    </sec>
    <sec id="sec-3">
      <title>2. O Sistema ROSA</title>
      <p>O sistema ROSA visa auxiliar profissionais da área educacional, ajudando-lhes a
descobrir conteúdos didáticos armazenados no sistema, e desta forma, fornecendo subsídios para
preparação de suas aulas ou conteúdos instrucionais. Para isso o sistema armazena Objetos de
Aprendizado, que representam de fato os conteúdos instrucionais, acrescidos de um conjunto de
características e propriedades, também denominadas de metadados, além de um conjunto de
associações (ou predicados) que expressam os relacionamentos entre os objetos. O leitor
interessado pode encontrar detalhes sobre o modelo de dados em [10]. A figura abaixo mostra a
arquitetura atual do sistema ROSA.</p>
      <sec id="sec-3-1">
        <title>Figura 1: Arquitetura do Sistema ROSA</title>
        <p>O processamento de consultas no modelo ROSA compreende as etapas tradicionais
acrescidas de um adaptador para conversão entre os modelos de dados XML, de armazenamento,
e ROSA. O sistema recebe uma consulta, expressa na linguagem ROSAQL, realiza as etapas
iniciais de normalização e produz uma estrutura intermediária. Em seguida, invoca os serviços de
geração de plano, que produz uma expressão algébrica utilizando-se dos operadores da álgebra e
algumas heurísticas de otimização. O plano assim produzido é submetido à máquina de execução
de consultas que acessa fontes de dados e avalia as operações contidas no plano. Na versão atual,
apenas a máquina de execução, o acesso a fonte de dados e a interface encontram-se disponível.</p>
        <p>De modo a permitir o tratamento de inferência, este trabalho pretende substituir a máquina
de execução atual por uma máquina de inferência. Esta última avaliará regras armazenadas em
uma base de conhecimento, como mostra a figura 2 seguir:</p>
        <p>Camada existente</p>
        <p>Camada proposta
Linguagem</p>
        <p>Lógica
ROSAQL</p>
        <p>Tradução para o modelo</p>
        <p>Processamento da Consulta
Regras + Fatos + Máq. de Inferência
Álgebra + ROSAQL</p>
        <p>Otimização de consultas mais complexas +</p>
        <p>Avaliação
Otimização de consultas complexas +</p>
        <p>Avaliação</p>
      </sec>
      <sec id="sec-3-2">
        <title>Figura 2: Execução de consultas no modelo ROSA</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>3. Modelo de Dados</title>
      <p>O modelo de dados utilizado no trabalho tem como base Objetos de Aprendizado
(Learning Objects – LO) [04]. Consideramos objetos de aprendizagem em dois níveis, lógico e
físico. O primeiro inclui disciplinas, cursos e tópicos. O segundo corresponde às mídias digitais
propriamente ditas. Objetos de aprendizado são descritos segundo um conjunto de metadados
(LOM – IEEE) de cunho educacional. De modo a contextualizá-los, LOs são associados entre si
por relacionamentos (ou predicados). Este modelo pode ser visto como uma extensão do modelo
RDF [05], onde também é previsto relacionamentos n-ários, cardinalidades, atributos e diferentes
tipos de coleções. A idéia básica aqui proposta é representar LOs, e seus relacionamentos, através
de uma linguagem lógica. A representação gráfica de um LO e de suas associações é ilustrada
abaixo:</p>
      <p>BD
compreende</p>
      <p>Ling.</p>
      <p>Consultas</p>
      <sec id="sec-4-1">
        <title>Figura 3: Ligação entre LO(s)</title>
        <p>O significado semântico para a associação entre LOs da Figura 3, determina que
Disciplina BD compreende o Tópico, linguagens de consulta. Em uma linguagem lógica,
associações são expressas como fatos. O exemplo da Figura 3 pode ser expresso como abaixo:
‘compreende(bd,Linguagem_consulta)’.</p>
        <p>Vista essa pequena representação, fica claro que é possível criar a representação lógica
completa de um sistema que segue esse modelo. Além da descrição de fatos, linguagens lógicas
permitem expressar consultas sobre a base de fatos e regras. Para isso, variáveis assumem valores
que atendem aos predicados definidos na consulta. A seguir é apresentado um pequeno mapa
conceitual do modelo ROSA juntamente com sua representação em uma linguagem lógica, no
caso, Prolog.</p>
        <p>Programa Prolog – Fatos (axiomas)
prerequisito(bd,bdd).
prerequisito(redes,bdd).
compreende(bdd,distribuicao).
compreende(distribuicao,fragmentacao).
compreende(fragmentacao,frag_h).
compreende(fragmentacao,frag_v).
compreende(distribuicao,replica).
compreende(bdd,consultas).</p>
        <p>O modelo lógico também prevê representações de classes como LOs e relacionamentos,
bem como suas instâncias de classes com seus devidos atributos. Mais uma vez, as
representações são feitas através de axiomas, como pode ser visto nos quadros a seguir:</p>
        <sec id="sec-4-1-1">
          <title>Classe LO</title>
        </sec>
        <sec id="sec-4-1-2">
          <title>Instâncias da Classe LO</title>
          <p>lo(X).</p>
        </sec>
        <sec id="sec-4-1-3">
          <title>Classe relacionamento</title>
          <p>lo(bd).
lo(redes).
lo(computacao).</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Quadro 1: Representação dos LOs</title>
        <sec id="sec-4-2-1">
          <title>Instância de relacionamento</title>
        </sec>
        <sec id="sec-4-2-2">
          <title>Definição dos atributos</title>
          <p>bd(dificil,disciplina,pt-br).
redes(dificil,disciplina,pt-br).
computação(difícil,curso,pt-br).</p>
        </sec>
        <sec id="sec-4-2-3">
          <title>Definição de relacionamento</title>
          <p>Relacionamento(X,[lo,lo]).
relacionamento(compreende,[lo,lo]).
comprende(computacao,bd).</p>
        </sec>
      </sec>
      <sec id="sec-4-3">
        <title>Quadro 2: Representação dos relacionamentos</title>
        <p>Formular algumas consultas nesse modelo é simples, eficiente e pode trazer um enorme
poder de expressividade. Apresentaremos aqui alguns exemplos que demonstram isso.
Primeiramente, desejamos realizar uma consulta que obtenha todos os pré-requisitos do Tópico:
Banco de Dados Distribuídos. Essa consulta é bastante simples e requer a análise dos fatos
descritos na base de conhecimento, tal como expresso no código a seguir.
prerequisito(bdd, X).</p>
        <p>X = (bd; redes).</p>
        <p>→</p>
        <p>Um exemplo um pouco mais avançado, que necessita realizar a análise de regras é
apresentado a seguir. Digamos que se deseje saber quais os assuntos que compreendem o Tópico
Banco de Dados Distribuídos. Para resolver essa consulta, se faz necessário analisar uma
determinada regra fazendo uso de recursão, de modo a explicitar o fato de que um assunto
compreende um outro, se ele compreende diretamente aquele, ou quando existe uma cadeia de
assuntos entre eles. Na linguagem Prolog, essa regra pode ser descrita da seguinte maneira:
com(X,Y):-compreende(X,Y);(compreende(X,Z),com(Z,Y)).</p>
        <p>Assim, a consulta proposta, formulada em Prolog, seria descrita pela expressão com(X,Y),
tendo como primeiro parâmetro a disciplina da qual se deseja obter os assuntos por ela
compreendidos. O exemplo ficaria da seguinte forma: com(bdd,Y). O resultado de tal consulta
pode ser visto a seguir:
Y=(distribuicao; consultas; fragmentacao; replica; frag_hori; frag_vert).</p>
        <p>Adicionalmente, esta proposta estende o modelo ROSA com o tratamento de herança de
conceitos e relacionamentos. Como exemplo, considere os relacionamentos "agrega" e "contém".
Ambos se comportam como o tipo de relacionamento "compreende". Assim o usuário poderá
expressar relacionamentos utilizando o termo que melhor lhe convier, bastando para isso
associálo ao tipo de relacionamento apropriado. Considere o exemplo a seguir:
transitivo(Y):-ehconforme(X,Y),transitivo(X).
transitivo(compreende).
ehconforme(compreende,agrega).
ehconforme(compreende,contem).</p>
        <p>Desta forma, ao avaliar predicados agrega e contem, o sistema é capaz de associar seu
comportamento ao de relacionamento compreende, inferindo um comportamento transitivo aos
primeiros.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>4. Arquitetura do ROSAI (ROSA – Inference)</title>
      <p>ROSAI está estruturado em três camadas, a de apresentação, a de inferência e a de
persistência dos LOs, ver figura 4.</p>
      <p>A camada de interface permite ao usuário submeter consultas ao sistema sem que precise
conhecer detalhes de linguagem lógica. Através de uma interface baseada em formulários,
usuários podem determinar predicados sobre os metadados de LOs e exprimir navegações.</p>
      <p>A camada de persistência armazena os LOs e seus relacionamentos em um documento
XML. Através de um tradutor, o sistema converte o modelo expresso em XML, em fatos na base
de conhecimento. Um pequeno exemplo do resultado final do documento lógico criado a partir
desse documento XML pode ser visto logo a seguir.
&lt;aggregationlevel&gt;disciplina&lt;/aggregationlevel&gt;
&lt;description&gt;disciplina_de_mestrado_no_IME&lt;/description&gt;
&lt;/general&gt;
&lt;&lt;//llooms&gt;&gt; DOCUMENTO XML
DOCUMENTO LÓGICO</p>
      <p>O documento final formará a base de conhecimento e irá trabalhar em conjunto com outro
documento lógico, que irá conter todas as regras do ROSAI. O modelo ROSAI estende o modelo
ROSA com regras que serão capazes de inferir novo conhecimento.</p>
      <p>Como dito anteriormente, consultas no ROSAI são expressas a partir de uma interface de
alto nível. Os predicados definidos pelos usuários são reescritos como fórmulas lógicas
(conforme Seção 3) e tratados pelo módulo Gerenciador de Consultas. Este aciona os módulos
de base de conhecimento e de regras para atender a uma consulta.</p>
      <sec id="sec-5-1">
        <title>Figura 4: Arquitetura do ROSAI</title>
        <p>Quaisquer regras que se façam necessárias definir, tais como: de simetria, transitividade,
reflexividade, ou outras que sejam necessárias deverão ser implementadas na base de regras, e
quanto melhor a sua elaboração, maior poder de inferência será dada ao sistema.</p>
        <p>Um exemplo de inferência no ROSAI pode ser acompanhado, em uma consulta que se
deseja conhecer a lista de pré-requisito de uma dada disciplina, como, por exemplo, Banco de
dados. Nessa consulta o resultado será obtido através da análise feita no mapa conceitual de LOs,
que irá mostrar as relações existentes, bem como uma análise das regras presentes na base de
regras, que possam descrever quando uma certa disciplina também é pré-requisito de uma outra.
Uma regra que pode realizar essa descrição é a que dita que todos os LOs que possuem nível de
agregação correspondente a “disciplina”, e que possuem a relação base para correspondem a LOs
que caracterizam disciplinas que são ditas pré-requisitos uma da outra. Detalhes da consulta é
mostrado abaixo:</p>
        <p>BDPre
DI</p>
      </sec>
      <sec id="sec-5-2">
        <title>Mapa Conceitual</title>
        <p>Pré-requisito BasePara
BD
BD
GE</p>
      </sec>
      <sec id="sec-5-3">
        <title>Consulta</title>
        <p>Quais as disciplinas que
banco dados é pré-requisito?</p>
      </sec>
      <sec id="sec-5-4">
        <title>Resultados</title>
      </sec>
      <sec id="sec-5-5">
        <title>Normal Inferido</title>
        <p>Banco dados
distribuído
Banco dados
geográficos</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>5. Detalhes da implementação</title>
      <p>O desenvolvimento do ROSAI se deu através da linguagem de programação Java [13],
utilizando-se basicamente dois pacotes. O primeiro pacote utilizado foi o “org.w3c.dom” que faz
parte da API Java para processamento de documentos XML. Foi esse pacote que possibilitou a
transformação dos documentos XML para o formato lógicos, possibilitando o entendimento do
documento pela linguagem lógica. Outro pacote Java Utilizado foi o JPL [14], que possibilitou a
comunicação entre o Java e a linguagem lógica utilizada para realizar as operações de inferências,
no caso Prolog. Para interpretar as cláusulas em Prolog a máquina de execução adota foi a
SWIProlog [08].</p>
    </sec>
    <sec id="sec-7">
      <title>6. Trabalhos e iniciativas similares</title>
      <p>Um trabalho similar é o Edutella [12] que disponibiliza uma infra-estrutura RDF para
redes P2P (peer-to-peer) que visa o compartilhamento de recursos didáticos entre instituições.
Recursos e seus relacionamentos são representados através de um modelo de dados, baseado na
linguagem de consulta não-procedural Datalog. Ele expressa um modelo RDF como predicados
lógicos em Datalog, o qual forma uma base de conhecimento. O modelo proposto pelo ROSA se
assemelha ao do projeto Edutella, principalmente quando se cria a representação dos
relacionamentos através de fatos lógicos. Contudo, apesar do Edutella ser um sistema eficiente
P2P, ele exige o conhecimento de uma linguagem de consulta dos usuários, (RDF-QEL-i), o que
é totalmente dispensável no modelo do ROSA estendido, que possui a vantagem de não exigir do
usuário final nenhum tipo de conhecimento lógico e de qualquer linguagem de consulta, podendo
o mesmo formular as suas consultas de uma maneira iterativa, sem mesmo da conta que
operações com expressões lógicas estão sendo utilizadas.</p>
    </sec>
    <sec id="sec-8">
      <title>7. Considerações Finais</title>
      <p>O presente trabalho foi desenvolvido no âmbito do projeto de Web Semântica do IME/RJ,
e tem como objetivo principal, explorar técnicas que permitam consultas mais expressivas e, ao
mesmo tempo, elaboradas por usuários não especialistas do domínio. Em geral, o ROSAI almeja
explorar linguagens lógicas para representação de ontologias e de consultas sobre seus conceitos
e relacionamentos. Pretende-se identificar a que ponto a adoção de mecanismos de inferência
contribuem para consultas sobre objetos de aprendizado.</p>
      <p>A linguagem utilizada na implementação de ROSAI oferece o mesmo poder de
expressividade da linguagem lógica Prolog. Em nossos experimentos, todas as consultas
propostas no projeto ROSA foram implementadas e, além disso, adicionaram-se consultas que
exploram o poder de inferência.</p>
      <p>A arquitetura proposta já se encontra com seu principal protótipo implementado
permitindo que uma análise de vantagens e desvantagens possa ser realizada. Nesse momento, as
consultas propostas em [2] foram implementadas utilizando o modelo e a linguagem Prolog,
mostrando o potencial de expressividade da plataforma.</p>
      <p>Entre os aspectos que restam a ser verificados destaca-se o comportamento do sistema
frente a uma grande base de conhecimento.</p>
      <p>Finalmente, como continuação de nosso trabalho, pretendemos avaliar a integração do
ambiente lógico com o modelo ROSA, baseado em banco de dados. Tal integração talvez ofereça
o melhor dos dois paradigmas.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <source>The Semantic Web - XML2000.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>http://www.w3.org/2000/Talks/1206-xml2k-tbl/Overview.htmlT.</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          Specification. http://www.w3.org/TR/2004/REC-owl-features-20040210/ LOMWG - IEEE LOM Working Group. Http://ltsc.ieee.org/wg12/ Resource Description Framework (
          <article-title>RDF) Model</article-title>
          and
          <string-name>
            <given-names>Syntax</given-names>
            <surname>Endereço</surname>
          </string-name>
          .
          <year>1999</year>
          . http://www.w3.org/TR/PR-rdf-syntax/,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Último</surname>
          </string-name>
          acesso Oct.
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <given-names>B.</given-names>
            <surname>Ludascher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Guizhen</given-names>
            <surname>Yang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Kifer</surname>
          </string-name>
          . FLORA:
          <article-title>The secret of object-oriente logic programming</article-title>
          .
          <source>Technical report, SUNY at Stony Brook</source>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Stefan</given-names>
            <surname>Decker</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Sintek</surname>
          </string-name>
          .
          <article-title>A linguagem TRIPLE - Endereço</article-title>
          . http://triple.semanticweb.org/ Último acesso Fev. 2004
          <string-name>
            <surname>SWI-Prolog Endereço</surname>
          </string-name>
          . http://www.swi
          <article-title>-prolog.org/ Ultimo acesso jan. 2004 Projeto ROSA (Repository of Objects with Semantic Access for e-learning Endereço: (www</article-title>
          .ipanema.ime.eb.br/~Rosa).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>Ultimo acesso maio</article-title>
          .
          <source>2004 Query Processing in ROSA Data Model.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Fábio J. C. Silva</surname>
          </string-name>
          ,
          <string-name>
            <surname>Fábio A. M.</surname>
          </string-name>
          <article-title>Porto; SBBD2004</article-title>
          . Out.
          <year>2004</year>
          ,
          <string-name>
            <surname>Brasilia. I PGL</surname>
          </string-name>
          DB Research Conference, PUC-Rio, Abril,
          <year>2003</year>
          ROSA:
          <article-title>A Repository of Objects with Semantic Access for e-learning Fábio Porto, Ana Maria Moura, Fábio José Coutinho da Silva, IDEAS2004, Coimbra, Julho 7-9,2004 Project EDUTELLA - RDF-based Metadata Infrastructure for P2P Applications Endereço: (http://edutella</article-title>
          .jxta.org)
          <article-title>Ultimo acesso jun. 2004 Java language Endereço: (http://java.sun.com) JPL project Endereço: (http://sourceforge</article-title>
          .net/projects/jpl/)
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>