ministÉrio da defesa exÉrcito brasileiro …recuperação de dados relevantes e precisos em um...
TRANSCRIPT
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA
CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO
DANIEL IGOR SIQUEIRA BARBOSA MONTEIRO
TÚLIO FERNANDES DE MELO LIMA
AUTÔMETA++: UMA FERRAMENTA PARA SUPORTE À ANOTAÇÃO DE TEXTOS BASEADA EM MÚLTIPLAS
ONTOLOGIAS
Rio de Janeiro 2013
INSTITUTO MILITAR DE ENGENHARIA
Ten DANIEL IGOR SIQUEIRA BARBOSA MONTEIRO
Ten TÚLIO FERNANDES DE MELO LIMA
AUTÔMETA++: UMA FERRAMENTA PARA O SUPORTE À ANOTAÇÃO SEMÂNTICA BASEADA EM MÚLTIPLAS ONTOLOGIAS
Monografia de Projeto de Final de Curso apresentado ao Curso
de Graduação em Engenharia de Computação do Instituto Militar
de Engenharia.
Orientadora: Profª. Maria Claudia Reis Cavalcanti – D. Sc.
Co-orientadora: Kele Teixeira Belloze – M. SC.
Rio de Janeiro
2013
INSTITUTO MILITAR DE ENGENHARIA
Praça General Tibúrcio, 80 – Praia Vermelha
Rio de Janeiro – RJ CEP: 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-
lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer
forma de arquivamento.
São permitidas a menção, reprodução parcial ou integral e a transmissão entre
bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que
esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações,
desde que sem finalidade comercial e que seja feita a referência bibliográfica
completa.
Os conceitos expressos neste trabalho são de responsabilidade dos autores e do
orientador.
621.39
M775a
Monteiro, Daniel Igor Siqueira Barbosa. AutôMeta++: uma ferramenta para o suporte à anotação
semântica baseada em múltiplas ontologias / Daniel Igor Siqueira Barbosa Monteiro, Túlio Fernandes de Melo Lima; orientado por Maria Claudia Reis Cavalcanti. -Rio de Janeiro: Instituto Militar de Engenharia, 2013.
56p. : il. Projeto de Final de Curso. - Instituto Militar de
Engenharia. -Rio de Janeiro, 2013. 1. Engenharia de Computação 2. Anotação Semântica 3.
Ontologia 4. Modularização I. Lima, Túlio Fernandes de Melo. II. Cavalcanti, Maria Claudia Reis. III. Título. IV. Instituto Militar de Engenharia.
CDD 621.39
4
INSTITUTO MILITAR DE ENGENHARIA
Ten DANIEL IGOR SIQUEIRA BARBOSA MONTEIRO
Ten TÚLIO FERNANDES DE MELO LIMA
AUTÔMETA++: UMA FERRAMENTA PARA O SUPORTE À ANOTAÇÃO SEMÂNTICA BASEADA EM MÚLTIPLAS ONTOLOGIAS
Dissertação de Projeto de Final de Curso apresentado ao Curso de Graduação
em Engenharia de Computação do Instituto Militar de Engenharia.
Orientadora: Profª. Maria Claudia Reis Cavalcanti – D. Sc.
Co-orientadora: Kele Teixeira Belloze – M. SC.
Aprovada em 20 de junho pela seguinte Banca Examinadora:
___________________________________________________________________
Profª. Claudia Marcela Justel – D. Sc., do IME
___________________________________________________________________
Prof. Ricardo Choren Noya – D. Sc., do IME
___________________________________________________________________
Profª. Maria Claudia Reis Cavalcanti – D. Sc., do IME
___________________________________________________________________
Kele Teixeira Belloze – M. Sc., FioCruz
Rio de Janeiro
2013
5
SUMÁRIO
LISTA DE FIGURAS ................................................................................................... 7
LISTA DE TABELAS ................................................................................................... 9
RESUMO ................................................................................................................... 10
ABSTRACT ............................................................................................................... 11
1 INTRODUÇÃO ................................................................................................ 12 1.1 CONTEXTUALIZAÇÃO ........................................................................................................ 12
1.2 OBJETIVO .............................................................................................................................. 14
1.3 MOTIVAÇÃO .......................................................................................................................... 14
1.4 METODOLOGIA .................................................................................................................... 16
1.5 CONTRIBUIÇÃO DO TRABALHO ...................................................................................... 17
2 FERRAMENTAS COMPUTACIONAIS .......................................................... 18 2.1 AUTÔMETA ............................................................................................................................ 20
2.2 SAM ......................................................................................................................................... 21
3 AUTÔMETA++ ................................................................................................ 22 3.1 ARQUITETURA ..................................................................................................................... 22
3.1.1 RECURSOS ........................................................................................................................... 23
3.1.2 GERENCIADOR DE RECURSOS ...................................................................................... 24
3.1.3 NÚCLEO DE ANOTAÇÃO ................................................................................................... 24
3.2 PROCESSO ........................................................................................................................... 25
3.3 DESENVOLVIMENTO .......................................................................................................... 27
3.3.1 ARTICULAÇÃO DE ONTOLOGIAS .................................................................................... 27
3.3.2 PROJETO DA INTERFACE ................................................................................................. 31
6
3.3.3 IMPLEMENTAÇÃO DA FERRAMENTA AUTÔMETA++ ................................................. 36
4 ESTUDO DE CASO ........................................................................................ 42
5 CONCLUSÃO ................................................................................................. 46
6 TRABALHOS FUTUROS ............................................................................... 47
7 REFERÊNCIAS BIBLIOGRÁFICAS .............................................................. 48
8 APÊNDICE ...................................................................................................... 50
7
LISTA DE FIGURAS
FIG 1.1 – Representação de Relacionamentos entre Conceitos de um Domínio ..... 12 FIG 1.2 – Crescimento do Número de Artigos Indexados pela Expressão "single molecule” (MOERNER, 2013) .................................................................................... 15 FIG 2.1 – Estruturação de Dados a Partir de um Repositório Semântico (OntoText, 2013) .......................................................................................................................... 18 FIG 2.2 – Arquitetura da Ferramenta SAM (GOMES, 2012) ..................................... 21 FIG 3.1 – Arquitetura para um Sistema com Suporte a Anotação Múltipla Baseada em Modularização de Ontologias .............................................................................. 22 FIG 3.2 – Processo de Anotação para um Sistema com Suporte a Anotação Múltipla Baseada em Modularização de Ontologias ............................................................... 25 FIG 3.3 – Esquema de Articulação de Ontologias ..................................................... 28 FIG 3.4 – Ontologia animalA.owl ............................................................................... 29 FIG 3.5 – Ontologia animalB.owl ............................................................................... 29 FIG 3.6 – Resultado do Processamento das Ontologias pelo OWLMerger .............. 30 FIG 3.7 – Aba de Configuração da AutôMeta++ ........................................................ 32 FIG 3.8 – Esquema da Tabela “corpus” do Banco de Dados .................................... 32 FIG 3.9 – Aba de Anotação-Base da AutôMeta++ .................................................... 33 FIG 3.10 – Aba de Módulos da AutôMeta++ ............................................................. 34 FIG 3.11 – Aba de Resultados da AutôMeta++ ......................................................... 35 FIG 3.12 – Esquema do Projeto da AutôMeta++ ....................................................... 36 FIG 3.13 – Exemplo de Texto Anotado em RDFa com a AutôMeta (FONTES, 2011) ................................................................................................................................... 37 FIG 3.14 – Esquema do Banco de Dados da SAM ................................................... 38 FIG 3.15 – Esquema do Banco de Dados da AutôMeta++ ........................................ 38
8
FIG 3.16 – Esquema de Conversão das Anotações .................................................. 40 FIG 3.17 – Consulta SQL para a Seleção dos 50 Termos Mais Frequentes da Tabela “corpus” ...................................................................................................................... 40
FIG 4.1 – Percentual dos Termos Relevantes Anotados por Ontologia .................... 45
9
LISTA DE TABELAS
TAB 2.1 – Características de ferramentas de anotação semântica: Tipo da anotação (A = automática, H = híbrida, M = manual), Registro da Anotação (I = intrusiva, NI = não-intrusiva), Plataforma (D = Desktop, W = Web) (BELLOZE et al, 2012) ............ 19
TAB 4.1 – Tabela com as triplas RDF com a ontologia resultante de termos ........... 43 TAB 4.2 – Tabela com as triplas RDFa com a ontologia resultante de termos estendidos .................................................................................................................. 43 TAB 4.3 – Comparativo entre as Anotações das Ontologias ..................................... 44
TAB 8.1 – Triplas RDF com Ontologia Resultante de Termos .................................. 50 TAB 8.2 – Tabela com as Triplas RDF com a Ontologia Resultante de Termos Estendidos ................................................................................................................. 52
10
RESUMO
A anotação semântica com o uso de ontologias é uma das abordagens propostas para a solução de um dos grandes problemas da atualidade: a recuperação de dados relevantes e precisos em um mundo que sofre com o excesso de informação. Já se encontram disponíveis diversas ferramentas que permitem ao usuário anotar semanticamente seus conjuntos de documentos utilizando ontologias, no entanto, elas limitam-se ao uso de somente uma ontologia por anotação.
O crescimento explosivo de informação afeta de maneira significativa as fontes de informação científica e, com isso, outro problema se apresenta aos pesquisadores: artigos de cunho técnico-científico comumente abrangem diversos domínios de conhecimento, de modo que o uso de uma única ontologia para a realização das anotações é insuficiente para cobrir todos os trechos de importância ao contexto investigado. O problema também não parece ser resolvido com sucessivas anotações com diversas ontologias distintas, uma vez que o resultado é um conjunto de visões diferentes sobre o conteúdo que não são necessariamente interdependentes.
Este trabalho propõe uma arquitetura e desenvolve um sistema que oferece suporte a anotação semântica baseada em múltiplas ontologias a partir de uma abordagem para a articulação de seus módulos e da adaptação de ferramentas já existentes. Utilizando suas interfaces e funcionalidades, cria-se um processo de anotação similar ao já estabelecido, mas que aceita como parâmetro um repositório de ontologias. Essas ontologias são articuladas de forma a possibilitar uma anotação completa sobre o conteúdo dos documentos que serão manipulados. Palavras-Chave: Anotação Semântica, Ontologia, Modularização.
11
ABSTRACT
Semantic annotation with ontologies is one of the approaches proposed to one of the great problems of today: data retrieval in a world suffering with excess of information. There are several available tools which allow its users to annotate their collection of documents using ontologies. However, these applications are limited to only one ontology per annotation.
Information explosive growth deeply affects the sources of scientific information and another problem then arises: technical-scientific articles often cover a broad range of knowledge domains and because of this, one single ontology is insufficient to cover all context-related fragments of the document. The problem doesn't seem to get solved when several annotations are made with different ontologies, since the result is only a collection of partial visions upon the content and are not necessarily interconnected.
This work proposes an architecture and develops a system which offers semantic annotation support with multiple ontologies based on an approach to articulate their modules and adapting already available tools. Using their interfaces and features a new process of annotation is created, similar to the standard approach but taking as parameters an ontology repository. These ontologies are articulated to make possible a complete annotation over the content of the documents being manipulated.
Keywords: Semantic Annotation, Ontology, Modularization.
12
1 INTRODUÇÃO
1.1 CONTEXTUALIZAÇÃO
A anotação semântica é uma abordagem utilizada para estruturação de dados a
partir de um contexto associado a uma base de conhecimento. Nela, há a
construção de representações em linguagem formal de noções e expressões da
linguagem natural que permitem o processamento de textos por máquinas ou
agentes automatizados. Aplicada ao conteúdo de documentos, é possível
estabelecer relações entre termos de modo a permitir a obtenção de resultados não-
explícitos em buscas sob documentos.
A estruturação do texto ocorre por meio da associação de termos relevantes
dentro de um domínio de conhecimento a classes correspondentes de uma
ontologia. Uma ontologia é a representação formal do conhecimento pertencente a
uma área e dos relacionamentos entre os seus diversos conceitos relacionados. Na
Figura 1.1 abaixo, está ilustrado um exemplo da representação dos relacionamentos
de alguns conceitos relacionados a animais:
FIG 1.1 – Representação de Relacionamentos entre Conceitos de um Domínio
13
Os relacionamentos entre as classes são formados de modo a possibilitar a
inferência sobre os termos do texto associados a elas (do exemplo acima, se Leão é
um Carnívoro, então Leão é um Animal). O suporte à inferência permite a extração
de informações muito mais ricas e detalhadas a respeito do documento.
Na área biomédica existem repositórios que englobam um grande número de
ontologias, como OBO (SMITH et al, 2007) e NCBO BioPortal (NOY et al, 2009).
Muitas destas ontologias possuem milhares de conceitos embutidos e são extensas
demais para serem manipuladas manualmente.
Para o processo de anotação semântica em textos biomédicos é necessária a
utilização de várias ontologias, pois existe uma gama enorme de textos multi-
domínio, que não podem ser cobertos por ontologias únicas, que comumente
contemplam apenas um domínio. O objetivo deste trabalho, portanto, é utilizar
módulos (fragmentos) das ontologias requeridas de modo a trabalhar com arquivos
menores e mais fáceis de serem usados.
A ferramenta AutôMeta neste caso precisa ser capaz de integrar aplicativos de
modularização de ontologias e trabalhar com os módulos para fazer a anotação.
Devido à grande gama de ontologias, a modularização extrai apenas a parte de
interesse das ontologias, agilizando assim o processo de anotação.
A partir dessa premissa, a modularização denota a possibilidade de utilizar um
grande repositório de conhecimento como um conjunto de módulos. Materializa uma
técnica conhecida com dividir para conquistar, a qual é amplamente usada em várias
áreas da computação (PARENT & SPACCAPIETRA, 2009). Apesar das ontologias
biomédicas serem desenvolvidas para cobrir um domínio específico, dificilmente um
usuário necessitará de sua totalidade.
Neste sentido, a modularização de ontologias é uma forma de obter partes
lógicas e menores das ontologias, de acordo com o interesse dos usuários, e que
podem ser utilizadas para resolver o problema de escalabilidade.
A partir da obtenção dos módulos das ontologias, cabe pensar na integração
destes módulos para trabalhar com anotação semântica baseada em múltiplas
ontologias. Dessa forma, é importante estudar as formas de integração para que o
novo arquivo com os múltiplos módulos continue coerente e também não tenha
14
problemas de escalabilidade.
1.2 OBJETIVO
Um problema com o uso de ontologias para a manipulação de documentos foi
que o crescimento do volume de informação traduziu-se em ontologias cada vez
maiores. É muito comum que ontologias de domínio científico, como o biomédico,
tenham centenas de milhares de classes. No entanto, as ferramentas de anotação
semântica, por questões não só de desempenho, mas também de implementação,
possuem restrições quanto ao tamanho das ontologias que são capazes de utilizar.
A ideia da modularização de ontologias é um conceito proposto inicialmente para
resolver esse problema. De ontologias maiores, seriam extraídas “ontologias
menores” (módulos) que corresponderiam somente às partes da ontologia que
seriam relevantes ao processo de anotação.
Como foi proposto por outros trabalhos (GOMES, 2012), a modularização de
ontologias pode servir como uma abordagem para o suporte à anotação baseada
em múltiplas ontologias.
O objetivo deste trabalho é integrar uma aplicação para anotação semântica
com o uso de ontologias a uma ferramenta que implementa uma técnica de
modularização de modo a obter um sistema com suporte a anotação múltipla.
1.3 MOTIVAÇÃO
O grande volume de informação científica vem apresentando-se como um
desafio aos cientistas e pesquisadores devido à dificuldade em explorar o
conhecimento disponível com as atuais ferramentas de busca.
O crescimento explosivo de informações pode ser verificado mesmo em
investigações restritas a sub-áreas como o da Biomedicina. Com várias iniciativas da
15
comunidade científica internacional, a quantidade de informações relacionadas à
Biologia e à Biomedicina aumenta rapidamente. Coleções de artigos científicos,
como a PubMed (PubMed, 2013), contêm milhões de documentos, um número que
torna impraticável uma coleta manual de informações.
A Figura 1.2 apresenta um gráfico que mostra estatisticamente o crescimento do
número de artigos registrados no PubMed indexados para um certo padrão de
busca.
FIG 1.2 – Crescimento do Número de Artigos Indexados pela Expressão "single molecule”
(MOERNER, 2013)
Uma solução para esse problema deve não só envolver uma forma automática
de seleção dos arquivos de interesse, como também prover uma ferramenta capaz
de explorar o conhecimento contido em enormes bases de dados por meio do
reconhecimento de informações pertencentes a um mesmo domínio.
A anotação automática baseada em ontologias é uma das formas propostas
para o problema de aperfeiçoar os processos de busca. No entanto, é comum os
artigos científicos apresentarem em seu conteúdo informações pertencentes a
diversas áreas como, por exemplo, no contexto biomédico, biologia molecular,
farmacologia, bioquímica e inúmeras referências a compostos químicos e nomes de
organismos.
Ontologias são estruturas que carregam em si informações contidas em um
16
único domínio de conhecimento. Isso implica que, para que a anotação semântica
automática seja empregada em textos que abrangem diversos campos, como é o
caso de artigos biomédicos, é necessário que esse processo possa de algum modo
utilizar múltiplas ontologias para que essas diversas áreas de conhecimento sejam
cobertas.
As ferramentas de anotação semântica automática disponíveis utilizam
processos que envolvem a utilização de apenas uma ontologia por vez em cada
anotação. Para a anotação de um texto biomédico, depois de identificados os
domínios contemplados em seu conteúdo, seriam selecionadas as ontologias
correspondentes a cada domínio e seriam feitas as anotações com cada ontologia
separadamente.
A motivação para a concepção de um processo de anotação semântica com
múltiplas ontologias surge daí: várias anotações distintas criam somente um
conjunto de visões diferentes sobre o mesmo texto ao invés de criar um panorama
completo e aumentar a compreensão que temos dele. A proposta de uma anotação
com múltiplas ontologias tem como objetivo uma visão única, completa e detalhada
do texto baseada no conteúdo de diversas fontes integradas.
1.4 METODOLOGIA
Estudaram-se os conceitos e definições sobre modularização de ontologias e
especificamente a ferramenta SAM. Tomando como base algumas ontologias
biomédicas obtidas através do NCBO BioPortal e através da ferramenta SAM, foram
gerados módulos.
Depois, foram levantados e estudados trabalhos correlatos sobre formas de se
fazer integração de ontologias. Foi verificado também qual abordagem é mais
adequada para integrar os módulos e implementá-la fazendo as alterações
necessárias.
A ferramenta SAM foi anexada à ferramenta AutôMeta, sendo portanto adaptada
no sentido de implementar a proposta de integração dos módulos. Além disso, um
estudo de caso foi realizado junto ao domínio biomédico, mostrando a viabilidade da
17
anotação múltipla adotando essa nova estratégia.
Para integrar as ferramentas foi feito também um estudo dos códigos-fonte de
cada sistema. O programa integrado foi adaptado para fazer a inserção dos
resultados das anotações em bancos de dados. Ao final, testes de anotação com
múltiplas ontologias geradas a partir da modularização foram realizados e
analisados.
1.5 CONTRIBUIÇÃO DO TRABALHO
Ao fim deste trabalho, poderá ser obtido uma nova versão da ferramenta
AutôMeta (AutôMeta++) com as atualizações implementadas. A principal
contribuição é superar uma deficiência hoje encontrada nas ferramentas de
anotação: anotar com mais de uma ontologia. No entanto, deve ficar claro que a
estratégia abordada para anotar com mais de uma ontologia e a de fazer uma nova
ontologia com varias outras (ou com uma parte extraída delas – o que será
denominado por módulos). Dessa forma a AutôMeta, que faz anotações com apenas
uma ontologia, poderá anotar textos semanticamente com uma única ontologia, mas
que representa mais de uma ontologia e assim suprir essa demanda. Com isso, a
partir da integração com a aplicação de modularização de ontologias, é possível
desempenhar anotações mais rápidas a partir dos módulos gerados. Por fim, a
ferramenta esta disponível para a comunidade acadêmica.
18
2 FERRAMENTAS COMPUTACIONAIS
Como mencionado na seção 1.1, a anotação semântica de um documento é o
processo de descrição do seu conteúdo por meio da associação entre os elementos
da ontologia de domínio e as palavras ou trechos relevantes do texto. A utilização de
metadados não só facilita a recuperação dos dados, aumentando o desempenho da
busca de informação precisa e relevante, como também enriquece o documento
com um contexto ligado ao conhecimento estruturado de certo domínio.
FIG 2.1 – Estruturação de Dados a partir de um Repositório Semântico (OntoText, 2013)
Ferramentas de anotação semântica são aplicações capazes de realizar a
anotação semântica de todo tipo de conteúdo não-estruturado. O processamento
pode ser feito de maneira automática com o uso de ontologias ou sendo fornecida
uma interface adequada para uma anotação manual de fragmentos relevantes. É
19
importante destacar que a anotação manual tem o seu foco nas representações das
anotações e nas interfaces que vão ser utilizadas pelos usuários para escrever suas
anotações. As ferramentas de anotação automática enfatizam a criação de
anotações observando-se ontologias de domínios específicos, conforme pode ser
observado no exemplo da Figura 2.1.
A Tabela 2.1 contém as principais ferramentas disponíveis indicando o tipo de
anotação que executam, como representam essa anotação, dois dos atributos mais
relevantes para a escolha da ferramenta a ser utilizada numa anotação automática e
em formato padronizado.
TAB 2.1 – Características de Ferramentas de Anotação Semântica: Tipo da Anotação (A =
automática, H = híbrida, M = manual), Registro da Anotação (I = intrusiva, NI = não-intrusiva),
Plataforma (D = Desktop, W = Web) (BELLOZE et al, 2012)
20
Uma característica comum a todas as ferramentas automáticas e semi-
automáticas é que as anotações, quando são feitas, aceitam como parâmetros
apenas uma ontologia por vez, seja ela selecionada pelo usuário em seu repositório
próprio, seja ela referenciada através de uma conexão com um servidor de
ontologias (como o servidor Protégé), ou até mesmo quando a própria ferramenta
contém em sua plataforma a ontologia que ela utiliza para todas as anotações que
faz, ou seja, uma ontologia própria.
Para os objetivos propostos neste trabalho, a AutôMeta foi escolhida como
ferramenta a ser integrada à SAM pelos seguintes motivos:
• Usabilidade e interface simples;
• Representação das anotações no formato padrão XML/RDFa (RDFa, 2013);
• Código aberto;
• Suporte à anotação automática com o uso de ontologia arbitrária.
O domínio escolhido para os testes do sistema integrado foi o biomédico, que
apresenta um grande acervo de ontologias e de artigos científicos disponíveis para a
realização de anotações, além da demanda por uma ferramenta que seja habilitada
a anotar com uma única ontologia, mas que esta e formada por varias outras (ou
vários fragmentos, denominados módulos).
2.1 AUTÔMETA
A ferramenta AutôMeta é uma ferramenta de anotação semântica, ou seja,
utiliza apenas uma ontologia para anotar um corpus de arquivos TXT. Essa
ferramenta apresenta grande usabilidade, pois apresenta interface simples,
representa as anotações em formato padronizado (XML/RDFa), é open source e
suporta anotação automática, o que viabiliza o processo de anotação com um
corpus.
A ferramenta AutôMeta também tem suporte para o uso através da linha de
comando, que permite a extensão da memória virtual e assim consegue carregar
ontologias que através da interface gráfica seriam inviáveis devido ao seu tamanho.
21
2.2 SAM
A ferramenta SAM extrai das varias ontologias módulos que serão usados para
criar uma nova ontologia, e que será usada na anotação dos textos. Essa ferramenta
trata-se das mesmas usabilidades da AutôMeta, e por isso será usada no
desenvolvimento deste trabalho.
De acordo com a arquitetura da ferramenta SAM apresentada na Figura 2.2, a
estrutura de funcionamento envolve o uso de ontologias e um gerenciador de
documentos, que são os responsáveis por suprir a identificação dos termos de
entorno, no gerenciador de anotação e o extrator de módulos, que irá gerar os
módulos a partir da semente e que serão usados na anotação dos textos.
FIG 2.2 – Arquitetura da ferramenta SAM (GOMES, 2012)
22
3 AUTÔMETA++
Como já mencionado, a abordagem seguida para o desenvolvimento do sistema
que ofereça suporte a anotação semântica baseada em múltiplas ontologias,
batizado de AutôMeta++, envolve a integração de duas ferramentas com as
funcionalidades necessárias ao processo novo processo proposto: uma de anotação
semântica, a AutôMeta, e outra de extração de módulos de ontologias, a SAM.
3.1 ARQUITETURA
A arquitetura, exibida na Figura 3.1, encontra-se dividida em três partes
principais: Recursos, Gerenciador de Recursos e Núcleo de Anotação.
FIG 3.1 – Arquitetura para um Sistema com Suporte a Anotação Múltipla Baseada em Modularização
de Ontologias
23
O projeto do novo sistema combina os módulos da arquitetura da SAM, exibida
na Figura 2.2, que fornece os componentes de gerenciamento de recursos e de
anotação e o próprio extrator de módulos, com o processador de anotação fornecido
pela AutôMeta e responsável não só pela anotação propriamente dita mas também
executando as anotações iniciais.
O esforço de desenvolvimento do novo sistema consiste na criação do
componente de articulação dos módulos das ontologias, o Articulador, e da
comunicação entre o processador das anotações e do seu gerenciador. Esses dois
módulos pertencem originalmente a ferramentas distintas e foi necessária a
adaptação do banco de dados utilizado pela SAM para que o gerenciador
interpretasse as informações fornecidas pelo processador de anotações.
Nas próximas sub-seções são descritos os módulos da arquitetura proposta para
a AutôMeta++.
3.1.1 RECURSOS
Os Recursos consistem nos Repositórios de Ontologias e Documentos (corpus),
no Banco de Dados e no Corpus Anotado.
O Banco de Dados é um repositório utilizado na extração de módulos que
armazena as anotações iniciais (anotação-base) e os resultados dos cálculos
referentes à freqüência dos termos nos textos do corpus. O cálculo dessas
freqüências é uma operação denominada “montagem de corpus”.
Diferentemente do esquema utilizado pela SAM, em que anotação-base é feita
manualmente pelo usuário, a base de anotação que já é fornecida AutôMeta é
aproveitada para executar as anotações iniciais automaticamente. Já os cálculos de
frequência são realizados exatamente da mesma maneira adotada pela SAM.
O corpus anotado é o repositório escolhido para armazenar os textos anotados
que são salvos ao fim do processo.
24
3.1.2 GERENCIADOR DE RECURSOS
O módulo Gerenciador de Recursos engloba os módulos de gerenciamento de
documentos e ontologias da SAM e mantém as referências aos repositórios e realiza
a montagem do corpus.
Assim como em seu sistema original, ele age como mediador entre os dados
que são fornecidos pelo usuário (repositórios) e o Núcleo de Anotação, que é o
centro de processamento das operações principais da AutôMeta++.
3.1.3 NÚCLEO DE ANOTAÇÃO
As anotações iniciais do Banco de Dados são usadas pelo módulo Gerenciador
de Anotação para a identificação dos termos de entorno das palavras anotadas. Os
termos de entorno são filtrados levando-se em conta aqueles que são mais
relevantes no contexto do corpus. Essa filtragem é feita a partir dos cálculos de
freqüência, também contidos no Banco de Dados.
A partir das anotações e seus termos relevantes o Gerenciador de Anotação cria
a semente, uma estrutura formada pelo sujeito e objeto das anotações e os termos
relevantes aos quais elas podem se referir.
A semente alimenta o Extrator de Módulos, que gera os módulos das ontologias
do repositório e os repassa ao Articulador.
O Articulador recebe os módulos e por meio de uma técnica de composição de
ontologias, cria uma nova estrutura única que engloba o conteúdo de todos os
módulos.
A nova estrutura criada é passada para o processador de anotação, que a utiliza
para realizar a anotação dos textos do corpus.
Esta última etapa representa a ideia-chave da anotação semântica baseada em
múltiplas ontologias. Com o uso do Articulador de módulos pôde-se utilizar a base
da AutôMeta, que é capaz de utilizar apenas uma única ontologia por vez, para
realizar a anotação semântica com uma estrutura que é interpretada por ela como
25
uma única “ontologia”, mas que na verdade contêm informações de várias
ontologias.
3.2 PROCESSO
A Figura 3.2 apresenta a proposta do processo de anotação para a
implementação desse sistema e a sua descrição.
FIG 3.2 – Processo de Anotação para um Sistema com Suporte a Anotação Múltipla Baseada em
Modularização de Ontologias
26
O processo consiste da sequência de etapas a serem executadas desde a
definição dos parâmetros da anotação até a obtenção do corpus anotado, passando
pela anotação-base e pela extração e articulação dos módulos das ontologias.
Desta forma, o processo encontra-se dividido em oito etapas básicas, descritas
de maneira geral a seguir:
1. Definição dos Parâmetros de Anotação e Modularização:
Nessa etapa inicial o usuário passa ao sistema os repositórios de ontologias e
de documentos (corpus).
2. Montagem do Corpus:
Definido o corpus a ser utilizado, os documentos são processados pelo sistema
para a realização dos cálculos referentes à freqüência das palavras contidas em
cada texto.
3. Anotação-Base:
A ontologia-base e o documento-base são escolhidos pelo usuário, que os
define de acordo com as anotações iniciais que deseja obter. Esses dois parâmetros
são passados ao sistema, que a partir deles realiza a anotação-base do processo.
4. Armazenamento da Anotação-Base:
As anotações da anotação-base são extraídas e salvas numa tabela do banco
de dados do sistema. A tabela que armazena essas anotações deve ser compatível
com o formato em que as mesmas são representadas.
5. Geração da Semente:
Das anotações salvas no banco de dados e a partir das frequências das
palavras dos textos é construída a semente para a modularização das ontologias.
6. Extração dos Módulos:
Com a semente e o repositório de ontologias, o sistema extrai de cada ontologia
os módulos referentes à anotação-base.
27
7. Articulação dos Módulos:
Os módulos gerados são processados pelo articulador, que os une em um único
arquivo.
8. Anotação Múltipla:
A partir do arquivo contendo os módulos extraídos, o processador de anotação
do sistema realiza a anotação dos textos do corpus, produzindo como resultado o
corpus anotado.
3.3 DESENVOLVIMENTO
Esta seção apresenta as atividades realizadas para a implementação do sistema
de acordo com a arquitetura proposta na seção 3.1 e com o processo descrito na
seção 3.2.
3.3.1 ARTICULAÇÃO DE ONTOLOGIAS
A primeira etapa do desenvolvimento do novo sistema foi a concepção da
articulação de duas ou mais ontologias. A abordagem escolhida foi a junção das
estruturas das ontologias sob uma única classe genérica, que seria então a raiz da
nova “ontologia”, como exemplificado na Figura 3.3.
28
FIG 3.3 – Esquema de Articulação de Ontologias
Inicialmente foi testado o plug-in Prompt (Prompt, 2013), pertencente à
ferramenta Protégé (Protégé, 2013), que tem como uma das suas funcionalidades o
“merge”, ou fusão, de duas ontologias. A função merge foi estudada para que fosse
identificado o mecanismo adotado por esse plug-in. No entanto, devido à própria
implementação do Protégé, não é possível ter acesso à ontologia resultante da
junção de duas ontologias, o que impossibilitou a identificação do processo de
articulação e o uso do Prompt para o desenvolvimento do módulo Articulador.
Após a experiência com o Protégé, foi estudada a OWLAPI (OWLAPI, 2013),
uma extensa e relativamente bem documentada biblioteca de desenvolvimento que
fornece uma API para manipulação de arquivos OWL.
A OWLAPI conta com a classe OWLMerger, com a qual foi possível inicialmente
esboçar um programa capaz de unir duas ontologias em um único arquivo.
Para entender a abordagem adotada pelo OWLMerger foram feitos alguns testes
com pares de pequenas ontologias, com as quais foi comparado o arquivo OWL
final.
As Figuras 3.4, 3.5 e 3.6 ilustram um desses testes, exibindo somente as
classes conceituais dos arquivos OWL das ontologias animalA.owl e animalB.owl
(I3CON, 2013).
29
A primeira ontologia, animalA.owl, exibida abaixo na Figura 3.4, é uma pequena
ontologia do domínio de animais que, além das desinências comuns de gênero para
animais em geral e seres humanos, apresenta também a classificação quanto ao
números de pernas, em “TwoLeggedThing” e “TwoLeggedPerson”.
FIG 3.4 – Ontologia animalA.owl
A segunda ontologia, ontologiaB.owl, exibida abaixo na Figura 3.5 é muito
semelhante à primeira, contendo as mesmas classes referentes a gênero e com as
classes “BipedalThing” e “BipedalPerson” correspondendo respectivamente a
“TwoLeggedThing” e “TwoLeggedPerson”. A diferença é o tipo de animal
“Hermafrodite” e a omissão da classe “HumanBeing” como sub-classe de “Person”.
FIG 3.5 – Ontologia animalB.owl
30
O resultado da articulação entre as ontologias animalA.owl e animalB.owl pode
ser visualizado abaixo na Figura 3.6:
FIG 3.6 – Resultado do Processamento das Ontologias pelo OWLMerger
Comparando-se as ontologias dadas como entrada e o resultado final pôde se
observar que o processamento feito pelo OWLMerger é quase similar ao esquema
inicialmente proposto para a articulação de ontologias: as informações de cada
ontologia são colocadas em um mesmo arquivo e é adicionada uma classe genérica
Thing. Entretanto, ao contrário do imaginado, a nova classe genérica não mantém
relacionamento com nenhuma outra e acaba não sendo um elemento de junção
propriamente dito das ontologias.
Apesar da classe OWLMerger não executar uma articulação integral dos
módulos, o fato das classes das ontologias serem unidas em um único arquivo OWL
já permite uma anotação automática pelo núcleo de anotação, pois esse arquivo já é
visto como uma única ontologia pela base de anotação da AutôMeta.
Dessa forma, o módulo Articulador foi desenvolvido a partir do programa
inicialmente criado para testar o funcionamento da classe OWLMerger. Este foi
então adaptado para receber como parâmetros os módulos extraídos das ontologias
originais e para produzir como resultado a articulação dos mesmos em formato
OWL. O arquivo OWL é salvo automaticamente no local do programa com o nome
“mergedOntology.owl”.
31
3.3.2 PROJETO DA INTERFACE
A integração das duas ferramentas se iniciou com a concepção de uma interface
que obtivesse os parâmetros de entrada necessários aos dois sistemas e
disponibilizasse a exibição dos módulos gerados, das anotações realizadas e os
resultados do processo de anotação.
Os parâmetros identificados para o funcionamento em conjunto dos núcleos de
anotação e de modularização foram:
• Repositório de ontologias;
• Corpus (repositório de documentos);
• Documento-base;
• Ontologia-base.
Para o armazenamento dos arquivos retornados pela ferramenta, é necessário
que o usuário defina os diretórios onde serão salvos os módulos gerados e os
arquivos anotados.
Levantados os parâmetros a serem obtidos e também como os resultados do
processo de anotação e modularização devem ser exibidos foi desenhada uma
interface simples com quatro telas básicas, mostradas como abas de uma janela
principal.
Cada tela representa uma etapa do processo como um todo, desde a inserção
dos primeiros parâmetros até a exibição dos resultados finais, passando pela
anotação-base e pela geração dos módulos. As abas e os botões com as funções
principais foram posicionados de modo a facilitar o usuário na execução da
sequência correta dos passos desse processo.
As telas foram denominadas de Configuração, Anotação-Base, Módulos e
Resultados e são exibidas a seguir nas Figuras 3.7, 3.9, 3.10 e 3.11,
respectivamente.
32
FIG 3.7 – Aba de Configuração da AutôMeta++
Na tela de configuração, exibida acima na Figura 3.7, o usuário fornece os
principais parâmetros dos já identificados. Para cada um deles, o usuário clica no
botão “Load” (carregar) ou “Browse” (navegar) correspondente e escolhe o diretório
em seu sistema a partir da janela de escolha de arquivo que é aberta logo em
seguida.
O botão “Montar Corpus!” é o botão que contém a função de cálculo de
frequência descrita anteriormente e registra os resultados desses cálculos no Banco
de Dados. Os dados são salvos na tabela “corpus”, cujo esquema está ilustrado na
Figura 3.8:
FIG 3.8 – Esquema da Tabela “corpus” do Banco de Dados
A tabela contém uma série de atributos relativos à freqüência (freq_doc, tf, idf)
dos termos dentro do corpus. Esses atributos são utilizados para o cálculo da
métrica final adotada pela SAM, o atributo tf_idf, para classificação de cada termo
quanto à frequência.
33
FIG 3.9 – Aba de Anotação-Base da AutôMeta++
Na tela de Anotação-Base, exibida acima na Figura 3.9, o usuário executa a fase
de anotação-base fornecendo a ontologia-base e o documento-base e clicando no
botão ‘Anotar!’. O resultado é exibido na área de texto localizada abaixo e as triplas
RDF são registradas na tabela posicionada na parte inferior da tela.
Uma observação importante a respeito dessa tela é que, apesar de baseada na
interface de exibição da AutôMeta, em que as anotações são caracterizadas como
tags de um arquivo XML, nela as palavras anotadas estão entre marcadores “<<” à
esquerda e “>>” à direita, que é o modo de identificação de anotações utilizado pela
SAM. O motivo dessa mudança de representação será explicado em detalhes na
seção 3.3.3.
O botão “Salvar Anotações!” é responsável por salvar as anotações feitas nessa
etapa na tabela “anotacao” do banco de dados e o botão “Gerar Módulos!” executa a
geração dos módulos.
34
FIG 3.10 – Aba de Módulos da AutôMeta++
A função da aba de módulos exibida na Figura 3.10 é simplesmente exibir ao
usuário os módulos gerados mediante o botão “Exibir Módulos!”, que ao ser
acionado realiza a listagem dos módulos no espaço à esquerda da tela. A área à
direita é capaz de exibir as árvores correspondentes à estrutura de cada módulo
selecionando-se o item que se deseja visualizar e clicando-se duas vezes sob ele.
O botão “Realizar Anotação Múltipla!” executa a articulação dos módulos
gerados na etapa anterior e utiliza essa articulação para realizar a última etapa do
processo, que é a anotação de cada texto do corpus.
35
FIG 3.11 – Aba de Resultados da AutôMeta++
Na última tela, ilustrada na Figura 3.11, em um esquema semelhante à exibição
dos módulos, os textos anotados são listados à esquerda e à direita os resultados
são exibidos na área de texto, com as triplas relativas às anotações na tabela
abaixo.
É necessário observar que a interface foi projetada para guiar o usuário ao longo
do processo para que as etapas sejam seguidas na ordem certa e a ferramenta não
falhe.
No entanto, tendo conhecimento dessa sequência, o usuário pode utilizar a
ferramenta apenas para executar etapas isoladas sem que seja necessário fornecer
todos os parâmetros ou seguir rigidamente os passos do processo completo.
36
3.3.3 IMPLEMENTAÇÃO DA FERRAMENTA AUTÔMETA++
A implementação da AutôMeta++ abrangeu o desenvolvimento do articulador
dos módulos das ontologias e da interface e a integração das ferramentas AutôMeta
e SAM em torno do projeto descrito na seção 3.3.2.
As classes do projeto foram agrupadas em pacotes de acordo com a ferramenta
de origem, no caso da SAM e AutôMeta (pacotes sam.* e autometa.*). As classes
desenvolvidas especialmente para a o sistema integrado foram agrupadas nos
pacotes autometapp.*. O esquema de pacotes do projeto está apresentado abaixo,
na Figura 3.12:
FIG 3.12 – Esquema do Projeto da AutôMeta++
Os códigos-fonte dos dois programas foram adicionados ao programa nos
pacotes autometa.* e sam.*, e a interface gráfica e o módulo articulador nos pacotes
autometapp.view e autometapp.articulation, respectivamente.
O plano inicial de desenvolvimento consistia em utilizar ambas as ferramentas
integralmente sem alterações nos códigos originais e estabelecendo a comunicação
entre as duas por meio de classes responsáveis pela adaptação de dados a serem
trocados entre uma e outra.
No entanto, dois problemas impossibilitaram essa estratégia:
O primeiro deles é a incompatibilidade entre as anotações produzidas pela
37
AutôMeta e aquelas capazes de serem interpretadas pela SAM e que comprometia o
prosseguimento do processo no ponto em que as anotações são usadas para
compor a semente.
Como já foi dito, a AutôMeta produz como resultado da anotação-base um texto,
no formato XML/RDFa, como ilustra a Figura 3.13:
FIG 3.13 – Exemplo de Texto Anotado em RDFa com a AutôMeta (FONTES, 2011)
Os termos anotados podem ser identificados procurando-se no texto as palavras
contidas entre as tags span. E com a utilização do padrão RDFa para as anotações
é natural que estas sejam armazenadas no banco de dados em uma tabela que
contenha as triplas referentes a cada uma.
No entanto, a SAM implementa um modo bastante particular para a identificação
de anotações. Quando as anotações são feitas manualmente, a ferramenta insere
os marcadores “<<” e “>>” ao redor do termo anotado e em seguida salva na tabela
de anotações uma série de atributos, entre eles a posição da palavra anotada no
texto, permitindo a localização de cada termo anotado.
O segundo problema foi o nível de dependência da SAM com o seu próprio
38
banco de dados. Além de armazenar os dados necessários à modularização, as
tabelas eram usadas também para registrar dados de configuração e valores que
eram utilizados apenas durante o uso do programa e não eram necessários para a
AutôMeta++. As tabelas presentes no banco de dados da ferramenta SAM são
ilustradas na Figura 3.14
FIG 3.14 – Esquema do Banco de Dados da SAM
Sendo assim, foi extraído do código da SAM apenas as funções identificadas
como essenciais para a modularização de ontologias, eliminando-se ao máximo a
dependência com as tabelas antigas para o uso de um banco de dados muito mais
simples, como mostra a Figura 3.15:
FIG 3.15 – Esquema do Banco de Dados da AutôMeta++
As classes desenvolvidas pertencem ao pacote autometapp.modularization e
39
são responsáveis por utilizar cada uma dessas funções essenciais, adaptando-as
para processar apenas os argumentos passados pelo usuário a partir da interface da
AutôMeta++, que já foi desenvolvida de modo a englobar a própria interface para
anotação da AutôMeta.
As funções essenciais da SAM que foram adaptadas são descritas a seguir:
Cálculo das freqüências dos termos dos textos do corpus:
A montagem do corpus é executada pela classe Calculator.java, que recebe o
caminho do corpus selecionado e utiliza a função void tf_idf(java.io.File f) de maneira
semelhante ao que é implementado na SAM em CorpusControle::calcularCorpus(),
do pacote sam.controller.
Registro de anotações:
O armazenamento das anotações geradas na anotação-base é feito pela classe
AnnotationFeeder.java, que salva as triplas da tabela de anotações exibida na aba
de Anotação-Base com o método void saveResults(javax.swing.JTable table).
Geração de semente:
A adaptação presente na classe SeedGenerator.java consiste no carregamento
dos termos anotados e classes das ontologias utilizadas na anotação-base que
estão armazenadas e à identificação dos termos de entorno, dos termos relevantes
e na geração da semente.
A semente, como na SAM, é implementada como uma lista de strings que
armazena os termos, as classes e os termos relevantes das anotações. As classes e
termos são imediatamente obtidos selecionando da tabela correspondente do banco
os sujeitos e objetos de cada anotação. A identificação dos termos relevantes exigiu
a adaptação das convenções adotadas por cada ferramenta.
Como já mencionado, as anotações provenientes da AutôMeta são
representadas no texto anotado como termos entre tags span. Para que o
Gerenciador de Anotação (oriundo da SAM) fosse capaz de identificar essas
anotações, a função createSeed() realiza uma série de operações com o uso de
expressões regulares que converte essas tags nos marcadores utilizados pela SAM.
As informações da tripla RDF não se perdem, pois já estão salvas na tabela de
40
resultados. É por esse motivo que, no resultado da anotação-base, as anotações
são exibidas no formato da SAM, e não da AutôMeta, como mostra a Figura 3.16.
FIG 3.16 – Esquema de Conversão das Anotações
Além disso, como a tabela de anotações da AutôMeta++ não guarda a posição
relativa aos termos anotados, o texto é varrido e com o auxílio dos marcadores e de
um contador que numera as linhas a anotação é identificada e os termos de entorno
são buscados da mesma maneira que é feita na SAM.
Identificados os termos de entorno, são extraídos apenas aqueles que
pertencem aos 50 termos mais freqüentes, que passam a compor a semente. Como
na montagem do corpus não há ordenação quanto à freqüência, os termos mais
freqüentes foram obtidos por meio da consulta exibida abaixo na Figura 3.17:
FIG 3.17 - Consulta SQL para a Seleção dos 50 Termos Mais Frequentes da Tabela “corpus”
O resultado dessa consulta é armazenado numa lista de strings com as quais as
Strings dos termos de entorno são comparadas.
O método que executa a geração da semente java.util.Set<java.lang.String>
createSeed(java.io.File f) recebe o arquivo “annotatedFile.txt”, que é salvo assim que
é completada a anotação-base e contém o texto anotado na formatação da SAM.
Geração de módulos:
O método da classe ModuleGenerator.java que cria os módulos recebe como
parâmetros uma lista com os nomes das ontologias do respectivo repositório, a
semente (convertida de java.util.Set para java.util.ArrayList) previamente gerada e o
diretório escolhido pelo usuário para salvar os módulos gerados.
Para essa função, a implementação foi modificada de modo a permitir o
41
armazenamento dos módulos num local escolhido pelo usuário, ao contrário do que
acontece com a SAM, em que os módulos são salvos automaticamente no próprio
repositório de ontologias.
A geração de módulos pode apresentar alguns problemas que fogem à maneira
como é feita à implementação. A modularização de uma ontologia envolve
inevitavelmente o carregamento em memória de todas as suas classes e como
conseqüência disso podem surgir dois problemas: memory leak e incompatibilidade
com o analisador sintático (parser) utilizado no processamento da função.
O memory leak ou vazamento de memória ocorre quando o carregamento da
ontologia excede o espaço de memória alocado pela máquina virtual Java para o
processamento da operação. É uma exceção típica de ontologias muito extensas,
que necessitam de plataformas de hardware mais potentes para serem
processadas.
O outro problema ocorre quando a ontologia possui em alguns de seus nós
entidades que não são interpretadas pelo analisador sintático como classes OWL
válidas, o que gera uma exceção e interrompe o carregamento da ontologia e
consequentemente a geração do módulo correspondente.
Após a geração dos módulos, a última etapa é articular os módulos e utilizar
essa articulação para realizar a anotação dos textos. A classe desenvolvida para
realizar a articulação é a classe Merger.java, do pacote autometapp.articulation, que
utiliza as funções básicas da OWLAPI para a junção de ontologias sob um mesmo
identificador e salvando-as em um único arquivo, que é salvo automaticamente com
o nome “mergedOntology.owl”.
Criado o arquivo OWL a ser utilizado na anotação final, foi feita uma pequena
adaptação na função de anotação automática da AutôMeta de modo a permitir a
anotação de todos os textos do corpus de uma única vez, já que, utilizando a
interface gráfica da AutôMeta, apenas um texto é anotado por vez.
Anotados os textos, eles são salvos no diretório “Saída” escolhido pelo usuário e
também são exibidos na tela de resultados da interface gráfica da AutôMeta++.
42
4 ESTUDO DE CASO
Para o estudo de caso, foi feita uma tentativa de se trabalhar com a integração
das ferramentas AutôMeta e SAM, porém, a ferramenta SAM apresentou problemas
em seu funcionamento, como conexão com banco de dados e problemas com
inserção de tuplas com campos que violavam a integridade do banco. Dessa forma,
na tentativa de simular o funcionamento da ferramenta SAM, foi utilizada a
ferramenta Galen, que trata-se de uma ferramenta que gera módulos a partir de um
conjunto de termos considerados relevantes, e na qual a SAM se baseia para a
geração de seus módulos. Logo, a partir de um conjunto de termos escolhidos, e
usando a ferramenta Galen, foram extraídos dois módulos de duas ontologias
distintas: Phare e Thesaurus.
Os termos utilizados foram escolhidos olhando especificamente a ontologia
Phare, em um processo semelhante a uma anotação manual. Esta ontologia foi
utilizada, pois apresenta um tamanho pequeno em detrimento à Thesaurus. Além
disso, para cada termo foram verificadas as classes correspondentes e os temos
nos textos. O conjunto de termos obtidos foi: Gene, Enzyme, Vitamin, Analysis,
DrugGene, Population, Phenotype, Cancer, Death, Infection, Organism,
HomoSapiens, Blood, Cell, Protein, Protease.
O módulo gerado a partir da ontologia Phare continha 23 classes distintas,
enquanto que o módulo gerado a partir da ontologia Thesaurus continha 42 classes
distintas. Com esses dois módulos, foi feito então o merge (através do articulador)
entre elas, gerando um único arquivo OWL fruto da fusão dos dois módulos de
ontologia. Com este arquivo OWL, foi feito o processo de anotação automática de
um único texto, PMC209577 (NCBI, 2013), através da ferramenta AutôMeta.
Continuando a simulação de acordo com a ferramenta SAM, após a anotação
automática baseada na articulação dos módulos das ontologias, o texto anotado foi
observado e verificou-se manualmente os termos de entorno dos termos anotados
que seriam relevantes para uma anotação mais completa. Foi então levantado um
novo conjunto de termos ao conjunto inicial. São eles: Gel, Derivative, Expression,
Vector, Target.
43
A partir desse novo arquivo, foi feito os mesmos passos para extrair dois novos
módulos das mesmas ontologias, que agora apresentam mais classes (módulo
originado da Phare: 38 classes; módulo originado da Thesaurus: 48 classes). Com
os novos módulos, foi feito o merge entre eles, e o novo arquivo OWL resultante foi
usado para anotar o mesmo texto.
Abaixo, é apresentado apenas um fragmento das duas tabelas que compilam
todos os termos anotados, apresentando o sujeito, propriedade e objeto utilizando-
se da articulação dos módulos originais e com termos estendidos. As tabelas
completas encontram-se no Apêndice.
TAB 4.1 – Tabela com as triplas RDF com a ontologia resultante de termos
Sujeito Propriedade Objeto
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
TAB 4.2 - Tabela com as triplas RDFa com a ontologia resultante de termos estendidos
Sujeito Propriedade Objeto
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
De acordo com as tabelas completas, podemos verificar que a extração original
(com o primeiro conjunto de palavras), anotou-se 41 termos, dos quais sete são de
classes distintas de um total de 16 termos totais usados para a extração dos
módulos (pertencentes ao primeiro conjunto de palavras). Com a anotação realizada
a partir do arquivo de articulação dos módulos das ontologias, obtida através da
extração com o arquivo de termos estendidos (o segundo arquivo de palavras
utilizado para a extração dos módulos), verifica-se que foram anotados 60 termos,
dos quais foram 11 de classes distintas de um total de 20 termos totais usados na
extração dos módulos.
Segundo opinião de especialista na área biomédica, no primeiro conjunto de
termos usados na extração dos módulos, seis deles são irrelevantes, ou seja,
apenas dez dos dezesseis termos usados na extração dos módulos são relevantes;
já na segunda anotação, apenas onze dos vinte termos responsáveis pela extração
dos módulos de ontologia foram considerados relevantes. No entanto, a quantidade
44
de termos relevantes nos arquivos responsáveis pela extração dos módulos não terá
impacto nesse estudo de caso, uma vez que a escolha dos termos foi feita
manualmente. Será usado para análise de impacto da anotação o número de
classes distintas anotadas.
Acrescentado a essas anotações, paralelamente fez-se a anotação do mesmo
texto com as ontologias Phare e Thesaurus completas, o que resultou num total de
90 classes distintas para a Phare, sendo consideradas relevantes apenas 45, e para
a anotação com a ontologia Thesaurus completa, resultou em 445 classes distintas,
dos quais foram considerados relevantes apenas 110, conforme compilados na
tabela 4.3.
TAB 4. 3 - Comparativo entre as Anotações das Ontologias
Frente ao número de termos distintos e o número de termos relevantes, pode-se
verificar que o percentual de termos relevantes anotados por ontologia tende a
permanecer constante (com média próxima a 0.5), o que pode ser explanado na
Figura 4.1. Nota-se que para a ontologia Phare e os arquivos OWL resultantes da
primeira e segunda extração (respectivamente Merge1 e Merge2), o percentual de
termos relevantes permanece próximo a constate (0.5 ou 50%), e o domínio da
ontologia é bem próximo do domínio do texto anotado. A Thesaurus, apesar de ser
também uma ontologia que abrange o domínio biomédico, contém também termos
de outros domínios, o que pode ser verificado pelo número de termos totais
anotados. Os percentuais dos termos relevantes são mostrados no gráfico abaixo:
Merge1 Merge2 Phare Thesaurus
N de termos distintos
16 20 90 445
N de termos relevantes
7 11 45 110
45
FIG 4. 1 - Percentual dos Termos Relevantes Anotados por Ontologia
Dessa forma, podemos inferir dos resultados que a anotação com base nos
módulos é promissora e pode ser vantajosa novos testes, entretanto mais testes
devem ser realizados para maiores conclusões. Da Figura 4.1, pode-se ver que o
percentual de classes distintas relevantes anotadas tende a ser constante com base
no mesmo domínio do texto (o que pode ser atingido pelo uso dos módulos),
evitando a anotação (ou uma super anotação) de termos que não são relevantes de
ontologias maiores (como o caso da Thesaurus).
Além disso, o uso dos módulos evita também um problema recorrente das
ferramentas de anotação: o de não suportar o tamanho excessivamente grande das
ontologias.
46
5 CONCLUSÃO
O desenvolvimento do trabalho teve inicialmente como objetivo integrar as
ferramentas AutôMeta e SAM para a produção de um sistema com suporte à
anotação semântica baseada em múltiplas ontologias. A comunicação dos dois
programas foi planejada segundo a adaptação de seus módulos para atender a uma
arquitetura para esse sistema integrado e um processo definido para a produção de
módulos das ontologias utilizadas e do corpus anotado.
Durante a execução deste projeto várias dificuldades foram encontradas, como a
falta de documentação das ferramentas sendo integradas e das API’s sendo
utilizadas, o próprio fato dessas ferramentas não terem sido desenvolvidas com o
interesse em um posterior reuso e as limitações de hardware impostas pelo
processamento de grandes quantidades de dados.
Dentro do escopo planejado, o desenvolvimento de uma primeira versão do
sistema integrado foi finalizado, o que pode ser comprovado pelos testes realizados
durante e após a sua implementação, que produziram os módulos e os textos
anotados com uma articulação de ontologias. No entanto, melhorias na integração
ainda precisam ser realizadas em trabalhos futuros.
47
6 TRABALHOS FUTUROS
O sistema desenvolvido neste trabalho, apesar de ser funcional e produzir
resultados não passou por um estudo formal para a sua validação, ou seja, os
resultados retornados do processo de anotação ainda não puderam ser classificados
como corretos ou, no mínimo, coerentes.
É necessário, portanto, que sejam realizados testes de validação para
determinar a relevância e a precisão do processo proposto e implementado neste
trabalho.
48
7 REFERÊNCIAS BIBLIOGRÁFICAS
BELLOZE, K. T., MONTEIRO, D. I., et al. An Evaluation of Annotation Tools for Biomedical Texts. In: ONTOBRAS-MOST 2012. Recife, 2012.
FONTES, C. A. Explorando Inferência em um Sistema de Anotação Semântica. Dissertação (Mestrado) – Instituto Militar de Engenharia, Rio de Janeiro, 2011.
GOMES, P. C. Suporte a Anotação Múltipla Baseada em Modularização de Ontologias: Uma Experiência na Área Biomédica. 86 p. Dissertação
(Mestrado) – Instituto Militar de Engenharia. Rio de Janeiro, 2012.
Information Interpretation and Integration Conference (I3CON). Disponível:
http://www.atl.lmco.com/projects/ontology/i3con.html [acessado 22 mar. 2013]
MOERNER, W. E. New Directions in Single-Molecule Imaging and Analysis. Disponível: http://www.pnas.org/content/104/31/12596.full [acessado em 22 mar.
2013]
NOY N. F., SHAH N.H., WHETZEL P.L., et al. BioPortal: Ontologies and Integrated Data Resources at the Click of a Mouse. Nucleic Acids Res. Jul
1;37(Web Server issue):W170-3. PMID: 19483092, 2009.
Ontotext. Disponível: http://www.ontotext.com/kim/semantic-annotation [acessado
em 22 mar. 2013].
OWLAPI. Disponível: http://owlapi.sourceforge.net [acessado em 22 mar. 2013]
PARENT C. e SPACCAPIETRA S. An Overview of Modularity. In: Stuckenschmidt
H, Parent C, Spaccapietra S, editors. Modular ontologies. Springer; p. 5–23,
2009.
49
Prompt. Disponível: http://protege.stanford.edu/plugins/prompt/prompt.html
[acessado em 22 mar. 2013]
Protégé. Disponível: http://protege.stanford.edu [acessado em 22 mar. 2013]
PubMed. Disponível: http://www.ncbi.nlm.nih.gov/pubmed [acessado em 22 mar.
2013].
RDFa. Disponível: http://www.w3.org/TR/xhtml-rdfa-primer [acessado em 22 mar.
2013].
SMITH B., ASHBURNER M., ROSSE C., et al. The OBO Foundry: Coordinated Evolution of Ontologies to Support Biomedical Data Integration. Nature
Biotechnology 25, 1251 – 1255, 2007.
50
8 APÊNDICE
TAB 8. 1 – Triplas RDF com Ontologia Resultante de Termos
Sujeito Propriedade Objeto
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Action
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Activity
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Gene http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type
Miscellaneous_
Mole
cular_Biology_T
erms
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type Cancer_Science
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type NCI_Administrat
ive_Concepts
#Activity http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type GeneProduct
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type GeneProduct
#Gene_Pro
duct http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Action
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-ns#type Activity
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
51
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Gene_Product
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-ns#type Gene_Product
#Gene
Product http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#modified http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Activity http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type
Miscellaneous_
Molecular_Biolo
gy_Terms
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type Cancer_Science
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type NCI_Administrat
ive_Concepts
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Microanatomy
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type
Anatomic_Struct
ure_System_or_
Substance
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type Microanatomy
#Cell http://www.w3.org/1999/02/22-rdf-syntax-ns#type
Anatomic_Struct
ure_System_or_
Substance
52
TAB 8. 2 – Tabela com as Triplas RDF com a Ontologia Resultante de Termos Estendidos
Sujeito Propriedade Objeto
#Gene http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Action
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Activity
#Gene http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Gene http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Gene http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
Miscellaneous_Mol
ecular_Biology_Ter
ms
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Cancer_Science
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
NCI_Administrative
_Concepts
#Activity http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
53
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type GeneProduct
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type GeneProduct
#Gene_Product http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Action
#Analysis http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Activity
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Gene_Product
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Protein http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Gene_Product
#GeneProduct http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Vector http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Vector http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Organism
#modified http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
54
#Activity http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Vector http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Vector http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Organism
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
Miscellaneous_Mol
ecular_Biology_Ter
ms
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Cancer_Science
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
NCI_Administrative
_Concepts
#Gel http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Gel http://www.w3.org/1999/02/22-rdf-syntax-
ns#type DrugFormulation
#Gel http://www.w3.org/1999/02/22-rdf-syntax-
ns#type TopicalFormulation
#Derivative http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Derivative http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Substance
#Derivative http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Conceptual_Entities
#Derivative http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Material
55
#Mrna http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Mrna http://www.w3.org/1999/02/22-rdf-syntax-
ns#type GeneProduct
#Mrna http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Mrna http://www.w3.org/1999/02/22-rdf-syntax-
ns#type GeneProduct
#Phenotype http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Expression http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Expression http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Phenotype
#Expression http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Expression http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Phenotype
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Microanatomy
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
Anatomic_Structure
_System_or_Substa
nce
56
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Thing
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type Microanatomy
#Cell http://www.w3.org/1999/02/22-rdf-syntax-
ns#type
Anatomic_Structure
_System_or_Substa
nce