CELSO ARAUJO FONTES EXPLORANDO INFERÊNCIA EM UM SISTEMA DE ANOTAÇÃO SEMÂNTICA

Tamanho: px
Começar a partir da página:

Download "CELSO ARAUJO FONTES EXPLORANDO INFERÊNCIA EM UM SISTEMA DE ANOTAÇÃO SEMÂNTICA"

Transcrição

1 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

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: Prof a Ana Maria de Carvalho Moura, Dr.Ing e Prof a Maria Claudia Reis Cavalcanti, D. Sc. RIO DE JANEIRO 2011

3 c2011 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80-Praia Vermelha Rio de Janeiro - RJ CEP 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, p.: il., tab. Dissertação (mestrado) - Instituto Militar de Engenharia - Rio de Janeiro, Banco de Dados. 2. Tecnologias Semânticas. 3. Ontologias. I. Título. II. Instituto Militar de Engenharia CDD XXX.XXX 2

4 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: Prof a Ana Maria de Carvalho Moura, Dr.Ing. Prof a Maria Claudia Reis Cavalcanti, D. Sc Aprovada em 26 de Maio de 2011 pela seguinte Banca Examinadora: Prof a Maria Claudia Reis Cavalcanti, D.Sc - Presidente Prof a Ana Maria de Carvalho Moura, Dr.Ing - IME Prof a Vanessa Braganholo Murta, D.Sc - UFF Prof Wallace Anacleto Pinheiro, D.Sc - IME RIO DE JANEIRO

5 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

6 "Eu Sou a Luz do mundo. Quem me segue, nunca andará em trevas, mas terá a Luz da Vida" (Jesus). 5

7 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

8 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

9 SUMÁRIO LISTA DE ILUSTRAÇÕES...11 LISTA DE TABELA INTRODUÇÃO OBJETIVO ORGANIZAÇÃO DA DISSERTAÇÃO CONCEITOS BÁSICOS METADADOS ONTOLOGIA REGRAS E INFERÊNCIA WEB SEMÂNTICA LINGUAGENS PARA REPRESENTAÇÃO DE ONTOLOGIAS NAMESPACE E URIs CONSIDERAÇÕES FINAIS ANOTAÇÃO SEMÂNTICA E TECNOLOGIAS RELACIONADAS ANOTAÇÃO SEMÂNTICA PADRÕES DE ANOTAÇÃO SEMÂNTICA Microformats erdf RDFa HTML5 Microdata Análise Comparativa FERRAMENTAS DE ANOTAÇÃO SEMÂNTICA Análise Comparativa FERRAMENTAS DE RECUPERAÇÃO SEMÂNTICA

10 3.5 CONSIDERAÇÕES FINAIS ARQUITETURA PARA O DESENVOLVIMENTO DE UM SISTEMA DE ANOTAÇÃO AUTOMÁTICA EM DOCUMENTOS ARQUITETURA PROPOSTA FUNCIONALIDADES DOS COMPONENTES DA ARQUITETURA ESPECIFICAÇÃO DA META-ANOTAÇÃO CONSIDERAÇÕES FINAIS AUTÔMETA: ESPECIFICAÇÃO E PROTOTIPAÇÃO VISÃO GERAL DA FERRAMENTA ESPECIFICAÇÃO E IMPLEMENTAÇÃO INTERFACES Interface CLI Interface GUI FUNCIONALIDADES DA FERRAMENTA Carga da Ontologia Anotação semi-automática (Auto-Complete) Anotação Automática Extração das anotações LIMITAÇÕES E SIMPLIFICAÇÕES DA FERRAMENTA AUTÔMETA CONSIDERAÇÕES FINAIS AVALIAÇÃO DA FERRAMENTA AUTÔMETA PREPARAÇÃO DOS AMBIENTES DE TESTES Metodologia Recorte Ontológico da DBPEDIA Preparação das Bases de Testes

11 6.1.4 Massas de Dados Ambientes de Recuperação de Informação Precisão e Cobertura AVALIAÇÃO DOS RESULTADOS Avaliação dos Resultados no Primeiro Ambiente Avaliação dos Resultados no Segundo Ambiente Comparação Final entre os Resultados Obtidos nos Dois Ambientes CONSIDERAÇÕES FINAIS CONCLUSÃO CONTRIBUIÇÕES TRABALHOS FUTUROS MELHORIAS NO PROTÓTIPO AUTÔMETA REFERÊNCIAS APÊNDICES CONSULTAS EM SPARQL

12 LISTA DE ILUSTRAÇÕES FIG.2.1 Exemplo de categorização de conceitos do domínio de Futebol FIG.2.2 Exemplo de XML FIG.2.3 Exemplo de triplas RDF FIG.2.4 Representação em RDF/XML da FIG FIG.2.5 Ilustração da Utilização do RDF com o RDFS FIG.2.6 Exemplo de RDF utilizando namespaces FIG.2.7 Exemplo de Inferência na ferramenta Protegé FIG.3.1 Representação visual de anotação semântica. Adaptado de OREN et al. (2006) FIG.3.2 Exemplo de Anotação Informal adaptado de (OREN, et al. 2006) FIG.3.3 Exemplo de uso do Microformats FIG.3.4 Anotação Semântica em HTML utilizando a especificação erdf FIG.3.5 Anotação Semântica utilizando a especificação RDFa FIG.3.6 Anotação Semântica utilizando a especificação Microdata FIG.3.7 Interface do GATE FIG.3.8 Interface do Amaya FIG.3.9 Interface do SMORE e um trecho de anotação em RDF gerada pela ferramenta FIG.3.10 Ferramenta RDFa Developer no navegador Firefox FIG.3.11 Recorte enriquecido de anotações e sua pagina de origem FIG.4.1 Arquitetura do Sistema de Anotação Semântica de Documentos FIG.4.2 Recorte de uma ontologia sobre professores e aluno FIG.4.3 Ilustração do funcionamento do módulo de Análise e Comparação FIG.4.4 Algoritmo do procedimento de Anotação Semântica FIG.4.5 Ilustração do funcionamento do Anotador que gera anotações para o termo Celso FIG.4.6 Documento anotado FIG.4.7 Anotação Enriquecida com informações implícitas FIG.4.8 Representação gráfica da Meta-Anotação FIG.4.9 Documento com a Anotação + Meta-Anotação FIG.4.10 Taxonomia de tipos de declarações que geram as meta-anotações FIG.4.11 Ontologia utilizada nos exemplos de meta anotação

13 FIG.5.1 Anotação ilustrando os formalismos definidos anteriormente FIG.5.2 Anotação em RDFa gerada pela ferramenta AutôMeta FIG.5.3 Exemplo Utilização da interface CLI no CMD do Windows XP FIG.5.4 Interface GUI do AutôMeta FIG.5.5 Declaração de Prefixos e Namespaces geradas pelo AutôMeta FIG.5.6 Destaque da anotação gerada pelo AutôMeta automaticamente no ambiente GUI FIG.5.7 Botão de carga da ontologia FIG.5.8 Escolha do Arquivo da Ontologia FIG.5.9 Recurso de AutoCompletar FIG.5.10 Carga de Documento FIG.5.11 Exemplo de Anotações extraídas pelo AutôMeta FIG.5.12 Textos de mensagens de erro FIG.6.1 SQL para obtenção dos documentos relevantes FIG.6.2 Artigo do Wikipedia sobre PRNP e sua versão semântica no DBpedia FIG.6.3 Algoritmo do recorte ontológico da DBPEDIA FIG.6.4 Algoritmo de preparação para o primeiro ambiente de testes FIG.6.5 Algoritmo de preparação para o segundo ambiente de testes FIG.6.6 Ilustração simplificada da anotação feita pelo AutôMeta sobre a pergunta 160 da TREC FIG.6.7 Triplas da ontologia de recorte DBPEDIA FIG.6.8 Consulta SPARQL que aproveita-se da sinonímia FIG.6.9 Consulta SPARQL para obtenção de todos os termos anotados FIG.6.10 Exemplo de consulta SQL para obtenção dos termos mais utilizados em documentos relevantes FIG.6.11 Consulta otimizada após o processo de refino manual FIG.6.12 Consulta SPARQL da pergunta 171 utilizando o UNION FIG.6.13 Cobertura e Precisão (BARROS, 2011) FIG.6.14 Consulta SQL para recuperação dos documentos relevantes FIG.6.15 SQL utilizado para calcular o total de documentos relevantes FIG.6.16 Exemplo de consulta para obter a interseção entre os documentos relevantes e os documentos recuperados FIG.6.17 Consulta SQL para obter o total de documentos recuperados por pergunta

14 FIG.6.18 Gráfico comparativo dos resultados de precisão entre basetxt e basereasoner no ambiente tradicional FIG.6.19 Recorte simplificado de uma anotação semântica gerada pelo AutôMeta no documento da TREC FIG.6.20 Trecho de anotação no documento com o termo CTSD em destaque FIG.6.21 Gráfico comparativo de cobertura FIG.6.22 Gráfico comparativo de F Measure entre BaseTXT e BaseREASONER no ambiente tradicional FIG.6.23 Gráfico de Cobertura e Precisão (MIHALIK, 2006) FIG.6.24 Gráfico de precisão das bases REASONER e NO REASONER FIG.6.25 Consulta SQL para investigação dos baixos resultados de BaseREASONER perante a BaseNOREASONER FIG.6.26 SPARQL da consulta FIG.6.27 Gráfico comparativo de cobertura (recall) de REASONER e NO REASONER FIG.6.28 Gráfico comparativo de Medida F entre as massas REASONER e NO REASONER FIG.6.29 Gráfico comparativo de Medida F entre todas as massas de dados

15 LISTA DE TABELAS TAB. 3.1 Tabela comparativa dos padrões de anotação semântica TAB. 3.2 Tabela comparativa das ferramentas de anotação semântica TAB. 6.1 Exemplo de pergunta TREC TAB. 6.2 Trecho da tabela de avaliação de relevância da TREC TAB. 6.3 Métricas da ontologia de recorte DBpedia TAB. 6.4 Termos relevantes (anotados na BaseREASONER) para a consulta TAB. 6.5 Recorte de exemplo de planilha de cálculos de recall (cobertura) e precision (precisão) TAB. 9.1 Tabela de Prefixos e Namespaces utilizados nas consultas SPARQL

16 LISTA DE ABREVIATURAS FIG - Figura HTML - HyperText Markup Language OWL RDF RDFa SQL TAB - Web Ontology Language - Resource Description Framework - Resource Description Framework in attributes - Structured Query Language - Tabela TREC - Text Retrieval Conference TXT URI W3C XML - Texto Plano - Uniform Resource Identifier - World Wide Web Consortium - Extensible Markup Language 15

17 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. RDF 1 e OWL 2 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

18 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

19 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 RDFa 3, 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 18

20 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

21 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

22 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 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

23 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

24 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

25 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

26 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

27 alunode #Ana leciona #BD #Celso nomecompleto Celso Araujo Fontes sintaxe: FIG. 2.3: Exemplo de triplas RDF Utilizando o RDF em XML, um trecho destas triplas é expresso usando a seguinte <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, labels 4, 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

28 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

29 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 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 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

30 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 Freebase 5. 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 (S 1 e S 2 ) que utilizem o predicado (P if ) para um mesmo objeto (O), sendo aquele predicado definido como 5 29

31 InverseFunctional, é possível inferir que S 1 e S 2 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

32 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

33 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

34 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

35 FIG. 3.2: Exemplo de Anotação Informal adaptado de (OREN, et al. 2006). Formal é um tipo de anotação aqui denominado A f, onde o sujeito as e predicado ap são URIs e ao é uma URI ou um literal. Ontológica é uma anotação aqui denominada A s, sendo esta considerada como uma anotação formal A f, 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 A s, 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 A s 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

36 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, 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 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

37 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 Set 8. 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 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)

38 <div class="vcard"> <span class="fn">celso Fontes</span> <br/> Meu é: <span class=" "> trabalho no <span class="org"> Detran RJ </span> </div> </span> e FIG. 3.3: Exemplo de uso do Microformats O sujeito as possui três predicados ap: fn, e org, com os objetos ao Celso Fontes, 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 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 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

39 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 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 declarada no atributo xmlns. : 38

40 <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 HTML5 Microdata Microdata é parte integrante da especificação do HTML 5 (versão 5), que proporcionar maior semântica ao código de um documento web (HUNT, 2009). visa 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 ; 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

41 <div itemscope itemid="celso" itemref="a b" itemtype="http://ime.eb.br/ontologia#aluno" ></div> <p id="a"> Meu nome é: <span itemprop=" 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 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

42 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

43 TAB. 3.1: Tabela comparativa dos padrões de anotação semântica Microformats erdf RDFa Microdata i ii iii iii v vi Uso de vocabulários customizados Suporte ao Blank Node Suporte a Literal simples Suporte a Literal XML Suporte à Literal tipada Utilização de prefixos e namespaces Referência cruzada entre nós Suporte Oficial da W3C NÃO SIM SIM SIM NÃO NÃO SIM SIM SIM SIM SIM SIM NÃO NÃO SIM NÃO SIM NÃO SIM SIM NÃO SIM SIM NÃO NÃO NÃO NÃO SIM NÃO 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

44 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

45 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

46 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 DBpedia 9, GeoNames 10, IMDB 11 e Musibrainz 12 (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 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

47 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 v Vi Vii Representação da Anotação Armazenamento da Anotação Referência com a Ontologia Referência entre termo e Anotação Entrada de Ontologias Customizadas Tipo Plataforma Annotea Não intrusiva RDF/XML Xpointer SIM SIM Manual Desktop GATE Híbrida Banco de dados e XML URIS SIM SIM Híbrida Desktop OpenCalais Não intrusiva RDF/XML, JSON, Microformat e SimpleFormat URIS SIM NÃO Automática Web Zemanta Não intrusiva XML, JSON, WNJSON, RDF/XML URL NÃO NÃO Automática Web SMORE 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 46

48 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

49 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 Tools 13 e Yahoo! Object Finder 14, 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 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 Inspector 16 se destaca por oferecer uma gama de recursos, a exemplo da visualização das anotações em forma de grafo

50 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

51 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

52 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

53 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

54 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 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

55 procedimento é ilustrado pela FIG. 4.3 a seguir e por um algoritmo, apresentado na FIG 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 fim $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); FIG. 4.4: Algoritmo do procedimento de Anotação Semântica 54

56 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

57 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 <a i,as,ap,ao,ac>, onde é acrescentado o elemento a i que é uma identificação numérica da anotação. O texto Anotado é apresentado na FIG Neste exemplo, o elemento ac foi omitido deste exemplo, já que todas as tuplas pertencem ao mesmo contexto, conforme ilustrado na FIG 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> <2, Celso,orientado por,#ana_maria> <3, Celso,orientado por,#maria_claudia> <4, Celso,orientado por,#yoko> orientado por Maria Claudia <5, Maria Claudia,isa,#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

58 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: _:annotation1 referenceto sourceof 4 orientadopor #Yoko sameas #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> <2, Celso,orientado por,#ana_maria> <3, Celso,orientado por,#maria_claudia> <4, Celso,orientado por,#yoko> orientado por Maria Claudia <5, Maria Claudia,isa,#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

59 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 Meta- Anotaçõ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

60 Cada meta-anotação referencia uma anotação inferida, isto é, uma tupla <a i,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,ao 1,..., ao n >, onde ar indica a identificação da anotação de referência (a i na tupla da anotação inferida), e ao i, 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. #Pelé owl:sameas campeaoda #Edson_Arantes jogouno rdfs:domain SantosFC temsite campeaoda campeaoda atuouem #Copa6 2 #Copa70 JogadorDeFutebol Type-of temsite AlvinegroPraiano allvaluesfrom casoucom #Copa58 rdfs:subclassof Type-of FilmeEsportivo #Assíria Os_Trapalhões e_o_rei_do_futebol SelecaoBrasileira 3 _:bn Desportista unionof campeaodacopa ClubeDeFutebol Brasileiro ReiDaBola Internacional jogouna Brasileira _:bn nacionalidade #Neyma r temprogenitor #Nadine #Neymar SantosSilva differentfrom JogadorDaSelecao Canarinho #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 ontologia apresentada na 59

61 #Pelé owl:sameas campeaoda #Edson_Arantes jogouno rdfs:domain SantosFC temsite campeaoda campeaoda atuouem #Copa6 2 #Copa70 JogadorDeFutebol Type-of temsite AlvinegroPraiano allvaluesfrom casoucom #Copa58 rdfs:subclassof Type-of FilmeEsportivo #Assíria Os_Trapalhões e_o_rei_do_futebol SelecaoBrasileira 3 _:bn Desportista unionof campeaodacopa ClubeDeFutebol Brasileiro ReiDaBola Internacional jogouna Brasileira _:bn nacionalidade #Neyma r temprogenitor #Nadine #Neymar SantosSilva differentfrom JogadorDaSelecao Canarinho #Neymar Pai FIG Equality: são relações de igualdade entre propriedades-propriedades e indivíduos-indivíduos. Declarações (meta-anotação) Anotação Inferida <1, "Annotation Equality SameIndividual">, < #Edson_Arantes,jogouNo, #SantosFC >, < #Edson_Arantes,sameAs, #Pelé > <1, #Pelé,jogouNo, #SantosFC > Inequality: são relações de diferenças entre propriedades-propriedades e indivíduos-indivíduos. 60

62 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" > < #Edson_Arantes,jogouNo, #SantosFC > < jogouno,rdfs:domain, #JogadorDeFutebol > Anotação Inferida <3, #Edson_Arantes,type-of, #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

63 < #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

64 < #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. <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) Declarações (metaanotação) <10, "Annotation Key Rule HasKey" > < #ClubeDeFutebolBrasileiro,owl:hasKey, web_site > < #Santos_Futebol_Clube,typeof, #ClubeDeFutebolBrasileiro > 63

65 < #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

66 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

67 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 <a i, 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

68 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: <a i, as i, T[ao 1..ao m ] ><a i, ap m+1, ao m+1 />..<a i, ap n..ao n /> Termo </> A primeira tupla <a i, as i, T[ao 1..ao m ] > é chamada de pai ou raiz da anotação, sendo as tuplas subsequentes consideradas como suas descendentes; Cada tupla contém um identificador único a i de cada anotação, primordial para as meta anotações; O elemento as i 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 as i, implicitamente sendo considerado como um predicado ap do tipo is-a, e cada termo ao j é uma classe que define o tipo do sujeito as i, onde 0 j m; Cada tupla <a ik,ap ik,ao ik >, identificado por a ik refere-se implicitamente ao sujeito as i da tupla pai, onde cada <ap ik,ao ik > 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 as i da anotação. Assim, conforme a FIG. 5.1 uma anotação da AutôMeta ficaria de modo geral da seguinte forma: <span id="a i " about="as i " typeof="ao 1.. ao n "> <span id="a i+1 " rel="p i+1 " resource="ao n+1 "></span> <span id="a i+m " property="p i+m " content="ao n+m "></span> Termo </span> FIG. 5.1: Anotação ilustrando os formalismos definidos anteriormente O atributo id é usado para representar o identificador do sujeito a i ; about refere-se ao sujeito as i ; typeof o conjunto T[]; rel e property referem-se ao predicado ap k ; e resource e content correspondem ao objeto ao k. 67

69 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 Java 18, em sua versão 1.6. O ambiente utilizado para o desenvolvimento da aplicação foi o NetBeans 19, 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

70 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 Interface CLI FIG. 5.3: Exemplo Utilização da interface CLI no CMD do Windows XP 69

71 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: txt (entrada) e htm (saída) 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

72 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

73 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 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 FIG. 5.7: Botão de carga da ontologia FIG. 5.8: Escolha do Arquivo da Ontologia 72

74 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 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 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

75 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 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 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 FIG. 5.12: Textos de mensagens de erro. 74

76 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 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

77 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 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 intruções disponibilizadas em <http://ir.ohsu.edu/genomics/data.html>

78 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 NEW ID GENE(S) DISEASE QUESTION 160 PRNP Mad Cow Disease What is the role of PrnP in mad 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 PMID OFFSET LENGTH SPANID RELEVANCE 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

79 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) 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 documentos distintos (trec_docs), observados pelo igual número de PMID avaliados, frente ao total de 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 HTMLAsText 22. 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

80 auxiliar esta estratégia de avaliação foram usados dois ambientes descritos na seção Inicialmente, numa avaliação em menor escala, os testes de recuperação foram realizados com as ontologias Gene Ontology 23 e uma versão em OWL da MeSH 24. 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 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 Geo- Names, 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 Disponível em: <http://www.geneontology.org/go.downloads.ontology.shtml> 24 Disponível em: <http://onto.eva.mpg.de/obo/mesh.owl> 79

81 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

82 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

83 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 Total/Valor Classes 323 Object Properties 629 Data Properties 706 Indivíduos 2665 Expressividade DL 25 ALOF(D) 26 Relações de is-a 272 Object Properties Domain 505 Object Properties Range 488 Data Properties Domain 589 Data Properties Range 407 Sinonímia entre indivíduos 549 Functional Data Properties 18 Tamanho 1,549 MB Numa primeira avaliação manual da ontologia gerada, percebeu-se que havia vários indivíduos (individuals) possivelmente repetidos, tais como Bovine_Spongiform_Encephelopathy e Bovine_Spongiform_Encephalitis. Estes indivíduos se relacionavam pela propriedade dbpprop:redirect, utilizado para identificar 25 Description logic (lógica descritiva) 26 A L= Attributive language; O = Object Restrictions (nominais) (ex: hasvalue); F= Functional Properties; D = Data values (ex: data properties) 82

84 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 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 ,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

85 6.1.4 Massas de Dados Como mencionado anteriormente consideremos a base de textos da TREC genômica 2006 com um total de 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 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

86 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 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 Snowball (http://lucene.apache.org/java/3_0_3/api/contrib-snowball/index.html). 85

87 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 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

88 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 as 1 e as 2 são declarados sinônimos (as 1 owl:sameas as 2 ), quando as 1 aparecer em um texto, ele é anotado com base nas triplas existentes na ontologia, onde as 2 aparece como sujeito, e vice-versa. Assim, para montar templates de triplas que pudessem representar as 1 e as 2, 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-chave 27, 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

89 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: Bovine Spongiform Encephalopat hy foaf:page sameas Mad_Cow 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

90 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 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

91 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 TAB. 6.4: Termos relevantes (anotados na BaseREASONER) para a consulta 164 Topic Term ContarDePmid 164 ontology:model ontology:disease ontology:role photos:apoptosis ontology:nerve ontology:range ontology:address foaf:page resource:ruff ontology:componente 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

92 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 Nurr- 77 delete T cells before they migrate to the spleen OR lymph nodes and how does this impact autoimmunity? ), conforme a FIG 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

93 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 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 (BAEZA- YATES & 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

94 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 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 SELECT topic, pmid FROM trec WHERE relevance='definitely' GROUP BY topic, pmid; FIG. 6.14: Consulta SQL para recuperação dos documentos relevantes 93

95 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 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, sem o auxílio do raciocinador 94

96 (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 trec (relevantes) txt (total) txt (interseção) txt (precision) txt (recall) txt (f measure) ,74 0,36 0, ,49 1,00 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

97 - total contém o resultado da consulta SQL ilustrada na FIG. 6.17; e - interseção é o resultado da consulta SQL ilustrada na FIG 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 ; e F Measure, medida F, calculada por. Na seção a seguir são apresentadas discussões sobre os resultados obtidos em cada um dos ambientes Avaliação dos Resultados no Primeiro Ambiente A FIG 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

98 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 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 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 (LAMBERT, 1998). Fazendo uma análise do documento 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 a seguir: 97

99 <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 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 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

100 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 FIG. 6.23: Gráfico de Cobertura e Precisão (MIHALIK, 2006) 99

101 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) 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 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

102 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 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 (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

103 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 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

104 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

105 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 , 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 A vantagem da massa REASONER é mantida em sua totalidade na média harmônica, conforme ilustrado na FIG 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 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

106 todas foi alcançada pela massa REASONER obtendo 0,29. Estes valores são comparados e ilustrados na FIG 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 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

METADADOS PARA A DESCRIÇÃO DE RECURSOS DA INTERNET: As novas tecnologias desenvolvidas para o padrão Dublin Core e sua utilização. Ana Maria Pereira;

METADADOS PARA A DESCRIÇÃO DE RECURSOS DA INTERNET: As novas tecnologias desenvolvidas para o padrão Dublin Core e sua utilização. Ana Maria Pereira; METADADOS PARA A DESCRIÇÃO DE RECURSOS DA INTERNET: As novas tecnologias desenvolvidas para o padrão Dublin Core e sua utilização Ana Maria Pereira; Divino Ignácio Ribeiro Júnior; Guilherme Luiz Cintra

Leia mais

LEONARDO DA SILVA TONINI O MODELO OOHDM APLICADO NO ENSINO DA PROGRAMAÇÃO ORIENTADA A OBJETOS NA UFLA

LEONARDO DA SILVA TONINI O MODELO OOHDM APLICADO NO ENSINO DA PROGRAMAÇÃO ORIENTADA A OBJETOS NA UFLA LEONARDO DA SILVA TONINI O MODELO OOHDM APLICADO NO ENSINO DA PROGRAMAÇÃO ORIENTADA A OBJETOS NA UFLA LAVRAS - MG 2013 LEONARDO DA SILVA TONINI O MODELO OOHDM APLICADO NO ENSINO DA PROGRAMAÇÃO ORIENTADA

Leia mais

SISTEMA DE BANCO DE DADOS ORIENTADOS A OBJETOS

SISTEMA DE BANCO DE DADOS ORIENTADOS A OBJETOS FACULDADE DE TECNOLOGIA DE SÃO PAULO SISTEMA DE BANCO DE DADOS ORIENTADOS A OBJETOS GUILHERME CANTUÁRIA DE CARVALHO SÃO PAULO 2011 FACULDADE DE TECNOLOGIA DE SÃO PAULO SISTEMA DE BANCO DE DADOS ORIENTADOS

Leia mais

Análise e Projeto Orientado a Objeto Usando UML

Análise e Projeto Orientado a Objeto Usando UML Análise e Projeto Orientado a Objeto Usando UML Lorena Borges Moreira Uberlândia, Dezembro/2000. Análise e Projeto Orientado a Objeto Usando UML Lorena Borges Moreira Monografia apresentada ao Curso de

Leia mais

LUCAS LIMA DE SOUZA DESENVOLVIMENTO SEGURO DE APLICAÇÕES WEB SEGUINDO A METODOLOGIA OWASP

LUCAS LIMA DE SOUZA DESENVOLVIMENTO SEGURO DE APLICAÇÕES WEB SEGUINDO A METODOLOGIA OWASP LUCAS LIMA DE SOUZA DESENVOLVIMENTO SEGURO DE APLICAÇÕES WEB SEGUINDO A METODOLOGIA OWASP LAVRAS - MG 2012 LUCAS LIMA DE SOUZA DESENVOLVIMENTO SEGURO DE APLICAÇÕES WEB SEGUINDO A METODOLOGIA OWASP Monografia

Leia mais

Ambiente de Desenvolvimento Web Autoconfigurável para Robótica Educacional

Ambiente de Desenvolvimento Web Autoconfigurável para Robótica Educacional UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO Ambiente de Desenvolvimento

Leia mais

Aplicação dos FRBR. de catálogos. elvis fusco

Aplicação dos FRBR. de catálogos. elvis fusco Aplicação dos FRBR na modelagem de catálogos bibliográficos digitais elvis fusco Aplicação dos FRBR na modelagem de catálogos bibliográficos digitais Conselho Editorial Acadêmico Responsável pela publicação

Leia mais

Universidade Federal de Pernambuco Centro de Informática

Universidade Federal de Pernambuco Centro de Informática Universidade Federal de Pernambuco Centro de Informática Pós-graduação em Ciência da Computação DESENVOLVIMENTO RIGOROSO COM UML-RT Rodrigo Teixeira Ramos DISSERTAÇÃO DE MESTRADO Recife Abril/2005 Universidade

Leia mais

Sistema de Informações Executivas: Suas Características e Reflexões sobre sua Aplicação no Processo de Gestão

Sistema de Informações Executivas: Suas Características e Reflexões sobre sua Aplicação no Processo de Gestão 6 APLICAÇÕES SOCIAIS DAS SOCIEDADES COOPERATIVAS: UM modelo DE DEMONSTRAÇÃO CONTÁBIL Sistema de Informações Executivas: Suas Características e Reflexões sobre sua Aplicação no Processo de Gestão Ilse Maria

Leia mais

SISTEMA PARA CONTROLE DE PONTO DE FUNCIONÁRIOS

SISTEMA PARA CONTROLE DE PONTO DE FUNCIONÁRIOS UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CAMPUS PATO BRANCO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS JEAN CARLO CANTÚ SISTEMA PARA CONTROLE DE PONTO DE FUNCIONÁRIOS TRABALHO

Leia mais

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR

UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR ENIO KILDER OLIVEIRA DA SILVA UM ESTUDO SOBRE SISTEMAS DE BANCO DE DADOS CLIENTE/SERVIDOR ASPER - ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS CURSO SUPERIOR DE

Leia mais

O CAD APLICADO AO PROJETO DO PRODUTO: O PONTO DE VISTA DOS DESIGNERS INDUSTRIAIS. Francisco Duarte Magalhães Silva

O CAD APLICADO AO PROJETO DO PRODUTO: O PONTO DE VISTA DOS DESIGNERS INDUSTRIAIS. Francisco Duarte Magalhães Silva O CAD APLICADO AO PROJETO DO PRODUTO: O PONTO DE VISTA DOS DESIGNERS INDUSTRIAIS Francisco Duarte Magalhães Silva Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Produção,

Leia mais

PROPOSIÇÃO PARA ADAPTAÇÃO DE TERMOS DO. CMMI-DEV 1.3 PARA APLICAÇÃO EM PDPs DE EMPRESAS DE MANUFATURA

PROPOSIÇÃO PARA ADAPTAÇÃO DE TERMOS DO. CMMI-DEV 1.3 PARA APLICAÇÃO EM PDPs DE EMPRESAS DE MANUFATURA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICA E DE MATERIAIS SANDRO DE ARAUJO PROPOSIÇÃO PARA ADAPTAÇÃO DE TERMOS DO CMMI-DEV 1.3 PARA APLICAÇÃO EM PDPs DE

Leia mais

SOFTWARE EDUCACIONAL: A IMPORTÂNCIA DE SUA AVALIAÇÃO E DO SEU USO NAS SALAS DE AULA

SOFTWARE EDUCACIONAL: A IMPORTÂNCIA DE SUA AVALIAÇÃO E DO SEU USO NAS SALAS DE AULA FACULDADE LOURENÇO FILHO ROMMEL XENOFONTE TELES DE MORAIS SOFTWARE EDUCACIONAL: A IMPORTÂNCIA DE SUA AVALIAÇÃO E DO SEU USO NAS SALAS DE AULA FORTALEZA 2003 1 ROMMEL XENOFONTE TELES DE MORAIS SOFTWARE

Leia mais

Projeto de Interfaces de Usuário

Projeto de Interfaces de Usuário Projeto de Interfaces de Usuário Perspectivas Cognitivas e Semióticas Clarisse Sieckenius de Souza *, Jair Cavalcanti Leite, Raquel Oliveira Prates *, Simone D.J. Barbosa * clarisse@inf.puc-rio.br; jair@dimap.ufrn.br;

Leia mais

A utilização de Business Process Modeling como ferramenta de auxílio às práticas de engenharia de requisitos

A utilização de Business Process Modeling como ferramenta de auxílio às práticas de engenharia de requisitos A utilização de Business Process Modeling como ferramenta de auxílio às práticas de engenharia de requisitos ANA CAROLINA ORAN FONSECA E TOLEDO Universidade Federal de Pernambuco posgraducao@cin.ufpe.br

Leia mais

Computação Pervasiva com Aplicações

Computação Pervasiva com Aplicações UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Uma Contribuição à Coordenação na Computação Pervasiva com Aplicações na Área Médica por Rodrigo Santos de Souza

Leia mais

Implementação do Modelo de Maturidade CMMI-DEV na Empresa X

Implementação do Modelo de Maturidade CMMI-DEV na Empresa X SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL Pós-Graduação Lato Sensu em Governança de Tecnologia da Informação Cristiano Ferreira Soares Implementação do Modelo de Maturidade CMMI-DEV na Empresa X Brasília-DF

Leia mais

MARTA LÚCIA SCHAEDLER PARTICIPAÇÃO DOS COLABORADORES NOS RESULTADOS: DIVULGAÇÃO NA PÁGINA INSTITUCIONAL E NÚMEROS DA DEMONSTRAÇÃO DE VALOR ADICIONADO

MARTA LÚCIA SCHAEDLER PARTICIPAÇÃO DOS COLABORADORES NOS RESULTADOS: DIVULGAÇÃO NA PÁGINA INSTITUCIONAL E NÚMEROS DA DEMONSTRAÇÃO DE VALOR ADICIONADO MARTA LÚCIA SCHAEDLER PARTICIPAÇÃO DOS COLABORADORES NOS RESULTADOS: DIVULGAÇÃO NA PÁGINA INSTITUCIONAL E NÚMEROS DA DEMONSTRAÇÃO DE VALOR ADICIONADO CURITIBA 2011 MARTA LÚCIA SCHAEDLER PARTICIPAÇÃO DOS

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas de Raciocínio Lógico

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas de Raciocínio Lógico UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas de Raciocínio Lógico Relatório Técnico INF 008/2004 José Mauro da Silva Prof. Dr. Cedric Luiz de Carvalho GOIÂNIA, agosto de 2004 Sistemas

Leia mais

REPRESENTAÇÃO GRÁFICA NO ESTUDO DE FUNÇÕES E SUAS DERIVADAS

REPRESENTAÇÃO GRÁFICA NO ESTUDO DE FUNÇÕES E SUAS DERIVADAS Universidade Federal de Ouro Preto REPRESENTAÇÃO GRÁFICA NO ESTUDO DE FUNÇÕES E SUAS DERIVADAS. Rieuse Lopes Pinto Programa de Pós-graduação em Educação Matemática Departamento de Matemática Instituto

Leia mais

MELHORIA DE PROCESSOS DE SOFTWARE MULTI-MODELOS BASEADA NOS MODELOS MPS E CMMI-DEV. Marcelo Santos de Mello

MELHORIA DE PROCESSOS DE SOFTWARE MULTI-MODELOS BASEADA NOS MODELOS MPS E CMMI-DEV. Marcelo Santos de Mello MELHORIA DE PROCESSOS DE SOFTWARE MULTI-MODELOS BASEADA NOS MODELOS MPS E CMMI-DEV Marcelo Santos de Mello Dissertação de Mestrado apresentada ao Programa de Pós-graduação em Engenharia de Sistemas e Computação,

Leia mais

A IMPORTÂNCIA DA TECNOLOGIA DA INFORMAÇÃO NAS MICRO E PEQUENAS EMPRESAS: UM ESTUDO EXPLORATÓRIO NA REGIÃO DE JUNDIAÍ

A IMPORTÂNCIA DA TECNOLOGIA DA INFORMAÇÃO NAS MICRO E PEQUENAS EMPRESAS: UM ESTUDO EXPLORATÓRIO NA REGIÃO DE JUNDIAÍ FACULDADE CAMPO LIMPO PAULISTA FACCAMP PROGRAMA DE MESTRADO EM ADMINISTRAÇÃO A IMPORTÂNCIA DA TECNOLOGIA DA INFORMAÇÃO NAS MICRO E PEQUENAS EMPRESAS: UM ESTUDO EXPLORATÓRIO NA REGIÃO DE JUNDIAÍ Adaní Cusin

Leia mais

MANUAL DE NORMATIZAÇÃO DE TRABALHOS ACADÊMICOS DA FAMESC

MANUAL DE NORMATIZAÇÃO DE TRABALHOS ACADÊMICOS DA FAMESC 1 MANUAL DE NORMATIZAÇÃO DE TRABALHOS ACADÊMICOS DA FAMESC Quissamã RJ 2012 2 FACULDADE METROPOLITANA SÃO CARLOS MANUAL DE NORMATIZAÇÃO DE TRABALHOS ACADÊMICOS DA FAMESC Manual para utilização dos trabalhos

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE INFORMÁTICA CIBELE ALVES DA SILVA REIS HENRIQUE REINALDO SARMENTO VINICIUS ZARAMELLA FERRAMENTA DE AUXÍLIO AO DESENVOLVIMENTO DO PENSAMENTO

Leia mais

O PLANEJAMENTO DE MICRO E PEQUENAS EMPRESAS COMERCIAIS POR MEIO DA ATUAÇÃO DA CONTROLADORIA

O PLANEJAMENTO DE MICRO E PEQUENAS EMPRESAS COMERCIAIS POR MEIO DA ATUAÇÃO DA CONTROLADORIA FACULDADE LOURENÇO FILHO BACHARELADO EM CIÊNCIAS CONTÁBEIS ELIS MARIA CARNEIRO CAVALCANTE O PLANEJAMENTO DE MICRO E PEQUENAS EMPRESAS COMERCIAIS POR MEIO DA ATUAÇÃO DA CONTROLADORIA FORTALEZA 2010 1 ELIS

Leia mais

METODOLOGIA CIENTÍFICA: um manual para a realização de pesquisas em administração

METODOLOGIA CIENTÍFICA: um manual para a realização de pesquisas em administração UNIVERSIDADE FEDERAL DE GOIÁS CAMPUS CATALÃO CURSO DE ADMINISTRAÇÃO METODOLOGIA CIENTÍFICA: um manual para a realização de pesquisas em administração Prof. Maxwell Ferreira de Oliveira CATALÃO-GO 2011

Leia mais

COLETÂNEA DE ESTUDOS SOBRE GERENCIAMENTO DE PROCESSOS DE NEGÓCIO (BPM - BUSINESS PROCESS MANAGEMENT)

COLETÂNEA DE ESTUDOS SOBRE GERENCIAMENTO DE PROCESSOS DE NEGÓCIO (BPM - BUSINESS PROCESS MANAGEMENT) 1 COLETÂNEA DE ESTUDOS SOBRE GERENCIAMENTO DE PROCESSOS DE NEGÓCIO (BPM - BUSINESS PROCESS MANAGEMENT) AUTORES: Alexander Correia Marques Ana Catarina Lima Silva Igor Novaes Flori Leonora da Cunha Duarte

Leia mais

REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL

REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL LEONARDO CHWIF REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do título de

Leia mais

IV SEMANA DE INFORMÁTICA

IV SEMANA DE INFORMÁTICA ISSN: 2317-3505 Universidade Federal de Sergipe - UFS Departamento de Sistemas de Informação - DSI IV SEMANA DE INFORMÁTICA Itabaiana, Sergipe, Brasil 11-14 Novembro de 2014 Prefácio SEMINFO/UFSITA 2014

Leia mais