MINISTÉRIO DA DEFESA
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO
CELSO ARAUJO FONTES
EXPLORANDO INFERÊNCIA EM UM SISTEMA DE ANOTAÇÃO
SEMÂNTICA
RIO DE JANEIRO
2011
INSTITUTO MILITAR DE ENGENHARIA
CELSO ARAUJO FONTES
EXPLORANDO INFERÊNCIA EM UM SISTEMA DE ANOTAÇÃO
SEMÂNTICA
Dissertação de Mestrado apresentada ao Curso de
Mestrado em Sistemas e Computação do Instituto
Militar de Engenharia, como requisito parcial para
obtenção do título de Mestre em Sistemas e
Computação.
Orientadoras: Profa Ana Maria de Carvalho
Moura, Dr.Ing e Profa Maria Claudia Reis
Cavalcanti, D. Sc.
RIO DE JANEIRO
2011
c2011
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.
É permitida 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 do autor e do orientador.
Fontes, C. A.
Explorando Inferência em um Sistema de Anotação
Semântica/ Celso Araújo Fontes.
- Rio de Janeiro, Instituto Militar de Engenharia, 2011.
126 p.: il., tab.
Dissertação (mestrado) - Instituto Militar de Engenharia - Rio de Janeiro, 2011.
1. Banco de Dados. 2. Tecnologias Semânticas.
3. Ontologias. I. Título. II. Instituto Militar de Engenharia
CDD XXX.XXX
2
INSTITUTO MILITAR DE ENGENHARIA
CELSO ARAUJO FONTES
EXPLORANDO INFERÊNCIA EM UM SISTEMA DE
ANOTAÇÃO SEMÂNTICA
Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e
Computação do Instituto Militar de Engenharia, como requisito parcial para
obtenção do título de Mestre em Sistemas e Computação.
Orientadoras: Profa Ana Maria de Carvalho Moura, Dr.Ing.
Profa Maria Claudia Reis Cavalcanti, D. Sc
Aprovada em 26 de Maio de 2011 pela seguinte Banca Examinadora:
____________________________________________________________________
Profa Maria Claudia Reis Cavalcanti, D.Sc - Presidente
____________________________________________________________________
Profa Ana Maria de Carvalho Moura, Dr.Ing - IME
____________________________________________________________________
Profa Vanessa Braganholo Murta, D.Sc - UFF
____________________________________________________________________
Prof Wallace Anacleto Pinheiro, D.Sc - IME
RIO DE JANEIRO
2011
3
AGRADECIMENTOS
As professoras Ana Maria de Carvalho Moura e Maria Claudia Reis Cavalcanti,
Yoko, pela paciente orientação ao longo deste trabalho.
Aos professores Wallace Anacleto Pinheiro e Vanessa Braganholo Murta por terem
aceitado participar de minha banca.
Ao Instituto Militar de Engenharia (IME) e a todos os professores e funcionários,
que tornaram possível a realização deste trabalho.
Ao Laboratório Nacional de Computação Científica (LNCC) por gentilmente nos
ceder uma poderosa infraestrutura necessária para a produção dos testes realizados neste
trabalho.
Ao Departamento de Trânsito do Estado do Rio de Janeiro (DETRAN RJ) e a todos
os meus colegas de trabalho que apoiaram incondicionalmente para concretização deste
trabalho.
A minha família pelo apoio constante.
A minha amada noiva Nubia pela paciência, carinho e compreensão.
Ao meu Deus que me dá forças e razão para lutar e viver.
Celso A. Fontes
4
"Eu Sou a Luz do mundo. Quem me segue, nunca andará em
trevas, mas terá a Luz da Vida" (Jesus).
5
RESUMO
A gestão da informação nas organizações tornou-se um importante desafio,
especialmente quando documentos relevantes e estratégicos são armazenados na web,
onde a maioria deles é gerada para a interpretação humana. Através do uso de
metadados sobre alguns trechos de texto em um documento, aqui considerado como
anotações semânticas, é possível facilitar a o processamento deste documento por meio
de mecanismos automáticos, uma vez que facilita a recuperação de informações e a
otimização da indexação deste documento. No entanto, devido à enorme quantidade de
documentos existentes em uma organização, a ideia de gerar anotações semânticas para
todos estes documentos parece ser uma tarefa complexa e não trivial.
Este trabalho apresenta uma proposta para enriquecer automaticamente documentos
com anotações semânticas, onde os termos do documento são anotados com o auxílio de
uma ontologia de domínio. Atualmente já existem algumas ferramentas de anotação de
documentos para automatizar esse processo. A contribuição e diferencial deste trabalho
estão na sua capacidade de explorar a inferência ontológica e no conceito de metaanotação, que visa orientar os usuários e agentes automáticos no uso das anotações
inferidas, através da informação sobre o raciocínio que as gerou.
6
ABSTRACT
Information management in organizations has become an important challenge,
especially when their relevant and strategic documents are stored on the web, where
most of them are generated for human interpretation. By the use of metadata over some
text segments on a document, here considered as semantic annotations, it is possible to
facilitate processing such documents by automatic mechanisms, since it enables
information retrieval and indexation optimization of these documents. However, due to
the huge amount of existing documents in an organization, the idea of generating
semantic annotations to all these documents seems to be a complex and not trivial task.
This work presents a proposal for automatically enriching documents with semantic
annotations, where document terms are annotated according to a domain ontology.
Currently there already exist some document annotation tools to automate this process.
The great deferential and contribution of this work is its ability of exploiting the
ontology inference capability and on the meta-annotation concept, which aims at
guiding users and automatic agents on the use of inferred annotations, by informing the
reasoning which generated them.
7
SUMÁRIO
LISTA DE ILUSTRAÇÕES...........................................................................................11
.
LISTA DE TABELA.......................................................................................................14
1
INTRODUÇÃO ................................................................................................ 16
1.1
OBJETIVO......................................................................................................... 18
1.2
ORGANIZAÇÃO DA DISSERTAÇÃO ........................................................... 18
2
CONCEITOS BÁSICOS ................................................................................. 20
2.1
METADADOS................................................................................................... 20
2.2
ONTOLOGIA .................................................................................................... 21
2.3
REGRAS E INFERÊNCIA ................................................................................ 23
2.4
WEB SEMÂNTICA .......................................................................................... 24
2.5
LINGUAGENS PARA REPRESENTAÇÃO DE ONTOLOGIAS .................. 24
2.6
NAMESPACE E URIs ....................................................................................... 27
2.7
CONSIDERAÇÕES FINAIS ............................................................................. 30
3
ANOTAÇÃO SEMÂNTICA E TECNOLOGIAS RELACIONADAS ....... 32
3.1
ANOTAÇÃO SEMÂNTICA ............................................................................. 32
3.2
PADRÕES DE ANOTAÇÃO SEMÂNTICA ................................................... 35
3.2.1
Microformats ...................................................................................................... 36
3.2.2
eRDF .................................................................................................................. 37
3.2.3
RDFa .................................................................................................................. 38
3.2.4
HTML5 Microdata ............................................................................................. 39
3.2.5
Análise Comparativa .......................................................................................... 40
3.3
FERRAMENTAS DE ANOTAÇÃO SEMÂNTICA ........................................ 42
3.3.1
Análise Comparativa .......................................................................................... 45
3.4
FERRAMENTAS DE RECUPERAÇÃO SEMÂNTICA ................................. 47
8
3.5
CONSIDERAÇÕES FINAIS ............................................................................. 49
4
ARQUITETURA PARA O DESENVOLVIMENTO DE UM SISTEMA DE
ANOTAÇÃO AUTOMÁTICA EM DOCUMENTOS .............................................. 51
4.1
ARQUITETURA PROPOSTA .......................................................................... 51
4.2
FUNCIONALIDADES DOS COMPONENTES DA ARQUITETURA .......... 52
4.3
ESPECIFICAÇÃO DA META-ANOTAÇÃO .................................................. 58
4.4
CONSIDERAÇÕES FINAIS ............................................................................. 64
5
AUTÔMETA: ESPECIFICAÇÃO E PROTOTIPAÇÃO ........................... 66
5.1
VISÃO GERAL DA FERRAMENTA .............................................................. 66
5.2
ESPECIFICAÇÃO E IMPLEMENTAÇÃO ...................................................... 68
5.3
INTERFACES ................................................................................................... 69
5.3.1
Interface CLI ...................................................................................................... 69
5.3.2
Interface GUI ...................................................................................................... 70
5.4
FUNCIONALIDADES DA FERRAMENTA.................................................... 72
5.4.1 Carga da Ontologia ............................................................................................. 72
5.4.2 Anotação semi-automática (Auto-Complete) ..................................................... 73
5.4.3 Anotação Automática ......................................................................................... 73
5.4.4 Extração das anotações ....................................................................................... 74
5.5
LIMITAÇÕES E SIMPLIFICAÇÕES DA FERRAMENTA AUTÔMETA ..... 75
5.6
CONSIDERAÇÕES FINAIS ............................................................................. 75
6
AVALIAÇÃO DA FERRAMENTA AUTÔMETA ...................................... 76
6.1
PREPARAÇÃO DOS AMBIENTES DE TESTES ........................................... 76
6.1.1 Metodologia ........................................................................................................ 78
6.1.2 Recorte Ontológico da DBPEDIA ...................................................................... 79
6.1.3 Preparação das Bases de Testes .......................................................................... 83
9
6.1.4 Massas de Dados ................................................................................................ 84
6.1.5 Ambientes de Recuperação de Informação ........................................................ 84
6.1.6 Precisão e Cobertura ........................................................................................... 92
6.2
AVALIAÇÃO DOS RESULTADOS ................................................................ 95
6.2.1 Avaliação dos Resultados no Primeiro Ambiente .............................................. 96
6.2.2 Avaliação dos Resultados no Segundo Ambiente ............................................ 100
6.2.3 Comparação Final entre os Resultados Obtidos nos Dois Ambientes.............. 104
6.3
CONSIDERAÇÕES FINAIS ........................................................................... 106
7
CONCLUSÃO ................................................................................................ 107
7.1
CONTRIBUIÇÕES .......................................................................................... 108
7.2
TRABALHOS FUTUROS ............................................................................... 109
7.3
MELHORIAS NO PROTÓTIPO AUTÔMETA .............................................. 110
8
REFERÊNCIAS ............................................................................................. 111
9
APÊNDICES .................................................................................................. 117
9.1
CONSULTAS EM SPARQL ........................................................................... 117
10
LISTA DE ILUSTRAÇÕES
FIG.2.1
Exemplo de categorização de conceitos do domínio de Futebol .................. 22
FIG.2.2
Exemplo de XML.......................................................................................... 25
FIG.2.3
Exemplo de triplas RDF ................................................................................ 25
FIG.2.4
Representação em RDF/XML da FIG.2.3.................................................... 26
FIG.2.5
Ilustração da Utilização do RDF com o RDFS ............................................. 27
FIG.2.6
Exemplo de RDF utilizando namespaces ...................................................... 29
FIG.2.7
Exemplo de Inferência na ferramenta Protegé. ............................................. 30
FIG.3.1
Representação visual de anotação semântica. Adaptado de OREN et al.
(2006). ............................................................................................................................ 33
FIG.3.2
Exemplo de Anotação Informal adaptado de (OREN, et al. 2006). .............. 34
FIG.3.3
Exemplo de uso do Microformats ................................................................. 37
FIG.3.4
Anotação Semântica em HTML utilizando a especificação eRDF ............... 37
FIG.3.5
Anotação Semântica utilizando a especificação RDFa ................................. 39
FIG.3.6
Anotação Semântica utilizando a especificação Microdata .......................... 40
FIG.3.7
Interface do GATE ........................................................................................ 43
FIG.3.8
Interface do Amaya ....................................................................................... 44
FIG.3.9
Interface do SMORE e um trecho de anotação em RDF gerada pela
ferramenta ....................................................................................................................... 44
FIG.3.10 Ferramenta RDFa Developer no navegador Firefox ..................................... 48
FIG.3.11 Recorte enriquecido de anotações e sua pagina de origem ........................... 49
FIG.4.1
Arquitetura do Sistema de Anotação Semântica de Documentos ................. 52
FIG.4.2
Recorte de uma ontologia sobre professores e aluno .................................... 53
FIG.4.3
Ilustração do funcionamento do módulo de Análise e Comparação ............. 54
FIG.4.4
Algoritmo do procedimento de Anotação Semântica ................................... 54
FIG.4.5
Ilustração do funcionamento do Anotador que gera anotações para o termo
“Celso”. .......................................................................................................................... 55
FIG.4.6
Documento anotado ...................................................................................... 56
FIG.4.7
Anotação Enriquecida com informações implícitas...................................... 56
FIG.4.8
Representação gráfica da Meta-Anotação ..................................................... 57
FIG.4.9
Documento com a Anotação + Meta-Anotação ............................................ 57
FIG.4.10 Taxonomia de tipos de declarações que geram as meta-anotações............... 58
FIG.4.11 Ontologia utilizada nos exemplos de meta anotação .................................... 59
11
FIG.5.1
Anotação ilustrando os formalismos definidos anteriormente ...................... 67
FIG.5.2
Anotação em RDFa gerada pela ferramenta AutôMeta ................................ 68
FIG.5.3
Exemplo Utilização da interface CLI no CMD do Windows XP ................. 69
FIG.5.4
Interface GUI do AutôMeta .......................................................................... 71
FIG.5.5
Declaração de Prefixos e Namespaces geradas pelo AutôMeta.................... 71
FIG.5.6
Destaque da anotação gerada pelo AutôMeta automaticamente no ambiente
GUI ................................................................................................................................. 72
FIG.5.7
Botão de carga da ontologia .......................................................................... 72
FIG.5.8
Escolha do Arquivo da Ontologia ................................................................. 72
FIG.5.9
Recurso de AutoCompletar ........................................................................... 73
FIG.5.10 Carga de Documento ..................................................................................... 74
FIG.5.11 Exemplo de Anotações extraídas pelo AutôMeta. ........................................ 74
FIG.5.12 Textos de mensagens de erro. ....................................................................... 74
FIG.6.1
SQL para obtenção dos documentos relevantes ............................................ 78
FIG.6.2
Artigo do Wikipedia sobre PRNP e sua versão semântica no DBpedia. ...... 80
FIG.6.3
Algoritmo do recorte ontológico da DBPEDIA ............................................ 81
FIG.6.4
Algoritmo de preparação para o primeiro ambiente de testes ....................... 85
FIG.6.5
Algoritmo de preparação para o segundo ambiente de testes ....................... 86
FIG.6.6
Ilustração simplificada da anotação feita pelo AutôMeta sobre a pergunta 160
da TREC 2006 ................................................................................................................ 87
FIG.6.7
Triplas da ontologia de recorte DBPEDIA ................................................... 88
FIG.6.8
Consulta SPARQL que aproveita-se da sinonímia ....................................... 88
FIG.6.9
Consulta SPARQL para obtenção de todos os termos anotados ................... 89
FIG.6.10 Exemplo de consulta SQL para obtenção dos termos mais utilizados em
documentos relevantes.................................................................................................... 89
FIG.6.11 Consulta otimizada após o processo de refino manual ................................. 91
FIG.6.12 Consulta SPARQL da pergunta 171 utilizando o UNION. .......................... 92
FIG.6.13 Cobertura e Precisão (BARROS, 2011) ........................................................ 93
FIG.6.14 Consulta SQL para recuperação dos documentos relevantes ........................ 93
FIG.6.15 SQL utilizado para calcular o total de documentos relevantes ..................... 94
FIG.6.16 Exemplo de consulta para obter a interseção entre os documentos relevantes
e os documentos recuperados ......................................................................................... 94
FIG.6.17 Consulta SQL para obter o total de documentos recuperados por pergunta . 95
12
FIG.6.18 Gráfico comparativo dos resultados de precisão entre baseTXT e
baseREASONER no ambiente tradicional .................................................................... 96
FIG.6.19 Recorte simplificado de uma anotação semântica gerada pelo AutôMeta no
documento 11095696 da TREC. .................................................................................... 97
FIG.6.20 Trecho de anotação no documento 9700208 com o termo CTSD em destaque
........................................................................................................................................ 98
FIG.6.21 Gráfico comparativo de cobertura ................................................................. 98
FIG.6.22 Gráfico comparativo de F Measure entre BaseTXT e BaseREASONER no
ambiente tradicional ....................................................................................................... 99
FIG.6.23 Gráfico de Cobertura e Precisão (MIHALIK, 2006) .................................... 99
FIG.6.24 Gráfico de precisão das bases REASONER e NO REASONER ................ 100
FIG.6.25 Consulta SQL para investigação dos baixos resultados de BaseREASONER
perante a BaseNOREASONER .................................................................................... 101
FIG.6.26 SPARQL da consulta 186 ........................................................................... 103
FIG.6.27 Gráfico comparativo de cobertura (recall) de REASONER e NO
REASONER. ................................................................................................................ 103
FIG.6.28 Gráfico comparativo de Medida F entre as massas REASONER e NO
REASONER ................................................................................................................. 104
FIG.6.29 Gráfico comparativo de Medida F entre todas as massas de dados ............ 105
13
LISTA DE TABELAS
TAB. 3.1 Tabela comparativa dos padrões de anotação semântica................................ 42
TAB. 3.2 Tabela comparativa das ferramentas de anotação semântica ......................... 46
TAB. 6.1 Exemplo de pergunta TREC 2006. ................................................................. 77
TAB. 6.2 Trecho da tabela de avaliação de relevância da TREC 2006 ......................... 77
TAB. 6.3 Métricas da ontologia de recorte DBpedia ..................................................... 82
TAB. 6.4 Termos relevantes (anotados na BaseREASONER) para a consulta 164 ..... 90
TAB. 6.5 Recorte de exemplo de planilha de cálculos de recall (cobertura) e precision
(precisão) ........................................................................................................................ 95
TAB. 9.1 Tabela de Prefixos e Namespaces utilizados nas consultas SPARQL ......... 117
14
LISTA DE ABREVIATURAS
FIG
- Figura
HTML - HyperText Markup Language
OWL
- Web Ontology Language
RDF
- Resource Description Framework
RDFa
- Resource Description Framework – in – attributes
SQL
- Structured Query Language
TAB
- Tabela
TREC - Text Retrieval Conference
TXT
- Texto Plano
URI
- Uniform Resource Identifier
W3C
- World Wide Web Consortium
XML
- Extensible Markup Language
15
1 INTRODUÇÃO
A internet modificou a forma de compartilhar e consumir conhecimento. Através dela,
inúmeros artigos, notícias e todo tipo de informação pode ser acessada rapidamente de
qualquer lugar a qualquer momento. No entanto, a maioria do conteúdo da grande rede
foi construída apenas para o consumo humano, dificultando a automatização de tarefas
por parte de agentes inteligentes, tais como a recuperação de informações, de forma
rápida e precisa.
Frente a isto, um grande empenho tem sido feito para que os dados disponíveis na
Web possam ser organizados, descritos e indexados através da utilização de metadados.
Metadados proveem subsídios a mecanismos de busca para que estes possam consultar
e manipular informações de maneira estruturada, e não mais apenas por buscas em texto
livre como fazem as ferramentas tradicionais.
Entretanto, a maioria das páginas no ambiente Web é escrita em HTML. A maioria
dos recursos presentes na HTML é voltada apenas para a formatação visual das
informações, sejam elas por tabelas, formulários e outros, não havendo um
compromisso semântico, isto é, de explicitação do significado das informações
descritas.
Face a esse problema, um dos idealizadores do HTML, Bernes-Lee, propôs a Web
Semântica que definiu como, “uma extensão da Web atual, em que a informação é dada
com um significado bem definido, permitindo que computadores e pessoas trabalhem
em cooperação” (BERNES-LEE, 2001). A Web Semântica utiliza estruturas baseadas
em ontologias, que facilitam a explicitação das informações. Ontologias oferecem
subsídios para uma descrição rica das informações através de conceitos e instâncias que,
quando associados a cláusulas lógicas, permitem a descoberta de informações
implícitas. RDF1 e OWL2 são linguagens utilizadas para a representação de ontologias,
consideradas atualmente como padrões para a descrição e troca de recursos na Web.
Com o surgimento destes padrões, surgiram diversos repositórios semânticos
(BROEKSTRA, et al., 2002)(KIRYAKOV, et al., 2005), também denominados de
1
www.w3.org/RDF/
www.w3.org/TR/owl-features/
3
www.w3.org/TR/xhtml-rdfa-primer/
2
16
bases de dados ontológicas, onde é possível fazer recuperação mais eficaz das
informações. Entretanto, estas estruturas são armazenadas separadamente dos
documentos HTML, e os vínculos entre ambos não são feitos de maneira clara e direta,
dificultando a integração entre as informações de consumo humano e computacional.
Neste contexto, surgiram as anotações semânticas, que têm por objetivo vincular
elementos de documentos descritos em HTML a termos de uma ontologia. A partir
destas anotações, é possível manter o conteúdo do documento visível à leitura humana
e, ao mesmo tempo, fornecer metadados em forma de anotações para que agentes
possam interpretar a informação contida no documento.
Nos últimos anos, a Web tornou-se a principal fonte de pesquisa nos mais diversos
domínios. Porém, devido ao crescimento exponencial de informações ali contidas, a
garantia de obtenção de maior precisão na recuperação de documentos relevantes nesse
vasto repositório torna-se cada vez mais um grande desafio.
Em particular, projetos governamentais que se utilizam maciçamente de
informações disponibilizadas a cada dia na Web, tais como legislações e documentos
oficiais que amparam os diversos setores institucionais, carecem de ferramentas e
tecnologias que possam auxiliá-los na tarefa de recuperar da Web informações e
documentos relevantes a estes setores, permitindo utilizá-los e/ou agregá-los de forma
atualizada e automática a tais projetos. Pesquisar informações relevantes na Web é ainda
uma tarefa árdua e complexa, pois por ainda se basear em pesquisa textual, nem sempre
retorna as informações almejadas pelo usuário. Porém, essa tarefa pode ser minimizada
se os documentos publicados puderem ser enriquecidos com anotações extras que
provejam alguma semântica ao documento. Nesse contexto, ferramentas que permitam
descrever e/ou anotar documentos assumem um papel de grande importância nesse
cenário.
Além disso, vale observar que, devido à complexidade de gerenciar um grande
volume de documentos dentro de uma organização, um mecanismo para automatizar a
tarefa de anotação em documentos, a fim de facilitar a recuperação da informação,
torna-se essencial. Algumas iniciativas já foram desenvolvidas nesse sentido,
(CUNNINGHAM, 2003), (KOIVUNEN, 2005) (KALYANPUR, 2009), embora a
maioria delas: explore muito pouco o potencial da inferência de ontologias; não
permitam o uso de ontologias arbitrárias; normalmente utilizem uma sintaxe de
anotação própria; e utilizem um arquivo separado para as anotações, não mantendo
17
claramente a ligação entre as anotações e os termos do documento, tornando a
recuperação de informação semântica uma tarefa complexa e dispendiosa. Além disso,
as anotações feitas sobre os documentos não são levadas em conta no processo de
busca, que ainda é um grande problema a considerar.
1.1 OBJETIVO
Este trabalho tem como objetivo desenvolver um sistema para anotação semântica em
documentos com base em conceitos de uma ontologia. Auxiliado por um raciocinador, o
sistema desenvolvido visa tornar explícitas na forma de anotação, as relações implícitas
sobre os conceitos da ontologia presentes no documento. Diferentemente de outras
propostas encontradas na literatura (KALYANPUR, 2009) (CUNNINGHAM, 2003)
(KOIVUNEN, 2005), este trabalho propõe utilizar como mecanismo de anotação um
dos padrões de anotação semântica abertos, o RDFa3, regido pela W3C, e bastante
utilizado pelo mercado de TI (Tecnologia da Informação).
Este trabalho propõe e implementa uma arquitetura para facilitar o processo de
enriquecimento semântico de documentos a partir de anotações, de modo que estes
dados estruturados possam também ser analisados e explorados por ferramentas de
recuperação de informações para obtenção de resultados mais precisos. Vale ressaltar,
que essa arquitetura explora intensamente as informações existentes na ontologia que
serve de base para anotação, levando em conta as inferências para enriquecer ainda mais
as anotações. Além disso, inclui um mecanismo de meta-anotação, cujo objetivo é
explicar e justificar as anotações feitas nos documentos, em especial, aquelas que foram
“inferidas” a partir da ontologia.
1.2 ORGANIZAÇÃO DA DISSERTAÇÃO
Além da introdução, este trabalho contém ainda seis capítulos, cada um abrangendo os
seguintes tópicos:
3
www.w3.org/TR/xhtml-rdfa-primer/
18

O Capítulo 2 é dedicado aos conceitos básicos que serão utilizados ao longo
dessa dissertação e relativos a temas envolvendo metadados, regras, ontologias e
linguagens para representação de ontologias.

O Capítulo 3 é voltado à anotação semântica e os principais conceitos
envolvendo o tema, tais como sua origem histórica, especificações de anotação
utilizadas pelo mercado, ferramentas de anotação e de busca semântica, bem
como um comparativo entre elas.

O Capítulo 4 apresenta a arquitetura proposta para o sistema de anotação,
especificando detalhadamente
cada
um
de
seus
módulos
funcionais.
Adicionalmente, o capítulo descreve o conceito de meta anotação, cujas
categorias seguem uma taxonomia bem definida, com base na mesma utilizada
na definição da linguagem OWL.

O Capítulo 5 detalha a ferramenta AutôMeta desenvolvida para validação da
arquitetura proposta e ilustra suas principais funcionalidades e algumas decisões
de implementação.

O Capítulo 6 descreve os ambientes de testes utilizados para avaliar o resultado
das anotações semânticas geradas pela AutôMeta no processo de recuperação de
uma extensa massa de documentos. Para tanto foram utilizadas métricas
clássicas e amplamente empregadas no domínio de recuperação da informação.

Finalmente, o Capítulo 7 descreve as ponderações a respeito dos trabalhos e
pesquisas desenvolvidos, com enfoque para as contribuições realizadas e
recomendações para trabalhos futuros.
19
2 CONCEITOS BÁSICOS
Desde sua concepção, a quantidade de informações disponíveis na internet cresceu
substancialmente. Segundo os engenheiros do Google (ALPERT e HAJAJ, 2008), o
número de páginas disponíveis na grande rede alcançou a marca de um trilhão. Números
como estes reforçam a necessidade da utilização de mecanismos para auxiliar na
descrição destas informações, otimizando a classificação e localização das mesmas na
Web. Esse conjunto de características é compatível com a definição de metadado, sendo
este base para a Web semântica, que visa permitir que computadores e pessoas possam
obter melhores usos das informações na internet, sendo estas representadas de maneira
estruturada, e tendo como base as ontologias.
Neste capítulo são abordados os conceitos importantes sobre metadados, Web
semântica e ontologias, necessários para o desenvolvimento do trabalho descrito ao
longo dessa dissertação.
2.1 METADADOS
Metadados são definidos como “dados sobre dados”, e sua utilização visa descrever
informações, auxiliando na identificação, localização e gerenciamento dos dados
(BONIFACIO, 2002). Na computação, os metadados podem ser utilizados em diversos
ambientes como Arquivos, Bancos de Dados, Data WareHouses, Sistemas de Georeferenciamento e na Internet (MOURA et. al., 1998). Entretanto, GRAUCIO (2002)
salienta que o “termo metadado possui um significado ou um conceito de acordo com o
profissional e a área em que é utilizado, mas tem sempre como objetivo principal a
descrição da informação para sua busca e recuperação”.
Contudo, para explicitar o domínio, isto é, o contexto em que tal informação
descrita pertence e deve ser interpretada, os metadados precisam estar associados a uma
ontologia (BONIFACIO, 2002).
20
2.2 ONTOLOGIA
O termo ontologia surgiu no âmbito filosófico, no século 17, em paralelo pelos filósofos
Rudolf Gockel em seu trabalho Lexicon philosophicum e por Jacob Lorhard em Ogdoas
Scholastica, sendo posteriormente popularizado na publicação de 1730 de Christian
Wolff, intitulada de Philosophia prima sive Ontologia (GUIZZARDI, 2000).
No campo da Filosofia, ontologias têm sido utilizadas para tentar descrever
domínios naturais (as coisas naturais do mundo) e a existência dos seres e coisas em si,
desvendando, desta forma, o significado das coisas no mundo (LIMA e SCHWABE,
2004).
Segundo GRUBER (1992), uma ontologia “é uma especificação explícita de uma
conceituação. A conceituação é uma abstração simplificada do domínio em que se
deseja representar para algum propósito”.
Um exemplo de domínio seria o domínio do “Futebol”, cujos conceitos seriam o
“Jogador”, “Bola”, “Pelé”, “número de títulos”, “apelido do Jogador” etc...
GUIZZARDI (2000) afirma que “a conceituação tem uma importância
fundamental em qualquer atividade de modelagem do conhecimento, pois é impossível
representar o mundo real, ou mesmo uma parte dele, em sua completa riqueza de
detalhes”.
DAHLBERG (1978) em sua obra “Teoria dos conceitos” definiu dois tipos de
conceitos: os individuais, a exemplo de: Pelé, Garrincha, Santos e Botafogo, e os
conceitos gerais: Jogador de Futebol e Time de Futebol; sendo estes utilizados na
categorização dos conceitos, a exemplo da FIG. 2.1.
Categorização é um dos princípios básicos de classificação adotados na
Taxonomia (CAMPOS & GOMES, 2007), palavra de origem do grego táksis, -eos,
classificação + grego nómos, -ou, regra, lei, uso + -ia. (PRIBERAM, 2011).
Taxonomias têm sido empregadas em portais institucionais, bibliotecas digitais
como um novo mecanismo de consulta, ao lado de ferramentas de busca. Além destas
aplicações, a taxonomia é um dos componentes das Ontologias (CAMPOS & GOMES,
2007).
21
Desportista
Jogador De
Futebol
Jogador De Futebol
Amador
Jogador de Futebol
Profissional
FIG. 2.1: Exemplo de categorização de conceitos do domínio de Futebol
ALMEIDA & BAX (2004) consideram a categorização como um dos primeiros
passos para a elaboração de uma ontologia: “de forma simples, para elaborar
ontologias, definem-se categorias para as coisas que existem em um mesmo domínio”.
Esta elaboração entra em conformidade com a definição de SOWA (2010), onde a
questão da ontologia é o “estudo das categorias de coisas que existem ou podem existir
em algum domínio”.
Além dos conceitos e das categorias, as ontologias também são formadas pelas
relações. GUIZZARDI (2000) salienta que “simplesmente propor uma taxonomia ou um
conjunto de termos básicos, não constitui uma ontologia”.
SMITH et al. (2005) definem três tipos de relações:

<class, class>: relações de hierarquia entre classes, a exemplo de
subTipoDe(JogadorDeFutebol, Desportista)

<instance, class>: relações de uma instância e uma classe, a exemplo de
éUm(Pelé, JogadorDeFutebol)

<instance, instance>: relações entre duas instâncias, a exemplo de
jogouNo(Pelé,Santos)
22
Mesmo as relações (propriedades e atributos das classes) são basicamente
conceitos que caracterizam e completam o sistema terminológico da ontologia
(GONÇALVES & SOUZA, 2008).
Outro componente fundamental de uma ontologia é o Vocabulário, que constitui
um conjunto de termos utilizados para cada domínio. Na web semântica, um
vocabulário fornece a descrição das propriedades (relações) e das classes (entidades)
(DINIZ & CICCONI, 2009).
Segundo GUARINO (1998), no campo da IA (Inteligência Artificial), uma
ontologia refere-se a um artefato de engenharia, constituído por um vocabulário
específico usado para descrever certa realidade, mais um conjunto de hipóteses
explícitas sobre o significado pretendido dos termos do vocabulário.
Um compromisso ontológico é um acordo para usar um vocabulário de uma
maneira que seja consistente (mas não completa) com relação à teoria especificada por
uma ontologia (OBITIKO, 2007). Em seguida, agentes podem confirmar se a(s)
ontologia(s) são projetadas de modo que o conhecimento possa ser compartilhado entre
esses agentes (OBITIKO, 2007).
Um exemplo de vocabulário seria o FOAF “Friend of a Friend” (BRICKLEY &
MILLER, 2010), que define um conjunto de propriedades e classes para descrever
pessoas, com suas informações tais como nome, local de trabalho, projetos e, seus
relacionamentos com outras pessoas, projetos e organizações.
Ontologias também incluem axiomas, regras, inferências e fatos, detalhados nas
seções a seguir.
2.3 REGRAS E INFERÊNCIA
Integrantes da camada de lógica da web semântica, as regras “fornecem aos agentes
computacionais o poder de raciocinar sobre as estruturas de dados” (AFONSO, 2001).
Exemplo:
o Todo analista de sistemas é bacharel. (regra)
o Celso é analista de sistemas (declaração)
o Celso é bacharel (inferência)
23
Um axioma pode ser um conceito primitivo, como por exemplo, "analista", ou uma
descrição conceitual, tal como "todo analista é bacharel" ou "analista que trabalha no
DETRAN” (ALVES, 2009).
Inferência é um processo pelo qual, através de determinados dados, chega-se a
alguma conclusão (STRECKER, 2009).
A inferência cria adições lógicas a uma representação de conhecimento obtida
através de processos de classificação e realização. A classificação instancia a estrutura
de classes, permitindo conceitos e relacionamentos entre conceitos, tais como: pessoa é
um ser vivo, pai é um parente, casamento é um tipo de relacionamento, ou casamento é
um relacionamento do tipo simétrico. A realização oferece equidade, por exemplo, a
instância Pelé é a mesma instância de Edson Arantes do Nascimento (LINHALIS,
2009).
2.4 WEB SEMÂNTICA
A Web Semântica é definida como “uma extensão da Web atual, em que a informação é
dada com um significado bem definido, permitindo que computadores e pessoas
trabalhem em cooperação” BERNES-LEE (2001).
Para uma representação concreta desses significados, SOUZA & ALVARENGA
(2004) ressaltam a necessidade da utilização de padrões e linguagens. A ideia é que
esses padrões permitam que todos os usuários da Web obedeçam a determinadas regras
comuns e compartilhadas sobre como descrever a informação de modo a explicitar sua
semântica, e que esta possa ser “consumida” por outros usuários humanos ou não, de
maneira automática e não ambígua. Alguns desses padrões e linguagens são
apresentados na próxima seção.
2.5 LINGUAGENS PARA REPRESENTAÇÃO DE ONTOLOGIAS
Conforme citado anteriormente, linguagens foram desenvolvidas para permitir a
descrição semântica de informações. Estas linguagens fornecem mecanismos para
24
definir ontologias na Web, permitindo uma integração rica e interoperabilidade de dados
entre as comunidades descritivas (W3C, 2004). Em sua maioria, estas linguagens são
baseadas em XML (BRAY et al., 2008) (Extensible Markup Language), uma
metalinguagem de marcação de texto, baseada na linguagem SGML (Standard
Generalized Markup Language), utilizada para a definição de outras linguagens
(VIEIRA et al., 2010). A FIG. 2.2 ilustra um exemplo da utilização do XML:
<Jogador>
<nome>Edson Arantes do Nascimento</nome>
<data_nascimento>21/10/1940</data_nascimento>
<altura>1,72m</altura>
</Jogador>
FIG. 2.2: Exemplo de XML
Neste exemplo, é definido um elemento chamado Jogador, com três elementos
(nome, data_nascimento, altura). Assim, um texto qualquer ou um conjunto de dados,
pode ser descrito através dos elementos da XML. No entanto, para atender os requisitos
da Web semântica, que requer o uso de padrões, de modo a obter uma descrição mais
uniforme da informação, a W3C propôs o RDF.
Utilizando o XML como uma de suas sintaxes, o RDF é um arcabouço (framework)
para a descrição de recursos, cujo bloco básico de construção é uma tripla sujeitopropriedade-objeto, normalmente descrita como P(S, O). Ou seja, um dado sujeito S
tem uma propriedade P que assume como valor o objeto O (DECKER, et al. 2002). A
seguir são apresentados três exemplos de triplas utilizando esta notação para descrever
as seguintes declarações: “Celso, cujo nome completo é Celso Araujo Fontes, é aluno de
Ana, que leciona BD”:

nomeCompleto(Celso,”Celso Araujo Fontes”)

alunoDe(Celso, Ana)

leciona(Ana,BD)
Utilizando uma notação gráfica, estas triplas são representadas conforme a FIG. 2.3 a
seguir:
25
#Ana
alunoDe
#Celso
leciona
#BD
nomeCompleto
“Celso Araujo Fontes”
FIG. 2.3: Exemplo de triplas RDF
Utilizando o RDF em XML, um trecho destas triplas é expresso usando a seguinte
sintaxe:
<rdf:Description rdf:about="#Celso">
<nomeCompleto>Celso Araujo Fontes</nomeCompleto>
<alunoDe rdf:resource="#Ana" />
</rdf:Description>
FIG. 2.4: Representação em RDF/XML da FIG. 2.3
Apesar do RDF prover um modelo de dados que permite descrever sentenças sobre
domínios de interesse, um documento RDF não pode ser considerado uma ontologia
(FILHO e LÓSCIO, 2011). Os usuários de RDF também precisam de recursos para
definir os vocabulários (termos) que pretendam utilizar, além de outras estruturas que
permitam associar recursos do modelo de interesse. De forma a complementar o RDF,
foi criado o RDFS (RDF Schema) como mecanismo padrão utilizado para a definição de
classes e predicados, permitindo também inserir comentários, labels4, domínios e
ranges de predicados e outros recursos no nível de esquema.
O exemplo da FIG. 2.5, mostra como uma descrição RDFS pode enriquecer uma
descrição RDF, proporcionando classes (ClubeEsportivo e TimeDeFutebol) para uma
melhor definição das instância no RDF.
Através do predicado “rdf:type”, o recurso “#Botafogo” é definido como uma
instância da classe “TimeDeFutebol”, enquanto o predicado “rdfs:subClassOf” define
“TimeDe Futebol” como subclasse de “ClubeEsportivo”.
4
Português: Etiqueta. rdfs:label permite definir nomes amigáveis para leitura humana.
26
ClubeEsportivo
rdfs:subClassOf
TimeDeFutebol
rdf:type
#Botafogo
Esquema (RDFS)
Instância (RDF)
FIG. 2.5: Ilustração da Utilização do RDF com o RDFS
Outra linguagem recomendada pela W3C é a OWL (Web Ontology Language)
(MCGUINESS e HARMELEN, et al.). Essa linguagem adiciona mais recursos para
descrever propriedades e classes, dentre as quais, relações entre classes (interseção,
união, etc.) cardinalidades, igualdade, tipagem mais rica das propriedades,
características das propriedades (simetria, inversa, etc.), e as classes enumeradas
(MCGUINESS e HARMELEN, et al.).
Nestas linguagens faz-se uso de recursos como namespaces e URI para a
identificação de recursos e vocabulários. Estes conceitos são abordados na próxima
seção.
2.6 NAMESPACE E URIs
Namespace é um conceito abstrato que visa facilitar o reuso e/ou o uso combinado de
vocabulários nas descrições semânticas. Os Namespaces são utilizados na forma de
prefixos (e apelidos de prefixos) associados aos elementos de uma linguagem de
descrição de recursos (descritores), indicando assim o vocabulário (contexto) ao qual
cada elemento pertence (BORDINI, 2009). Cada prefixo é definido na forma de uma
URI (BRAY et al, 2009).
27
Nas linguagens ontológicas que utilizam o XML, os recursos utilizados numa tripla
são definidos por uma URI (OBITKO, 2007b). Uniform Resource Identifier (URI) é
uma sequência compacta de caracteres que identifica um recurso abstrato ou físico
(BERNERS-LEE, et al., 2005).
Uma URI pode ser classificada como um localizador, um nome, ou ambos. Uma
vez que a URI é única por definição, ela garante a proveniência do elemento associado,
e permite a convivência de elementos homônimos (BERNES-LEE, et al., 2005).
O reuso é facilitado, pois se existir um vocabulário bem definido, cujos termos se
aplicam ao domínio ou a parte do domínio no qual pretende-se descrever, é melhor
reutilizá-lo ao invés de reinventá-lo (BRAY, et al., 2009).
A seguir, é apresentado um exemplo de namespace, cujo apelido foi definido com
“ime”:
<ime:nome xmlns:ime="http://www.ime.eb.br/vocabulario"> (1)
Neste exemplo, através da propriedade “xmlns”, um prefixo (namespace) de
apelido “ime” é declarado para designar a URI “http://www.ime.eb.br/vocabulario”. O
apelido tem como objetivo simplificar a utilização de termos associados ao namespace
no decorrer do documento XML.
Como já dissemos, o objetivo da URI em (1) é garantir que o elemento nome é
único,
e
provém
de
um
vocabulário
definido
previamente
em
http://www.ime.eb.br/vocabulario. A especificação do namespace na forma de uma URI
não sugere que esse endereço seja utilizado para análise e recuperação de informações
(BRAY et al., 2009). Porém, uma boa prática é a utilização de namespace como uma
referência para uma página Web real, que contém informações sobre o vocabulário a ser
utilizado (BORDINI, 2009).
Os namespaces também são utilizados nos documentos escritos em XHTML para
informar ao navegador a utilização de novos vocabulários, possibilitando a adição de
novos elementos num documento web (PEMBERTON, et al., 2002).
No exemplo da FIG. 2.6, é ilustrado o uso de namespaces em um RDF. Neste
exemplo, é possível observar a utilização de quatro vocabulários: RDF, FOAF, FB e
IME, cada um tendo sido declarado no marcador (tag) pai do XML. Adicionalmente,
através da propriedade “xmlns”, foram declarados prefixos para os namespaces destes
28
vocabulários. Este exemplo também demonstra o reuso de outros vocabulários préexistentes, pois o predicado “homepage” é usado no FOAF e o objeto “fb:Manequinho”,
é um recurso presente na ontologia do Freebase5.
Seguindo a declaração feita na FIG. 2.5, é possível inferir, através de um
raciocinador, que todo TimeDeFutebol é um ClubeEsportivo, devido a declaração de
“subClass”, recurso provido pelo RDFS, e consequentemente, que Botafogo é um
ClubeEsportivo.
<rdf:RDF
xmlns:rdf
="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:foaf ="http://xmlns.com/foaf/0.1/"
xmlns:ime
="http://www.ime.eb.br/vocabularios/futebol#"
xmlns:fb
="http://rdf.freebase.com/ns/"
>
<ime:TimeDeFutebol rdf:ID="#Botafogo">
<ime:nome>Botafogo de Futebol e Regatas</ime:nome>
<ime:alcunha>Estrela Solitária</ime:alcunha>
<ime:temMascote rdf:resource="fb:Manequinho" />
<foaf:homepage
rdf:resource="http://www.botafogo.com.br"/>
</ime:TimeDeFutebol>
<ime:TimeDeFutebol rdf:ID="#Fogao">
<ime:temMascote rdf:resource="fb:Manequinho" />
</ime:TimeDeFutebol>
</rdf:RDF>
FIG. 2.6: Exemplo de RDF utilizando namespaces
Como citado anteriormente, a linguagem OWL trouxe recursos adicionais para
criação de ontologias para Web. Para ilustrar outro exemplo de inferência, suponha-se
que na ontologia seja adicionada a seguinte declaração S P O:
<ime:#temMascote> rdf:type owl:InverseFunctionalProperty
Através desta declaração, fica implícito que dois sujeitos (S1 e S2) que utilizem o
predicado (Pif) para um mesmo objeto (O), sendo aquele predicado definido como
5
http://www.freebase.com
29
“InverseFunctional”, é possível inferir que S1 e S2 são iguais, sendo este um caso de
sinonímia. Sendo assim, baseado no exemplo da FIG. 2.6, #Botafogo e #Fogao são
sujeitos sinônimos, pois ambos compartilham a mesma “mascote”. Isto pode ser
verificado em uma ferramenta de edição de ontologias, a exemplo de Protegé6, que
possui um conjunto de raciocinadores que permitem visualizar informações implícitas,
conforme o exemplo da FIG. 2.7 a seguir:
FIG. 2.7: Exemplo de Inferência na ferramenta Protegé.
Neste exemplo, é possível distinguir duas triplas distintas: <Fogão, temMascote,
manequinho> e <Botafogo, temMascote,
manequinho>. Como o predicado
temMascote foi definido como um predicado inverso funcional, o raciocinador pode
inferir que Fogão é o mesmo indivíduo que Botafogo (3).
2.7 CONSIDERAÇÕES FINAIS
Este capítulo apresentou a fundamentação teórica necessária ao desenvolvimento deste
trabalho, tais como Web semântica, e os principais padrões associados.
É válido ressaltar que a sintaxe de linguagens para representação de ontologias, a
exemplo de OWL e RDF, é de difícil manuseio por especialistas, carecendo de
6
Disponível em: <http://protege.stanford.edu/>
30
ferramentas com recursos visuais que auxiliem nas tarefas de criação e manipulação de
uma ontologia. Um exemplo desta ferramenta é o editor Protegé7, utilizado neste
trabalho para auxiliar nestas tarefas.
Todos estes recursos semânticos permitem uma profunda exploração das
informações por parte mecanismos de busca da web. Entretanto, nesse contexto, o
HTML é a linguagem utilizada para codificação dos documentos, carecendo ainda de
mecanismos auxiliares que permitam a utilização dos recursos semânticos neste
ambiente. Estes mecanismos são chamados de anotações semânticas, que permitem a
utilização de metadados associados a um vocabulário, para expressar o significado das
informações descritas nestes documentos.
A seguir será apresentada a fundamentação teórica sobre anotação semântica, bem
como seus padrões e ferramentas associadas.
7
Disponível em: <http://protege.stanford.edu/>
31
3 ANOTAÇÃO SEMÂNTICA E TECNOLOGIAS RELACIONADAS
O ambiente Web contém prioritariamente documentos escritos em HTML, uma
linguagem de marcação de texto interpretada pelos navegadores para apresentar
informações utilizando recursos visuais tais como tabelas, listas e links. Tais recursos
ajudam o entendimento humano das informações, facilitando a sua interpretação.
Entretanto, com o surgimento dos mecanismos de busca neste ambiente, percebeuse a carência de descritores nesta linguagem, que viabilizassem também uma melhor
recuperação das informações.
A anotação semântica surgiu da necessidade de se oferecer uma melhor descrição
das informações contidas nos textos. De modo geral, no ambiente web, a anotação se
faz necessária para descrever o conteúdo das páginas HTML. Atualmente, isso tem sido
feito através da extensão da linguagem de marcação HTML, de modo a permitir a
inclusão de metadados mais ricos, e que possam ser associados a vocabulários
específicos de domínio.
Neste capítulo serão apresentados os principais conceitos relacionados à anotação
semântica, bem como padrões de anotação e ferramentas relacionadas.
3.1 ANOTAÇÃO SEMÂNTICA
Encontramos na literatura algumas definições sobre o que vem a ser uma anotação
semântica. Segundo POPOV et al. (2003) apud MATOS (2008), anotação semântica é
um “esquema específico para geração e uso de metadados, possibilitando novos
métodos de acesso à informação”. ELLER (2008) salienta ainda que a anotação
semântica de um documento descreve o seu conteúdo pela associação entre trechos
relevantes do texto e conceitos descritos na ontologia. Para OREN et al. (2006), o
resultado de uma anotação A é uma tupla <as, ap, ao, ac>, onde:
o as é o dado (ou sujeito) sendo anotado
o ao é a anotação em si
o ap é o predicado que define o tipo de relacionamento entre o as e ao
o ac é o contexto em que a anotação é feita.
32
Na FIG. 3.1 podem ser observadas as anotações semânticas referentes a um texto
simples. As entidades ou termos presentes no texto são associados à sua definição
semântica, isto é, o que representam semanticamente no contexto de um domínio. No
exemplo em questão, considera-se que exista uma ontologia de domínio descrevendo
que a entidade IME está localizada no Rio de Janeiro, e que é parte integrante do
Ministério do Exército. De modo análogo, todos os demais termos identificados no
texto com alguma referência a uma ontologia de domínio são então anotados no
documento original, provendo uma descrição complementar mais rica.
FIG. 3.1: Representação visual de anotação semântica. Adaptado de OREN et al.
(2006).
Segundo OREN et al. (2006) existem três tipos de anotação: informal, formal e
ontológica:

Informal pode ser uma anotação escrita à mão no rodapé de um parágrafo em
livro ou numa folha, conforme FIG. 3.2 a seguir:
33
FIG. 3.2: Exemplo de Anotação Informal adaptado de (OREN, et al. 2006).

Formal é um tipo de anotação aqui denominado Af, onde o sujeito as e
predicado ap são URIs e ao é uma URI ou um literal.

Ontológica é uma anotação aqui denominada As, sendo esta considerada como
uma anotação formal Af, onde o predicado ap e o contexto ac são termos
ontológicos e o objeto ao entra em conformidade com a definição ontológica
definida para o ap.
É valido salientar que, no tocante ao sujeito (as) de uma anotação semântica do tipo
ontológica As, o sujeito pode ser expresso de quatro maneiras distintas: (1) anônimo,
isto é, um Blank Node, (2) como sendo o próprio documento, (3) um termo da
ontologia, e por último como uma (4) instância gerada na própria anotação.
O predicado de uma anotação (ap) é um termo oriundo de uma ontologia, sendo
este um predicado-objeto ou predicado-literal.
A anotação (ao) de uma As pode desempenhar o papel de um literal ou de um
objeto, sendo este um termo da ontologia, seja um individual ou uma classe para o caso
de anotações de definição de tipo, ou uma instância gerada na própria anotação.
Segundo OREN et al. (2006), o contexto da anotação (ac) pode indicar informações
quanto a sua proveniência, tais como quando a anotação foi feita ou sobre sua autoria,
34
ou mesmo dentro de qual escopo a anotação deve ser considerada válida. Se o escopo
válido refere-se a uma URI, então o contexto é considerado formalmente definido.
Seguindo este formalismo, uma anotação ontológica tal como “IME localizado em
Rio de Janeiro”, poderia ser representada da seguinte forma: o sujeito as é representado
pelo termo IME; o predicado ap pelo termo locatedIn; o objeto ao pelo termo Rio de
Janeiro; e o contexto ac pela URI, isto é, o vocabulário de origem do termo
IME.http://ime.eb.br/ontologia/, formando a tupla <IME, locatedIn, RioDeJaneiro,
http://ime.eb.br/ontologia/>.
Nos últimos anos, anotações semânticas começaram a ser introduzidas no contexto
da Web por meio de especificações. A seguir são apresentados alguns destes padrões de
anotação.
3.2 PADRÕES DE ANOTAÇÃO SEMÂNTICA
Recentemente, para permitir a anotação em documentos HTML, alguns autores como
(ADIDA et. al., 2010) e (HICKSON, 2010), propuseram especificações para anotação
semântica, tais como RDFa e Microdata. Ambas se caracterizam por utilizar um
conjunto de atributos oriundos de um vocabulário, seja “marcando” trechos de um
documento HTML ou XHTML, seja criando “triplas” similares às utilizadas em RDF.
No entanto, as primeiras iniciativas para “embutir” semântica em documentos
HTML sugiram muito antes, em 1995. Em sua segunda versão, o HTML 2.0 já
adicionava alguns mecanismos primitivos para marcação semântica como os atributos
rel, rev, class e a tag <meta> (BERNERS-LEE e CONNOLLY, 1995).
Em 1995, DOBSON e BURRILL propuseram o Lightweight databases, uma
extensão ao HTML que visava permitir que partes de um documento web pudessem ser
mapeados em um esquema de banco de dados através de um conjunto de tags. Essas
tags permitiam definir entidades dentro de um documento, rotular seções do corpo do
texto como atributos dessas entidades, e definir relações de uma entidade a entidades
externas. Entretanto, como esta abordagem fazia utilização do modelo relacional, não
era possível explicitar “semântica”, tais como hierarquia de classes, ou inferência,
declarando propriedades como transitivas ou reflexivas.
35
Posteriormente, visando a uma especificação mais voltada para a representação de
conhecimento em páginas web utilizando ontologias, LUKE et al. (1996) propuseram o
Simple HTML Ontology Extensions (SHOE), uma abordagem de anotação semântica
composta de um conjunto de tags que permite definir ontologias (esquemas) e instâncias
em documentos HTML. Além desses recursos, o SHOE também permite a declaração
explícita de inferência através de “cláusulas de Horn”.
Em 1997, surgiram os primeiros rascunhos do DC-HTML (Dublin Core in HTML),
utilizando as tags <meta> e <link>, permitindo a utilização de um conjunto de termos
oriundos do Dublin Core Metadata Element Set8.
Entretanto, com o surgimento do RDF em 1999, alguns autores propuseram
abordagens para “embutir” ou associar metadados similares aos descritos em RDF em
um documento (X)HTML (PALMER, 2002), dentre os quais estão o HyperRDF
(CONNOLLY, 2000), Augmented Metadata in XHTML (ALTHEIM e PALMER,
2001) e o XML notation (ALTHEIM, 2001).
Atualmente, quatro padrões são reconhecidos e utilizados pelas ferramentas de
análise e extração de anotações semânticas, a saber: o Microformat, o eRDF, o RDFa e
o Microdata, descritos mais detalhadamente a seguir.
3.2.1 Microformats
Microformats (Micro formatos) é um conjunto limitado de especificações utilizadas
para descrever algumas informações em documentos da internet (PEREIRA, 2005). O
padrão propõe uma solução simplificada de HTML “semântico”, tornando mais fácil a
publicação, indexação e extração de informações semiestruturadas na web, tais como
eventos de um calendário, informações de contato pessoal ou resenhas sobre um
produto (KHARE e ÇELIK, 2006). Para ilustrar sua utilização, a seguir, a FIG. 3.3
apresenta um exemplo de uma anotação utilizando a sua sintaxe. Neste exemplo, a
anotação descreve informações sobre um “cartão de visita” (vcard), onde o as é
subentendido como o próprio cartão em si, enquanto o contexto da anotação ac é
indicado também pela utilização da classe “vcard”, integrante da especificação hcard
(ÇELIK e SUDA, 2010).
8
http://dublincore.org/documents/1998/09/dces/#
36
<div class="vcard">
<span class="fn">Celso Fontes</span> <br/>
Meu email é: <span class="email"> [email protected]
</span> e
trabalho no <span class="org"> Detran RJ </span>
</div>
FIG. 3.3: Exemplo de uso do Microformats
O sujeito as possui três predicados ap: fn, email e org, com os objetos ao “Celso
Fontes”, “[email protected]” e “Detran RJ” respectivamente. É válido salientar que
os marcadores <div> e <span> não afetam visualmente o documento, servindo apenas
como um meio para declaração das anotações.
3.2.2 eRDF
eRDF (Embedded RDF) é um padrão de anotação proposto originalmente por Ian Davis
na lista de discussão de web semântica da W3C (DAVIS, 2005). O propósito do eRDF é
embutir um subconjunto do RDF em documentos HTML e XHTML com a utilização de
elementos ou atributos presentes nas especificações dos mesmos. Todo eRDF é um
RDF válido, mas nem todo RDF é um eRDF (TALIS, 2006).
Inspirado em alguns princípios do Microformats, o eRDF se diferencia do mesmo
ao permitir referência a vocabulários arbitrários na anotação de documentos HTML ou
XHTML (NOWACK, 2007). Para ilustrar sua utilização, a seguir, é apresentado um
exemplo de uma anotação utilizando a sua sintaxe (FIG. 3.4):
<link rel="schema.foaf" href="http://xmlns.com/foaf/0.1/">
<div class="-foaf-Person" id="#Celso">
Olá! Meu nome é
<span class="foaf.name">Celso Fontes</span>
Olá! Meu apelido é <span class="foaf-nick">Celsinho</span>
</div>
FIG. 3.4: Anotação Semântica em HTML utilizando a especificação eRDF
Neste exemplo é utilizado o marcador (tag) “link” para definir o contexto ac, isto é, o
vocabulário utilizado, sendo as propriedades HTML “href” para definir a localização
(URI) da especificação deste vocabulário “http://xmlns.com/foaf/0.1/” e “rel” para
definir um prefixo (foaf) para utilização do mesmo no decorrer do código. O atributo
“id” define o sujeito as da relação (#Celso), instanciado na própria anotação, enquanto
37
um predicado ap equivalente a “rdf:type” declarada no atributo class define o tipo do
sujeito, sendo este “foaf-Person”. Os predicados “foaf.name” e “foaf-nick” representam
os ap com os objetos-literais ao “Celso Fontes” e “Celsinho” respectivamente.
3.2.3 RDFa
RDFa é um padrão recomendado pela W3C para incorporar metadados ricos em uma
página web. Enquanto HTML e XHTML fornecem elementos para expressar a estrutura
de um documento (título, parágrafos, links), o RDFa fornece ainda um mecanismo para
expressar o significado de trechos de um documento descrevendo pessoas, lugares,
eventos etc. (ADIDA, 2010).
Para expressar as triplas em documentos web, o RDFa introduziu novos elementos
no XHTML, enquanto outros pré-existentes são utilizados com o objetivo similar aos
originais com apenas algumas mudanças de sintaxe.
A FIG. 3.5 ilustra um exemplo utilizando o RDFa, onde observa-se que foram
utilizados novos atributos (typeof, property, datatype e about) no HTML, tais como os
atributos: about para declarar o nome do sujeito as da relação; typeof para indicar o
“tipo” (classes Aluno e Professor) dos sujeitos a exemplo de “ime:Celso”, sendo este
um individual da ontologia; enquanto property e rel, utilizados para declarar o ap,
indicam o predicado-literal “temNome” e “temIdade” e o predicado-objeto
“orientadoPor”. Os objetos ao, constituintes do predicado ap “ime:orientadoPor”, são os
indivíduos anônimos do tipo “ime:Professor”. Estes por sua vez possuem o predicado
ap “ime:temNome” de valores literais “Ana Maria” e “Maria Cláudia”, respectivamente.
O contexto da anotação ac é demonstrado pela URI “http://ime.eb.br/vocabulario”,
declarada no atributo xmlns.
:
38
<div typeof="ime:Aluno" about="ime:Celso"
xmlns:ime="http://ime.eb.br/vocabulario">
Olá! Meu nome é <span property="ime:temNome">Celso
Fontes</span>, tenho
<span property="ime:idade" datatype="xsd:integer">25</span>
anos, sou orientado pelas professoras:
<span rel="ime:orientadoPor">
<div typeof="ime:Professor">
<span property="ime:temNome" about="[_:Ana]">Ana Maria
</span>
</div> e
<div typeof="ime:Professor">
<span property="ime:temNome">Maria Cláudia </span>
<span rel="ime:conhece" resource="[_:Ana]"></span>
</div>
</span>
</div>
FIG. 3.5: Anotação Semântica utilizando a especificação RDFa
3.2.4 HTML5 Microdata
Microdata é parte integrante da especificação do HTML 5 (versão 5), que
visa
proporcionar maior semântica ao código de um documento web (HUNT, 2009).
Esta especificação é resultado das investigações de Ian Hickson sobre os problemas
em que o RDFa consegue resolver em contrapartida a sua complexidade
(STUDHOLME, 2010).
A FIG. 3.6, ilustra um exemplo de uma anotação especificada em Microdata. Nesta
anotação, itemscope define o sujeito as da relação, enquanto o atributo itemid identifica
este sujeito como “Celso”. Este sujeito (as) é declarado como instância do tipo
“#Aluno”, valor declarado no atributo itemtype, cujo vocabulário onde este tipo é
declarado, isto é o contexto (ac) é a URI “http://ime.eb.br/ontologia”; o atributo
itemprop serve para indicar os predicados (ap) das triplas; e itemref permite criar uma
referência cruzada para indicar outros elementos da relação.
39
<div itemscope itemid="Celso" itemref="a b"
itemtype="http://ime.eb.br/ontologia#Aluno" ></div>
<p id="a">
Meu nome é: <span itemprop="
http://ime.eb.br/ontologia/nome">Celso</span> e
</p> sou aluno da professora
<div id="b" itemprop="http://ime.eb.br/ontologia/alunoDe" itemscope>
<span itemprop="http://ime.eb.br/ontologia/nome">Maria</span>,
também conhecida como:
<span itemprop="http://ime.eb.br/ontologia/apelido">Yoko</span>
</div>
FIG. 3.6: Anotação Semântica utilizando a especificação Microdata
O predicado ap “alunoDe” tem como objeto ao um sujeito as anônimo (blanknode),
que por sua vez possui dois predicados ap: “nome” e “apelido”, com os objetos ao
literais “Maria” e “Yoko”, respectivamente.
3.2.5 Análise Comparativa
Para avaliar as especificações de anotação semântica, algumas características
importantes foram levadas em consideração no que diz respeito ao suporte a: (i)
vocabulários arbitrários, que visam permitir o uso de vocabulários customizados; (ii)
blank nodes, que permitem definir recursos anônimos nas triplas atuando como sujeito
da anotação (as) ou objeto da anotação (ao) das mesmas; (iii) literais tipados, para
especificar o tipo dos dados (data, número, texto), auxiliando na leitura das informações
por software; (iv) prefixos e namespaces, a exemplo dos utilizados no XML para
facilitar a utilização dos vocabulários; (v) referência cruzada entre nodos, para
permitir a anotação em documentos, previamente não estruturados cuja natureza
complexa do texto pode inviabilizar uma estrutura tradicional de árvore utilizada em
documentos XML; e, finalmente, se tem o cunho (vi) oficial da W3C, como órgão
regulamentador das principais tecnologias da web.
A partir do estudo dos padrões de anotação semântica, é possível realizar uma
análise comparativa entre eles, levando em consideração as principais características
apresentadas anteriormente.
40
No âmbito do reuso de ontologias, o Microformats utiliza apenas especificações
(vocabulários) pré-existentes criados pelos mantenedores do formato. Em contrapartida,
os padrões eRDF, RDFa e Microdata permitem referenciar ontologias arbitrárias,
suprindo tal deficiência do Microformats (ADIDA, 2008).
O recurso de blank nodes é suportado implicitamente e explicitamente apenas pelo
RDFa. No caso do eRDF, para simular um blank node é recomendável a utilização de
uma referência ao próprio documento anotado (DAVIS, 2005).
A declaração explícita de tipos para os literais é oferecida apenas pelo RDFa,
destacando-se ainda por este ser o único a suportar literais XML.
No tocante aos formatos apoiados pela W3C, o RDFa é uma especificação
recomendada pelo W3C, enquanto o Microdata ainda é muito imaturo, tendo ainda o
status de “Working Drafts” (rascunhos).
No item referente a prefixos e namespaces, observa-se que os padrões eRDF, RDFa
e Microdata utilizam estes recursos para referenciar vocabulários, com o adendo de que
o eRDF possui duas notações para a utilização de namespaces: “esquema.recurso” e
“esquema-recurso”. Essas notações visam à compatibilidade com as utilizadas pelo CSS
e pelo projeto Dublin Core (DAVIS, 2006).
Entretanto, o recurso de referência cruzada entre nodos é unicamente oferecido pelo
Microdata.
Pelo fato do RDFa dispor de alguns recursos mais complexos tais como: blank
nodes; uso de vocabulários arbitrários; suporte a literais tipados; prefixos e namespaces,
além de uma ampla adoção por grandes organizações, a exemplo da O’Reilly
(SUMMERS, 2009), BestBuy (MOHAN, 2009), e o site da Casa Branca (HOOVER,
2009), este padrão foi considerado como formato adequado para a implementação de
anotações e meta anotações na ferramenta a ser desenvolvida em consequência deste
estudo. Uma revisão mais abrangente dessas especificações pode ser encontrada em
(FONTES, 2011a).
A seguir é apresentada uma tabela (TAB. 3.1) para melhor visualização da análise
comparativa:
41
TAB. 3.1: Tabela comparativa dos padrões de anotação semântica
Microformats
eRDF
RDFa
Microdata
i
Uso de
vocabulários
customizados
NÃO
SIM
SIM
SIM
ii
Suporte ao Blank
Node
NÃO
NÃO
SIM
SIM
Suporte a Literal
simples
SIM
SIM
SIM
SIM
Suporte a Literal
XML
NÃO
NÃO
SIM
NÃO
Suporte à Literal
tipada
SIM
NÃO
SIM
SIM
NÃO
SIM
SIM
NÃO
iii
Utilização de
iii prefixos e
namespaces
v
Referência
cruzada entre nós
NÃO
NÃO
NÃO
SIM
vi
Suporte Oficial da
NÃO
W3C
NÃO
SIM
SIM
O uso de linguagens de marcação para desenvolver anotações semânticas está
diretamente ligado à ferramentas que auxiliem ou automatizem o processo de anotar
documentos. A próxima seção apresenta algumas ferramentas desenvolvidas para prover
soluções para anotação semântica em documentos, utilizando alguns dos formatos
descritos neste capítulo.
3.3 FERRAMENTAS DE ANOTAÇÃO SEMÂNTICA
Nos últimos anos, diversas ferramentas de anotação semântica foram desenvolvidas,
podendo ser categorizadas em dois tipos de plataformas: desktop, ambiente tradicional
utilizado em computadores, onde os programas são instalados localmente na máquina
do usuário, e web, onde os aplicativos são acessados remotamente em um navegador
web, sem a necessidade da instalação do programa na máquina do usuário.
42
Na categoria desktop, encontram-se: GATE (CUNNINGHAM, 2003), Annotea
(KOIVUNEN, 2005) e SMORE (KALYANPUR, 2009), detalhadas a seguir:
A ferramenta GATE (FIG. 3.7) apresenta-se como uma solução de Engenharia
Linguística que oferece um conjunto de componentes para as mais diversas tarefas de
processamento de linguagem natural. Dentre estes, destaca-se o OntoRoot Gazetteer,
um tipo de um dicionário criado dinamicamente em conjunto com outros componentes
do GATE, capazes de produzir anotações semânticas sobre o conteúdo de um
documento utilizando uma ontologia OWL ou RDF (CUNNINGHAM, 2003).
FIG. 3.7: Interface do GATE
Annotea (KOIVUNEN, 2005) é um sistema colaborativo onde as anotações são
criadas manualmente por usuários, sendo estas armazenadas em um ou mais servidores
de anotações. Utiliza-se do RDF como esquema para descrever suas anotações e o
XPointer para especificar em que parte do documento anotado se encontram as mesmas
(KAHAN e KOIVUNEN, 2002). Umas das implementações do Annotea é o Amaya,
visualizado na FIG. 3.8 a seguir:
43
FIG. 3.8: Interface do Amaya
SMORE (KALYANPUR, 2009) é uma ferramenta que provê recursos visuais para
criação e manipulação de ontologias RDF e OWL, além de possibilitar a criação de
documentos web sem a necessidade da escrita de códigos. Sua anotação é representada
em RDF/XML, cujo código é gerado pela ferramenta no início do próprio código
HTML, como uma espécie de cabeçalho para ser processado pelas ferramentas de busca
semântica (ELLER, 2009). A FIG. 3.9 a seguir mostra a interface principal do SMORE
com o um texto anotado na área principal, e com destaque para uma anotação de um
termo da ontologia, neste exemplo referenciado pelo termo #Samuel.
FIG. 3.9: Interface do SMORE e um trecho de anotação em RDF gerada pela ferramenta
44
Na categoria de ferramentas de Serviços Web, estão: OpenCalais (OPENCALAIS,
2009); Zemanta (TORI, 2008); Ontos (ONTOS, 2010) e TextWise (TEXTWISE,
2010). Todas estas se caracterizam pelo enriquecimento do conteúdo de páginas web
através de sugestões (anotações) relacionadas ao mesmo. Estas sugestões são frutos de
bases de conhecimento como DBpedia9, GeoNames10, IMDB11 e Musibrainz12
(ZEMANTA, 2010) (THOMAS, 2009).
Seus recursos são comumente disponibilizados em forma de plugins para
aplicativos, bem como disponibiliza navegadores e API (Application programming
interface) para desenvolvedores.
3.3.1 Análise Comparativa
Para avaliar as ferramentas de anotação semântica, algumas características importantes
foram levadas em consideração, no que diz respeito a: (i) forma de representação das
anotações, que podem ser intrusivas, quando as anotações são armazenadas no
documento original, ou não intrusivas, quando anotações são armazenadas em
repositórios de anotações que apontam para os documentos que passaram pelo processo
de anotação; (ii) formato de armazenamento das anotações, relativo aos formatos ou
mecanismos utilizados pela ferramenta para representar fisicamente a anotação; (iii)
referência à ontologia, que descreve o meio utilizado pela ferramenta para manter uma
referência entre o documento e a ontologia usada para anotá-lo; (iv) referência entre o
termo e a anotação, que refere-se ao artifício utilizado para manter a correlação entre a
localização do termo sujeito da anotação (as) no documento e o seu respectivo contexto
(ac) de origem; (v) possibilidade de uso de ontologias customizadas, que determina se
a ferramenta permite o uso de ontologias arbitrárias; (vi) grau de automação da
anotação, que aponta como é feita a anotação, isto é, de forma automática, quando a
anotação é feita sem interferência do usuário; semiautomática, quando o usuário
interfere no processo de anotação ou de forma manual, quando o processo de anotação é
completamente feita pelo usuário; e, por fim, (vii) plataforma, refere-se ao ambiente
9
http://dbpedia.org/
http://www.geonames.org/
11
http://www.imdb.com/
12
http://musicbrainz.org/
10
45
na qual a ferramenta é disponibilizada, seja da maneira tradicional em “desktop” ou
Web, ou carecendo de acesso à internet para uso da mesma.
Enquanto a maioria das ferramentas utiliza XML, RDF ou JSON (CROCKFORD,
2006) para expressar anotações, o OpenCalais se destaca pelo uso de um padrão voltado
para web: o Microformat. Quanto ao uso de vocabulários, apenas o GATE e SMORE
permitem o seu uso, enquanto as demais ferramentas utilizam um conjunto de
vocabulários próprios, bem limitados. Além disso, a maioria utiliza o processo
automático de anotação, e apenas o SMORE se utiliza de um processo manual.
Sobre a utilização de referências entre o termos e anotações, as ferramentas
Annotea, GATE e OpenCalais dispõem deste recurso para realizar suas anotações.
Após um estudo detalhado dessas tecnologias (FONTES et al., 2011b), observou-se
que nenhuma delas se mostrou eficiente para anotar automaticamente documentos em
um dos padrões de anotação semântica voltada para Web com o auxílio de um
vocabulário customizado.
A seguir é apresentada uma tabela (TAB. 3.2) resumindo o estudo comparativo das
ferramentas de anotação semântica:
TAB. 3.2: Tabela comparativa das ferramentas de anotação semântica
I
Ii
iii
Iv
Representação Armazenamento
da Anotação
da Anotação
Referência
com a
Ontologia
Referência
Entrada de
entre termo
Ontologias
e Anotação Customizadas
v
Vi
Não intrusiva
RDF/XML
Xpointer
SIM
Híbrida
Banco de
dados e XML
URIS
OpenCalais Não intrusiva
RDF/XML,
JSON,
Microformat e
SimpleFormat
Zemanta
Não intrusiva
SMORE
Vii
Tipo
Plataforma
SIM
Manual
Desktop
SIM
SIM
Híbrida
Desktop
URIS
SIM
NÃO
Automática
Web
XML, JSON,
WNJSON,
RDF/XML
URL
NÃO
NÃO
Automática
Web
Não intrusiva
RDF/XML
URIS
NÃO
SIM
Manual
Desktop
Ontos
Não intrusiva
JSON
???
???
SIM
Automática
Web
TextWise
Não intrusiva
JSON, XML e
RDF
URI
SIM
NÃO
Automática
Web
Annotea
GATE
46
Em literatura recente, alguns autores propuseram trabalhos que facilitam o processo
de anotação semântica em documentos de domínios específicos. Como exemplo pode-se
citar o trabalho de ELLER (2008), que desenvolveu um sistema de anotação semântica
em documentos relacionados a processos jurídicos utilizando a ferramenta SMORE,
com auxílio de uma ontologia em RDF. Já em (HEPP et al., 2009), é utilizado um
processo que converte automaticamente uma ontologia OWL ou RDF em anotações
RDFa para serem incorporadas manualmente em trechos de documentos HTML.
Percebe-se também que a maioria das ferramentas utiliza a abordagem nãointrusiva que, apesar de vantagens como organização e imutabilidade do documento,
não possui uma grande vantagem da abordagem intrusiva: as anotações semânticas se
tornam auto contidas no documento, evitando possíveis perdas de referência e a
necessidade de criação de arquivo separado.
No tocante à inferência, também é perceptível a pouca exploração dos dados
implícitos nas ontologias que podem ser obtidos através do auxílio de raciocinadores. O
uso de raciocinadores foi observado apenas nas ferramentas GATE e SMORE. Maiores
detalhes podem ser obtidos em (FONTES et. al.,2011).
Mediante as ponderações feitas sobre estas ferramentas e trabalhos pesquisados,
nosso foco consiste em desenvolver uma ferramenta que utilize um dos padrões abertos
mantidos pela W3C, permitindo tanto anotação manual como automática e
possibilitando ainda a capacidade de explorar os conhecimentos implícitos sobre cada
conceito de uma ontologia, de modo a enriquecer as anotações semânticas.
3.4 FERRAMENTAS DE RECUPERAÇÃO SEMÂNTICA
Para realizar a análise sobre as anotações semânticas nos documentos Web, foram
desenvolvidas ferramentas de recuperação semântica. Estas ferramentas auxiliam os
desenvolvedores na tarefa de verificação e validação dos documentos anotados. Uma
delas é o RDFa Developer (POZUECO et al., 2010), disponibilizada em forma de uma
extensão para o navegador web Firefox, que permite a visualização de triplas RDFa,
além de consultas utilizando a linguagem SPARQL. Conforme ilustrado na FIG. 3.10,
um plugin é ativado na parte inferior do navegador, mostrando as triplas extraídas de
uma página com anotações em RDFa.
47
FIG. 3.10: Ferramenta RDFa Developer no navegador Firefox
No ambiente de aplicações web, buscadores tradicionais tais como Yahoo e Google
que buscam ampliar a funcionalidade de seus recursos orientados para a web semântica,
disponibilizaram as ferramentas Google RichSnippets Tools13 e Yahoo! Object Finder14,
que permitem a visualização dos objetos estruturados presentes nos documentos web
anotados. Os dados apresentados nestas ferramentas refletem-se nos snippets, que são
amostras (ou recortes) do conteúdo das páginas encontradas em uma determinada busca
(GOEL et al., 2009). A FIG. 3.11 ilustra um exemplo de tal mecanismo, que referencia
conteúdo semanticamente anotado de uma página pessoal de uma rede social, onde uma
lista de “amigos” representa as anotações utilizando o predicado “xfn:friend” do
vocabulário XFN (XHTML Friends Network)15.
Ainda no ambiente web, a ferramenta Sindice Web Data Inspector16 se destaca por
oferecer uma gama de recursos, a exemplo da visualização das anotações em forma de
grafo.
13
http://www.google.com/webmasters/tools/richsnippets
http://developer.search.yahoo.com/help/objectfinder
15
http://vocab.sindice.com/xfn#friend
16
http://sindice.com/developers/inspector
14
48
FIG. 3.11: Recorte enriquecido de anotações e sua pagina de origem
3.5 CONSIDERAÇÕES FINAIS
Este capítulo apresentou a fundamentação teórica relacionada à anotação semântica,
bem como os principais padrões e ferramentas associados à realização dessa tarefa.
Dentre os padrões apresentados, foram observadas as vantagens apresentadas pelo
RDFa e pelo Microdata em relação aos demais. Entretanto, o primeiro ainda se destaca,
devido a sua maior utilização na Web e maturidade, além do que, vale salientar, que
todas as ferramentas de recuperação apresentadas neste trabalho processam o RDFa.
Dentre as ferramentas apresentadas, verificou-se a dificuldade de manipulação por
parte das ferramentas manuais, e no caso das automáticas, uma falta de compatibilidade
com os padrões de anotação semânticas mais atuais. No âmbito da inferência, verificouse também que apenas algumas ferramentas fazem uso de mecanismo de raciocínio,
explorando muito pouco o uso de relações implícitas.
Em função destas limitações, no próximo capítulo é proposta uma arquitetura para
Anotação Semântica automática de documentos com base em ontologias. Sua maior
49
contribuição é permitir gerar anotações sobre os conceitos presentes no documento a
partir do conhecimento explícito e implícito representado por uma ontologia de
domínio, com auxílio de um raciocinador.
50
4 ARQUITETURA PARA O DESENVOLVIMENTO DE UM SISTEMA DE
ANOTAÇÃO AUTOMÁTICA EM DOCUMENTOS
Conforme observado no capítulo anterior, as ferramentas apresentadas não oferecem em
sua totalidade as características desejáveis para um sistema de anotação semântica, tais
como: uso da exploração das informações implícitas, utilização de padrões de anotação
abertos, também usados por ferramentas de extração e busca semântica na web, uso de
ontologias arbitrárias e utilização da abordagem de anotação intrusiva.
Neste trabalho pretendemos focar nestas características e melhorar a tarefa de
anotação, propondo uma arquitetura, cujos componentes servirão de base para a
construção de um sistema para anotar de forma automática termos de documentos,
explorando melhor os recursos que uma ontologia oferece para otimizar a recuperação
da informação. Este capítulo apresenta e descreve essa arquitetura, detalhando ao longo
dessas seções, os módulos e componentes que a constituem. Através de um exemplo,
serão descritos o funcionamento desses módulos, bem como os principais algoritmos
para descrever seus procedimentos.
4.1 ARQUITETURA PROPOSTA
Tendo em vista a dificuldade e limitações oferecidas pelas ferramentas de anotação,
propomos uma abordagem mais eficaz, baseada em ontologias de domínio. Essa
abordagem, numa descrição resumida, compara termos do documento com os conceitos
de uma ontologia, anotando-os automaticamente, além de explorar os conhecimentos
implícitos sobre cada um destes conceitos.
A FIG. 4.1 apresenta a arquitetura proposta para o sistema de anotação automática,
que é descrita brevemente a seguir.
O módulo de Análise e Comparação é responsável pela primeira etapa do processo
de anotação, que identifica as semelhanças entre os termos do texto (documento não
estruturado) e os termos da ontologia de domínio (documento ontologia). Este módulo
interage com o componente Raciocinador, a fim de identificar as correspondências
51
entre termos, tais como termos e propriedades equivalentes, isto é, toda informação que
pode ser inferida de uma ontologia.
O módulo Anotador é o único que realmente anota o texto, inserindo segmentos de
anotação no documento de texto original (documento anotado).
Em paralelo, o módulo Meta-Anotador recupera anotações adicionais que devem
ser anexadas ao documento original. Essas anotações correspondem às informações que
explicam como algumas anotações foram inferidas através do componente
Raciocinador.
O componente Analisador interage com os outros módulos de prestação de
serviços de análise e manipulação de ontologias.
Finalmente, o documento anotado é construído a partir das ações do Anotador e
Meta-Anotador, e podem ser disponibilizados na Web para usuários e agentes
inteligentes.
FIG. 4.1: Arquitetura do Sistema de Anotação Semântica de Documentos
As subseções a seguir fornecem mais detalhes sobre as funcionalidades destes módulos.
A fim de facilitar a compreensão, usamos a terminologia RDF (KLYNE et al., 2003),
tais como classe, faixa de domínio e predicado, apesar desta abordagem não se restringir
apenas a essa linguagem de representação de ontologias.
4.2 FUNCIONALIDADES DOS COMPONENTES DA ARQUITETURA
O sistema de anotação automática tem como objetivo prover anotações semânticas
através de um conjunto de descritores, relacionando os termos do documento a
conceitos da ontologia.
52
Para exemplificar a funcionalidade de cada módulo no contexto da arquitetura
proposta, serão utilizados como itens de entrada, um documento textual e o recorte de
uma ontologia (FIG. 4.2), ambos contextualizando um domínio educacional,
envolvendo professores e aluno.
Considere o texto "Celso é orientado pelas Professoras Yoko e Ana Maria", e o
pequeno recorte de uma ontologia de domínio, mostrado na FIG. 4.2. Neste exemplo,
Celso, Yoko e Ana Maria são termos elegíveis para anotação. De acordo com a
definição de anotação ontológica formulada na seção 3.2, onde uma anotação é expressa
através da tupla (as, ap, ao, ac), os termos elegíveis equivalem ao componente as
(sujeito) dessa tupla. Da mesma forma, o objeto anotação (ao) e o predicado da
anotação (ap) correspondem às informações adicionais, isto é, às relações entre as e ao,
todas derivadas de uma ontologia, que neste trabalho consideramos como o contexto
da anotação (ac). Uma vez que os termos elegíveis são identificados, o módulo
Anotador é ativado, a fim de realizar a anotação.
FIG. 4.2: Recorte de uma ontologia sobre professores e aluno
A seguir os módulos da arquitetura são descritos segundo suas principais
funcionalidades.

Analise e Comparação: o principal objetivo deste módulo é identificar os termos
elegíveis ($as) do documento ($documento) que podem ser anotados. Cada
conceito da ontologia pode possuir um conjunto de predicados e objetos
[$ap,$ao]. Todo conceito ($recurso) da ontologia (via iteração com o componente
de Análise) será comparado com os termos presentes no texto e, em caso de
igualdade ($localizou == verdadeiro), o termo será marcado para anotação com
referência a URI ($ac) do seu conceito equivalente na ontologia. Este
53
procedimento é ilustrado pela FIG. 4.3 a seguir e por um algoritmo, apresentado
na FIG. 4.4. Note que o algoritmo envolve uma chamada ao procedimento anotar,
que corresponde a outro módulo da arquitetura.
FIG. 4.3: Ilustração do funcionamento do módulo de Análise e Comparação
Predicado $ap;
Objeto
$ao;
Contexto $ac;
$ac = getURIdaOntologia($ontologia);
para cada ($recursoDaOntologia em $ontologia) faça
$localizou = buscar_e_comparar($recursoDaOntologia, $documento);
se ($localizou == verdadeiro) então
$anotacoes[ap,ao] =
Analisador.recuperarHierarquias($recursoDaOntologia);
$anotacoes[ap,ao] +=
Analisador.recuperarRelacoes($recursoDaOntologia);
$anotacoes[ap,ao] +=
Raciocinador.recuperarHierarquias($recursoDaOntologia);
$anotacoes[ap,ao] +=
Raciocinador.recuperarRelacoes($recursoDaOntologia);
anotar($anotações, $recursoDaOntologia, $documento);
fim
FIG. 4.4: Algoritmo do procedimento de Anotação Semântica
54
Neste exemplo, foram identificados os termos elegíveis “Celso”, “Maria Claudia” e
“Ana Maria” no texto do documento de entrada com instâncias da ontologia.
O procedimento anotar é parte integrante do próximo módulo, o Anotador.

Anotador: Assim que o módulo Anotador é ativado, para cada termo elegível (as)
identificado pelo módulo anterior, será realizada uma análise para a recuperação dos
relacionamentos explícitos e implícitos na ontologia, propostos respectivamente
pelos procedimentos recuperarHierarquias() e recuperarRelacoes(), através
dos componentes Analisador e Raciocinador.
FIG. 4.5: Ilustração do funcionamento do Anotador que gera anotações para o termo
“Celso”.
No exemplo da FIG. 4.3, após a identificação de um sujeito de anotação (no
exemplo, o termo “Celso”), o Analisador identifica na ontologia duas relações
explícitas sobre esses sujeitos, que correspondem a dois predicados de anotação:
orientadoPor Ana_Maria e orientadoPor Maria_Claudia. Em seguida, o componente
Raciocionador entra em ação e extrai duas relações implícitas: éAluno e orientadoPor
Yoko, que correspondem a mais dois outros predicados de anotação. Assim, para um
único sujeito, foram geradas as quatro anotações indicadas na FIG. 4.5.
55
Seguindo o formalismo proposto por OREN et al. (2006), as anotações sobre o
termo em questão são inseridas intrusivamente no documento sob a forma de tuplas do
tipo <ai,as,ap,ao,ac>, onde é acrescentado o elemento ai que é uma identificação
numérica da anotação.
O texto Anotado é apresentado na FIG. 4.6. Neste exemplo, o elemento ac foi
omitido deste exemplo, já que todas as tuplas pertencem ao mesmo contexto, conforme
ilustrado na FIG. 4.2. Os predicados (ap) descritos por “is-a”17 representam uma
categorização entre o sujeito (as) e o tipo em (ao).
Celso
<1,”Celso”,is-a,#Pessoa>
<2,”Celso”,orientado
por,#Ana_Maria>
<3,”Celso”,orientadoPor,#Maria_Claudia> orientado por Maria Claudia e
Ana Maria <8,”Ana Maria”,colaboraCom, #LNCC>.
FIG. 4.6: Documento anotado
Em seguida, são anotadas as relações inferidas pelo módulo Raciocinador,
conforme descrito na FIG. 4.7 a seguir:
Celso <1,”Celso”,is-a,#Pessoa>
<3,”Celso”,orientado
por,#Yoko>
orientado
<2,”Celso”,orientado por,#Ana_Maria>
por,#Maria_Claudia>
por
Maria
Claudia
<4,”Celso”,orientado
<5,”Maria
Claudia”,is-
a,#Professor> e Ana Maria <7,”Ana_Maria”,type-of,#Professor> <8,”Ana
Maria”,colaboraCom,
#LNCC>.
FIG. 4.7: Anotação Enriquecida com informações implícitas
O próximo passo é explicar as anotações inferidas através de meta-anotações, tarefa
a ser realizada pelo módulo Meta-Anotador. O resultado é o mesmo documento
enriquecido de anotações semânticas.

Meta-Anotador: Através da utilização de inferência, é possível tornar explícito um
conjunto de relações ou informações implícitas sobre diversos conceitos da
ontologia. Estas informações, por sua vez, podem ser resultados de diversas relações
explícitas e axiomas lógicos, gerando a necessidade de um mecanismo que possa
17
“is-a” é um predicado equivalente ao “rdfs:type” do RDFS, designando uma relação de tipo e supertipo
entre o sujeito (as) e objeto (ao)
56
descrever as relações causadoras destas informações inferidas. A esse conjunto de
declarações de uma relação inferida denominamos de meta-anotações, isto é, um
conjunto de anotações sobre uma anotação.
A FIG. 4.8 a seguir ilustra um exemplo de meta-anotação referente à anotação
(saída) descrita na FIG. 4.7:
referenceTo
“4”
#Yoko
_:annotation1
sourceOf
sameAs
orientadoPor
#Celso
#Maria_
Claudia
FIG. 4.8: Representação gráfica da Meta-Anotação
Este exemplo declara que a anotação identificada pelo <ai> “4” é fonte de uma
inferência, sendo o resultado de duas triplas explícitas: #Celso orientadoPor
#Maria_Claudia e #Maria_Claudia sameAs #Yoko.
O texto anotado com a meta-anotação é representado na FIG. 4.9:
<4, “Annotation Equality SameIndividual”>
<”celso”,orientadoPor,”#Maria_Claudia”>
<”#Maria_Claudia”,sameAs,”#Yoko”>
Celso <1,”Celso”,is-a,#Pessoa>
<3,”Celso”,orientado
por,#Yoko>
orientado
<2,”Celso”,orientado por,#Ana_Maria>
por,#Maria_Claudia>
por
Maria
Claudia
<4,”Celso”,orientado
<5,”Maria
Claudia”,is-
a,#Professor> e Ana Maria <7,”Ana_Maria”,type-of,#Professor> <8,”Ana
Maria”,colaboraCom, #LNCC>.
FIG. 4.9: Documento com a Anotação + Meta-Anotação
Na próxima seção será apresentada uma especificação das meta-anotações, bem
como uma taxonomia das mesmas:
57
4.3 ESPECIFICAÇÃO DA META-ANOTAÇÃO
Como definido anteriormente, através da utilização de inferência é possível tornar
explícito um conjunto de informações da ontologia. Estas informações, por sua vez,
podem ser resultados de diversas relações explícitas e axiomas lógicos, gerando a
necessidade de um mecanismo que possa descrever as relações causadoras destas
informações inferidas.
Cada meta-anotação descreve a origem de uma anotação original. A ideia é explicar
que a partir de declarações expressas em uma linguagem de representação do
conhecimento, foi possível inferir uma dada anotação. O papel da meta-anotação
envolve descrever e categorizar as informações sobre as declarações que foram
utilizadas para esta inferência.
No caso específico da linguagem OWL, estas declarações podem ser classificadas
segundo uma taxonomia. Seguindo essa mesma diretriz, a taxonomia de MetaAnotações (FIG. 4.10) foi baseada em um conjunto de classes do OWLAPI, e nas
especificações oficiais da OWL (MCGUINNESS e HARMELEN, 2004) e OWL2
(MOTIK, et al., 2009).
FIG. 4.10: Taxonomia de tipos de declarações que geram as meta-anotações
58
Cada meta-anotação referencia uma anotação inferida, isto é, uma tupla
<ai,as,ap,ao,ac>, seguindo o formalismo adotado anteriormente. A meta-anotação
completa é formada por várias declarações. Primeiramente, uma declaração que
corresponde à meta-anotação propriamente dita, uma tupla do tipo <ar,ao1, ..., aon>,
onde ar indica a identificação da anotação de referência (ai na tupla da anotação
inferida), e aoi , 1 <= i <= n, que indica as categorias das declarações usadas pelo
mecanismo de inferência para gerar a anotação inferida. A segunda parte da metaanotação corresponde às declarações explícitas geradoras, extraídas da ontologia,
formadas por triplas <as, ap, recurso> que serviram de base para a inferência.
temSite
jogouNo
SantosFC
owl:sameas
http://www.santofc.com
#Edson_Arantes
#Pelé
rdfs:domain
campeaoDa
Type-of
#Copa6
2
campeaoDa
temSite
campeaoDa
JogadorDeFutebol
#Copa70
AlvinegroPraiano
atuouEm
allValuesFrom
casouCom
rdfs:subclassOf
#Copa58
Type-of
FilmeEsportivo
#Assíria
Desportista
ClubeDeFutebol
Brasileiro
_:bn
Os_Trapalhões
e_o_Rei_do_Futebol
unionOf
ReiDaBola
Internacional
campeaoDaCopa
3
SelecaoBrasileira
jogouNa
_:bn
Brasileira
nacionalidade
JogadorDaSelecao
Canarinho
#Nadine
temProgenitor
differentFrom
#Neyma
#Neymar
SantosSilva
r
#Neymar
Pai
FIG. 4.11: Ontologia utilizada nos exemplos de meta anotação
Cada meta-anotação pode ter sido baseada em várias categorias, variando de acordo
com o número de declarações. A seguir, apresentamos cada categoria e seus respectivos
exemplos,
com
base
na
59
ontologia
apresentada
na
temSite
jogouNo
SantosFC
owl:sameas
http://www.santofc.com
#Edson_Arantes
#Pelé
rdfs:domain
campeaoDa
Type-of
#Copa6
2
campeaoDa
temSite
campeaoDa
JogadorDeFutebol
#Copa70
AlvinegroPraiano
atuouEm
allValuesFrom
casouCom
rdfs:subclassOf
#Copa58
Type-of
FilmeEsportivo
#Assíria
Desportista
ClubeDeFutebol
Brasileiro
_:bn
Os_Trapalhões
e_o_Rei_do_Futebol
unionOf
ReiDaBola
Internacional
campeaoDaCopa
3
SelecaoBrasileira
jogouNa
_:bn
Brasileira
nacionalidade
JogadorDaSelecao
Canarinho
#Nadine
temProgenitor
#Neyma
r
differentFrom
#Neymar
SantosSilva
#Neymar
Pai
FIG. 4.11.

Equality: são relações de igualdade entre propriedades-propriedades e
indivíduos-indivíduos.
Declarações
(meta-anotação)
<1, "Annotation Equality SameIndividual">,
<”#Edson_Arantes”,jogouNo,”#SantosFC”>,
<”#Edson_Arantes”,sameAs,”#Pelé”>
Anotação
Inferida

<1,”#Pelé”,jogouNo,”#SantosFC”>
Inequality: são relações de diferenças entre propriedades-propriedades e
indivíduos-indivíduos.
60
Declarações
(meta anotação)
<2, "Annotation Inequality DifferentIndividuals" >
<”#Pessoa”,rdf:subclass>
<”owl:cardinality, “2”>
<onProperty, “temProgenitor”>
<”#Neymar”,temProgenitor,”#Nadine”>
<”#Neymar”,temProgenitor,”#NeymarPai”>
<”#Neymar”,temProgenitor,”#NeymarDaSilvaSantos”>
<”#Nadine”,differentFrom,”#NeymarPai”>
<”#Nadine”,differentFrom,”#NeymarDaSilvaSantos”>
Anotação
Inferida

<2,”#NeymarPai”,sameAs,”#NeymarDaSilvaSantos”>
Restriction: são relações que definem alguma restrição a uma propriedade ou
indivíduo. As restrições se sub-dividem em cinco tipos:
o Global Restriction: são relações aplicadas para limitar o tipo de sujeito
ou objeto sobre o qual uma propriedade pode ser aplicada.
Declarações
(metaanotação)
<3, "Annotation Restriction GlobalRestriction Domain" >
Anotação
Inferida
<3,”#Edson_Arantes”,type-of,”#JogadorDeFutebol”>
<”#Edson_Arantes”,jogouNo,”#SantosFC”>
<”jogouNo”,rdfs:domain,”#JogadorDeFutebol”>
o Cardinality Restriction: são relações aplicadas para limitar o número de
relações sobre as quais uma determinada propriedade pode e/ou deve ser
aplicada.
Declarações
(meta-anotação)
<4,
"Annotation
Restriction
CardinalityRestriction
minCardinality" >
<”#Pelé”,campeaoDaCopa,”#Copa58”>
<”#Pelé”,campeaoDaCopa,”#Copa62”>
<”#Pelé”,campeaoDaCopa,”#Copa70”>
61
<”#ReiDaBolaInternacional”,equivalentClass>
<”campeaoDaCopa”, owl:minCardinality, 3>
Anotação
Inferida
<4,”#Pelé”,type-of,”#ReiDaBolaInternacional”>
o Property Restriction: são relações aplicadas para limitar a quantidade e os
tipos de objetos utilizados em uma determinada propriedade.
Declarações
(metaanotação)
<5, "Annotation Restriction PropertyRestriction
AllValuesFrom" >
<”atuouEm”,owl:allValuesFrom,”#FilmeEsportivo”>
<”#Pelé”,atuouEm,”#Os_Trapalhões_e_o_Rei_do_Futebol”>
Anotação
Inferida
<5, ”#Os_Trapalhões_e_o_Rei_do_Futebol”, type-of,
”#FilmeEsportivo”>
o Set Restriction: são relações ou tipos construídos a partir da aplicação de
operadores de conjuntos.
Declarações
(meta-anotação)
<6, "Annotation Restriction SetRestriction Union" >
<”#JogadorDaSelecaoCanarinho”,union>
<”is-a”, #Brasileiro”>
<”jogouNa”, “#SelecaoBrasileira”>
<”Neymar”,type-of,”Brasileiro”>
<”Neymar”,jogouNa,”SelecaoBrasileira”>
Anotação
Inferida
<6,”Neymar”,type-of,”#JogadorDaSelecaoCanarinho”>
o Rule Restriction: são relações baseadas em regras complexas para definir novos
tipos.
Declarações
(meta-anotação)
<7, "Annotation Restriction RuleRestriction SWRL" >
<”#Rule”>
<”#Jair_Arantes”,temIrmao,”#Edson_Arantes”>
62
<”#Edinho”,temPai,”#Edson_Arantes”>
<temTio, swrlrule, “temPai(?x1,?x2) ∧
temIrmao(?x2,?x3) ⇒ temTio(?x1,?x3)” >
Anotação
Inferida

<7,”#Edinho”,temTio,”#JairArantes”>
Property Characteristics: são relações que atribuem características especiais a
propriedades e/ou que são afetadas por relações com outras propriedades.
Declarações
(meta-anotação)
<8, "Annotation PropertyCharacteristics
SymmetricProperty " >
<”casouCom”, PropertyCharacteristic,
”owl:Symmetric”>
<”#Assíria_Lemos_Seixas”, casouCom,”#Pelé”>
Anotação
Inferida

<8,”#Pelé”,casouCom,”#Assíria_Lemos_Seixas”>
Hierarchies: são relações que definem o tipo de classe, propriedade ou
indivíduo, caracterizando-o conforme a declaração de seu super tipo.
Declarações
(metaanotação)
<9, "Annotation Hierarchies SubClass" >
<”#Pelé”,type-of,”#JogadorDeFutebol”>
<”#JogadorDeFutebol”, rdfs:subClassOf,”#Desportista”>
Anotação
Inferida

<9,”#Pelé”,type-of,”#Desportista”>
Keys: são as relações cujos valores únicos podem identificar os recursos de um
determinado tipo.
Declarações
(meta-anotação)
<10, "Annotation Key Rule HasKey" >
<”#ClubeDeFutebolBrasileiro”,owl:hasKey,”web_site”>
<”#Santos_Futebol_Clube”,typeof,”#ClubeDeFutebolBrasileiro”>
63
<”#Santos_Futebol_Clube”,web_site,”#www.santosfc.com.b
r”>
<”#Alvinegro_Praiano”,typeof,”#ClubeDeFutebolBrasileiro”>
<”#Alvinegro_Praiano”,web_site,”#www.santosfc.com.br”>
<”#Pelé”,jogouNo,”#Alvinegro_Praiano”>
Anotação
Inferida

<10,”#Pelé”,jogouNo,”#Santos_Futebol_Clube”>
Property Chains: são cadeias de relações que definem uma predicado em
termos de uma cadeia de propriedades de objetos ("object properties") que
conectam recursos.
Declarações
(meta-anotação)
<11,
"Annotation
Restriction
RuleRestriction
PropertyChains" >
<”#temTio”, rdfs:subPropertyOf>
<owl:propertyChain,”#temPai”>
<owl:propertyChain,”#temIrmao”>
<”#Kelly”,temPai,”#Edson_Arantes”>
<”#Edson_Arantes”,temIrmao,”#Jair_Arantes”>
Anotação Inferida
<11,”#Kelly”,temTio,”#Jair_Arantes”>
4.4 CONSIDERAÇÕES FINAIS
Neste capítulo foi apresentada uma arquitetura com o objetivo de enriquecer
documentos através de anotações extraídas de uma ontologia com auxílio de um
raciocinador.
Foi apresentado também o conceito de meta-anotação. Este conceito visa
possibilitar que agentes inteligentes possam obter informações mais precisas sobre as
anotações inferidas, podendo assim manter um controle sobre o “overflow” de
informações disponibilizadas ao usuário. Cada uma das meta-anotações tratadas pela
ferramenta são classificadas em uma taxonomia, segundo especificações oficiais da
OWL.
64
Com base na arquitetura proposta e com o objetivo de avaliar a funcionalidade
pretendida, um sistema para anotação de documentos foi desenvolvido. No próximo
capítulo a implementação desta arquitetura será detalhada, bem como as tecnologias
utilizadas no seu desenvolvimento.
65
5 AUTÔMETA: ESPECIFICAÇÃO E PROTOTIPAÇÃO
Conforme descrito nos capítulos anteriores, este trabalho se propõe a desenvolver um
protótipo baseado num conjunto de características desejadas para uma ferramenta de
anotação. Tais características foram investigadas anteriormente no Capítulo 3, e
posteriormente exploradas como embasamento para a elaboração de uma arquitetura
descrita, no Capítulo 4. Como resultado da implementação da arquitetura geral descrita
no capítulo anterior, é apresentada nesse capítulo a ferramenta de anotação denominada
AutôMeta (Automatic Metadata annotation tool), construída como um mecanismo de
anotação semântica multiplataforma e multi-intefarce (Linha de Comandos e Janela
Gráfica) , que permite realizar desde uma anotação simples até múltiplas anotações,
também denominadas anotações em lote.
Ao longo deste capítulo, serão detalhados a especificação e desenvolvimento do
protótipo AutôMeta, bem como seus módulos, algoritmos e bibliotecas de terceiros
utilizadas para o funcionamento do mesmo. Na seção 5.1 será apresentada uma visão
geral do protótipo e a seção 5.2 detalhará o ambiente de desenvolvimento da ferramenta.
5.1 VISÃO GERAL DA FERRAMENTA
Conforme a arquitetura descrita no capítulo anterior, os recursos implementados na
ferramenta AutôMeta visam prover mecanismos para:

Anotação semântica de documentos para o ambiente Web;

Anotação automática e semiautomática de um documento texto com o auxílio de
uma ontologia arbitrária (definida pelo usuário);

Visualização rica do código-fonte da anotação em RDFa;

Geração de Meta Anotações;

Análise (e/ou Extração) de anotações semânticas RDFa de um documento web.
Ainda conforme descrito no capítulo 4, a ferramenta AutôMeta adota o formalismo
de anotação intrusiva, com tuplas do tipo <ai, as, ap, ao>. De modo geral, o estilo de
anotação da AutôMeta parte de uma anotação pai, que envolve basicamente as
66
anotações resultantes de predicados do tipo “is-a”, isto é, categorização. A seguir, inclui
o que chamamos de tuplas descendentes, envolvendo os demais predicados encontrados
para o sujeito da anotação, na ontologia em questão. As anotações semânticas geradas
pela ferramenta seguem o formato de anotação de modo a respeitar e aproveitar o
formato RDFa, conforme detalhado a seguir:
<ai, asi, T[ao1..aom] ><ai, apm+1, aom+1 />..<ai, apn ..aon /> Termo </>

A primeira tupla <ai, asi, T[ao1..aom] > é chamada de “pai” ou “raiz” da
anotação, sendo as tuplas subsequentes consideradas como suas descendentes;

Cada tupla contém um identificador único ai de cada anotação, primordial para
as meta anotações;

O elemento asi representa o sujeito da anotação “pai”, bem como o sujeito de
cada anotação descendente;

O conjunto T[ ] representa a categorização do sujeito asi, implicitamente sendo
considerado como um predicado ap do tipo “is-a”, e cada termo aoj é uma
classe que define o tipo do sujeito asi, onde 0 ≤ j ≤ m;

Cada tupla <aik,apik,aoik>, identificado por aik refere-se implicitamente ao
sujeito asi da tupla “pai”, onde cada <apik,aoik> corresponde a pares de
predicados e seus valores (objetos) correspondentes, onde 0 ≤ k ≤ m;

Termo é um texto livre, previamente contido no texto do documento antes da
anotação. Esse termo é considerado explicitamente como o sujeito asi da
anotação.
Assim, conforme a FIG. 5.1 uma anotação da AutôMeta ficaria de modo geral da
seguinte forma:
<span id="ai" about="asi" typeof="ao1 .. aon ">
<span id="ai+1" rel="pi+1" resource="aon+1"></span>
…
<span id="ai+m" property="pi+m" content="aon+m"></span>
Termo
</span>
FIG. 5.1: Anotação ilustrando os formalismos definidos anteriormente
O atributo id é usado para representar o identificador do sujeito ai; about refere-se
ao sujeito asi; typeof o conjunto T[]; rel e property referem-se ao predicado apk; e
resource e content correspondem ao objeto aok.
67
A seguir na FIG. 5.2 o uso deste formalismo é ilustrado utilizando RDFa, conforme
um trecho de um documento anotado automaticamente usando a ferramenta AutôMeta:
<span id="am-1" about="#Celso" typeof="auto:Aluno auto:Pessoa">
<span id="am-2" rel="orientadoPor" resource="Ana"></span>
<span id="am-3" rel="orientadoPor" resource="Maria"></span>
<span id="am-4" property="nomeCompleto" content="Celso Araujo
Fontes"></span>
Celso
</span>
FIG. 5.2: - Anotação em RDFa gerada pela ferramenta AutôMeta
É valido observar que, no tocante aos marcadores (tags) utilizados pela ferramenta,
optou-se pelo marcador “<span>” devido ao mesmo não afetar a formatação visual do
documento.
Na próxima seção, serão apresentados alguns detalhes de especificação e
implementação da ferramenta.
5.2 ESPECIFICAÇÃO E IMPLEMENTAÇÃO
A ferramenta proposta foi desenvolvida na linguagem de programação orientada a
objetos Java18, em sua versão 1.6. O ambiente utilizado para o desenvolvimento da
aplicação foi o NetBeans19, em sua versão 6.9, integrado a um computador PC com um
processador core solo e 1GB de memória.
Para prover os recursos necessários para os requisitos do sistema, foram
utilizadas as bibliotecas Java dos pacotes OWLAPI, um Analisador semântico que
possibilita a visualização e a manipulação das classes, propriedades e instâncias de uma
ontologia como objetos Java. Foi utilizada a versão 3.0, tendo como principal
característica o suporte aos recursos do OWL 2.0.
Para o módulo de raciocínio foi utilizado o Raciocinador Pellet (SIRIN et al.,
2007), disponibilizado em pacotes Java, sendo este utilizado em conjunto com a
18
19
http://www.java.com/en/download/whatis_java.jsp
http://netbeans.org/
68
OWLAPI (HORRIDGE & BECHHOFER, 2009) para obtenção de relações implícitas
na ontologia.
O Pellet também é utilizado para a implementação do Meta Anotador, graças ao
seu utilitário Explanation, definido como um recurso que fornece o conjunto de fatos ou
de outras informações necessárias para justificar a inferência (CLARK, 2008).
Além dos recursos requeridos pelos módulos da arquitetura, também foram
adicionados recursos para análise e extração das anotações semânticas, utilizando a
biblioteca JavaRDFa, que permite interpretar o documento anotado.
Para os recursos visuais que permitem dar destaque à sintaxe e auto completá-la,
foi utilizada a biblioteca RSyntaxeTextArea (FILESOFT, 2010). Adicionalmente, para
otimizar o processamento da manipulação de Strings e interpretação de parâmetros na
interface em modo de linha de comando, foram utilizados alguns pacotes (CLI e
StringUtils) da biblioteca jakarta-commons (APACHE, 2010).
A seguir serão descritas as interfaces do sistema, bem como suas principais
funcionalidades.
5.3 INTERFACES
Para permitir uma melhor interação com o usuário, a ferramenta AutôMeta permite duas
formas de utilização: em modo texto, a CLI (Command Line Interface) e modo gráfico,
a GUI (Graphical User Interface), sendo esta construída utilizando a API de interfaces
Swing.
5.3.1 Interface CLI
FIG. 5.3: Exemplo Utilização da interface CLI no CMD do Windows XP
69
A interface via modo texto oferece a vantagem de acesso à ferramenta com maior
simplicidade, e fazendo uso de menor quantidade de recursos de hardware. Para
utilização da interface CLI o usuário deve utilizar a chamada java –jar Autometa.jar
com os seguintes parâmetros:

-ontology: para indicar o caminho e nome completo da ontologia em RDF,
OWL ou N-TRIPLE;

-documentpath: para indicar o diretório onde se encontra um conjunto de
documentos de entrada;

–document: para indicar apenas um documento que será alvo de anotação.

–outputpath: o diretório onde será(ão) armazenado(s) o(s) documento(s)
anotado(s);

–reasoning (opicional): refere-se ao uso do raciocinador (por padrão ligado
“true”) ou apenas o analisador (valor “false”).
Nesta interface, todos os documentos de saída possuirão os mesmos nomes dos
documentos de entrada, porém com a extensão “.htm”, como por exemplo: 10001.txt
(entrada) e 10001.htm (saída).
5.3.2 Interface GUI
A FIG. 5.4 apresenta a tela inicial da ferramenta AutôMeta, que permite ao usuário
iniciar suas atividades de anotação. Esta interface visa auxiliar o usuário quanto à
utilização das principais funções da ferramenta, fazendo uso intensivo de recursos
gráficos, tais como botões, tabelas, e caixas de textos.
Os principais recursos disponibilizados são: a barra de ferramentas “Action
ToolBar”, onde ficam os botões para os principais recursos, tais como: ações da
anotação automática (Auto Annotation); a aba referente ao código fonte (Source Code),
através da qual é possível visualizar e editar o documento anotado; o painel de extração
semântica (Triples), que permite apresentar as triplas do documento anotado, onde
subject é o sujeito (as), property o predicado (ap) e object o objeto (ao).
70
FIG. 5.4: Interface GUI do AutôMeta
A FIG. 5.5 a seguir destaca os namespaces e prefixos gerados pela ferramenta na
FIG. 5.4, onde o namespace default (padrão) é a especificação do XHTML, necessário
para o RDFa, seguido dos namespaces com prefixos o RDF, OWL, e por último, o
prefixo TESTE, utilizada para identificar o vocabulário pertinente a ontologia de
entrada, isto é, todos os termos desta ontologia utilizados nas anotações semânticas
serão identificados pelo prefixo “teste:”.
FIG. 5.5: Declaração de Prefixos e Namespaces geradas pelo AutôMeta
Seguindo o código gerado na FIG. 5.4, na FIG. 5.6 a seguir é destacada a anotação
gerada pela ferramenta, onde o termo Celso é identificado como “teste:Celso” na
ontologia de entrada e seus de tipos são “owl:Thing” e “teste:Aluno” e suas relações.
71
FIG. 5.6: Destaque da anotação gerada pelo AutôMeta automaticamente no ambiente
GUI
Na próxima seção serão apresentadas as principais funcionalidades da ferramenta.
5.4 FUNCIONALIDADES DA FERRAMENTA
Esta seção descreve as principais funcionalidades da interface GUI da ferramenta
AutôMeta, necessárias para a obtenção da anotação semântica.
5.4.1 Carga da Ontologia
O procedimento de carga de ontologia é obrigatório para o processo de anotação, seja
este um processamento automático ou semi-automático. Para realizar a carga da
ontologia o usuário deve clicar no botão “Load Ontology...”, mostrado na FIG. 5.7,
quando será aberta a janela de navegação que permitirá escolher o arquivo da ontologia
a ser analisado, conforme ilustrado na FIG. 5.8.
FIG. 5.7: Botão de carga da ontologia
FIG. 5.8: Escolha do Arquivo da Ontologia
72
5.4.2 Anotação semi-automática (Auto-Complete)
Esta funcionalidade, mostrada na FIG. 5.9 oferece ao usuário a opção de anotar de
modo interativo um documento, e o auxilia quanto à utilização de termos oriundos da
ontologia, previamente carregada.
FIG. 5.9: Recurso de AutoCompletar
Basicamente este recurso visa recuperar de maneira rápida para o usuário todos os
recursos presentes na ontologia. Isso é realizado fazendo-se uso do recurso
AutoComplete, invocado pela combinação das teclas CRTL+SPACE. As classes são
então associadas à propriedade “typeof”, os indivíduos são associados ao “about”, e os
relacionamentos ao “rel” e “property”. Para habilitar este procedimento, basta marcar a
caixa intitulada “AutoComplete” na barra de ferramentas.
5.4.3 Anotação Automática
A principal função do AutôMeta, a anotação automática, consiste em identificar e anotar
os termos da ontologia presentes em um documento de texto. Para realizar este
procedimento na interface GUI o usuário pode carregar um documento de texto
utilizando o botão “Load Document”, conforme a FIG. 5.10 ou digitar um novo texto na
área de “Source Code”. Opcionalmente o usuário pode optar pelo uso do Raciocinador
através da caixa de seleção “Reasoner”.
73
FIG. 5.10: Carga de Documento
Após a carga ou criação de um novo documento, o usuário deve utilizar o botão
“Auto Annotation” na barra de ferramentas para finalizar o procedimento. Vale salientar
que este procedimento também pode ser utilizado pela interface CLI utilizando os
parâmetros descritos na seção 5.3.1
5.4.4 Extração das anotações
As anotações são apresentadas em uma tabela na parte inferior da interface GUI da
ferramenta, conforme ilustradas na FIG. 5.11. Cada anotação é representada por triplas
de Subject (as), Property (ap) e Object (ao).
FIG. 5.11: Exemplo de Anotações extraídas pelo AutôMeta.
Quando o documento XHTML contém algum erro, é possível visualizá-lo na aba
“Messages”, conforme ilustrado na FIG. 5.12.
FIG. 5.12: Textos de mensagens de erro.
74
5.5 LIMITAÇÕES E SIMPLIFICAÇÕES DA FERRAMENTA AUTÔMETA
A ferramenta Autômeta apresenta diversos recursos desejáveis para uma ferramenta de
anotações semântica para Web, entretanto, vale destacar as seguintes observações:
 Anotação Automática dos documentos: para simplificar o processo da anotação,
foi utilizada uma abordagem onde os objetos dos relacionamentos são expressos em
forma de anotações “ocultas” (não clicáveis) (ADIDA, et al., 2008);
 Documento de entrada: os documentos estão limitados a arquivos de texto plano
(TXTs).
 Ontologia de entrada:
o Tipo: são suportados os tipos de formatos e sintaxes suportados pela
biblioteca OWLAPI versão “3”, cujos formatos são os mesmos gerados pela
ferramenta Protegé, que também utiliza esta biblioteca;
o Raciocínio: o recurso de raciocínio é limitado aos recursos do raciocinador
Pellet.
 Extração:
O recurso de extração é limitado aos recursos oferecidos pela biblioteca java-rdfa.
5.6 CONSIDERAÇÕES FINAIS
Este capítulo apresentou a descrição da ferramenta AutôMeta, juntamente com seus
módulos funcionais, conforme ilustrado na FIG. 4.1. Todos os módulos da arquitetura
foram implementados no protótipo, a saber: anotação automática e semiautomática de
documentos e extração de anotações.
Com o objetivo de mostrar o desempenho da ferramenta em relação à recuperação
de documentos anotados, o próximo capítulo é dedicado à etapa de avaliação da
ferramenta, onde serão descritos os testes realizados e os resultados obtidos nesse
processo.
75
6 AVALIAÇÃO DA FERRAMENTA AUTÔMETA
Este capítulo apresenta três objetivos principais: (1) descrever todo o ambiente de
preparação para a realização dos testes de anotação e recuperação de informações
efetuados com a ferramenta AutôMeta; (2) apresentar o conjunto de testes realizados
para avaliação do protótipo. Visando aferir melhoria na recuperação de informação em
documentos anotados pela ferramenta, estes foram testados em dois ambientes distintos,
utilizando tecnologias diferentes de busca de dados; e, finalmente, (3) analisar o
conjunto de resultados obtidos na recuperação de documentos anotados, sob uma ótica
quantitativa e qualitativa.
6.1 PREPARAÇÃO DOS AMBIENTES DE TESTES
A fim de avaliar o potencial de recuperação de informações sobre documentos anotados
semanticamente pela ferramenta AutôMeta, esta seção descreve o conjunto de testes
realizados com base na infraestrutura da Text Retrieval Conference (TREC).20
Esta conferência oferece uma infraestrutura adequada para avaliar os resultados de
recuperação no que diz respeito à precisão e cobertura, métricas amplamente utilizadas
pela comunidade de recuperação de informação.
Nestes experimentos, entre os conjuntos para testes oferecidos pela TREC, foi
utilizada a TREC genômica de 2006, composta por uma coleção de documentos de
textos completos em HTML, num total de 162.259. Esses documentos foram obtidos a
partir de 49 revistas publicadas eletronicamente via Highwire Press, que concedeu a
permissão para o uso da pesquisa de seus artigos na TREC Genômica. Os documentos
estão disponibilizados no endereço <http://ir.ohsu.edu/genomics/data/2006/documents/>
(TREC, 2007).
Para obtenção dos artigos médicos, foi necessária uma autorização prévia através de
um
pedido
via
FAX,
segundo
as
<http://ir.ohsu.edu/genomics/data.html>.
20
http://trec.nist.gov/
76
intruções
disponibilizadas
em
A TREC 2006 disponibiliza um conjunto de 28 perguntas (HERSH, et al., 2006) no
formato descrito na TAB. 6.1, onde:
TAB. 6.1: Exemplo de pergunta TREC 2006.
NEW ID
GENE(S)
DISEASE
QUESTION
160
PRNP
Mad Cow
What is the role of PrnP in mad
Disease
cow disease?

NEW ID é o identificador único da pergunta (160 a 187);

GENE(S) é a lista de genes presentes na pergunta;

DISEASE é a doença, possivelmente associada ao gene; e

QUESTION é a pergunta propriamente dita, formulada em linguagem natural.
A TREC disponibiliza também o conjunto de documentos esperados como resposta
para cada pergunta. Para cada pergunta são avaliados 1000 trechos de documentos,
aferindo sua relevância frente às perguntas (HERSH, et al., 2006). A TAB. 6.2
apresenta alguns trechos de documentos relativos à pergunta 160, cujos campos
correspondem a:
TAB. 6.2: Trecho da tabela de avaliação de relevância da TREC 2006
TOPIC
160
160
160
160
160

PMID
8995353
8995353
9045652
9535949
15722549
OFFSET
LENGTH
1983
3962
4268
50363
8230
1766
1369
2400
1856
2514
SPANID
RELEVANCE
899.535.319.831.766
899.535.339.621.369
904.565.242.682.400
9.535.949.503.631.850
1.572.254.982.302.510
NOT
DEFINITELY
DEFINITELY
NOT
POSSIBLY
TOPIC é o identificador da pergunta, similar ao NEW ID utilizado na TAB.
6.1;

PMID (PubMed unique identifier) é o identificador único atribuído a cada artigo
disponibilizado no PubMed;

RELEVANCE é a relevância do trecho de um documento frente à pergunta,
podendo alcançar três valores: NOT (não), POSSIBLY (possivelmente) e
DEFINITELY (definitivamente);
77

OFFSET e LENGHT determinam, respectivamente, a posição inicial e o
tamanho do trecho avaliado; e

SPANID identificadores dos parágrafos avaliados no documento, conforme
descrito em (HERSH et. al, 2006)21.
6.1.1 Metodologia
No tocante à base de documentos disponibilizada pela TREC 2006, constatou-se, pela
análise feita a partir das informações da TAB. 6.2 associadas às consultas, existirem
apenas 11.638 documentos distintos (trec_docs), observados pelo igual número de
11.638 PMID avaliados, frente ao total de 162.259 documentos disponibilizados. Para
obtenção desta lista de documentos avaliados, a tabela foi nomeada como
trec_raw_relevance e processada por um SGBD (Sistema Gerenciador de Banco de
Dados), sendo então submetida à seguinte consulta em SQL, conforme ilustrado na:
SELECT DISTINCT(pmid)
FROM trec_raw_relevance
FIG. 6.1: SQL para obtenção dos documentos relevantes
Dada a lista de documentos, o próximo passo foi convertê-los no formato “texto
plano” (TXT), necessário para o funcionamento correto do processo de anotação
semântica realizada pela ferramenta AutôMeta. Este documentos foram convertidos de
HTML para documentos TXT, utilizando a ferramenta HTMLAsText22.
Após a etapa de conversão, a próximo passo foi realizar a anotação semântica
destes documentos pela ferramenta AutôMeta, com a ajuda de duas ontologias do
domínio genético-médico.
Com o objetivo de avaliar a nossa proposta, configuramos um cenário de testes
em que fosse possível comparar a eficiência da recuperação de informação com e sem o
auxílio da ferramenta de anotação. Neste cenário, utilizamos a mesma massa de textos,
ora contando com uma ferramenta de indexação comum, ora contando com tecnologia
que usufruisse das anotações semânticas realizadas com a ferramenta AutôMeta. Para
21
22
http://ir.ohsu.edu/genomics/data/2006/documents/legalspans.txt
http://www.nirsoft.net/utils/htmlastext.html
78
auxiliar esta estratégia de avaliação foram usados dois ambientes descritos na seção
6.1.5 .
Inicialmente, numa avaliação em menor escala, os testes de recuperação foram
realizados com as ontologias Gene Ontology23 e uma versão em OWL da MeSH24.
Entretanto, os resultados obtidos foram pouco satisfatórios, não acrescentando nenhum
ganho na recuperação, principalmente pela falta de termos equivalentes, requisito
importante e necessário para as anotações.
Face ao pouco ganho obtido com as duas ontologias Gene Ontology e MeSH,
resolvemos utilizar outra ontologia. Porém, ao perceber que talvez nenhuma ontologia
de domínio seria tão relevante para anotar os textos, decidimos então constituir uma
ontologia que de fato fosse importante. Isso seria feito com base nas perguntas
fornecidas pela TREC, isto é, por meio de consultas efetuadas em ferramentas de busca
semântica, tal como o SINDICE. Através desta ferramenta encontramos muitos termos
relevantes no repositório ontológico DBpedia. Entretanto, esta ontologia, também
disponibilizada em arquivos OWL e RDF, ultrapassa a marca de sete gigabytes de
informação, com mais de 100 milhões de triplas (LEHMANN, 2008), inviabilizando o
seu uso através da ferramenta AutôMeta. Tal fato gerou a necessidade de elaborarmos
um mecanismo para a geração de um recorte da ontologia DBPEDIA, cujo
procedimento é detalhado a seguir.
6.1.2 Recorte Ontológico da DBPEDIA
DBpedia é “um esforço da comunidade para extrair informação estruturada da
Wikipedia e tornar esta informação disponível na web” (BIZER, et al., 2009). O projeto
do Dbpedia consiste em um arcabouço de extração de informação, que converte o
conteúdo da Wikipedia em RDF, além de interligá-las a outras fontes tal como GeoNames, MusicBrainz e diversos outros, provendo uma fonte rica de dados estruturados
para serem utilizados por uma variedade de ferramentas semânticas (AUER, et al.
2007).
23
24
Disponível em: <http://www.geneontology.org/GO.downloads.ontology.shtml>
Disponível em: <http://onto.eva.mpg.de/obo/mesh.owl>
79
Para a recuperação apenas dos recursos da DBpedia pertinentes ao domínio da
TREC genômica 2006, optou-se por utilizar o próprio texto das perguntas da TREC
(TAB. 6.1), submetendo-os a Web Service do Zemanta, ferramenta de anotação web
(descrita na seção 3.3 do Capítulo 3), que por sua vez retorna um conjunto de
informações (anotações) associadas ao texto nela contido, tais como fotos, artigos de
revistas e links. Dentre estas informações estão um conjunto de links ($listaDeURLs)
para artigos do Wikipedia, correspondendo cada um deles a um recurso na ontologia do
DBpedia, a exemplo do artigo sobre “PRNP”, descrito tradicionalmente nesta
enciclopédia em: <http://en.wikipedia.org/wiki/PRNP>, cujo recurso semântico é
acessado em: <http://dbpedia.org/resource/PRNP>. Na FIG. 6.2 é possível observar o
artigo do Wikipedia anterior, descrito na maneira tradicional como recursos HTML, e
sua versão semântica na parte inferior desta figura, onde é possível observar o esquema
de triplas, com destaque para o predicado (ap) “rdf:type” e o objeto (ao)
“yago:ClustersOfDifferentiation”.
FIG. 6.2: Artigo do Wikipedia sobre PRNP e sua versão semântica no DBpedia.
80
O procedimento utilizado no recorte da anotação é ilustrado por um algoritmo
descrito na FIG. 6.3 a seguir.
ZemantaWS
$webService;
OWLOntology
$recorteDbpediaOwl;
Lista <URL>
$listaDeURLs;
Lista
$perguntasTrec;
$webService.conectar($API_KEY);
$perguntasTrec = lerPerguntas(TABELA_DE_PERGUNTAS_TREC);
Para cada $pergunta em $perguntasTrec faça
$listaDeURLs = webService.getListaURLsWikipedia($pergunta);
Para cada $url em $listaDeURLs faça
Entidade $uriDbpedia = converter($url)
Tripla<as,ap,ao> $triplas = RDFCAT.recuperarTriplas($url);
RDFCAT.adicionar($triplas, $recorteDbpediaOwl);
Fim para
Fim para
FIG. 6.3: Algoritmo do recorte ontológico da DBPEDIA
Para se conectar ao Web Service do Zemanta ($webService), é necessário criar um
cadastro em <http://developer.zemanta.com/member/register/>, obtendo assim uma
chave de acesso ao serviço ($API_KEY) que permite o uso de todos os seus recursos.
Em seguida, cada pergunta da TREC ($pergunta) é submetida ao procedimento
para
a
recuperação
dos
links
($listaDeURLs)
da
Wikipedia
(getListaURLsWikipedia()) , em seguida cada link ($url) foi convertido a uma URI
de uma entidade da ontologia DBpedia.
81
Assim, a próxima etapa foi reunir as entidades ou triplas ($uriDBpedia) deste
recorte em uma única ontologia ($recorteDbpediaOwl). Para tanto, foi utilizado o
utilitário “rdfcat” (RDFCAT, 2010), que permite a união de diversos recursos
semânticos, incluindo todas as suas triplas ($triplas) associadas (as, ap, ao) em uma
única ontologia serializada.
Durante os primeiros testes, foi percebida uma “fragilidade” do algoritmo de
reconhecimento de entidades do Zemanta em relação ao formato dos caracteres.
Observou-se que este não reconhece certos termos quando estes se encontram ora em
maiúsculos ora em minúsculos. Com o objetivo de solucionar este problema, e visando
obter melhores resultados na fase de reconhecimento, cada pergunta da TREC,
incluindo informações adicionais, foi submetida ao Web Service do Zemanta em cinco
combinações diferentes de caixas, utilizando para isso os recursos oferecidos pela classe
StringUtils do pacote Jakarta Commons Lang. Este procedimento foi abstraído do
algoritmo anterior por questões de simplificação.
TAB. 6.3: Métricas da ontologia de recorte DBpedia
Características
Classes
Object Properties
Data Properties
Indivíduos
Expressividade DL25
Relações de “is-a”
Object Properties Domain
Object Properties Range
Data Properties Domain
Data Properties Range
Sinonímia entre indivíduos
Functional Data Properties
Tamanho
Total/Valor
323
629
706
2665
ALOF(D)26
272
505
488
589
407
549
18
1,549 MB
Numa primeira avaliação manual da ontologia gerada, percebeu-se que havia vários
indivíduos
(individuals)
possivelmente
Bovine_Spongiform_Encephelopathy
e
repetidos,
tais
Bovine_Spongiform_Encephalitis.
como
Estes
indivíduos se relacionavam pela propriedade dbpprop:redirect, utilizado para identificar
25
Description logic (lógica descritiva)
A L= Attributive language; O = Object Restrictions (nominais) (ex: hasValue); F= Functional
Properties; D = Data values (ex: data properties)
26
82
os termos sinônimos. Nos artigos da Wikipedia, o redirect serve para redirecionar um
artigo para outros artigos, e já no caso do Dbpedia, ele foi utilizado para resolver o caso
de referências entre os recursos (BIZER, et al., 2009). Com base nestas informações, e
visando aperfeiçoar o processo das anotações, todas as relações dbpprop:redirect foram
trocadas por owl:sameas na ontologia de recorte.
O último procedimento na ontologia foi unir o resultado anterior ao esquema da
DBPEDIA versão 3.5, que contém toda a parte classificatória das instâncias de sua base.
Na tabela TAB. 6.3 são descritas as métricas obtidas no procedimento final do
recorte ontológico. Esta ontologia foi enfim utilizada nos ambientes de testes para
recuperação de informação. Esse procedimento será descrito nas próximas seções.
6.1.3 Preparação das Bases de Testes
Observando a quantidade expressiva de documentos a serem trabalhados pela
ferramenta AutôMeta, foi criado um ambiente adequado utilizando-se de um CLUSTER
de altíssima capacidade, gentilmente cedido pelo LNCC. Seu hardware é constituído de
20 Servidores SuperMicros, cada um com dois processadores Intel Xeon 5520 2,26GHz
(com 4 núcleos reais e 4 virtuais - hyper-threading), 12 GB Memória e 1TB de disco
rígido, e Sistema operacional Linux Debian Lenny. Vale a pena salientar que a
execução dos testes foi realizada em um dos servidores, que ficou dedicado durante todo
o período necessário para a sua conclusão.
Neste CLUSTER, a ferramenta AutôMeta foi utilizada no modo CLI (Command
Line Interface), com auxílio do recorte ontológico feito sobre a DBpedia. Esta foi
utilizada duas vezes para gerar duas massas de dados a partir dos documentos da TREC:
a primeira massa foi gerada com auxílio de um raciocinador (parâmetro
“reasoning=true”), enquanto a segunda massa foi gerada apenas com o uso do
analisador (“reasoning=false”).
83
6.1.4 Massas de Dados
Como mencionado anteriormente consideremos a base de textos da TREC genômica
2006 com um total de 11.638 textos. A partir destes textos, para realizar todos os testes,
três massas foram geradas: BaseTXT, BaseREASONER e BaseNOREASONER:

A BaseTXT corresponde à transformação dos artigos médicos, disponibilizados
pela TREC em formato HTML, em arquivos de texto (TXT) sem nenhuma
anotação semântica;

A BaseREASONER corresponde aos documentos previamente transformados
em texto com anotações geradas pelo AutôMeta com o auxílio da ontologia de
recorte DBpedia e com a assistência do raciocinador;

A BaseNOREASONER corresponde aos documentos anotados, porém
sem o auxílio do raciocinador, isto é, utilizando apenas o analisador sem
nenhuma inferência.
6.1.5 Ambientes de Recuperação de Informação
Conforme já mencionado anteriormente, a recuperação no cenário de Testes de
informação foi realizada em dois ambientes distintos.
No primeiro ambiente a ideia é investigar os ganhos de Recuperação de Informação
com uma ferramenta de recuperação de informação baseada somente em um mecanismo
de indexação tradicional e aí comparar os resultados obtidos sobre os textos originais e
os obtidos sobre os textos anotados.
No entanto, esta avaliação não explora todo o potencial de anotação já que não
usufrui do conteúdo semântico (anotações) embutido no texto, tratando-o como texto
comum.
Neste sentido, no segundo ambiente procuramos utilizar ferramentas de busca que
explorassem os dados estruturados contidos nas anotações, permitindo assim uma
comparação entre os documentos anotados com o raciocinador e sem o uso do mesmo.
Com relação à tecnologia utilizada nos ambientes, ambos foram desenvolvidos
utilizando a plataforma Java, onde no primeiro, foi utilizada a biblioteca Lucene, que
84
permite indexar e pesquisar documentos, com o objetivo de alcançar resultados
similares às ferramentas de busca tradicionais; já no segundo ambiente utilizou-se o
framework Jena, para permitir consultas estruturadas em SPARQL (Structred Query
Languague), associado ao JavaRDFa, também utilizado no AutôMeta, para permitir a
interpretação das anotações RDFa em documentos HTML.
No primeiro ambiente, após a indexação da baseTXT e da baseREASONER feita
pela Lucene, as perguntas da TREC (TAB. 6.1) são lidas e computadas por esta
ferramenta. Para cada uma delas, ambas as bases são consultadas, e no caso de retornar
ao menos um documento, os resultados são armazenados em forma tabular para facilitar
o procedimento de quantificação da recuperação das informações. Este procedimento é
ilustrado pelo algoritmo descrito na FIG. 6.4.
Vetor[] $perguntasTrec = lerPerguntas(tabela1);
Indice
$indice;
para cada $documentoTrec faça
$indice.adicionar(lerConteudo($documentoTrec));
fim para
para
cada $pergunta em $perguntasTrec faça
Lucene.executarPergunta($pergunta, $indice)
fim para
FIG. 6.4: Algoritmo de preparação para o primeiro ambiente de testes
As perguntas submetidas ao Lucene são tratadas previamente, passando por dois
processos: remoção de “stop words” e “stemming”.
Segundo ALVARES (2005) Stemmer consiste na tarefa de “obter uma
representação única para palavras que apontem para um mesmo conceito”. O stemmer
utilizado
neste
ambiente
foi
o
(http://lucene.apache.org/java/3_0_3/api/contrib-snowball/index.html).
85
Snowball
Além disso, fez-se uso do operador “AND” para garantir que todos os termos
(palavras) da pergunta fossem encontrados em um determinado documento, retornandoo como resposta relevante àquela pergunta realizada. O exemplo a seguir ilustra melhor
esse procedimento.
Considerando a seguinte consulta:
“What is the role of APC (adenomatous polyposis coli) in colon cancer?”
O primeiro passo consiste na remoção das STOP WORDS, i.e: apc adenomat
polyposi coli colon cancer.
Neste exemplo é possível observar que palavras como “what” (qual) e “in” (no) são
removidas, além de palavras serem reduzidas à sua forma radical como “anedomat” =>
“anedomatous”. Assim a pergunta submetida ao Lucene foi:
role apc adenomat polyposi coli colon cancer
No segundo ambiente, as perguntas são convertidas em sintaxe SPARQL e
carregadas em uma lista ($sparqlLista). Em seguida, para cada $pergunta, todos os
$documentos
são lidos um a um pelo interpretador JavaRDFa, que se encarrega de
prepará-los para serem executados pelo Jena (executarPergunta). As bases utilizadas
neste ambiente foram a BaseREASONER e BaseNOREASONER. Este procedimento
é ilustrado pelo algoritmo descrito na FIG. 6.5.
Lista[] $sparqLista = lerSPARQLs(pasta_sparql);
para
cada $sparql em $sparqLista faça
enquanto ($documentos)
$grafo = JavaRDFa.ler($documentos[i])
Jena.executarPergunta($sparql, $grafo)
fim enquanto
fim para
FIG. 6.5: Algoritmo de preparação para o segundo ambiente de testes
86
Para converter as perguntas em SPARQL, procuramos sistematizar esta conversão
de modo a preservar o sentido e conteúdo da consulta, e de modo a aproveitar do
conhecimento da ontologia, podendo usufruir de suas relações de modo a obter
melhores resultados na busca. A ideia consistiu em construir, no estilo SPARQL de
consulta, template(s) de tripla(s) - <as,ap,ao> - que correspondesse(m) à consulta em
linguagem natural.
Inicialmente, o texto de cada pergunta (campo Question na TAB. 6.1) foi
submetido ao processo de anotação do AutôMeta, visando de maneira rápida, identificar
os termos reconhecidos pela mesma e potencialmente anotados também nas massas de
documentos. Para exemplificar este procedimento, considere como texto de entrada a
pergunta da 160 da TREC: “What is the role of PrnP in mad cow disease?” e a
ontologia de recorte do DBpedia, como ontologia de auxílio. Após o procedimento de
anotação feito pelo AutôMeta, foram obtidas as seguintes anotações, apresentadas na
FIG. 6.6 a seguir:
What is the role of PrnP <1, "PRNP", foaf:page, "wiki:prnp"> in mad
cow <2, "Mad_Cow", foaf:page, "wiki:Bovine_spongiform_encephalopathy">
disease?.
FIG. 6.6: Ilustração simplificada da anotação feita pelo AutôMeta sobre a pergunta 160
da TREC 2006
Ao anotar os textos, utilizando o raciocinador, foi possível inferir anotações com
base em sinonímia, isto é, a partir de declarações “owl:sameas” presentes na ontologia.
Desta forma, se dois termos as1 e as2 são declarados sinônimos (as1 owl:sameas as2),
quando as1 aparecer em um texto, ele é anotado com base nas triplas existentes na
ontologia, onde as2 aparece como sujeito, e vice-versa. Assim, para montar templates de
triplas que pudessem representar as1 e as2, e consequentemente, permitissem encontrar
todos os textos que mencionassem ambos, procuramos entre as propriedades usadas nas
anotações, aquelas que fossem inverso-funcionais. Com base nisso, para cada termo
anotado em uma consulta, construímos templates do tipo <as?, ap, ao>, que chamamos
de triplas-chave27, onde ap é uma propriedade inverso-funcional e ao o valor único e
conhecido para ela. Cada consulta então foi traduzida para uma ou mais triplas-chave.
27
Pela similaridade com o conceito de chave-primária de banco de dados.
87
No exemplo da FIG. 6.6, observou-se que ambos os termos (as), PRNP e
Mad_Cow, possuem determinados objetos (ao) para determinadas propriedades (ap) de
valores exclusivos na ontologia. Em outras palavras, ap é uma propriedade inversofuncional. Tal característica permite que este sujeito possa ser recuperado pela
combinação deste predicado e objeto.
A FIG. 6.7, ilustra a situação de duas triplas encontradas na ontologia de recorte da
DBPEDIA:
sameas
Mad_Cow
Bovine
Spongiform
Encephalopat
hy
foaf:page
http://en.wikipedia.org/wiki/
Bovine_spongiform_enceph
alopathy
FIG. 6.7: Triplas da ontologia de recorte DBPEDIA
A partir destas triplas, e considerando ?g como um grafo de documentos nomeados
(NAMED GRAPHS) a serem retornados caso as condições da consulta SPARQL sejam
satisfeitas, é possível então, graças à sinonímia, definir a seguinte consulta ilustrada na
FIG. 6.8:
SELECT ?g
WHERE GRAPH ?g{
?as1 foaf:page <wiki:Bovine_spongiform_encephalopathy> .
?as2 foaf:page <wiki:PRNP>
}
FIG. 6.8: Consulta SPARQL que aproveita-se da sinonímia
88
Neste exemplo, ambos os documentos contendo tanto o termo anotado “mad cow”
quanto o termo “Bovine spongiform encephalopathy”, pois ambos serão recuperados
pela consulta descrita anteriormente.
Além disso, para completar os dois termos chaves da pergunta, um outro termo foi
adicionado à consulta utilizando o operador booleano “AND” representado na
linguagem SPARQL pelo símbolo de ponto “.” no final de uma tripla. Este termo
também se utiliza do conceito de tripla chave, onde seu sujeito (?as2) poderá ser
qualquer um dos sinônimos de PRNP, pois todos e apenas eles possuem a combinação
de ?ap e ?ao descritas por foaf:page <wiki:PRNP>, respectivamente.
Todavia, após alguns testes prévios verificou-se a necessidade de alguns
refinamentosnas consultas SPARQLs. A ideia foi melhorar a semântica das consultas,
tendo como base os termos mais utilizados pelos documentos relevantes. O primeiro
passo para este refinamento foi a obtenção de todos os termos anotados (as) pela
ferramenta, considerando-se a massa de dados gerada a partir do raciocinador. A
consulta SPARQL implementada para a obtenção desses termos é apresentada na FIG.
6.9:
SELECT ?g ?as
WHERE ?g { ?as ?ap ?ao }
FIG. 6.9: Consulta SPARQL para obtenção de todos os termos anotados
Este resultado foi armazenado em forma de uma tabela de banco de dados
(termos_anotados) e o passo seguinte foi utilizá-la nas consultas SQL para verificar os
termos mais utilizados em uma determinada pergunta, conforme ilustrado na FIG. 6.10
a seguir:
SELECT trec_relevance.topic, termos_anotados.term,
COUNT(trec_relevance.pmid) AS ContarDepmid
FROM
trec_relevance
INNER JOIN termos_anotados ON
trec_relevance.pmid = termos_anotados.pmid
WHERE
trec_relevance.topic = "164"
GROUP BY
trec_relevance.topic, termos_anotados.term;
FIG. 6.10: Exemplo de consulta SQL para obtenção dos termos mais utilizados em
documentos relevantes
89
Considerando-se apenas o conjunto de documentos anotados pelo raciocinador, esta
consulta ajudou a revelar os termos mais anotados pela ferramenta AutôMeta, mas que
não foram identificados pelo procedimento inicial de criação das consultas SPARQL,
descrito no início do procedimento.
Quando esta consulta foi aplicada à pergunta 164, cujo texto corresponde a “What
is the role of Nurr-77 in Parkinson’s disease?”, o resultado foi extremamente
insatisfatório, pois nenhum dos termos principais desse texto foi anotado como doença
ou proteína, mas apenas os termos “role” e “disease”, como observado na TAB. 6.4.
TAB. 6.4: Termos relevantes (anotados na BaseREASONER) para a consulta 164
Topic
Term
ContarDePmid
164
ontology:model
5
164
ontology:Disease
4
164
ontology:role
4
164
photos:Apoptosis
3
164
ontology:Nerve
3
164
ontology:range
2
164
ontology:address
2
164
foaf:page
2
164
resource:Ruff
1
164
ontology:componente
1
164
resource:T_cell
1
Nesta tabela é possível observar que para a pergunta (topic) 164, como citado
anteriormente, termos genéricos como “ontology:Disease” e “ontology:Role”,
ambos detectados na primeira tentativa de criação do SPARQL, estão entre os termos
(Term) mais anotados, conforme é informado pelo coluna ContarDePmid. Entretanto,
ao continuar a análise desta tabela, também foi possível observar o uso de outros termos
um
pouco
mais
específicos
nestes
documentos
relevantes,
como
o
“photos:Apoptosis”. Por este termo ter sido bastante utilizado nos documentos
relevantes, então o mesmo foi incluído como sujeito (as) na tripla RDF da ontologia
DBPEDIA, tornando-se requisito para os documentos que fossem retornados pelo
SPARQL como resposta à consulta 164. Segundo (GRIVICICH, et al., 2007), o termo
Apoptose significa “A Apoptose, ou morte celular programada, é um processo
importante para eliminar células supérfluas ou defeituosas”. Este processo é citado em
90
diversos artigos que também falam sobre Parkinson, doença contida no texto da
pergunta 164, e a relação entre estes termos foi detectada por esta consulta.
Além disso, o termo “ontology:Nerve” também merece destaque pois, segundo a
NCBI (2011), a proteína “Nur-77”, termo chave da pergunta 164, também é conhecida
como “nerve growth factor IB”, razão pela qual também foi incluída como sujeito (as)
na de umas das triplas do SPARQL. A seguir, na FIG. 6.11, é descrito as triplas
utilizadas na consulta após o refinamento.
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
OPTIONAL {
?as2 rdfs:label "nerf"^^rdfs:PlainLiteral .
<ontology:role>
?ap3 ?ao3 .
<yago:Receptors> ?ap4 ?ao4 .
?as5 rdfs:label "brain"^^rdfs:PlainLiteral .
?as6 rdfs:label "disease"^^rdfs:PlainLiteral
.
<photos:Apoptosis> ?ap7 ?ao7 .
}}
}
FIG. 6.11: Consulta otimizada após o processo de refino manual
Outro refino utilizado foi o uso da cláusula UNION nas consultas SPARQLs,
visando recuperar, em uma mesma consulta, documentos que atendam a outro conjunto
alternativo de triplas. Este procedimento é ilustrado na consulta 171 (“How does Nurr77 delete T cells before they migrate to the spleen OR lymph nodes and how does this
impact autoimmunity?”), conforme a FIG. 6.12.
Nesta consulta, o texto explicita dois tipos de situações: “migrate to the spleen” ou
“migrate lymph node”. Isto é, busca-se recuperar documentos que fazem o uso dos
termos (T_cell, Nurr-77 e Autoimmunity) com “Spleen” ou “Lymph_node”.
O Apêndice 9.1 apresenta uma listagem com todas as SPARQLs utilizadas neste
trabalho.
91
Uma vez obtidos os resultados de recuperação de documentos oriundos do primeiro
e segundo ambientes, verificou-se a necessidade de avaliá-los de forma qualitativa,
utilizando para tanto de coeficientes de medidas amplamente utilizadas na literatura:
precisão e cobertura, discutidas na próxima seção.
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:page <wiki:T_cell> .
<photos:Spleen> ?ap2 ?ao2 .
?as4 property:meshid "D001327"^^<rdfs:#PlainLiteral> .
}}
UNION
{GRAPH ?g{
?as1 foaf:page <wiki:T_cell> .
?as3 foaf:page <wiki:Lymph_node> .
?as4 property:meshid "D001327"^^<rdfs:#PlainLiteral> .
}}
}
FIG. 6.12: Consulta SPARQL da pergunta 171 utilizando o UNION.
6.1.6 Precisão e Cobertura
Esses conceitos são largamente utilizados como métricas adequadas para avaliar
qualitativamente a eficiência dos sistemas de recuperação de informação. Em (BAEZAYATES & RIBIERO-NETO, 1999), esses termos são definidos da seguinte forma:
precisão é a interseção entre os documentos relevantes e os documentos recuperados,
divididos pelo número de documentos recuperados; e cobertura é a interseção entre os
92
documentos relevantes e os documentos recuperados, divididos pelo número de
documentos relevantes.
Segundo BARROS (2011), em um sistema de Recuperação de Informação, a
precisão é o modo de ordenar os itens mais relevantes nos primeiros lugares, enquanto
cobertura é o modo de recuperar todos os itens relevantes do corpus.
Na FIG. 6.13 a seguir, pode-se observar a ilustração de um ambiente de
recuperação de informações, onde para um conjunto de documentos (Todos os
Documentos), existe uma porção destes consideradas relevantes (Documentos
Relevantes) e através do sistema de recuperação, um conjunto de documentos foi
retornado (Documentos Retornados), sendo uma parte destes efetivamente relevantes
(Relevantes Retornados).
FIG. 6.13: Cobertura e Precisão (BARROS, 2011)
Além das medidas já apresentadas, ORMONDE (2009) salienta que existe a
necessidade de um único número para melhor poder comparar dois classificadores
quaisquer. Assim sendo, VAN RIJSBERGEN (1979) criou a F Measure (medida F),
que é uma média harmônica ponderada entre os valores de Cobertura e Precisão.
Neste trabalho, de forma a facilitar os cálculos de precisão e cobertura, foi
necessário conhecer a priori os documentos da base considerados relevantes. Para tanto,
foi utilizada a consulta em SQL descrita na FIG. 6.14.
SELECT topic, pmid
FROM
trec
WHERE
relevance='DEFINITELY'
GROUP BY topic, pmid;
FIG. 6.14: Consulta SQL para recuperação dos documentos relevantes
93
Esta consulta recupera a lista dos documentos (pmid) que contêm trechos relevantes
por cada pergunta (topic). Através da cláusula GROUP BY, foi possível agrupar o
resultado por pergunta e documento relevante, eliminando as repetições geradas por um
ou mais trechos relevantes por documento, pois neste trabalho consideramos a
prerrogativa de que um documento que contém um trecho relevante é um documento
relevante em sua totalidade. Esta consulta foi armazenada no SGBD com o nome
trec_relevance. Através desta consulta, também foi possível descobrir que nem todas as
perguntas da TREC 2006 possuem documentos relevantes (DEFINITELY). Essas
equivalem às perguntas: 173, 175, 180 e 183.
O próximo passo foi obter o número de documentos relevantes para cada pergunta.
Para isso foi criada uma nova consulta (FIG. 6.15), utilizando como base os resultados
obtidos na consulta anterior (trec_relevance).
SELECT trec_relevance.topic, COUNT(*) AS total
FROM
trec_relevance
GROUP BY trec_relevance.topic;
FIG. 6.15: SQL utilizado para calcular o total de documentos relevantes
Para realizar a interseção entre os documentos relevantes e os documentos
recuperados, operações necessárias para o cálculo da cobertura e precisão foram
utilizadas consultas SQL para cada massa de dados do ambiente tradicional (BaseTXT,
BaseREAONSER)
e
do
ambiente
semântico
(BaseREASONER,
BaseNO
REASONER), conforme ilustrado na FIG. 6.16 a seguir:
SELECT d.topic, COUNT(*)
FROM
dbpedia_noreasoner AS d, trec_relevance AS t
WHERE d.topic=t.topic AND d.pmid=t.pmid
GROUP BY d.topic;
FIG. 6.16: Exemplo de consulta para obter a interseção entre os documentos relevantes
e os documentos recuperados
Neste exemplo é realizada a interseção entre o conjunto de perguntas e respostas
geradas
pela
ferramenta
AutôMeta,
94
sem
o
auxílio
do
raciocinador
(BaseNOREASONER) no ambiente de teste SPARQL (dbpedia_noreasoner), e a
tabela de respostas relevantes da TREC. Através da clausula COUNT(*), o número de
interseções é recuperado, sendo estas agrupadas por cada pergunta (GROUP BY).
Para a obtenção dos totais de documentos recuperados por cada pergunta, essencial
para o cálculo da cobertura, as massas de dados foram submetidas à seguinte consulta
SQL (FIG. 6.17):
SELECT DISTINCT (topic), COUNT(*)
FROM dbpedia_noreasoner
GROUP BY topic;
FIG. 6.17: Consulta SQL para obter o total de documentos recuperados por pergunta
Após a coleta dos dados realizada nos ambientes de testes, o próximo passo
consiste na apresentação e análise dos resultados, sob a ótica da Recuperação de
Informação, que se segue na próxima seção.
6.2 AVALIAÇÃO DOS RESULTADOS
As medidas utilizadas para o cálculo dos testes realizados foram obtidas através de
consultas SQL, cujos valores foram formatados em uma planilha eletrônica, conforme
apresentados na TAB. 6.5:
TAB. 6.5: Recorte de exemplo de planilha de cálculos de recall (cobertura) e precision
(precisão)
topic
167
168
169
trec
(relevantes)
47
22
44
txt
(total)
23
45
73
txt
(interseção)
17
22
24
txt
(precision)
txt
(recall)
txt
(f measure)
0,74
0,36
0,49
0,49
1,00
0,66
0,33
0,55
0,41
Cada coluna desta planilha tem o seguinte significado:
- topic representa o identificador da pergunta;
- trec (relevantes) contém o resultado da consulta SQL ilustrada na FIG. 6.1;
95
- total contém o resultado da consulta SQL ilustrada na FIG. 6.17; e
- interseção é o resultado da consulta SQL ilustrada na FIG. 6.16.
Estes valores, gerados para cada massa de resultados pelos ambientes de testes,
foram utilizados para calcular os resultados de:

Precision, precisão calculada através da fórmula

Recall, cobertura calculada por

F Measure, medida F, calculada por
·; e
.
Na seção a seguir são apresentadas discussões sobre os resultados obtidos em cada
um dos ambientes.
6.2.1 Avaliação dos Resultados no Primeiro Ambiente
A FIG. 6.18 a seguir ilustra o cálculo de precisão (precision) da massa de testes do
primeiro ambiente, utilizando a metodologia e os cálculos descritos na seção anterior.
FIG. 6.18: Gráfico comparativo dos resultados de precisão entre baseTXT e
baseREASONER no ambiente tradicional
Neste quadro comparativo observa-se, de maneira geral, o declínio de precisão em
relação aos textos anotados (BaseREASONER), em comparação com os textos sem
96
anotação (BaseTXT). Entretanto, observam-se também alguns destaques de
ascendência de precisão de alguns dados anotados. Por exemplo, analisando-se a
pergunta 160, verificou-se que esta foi notadamente beneficiada pelo texto contido nas
anotações oriundas de sinonímia. Pois, apesar deste ambiente trabalhar de maneira
tradicional ignorando a semântica dos documentos, um dos termos da pergunta 160 o
PRNP, por exemplo, é encontrado apenas nos textos anotados (BaseREASONER)
graças a triplas anotadas em um de seus sinônimos encontrado no texto, o “prion
protein”, conforme observado no recorte da FIG. 6.19 abaixo.
<span property="ontology:abstract" content="PRNP (PRioN Protein) is a
gene that codes for a protein called the prion protein (PrP) …"
datatype="rdf:PlainLiteral" xml:lang="en"> prion protein </span>
FIG. 6.19: Recorte simplificado de uma anotação semântica gerada pelo AutôMeta no
documento 11095696 da TREC.
Em contra partida, na pergunta 165 (“How do Cathepsin D (CTSD) and
apolipoprotein E (ApoE) interactions contribute to Alzheimer’s disease?”), houve uma
grande diferença entre a precisão das massas, sendo 1,00 contra 0,06. Analisando esta
pergunta com maior cuidado, verificou-se que através da consulta FIG. 6.1 que existe
apenas “um” documento relevante, e que este foi o único documento retornado apenas
pela base BaseTXT, alcançando então o valor de 1,00 de precisão.
Por outro lado, o BaseREASONER retornou 16 documentos, justificando assim a
baixa precisão (0,06). Por meio de uma análise manual mais cuidadosa dos documentos
anotados, descobriu-se que em um dos documentos retornados da lista de “não
relevantes” da massa anotada, encontrava-se o documento 9700208 (LAMBERT,
1998).
Fazendo uma análise do documento 9700208 em ambas as bases, observou-se que o
termo CTSD, chave para a pergunta 165, não é encontrado no seu texto original
(BaseTXT). Porém, na anotação semântica realizada pelo AutôMeta sobre o termo
“Cathepsin D”, cujo o valor literal do predicado “auto:abstract” contém o texto “CTSD”
fez com que o Lucene encontrasse tal termo no texto do documento conforme o trecho
mostrado na FIG. 6.20 a seguir:
97
<span property="ontology:abstract" content="Cathepsin D is a protein
that in humans is encoded by the
CTSD
gene. It has been used as a
breast cancer tumor marker." datatype="rdf:PlainLiteral"
xml:lang="en">
Cathepsin D </span>
FIG. 6.20: Trecho de anotação no documento 9700208 com o termo CTSD em destaque
Este exemplo trouxe a luz também uma característica importante da ontologia
utilizada nestes testes: um grande número de predicados objeto-literal com quantidades
relevantes de texto, tal como o “abstract” que acrescentam termos que, apesar de
estarem interligados ao sujeito prejudicaram em muito a precisão da busca devido à
tecnologia utilizada neste ambiente não prover mecanismos que diferenciem uma
palavra comum de texto que pertença a um predicado de uma tripla.
Já nos resultados de cobertura, os textos anotados obtiveram resultados que
atenderam melhor a nossa expectativa, vencendo praticamente em todas as perguntas da
TREC, conforme observado na FIG. 6.21.
FIG. 6.21: Gráfico comparativo de cobertura
Em relação à medida harmônica, os valores entre as duas massas de dados são
bastante parecidos, porém na média final, os documentos anotados perdem de 0,21 para
0,22, conforme observado na FIG. 6.22.
98
FIG. 6.22: Gráfico comparativo de F Measure entre BaseTXT e BaseREASONER no
ambiente tradicional
Conforme já observado, o enriquecimento dos documentos por conta das anotações
aumentaram o número dos resultados encontrados da baseREASONER, acrescendo
bastante nos cobertura, mas prejudicando os resultados de precisão. Esta “oposição”
entre cobertura e precisão é amplamente discutida na literatura da Recuperação de
Informação, a exemplo do artigo de MIHALIK (2006), onde é ressaltada que no mundo
ideal deveria haver uma precisão de 100% (1,0) para cada ponto de cobertura, trazendo
uma linha horizontal num gráfico lado-a-lado. Entretanto, em muitos casos, à medida
que a cobertura aumenta a precisão cai, conforme a imagem ilustrada na FIG. 6.23.
FIG. 6.23: Gráfico de Cobertura e Precisão (MIHALIK, 2006)
99
Finalizando os comentários sobre a avaliação dos testes neste ambiente, pode-se
dizer que, apesar dos resultados negativos terem sido na maioria originada do grande
número de documentos recuperados, a anotação nos documentos manteve seu papel
esperado, enriquecendo com as informações explícitas e implícitas da ontologia
mediante os termos já contidos nos documentos.
As anotações puderam acrescentar ao processo de indexação e busca novas
informações associadas aos documentos, permitindo que uma ferramenta possa ter um
leque maior de opções de termos para pesquisar, podendo expandir suas perguntas. Esse
assunto é bem explorado no trabalho de BECHARA (2010).
6.2.2 Avaliação dos Resultados no Segundo Ambiente
Os próximos resultados a analisar correspondem aos gerados pelos testes realizados
com a configuração do segundo ambiente, isto é, aqueles obtidos a partir das bases de
textos
anotadas
respectivamente
com
e
sem
o
auxílio
do
raciocinador
(BaseREASONER e BaseNOREASONER). Conforme descrito anteriormente, ambas
as bases foram submetidas a consultas SPARQLs para simular um buscador semântico,
fazendo uso somente dos dados semânticos contidos nos documentos.
Os primeiros resultados, de precisão são descritos na FIG. 6.24 que apresenta os
valores obtidos para a precisão neste ambiente.
FIG. 6.24: Gráfico de precisão das bases REASONER e NO REASONER
100
Nos resultados de precisão, os valores foram em geral baixos tanto para os
documentos anotados com o raciocinador (baseREASONER), como para os sem o
racionador (baseNOREASONER), entretanto em diversas situações como nas perguntas
160, 165, 181, 184 ambas as massas alcançaram resultados iguais ou superiores a 0,50
absolutos ou mais de precisão, onde na média final, BaseREASONER alcançou uma
média de 0,19 e BaseNOREASONER de 0,08.
Nos casos das perguntas 160 177 179 186 houve uma nítida queda na qualidade de
precisão dos resultados com a baseREASONER em relação à BaseNOREASONER.
No caso da pergunta 160, esse resultado é justificável pelos baixos números tanto de
documentos retornados (6) quanto pelo número de documentos relevantes (5), obtendo
o
valor
de
0,83
de
precisão
para
BaseNOREASONER,
enquanto
em
BaseREASONER foi retornado 135 documentos e destes 100 documentos
considerados relevantes atingindo o total 0,74 de precisão.
De maneira similar, na pergunta 177 a BaseNOREASONER obteve resultados
melhores, pois este recuperou 24 documentos enquanto a BaseREASONER recuperou
227. Com o objetivo de investigar os documentos adicionais recuperados por esta massa
em relação à antecessora, foi realizada a seguinte consulta descrita na FIG. 6.25:
SELECT pmid
FROM
dbpedia_final
WHERE
topic="177"
AND NOT pmid IN
(
SELECT pmid
FROM dbpedia_final_noreasoner
WHERE topic="177"
)
FIG. 6.25: Consulta SQL para investigação dos baixos resultados de BaseREASONER
perante a BaseNOREASONER
Um dos documentos considerados “não relevantes” para a consulta SPARQL
177, recuperados pela consulta SQL da figura 23 na BaserREASONER foi o
“12556359” (CLARK e AH, 1976).
Em uma investigação mais profunda, averiguou-se que em ambas as massas
(BaseREASONER e BaseNOREASONER) foi anotado o termo “cell growth”
101
Entretanto,
enquanto
na
BaseNOREASONER
somente
a
tripla
(as,ap,ao):
<resource2:Cell_growth, is-a, owl:Thing> foi anotada, na BaseREASONER, graças a
sinonímia, foram anotadas 8 triplas para este termo, dentre elas a tripla
<resource2:Cell_growth, foaf:page, #wiki:Cell_growth>, considerada satisfatória para a
consulta SPARQL utilizada nesta pergunta. Apesar de satisfazer os termos da consulta
traduzida em SPARQL, tal documento não era considerado relevante para a pergunta.
De maneira similar, em relação aos resultados referentes à pergunta 186 (How do
mutations in the Presenilin-1 gene affect Alzheimer’s disease?), no documento não
relevante 9624107 a anotação feita apenas com a BaseNOREASONER trouxe apenas a
informação <“resource:Presenlins” ,“is-a”,“owl:Thing”> para os termo “Presenlins”,
enquanto que a BaseREASONER, trouxe a informação inferida por sinonímia
<“resource:Presenlins” ,“foaf:name”, “presenilin 1 (Alzheimer's disease 3)”>, tripla
cujos predicados (ap) e objetos (ao) fazem parte do SPARQL desta questão.
Estes exemplos reforçam que a precisão cai, pois algumas anotações acabaram por
trazer documentos não relevantes, isto é, tais anotações, resultantes de inferência,
agregam novas informações implícitas ao documento, enriquecendo-o. Porém, para o
especialista da área, os resultados obtidos podem não corresponder à resposta correta
(relevante) para a pergunta.
Ainda sobre este termo, foi observado que a estratégia de anotação semântica
baseada em iterar todos os recursos da ontologia para anotá-los trouxe alguns
malefícios, a exemplo do termo “photos:preselin”, sendo este um objeto (ao) da tripla
<resource:Presenilins, property:hasPhotoCollection, photos:Presenilin>. Entretanto na
iteração do módulo Analisador utilizada pelo AutôMeta, um dos recursos identificados
foi “photos:preselin”, e este em muitas situações acabou sendo o termo utilizado para a
anotação semântica, o mesmo é identificado apenas como “owl:Thing” pelo
raciocinador, empobrecendo as anotações. Baseado neste problema, de modo a obter um
alcance maior dos documentos relevantes da TREC, foi realizada uma consulta com
cláusula “UNION” para tentar encontrar documentos que atendessem ao menos a uma
das duas consultas distintas. Conforme o exemplo da FIG. 6.26.
102
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
<photos:Presenilin> ?ap ?ao
}}
UNION
{GRAPH ?g{
?as foaf:name
"presenilin 1 (Alzheimer's disease 3)"^^<rdfs:#PlainLiteral> .
}}
}
FIG. 6.26: SPARQL da consulta 186
Os resultados de cobertura (FIG. 6.27), por sua vez, trouxeram resultados
extremamente significantes, principalmente para os documentos anotados pela massa
BaseREASONER.
FIG. 6.27: Gráfico comparativo de cobertura (recall) de REASONER e NO
REASONER.
103
Na média final de cobertura, os resultados foram 0,29 (BaseNOREASONSER)
contra 0,81 (BaseREASONER), mostrando uma diferença relevante entre a cobertura
dos documentos sem e com o auxílio do raciocinador. Tal defasagem é um reflexo da
estratégia SPARQL utilizada em algumas perguntas, a exemplo da consulta 160, que
obteve grande vantagem de cobertura graças aos casos de sinonímia, pois em
documentos como o de número 15448157, apesar de não conter no seu texto o termo
“mad cow”, o mesmo usa o termo cientifico “bovine spongiform encephalopathy”. Este
termo foi encontrado pela consulta SPARQL (FIG. 6.8) graças às anotações obtidas
pelo raciocinador, que se aproveitou da sinonímia conforme ilustrada na FIG. 6.7.
A vantagem da massa REASONER é mantida em sua totalidade na média
harmônica, conforme ilustrado na FIG. 6.28 a seguir. Na média final da medida f, NO
REASONER obteve 0,08 e REASONER 0,29.
FIG. 6.28: Gráfico comparativo de Medida F entre as massas REASONER e NO
REASONER
6.2.3 Comparação Final entre os Resultados Obtidos nos Dois Ambientes
Os resultados obtidos nas massas testadas no primeiro ambiente (A1) foram bastante
aproximados, sendo 0,22 para TXT e 0,21 para REASONER, enquanto no segundo
ambiente (A2), a massa NO REASONER obteve 0,08 e por último, a maior média de
104
todas foi alcançada pela massa REASONER obtendo 0,29. Estes valores são
comparados e ilustrados na FIG. 6.29.
Um fator relevante observado foi o número total de documentos recuperados
versus o número total de documentos relevantes nas diversas massas de dados. No
primeiro caso os números obtidos para cada uma das massas foram: TXT 3059;
DBPEDIA 3819; NO REASONER 2623; e REASONER 4712. Enquanto o número
de documentos relevantes retornados para as mesmas, foram: TXT 498; DBPEDIA
638; NO REASONER 389; e REASONER 776. Tais valores justificam, de maneira
geral, os valores de precisão: a massa TXT possui a segunda menor quantidade de
documentos retornados e o terceiro maior número de documentos relevantes retornados,
enquanto a massa REASONER possui o maior número de documentos retornados e o
primeiro maior número de documentos relevantes.
FIG. 6.29: Gráfico comparativo de Medida F entre todas as massas de dados
Analisando os resultados pergunta a pergunta, foi possível observar que as
perguntas que trouxeram maior número de documentos “não relevantes” foram aquelas
que possuem menos termos específicos na ontologia de recorte, dificultando a tarefa de
enriquecimento da consulta SPARQL. Este requisito é fundamental na tarefa de
obtenção de uma melhor filtragem dos resultados, com vistas à melhoria da precisão.
A falta de determinados termos chaves na ontologia utilizada para auxiliar a
anotação foi um fator determinante para a queda no desempenho da recuperação. Esse
fato pode ser explicado, pois termos específicos ou aproximados de uma pergunta não
105
foram anotados pela ferramenta, em nenhum dos documentos. Pode-se citar como
exemplo, a pergunta 164 (What is the role of Nurr-77 in Parkinson’s disease?), na qual
o termo “Parkinson” não foi anotado. Na verdade, esse termo não foi incluído pelo
processo de recorte da ontologia.
6.3 CONSIDERAÇÕES FINAIS
Neste capítulo foi apresentado um conjunto de testes realizados com a ferramenta
AutôMeta desenvolvida no escopo dessa dissertação, visando avaliá-la e demonstrando
os benefícios da anotação semântica no processo de recuperação das informações.
Os testes demonstraram que a sinonímia foi um fator importante nos resultados
obtidos em ambos os ambientes: seja prejudicando a recuperação, trazendo textos a
mais do que os textos considerados relevantes (baixa precisão), ou melhorando a
recuperação, uma vez que através do enriquecimento dos textos (com anotações) foi
possível ampliar o número de textos relevantes retornados (alta cobertura).
No tocante às consultas SPARQL, observou-se que a falta de um especialista no
domínio da ontologia empregada contribuiu para uma escolha pobre dos termos
disponíveis na ontologia, prejudicando o processo de anotação e filtragem das consultas
e, consequentemente, resultando nos baixos valores de precisão alcançados em relação
ao experimento utilizando perguntas estruturadas, isto é, em SPARQL.
Os resultados obtidos pela baseREASONER mostrou que: o uso de informações
implícitas em forma de anotações pode auxiliar na recuperação; e ainda que seus baixos
resultados de precisão, frutos da recuperação de um grande número de documentos, em
sua maioria não relevantes, poderia ser controlado mediante o uso de meta anotações.
Através das metas anotações, o usuário poderia ser informado que para uma
determinada pergunta, um grande número de documentos será retornado devido a casos
de sinonímia como no caso da pergunta 160 da TREC, dando a possibilidade de recusar
documentos com este tipo de relação podendo aumentar então a precisão da sua
recuperação.
Nesse caso, uma ferramenta de busca semântica poderia permitir ao usuário uma
busca guiada, podendo filtrar os tipos de informações inferidas que se deseja recuperar
ou excluir.
106
7 CONCLUSÃO
A Web Semântica idealizada por Bernes-Lee já ultrapassa uma década. Ao longo desse
tempo surgiram diversos trabalhos, estudos especificações, ferramentas, órgãos
governamentais e empresas investindo na ideia de uma internet “mais inteligente”.
Entretanto, entre o sonho de “computadores e pessoas trabalhando em cooperação”, e a
realidade do cidadão na sua rotina cotidiana, que necessita de uma Web mais estruturada
para aperfeiçoar suas buscas, tarefas de trabalho e lazer, ainda existe uma longa
distância a percorrer.
Num mercado onde informações são geradas e consumidas cada vez mais
rapidamente, o desafio de adotar a ideologia da web semântica sem perder tempo e com
baixo custo é grande. A criação de vocabulários, ontologias e taxonomias não é uma
tarefa fácil, entretanto, com a diversidade de vocabulários existentes, a ideia de reuso é
bem mais viável além de oferecer menor custo. Apesar dessa ideia, ainda existe um
grande abismo entre as vantagens que a Web Semântica pode oferecer e o usuário final.
Mediante este desafio, que ultrapassa as portas do meio acadêmico e adentra na
vida do cidadão comum que acessa a internet, esta dissertação tentou demonstrar que a
anotação semântica é a “ponte mais curta” entre o sonho de Bernes-Lee e a prática.
Através de toda pesquisa que vem sendo desenvolvida ao longo desses anos,
diversos conceitos e tecnologias que envolvem a anotação semântica foram
investigados, tais como ontologias, vocabulários e especificações, motes essenciais para
a consolidação das propostas feitas por este trabalho.
Durante o desenvolvimento dessa dissertação, diversas dificuldades foram
encontradas: poucos trabalhos na área, escassez de bibliotecas para fazer análise,
tratamento e consulta de documentos RDFa, maturidade dos padrões de anotação
semântica, bem como das tecnologias envolvidas e falta ontologias de domínio com
termos relevantes ao trabalho feito.
Entretanto, as dificuldades encontradas ao longo do caminho serviram de
motivação para o desenvolvimento de soluções que pudessem atender aos anseios das
propostas feitas nos primórdios de nossas pesquisas. Pode-se dizer que o objetivo final
desse trabalho, que se propôs a desenvolver uma ferramenta de anotações semânticas
107
em documentos de modo a facilitar a sua recuperação por mecanismos de busca, foi
alcançado. Os resultados dos testes de avaliação mostraram que as anotações trouxeram
benefícios significativos no processo de recuperação.
De maneira geral, as soluções propostas no decorrer do trabalho contribuíram para
agregar um valor significativo à dissertação. As principais contribuições são
enumeradas na próxima seção.
7.1 CONTRIBUIÇÕES
Este trabalho, quando ainda encontrava-se em andamento, foi apresentado no Workshop
de Teses e Dissertações de Banco de Dados (FONTES et al., 2010b), onde foram feitas
várias sugestões e críticas que acabaram por aprimorar as ideias e contribuições deste
trabalho. Entre as suas principais contribuições podemos destacar:

Estudo comparativo entre as especificações de anotação semântica bem como
ferramentas de anotação e recuperação;

Especificação de uma arquitetura para anotação semântica que utilize
intensivamente os recursos de uma ontologia e um mecanismo de inferência
associado.

Elaboração de uma especificação para Meta Anotação, que visa descrever e
categorizar as informações sobre as declarações que foram utilizadas para
anotações resultantes de inferência;

Um procedimento de recorte ontológica da base de dados DBpedia, onde fez-se
necessário estudar e conhecer o funcionamento e estrutura da Wikipedia;

Metodologia para a tradução de perguntas em linguagem natural para SPARQL
em documentos anotados automaticamente;

Desenvolvimento do AutôMeta, ferramenta que permite realizar a anotação
semântica automática com o uso opcional de um raciocinador, além de prover
mecanismos que auxiliam na anotação manual e de um recurso de visualização
das triplas anotadas;
108

Utilização de uma abordagem de anotação semântica em formato aberto e
visível pelos principais mecanismos de busca semântica do mercado (ex.:
Sindice e Google);

Elaboração de dois ambientes de recuperação (tradicional e semântico),
permitindo a validação do desempenho da recuperação de informações;

Um estudo de caso na área de gestão ambiental está em andamento, onde
documentos importantes da área serão publicados na Web (Intranet), porém
enriquecidos semanticamente com anotações. Uma amostra destes documentos
foi anotada inicialmente, e posteriormente estes documentos foram consultados
no SINDICE, demonstrando o potencial de recuperação que os documentos
anotados oferecem. Este trabalho foi reportado no artigo exposto no
ONTOBRAS 2010 (FONTES, et al., 2010c).
7.2 TRABALHOS FUTUROS
As pesquisas realizadas por esta dissertação marcam apenas o início de um grande
trabalho que existe pela frente. No decorrer de sua elaboração, diversos avanços
ocorreram no campo da anotação semântica, a exemplo de um nova versão do RDFa28,
reforçando a ideia de que a comunidade está investindo tanto no desenvolvimento de
novas tecnologias quanto na necessidade de utilização da anotação semântica.
Vale a pena observar que, durante o desenvolvimento desse trabalho, foram
levantadas várias questões que, devido a limitações de tempo não puderam ser
investigadas mais profundamente, ficando como sugestão para trabalhos futuros, dentre
as quais podemos citar:

Prever na especificação da arquitetura um módulo para utilização de
técnicas avançadas de linguística computacional como forma de
melhorar o reconhecimento de termos no documento;

Incluir na especificação a participação de um especialista durante o
trabalho de anotação feito pela ferramenta de modo a auxiliar na seleção
dos melhores termos, onde a ferramenta poderia fazer “sugestões” ao
especialista;
28
RDFa Versão 1.1: http://www.w3.org/TR/rdfa-core/
109

Desenvolvimento de um ambiente de testes híbrido, onde o potencial
semântico e as técnicas já bem elaboradas de busca tradicional poderiam
ajudar na obtenção de melhores resultados de precisão e cobertura na
recuperação das anotações semânticas geradas pelo AutôMeta;

Utilização de múltiplas ontologias com o consequente aumento do
número de anotações semânticas, enriquecendo os documentos e
ampliando o leque de triplas para as consultas estruturadas em SPARQL.
7.3 MELHORIAS NO PROTÓTIPO AUTÔMETA
Finalizando, algumas melhorias no protótipo podem ser implementadas:

Recurso que permita a análise visual da meta-anotações, permitindo que
o usuário possa entender melhor a origem de cada anotação oriunda de
inferência.

Otimização no recurso de auto completar explorando recursos
ontológicos, a exemplo de domain e range que a partir de um
determinado predicado ap com range x, a ferramenta automaticamente
sugira apenas objetos do tipo x.

Utilizar o recurso já implementado de comparação de termos da
ontologia com termos do texto, permitindo que na anotação manual,
quando o usuário ao seleciona um termo no documento, a ferramenta já
sugira que o mesmo é um termo da ontologia, similar ao recurso
oferecido na ferramenta SMORE.

Possibilitar a utilização de documentos de entrada em outros formatos
além do texto plano (TXT), tais como Word (DOC) e PDF, através de
soluções que permitam converter os recursos de formatação visual destes
documentos, tais como fontes e tabelas, para equivalentes do HTML.

Criar uma heurística para seleção dos termos relevantes que realmente
devem ser anotados, evitando os problemas encontrados com relação à
redução da precisão nas consultas.
110
8 REFERÊNCIAS
ADIDA, B. et al. RDFa in XHTML: Syntax and Processing. 2008. Disponível em:
<http://www.w3.org/TR/rdfa-syntax/>.
______. RDFa Primer - Bridging the Human and Data Webs. 2008. Disponível em:
<http://www.w3.org/TR/xhtml-rdfa-primer/>.
AFONSO,
M.
SemanticWeb.
2001.
Disponível
<http://paginas.fe.up.pt/~mgi00014/ari/SW.doc>. Acesso em: 10 jan. 2010.
em:
ALMEIDA M. E M. BAX. Uma visão geral sobre ontologias: pesquisa sobre
definições, tipos, aplicações, métodos de avaliação e de construção. Ciência da
Informação, Brasília, DF, Brasil, v. 32, fev. 2004.
ALPERT, J., e N. HAJAJ. We knew the web was big.... 2008. Disponível em:
<http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html>. Acesso em:
11 fev. 2010.
ALTHEIM, M. e PALMER, S. Augmented Metadata in XHTML. 2001. Disponível em:
<http://infomesh.net/2002/augmeta/>. Acesso em: 10 dez. 2010.
ALTHEIM, M. RDF-In-XHTML; A "New" Approach. 2001. Disponível em:
<http://lists.w3.org/Archives/Public/www-rdf-interest/2001Aug/0218>. Acesso em:
21 jan 2010.
ALVARES, R. Investigação do Processo de Stemming na Língua Portuguesa. 2005.
Dissertação (Mestrado em Computação), UFF. 83p.
ALVES, J. Evolui – uma metodologia para auxiliar a criação de ontologias. 2003.
Dissertação (Mestrado em Informática Aplicada), Universidade de Fortaleza.
AUER, S. DBpedia: A Nucleus for a Web of Open Data. Lecture Notes in Computer
Science, p 722-735. Volume 4825. Berlin: Springer, 2007.
BARROS, F. Avaliação de Desempenho de Sistemas de RI. 2011. Disponível em:
<http://www.cin.ufpe.br/~if796/aulas/cap3.ppt>. Acesso em: 20 out. 2010.
BAEZA-YATES R. e B. RIBEIRO-NETO. Modern Information Retrieval. AddisonWesley-Longman, Harlow, UK, May 1999.
BECHARA, A. Expansão semântica de consultas baseada em esquemas
terminológicos: uma experimentação no domínio biomédico. 2010. Dissertação de
Mestrado, DCC, UFRJ.
BERNERS-LEE E D. CONNOLLY. Hypertext Markup Language - 2.0. 1995. Disponível
em: <http://www.ietf.org/rfc/rfc1866.txt>. Acesso em: 21 jan 2010.
BERNERS-LEE, T., J HENDLER, e O LASSILA. The semantic web. Scientfic American,
Maio de 2001: p 34 -43. 2001.
BIZER, C. DBpedia - A crystallization point for the Web of Data. 2007. Web
Semantics: Science, Services and Agents on the World Wide Web, Volume 7, Issue 3,
111
The Web of Data, set.
10.1016/j.websem.2009.07.002.
2009,
p.
154-165,
ISSN
1570-8268,
DOI:
BONIFACIO, A. Metadados Semânticos para Buscas em Bibliotecas Digitais. 2002.
Disponível
em:
<http://www2.uel.br/pessoal/ailton/Trabalhos/SemanaAcadAilton.html>. Acesso em: 21 out 2010.
BORDINI,
R.
Namespaces
XML.
2009.
Disponível
<http://www.clem.ufba.br/tuts/xml/default.htm>. Acesso em: 21 dez 2010.
em:
BRAY, T. Namespaces in XML 1.0 (Third Edition). 2009. Disponível em:
<http://www.w3.org/TR/xml-names/>. Acesso em: 22 mar 2010.
BRAY, T., et al. Extensible markup language (XML) 1.0 (Fifth Edition). 2006.
Disponível em: <http://www.w3.org/TR/xml>. Acesso em: 11 jan 2010.
BRICKLEY, D. E L. MILLER. FOAF Vocabulary Specification 0.98. 2010. Disponível
em: <http://xmlns.com/foaf/spec/>. Acesso em: 12 dez 2010.
BROEKSTRA, J., A. KAMPMAN,. E F. VAN HARMELEN. Sesame: A Generic
Architecture for Storing and Querying RDF and RDF Schema. In: THE SEMANTIC
WEB — ISWC 2002 , v. 2342. Springer Berlin / Heidelberg. p 54-68. Doi: 10.1007/3-54048005-6_7.
CAMPOS, M. E H. GOMES. TAXONOMIA E CLASSIFICAÇÃO: a categorização
como princípio. In: ENCONTRO NACIONAL DE PESQUISA EM CIÊNCIA DA
INFORMAÇÃO, 8. 2007, Salvador, Bahia.
ÇELIK,
T.
E
B,
SUDA.
hCard
1.0.
2009.
<http://microformats.org/wiki/hcard>. Acesso em 16 nov 2009.
Disponível
em:
CUNNINGHAM, H. GATE: an Architecture for Development of Robust HLT
Applications. In: ANNUAL MEETING ON ASSOCIATION FOR COMPUTATIONAL
LINGUISTICS, 40. Association for Computational Linguistics, Stroudsburg, PA, USA.
2002.
DAHLBERG, I. Teoria do conceito. Tradução: Astério Tavares Campos. Ciência da
Informação. Brasília, DF, v. 7, n. 2, dez, 1978.
DAVIS, I. An Introduction to Embedded RDF. 2006. Disponível
<http://research.talis.com/2005/erdf/xtech2006.html>. Acesso em 16 out 2009.
em:
DECKER, S. et al. EDUTELLA: A P2P Networking Infrastructure Based on RDF. 2002.
Disponível em: <http://www2002.org/CDROM/refereed/597/>. Acesso em 12 nov
2010.
DINIZ V. E C. CECCONI. O W3C e a Web Semântica. Reunião da Coordenação da ePing.
SLTI
Ministério
do
Planejamento,
2009.
Disponível
em:
<http://www.w3c.br/palestras/wc3-websemantica-2009/WebSemantica.pdf>.
Acesso em 11 out 2010.
DOBSON, S. E A. BURRILL. Lightweight databases. In: THIRD INTERNATIONAL
WORLD-WIDE WEB CONFERENCE, 3., 1995. Computer Networks and ISDN
Systems. p. 1009-1015, ISSN 0169-7552, v. 27.
112
ELLER, M. Anotações Semânticas de Fontes de Dados Heterogêneas. 2008. Trabalho
de Conclusão de Curso (Bacharel) – Universidade Federal de Santa Catarina,
Florianópolis, Santa Catarina, 2008.
FILESOFT.
RSyntaxTextArea.
2010.
Disponível
<http://fifesoft.com/rsyntaxtextarea/>. Acesso em 10 out 2010.
em:
FILHO F. e B. LÓSCIO. Web Semântica: Conceitos e Tecnologias. Disponível em:
<http://www.ufpi.br/subsiteFiles/ercemapi/arquivos/files/minicurso/mc9.pdf>.
Acesso em 12 jan 2010. Universidade Federal do Piauí.
FONTES, C. A., MOURA, A. M., e CAVALCANTI, M. C. Anotação Semântica.
Relatório Técnico, Seção de Engenharia de Computação, Instituto Militar de
Engenharia(IME), em fase final de publicação, 2011.
______. Anotação Semântica em Documentos. In: WORKSHOP DE TESES E
DISSERTAÇÕES EM BANCO DE DADOS, 2010. Belo Horizonte, Minas Gerais.
______. Recuperação de Informações em Documentos Anotados Semanticamente na
Área de Gestão Ambiental. In: SEMINÁRIO DE PESQUISA EM ONTOLOGIA NO
BRASIL, 2010. Florianópolis, Santa Catarina.
GOEL, K. Google Rich Snippets Tips and Tricks. 2009. Disponível em:
<http://knol.google.com/k/google-rich-snippets-tips-and-tricks>. Acesso em 10 jan
2010.
GONÇALVES, J. E R. SOUZA. RELAÇÕES E CONCEITOS EM ONTOLOGIAS:
teorias de Farradane e Dahlberg. In: SEMINÁRIO DE PESQUISA EM ONTOLOGIA
NO BRASIL, 2008. UFF, Niterói, Rio de Janeiro.
GRAUCIO, A. Metadados para a descrição de recursos da Internet: o padrão Dublin
Core, aplicações e a questão da interoperabilidade. Marília, São Paulo. Dissertação
(Mestrado em Anatomia Patológica) - Universidade Estadual Paulista, 2002.
GRUBER, T. A Translation Approach to Portable Ontology Specifications. Knowl.
Acquis. 1992. p. 199—220. Academic Press Ltd. London, UK.
GUARINO, N. Formal Ontology and Information Systems. In: Proceedings of
INTERNATIONAL CONFERENCE ON FORMAL ONTOLOGY IN INFORMATION
SYSTEMS (FOIS’98), Trento, Italy, 6-8 jun., 1998. Amsterdam, IOS Press. p 3-15.
GUIZZARDI, G. Desenvolvimento para e com Reuso: Um Estudo de Caso no
Domínio de Vídeo sob Demanda. Dissertação (Mestrado em Informática) Universidade Federal do Espírito Santo (UFES), jul 2000.
HEPP, M., R. GARCÍA e A. RADINGER. RDF2RDFa: Turning RDF into snippets for
copy-and-paste. In: 8TH INTERNATIONAL SEMANTIC WEB CONFERENCE
(ISWC2009) POSTERS AND DEMONSTRATIONS TRACK, 2009, Washington, DC.
HERSH W., et. al. TREC 2006 Genomics Track Overview. In: THE FIFTEENTH TEXT
RETRIEVAL CONFERENCE—TREC 2006. NIST. Gaithersburg, Maryland.
HICKSON,
I.
HTML
Microdata.
2010.
<http://www.w3.org/TR/microdata/>. Acesso em 11 jan 2011.
113
Disponível
em:
HOOVER, Nicholas. Obama Team Challenges Web Developers. 2009. Disponível em:
<http://www.informationweek.com/news/government/infomanagement/showArticle.jhtml?articleID=221900361>. United Business Media. Acesso
em 22 jan 2010.
HORRIDGE, M. e BECHHOFER, S. The OWL API: A Java API for Working with
OWL 2 Ontologies. In: OWLED 2009, 6th OWL Experienced and Directions Workshop,
Chantilly, Virginia.
HUNT, L. HTML 5: Reference A Web Developer’s Guide to HTML 5. 2009.
Disponível em: <http://dev.w3.org/html5/html-author/>.
JAKARTA. Apache Commons. Disponível em: <http://commons.apache.org/>.
Acesso em 01 dez 2010.
KAHAN, J. E M. KOIVUNEN. Annotea: An Open RDF Infrastructure for Shared Web
Annotations. In: Computer Networks, Volume 39, Issue 5, 5 August 2002, p. 589-608,
ISSN 1389-1286, DOI: 10.1016/S1389-1286(02)00220-7.
KALYANPUR, A. et al. SMORE – Semantic Markup, Ontology, and RDF Editor.
2009. Disponível em: <http://www.mindswap.org/papers/SMORE.pdf>. Acesso em
11 out 2010.
KHARE, R. E T. ÇELIK. 2006. Microformats - A Pragmatic Path to the Semantic Web.
In: PROCEEDINGS OF THE 15TH INTERNATIONAL CONFERENCE ON WORLD
WIDE WEB. Edinburgh, Scotland. ISBN:1-59593-323-9.
KIRYAKOV, ATANAS., D. OGNYANOV e D. MANOV. OWLIM – A Pragmatic
Semantic Repository for OWL. In: WEB INFORMATION SYSTEMS ENGINEERING –
WISE WORKSHOPS, 2005, v. 3807. Springer Berlin / Heidelberg. p 182-192. Doi:
10.1007/11581116_19.
KOIVUNEN,
M.
Annotea
Project.
2005.
<http://www.w3.org/2001/Annotea/>. Acesso em 01 jan 2010.
Disponível
em:
LEHMANN, J. DBpedia 3.1 breaks 100 million triples barrier. 2008. Disponíve em:
<http://blog.dbpedia.org/2008/08/18/dbpedia-31-breaks-100-million-triplesbarrier/>. Acesso em 03 jan 2010.
LIMA F. e D. SCHWABE, Introdução à Web Semântica. In: I WORKSHOP DE WEB
SEMÂNTICA - SBBD/SBES, 2004, Brasília. Mini tutorial.
LINHALIS, F. WEB SEMÂNTICA - TEORIA E PRÁTICA. 2009. Disponível em:
<http://www.softwarepublico.gov.br/5cqualibr/2-documentos-tecnicos/view/vetorinteroperabilidade/Tutorial_Web_Semantica.pdf>. Documento Técnico. Centro de
Tecnologia da Informação Renato Archer, Campinas, São Paulo.
LUKE S.; L SPECTOR; D. RAGER. Ontology-Based Knowledge Discovery on the
World-Wide Web. In: in: PROCEEDINGS OF THE WORKSHOP ON INTERNETBASED INFORMATION SYSTEMS, AAAI-96 (Portland, Oregon), 1996.
MATOS, L. Anotação Semântica de Conteúdo Web Utilizando Microformatos e
RDFa. Disponível em: <http://bit.ly/aC0rRL>. Acesso em 02 fev 2010.
MCGUINESS D. e F. HARMELEN. OWL Web Ontology Language Overview.
Disponível em: <http://www.w3.org/TR/owl-features/>. Acesso em 04 mar 2010.
114
MOHAN, Priyank. Online retail : How Best Buy is using Semantic Technology to
define
a
new
trend.
2009.
Disponível
em:
<http://priyankmohan.blogspot.com/2009/12/online-retail-how-best-buy-isusing.html>. Acesso em 02 fev 2010.
MOTIK, B., P. PATEL-SCHNEIDER e B. PARSIA. 2009. OWL 2 Web Ontology
Language Structural Specification and Functional-Style Syntax. Disponível em:
<http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/>. Acesso em 02 dez
2010.
MOURA A., M. CAMPOS e C. BARRETO. A survey on metadata for describing and
retrieving Internet resources. In: WORLD WIDE WEB, 1998. Springer Netherlands. p
221-240. Doi: 10.1023/A:1019228117935. ISSN: 1386-145.
NOWACK, B. A Comparison of Microformats, eRDF, and RDFa. 2007. Disponível em:
<http://bnode.org/blog/2007/02/12/comparison-of-microformats-erdf-and-rdfa>.
Acesso em 01 abr 2010.
OBITIKO, M. 2007. Introduction to Ontologies and Semantic Web. Disponível em:
<http://www.obitko.com/tutorials/ontologies-semantic-web/semanticnetworks.html>. Acesso em 02 fev 2010.
ONTOS.
Ontos
Semantic
Technologies.
2010.
Disponível
<http://www.ontos.com/o_eng/index.php?cs=1>. Acesso em 02 fev 2011.
em:
OREN, E. What are Semantic Annotations? Relatório técnico. DERI Galway, 2006.
Disponível
em:
<http://
www.siegfriedhandschuh.net/pub/2006/whatissemannot2006.pdf>. Acesso em 01 mai 2010.
ORMONDE, R. Classificação Automática de Páginas Web Multi-label via MDL e
Support Vector Machines. Dissertação (Mestrado em Informática) Universidade de
Brasília, 2009.
PALMER,
S.
RDF
in
HTML:
Approaches.
2002.
<http://infomesh.net/2002/rdfinhtml/>. Acesso em 01 dez 2009.
Disponível
em:
PEMBERTON, S. XHTML™ 1.0 The Extensible HyperText Markup Language
(Second Edition). Disponível em: <http://www.w3.org/TR/xhtml1/>. Acesso em 02
fev 2010.
PEREIRA,
H.
Microformats.
2005.
Disponível
<http://revolucao.etc.br/archives/microformats/>. Acesso em 02 mar 2010.
em:
POPOV, B. et al. Towards Semantic Web Information Extraction. In: PROCEEDINGS
OF THE 2ND INTERNATIONAL SEMANTIC WEB CONFERENCE, 2003. Sanibel
Island, Florida, USA.
POZUECO, J. RDFa Developer. Disponível em: <http://rdfadev.sourceforge.net/>.
PRIBERAM.
Taxinomia.
Disponível
em:
<http://www.priberam.pt/dlpo/default.aspx?pal=taxinomia. 2011>. Acesso em 02 jul
2010.
115
SIRIN, E et al. Pellet: A practical OWL-DL reasoner. In: Jornal of Web Semantics:
Science, Services and Agents on the World Wide Web, v. 5, ed. 2, Software Engineering
and the Semantic Web, jun 2007, p. 51-53, ISSN 1570-8268, DOI: 10.1016.
SMITH. Relations in biomedical ontologies. In: Jornal of Genome Biology, 2005, v. 6.
Issn 1465-6906. DOI 10.1186/gb-2005-6-5-r46.
SOUZA R. e L.ALVARENGA. A Web Semântica e suas contribuições para a ciência
da informação. In: CIÊNCIA DA INFORMAÇÃO, Brasília, DF, Brasil, v. 33, jun. 2004.
SOWA.
Words
of
Wisdom.
2010.
Disponível
<http://www.jfsowa.com/ontology/index.htm>. Acesso em 02 jan 2011.
em:
STRECKER, H. Conclusão é conseqüência necessária da premissa. 2009. Disponível
em: <http://educacao.uol.com.br/filosofia/ult3323u3.jhtm>. Acesso em 08 fev 2011.
STUDHOLME, O. Microformats & Microdata. 2010. Disponível
<http://oli.jp/slides/microformats-microdata/#s0>. Acesso em 02 ago 2010.
em:
TALIS. Limitations Of Embedding RDF In HTML. 2005. Disponível em:
<http://research.talis.com/2005/erdf/wiki/Main/LimitationsOfEmbeddingRDFInH
TML>. Acesso em 01 dez 2010.
TEXTWISE. API Overview. Disponível em: <http://textwise.com/>. Acesso em 01
dez 2010.
THOMAS,
R.
OpenCalais
Documentation.
2010.
Disponível
em:
<http://www.opencalais.com/documentation/opencalais-documentation>.
Acesso
em 03 mar 2010.
TORI,
A.
Zemanta
service.
2009.
Disponível
em:
<http://developer.zemanta.com/files/Zemanta_API_companion_20080610.pdf>.
Acesso em 01 fev 2011.
VIEIRA R., et al. Web semântica: ontologias, lógica de descrição e inferência. In:
Simpósio Brasileiro de Sistemas Multimidia e Web (WebMedia 2005 - Minicursos). Ed.
Porto Alegre: SBC, Brasil. Tutorial.
116
9 APÊNDICES
9.1 CONSULTAS EM SPARQL
TAB. 9.1 – Tabela de Prefixos e Namespaces utilizados nas consultas SPARQL
PREFIXOS
foaf:
wiki:
photos:
rdfs:
rdf:
ontology:
property:
resource:
resource2:
yago:
NAMESPACE
<http://xmlns.com/foaf/0. 1/>
<http://en.wikipedia.org/wiki/>
<http://www4.wiwiss.fu-berlin.de/flickrwrappr/photos/>
<http://www.w3.org/2000/01/rdf-schema#>
<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
<http://dbpedia.org/ontology/>
<http://dbpedia.org/property/>
<http://dbpedia.org/resource/>
<http://mpii.de/yago/resource/>
<http://dbpedia.org/class/yago/>
160 What is the role of PrnP in mad cow disease?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
<photos:PRNP> ?ap ?ao .
?as1 foaf:page <wiki:Bovine_spongiform_encephalopathy>
}}
UNION
{GRAPH ?g{
?as2 foaf:page <wiki:PRNP> .
?as3 foaf:page <wiki:Bovine_spongiform_encephalopathy>
}}
}
161
What is the role of IDE in Alzheimer’s disease
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 rdfs:label "disease"^^<rdfs:PlainLiteral> .
<ontology:role> ?ap2 ?ao2 .
<ontology:Brain> ?ap3 ?ap3 .
OPTIONAL {?as4 ?ap4 ?ao4 .
FILTER (regex(str(?ao4),'^Alzheimer', "i") )}
}}
117
}
162
What is the role of MMS2 in cancer?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 rdfs:label "drug"^^<rdfs:PlainLiteral> .
?as2 rdfs:label "protein"^^<rdfs:PlainLiteral> .
<ontology:role> ?ap3 ?ao3 .
<ontology:Brain> ?ap4 ?ao4 .
?as5 a yago:TypesOfCancer .
}}
}
163 What is the role of APC (adenomatous polyposis coli) in colon cancer?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:primaryTopic
<resource:Adenomatosis_polyposis_coli> .
?as2 ontology:diseasesdb "2975"^^<rdfs:PlainLiteral> .
}}
UNION
{GRAPH ?g{
?as1
?as2
foaf:page
<wiki:Adenomatosis_polyposis_coli> .
ontology:diseasesdb "2975"^^<rdfs:PlainLiteral> .
}}
}
164
What is the role of Nurr-77 in Parkinson’s disease?
#http://en.wikipedia.org/wiki/Category:Cellular_processes
#http://www.jbc.org/content/276/9/6656.full
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
OPTIONAL { ?as1 property:neurolexid
"sao1417703748"^^<rdfs:PlainLiteral> } .
?as2 rdfs:label "nerf"^^<rdfs:PlainLiteral> .
<ontology:role> ?ap3 ?ao3 .
<yago:Receptors> ?ap4 ?ao4 .
?as5 rdfs:label "brain"^^<rdfs:PlainLiteral> .
118
?as6 rdfs:label "disease"^^<rdfs:PlainLiteral> .
<photos:Apoptosis> ?ap7 ?ao7 .
}}
}
165
How do Cathepsin D (CTSD) and apolipoprotein E (ApoE) interactions
contribute to Alzheimer’s disease?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 rdfs:label "Cathepsin D"^^<rdfs:PlainLiteral> .
?as2 foaf:page <wiki:Apolipoprotein_E> .
?as3 rdfs:label "brain"^^<rdfs:PlainLiteral> .
<photos:Apolipoprotein> ?ap4 ?ao4 .
<ontology:relation> ?ap5 ?ao5 .
}}
}
166
What is the role of Transforming growth factor-beta1 (TGF-beta1) in cerebral
amyloid angiopathy (CAA)?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 rdfs:label "Transforming growth factor"^^<rdfs:PlainLiteral> .
OPTIONAL {?as2 ontology:diseasesdb "32874"^^<rdfs:PlainLiteral>} .
?as3 foaf:page <wiki:Neuron> .
?as4 rdfs:label "brain"^^<rdfs:PlainLiteral> .
?as5 rdfs:label "activity"^^<rdfs:PlainLiteral> .
<ontology:role> ?ap6 ?ao6 .
}}
}
167
How does nucleoside diphosphate kinase (NM23) contribute to tumor
progression?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
#Recupera 3 sameas (resource:NM23-H1, resource:NM23, genes:NM23)
?as1 foaf:page <wiki:NME1> .
?as2 foaf:page <wiki:Nucleoside-diphosphate_kinase> .
}}
119
}
168
How does BARD1 regulate BRCA1 activity?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 property:hasPhotoCollection <photos:BRCA1> .
<photos:BARD1> ?ap2 ?ao2 .
?as3 rdfs:label "activity"^^<rdfs:PlainLiteral> .
}}
}
169
How does APC (adenomatous polyposis coli) protein affect actin assembly
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:primaryTopic <resource:Adenomatous_polyposis_coli> .
<photos:Actin> ?ap2 ?ao2 .
<yago:Proteins> ?ap3 ?ao3 .
OPTIONAL { <ontology:assembly> ?ap4 ?ao4 }
}}
}
170
How does COP2 contribute to CFTR export from the endoplasmic reticulum
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 ontology:refseq "NM_006364"^^<rdfs:PlainLiteral> .
?as2 foaf:page
<wiki:Cystic_fibrosis_transmembrane_conductance_regulator>.
?as3 foaf:primaryTopic <resource:Endoplasmatic_reticulum>
}}
}
171
How does Nurr-77 delete T cells before they migrate to the spleen OR lymph
nodes and how does this impact autoimmunity?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
120
?as1 foaf:page <wiki:T_cell> .
<photos:Spleen> ?ap2 ?ao2 .
?as3 property:meshid "D001327"^^<rdfs:PlainLiteral> .
<photos:Apoptosis> ?ap11 ?ao11
}}
UNION
{GRAPH ?g{
<resource:T-cell> ?ap4 ?ao4 .
<ontology:university> ?ap5 ?ao5 .
<photos:Apoptosis> ?ap6 ?ao6
}}
}
172 How does p53 affect apoptosis?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
<photos:Apoptosis> ?ap1 ?ao1 .
<resource:Apoptosis> ?ap2 ?ao2 .
<resource:Apoptotic> ?ap3 ?ao3 .
<ontology:Protein> ?ap4 ?ao4 .
<ontology:role> ?ap5 ?apo5 .
#<resource:Apoptotic_cell_death> ?ap6 ?ao6 .
}}
}
174
How does BRCA1 ubiquitinating activity contribute to cancer?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 rdfs:label "BRCA1"^^<rdfs:PlainLiteral> .
?as2 rdfs:label "activity"^^<rdfs:PlainLiteral> .
#ideal seria cancer tb...mais num tem
}}
}
176
How does Sec61-mediated CFTR degradation contribute to cystic fibrosis?
121
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:page
<wiki:Cystic_fibrosis_transmembrane_conductance_regulator> .
?as2 ontology:emedicineTopic "535"^^<rdfs:PlainLiteral> .
?as3 foaf:primaryTopic <resource:Endoplasmic_reticulum> .
<programme:18> ?ap4 ?ao4 .
}}
}
177
How do Bop-Pes interactions affect cell growth?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:page <wiki:Cell_growth> .
?as2 property:hasPhotoCollection <photos:Cell_growth> .
<cha:s1> ?ap3 ?ao3
}}
}
178
How do interactions between insulin-like GFs and the insulin receptor affect
skin biology?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:primaryTopic <resource:Insulin> .
<ontology:relative> ?ap2 ?ao2 .
<yago:Receptors> ?ap3 ?ao3 .
?as4 rdfs:label "muscle"^^<rdfs:PlainLiteral> .
}}
}
179
How do interactions between HNF4 and COUP-TF1 suppress liver function?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 ontology:symbol "HNF4A"^^<rdfs:PlainLiteral> .
<ontology:location> ?ap2 ?ao2 .
?as3 ontology:chromosome "20"^^<rdfs:PlainLiteral> .
OPTIONAL {?as4 foaf:page <wiki:Liver_function_tests>}
}}
}
122
181
How do mutations in the Huntingtin gene affect Huntington’s disease?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 foaf:primaryTopic <resource:Huntingtin_protein>.
?as2 property:disambiguates <resource:George_Huntington> .
}}
UNION
{GRAPH ?g{
#nome do descobridor da doença
?as1 foaf:primaryTopic <resource:Huntingtin_protein>.
?as3 foaf:page wiki:George_Huntingon
}}
}
182
How do mutations in Sonic Hedgehog genes affect developmental disorders?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 property:disambiguates <resource:Sonic_Hedgehog>.
?as2 property:hasPhotoCollection
<photos:Developmental_disorder> .
}}
UNION
{GRAPH ?g{
<photos:Sonic_hedgehog> ?ap2 ?ao3.
}}
}
184
How do mutations in the Pes gene affect cell growth?
SELECT DISTINCT ?g
WHERE {
123
{GRAPH ?g{
?as1 foaf:page <wiki:Cell_growth>.
<ChemicalCompound:density> ?ap2 ?ao2 .
<ontology:band> ?ap3 ?ao3 .
<yago:CellularProcesses> ?ap4 ?ao4 .
<resource:BRCA1> ?ap5 ?ao5 .
}}
}
185
How do mutations in the hypocretin receptor 2 gene affect narcolepsy?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
?as1 property:name "hypocretin neuropeptide
precursor"^^<rdfs:PlainLiteral> .
?as2 ontology:meshId "D009290"^^<rdfs:PlainLiteral> .
<photos:Orexin> ?ap3 ?ao3 .
}}
}
186
How do mutations in the Presenilin-1 gene affect Alzheimer’s disease?
SELECT DISTINCT ?g
WHERE {
{GRAPH ?g{
<photos:Presenilin> ?ap ?ao
}}
UNION
{GRAPH ?g{
?as foaf:name "presenilin 1 (Alzheimer's disease
3)"^^<rdfs:PlainLiteral> .
}}
}
187
How do mutations in familial hemiplegic migraine type 1 (FHM1) gene affect
calcium ion influx in hippocampal neurons?
SELECT DISTINCT ?g
WHERE {
124
{GRAPH ?g{
?as foaf:page <wiki:Familial_hemiplegic_migraine> .
?as2 property:meshname "Hippocampus"^^<rdfs:PlainLiteral> .
?as3 foaf:page <wiki:Neuron> .
<yago:IonChannels> ?ap4 ?ao4 .
}}
}
125
Download

explorando inferência em um sistema de anotação semântica