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