Vous êtes sur la page 1sur 53

UNIVERSIDADE FEDERAL DA BAHIA

INSTITUTO DE MATEMTICA
DEPARTAMENTO DE CINCIA DA COMPUTAO

Joo Teixeira de Jesus

Evoluo do Sistema Semntico para Orientao Acadmica(SOA) para adequao ao quarto ciclo da OntoComp

Salvador 2011.2

Joo Teixeira de Jesus

Evoluo do Sistema Semntico para Orientao Acadmica(SOA) para adequao ao quarto ciclo da OntoComp

Monograa apresentada ao Curso de graduao em Cincia da Computao, Departamento de Cincia da Computao, Instituto de Matemtica, Universidade Federal da Bahia, como requisito parcial para obteno do grau de Bacharel em Cincia da Computao. Orientadora: Profa . Dbora Abdalla dos Santos

Salvador 2011.2

RESUMO
Este trabalho tem como objetivo a atualizao do Sistema Semntico para Orientao Acadmica (SOA), a m de que o mesmo possa efetuar consultas sobre a ltima verso da ontologia OntoComp, ontologia do currculo do curso de Cincia da Computao da UFBA. Neste trabalho foi realizada a correo das consultas existentes no SOA que haviam sido implementadas sobre o terceiro ciclo da OntoComp, alm da incluso de novas consultas referentes aos conceitos adicionados na OntoComp no seu quarto ciclo. Como resultado obteve-se uma nova verso do SOA documentada e atualizada em relao a OntoComp, com modelo e especicao de casos de uso, documentao do cdigo-fonte. Novas consultas foram implementadas utilizando o framework para web semntica Jena de modo que respondessem as questes de competncia elaboradas no quarto ciclo da OntoComp, consultas relacionadas a componentes curriculares, docentes e grupos acadmicos. Desta forma possibilita-se o uso do sistema que ser disponibilizado para a comunidade acadmica da UFBA alm da sua evoluo em trabalhos futuros tornar-se menos complexa com base nos documentos gerados neste trabalho. Palavras-chave: OWL, Ontologias, Web Semntica, Sistema Semntico, Sistemas de raciocnio.

LISTA DE FIGURAS
2.1 2.2 2.3 3.1 3.2 3.3 3.4 Possvel arquitetura da Web Semntica (OLIVEIRA, 2010) . . . . . . . . . . . Sublinguagens da OWL (PEDROZO, 2009) . . . . . . . . . . . . . . . . . . . Sublinguagens da OWL (PEDROZO, 2009) . . . . . . . . . . . . . . . . . . . Estrutura taxonmica da OntoComp aps o primeiro ciclo (PEDROZO, 2009) . Hierarquia taxonmica do conceito Famlias Ocupacionais (PEDROZO, 2009) . Taxonomia das ocupaes do terceiro ciclo da OntoComp (PEDROZO, 2009) . Taxonomia associada ao currculo do curso de computao - UFBA (PEDROZO, 2009) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 3.6 Estrutura taxonmica da OntoComp integrada a ontologia OcupacaoCBO . . . Principais tpicos do domnio do curso de computao - UFBA (PEDROZO, 2009) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Conceito Componente Curricular aps reestruturao no quarto ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 Diagrama de casos de uso do SOA . . . . . . . . . . . . . . . . . . . . . . . . Tela inicial do SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 28 44 23 20 21 12 15 15 17 18 19

LISTA DE ABREVIATURAS E SIGLAS


CBO DAML DARPA DCC JSP MTE OIL OWL RDF RDFS SOA UFBA UML URI W3C XML Classicao Brasileira de Ocupaes, DARPA Agent Markup Language, Defense Advanced Research Projects Agency, Departamento de Cincia da Computao, JavaServer Pages, Ministrio do Trabalho e Emprego, Ontology Inference Layer, Ontology Web Language, Resource Description Framework, Resource Description Framework Schema, Sistema Semntico para Orientao Acadmica, Universidade Federal da Bahia, Unied Modeling Language, Uniform Resource Identier, World Wide Web Consortium, eXtensible Markup Language, p. 17 p. 13 p. 13 p. 8 p. 30 p. 17 p. 13 p. 13 p. 12 p. 12 p. 10 p. 8 p. 27 p. 13 p. 11 p. 12

SUMRIO

Introduo 1.1 1.2 1.3 Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura do Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 7 8 9 10 10 11 16 16 17 17 18 22 23 26 26 27 27 30 31

Web Semntica e Ontologias 2.1 2.2 Ontologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Web Semntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Sistema Semntico para Orientao Acadmica (SOA) 3.1 OntoComp: Ontologia do Curso de Cincia da Computao . . . . . . . . . . . 3.1.1 3.1.2 3.1.3 3.1.4 3.2 Primeiro ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . . Segundo ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . . Terceiro ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . . Quarto ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . . .

SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Atualizao do Sistema Semntico para Orientao Acadmica (SOA) 4.1 4.2 SOA aps o quarto ciclo da OntoComp . . . . . . . . . . . . . . . . . . . . . . Requisitos funcionais do SOA . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 4.2.2 4.3 Resquisitos funcionais mantidos . . . . . . . . . . . . . . . . . . . . . Resquisitos funcionais novos e modicados . . . . . . . . . . . . . . .

Tecnologias reutilizadas e incorporadas . . . . . . . . . . . . . . . . . . . . .

4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.4

Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Java Servlets e JavaServer Pages . . . . . . . . . . . . . . . . . . . . . Apache Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

31 31 33 33 33 36 36 39 40 40 43 45 48 49 50 52

Atualizando o SOA de acordo com a OntoComp do quarto ciclo . . . . . . . . 4.4.1 4.4.2 Consulta disciplinas por modalidade e natureza . . . . . . . . . . . . . Consulta de disciplinas por Matria . . . . . . . . . . . . . . . . . . .

4.5

Desenvolvimento de novas consultas no SOA . . . . . . . . . . . . . . . . . . 4.5.1 Novas consultas adicionadas ao SOA . . . . . . . . . . . . . . . . . .

4.6 5 6

Experimento para avaliao dos resultados . . . . . . . . . . . . . . . . . . . .

Anlise dos resultados Concluso 6.1 Trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Referncias Bibliogrcas Apndice A -- Especicao dos Casos de Uso do SOA

INTRODUO

Este captulo apresenta a motivao para este trabalho, discute os objetivos que se pretende alcanar com a sua realizao e descreve a estrutura deste documento.

1.1

MOTIVAO

As ontologias tem sido uma das solues mais utilizadas para representao de conhecimento e como base de dados de Sistemas Semnticos. Diante disto, pesquisadores ligados ao grupo de pesquisa FORMAS1 (Formalismos e Aplicaes Semnticas) vem desenvolvendo um trabalho para modelar uma Ontologia que represente o currculo do curso de Bacharelado em Cincia da Computao da UFBA. Essa Ontologia comeou a ser modelada em 2007 por Eduardo Maior (MAIOR, 2007), quando se construiu o primeiro ciclo da mesma que recebeu o nome de OntoComp. Desde ento a OntoComp vem passando por melhorias ano a ano, algumas delas para acompanhar as mudanas ocorridas no currculo do curso devido a reformulaes no projeto pedaggico do curso. A OntoComp j se encontra no quarto ciclo de sua modelagem, sendo que no ltimo ciclo foi includo o conceito "Docente", alm de reformulaes importantes para atender s mudanas no projeto pedaggico do curso de Cincia da Computao da UFBA. Lado a lado com a OntoComp vem sendo desenvolvido e aperfeioado o Sistema Semntico para Orientao Acadmica (SOA), que comeou a ser desenvolvido em 2008 no trabalho de Gabriel Andrade (ANDRADE, 2008) e desde ento tem passado por constantes mudanas para que o mesmo possa acompanhar o desenvolvimento da OntoComp. O objetivo do SOA oferecer apoio as decises dos estudantes do curso de Bacharelado em Cincia da Computao da Universidade Federal da Bahia (UFBA) no momento de escolher quais disciplinas cursar, compondo assim sua grade de acordo com a rea em que deseja atuar prossionalmente. Este objetivo no pode ser alcanado caso o sistema no seja capaz de efetuar consultas na ltima
1 https://wiki.dcc.ufba.br/FORMAS/

verso da OntoComp. Ocorre que a OntoComp j est no seu quarto ciclo desenvolvido por Rafael Saraiva (SARAIVA, 2010) enquanto que o SOA parou no terceiro ciclo da OntoComp, sendo que sua ltima verso foi desenvolvida por Vtor Fernandes (OLIVEIRA, 2010). Ontologias so objeto de estudo de pesquisadores do grupo FORMAS a m de experimentar o seu poder de inferncia, o potencial que essa forma de modelar conhecimento tem para constituir base de conhecimento de sistemas semnticos. Esse trabalho tambm faz um experimento efetuando consultas sobre uma ontologia modelada usando a linguagem OWL e fazendo uso de raciocinadores para efetuar inferncia sobre essa ontologia. Este trabalho tem como objetivo a atualizao do SOA de modo que o mesmo possa efetuar consultas sobre a ltima verso da OntoComp alm de responder a consultas sobre os novos conceitos adicionados a ontologia no seu ltimo ciclo. A atualizao do SOA consistir da correo das consultas j existentes, implementadas sobre o terceiro ciclo da OntoComp e que se tornaram defasadas, sendo que algumas delas no se aplicam mais a OntoComp. Alm disto, sero includas novas consultas com base nas questes de competncia denidas no quarto ciclo da OntoComp.

1.2

OBJETIVOS

O objetivo principal deste trabalho o aperfeioamento do Sistema Semntico para Orientao Acadmica (SOA), a m de que o mesmo possa acompanhar as mudanas de ciclo da OntoComp e assim propiciar a manutenabilidade futura do sistema quando houver evoluo na OntoComp. Os objetivos especcos deste trabalho so: Analisar o quarto ciclo da OntoComp am de identicar possveis ajustes e atualizaes a serem feitas na Ontologia; Analisar o SOA para identicar ajustes a realizar devido a reformulao de alguns conceitos no quarto ciclo da OntoComp; Efetuar os ajustes necessrios no SOA de acordo com a reformulao de alguns conceitos no quarto ciclo da OntoComp; Identicar e implementar no SOA as novas questes de competncias acrescentadas no quarto ciclo da OntoComp;

Documentar o cdigo-fonte do SOA, seguindo um padro de documentao de modo a facilitar manuteno futura do sistema; Disponibilizar o SOA na web para acesso da comunidade universitria; Disponibilizar o cdigo-fonte do SOA no sourceforge; Anlise dos resultados obtidos no desenvolvimento do SOA utilizando as tecnologias existentes para sistemas semnticos.

1.3

ESTRUTURA DO DOCUMENTO

Este trabalho est organizado da seguinte maneira: Captulo 2, Sistema Semntico para Orientao Acadmica (SOA): apresenta uma viso sobre web semntica e ontologia, uma anlise do SOA, alm de apresentar um histrico dos ciclos da OntoComp. Captulo 3, Atualizao do Sistema Semntico para Orientao Acadmica (SOA): apresenta as tecnologias envolvidas nesse projeto e atualizao do SOA de modo que suas consultas sejam executadas na ltima verso da OntoComp; Captulo 4, Anlise dos resultados: apresenta uma anlise crtica dos resultados obtidos. Captulo 5, Concluso: apresenta as concluses e os resultados alcanados, assim como possveis trabalhos futuros relacionados ao projeto.

10

WEB SEMNTICA E ONTOLOGIAS

Este captulo apresenta os conceitos relacionados ao trabalho desenvolvido. Inicialmente apresenta-se ontologia de um modo geral, mostrando como ontologias e web semntica esto relacionadas e fala das linguagens utilizadas para construo de ontologias, especicamente a OWL. Aps essa introduo, no Captulo 3 ser apresentado o Sistema Semntico de Orientao Acadmica (SOA), o histrico da OntoComp, ontologia utilizada como base de conhecimento do SOA e o histrico do sistema desde o incio de seu desenvolvimento at o seu estado atual.

2.1

ONTOLOGIAS

Ontologia um termo de mltiplos signicados, que tem origem na losoa, onde caracterizado como doutrina que trata do ser e de suas formas (ABBAGNANO, 2007). Esse termo tambm aplicado em reas como matemtica, medicina e computao, sendo o ltimo nosso foco nesse trabalho. Em computao, ontologias so aplicadas na rea de Inteligncia Articial, como uma forma de representao do conhecimento de um determinado domnio, descrevendo hierarquicamente classes e relacionamentos com o intuito de mapear a realidade (PEDROZO, 2009). Na rea de Inteligncia Articial a denio de Gruber comumente utilizada. Ele arma que "Uma Ontologia uma especicao de uma conceituao"(GRUBER, 1993). Gruber ainda acrescenta que: "[...] uma descrio (assim como uma especicao formal de um programa) de conceitos e relacionamentos que podem existir para um agente ou uma comunidade de agentes"(GRUBER, 1996). Neste trabalho, decidimos adotar a denio de ontologia que foi apresentada em (ANDRADE, 2008), por se tratar de uma das denies mais completas encontradas pelo autor alm desta denio ser resultado da juno de trs denies complementares apresentadas respectivamente por Borst (1997), Gmez-Perez (1999) e Swartout (1997).

11

Denio de Ontologia: Uma ontologia uma especicao formal e explcita de uma conceituao compartilhada (BORST, 1997) e ordenada hierarquicamente (SWARTOUT, 1997). Estruturalmente uma ontologia pode ser representada por uma 5-tupla O = (C, R, F, A, I), onde: C um conjunto de conceitos, R um conjunto de relaes de C x C, F um conjunto de funes de C x C, A um conjunto de axiomas e I um conjunto de instncias (GMEZ-PREZ, 1999). O desenvolvimento de ontologias ganhou impulso com as pesquisas na rea da web semntica, onde tem sido a forma hegemnica utilizada para representar a semntica dos documentos, permitindo o uso dessa semntica por aplicaes web e agentes inteligentes (SOUSA, 2008).

2.2

WEB SEMNTICA

A web semntica surgiu como uma possvel soluo para um dos grandes desaos da computao que estabelecer um entendimento entre humano-computador de forma plena. Diversas linguagens foram criadas com esse intuito, de modo que as instrues representadas por elas fossem entendidas pelos computadores, mas isso apenas estabeleceu um entendimento sinttico. Foi nesse contexto que a web semntica surgiu (SARAIVA, 2010). O termo web semntica foi proposto por Tim Berners-Lee, criador da World Wide Web (W3C1 ), para ser uma extenso da web atual incorporando formalismos que expressem melhor as informaes contidas nos documentos e pginas web de modo que possam ser compreendidas por pessoas e computadores. Conforme Tim Berners-Lee (BERNERS-LEE JAMES HENDLER, 2001) deniu, "A web semntica no web separada, mas uma extenso atual na qual a informao utilizada com signicado bem denido, aumentando a capacidade dos computadores para trabalharem em cooperao com as pessoas". Segundo (PICKLER, 2007), a web semntica foi proposta por Tim Berners-Lee como uma tentativa de melhorar as pesquisas realizadas na web. Seria uma nova ferramenta de busca de informaes na web, uma extenso do formato atual, acresencentando semntica ao atual formato de representao dos dados, possibilitando que a vericao do assunto de documentos passasse a ser tarefa das mquinas, poupando tempo e trabalho a quem realizasse as buscas. Como a web semntica nasceu com o intuito acima, foi necessrio denir uma arquitetura que suportasse os requisitos para que pudesse cumprir seu objetivo. Em 2001 Tim Berners-Lee apresentou uma possvel arquitetura para representar a web semntica, que pode ser vista na Figura 2.1.
1 http://www.w3c.org

12

Figura 2.1: Possvel arquitetura da Web Semntica (OLIVEIRA, 2010)

13

Dividida em 3 camadas: esquema, ontologia e lgica, a arquitetura proposta pelo W3C faz uso de diversas recomendaes, como o XML (eXtensible Markup Language), XML Schema, RDF (Resource Description Framework) e RDFS (RDF Schema), para servirem como base para uma linguagem de representao de ontologias. Atravs do XML possvel construir tags especcas para objetos e denir as caractersticas dentro deles. RDF um modelo padro para intercmbio de dados na web. Possui caractersticas que facilitam a fuso de dados, mesmo quando os esquemas subjacentes diferem e apoia especicamente a evoluo dos esquemas ao longo do tempo sem a necessidade que todos os clientes de dados sejam alterados (CONSORTIUM, 2011). RDF amplia a estrutura de ligao da web para usar as URIs (Uniform Resource Identier) para nomear relaes entre coisas, assim como as duas extremidades da tripla. Usando um modelo simples, permite que dados estruturados e semi-estruturados sejam misturados, expostos e compartilhados entre diferentes aplicaes (CONSORTIUM, 2011). Na Seo 4.3.5, esse padro ser descrito com mais detalhes dentro do contexto do framework utilizado para acesso a ontologia. A camada esquema responsvel por estruturar, denir e dispor os dados e os signicados associados a estes para que na camada lgica as aplicaes web possam realizar inferncia a partir desses dados. A camada Ontologia quem dene a relao entre os dados. Os procedimentos desta camada sero capazes, com auxlio da camada inferior, a Esquema (uma vez que a linguagem para especicao de ontologias adotada utiliza XML e RDF), de representar o domnio requerido, tratando dos relacionamentos entre classes e indivduos atravs de relaes, atributos e axiomas (OLIVEIRA, 2010). A Camada Lgica, que faz comunicao com as duas camadas inferiores e dene regras para fazer inferncia sobre os dados e relacionamentos de informao. Tais regras fornecem aos agentes (sistemas computacionais que interagem de forma autnoma a m de alcanar objetivos) poder de raciocinar sobre os dados e seus signicados denidos na Camada Esquema e raciocinar sobre os relacionamentos entre os conceitos denidos na camada Ontologia (OLIVEIRA, 2010). Esse raciocnio sobre a ontologia possvel especialmente devido a possibilidade de denir axiomas na ontologia, permitindo assim inferncia sobre relacionamentos e dados. Algumas linguagens foram propostas para representao de ontologias, mas neste trabalho

14

vamos focar na OWL (Ontology Web Language), recomendada pela W3C em 2004 como a linguagem a ser utilizada na especicao de ontologias. A OWL surgiu da unio de outras duas linguagens j existentes para representao de ontologias, a OIL (Ontology Inference Layer) e DAML (DARPA Agent Markup Language). A nalidade da OWL era permitir a denio explicta de conceitos e propriedades acerca de um determinado domnio e ampliar a facilidade de expressar semntica disponvel em padres como XML, RDF e RDFS. Estruturalmente a OWL se subdivide em 3 sublinguagens: OWL Lite, OWL DL e OWL Full. Essa diviso feita de acordo com o poder de expressividade de cada sublinguagem, sendo que esse poder dene para qual tipo de aplicao cada sublinguagem adequada. As sublinguagens so (SMITH; WELTY; MCGUINNESS, 2004): OWL Lite: uma sublinguagem destinada a aplicaes mais simplicadas e para permitir que os usurios tenham um aprendizado rpido. Ela possui apenas um nmero limitado de construtores da OWL. a menos expressiva dentre as trs sublinguagens, um custo a se pagar pela simplicidade e ecincia dos raciocinadores que trabalham com ela. OWL DL: sua sigla vem de Description Logics (lgica de descrio), rea que estuda o fragmento decidvel das lgicas de Primeira Ordem. Possui mais expressividade do que a OWL Lite e pode ser inferida por raciocinadores, mas sem perder completude computacional e capacidade de raciocnio e por isso, ainda possui algumas restries em relao a OWL Full. OWL Full: sublinguagem com maior expressividade dentre as trs, no tendo nenhuma limitao em relao a OWL (o que a torna a prpria OWL). Mas seu grande poder vem s custas da falta de garantia computacional. Os raciocinadores no suportam todas as suas funcionalidades, tornando as ontologias formalizadas em OWL Full problemticas para quem procura capacidade de raciocnio. Um resumo das caractersticas de cada sublinguagem da OWL pode ser visto na Figura 2.2. Desenvolvedores de ontologias que utilizem OWL devem vericar qual OWL melhor para atender as suas necessidades. A escolha entre OWL Lite e OWL DL depende do grau de expressividade e da restrio de construtores que o usurio deseja. Raciocinadores para OWL Lite tero propriedades computacionais desejveis enquanto que raciocinadores para OWL DL estaro sujeitos a uma complexidade maior no pior caso ao lidar com sublinguagens decidveis.

15

Figura 2.2: Sublinguagens da OWL (PEDROZO, 2009)

Figura 2.3: Sublinguagens da OWL (PEDROZO, 2009) Como mostrado acima, as sublinguagens da OWL esto contidas uma dentro da outra como mostrado na Figura 2.3. O grupo FORMAS vem realizando pesquisas e desenvolvendo trabalhos na rea de ontologias para representao de conhecimento. Um dos trabalhos desenvolvidos por pesquisadores do grupo FORMAS a OntoComp, ontologia do curso de cincia da computao da UFBA que base deste trabalho. Essa ontologia foi modelada utilizando a linguagem OWL DL pois ela alia expressividade com boa capacidade de inferncia, o que ser muito importante nesse trabalho pois pretende-se realizar inferncia lgica atravs de raciocinadores. Na Seo 3.1, apresentado um histrico do desenvolvimento dessa ontologia.

16

SISTEMA SEMNTICO PARA ORIENTAO ACADMICA (SOA)

Este captulo tem como objetivo apresentar um histrico dos ciclos de vida da Ontologia do curso de cincia da computao (OntoComp), mostrando as principais mudanas ocorridas em cada ciclo e uma anlise do Sistema Semntico para Orientao Acadmica (SOA), sistema semntico desenvolvido na plataforma Java que utiliza como base de conhecimento a ontologia OntoComp, que ser detalhada na Seo 3.1. O SOA foi desenvolvido com o objetivo de fornecer uma ferramenta de apoio a orientao acadmica dos estudantes do curso de Bacharelado em Cincia da Computao da UFBA durante o curso. A anlise do SOA permitir identicar que funcionalidades j foram implementadas, quais apresentaram problemas aps as mudanas realizadas na ontologia no seu quarto ciclo, o que pode e/ou precisa ser melhorado e quais alteraes precisam ser realizadas no SOA para que este use a ontologia gerada no quarto ciclo da OntoComp.

3.1

ONTOCOMP: ONTOLOGIA DO CURSO DE CINCIA DA COMPUTAO

A OntoComp, ontologia do curso de Cincia da Computao, representa a base do conhecimento utilizada para implementao do SOA, ou seja, de onde o SOA extrai as informaes necessrias para responder as consultas realizadas por seus usurios. Se a OntoComp no for atualizada constantemente para que represente exatamente a situao atual do currculo do curso de Cincia da Computao da UFBA, o sistema de orientao perde seu objetivo. Devido necessidade de atualizao e aperfeioamento alm de reformulaes no currculo do Curso de Cincia da Computao da UFBA, a OntoComp j passou por quatro ciclos de modelagem, os quais so detalhados a seguir.

17

Figura 3.1: Estrutura taxonmica da OntoComp aps o primeiro ciclo (PEDROZO, 2009)

3.1.1

PRIMEIRO CICLO DA ONTOCOMP

No primeiro ciclo da OntoComp, que foi desenvolvido por Eduardo Maior (MAIOR, 2007), o objetivo era representar da melhor forma possvel o currculo do curso de Cincia da Computao da UFBA. Neste primeiro ciclo, a ontologia foi modelada usando a ferramenta Protg (PROTGE, 2011) e como raciocinador o Pellet (PARSIA, 2011). Na poca estava sendo implantado o novo projeto pedaggico do curso de Bacharelado em Cincia da Computao, o qual vinha com grande exibilidade na grade curricular e com a oferta de um nmero maior de disciplinas. Por isso, aproveitou-se a implantao do novo projeto pedaggico para represent-lo em uma linguagem formal, no caso a OWL e assim foi criado o primeiro ciclo da OntoComp. De acordo com a especicao do projeto pedaggico da poca, foram denidos os conceitos "Componente Curricular", "rea de Concentrao", "Perl Complementar", "Matria"e "Perl Prossional". Os resultados esperados no foram alcanados na coleta de informaes sobre o conceito "Perl Prossional", o que impactou na modelagem nal do conceito. No nal do primeiro ciclo da OntoComp, a ontologia estava estruturada da forma como mostrada na Figura 3.1.

3.1.2

SEGUNDO CICLO DA ONTOCOMP

O segundo ciclo da OntoComp foi desenvolvido por Gabriel Andrade (ANDRADE, 2008), o qual veio com um pouco mais de maturidade j com a experincia adquirida no primeiro

18

Figura 3.2: Hierarquia taxonmica do conceito Famlias Ocupacionais (PEDROZO, 2009) ciclo da ontologia e com o objetivo de superar os problemas enfrentados, melhorando os pontos decientes do primeiro ciclo. A principal decincia na OntoComp do primeiro ciclo era o conceito "Perl Prossional", ento (ANDRADE, 2008) procurou corrigir esse conceito utilizando como referncia a Classicao Brasileira de Ocupaes (CBO), publicao do Ministrio do Trabalho e Emprego (MTE) que "reconhece, nomeia, codica os ttulos e descreve as caractersticas das ocupaes do mercado de trabalho brasileiro"(MTE, 2002). A anlise da CBO mostrou que o conceito "Perl Prossional"no era suciente para representar o grande nmero de ocupaes associadas rea de computao. Diante disto, (ANDRADE, 2008) excluiu esse conceito e adicionou outros dois: "Famlias Ocupacionais"e "reas de Atividade"seguindo a formalizao da CBO. O conceito "Famlias Ocupacionais"representa o conjunto de ocupaes relacionadas rea de computao e pode ser vista na Figura 3.2. O conceito "reas de Atividade"descreve as atividades exercidas pelos prossionais da rea de computao.

3.1.3

TERCEIRO CICLO DA ONTOCOMP

O terceiro ciclo da OntoComp foi desenvolvido por Amon Pedrozo (PEDROZO, 2009). Este ciclo foi um marco na histria da OntoComp. Como nos ciclos anteriores, a principal diculdade na modelagem da ontologia continuava sendo os conceitos relacionados s ocupaes da rea de computao, mesmo aps a mudana no segundo ciclo onde o conceito "Perl Prossional"foi removido e foram includos os conceitos "Famlias Ocupacionais"e "reas de Atividade"que tiveram como base para sua modelagem as denies da CBO.

19

Figura 3.3: Taxonomia das ocupaes do terceiro ciclo da OntoComp (PEDROZO, 2009) Aps uma extensa anlise das ocupaes relacionadas a rea de computao, (PEDROZO, 2009) concluiu que devido a complexidade e quantidade de informaes existentes nos pers prossionais, o melhor era modelar uma ontologia apenas para as Ocupaes denidas na CBO. Com isto foi modelada uma nova ontologia chamada OcupacaoCBO com os conceitos "OcupacaoCBO"e "Competencia". A nova hierarquia do conceito "OcupacaoCBO"pode ser vista na Figura 3.3. De acordo com as denies da CBO (MTE, 2002), para o exerccio de determinada ocupao so requeridas competncias, o que gerou os relacionamentos "requer_competncia"e seu inverso "eh_requerida"entre os conceitos "OcupacaoCBO"e "Competencia". A separao da ontologia que representa os pers prossionais da ontologia do currculo do curso de computao torna possvel que esta ontologia seja utilizada em modelagens de ontologias de outras reas, visto que a ontologia pode ser adequada a outros pers prossionais, o que garante o princpio do reuso de ontologias. Segundo (PEDROZO, 2009), o aperfeioamento da OntoComp consistiu basicamente em trs aes: Adio de conceitos relacionados a atividades acadmicas (pesquisa, extenso, eventos, etc.); Atualizao do conceito "Componente Curricular"de acordo com a Resoluo no 02/2008 que dene e categoriza os componentes curriculares dos cursos de graduao; Integrao com a ontologia ocupacaoCBO modelada sobre o mercado de trabalho. A atualizao do conceito "Componente Curricular"ocorreu atravs da denio de subclasses desse conceito que so "Atividade Acadmica", "Disciplina", "Estgio Supervisionado"e

20

Figura 3.4: Taxonomia associada ao currculo do curso de computao - UFBA (PEDROZO, 2009)

21

Figura 3.5: Estrutura taxonmica da OntoComp integrada a ontologia OcupacaoCBO

22

"Projeto Final"denidas na Resoluo no 02/2008. O novo projeto pedaggico dividiu as disciplinas entre as seguintes modalidades: "Disciplina de rea de Concentrao", "Disciplina de Perl Complementar", "Disciplina de Matria", "Disciplina Livre", "Disciplina Regular", "Disciplina de Laboratrio", "Disciplina de Tpicos"e "Seminrio". Acrescentou-se a OntoComp o novo conceito "Natureza do Componente Curricular"com as seguintes subclasses: "Natureza Obrigatria", "Natureza Optativa"e "Natureza Livre", a m de deixar a OntoComp de acordo com a classicao dos componentes curriculares denida no projeto pedaggico do curso. Cada modalidade foi associada a exatamente uma natureza do componente curricular atravs da relao "tem natureza". Aps estas atualizaes, a estrutura da OntoComp referente ao currculo do curso resultante pode ser vista na Figura 3.4. Finalmente foi integrada a OntoComp a ontologia da CBO resultando na ontologia mostrada na Figura 3.5, resultado nal do terceiro ciclo da OntoComp.

3.1.4

QUARTO CICLO DA ONTOCOMP

Aps o trabalho de (PEDROZO, 2009) no terceiro ciclo da OntoComp, a ontologia atingiu um bom nvel de maturidade e os problemas com relao a modelagem de um conceito que representasse as ocupaes da rea de computao foram resolvidos. Com isto percebeu-se que era a hora de ampliar a OntoComp incluindo novos conceitos e melhorando os j existentes. Na Figura 3.6 podem ser vistos os principais tpicos que compem o projeto pedaggico do Curso de Cincia da Computao da UFBA. Analisando a Figura 3.6 vericamos que os tpicos "Grade Curricular", "Mercado de Trabalho"e "Atividades Complementares"j estavam modelados na OntoComp do terceiro ciclo. Como havia uma reformulao do projeto pedaggico do currculo do curso de Cincia da Computao da UFBA, o que tornava a OntoComp desatualizada em alguns conceitos, este novo ciclo veio como a oportunidade perfeita para atualizar a OntoComp fazendo com que a mesma representasse exatamente o que est denido na reforma do projeto pedaggico alm de incluir novos conceitos at ento inexplorados. Para isto, Rafael Saraiva (SARAIVA, 2010) acrescentou o conceito "Docente" OntoComp e reestruturou o conceito "Componente Curricular"tornando-o compatvel com o projeto pedaggico atualizado do curso. A reestruturao do conceito "Componente Curricular"ocorreu atravs da excluso de algumas modalidades que no estavam mais englobadas no projeto pedaggico ou mesmo no fazem parte do currculo de Cincia da Computao, por exemplo: disciplinas de laboratrio, disciplinas de tpicos, seminrios, entre outros. A subclasse "Estgio Supervisionado"foi movida para a classe "Atividade Complementar"pois o currculo do

23

Figura 3.6: Principais tpicos do domnio do curso de computao - UFBA (PEDROZO, 2009) curso de computao no possui estgio supervisionado mas possvel aproveitar a carga horria dessa atividade como uma atividade complementar do curso. A incluso do conceito "Docente"ocorreu da seguinte forma: Foi denido que um Docente tem anidade (relao "tem_anidade_com"e sua inversa "recomenda-se_ser_ministrada") com uma Disciplina e que Docentes participam de Grupos Acadmicos atravs dos relacionamentos "participa_de"e/ou "coordena"Grupo Acadmico. Na reestruturao do conceito "Componente Curricular", a subclasse "Disciplina de Matria"foi removida da classe Componente Curricular e tornou-se uma nova classe que tem como superclasse "Thing", ou seja, um novo conceito "Matria"e foram denidos os relacionamentos "pertence"e "formada_por"para os conceitos "Matria"e "Disciplina". Aps toda esta reestruturao, a classe "Componente Curricular"resultante mostrada na Figura 3.7.

3.2

SOA

O objetivo do Sistema Semntico para Orientao Acadmica (SOA) servir de suporte orientao aos alunos do curso de Cincia da Computao da UFBA. O SOA tem importncia no sentido de que o novo currculo do curso caracterizado por uma gama de opes de disciplinas disponveis a cada semestre aos alunos, desta forma a orientao ao discente se faz de grande necessidade diante de tantas possibilidades: seja no direcionamento a uma formao complementar ou na ordem em que as disciplinas obrigatrias so cursadas (MAIOR, 2007).

24

Figura 3.7: Conceito Componente Curricular aps reestruturao no quarto ciclo da OntoComp O desenvolvimento do SOA ganhou impulso no trabalho de (Pedrozo, 2009), onde alm de desenvolver o terceiro ciclo da OntoComp, foi desenvolvida a primeira verso do SOA na plataforma Java Web, que mesmo sendo considerado ingnuo por seu autor, j permitia a realizao de algumas consultas sobre a ontologia modelada, como consultar quais disciplinas so pr-requisito de uma determinada disciplina. A verso do SOA desenvolvida em (PEDROZO, 2009) foi algo como um prottipo, um ponto de partida para a construo de um sistema semntico maior que explorasse todo o potencial da OntoComp, porm como a implementao do SOA no era o objetivo principal do trabalho, podemos considerar o resultado daquele trabalho como um sistema limitado ou ingnuo como o prprio autor o deniu. Era necessrio dar um passo maior no desenvolvimento do SOA, expand-lo, melhor-lo e por isso no trabalho de Vitor Fernandes (OLIVEIRA, 2010) o SOA ganhou uma verso mais robusta, com mais consultas e onde realmente o sistema foi estruturado para utilizar as tecnologias existentes para construo de sistemas semnticos. No trabalho de (OLIVEIRA, 2010), foi feita uma anlise do SOA desenvolvido por (PEDROZO, 2009) e a partir do resultado da mesma, foram traados novos objetivos para o SOA, novas funcionalidades a serem implementadas, levando em conta as questes de competncia denidas na especicao do terceiro ciclo da OntoComp. A partir dessa anlise os casos de uso do SOA foram refeitos assim como os seus requisitos funcionais para que o sistema pudesse utilizar todo o potencial de conhecimento modelado na OntoComp. Nesse trabalho foram includas consultas mais complexas, que necessitaram do uso de sistemas de raciocnio para retornar os resultados. O Jena (FRAMEWORK, 2011b) foi explorado a m de identicar o quo ecaz esse framework e qual o seu potencial para o desenvolvimento

25

de sistemas semnticos. A anlise do potencial do Framework Jena mostrou que o mesmo possui pontos fortes porm um de seus pontos fracos no que se refere ao uso de raciocinadores, pois os raciocinadores incorporados pelo Jena so limitados, no sendo possivel realizar consultas mais complexas, com uso de inferncia atravs do Jena. Diante da limitao do Jena no que diz respeito a sistemas de raciocnios foi integrado no SOA o raciocinador Pellet (PARSIA, 2011). Ocorreu uma tentativa por parte de Vitor Fernandes (OLIVEIRA, 2010) de utilizar o Pellet no desenvolvimento do SOA a partir do momento que se constatou as limitaes dos sistemas de raciocnio inclusos no Jena, porm no houve tempo hbil para explorar esse raciocinador.

26

ATUALIZAO DO SISTEMA SEMNTICO PARA ORIENTAO ACADMICA (SOA)

Neste captulo vamos descrever as mudanas ocorridas no SOA devido s alteraes ocorridas na OntoComp no seu quarto ciclo de vida.

4.1

SOA APS O QUARTO CICLO DA ONTOCOMP

A OntoComp passou por mais um ciclo onde ocorreram mudanas importantes como a incluso do conceito "Docente"e a reestruturao do conceito "Componente Curricular", de onde foi extrado o conceito "Disciplina de Matria", que passou a se chamar "Matria"e se tornou uma subclasse de "Thing", deixando de ser uma subclasse do conceito "Componente Curricular". Alm disso, com a incluso do conceito "Docente", novas relaes surgiram, como a relao "tem_anidade_com"e sua inversa "recomenda-se_ser_ministrada"entre os conceitos "Docente"e "Componente Curricular". Na reestruturao do conceito "Componente Curricular", algumas modalidades foram excludas, visto que no novo projeto pedaggico do curso os componentes curriculares se dividem segundo as seguintes modalidades: Disciplinas, Atividades Complementares e Trabalho de Concluso de Curso. As modalidades "Disciplina Regular", "Disciplina de Laboratrio", "Disciplina de Tpicos"e "Seminrio"foram excludas pois no fazem mais parte do Currculo de Cincia da Computao pelo fato de no serem denidas na resoluo no 02/2008. Com isto algumas consultas existentes no SOA tornaram-se obsoletas e precisaram ser refeitas de acordo com a nova modelagem da OntoComp. Um problema semelhante ocorreu com a relao "tem_anidade"que relacionava o con-

27

ceito "Componente Curricular"com ele mesmo e esta relao foi excluda no quarto ciclo da OntoComp, tornando a consulta existente no SOA desnecessria. Uma das consultas do SOA mais afetadas pela reestruturao do conceito "Componente Curricular"foi a consulta de Disciplinas por Matria, onde antes era efetuada uma simples consulta a ontologia para listar os indivduos membros de uma determinada classe, no novo ciclo, passou a ser utilizada uma relao para denir quais disciplinas fazem parte de uma determinada matria. Na Tabela 4.1 possvel visualizar as mudanas ocorridas na OntoComp atravs dos relacionamentos existentes no terceiro ciclo e os que foram inseridos no quarto ciclo. Alguns relacionamentos passaram por mudanas do terceiro para o quarto ciclo, por exemplo, a relao "eh_estimulada_por"passou por uma mudana de Imagem no quarto ciclo.

4.2

REQUISITOS FUNCIONAIS DO SOA

Com todas essas mudanas listadas na Tabela 4.1, os requisitos funcionais do SOA tambm mudaram e precisaram ser reescritos. Tomando como base o novo diagrama de casos de uso do SOA, modelado na ferramenta Jude Community (ASTAH, 2011) utilizando notao da Unied Modeling Language (UML), que pode ser visto na Figura 4.1 e cujas especicaes esto no Apndice A e as mudanas realizadas na OntoComp, alguns requisitos funcionais foram mantidos, alguns precisaram ser reescritos e novos foram especicados.

4.2.1

RESQUISITOS FUNCIONAIS MANTIDOS

Realizar consulta de disciplinas do Currculo (OLIVEIRA, 2010). RF-1.1: Realizar consulta de disciplinas por pr-requisito: o usurio dever selecionar inicialmente o nome de uma disciplina dentre uma lista de opes que servir de ltro para a consulta de disciplinas. Alternativamente o usurio poder consultar disciplinas por pr-requisito recomendado. RF-1.2: Realizar consulta de disciplinas por rea de concentrao: o usurio dever selecionar uma rea de concentrao dentre uma lista de opes que servir de ltro para a consulta de disciplinas. RF-1.3: Realizar consulta de disciplinas por perl complementar: o usurio dever selecionar um perl complementar dentre uma lista de opes que servir de ltro para a consulta de disciplinas.

28

Figura 4.1: Diagrama de casos de uso do SOA

29

Tabela 4.1: Relacionamentos da OntoComp - incluses e excluses no quarto ciclo


Nome Domnio Imagem Relacionamentos excludos no quarto ciclo da OntoComp eh_habilitado OcupacaoCBO Componente_Curricular tem_anidade Componente_Curricular Componente_Curricular Relacionamentos mantidos no quarto ciclo da OntoComp eh_pre-requisito Componente_Curricular Componente_Curricular eh_pre-requisito_recomendado Componente_Curricular Componente_Curricular eh_requerida Competencia OcupacaoCBO estah_inserido Conteudo Disciplina faz_parte_de Projeto_Academico Grupo_Academico possui_conteudo Disciplina Conteudo possui_projeto Grupo_Academico Projeto_Academico requer_competencia OcupacaoCBO Competencia tem_natureza Componente_Curricular Natureza_Componente_Curricular tem_pre-requisito Componente_Curricular Componente_Curricular tem_pre-requisito_recomendado Componente_Curricular Componente_Curricular Relacionamentos alterados no quarto ciclo da OntoComp eh_estimulada_por Competencia Materia eh_promovida_por Atividade_Complementar Grupo_Academico estimula_competencia Materia Competencia promove Grupo_Academico Atividade_Complementar Relacionamentos includos (novos) no quarto ciclo da OntoComp coordena Docente Grupo_Academico eh_composto_por Grupo_Academico Docente eh_coordenado_por Grupo_Academico Docente formada_por Matria Disciplina participa_de Docente Grupo_Academico pertence Disciplina Matria recomenda-se_ser_ministrada Disciplina Docente recomenda-se_fracamente_ser_ministrada Disciplina Docente recomenda-se_moderadamente_ser_ministrada Disciplina Docente recomenda-se_fortemente_ser_ministrada Disciplina Docente tem_anidade_com Docente Disciplina tem_fraca_anidade_com Docente Disciplina tem_moderada_anidade_com Docente Disciplina tem_forte_anidade_com Docente Disciplina

30

RF-1.4: Realizar consulta de disciplinas por matria: o usurio dever selecionar uma matria dentre uma lista de opes que servir de ltro para a consulta de disciplinas. RF-1.5: Realizar consulta de disciplinas por propriedades atravs do motor de inferncia: o usurio dever selecionar inicialmente o nome de uma disciplina e uma propriedade dentre as listas de opes. A disciplina e a propriedade serviro de ltro para a consulta.

4.2.2

RESQUISITOS FUNCIONAIS NOVOS E MODIFICADOS

Realizar consulta de disciplinas do Currculo. RF-1.6: Realizar consulta de disciplinas por natureza: O usurio dever selecionar a natureza (obrigatria ou optativa) das disciplinas que deseja consultar em um combo de seleo que servir de ltro para a consulta das disciplinas. RF-1.7: Realizar consulta de disciplinas por anidade com Docente atravs do motor de inferncia: o usurio dever selecionar inicialmente o nome de um docente e uma propriedade (grau de anidade entre a disciplina e o docente) dentre as listadas. O docente e a propriedade serviro de ltro para a consulta. Realizar consulta de docentes do Departamento. RF-2.1: Realizar consulta dos docentes lotados no Departamento de Cincia da Computao: o usurio dever clicar no boto Efetuar Consulta. Sero listados todos os docentes lotados no departamento, com sua situao (ativo ou afastado) e titularidade. RF-2.2: Realizar consulta dos docentes por grupo acadmico: O usurio dever selecionar o nome de um grupo acadmico e uma propriedade (participa ou coordena) dentre as listadas. O grupo e a propriedade serviro de ltro para a consulta. RF-2.3: Realizar consulta de docentes por anidade com disciplina: O usurio dever selecionar uma disciplina e uma propriedade (grau de anidade entre a disciplina e o docente) entre as opes listadas. A disciplina e a propriedade sero usados como ltro para a consulta. Realizar consulta de Grupo Acadmico. RF-3.1: Realizar consulta de grupos acadmicos por Docente: o usurio dever selecionar um docente e uma propriedade (participa ou coordena) entre as opoes listadas. O docente e a propriedade sero usados como ltro para a consulta.

31

4.3

TECNOLOGIAS REUTILIZADAS E INCORPORADAS

O SOA foi desenvolvido na plataforma Java, mais precisamente Java Web. Neste novo ciclo do sistema foram mantidas a maioria das tecnologias j utilizadas no desenvolvimento do sistema, procurando apenas explorar melhor o seu potencial.

4.3.1

ECLIPSE

O Eclipse um ambiente integrado de desenvolvimento de software, do ingls Integrated Development Environment - IDE. Essa ferramenta foi desenvolvida em Java, possui cdigo aberto (Open Source). Foi desenvolvida com o objetivo de fornecer um ambiente completo para desenvolvimento de sistemas. muito utilizada por prossionais que trabalham com a linguagem Java devido a sua grande exibilidade para incorporar plugins e frameworks, o seu diferencial em relao a outras ferramentas existentes no mercado. Como citado anteriormente, um dos diferenciais do Eclipse a facilidade de incorporar plugins e frameworks ferramenta, o que nesse projeto possibilitou utilizar o framework Jena, que conforme ser detalhado posteriormente fornece uma gama de funcionalidades para acesso a informaesarmazenadas em ontologias, permitindo assim a manipulao dessas informaes de forma fcil e transparente. A verso do Eclipse utilizado nesse trabalho foi a verso 3.7, codinome Indigo, que no momento a verso mais recente dessa ferramenta. possvel efetuar o download do eclipse no seu site1 . Existem vrias verses do Eclipse, cada uma indicada para um tipo de desenvolvimento especco. No caso deste projeto onde implementada uma aplicao web, foi utilizado o Eclipse IDE for Java EE (Java Enterprise Edition) Developers, com a qual possvel criar aplicaes web. A instalao consiste em descompactar o arquivo baixado do site e a IDE est pronta para uso. Em caso de dvidas, o site fornece tutoriais e documentao para iniciantes na ferramenta.

4.3.2

JAVA SERVLETS E JAVASERVER PAGES

A Web foi por muito tempo baseada em pginas de contedo esttico, ou seja, simples arquivos HTML exibidos em um navegador web. Com o crescimento da internet e a consequente demanda por informao na web percebeu-se que era preciso dinamismo nas pginas na internet. Servlet a tecnologia Java capaz de criar pginas dinmicas.
1 http://www.eclipse.org

32

Um Servlet basicamente um controlador de requisies numa pgina web. Ele recebe as requisies do cliente, trata e encaminha a solicitao para o componente especco da camada lgica que efetua qualquer processamento inerente a uma classe Java e devolve o resultado da solicitao que pode ser uma pgina HTML ou uma simples mensagem de conrmao a ser exibida para o usurio. Em Java, um Servlet representado por uma classe que herda da classe HttpServlet e por esta herana tem acesso aos objetos da requisio do cliente e de resposta para o mesmo. o Servlet quem trata as requisies do cliente. Segundo (ORACLE, 2011b), a tecnologia JavaServer Pages (JSP) fornece um meio rpido e simplicado de criar contedo dinmico na web. A tecnologia JSP permite o desenvolvimento rpido de aplicaes web baseadas em servidor e independente de plataforma. A tecnologia JSP permite aos desenvolvedores web desenvolver rapidamente e manter facilmente pginas web dinmicas que potencializam os sistemas existentes, rpido desenvolvimento de aplicaes web independentes de plataforma. Essa tecnologia separa a interface do usurio da gerao de contedo, permitindo aos desenvolvedores alterar o layout da pgina sem alterar o contedo dinmico da mesma (ORACLE, 2011a). O Servlet possui vantagens como programao, exibilidade, escalabilidade e ecincia. Os servlets executados por um servidor cam armazenados na memria, no havendo necessidade de criao de um novo processo a cada requisio, alm das vantagens j conhecidas da tecnologia Java como exibilidade, orientao a objetos, reuso de cdigo, documentao disponvel na web por ser uma linguagem muito utilizada, portabilidade j que os sistemas desenvolvidos na plataforma Java executam em qualquer ambiente independente de plataforma desde que possua a mquina virtual do Java instalada. Juntas, a tecnologia JSP e Servlets fornecem uma alternativa atraente em relao ao que outros tipos de programao de pginas dinmicas oferecem: Independncia de plataforma; Melhor desempenho; Separao da lgica da pgina da camada de apresentao; Facilidade de administrao; Extensibilidade na empresa; Facilidade de uso.

33

4.3.3

APACHE TOMCAT

Um dos requisitos para desenvolvimento de aplicaes web o uso de um servidor de aplicao. Apesar de possuir maior experincia em desenvolvimento web utilizando o JBoss, o autor decidiu continuar a implementao do SOA utilizando o Apache (FOUNDATION, 2011), pois o mesmo j vinha sendo utilizado nas verses anteriores do SOA e preenche todos os requisitos necessrios para desenvolvimento do SOA, alm do que a escolha do melhor servidor de aplicao no ser o foco deste trabalho, apenas a implementao do sistema. Apesar do Apache j est na verso 7.0.23, o autor decidiu continuar com a verso 6.0.33 utilizada anteriormente, pois uma mudana de verso implicaria em mais tempo de anlise das mudanas ocorridas neste software e qual o impacto das mesmas no SOA. Umas das vantagens em se utilizar o Eclipse a facilidade que ele oferece para congurao de servidores de aplicao diretamente na ferramenta, sem necessidade de editar arquivos de congurao, tudo bastante simples e intuitivo, facilitando assim o processo de congurao do ambiente de desenvolvimento. Aps a congurao do Apache no Eclipse, seu ambiente est completo e ento possvel rodar a aplicao, desenvolver e testar novas funcionalidades.

4.3.4

JUDE

O Jude (ASTAH, 2011) uma ferramenta Open Source para construo de diagramas (casos de uso, UML, classes, atividades, sequncia, etc.). Apesar de (OLIVEIRA, 2010) ter utilizado o Dia (DIA, 2011) na verso anterior do SOA, o autor optou pelo uso do Jude pois teve a oportunidade de trabalhar com as duas ferramentas anteriormente e foi considerado que o Jude possui uma interface amigvel e intuitiva tornando o seu uso fcil, ao contrrio do Dia, ferramenta que o autor avaliou enquanto cursava a disciplina Engenharia de Software II juntamente com o Jude e concluiu que o Jude fornece um conjunto melhor de funcionalidades para elaboraes de diagramas.

4.3.5

JENA

Ao trabalhar com sistemas semnticos, no caso o SOA, necessrio utilizar alguma tecnologia, framework para conseguir acessar as informaes armazenadas na ontologia, ou seja, algo que possa "decifrar"OWL e extrair o conhecimento modelado. No caso do SOA tem-se a ontologia OntoComp, que a base de conhecimento do sistema e onde esto modeladas todas

34

as informaes sobre o currculo do curso de computao. Nesse contexto, o Jena2 surge como uma soluo de acesso e manipulao de informaes modeladas em ontologias. De acordo com (FRAMEWORK, 2011b), o Jena um framework Java para construo de aplicaes web semnticas. Ele fornece um ambiente de programao para RDF, RDFS e OWL, SPARQL e inclui um motor de inferncia baseado em regras. O Jena um software open source desenvolvido pelo HPLabs Semantic Web Research3 , que inclui uma API RDF, uma API OWL, um motor de inferncia, dentre outras tecnologias utilizadas na web semntica (FRAMEWORK, 2011b). API JAVA DO JENA PARA RDF O Resource Description Framework (RDF) uma padro recomendado pelo W3C para descrever recursos (resources). A denio do que um recurso ainda objeto de debate de muitos pesquisadores ento para este trabalho, ser adotada a denio de que um recurso algo que podemos identicar, uma pessoa, um site ou um animal (FRAMEWORK, 2011a). Um recurso identicado por um Uniform Resource Identier (URI), no caso da OntComp, "http://www.ccc.ufba.br/curriculoCC.owl#Docente" um recurso. No se deve confundir o recurso com um endereo web da internet pois se tentar acess-lo utilizando um navegador, descobrir que no possvel. Recursos possuem propriedades que so representadas por um arco, rotulado com o nome da propriedade, que tambm uma URI. Por exemplo, a URI que identica a propriedade "tem_natureza"da OntoComp "http://www.ccc.ufba.br/curriculoCC.owl#tem_natureza". Propriedades possuem valores, que podem ser literais, inteiros, string, entre outros tipos de dados suportados. O Jena possui classes para representar recursos, propriedades e literais. As interfaces que representam recursos, propriedades e literais so Resource, Property e Literal respectivamente. Como citado anteriormente, propriedades so representadas por arcos e no Jena, cada arco chamado de Statement, ou simplesmente declarao, onde cada declarao arma algo sobre um recurso. Declaraes so tambm chamadas de triplas, por serem divididas em trs partes, que so as seguintes (FRAMEWORK, 2011a): Sujeito: o recurso do qual o arco sai;
2 http://jena.sourceforge.net/index.html 3 http://www.hpl.hp.com/semweb/

35

Predicado: a propriedade que rotula o arco; Objeto: o recurso para o qual o arco aponta. Um modelo RDF representado como uma coleo de declaraes, onde no possvel ocorrer duplicaes de declaraes. A interface model do Jena dene um mtodo chamado listStatements(), o qual retorna um StmtIterator, que um subclasse da classe Iterator do Java. Esse objeto da classe StmtIterator traz todas as declaraes existentes no modelo da ontologia que atenda aos parmetros passados. Esse mtodo possui mais de uma implementao, mas em nosso caso utilizamos apenas o listStatements(r, p, o), onde "r" um recurso, "p" uma propriedade e "o" um objeto. Na maioria dos casos passado valor nulo para o recurso e/ou para o objeto. Com isto esse mtodo retorna um StmtIterator contendo todas as declaraes do modelo onde a propriedade p aparece. A classe StmtIterator possui o mtodo nextStatement()) que retorna a prxima declarao do StmtIterator. O Jena fornece os mtodos de acesso ao sujeito, predicado e objeto de uma declarao atravs da interface Statement (FRAMEWORK, 2011a). O Jena possui um pacote especco para RDF, o com.hp.hpl.jena.rdf.model, que contm interfaces para representao de modelos, recursos, propriedades, declaraes, literais alm de uma fbrica de modelos (ModelFactory) para criao de modelos. Na Listagem 4.1 possvel ver um exemplo do SOA utilizando algumas das funes citadas anteriormente.
/ / R e t o r n a o s u j e i t o de uma d e c l a r a o p r i v a t e S t r i n g g e t S u j e i t o ( Model i n f , R e s o u r c e r , P r o p e r t y p , R e s o u r c e o ) { String retorno = "" ; String uribase = "" ; for ( S t m t I t e r a t o r i = i n f . l i s t S t a t e m e n t s ( r , p , o ) ; i . hasNext ( ) ; ) { Statement stmt = i . nextStatement ( ) ; Resource s u b j e c t = stmt . g e t S u b j e c t ( ) ; uribase = subject . toString ( ) . substring (7 ,22); i f ( u r i b a s e . e q u a l s ( "www. c c c . u f b a . b r " ) ) { retorno = subject . toString ( ) ; } } return r e t o r n o ; }

Listagem 4.1: Classe ConsultaMateriaModelo Na Listagem 4.2 temos um exemplo do retorno de uma declarao (tripla) para demonstrar

36

como os dados so retornados pela API RDF do Jena e que uma declarao sempre contm [sujeito, predicado, objeto], sendo que sujeito ou objeto pode ser nulo a depender do que foi passado como parmetro para o mtodo listStatements() da interface model.
[ h t t p : / / www . c c c . u f b a . b r / c u r r i c u l o C C . owl # D i s c i p l i n a _ L i v r e , h t t p : / / www . c c c . u f b a . b r / c u r r i c u l o C C . owl # t e m _ n a t u r e z a , h t t p : / / www . c c c . u f b a . b r / c u r r i c u l o C C . owl # N a t u r e z a _ O p t a t i v a ]

Listagem 4.2: Exemplo de uma Tripla retornada pelo Jena

4.4

ATUALIZANDO O SOA DE ACORDO COM A ONTOCOMP DO QUARTO CICLO

Nesta Seo apresenta-se como foi feita a atualizao do SOA para que as consultas j existentes no sistema desenvolvido com base no terceiro ciclo da OntoComp pudesse acessar e retornar as informaes corretamente ao utilizar OntoComp desenvolvida no seu quarto ciclo. Como foi detalhado na Seo 4.1, as mudanas na modelagem da OntoComp no seu quarto ciclo tiveram impacto razovel nas consultas do SOA que obviamente deixaram de funcionar. As consultas listadas abaixo no apresentaram nenhum problema na nova verso da OntoComp e por isso no necessitaram de correes: Consulta de disciplinas por rea de concentrao; Consulta de disciplinas por perl complementar. Essas consultas no apresentaram nenhum problema porque suas respectivas classes na OntoComp no sofreram alteraes no quarto ciclo da Ontologia. A consulta de disciplinas por anidade foi excluda pois utilizava a relao "tem_anidade"para inferir quais disciplinas possuam anidade com uma determinada disciplina. Essa relao foi excluda pois perdeu o sentido a partir do momento que se deniu que disciplinas possuem anidade com docentes. A seguir sero descritas as consultas que necessitaram de adaptaes devido s alteraes no quarto ciclo da OntoComp.

4.4.1

CONSULTA DISCIPLINAS POR MODALIDADE E NATUREZA

Esta consulta precisou ser totalmente reformulada pois a consulta existente no SOA utilizava como parmetros modalidade e natureza do "Componente Curricular", sendo que as mo-

37

dalidades usadas nessa consulta foram excludas da OntoComp no quarto ciclo por no estarem englobadas no novo projeto pedaggico do curso. Essas modalidades eram: Disciplina Regular, Disciplina de Laboratrio, Disciplina de Tpicos e Seminrio. Na reformulao da consulta, o parmetro modalidade foi retirado restando apenas a natureza do Componente Curricular, constituindo assim uma consulta onde o usurio informa se deseja listar as disciplinas de natureza obrigatria ou natureza optativa. A principal mudana ocorreu a nvel de implementao pois o que antes era uma simples consulta aos membros de uma determinada classe passou a utilizar inferncia sobre a relao "tem natureza"para identicar as classes cujos membros deveriam ser listados. Como descrito anteriormente, a API RDF do Jena possui um mtodo listStatements(Resource r, Property p, Resource o) que tem como parmetros um recurso, uma propriedade e outro recurso, que constituem uma declarao como a mostrada na Listagem 4.2. No caso dessa consulta, primeiramente preciso identicar quais as classes da ontologia que fazem referncia propriedade "tem natureza". Isto feito utilizando o mtodo listStatements(Resource r, Property p, Resource o). O recurso r passado como nulo, pois ele ser o sujeito da declarao a ser retornada pelo mtodo. A propriedade p igual "http://www.w3.org/2002/07/owl#onProperty"e o recurso o igual a "http://www.ccc.ufba.br/curriculoCC.owl#tem_natureza". Um exemplo das declaraes retornadas por esse mtodo pode ser visto na Listagem 4.3.
[ 2 d 2 a f c 4 f : 1 3 4 1 5 2 0 0 1 5 d:7 fd1 , h t t p : / / www . w3 . o r g / 2 0 0 2 / 0 7 / owl \ # o n P r o p e r t y , h t t p : / / www . c c c . u f b a . b r / c u r r i c u l o C C . owl # t e m _ n a t u r e z a ]

Listagem 4.3: Exemplo de uma declarao sobre a propriedade "tem natureza" O primeiro elemento da tripla mostrada na Listagem 4.3 o endereo da classe no modelo da ontologia onde a propriedade "tem natureza"aparece. Com essa informao, parte-se para o segundo passo que identicar que classe essa. O endereo mostrado acima usado como recurso numa nova chamada ao mtodo listStatements(Resource r, Property p, Resource o), agora sim para identicar o sujeito e o objeto nal que compartilham a propriedade "tem natureza". O objeto dessa declarao ser "Natureza_Optativa"ou "Natureza_Obrigatoria"e facilmente identicado passando com o mtodo utilizando a propriedade da OWL "someValuesFrom". O problema ocorre na hora de identicar o sujeito da declarao, pois a propriedade a ser passada no a mesma para todas as ocorrncias da relao "tem natureza"na ontologia, como mostrado na Listagem 4.4 da classe "Disciplina Livre", onde a propriedade que identica a classe RDFS.subClassOf, porm para a classe "Atividade Complementar"mostrada na Listagem 4.5 no possvel utilizar a mesma propriedade citada acima. Para classes como "Disciplina Livre", "Disciplina Obrigatria"e "Trabalho de Concluso de Curso" possvel utilizar a

38

propriedade RDFS.subClassOf para identicar o sujeito da declarao.


<owl:Class r d f : a b o u t = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # D i s c i p l i n a _ L i v r e " > <rdfs:subClassOf r d f : r e s o u r c e = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # D i s c i p l i n a " / > <rdfs:subClassOf> <owl:Restriction> <owl:onProperty r d f : r e s o u r c e = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # t e m _ n a t u r e z a " / > <owl:someValuesFrom r d f : r e s o u r c e = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # N a t u r e z a _ O p t a t i v a " / > </ owl:Restriction> </ rdfs:subClassOf> </ owl:Class>

Listagem 4.4: Classe Disciplina Livre O problema ocorre quando preciso identicar classes como "Atividade Complementar", mostrada na Listagem 4.5, onde no possvel utilizar a propriedade subClassOf. O mesmo se aplica s classes "Disciplina de Perl Complementar"e "Disciplina de rea Complementar".
<owl:Class r d f : a b o u t = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # A t i v i d a d e _ C o m p l e m e n t a r " > <owl:equivalentClass> <owl:Restriction> <owl:onProperty r d f : r e s o u r c e = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # t e m _ n a t u r e z a " / > <owl:someValuesFrom r d f : r e s o u r c e = " h t t p : / / www. c c c . u f b a . b r / c u r r i c u l o C C . owl # N a t u r e z a _ O p t a t i v a " / > </ owl:Restriction> </ owl:Class>

Listagem 4.5: Classe Atividade Complementar Este problema ocorre porque na modelagem da OntoComp a propriedade "tem natureza"foi declarada nas superclasses "Atividade Complementar", "Disciplina de rea de Concentrao"e "Disciplina de Perl Complementar"pois as subclasses das mesmas possuem a mesma natureza e portanto a modelagem est correta, assim suas subclasses apenas herdam a armao (tem_natureza some Natureza_Optativa). No faria sentido colocar tal armao em todas as subclasses se colocando-a na superclasse as suas subclasses automaticamente herdam. Esta a diferena entre as classes para as quais o Jena consegue identicar o sujeito da propriedade "tem natureza"das que ele no consegue. Classes como "Disciplina Obrigatoria"no possuem

39

classes equivalentes ou subclasses. Foram feitas diversas tentativas utilizando outras propriedades (por exemplo: equivalentClass) da OWL, RDF e RDFS para tentar identicar o sujeito da declarao nos casos citados acima mas no houve sucesso. Desta forma essa consulta ca incompleta uma vez que possvel listar todas as disciplinas que tem natureza obrigatria mas no as disciplinas de natureza optativa, caso em que so listadas apenas as que so membros da classe "Disciplina Livre", faltando as que esto nas subclasses de "Disciplina de rea de Concentrao"e "Disciplina de Perl Complementar". importante ressalvar que mudanas futuras na modelagem da classe "Componente Curricular"podem tornar a consulta de disciplinas com natureza obrigatria incompleta, por exemplo, a criao de uma modalidade com subclasses cuja natureza seja obrigatria. As disciplinas dessas subclasses no seriam listadas pela consulta existente hoje no sistema.

4.4.2

CONSULTA DE DISCIPLINAS POR MATRIA

Na OntoComp do terceiro ciclo, existia uma classe "Disciplina_de_Materia"que era subclasse da classe "Disciplina". Dentro da classe "Disciplina_de_Materia"estavam todas as matrias denidas no projeto pedaggico do curso de computao, cada uma com seus respectivos membros, ou seja, as disciplinas que faziam parte da matria. Desta forma, a consulta de disciplina por matrias apenas identicava a matria selecionada pelo usurio e mandava listar os membros daquela matria, sem necessidade de utilizar nenhum mecanismo de inferncia. Na modelagem do quarto ciclo da OntoComp, essa subclasse foi excluda e foi criada uma nova classe "Materia"tendo como subclasses as mesmas matrias que existiam antes na classe "Disciplina_de_Materia", porm nesse novo modelo as matrias no possuem membros, mas sim uma relao "formada_por"com a classe "Disciplina"e uma relao inversa "pertence"que tem como domnio a classe "Disciplina"e imagem a classe "Matria". Foi atravs do relacionamento "pertence"que as disciplinas foram associadas as matrias na OntoComp. Diante disto foi necessrio utilizar a API de inferncia do Jena para identicar quais disciplinas pertencem a uma determinada matria. As consultas referentes a pr-requisitos de disciplinas no SOA precisaram de um pequeno ajuste apenas porque no quarto ciclo da OntoComp os relacionamentos foram renomeados a m de corrigir um erro. No terceiro ciclo da OntoComp os relacionamentos foram denidos com a palavra pre-requesito, termo que no existe e por isso foi corrigido para pre-requisito, o que impactou nas consultas do SOA. Esta foi uma correo simples e rpida, a partir do

40

momento que se identicou que a causa do erro na consulta era causada por mudana no nome do relacionamento.

4.5

DESENVOLVIMENTO DE NOVAS CONSULTAS NO SOA

Nesta seo so detalhadas as novas consultas adicionadas ao SOA neste trabalho, consultas relativas s classes "Disciplina", "Docente"e "Grupo Academico". Estas consultas foram baseadas nas questes de competncia elaboradas no quarto ciclo da OntoComp por Rafael Saraiva (SARAIVA, 2010), e que so listadas abaixo: Q1. Quais professores pertencem a um dado grupo de pesquisa/extenso? Q2. Quais so os professores do departamento? Q3. Quais professores coordenam um dado grupo de pesquisa/extenso? Q4. Quais professores esto ativos no departamento? Q5. Qual a classe e regime de trabalho de um dado professor na universidade? Q7. Qual o site de um dado professor? Q9. Qual o grau de anidade de um professor a uma dada disciplina? Todas as questes de competncia acima so respondidas por consultas implementadas no SOA neste trabalho. As consultas relativas a e-mail e endereo do currculo lattes de um determinado docente foram descartadas nesse trabalho pois essas informaes esto presentes na maioria dos sites dos docentes. Procurou-se dar prioridade a consultas que propiciassem o uso de inferncia lgica sobre a ontologia e permitisse ao autor avaliar os recursos oferecidos pelo framework Jena para implementao de consultas em ontologias.

4.5.1

NOVAS CONSULTAS ADICIONADAS AO SOA

Consulta de disciplinas que tem anidade com docente: Essa consulta foi implementada sem o uso de sistema de raciocnio, bastando apenas a propriedade da relao e o nome do docente. importante ressaltar que essa consulta permite ao usurio vericar quais disciplinas possuem anidade fraca, moderada ou forte com o docente selecionado, mas a OntoComp no

41

possui informao de anidade entre Docente e Disciplina para os nveis de gradao fraca e moderada, visto que na modelagem da ontologia foi considerado o guia de matrcula do segundo semestre de 2009, onde considerou-se que se um Docente estava alocado a uma disciplina ento ele tem forte anidade com essa disciplina. No foi estabelecido nenhum critrio para determinar quando um docente tem anidade fraca ou moderada com uma disciplina, o que impactou na ontologia, deixando-a incompleta e afetando os resultados das consultas do SOA que no tero dados para exibir nesses casos. Consulta docentes do departamento de Cincia da Computao: Esta consulta foi a mais simples implementada neste trabalho pois no necessitou de nenhuma inferncia na ontologia. A implementao consistiu basicamente em listar os indivduos da classe "Docente". Para isto o Jena oferece mtodos para identicar uma classe da ontologia utilizando o mtodo getOntClass(). A partir da identicao da classe foi utilizado o mtodo listInstances() do pacote com.hp.hpl.jena.ontology.OntClass do Jena para identicar as instncias da classe "Docente". A classe "Docente"foi modelada na OntoComp com as seguintes informaes: Nome, titularidade (inclui a classe e a jornada de trabalho), site, currculo lattes (endereo do currculo lattes) e ativo (informa se o docente est ativo ou afastado). Dentre as informaes listadas, o autor optou por exibir o nome, a situao (ativo ou afastado), a titularidade e o site do docente, pois o usurio poder ter acesso as demais informaes atravs do site do docente. Consulta docentes por Anidade com Disciplina e docentes por Grupo Acadmico: Estas consultas so muito semelhantes e por isto que a implementao de uma pde ser reutilizada pela outra. Como nessa consulta o usurio sempre informa um docente e uma propriedade que deseja consultar, foi implementada uma nica rotina para responder as duas consultas. Esta consulta utiliza o raciocinador Transitive Reasoner do Jena para inferncia. Com o uso deste raciocinador foi notado um ganho considervel na performance das consultas. Consulta Grupos Acadmicos de um Docente: Nesta consulta foi utilizada a idia base da consulta de docentes por grupo acadmico, apenas o resultado que diferente pois neste caso o resultado esperado a relao de grupos dos quais o docente informado participa ou coordena. Foi utilizado o raciocinador Transitive Reasoner do Jena para inferncia. Na Tabela 4.2 esto listadas todas as consultas existentes no SOA atualmente, destacando quais j estavam implementadas no incio deste trabalho e quais foram desenvolvidas e/ou corrigidas neste trabalho. Ocorreram tambm os casos de consultas que existiam no SOA mas que no retornavam resultados ou apresentavam erros ao tentar consultar a OntoComp desenvolvida no seu quarto ciclo. Isso ocorreu devido s mudanas na estrutura da OntoComp, classes foram totalmente reestruturadas para atender as novas especicaes do novo projeto pedaggico

42

Tabela 4.2: Consultas disponveis no SOA - comparativo entre o terceiro e o quarto ciclo
Funcionalidade Consultas excludas no quarto ciclo da OntoComp Consulta disciplinas por Anidade Consulta disciplinas por modalidade (Laboratrio, Regular, Seminrio e Tpicos) e natureza (Obrigatria e Optativa) Consultas que foram mantidas no quarto ciclo da OntoComp Consulta disciplinas por rea de concentrao Consulta disciplinas por perl complementar Consultas que foram refeitas no quarto ciclo da OntoComp Consulta disciplinas por Matria Consultas que necessitaram de correo simples no quarto ciclo da OntoComp Consulta pr-requisitos diretos de uma determinada disciplina Consulta pr-requisitos recomendados diretos de uma determinada disciplina Consulta todos os pr-requisitos de uma determinada disciplina Consulta todos os pr-requisitos recomendados de uma determinada disciplina Consulta todas as disciplinas para as quais uma determinada disciplina pr-requisito Consulta todas as disciplinas para as quais uma determinada disciplina pr-requisito recomendado Consultas adicionadas no quarto ciclo da OntoComp Consulta disciplinas por natureza (Obrigatria e Optativa) Consulta relao de docentes do Departamento de Cincia da Computao Consulta docentes que participam de determinado Grupo Acadmico Consulta docentes que coordenam determinado Grupo Acadmico Consulta grupos acadmicos que um determinado docente participa Consulta grupos acadmicos que um determinado docente coordena Consulta disciplinas com as quais um determinado docente tem fraca anidade Consulta disciplinas com as quais um determinado docente tem moderada anidade Consulta disciplinas com as quais um determinado docente tem forte anidade Consulta docentes que tem fraca anidade com uma determinada disciplina Consulta docentes que tem moderada anidade com uma determinada disciplina Consulta docentes que tem forte anidade com uma determinada disciplina

do curso. Por isto foi necessrio refazer essas consultas de acordo com a nova modelagem da ontologia. Este o caso da consulta de disciplinas por matria e consulta disciplinas por natureza. Na Figura 4.2 pode ser vista a pgina inicial do SOA com os novos menus "Docente"e "Grupo Acadmico"alm do antigo menu "Disciplinas"que foi renomeado para "Componente Curricular". Foram realizadas alteraes no layout das telas de algumas consultas do sistema a m de melhorar a interface do sistema. O antigo menu "Inferncia"foi excludo pois tratavase na verdade da consulta de todos os pr-requisitos de uma disciplina e por isso foi criado o submenu "Todos os pr-requisitos"no menu "Componente Curricular". Alm disso, o submenu "Anidade"foi removido pois a consulta a qual fazia referncia foi excluda do sistema. O menu "Docente"possui os seguintes submenus: Docentes do Departamento: consulta para listar todos os docentes lotados no Departamento de Cincia da Computao que constam na OntoComp; Anidade com Disciplina: consulta os docentes que tm anidade com a disciplina sele-

43

cionada pelo usurio; Docentes por Grupo Acadmico: consulta os docentes que participam ou coordenam o grupo acadmico selecionado pelo usurio. O menu "Grupo Acadmico"possui apenas o submenu "Grupo Acadmico do Docente"onde o usurio pode consultar que grupos o docente selecionado participa ou coordena.

4.6

EXPERIMENTO PARA AVALIAO DOS RESULTADOS

Uma parte importante deste trabalho foram os testes realizados com os raciocinadores incorporados ao Jena a m de identicar qual deles apresenta melhores resultados nas consultas considerando como critrios performance e ecincia nas consultas. O que se vericou foi que o raciocinador OWL FB reasoner, que um raciocinador do tipo Foward-Backward, ou seja, ele realiza encadeamento para a frente e encadeamento para trs no apresentou bom resultados, sobretudo no diz respeito ao tempo de resposta das consultas onde foi necessrio utilizar inferncia, por exemplo, a consulta de todos os pr-requisitos de disciplinas que faz inferncia sobre a relao transitiva "tem pr-requisito". No entanto esse foi o nico raciocinador fornecido pelo Jena que mostrou ecincia em retornar o resultado para essa consulta. Um raciocinador que se mostrou bastante promissor foi Transitive reasoner, que apesar de no conseguir retornar todos os pr-requisitos de uma disciplina, mostrou-se eciente nas consultas de docentes por grupo acadmico, docentes que tem anidade com determinada disciplina, disciplina com anidade com determinado docente, retornando o resultado de forma instantnea enquanto o OWL FB reasoner chegou a demorar mais de 30(trinta) segundos para retornar o resultado. No que diz respeito ao raciocinador Pellet, seu potencial ainda algo a ser estudado em trabalhos futuros pois nesse trabalho foi possvel fazer apenas alguns testes simples com este raciocinador, os quais no foram muito reveladores, indicando apenas que o raciocinador tem potencial para efetuar inferncias em ontologias mas no possvel armar at que ponto o mesmo eciente.

44

Figura 4.2: Tela inicial do SOA

45

ANLISE DOS RESULTADOS

O desenvolvimento do trabalho permitiu identicar pontos onde a ontologia pode ser melhorada alm de algumas atualizaes que so as seguintes: A relao de anidade entre docente e componente curricular, que atualmente no possui informaes para muitos docentes e disciplinas, principalmente as disciplinas de natureza optativa que em sua maioria no possuem anidade com nenhum professor, devido ao fato de que na modelagem foram inseridos os relacionamentos de anidade apenas para as disciplinas oferecidas em 2009.2 apenas a relao "tem forte anidade com"est associando docentes e componentes curriculares. necessrio realizar uma pesquisa com os docentes do departamento para que eles informem com quais disciplinas do currculo do curso tem anidade, informando tambm o nvel dessa anidade (fraca, moderada ou forte). De posse dessa informao devem ser feitas as atualizaes na ontologia, inserindo as armaes (por ex.: tem_moderada_anidade_com Disciplina_Evolucao_de_Software) para cada docente de acordo com o resultado da pesquisa realizada. Na classe "Docente"foi identicado um docente com duas titularidades. Aps vericar qual a titularidade correta, a outra foi excluda alm de incluir a restrio de cardinalidade "titularidade exactly 1 string"para garantir que nenhum docente ter mais que uma titularidade; Foram identicadas mudanas do terceiro para o quarto ciclo que no estavam documentadas como mudanas de nome de classe, relao, mudana de domnio e/ou imagem de uma relao, entre outras. A anlise da OntoComp permitiu entender como a modelagem foi feita, as decises tomadas durante os vrios ciclos de vida da mesma para que fosse possvel implementar no SOA consultas que extraiam conhecimento da OntoComp. A anlise do SOA a m de identicar os ajustes necessrios para que o sistema pudesse consultar o OntoComp resultante do seu quarto ciclo foi difcil no comeo. O sistema no

46

possua nenhuma documentao sobre as conguraes de ambiente, documentao do cdigofonte de modo a otimizar a manuteno do mesmo, entre outros problemas enfrentados at que fosse possvel executar o sistema e testar as consultas com a segurana de que no faltava nada no ambiente e que as falhas apresentadas eram causadas pelas mudanas na ontologia. Com o ambiente funcionando e o sistema executando os testes mostraram que apenas as consultas de disciplinas por rea de concentrao e perl complementar estavam funcionando. As demais precisavam ser ajustadas a nova ontologia. Com isto os seguintes resultados foram obtidos: As consultas referentes a pr-requisitos de disciplinas funcionando corretamente aps a correo do nome da relao que foi alterado do terceiro para o quarto ciclo; Excluso das consultas de disciplinas por modalidade e anidade pois a ontologia no possua mais essas informaes; Reformulao da consulta de disciplinas por Matria para atender a nova modelagem da classe "Matria", consulta na qual foi necessrio implementar uso de inferncia para identicar as disciplinas que pertencem a uma determinada matria. Ao concluir a atualizao do SOA para o quarto ciclo da OntoComp, foram identicadas e implementadas novas consultas que deviam ser implementadas para responder as questes de competncia do trabalho de Rafael Saraiva (SARAIVA, 2010), as quais so listadas a seguir: Consulta de disciplinas que possuem anidade (fraca, moderada ou forte) com determinado docente; Consulta dos docentes lotados no DCC; Consulta dos docentes que possuem anidade (fraca, moderada ou forte) com determinada disciplina; Consulta dos docentes que participam ou coordenam um determinado grupo acadmico; Consulta dos grupos acadmicos que um determinado docente participa ou coordena. Consulta de disciplinas por natureza: essa consulta no foi concluda devido a problemas enfrentados com o framework Jena que no conseguiu identicar o sujeito de uma tripla para alguns casos especcos. A consulta de disciplinas que tem natureza obrigatria est funcionamente perfeitamente.

47

A verso anterior do SOA no possua nenhuma documentao enquanto que essa nova verso possui documentao dos mtodos e classes implementados, utilizando a tecnologia Javadoc1 para gerar a documentao do sistema alm de anexar ao cdigo-fonte do SOA, o cdigo-fonte e a documentao do framework Jena, o que facilitar a manuteno e a evoluo do sistema em futuros ciclos. O uso do framework Jena neste trabalho propiciou a implementao de consultas importantes no SOA, atravs do uso da API OWL e RDF do Jena e do uso dos raciocinadores (por ex.:Transitive reasoner, RDFS rule reasoner, OWL FB reasoner, entre outros ) que acompanham o framework. Neste trabalho utilizamos o raciocinador Transitive reasoner que apresentou bons resultados e o OWL FB reasoner que apresentou resultados fracos, apesar de ser um raciocinador forward/backward, ou seja, ele inicia uma inferncia no topo da rvore e vai at a raiz, o que muito til na consulta dos pr-requisitos diretos e indiretos de uma disciplina, porm este raciocinador apresentou resultados muito ruins quanto a performance das consultas. A implementao das novas consultas no SOA utilizando Jena mostrou que esse framework oferece uma gama de funcionalidades para manipulao de ontologias e acesso a suas informaes, possui bastante documentao, comunidade ativa, lista de usurios para dvidas, o que faz dele uma tima opo para o desenvolvimento de sistemas semnticos. O ponto fraco desse framework realmente so os raciocinadores, mas para contornar esse problema possvel utilizar raciocinadores externos ao Jena, como o Pellet, com o qual foram feitos alguns testes, mas nada suciente para emitir uma opinio denitiva. preciso explorar bastante o Pellet para avaliar o seu potencial, o que no foi possvel neste trabalho por questo de tempo e tambm porque o Jena atendeu as demandas com uma nica ressalva que j foi citada anteriormente. Alm da atualizao do SOA, o sistema est sendo disponibilidado na web para acesso da comunidade acadmica para que alunos, professores e pesquisadores possam avaliar o sistema e colaborar com o seu desenvolvimento atravs de crticas, sugestes e at mesmo desenvolvendo novas consultas no sistema. Futuramente o sistema ser disponibilizado no repositrio do SourceForge2 para que outras pessoas possam ter acesso e colaborar com o sistema.

1 http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html 2 http://www.sourceforge.net

48

CONCLUSO

Este trabalho se props a atualizar e aperfeioar o Sistema Semntico para Orientao Acadmica (SOA) atravs do uso das tecnologias existentes para desenvolvimento de sistemas semnticos, de forma que ao nal deste trabalho o sistema fosse capaz de utilizar a OntoComp gerada no quarto ciclo e retornar as informaes sem problemas, permitindo assim a evoluo do SOA juntamente com a OntoComp e tambm a sua manuteno. Apesar do SOA ainda no ter atingido seu objetivo maior de ser um sistema para orientao dos alunos do curso de Cincia da Computao da UFBA sobre quais disciplinas cursar para adquirerem as competncias necessrias para exerceram a ocupao escolhida, um grande passo foi dado nesse caminhada, visto que temos como resultado um sistema atualizado, com as consultas referentes as questes de competncias modeladas no quarto ciclo da OntoComp funcionando e apresentando os resultados esperados. Este trabalho possibilitou um avano no desenvolvimento do SOA no sentido de atualizar o sistema, documentar o cdigo-fonte, o que facilitar a evoluo do sistema no futuro garantindo que problemas enfrentados neste trabalho no se repitam no futuro alm de disponibilizar o sistema para a comunidade universitria utilizar, o que dar no futuro um retorno sobre a ecincia e a importncia desse sistema para a comunidade universitria e para o estudo do desenvolvimento de sistemas semnticos. Esse trabalho mostrou que as tecnologias existentes para desenvolvimento de sistemas semnticos e manipulao de ontologias, em especial o Framework JENA possuem grande potencial e podem render mais se forem melhor exploradas, com tempo para efetuar os testes necessrios, alm de ajudarem bastante no desenvolvimento, possuem documentao disponvel na web e comunidade ativa para esclarecimento de dvidas. As diculdades encontradas se resumirem a implementao do SOA, devido a falta de documentao das consultas existentes no sistema assim como da congurao do ambiente, bibliotecas utilizadas pela aplicao. A partir do momento que essas diculdades foram ultrapassadas o trabalho avanou e foi possvel alcanar a maioria dos objetivos traados.

49

6.1

TRABALHOS FUTUROS

Como este trabalho exigiu uma anlise da OntoComp para compreender a modelagem da mesma e a forma como as informaes so armazenadas na ontologia foi possvel identicar a falta de muita informao importante alm da necessidade de uma reviso no conceito "Docente"para atualizao do mesmo. Este pode ser o ponto de partida de um trabalho futuro no sentido de transformar a OntoComp numa base de conhecimento atualizada e convel que possa ser utilizada pelo SOA. Um outro trabalho interessante o uso do Pellet como raciocinador integrado ao Jena no desenvolvimento de sistemas semnticos, o que produzir novos resultados e pode revelar se o Pellet realmente tem potencial para suprir a demanda de um sistema de raciocnio que atenda as necessidades do SOA plenamente.

50

REFERNCIAS BIBLIOGRFICAS
ABBAGNANO, N. Dicionrio de losoa/Nicola Abbagnano. S.1.: Martins Fontes, 2007. ANDRADE, G. Desenvolvimento de Um Sistema Semntico para Orientao Acadmica. Salvador: [s.n.], 2008. ASTAH. JUDE UML Modeling Tool. 2011. Disponvel em: <http://jude-users.com/en/>. Acesso em: 30 novembro 2011. BERNERS-LEE JAMES HENDLER, O. L. T. The semantic web: A new form of web content that is meaningful to computers will unleash a revolution of new possibilities. Scientif American, Maio 2001. BORST, W. N. Construction of Engineering Ontologies for knowledge sharing and reuse. Tese (Doutorado) University of Twente, Twente, Setembro 1997. CONSORTIUM, W. W. W. RDF - Resource Description Framework. 2011. Disponvel em: <http://www.w3.org/RDF/>. Acesso em: 05 dezembro 2011. DIA. Dia Diagram Editor. 2011. Disponvel em: <http://dia-installer.de/>. Acesso em: 30 novembro 2011. FOUNDATION, T. A. S. Apache Tomcat. 2011. Disponvel em: <http://tomcat.apache.org>. Acesso em: 30 novembro 2011. FRAMEWORK, J. A. S. W. An Introduction to RDF and the Jena RDF API. 2011. Disponvel em: <http://jena.sourceforge.net/tutorial/RDF_API/index.html/>. Acesso em: 01 dezembro 2011. FRAMEWORK, J. S. W. Jena - A Semantic Web Framework for Java. 2011. Disponvel em: <http://jena.sourceforge.net/>. Acesso em: 17 novembro 2011. GRUBER, T. R. A translation approach to portable ontology specications. Knowlegde Acquisition, v. 5, n. 2, p. 199-220, 1993. GRUBER, T. R. What is an ontology? 1996. Disponvel em: <http://wwwksl.stanford.edu/ksl/what-is-an-ontology.html>. Acesso em: 04 setembro 2011. GMEZ-PREZ, A. Ontological engineering: A state of the art. British Computer Society, v. 2, n. 3, 1999. MAIOR, E. P. de L. Desenvolvimento de Uma Ontologia Do Currculo do Curso de Cincia da Computao da UFBA. Salvador: [s.n.], 2007.

51

MTE. Classicao Brasileira de Ocupaes. 2002. Disponvel em: <http://www.mtecbo.gov.br/cbosite/pages/saibaMais.jsf>. Acesso em: 05 novembro 2011. OLIVEIRA, V. F. R. Aperfeioamento do Sistema Semntico para Orientao Acadmica atravs do Jena e de raciocinadores. Salvador: [s.n.], 2010. ORACLE. JavaServer Pages Overview. 2011. Disponvel em: <http://www.oracle.com/technetwork/java/overview-138580.html>. Acesso em: 05 dezembro 2011. ORACLE. JavaServer Pages Technology. 2011. Disponvel em: <http://www.oracle.com/technetwork/java/javaee/jsp/index.html>. Acesso em: 05 dezembro 2011. PARSIA, C. . Pellet: OWL Reasoner for Java. 2011. Disponvel em: <http://clarkparsia.com/pellet/>. Acesso em: 17 novembro 2011. PEDROZO, A. Modelagem Ontolgica atravs da OWL: Anlise e Aprimoramento do Sistema Semntico para Orientao Acadmica (SOA). Salvador: [s.n.], 2009. PICKLER, M. E. V. Web semntica: ontologias como ferramentas de representao do conhecimento. Perspectivas em Cincia da Informao, v. 12, n. 1, p. 65-83, 2007. PROTGE. Protge. 2011. Disponvel em: <http://protege.stanford.edu/>. Acesso em: 10 novembro 2011. SARAIVA, R. de C. S. Ontologias e Sistemas Semnticos: Desenvolvimento do quarto ciclo de vida da OntoComp. Salvador: [s.n.], 2010. SMITH, M. K.; WELTY, C.; MCGUINNESS, D. L. OWL Web Ontology Language Guide. 2004. Disponvel em: <http://www.w3.org/TR/2004/REC-owl-guide-20040210/>. Acesso em: 04 dezembro 2011. SOUSA, A. Web Semntica e Ontologias. 2008. Disponvel em: <http://ontologias.wordpress.com/2008/04/30/web-semantica-ontologias-4/>. Acesso em: 01 dezembro 2011. SWARTOUT, B. Toward distributed use of large-scale ontologies. Ontological Engineering, AAAI-97 Spring Symposium Series. [S.1.: s.n.], p. 138-148, 1997.

52

APNDICE A -- ESPECIFICAO DOS CASOS DE USO DO SOA

Abaixo segue a especicao dos casos de uso do Sistema Semntico para Orientao Acadmica(SOA).

Vous aimerez peut-être aussi