Web Semântica. Bruno Henrique Prybecz, José Ivan Gonçalves Júnior, Thiago Radi Mendes. Orientador: Professor Doutor Bruno Müller Junior

Documentos relacionados
Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

PROJETO DE REDES

Semântica para Sharepoint. Busca semântica utilizando ontologias

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

UFG - Instituto de Informática

Engenharia de Requisitos Estudo de Caso

Internet. Gabriela Trevisan Bacharel em Sistemas de Infomação

Web Semântica. Web Semântica. uma

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Web de hoje (2.0) Porquê WEB 2.0?

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Engenharia de Software III

Agregadores de Conteúdo

Universidade da Beira Interior

Desenvolvendo para WEB

Orientação a Objetos

Requisitos de Software

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

1. NÍVEL CONVENCIONAL DE MÁQUINA

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Histórico de Revisão Data Versão Descrição Autor

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Entendendo como funciona o NAT

A PÁGINA DISCIPLINAR DE MATEMÁTICA DO PORTAL DIA A DIA EDUCAÇÃO

02 - Usando o SiteMaster - Informações importantes

Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro de Banco de Dados

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Feature-Driven Development

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

Manual dos Serviços de Interoperabilidade

5 Mecanismo de seleção de componentes

HTML Página 1. Índice

Persistência e Banco de Dados em Jogos Digitais

3.1 Definições Uma classe é a descrição de um tipo de objeto.

PARANÁ GOVERNO DO ESTADO

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Mídias sociais como apoio aos negócios B2C

HTML5. Prof. Salustiano Rodrigues de Oliveira

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

1.1. Organização de um Sistema Computacional

2 Diagrama de Caso de Uso

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA ETEC PROF. MÁRIO ANTÔNIO VERZA CURSO TÉCNICO EM INFORMÁTICA PARA INTERNET

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Artur Petean Bove Júnior Tecnologia SJC

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PADRÕES PARA O DESENVOLVIMENTO NA WEB

Uso de taxonomias na gestão de conteúdo de portais corporativos.

Web Design. Prof. Felippe

Projeto de Arquitetura

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Aplicação Prática de Lua para Web

Web Design Aula 01: Conceitos Básicos

Desenvolvendo Websites com PHP

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

LABORATÓRIO WIRESHARK: DNS

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

4 Segmentação Algoritmo proposto

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

ENGENHARIA DE SOFTWARE I

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

ISO/IEC 12207: Gerência de Configuração

Modelo Cascata ou Clássico

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

Sistemas Distribuídos

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Sphinx Scanner Informações gerais V

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Introdução ao Modelos de Duas Camadas Cliente Servidor

Padrões, Ferramentas e Boas Práticas no Desenvolvimento de Software para Web Semântica

Web Services. Autor: Rômulo Rosa Furtado

Prof. Ravel Silva ( SIMULADO 02 ESCRIVÃO PF

MBA Inteligência Competitiva Com ênfase em BI/CPM. Metadados

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

Transcrição:

Bruno Henrique Prybecz, José Ivan Gonçalves Júnior, Thiago Radi Mendes Web Semântica Trabalho de conclusão do curso de Ciência da Computação. Departamento de Informática, Setor de Ciências Exatas, Universidade Federal do Paraná. Universidade Federal do Paraná Ciência da Computação Departamento de Informática Orientador: Professor Doutor Bruno Müller Junior Curitiba Dezembro de 2013

Lista de ilustrações Figura 1 Framework W3C da Web Semântica................... 12 Figura 2 RDF e RDF Schema............................ 19 Figura 3 Processo implementado........................... 29 Figura 4 Página de download de um torrent no PirateBay............ 30 Figura 5 Página de descrição do filme no IMDB.................. 31 Figura 6 Esquema da Classe Torrent........................ 31 Figura 7 Esquema da Classe Filmes......................... 33 Figura 8 Rede Semântica Torrent-Title....................... 35 Figura 9 Torrents Equivalentes........................... 38 Figura 10 Representação gráfica RDF........................ 55

Lista de tabelas Tabela 1 Declarações documento RDF com entidades............... 54 Tabela 2 Declarações documento RDF com recipiente............... 60

Sumário 1 Introdução..................................... 6 2 Revisão Bibliográfica............................... 8 2.1 Web Semântica................................. 8 2.1.1 Fundamentos.............................. 9 2.1.2 Framework............................... 12 2.1.3 Aplicações................................ 14 2.1.4 Agentes................................. 15 2.1.5 Falácias da Web Semântica...................... 16 2.2 Documentos Web Estruturados: XML..................... 17 2.3 Descrevendo Recursos Web: RDF....................... 18 2.3.1 RDF vs. XML.............................. 21 2.4 Linguagem de Ontologia Web: OWL..................... 22 2.4.1 Sub-linguagens da OWL........................ 23 2.4.2 Exemplos................................ 23 2.5 SWI-Prolog e a Web Semântica........................ 24 3 Proposta do Trabalho.............................. 26 4 Implementação.................................. 29 4.1 Extração de dados............................... 29 4.2 RDF e RDF Schema.............................. 30 4.3 Agente...................................... 35 5 Conclusão..................................... 40 Referências...................................... 41 Apêndices 42 APÊNDICE A XML................................ 43 A.1 XML vs. HTML................................. 43 A.2 A linguagem XML............................... 46 A.3 Atributos em XML............................... 46 A.4 Namespaces................................... 47 A.5 XML Schema.................................. 48

APÊNDICE B RDF................................. 51 B.1 RDF: Fundamentos............................... 51 B.2 RDF Schema.................................. 55 B.3 Reificação.................................... 57 B.4 Tipos de dados................................. 58 B.5 Recipientes................................... 59 B.6 Semântica no RDF e RDF Schema...................... 60 B.7 Inferências.................................... 64 B.8 Consultas SPARQL............................... 65 APÊNDICE C SWI-Prolog............................. 67 C.1 Banco de Dados RDF.............................. 67 C.2 Namespaces e Entidades............................ 73 C.3 Consultas RDF e SPARQL........................... 74

6 1 Introdução A comunicação humana é um processo que envolve troca de informações por meio de sistemas chamados simbólicos, e a sua existência é tão antiga quanto o próprio homem. Toda forma de troca de informações possui dois ou mais indivíduos atuando tanto ativamente quanto passivamente como elementos chaves, e também existem os processos mediados, quando existe um aparato tecnológico intermediando a comunicação entre esses elementos chaves. A World Wide Web é um exemplo de troca de informações mediada. Esses processos de comunicação sofrem constantes evoluções, e a ocorrência mais recente dessa evolução foi a criação da rede mundial de computadores, que com o passar dos anos se tornou o meio de comunicação mais poderoso já concebido [1]. Informação globalizada, rapidez na disponibilização de informações e alcance ilimitado dos dados foram algumas das mais importantes conquistas que a internet proporcionou, alterando totalmente a maneira de ensinar e aprender, comprar e vender, informar e ser informado [1]. Mas como em qualquer processo evolutivo, com o passar dos anos, a Web como conhecemos hoje se mostrou um meio ineficiente, pois não foi capaz de acompanhar o desenvolvimento humano, que demanda cada vez mais um processo rápido, inteligente, eficiente e preciso no compartilhamento de informações, o que abriu caminho para novas ideias na concepção e construção de possíveis melhorias [2]. Uma dessas melhorias é a Web Semântica, ideia proposta por Tim Berners-Lee em 2001 [3], que consiste em adicionar metadados que expressam sentido aos documentos disponíveis na Web, com o intuito de que programas sejam capazes de acessar os dados disponíveis e realizar tarefas automatizadas [2]. A Web Semântica foi criado pela World Wide Web Consortium 1 (W3C), organização fundada por Tim Berners-Lee em 1994 no Instituto de Tecnologia de Massachusetts (MIT), e é mantida pela mesma em colaboração com a organização européia para pesquisas nucleares CERN 2 [4]. Sua proposta é um modelo baseado em níveis, os quais definem um framework contendo requisitos e recomendações necessários para a construção de uma rede semântica dentro da Web atual. O principal propósito da Web Semântica é de atribuir significado ou sentido a qualquer conteúdo publicado na internet, através da utilização de metadados, de maneira a tornar as informações na Web interpretáveis por computadores, alcançando assim resultados mais rápidos, inteligentes, eficientes e precisos no compartilhamento de informações. 1 W3C: http://www.w3.org. 2 CERN: http://home.web.cern.ch.

Capítulo 1. Introdução 7 A W3C vem desempenhando esforços em estudos e pesquisas na busca de ferramentas e padrões com a finalidade de tornar o framework da Web Semântica, além de tudo, eficiente e prático, contando com a contribuição de empresas, entidades e grandes nomes da computação, tornando-a uma tecnologia promissora na evolução das comunições na World Wide Web [2]. O objetivo desse trabalho é apresentar as ideias da Web Semântica, os conceitos e as tecnologias envolvidas, bem como a prática dos mesmos, apresentando uma implementação do que poderia vir a ser a Web Semântica em um domínio específico: o compartilhamento de arquivos entre computadores, utilizando o protocolo BitTorrent 3. A implementação proposta nesse trabalho é construir um agente capaz de obter e interpretar dados modelados no framework RDF e RDF Schema, obtidos a partir de um sistema de extração de documentos RDF. Esse trabalho está organizado da seguinte maneira: conceitos e ferramentas da Web Semântica no capítulo 2, proposta de uma aplicação na Web Semântica no capítulo 3, uma implementação da proposta no capítulo 4 e conclusão no capítulo 5. 3 BitTorrent: http://www.bittorrent.org/.

8 2 Revisão Bibliográfica Este capítulo apresenta conceitos e ferramentas da Web Semântica. A seção 2.1 apresenta os conceitos e ideias da Web Semântica, a seção 2.2 apresenta a linguagem de marcações XML, a seção 2.3 o framework para descrição de recursos RDF, a seção 2.4 a linguagem de ontologias OWL e a seção 2.5 a linguagem de programação em lógica SWI-Prolog e seus módulos referentes à Web Semântica. 2.1 Web Semântica Semântica é o estudo do significado de palavras, frases, símbolos ou sinais, relacionandoos com o que representam no mundo real, utilizando um determinado meio linguístico de representação, isto é, a sua denotação. Por exemplo, a palavra da língua portuguesa "proibido" denota algo que não se deve fazer ou uma restrição no modo de agir em uma certa ocasião, e o símbolo circular contendo uma faixa na diagonal em seu interior na cor vermelha tem o mesmo significado em diversos contextos, como na sinalização de trânsito. A maioria das pessoas, ao longo da vida, tiveram um aprendizado para interpretar tal símbolo, ou seja, aprenderam a linguagem utilizada na representação e, por isso, sabem interpretá-lo e inferir que seu significado é o mesmo da palavra "proibido", e além disso, também conseguem fazer a ligação entre o símbolo e a palavra em uma situação no mundo real. Da mesma forma que nós, seres humanos, não nascemos com o conhecimento de que o símbolo de proibido referido acima denota o sentido de proibição, as máquinas também não conhecem o significado das palavras que estão na Web. Dessa forma, a ideia da Web Semântica é proporcionar essa capacidade de interpretação às máquinas, para que possam manipular dados de maneira mais eficiente e inteligente [3]. Para proporcionar tal capacidade, duas necessidades básicas devem ser consideradas: (1) uma linguagem padrão para descrever uma informação e (2) uma maneira padrão de relacionar duas ou mais informações. Ao suprir a necessidade (1), os computadores conseguiriam de alguma forma entender ao menos a estrutura das informações. Por exemplo, descrever o símbolo de proibido como a sobreposição de um círculo com uma reta na diagonal, ambos na cor vermelha, para que um programa ao encontrar tal descrição execute uma ação de acordo com o sentido do símbolo.

Capítulo 2. Revisão Bibliográfica 9 Já a necessidade (2) tornaria os relacionamentos entre as informações interpretáveis em um determinado contexto. Por exemplo, a letra "E" dentro de um círculo com uma reta na diagonal, ambos na cor vermelha, representa a proibição de estacionar veículos, na sinalização de trânsito. Por si só, o símbolo "E" não possui tal interpretação, nem o símbolo de proibido. Para suprir essas necessidades, duas importantes tecnologias foram propostas para a Web Semântica: (1) a linguagem de marcação extensible Markup Language (XML) e (2) o framework para descrição de recursos Resource Description Framework (RDF) [3] [2]. Mas, mesmo com o poder dessas tecnologias, um problema inerente à semântica permanece: a ambiguidade. Quando duas informações são descritas da mesma forma, mas contêm significados distintos, ou quando duas informações são descritas de maneiras diferentes uma da outra, mas possuem o mesmo significado elas são ditas ambíguas, pois causam indeterminação e dúvidas quanto aos seus significados. Para que fosse possível lidar com tais indeterminações, a Web Semântica incorporou mais um componente básico em sua estrutura: a construção de ontologias. Uma ontologia, que no contexto da Inteligência Artificial e da Web, se trata de definições de relacionamentos entre termos, traz uma taxonomia e um conjunto de regras de inferências capazes de solucionar problemas de ambiguidade [3]. Para a Web Semântica, foi proposto a linguagem de ontologias Web Ontology Language (OWL), que define instâncias ontológicas, descrevendo classes e suas respectivas propriedades e seus relacionamentos [2]. 2.1.1 Fundamentos Desde a criação da World Wide Web, seu objetivo sempre foi a de manter e compartilhar informações, usuários disponibilizando conteúdo e mantendo-os acessíveis por qualquer um em qualquer lugar, com acesso apropriado, formando um sistema de informação global [5]. Contudo, a quantidade e abrangência desses dados vem crescendo de maneira exponencial ao longo dos anos, e assim a internet se tornou uma fonte de dados, muitas vezes, de qualidade duvidosa que podem conter invalidações ou estarem desatualizados [2]. Grande parte desse aglomerado caótico de dados é humanamente interpretável. Porém, de maneira computacional, boa parte da informação não tem sentido, impossibilitando tanto o acesso quanto a compreensão das máquinas sobre o real significado de um dado. Não permitir o acesso a informações por máquinas é uma deficiência na Web atual. Para melhor entender o impacto dessa deficiência, vamos apresentar um exemplo. Considere o seguinte cenário: Pedro é um amante do cinema, coleciona diversos

Capítulo 2. Revisão Bibliográfica 10 filmes antigos e as melhores ferramentas que possui para procurá-los são os buscadores na internet. Certo dia, Pedro descobre que existe um filme bastante raro e comentado na comunidade de cinéfilos que ele ainda não possui. Para obter tal filme decide procurá-lo na rede de compartilhamento de conteúdo via protocolo BitTorrent, por meio dos buscadores atualmente disponíveis na internet, sendo que o nome do filme em português é a única informação que possui. Na sua primeira tentativa, com o título em português, Pedro não encontra nenhum ficheiro relevante, assim decide encontrar o título em inglês do filme, esperando que com isso a busca retorne resultados relevantes. Para encontrar o título em inglês, Pedro acessa outro site, onde realiza uma busca que encontra o título do filme em inglês, e com isso, realiza novamente a busca na ferramenta inicial. Na segunda tentativa, Pedro encontra somente dois arquivos relevantes, onde o primeiro possui poucos usuários no compartilhamento e o segundo possui uma qualidade baixa de imagem, e por isso continua a busca. Analisando um dos arquivos encontrados, Pedro descobre que na verdade o longa metragem é de origem Germânica, e assim, procura novamente em outro site o título do filme em alemão. Com o título original, realiza novamente a busca na ferramenta inicial, que dessa vez encontra resultados relevantes. As tarefas descritas no exemplo acima envolvem diferentes fontes de informações e requerem que um usuário percorra o conteúdo de diversas páginas retornadas por um motor de busca. Essas tarefas poderiam ser executadas de forma automática por um software, se as informações disponibilizadas na Web atual fossem acessíveis por máquinas [3]. Como dito anteriormente, o maior obstáculo encontrado atualmente ao prover uma experiência mais ágil e pontual aos usuários da internet é devido ao fato de boa parte da informação contida na Web não ser interpretável por máquinas, isto é, computadores não são capazes de descobrir corretamente o significado das informações sem a ajuda do usuário. Alguns mecanismos de busca disponíveis atualmente, como o Google R, permite uma maneira um pouco mais satisfatória, empregando alguns artifícios da inteligência artificial e de estatística para que a busca retorne algo esperado pelo usuário. Ainda assim, por mais sofisticados que sejam, esses mecanismos ainda possuem diversas fraquezas: Muitas vezes é necessário realizar a busca novamente com novos termos, ou restringila removendo alguns, quando nada relevante é retornado; Mesmo que páginas importantes sejam retornadas pela busca, haverá também outras milhares irrelevantes, exigindo do usuário uma segunda filtragem que idealmente

Capítulo 2. Revisão Bibliográfica 11 seria papel do próprio mecanismo de busca; As buscas são altamente sensíveis ao vocabulário, visto que os motores de busca se baseiam quase que exclusivamente em padrões na linguagem ou simplesmente na palavra buscada. Essas deficiências estarão agregadas a qualquer mecanismo, mesmo que se utilize diversas tecnologias avançadas de busca, pois o modo mais correto de se obter uma melhora significativa seria tratar os próprios dados que serão buscados, afim de torná-los compreensíveis por programas, o que não é feito. A ideia de se construir uma rede semanticamente estruturada é ainda mais antiga do que a forma que se construiu a Web nas últimas décadas. O artigo "As We May Think" de Vannevar Bush [6], datado de 1945, já continha o esboço de todas as ideias que poderiam ser realizadas a partir do desenvolvimento da Web Semântica [7]. Em seu artigo, Vannevar descreve o que seria uma máquina visionária cuja função seria guardar conhecimento e quantidades colossais de informação para rápido acesso e recuperação quando necessário, e a batizou de Memex (Memory + index). Grande parte da sua descrição, à primeira vista, poderia parecer futurística e impraticável, apesar disso, foi o ponto de partida para a criação da WWW e da Web Semântica. Criada por Sir Timothy John Berners-Lee, ou apenas Tim Berners Lee, também criador da WWW em 1989, a Web Semântica, diferente do que possa parecer, não se trata de uma Web paralela à atual, mas sim uma extensão funcional da mesma, onde toda informação ganharia um significado bem definido, legível e interpretável tanto por máquinas quanto por pessoas. Desde o tempo de Vannevar, a tecnologia obteve tamanho progresso que disponibilizou diversos avanços na área de processamento de informações, o que tornou possível, nos moldes da sua primeira proposta em 1945, a concretização de boa parte da Web Semântica. Podemos citar diversos sistemas que compõem a Web Semântica que permitem melhorias no gerenciamento do conhecimento, cujo objetivo está em acessar, obter e manter o conhecimento ou informação com total controle e organização em conjunto com ações humanas de modo cooperativo, tornando a Web Semântica mais avançada em comparação com a Web atual [2], uma vez que: Conhecimentos são organizados conforme seus significados, atribuindo informações sobre os dados, mudando por completo a estrutura atual na qual toda e qualquer informação é disponibilizada sem qualquer tipo de critério;

Capítulo 2. Revisão Bibliográfica 12 Ferramentas automatizadas serão usadas para a validação de informações existentes e extração de novas informações. A busca baseada em palavras chaves, mais comum atualmente, seria substituída por uma busca mais inteligente através de consultas (queries), de forma a recuperar, tratar e apresentar a informação de forma legível para os usuários; Controle e restrição de acesso a conteúdos não autorizados ou impróprios para usuários. Uma vez que toda informação passa a ser facilmente interpretada por agentes, os mesmos poderiam realizar esse tipo de validação seguindo restrições descritas no próprio dado ou no serviço na Web que estivesse disponibilizando esse dado. 2.1.2 Framework - Web Semântica e suas camadas A W3C definiu um modelo - um framework - do que poderá vir a ser a Web semântica, unindo tecnologias conceituadas, amplamente utilizadas e bastante maduras, como a XML (extended Markup Language) e seu derivado RDF (Resource Description Framework) para a descrição e relacionamento de conteúdo. Figura 1 Framework W3C da Web Semântica A figura 1 apresenta o modelo arquitetural proposto pela W3C, que divide a Web Semântica em camadas. Esse modelo é estruturado como um framework que define como seus componentes são utilizados e arranjados, sendo que cada um cumpre um papel no processo de construção da Web Semântica. Cada camada será detalhada a seguir. A camada UNICODE representa o próprio Unicode Standard, que define um padrão universal de caracteres para representação de textos que são processados por computadores. Uma codificação dentro do padrão UNICODE fornece uma representação nu-

Capítulo 2. Revisão Bibliográfica 13 mérica única para cada caracter, não importando a plataforma, o programa ou mesmo a língua, evitando representações conflitantes entre si. É suportado por diversos sistemas operacionais e todos os navegadores modernos. Exemplos de codificações dentro do padrão UNICODE mais conhecidos atualmente são o UTF-8, UTF-16 e UTF-32 [8]. Para identificarmos qualquer que seja um recurso dentro da Web - livros, autores, locais geográficos, uma pessoa, uma mercadoria, etc - é utilizado um URI (Uniform Resource Identifier), que identifica de forma única cada recurso descrito no padrão Unicode. Possui a mesma ideia de identificadores de tuplas em uma tabela de banco de dados e sua função é semelhante. Um URI pode vir a ser uma URL (Uniform Resource Location), um tipo específico de URI, que quando utilizado permite que o recurso seja acessível através de seu endereço Web correspondente. Nas camadas centrais do modelo temos as linguagens utilizadas para a descrição de recursos na Web Semântica: a XML e o RDF [2]. Com a linguagem XML temos uma forma simples de descrever recursos na Web. Com um vocabulário definido pelo próprio usuário, o compartilhamento de informações se torna mais fácil e direto. O framework RDF é um modelo de dados para descrever declarações sobre recursos que permite uma descrição mais formal em comparação à XML, que modela os dados em um formato de predicados, permitindo inferências sobre os mesmos. O RDF Schema proporciona ao usuário a capacidade de definir o vocabulário de um domínio específico (esquemas), e é baseada no framework RDF. Com um maior poder de representação do que a XML, permite organizar recursos de forma hierárquica, definindo classes, propriedades, relacionamentos e restrições. A camada de vocabulários ontológicos permite que usuários definam seus esquemas de representação de domínios específicos e relacionamentos entre esquemas por meio de ontologias. A RDF Schema é uma linguagem primitiva de ontologias, com uma capacidade baixa de representação de relacionamentos complexos, por esse motivo, foi necessário a padronização de outra linguagem para a descrição de ontologias mais complexas na Web Semântica, a OWL [4] [2]. Na camada de lógica, temos a construção de regras que atuam sobre instâncias e recursos. A camada de prova tem a função de executar essas regras, funcionando como um mecanismo de inferência da Web Semântica. As assinaturas digitais têm como objetivo garantir a autenticidade dos recursos na Web, uma vez que seria prático distinguir definições falsas ou equivocadas das já padronizadas e amplamente utilizadas. Qualquer recurso identificado por uma URL pode ser assinado digitalmente, conferindo ao mesmo a garantia de ser autêntico e confiável através de uma entidade certificadora.

Capítulo 2. Revisão Bibliográfica 14 No escopo da Web Semântica, as assinaturas digitais também garantem a veracidade das informações, desde a fonte de um documento RDF até a conferência de provas. Sem esse recurso seria muito díficil garantir a integridade dos dados e a comprovação da procedência dos recursos, abrindo caminho para fraudes e golpes, levando em conta que a verificação poderia ser feita de forma automática por agentes. Por fim, a camada mais superior, a de confiança, tem o objetivo de avaliar a corretude da prova elaborada nas camadas inferiores. Essa avaliação é feita através da verificação da autenticidade e resolução de contradições. Apesar da estrutura apresentar um objetivo claro e definido, o modelo, em suas camadas superiores (lógica e prova), se encontra em estado imaturo. Um dos pontos que levam a essa afirmação está no fato de que atualmente, mesmo com a padronização da linguagem OWL, ainda não está muito claro como a camada de ontologia irá relacionar-se com as superiores. Algumas tecnologias protótipos que seriam utilizadas nas camadas de lógica e prova já estariam sendo elaboradas, mas necessitam de um melhor desenvolvimento e padronização [9]. Cada camada não seria estritamente implementada na forma como é proposto pelo modelo, sendo que a separação das mesmas tem apenas motivos de direcionamento de estudos e pesquisas, podendo ser adaptadas conforme os avanços e melhorias futuras [2]. Um bom exemplo dessa maleabilidade está no fato de serem difundidas atualmente diversas versões desse mesmo modelo, algumas mais detalhadas e outras ainda mais condensadas, sendo que na realidade tratam-se do mesmo framework. 2.1.3 Aplicações Atualmente, existem algumas aplicações que já utilizam os conceitos da Web Semântica, como: DBPedia: Aplicação que extrai informações do site Wikipedia 1 e os formata em RDF 2. E-culture: Aplicação que permite o acesso à múltiplas coleções de dados de diversos museus da Europa 3. Sgvizler: Biblioteca JavaScript que obtém dados semânticos de servidores e os renderiza em gráficos ou elementos HTML 4. Além disso, a Web Semântica também encontra espaço em diversas outras aplicações dentro da Web atual, tais como: 1 Wikipedia: http://www.wikipedia.org/. 2 DBPedia: http://dbpedia.org/. 3 E-culture: http://e-culture.multimedian.nl/. 4 Sgvizler: http://dev.data2000.no/sgvizler/.

Capítulo 2. Revisão Bibliográfica 15 Sistemas pessoais inteligentes (agentes) que ajudariam constantemente seus portadores nas mais diversas tarefas que possam ser automatizadas dentro da WWW [2] [3]; Aprimoramento nas redes sociais. A experiência que uma rede social proporcionaria, caso fossem criadas ontologias e agentes pessoais pudessem ser utilizados no levantamento e compartilhamento de informações, poderia ser potencializada [10]; Novo paradigma na educação à distância [2]; Sistemas e-commerce inteligentes, que poderiam diminuir consideravelmente o tempo de busca por produtos [2]. Para demonstrar a vantagem em sistemas e-commerce, considere o seguinte cenário: João deseja comprar uma coletânea de DVD s de uma determinada série televisiva na internet, e exige que o produto atenda à alguns critérios básicos para a compra de acordo com as suas preferências e gostos. No atual ponto de evolução da Web, a melhor opção de João seria buscar nos sites de diferentes varejistas, comparando preços, tempo e custo do envio. Ele poderia também procurar um site que compare opções de preços e envios dentre vários varejistas de uma vez, o que não é difícil de se encontrar atualmente. De qualquer maneira, João teria de fazer a maior parte do trabalho, saindo em busca da sua melhor opção de compra e então tomar sua decisão fazendo seu pedido sozinho. Com a Web Semântica, João contaria com mais uma opção, poderia colocar suas preferências em um agente, o qual buscaria na Web, encontraria a melhor opção e faria seu pedido. O agente poderia então abrir um programa de finanças pessoais no computador de João e registrar a quantia monetária que gastou, e ainda poderia marcar a data em que seus DVD s devem chegar em seu calendário. Um agente mais complexo também aprenderia seus hábitos e preferências, por exemplo, se caso João tivesse uma experiência ruim ao realizar uma compra em um site em particular, o agente aprenderia a não usar aquele site em suas futuras buscas. 2.1.4 Agentes Um agente é um sistema computacional automatizado capaz de coletar informações, interpretá-las corretamente e compartilhá-las com outros sistemas, inclusive com outros agentes dentro da Web Semântica. A presença efetiva desses programas aumentará a capacidade de interpretação de dados na Web e tornará vários serviços automatizados disponíveis, dando a visão do real poder da Web Semântica [3].

Capítulo 2. Revisão Bibliográfica 16 Agentes também se comunicariam entre si para trocar informações, tanto para uma simples prova de conceito ou verificação de autenticidade de dados via assinatura digital, bem como na forma de produtores e consumidores: ambos compartilhando ontologias necessárias para a determinação de termos comuns afim de desenvolver novas capacidades de raciocínio [3]. Há diferentes formas de implementação de um agente, de acordo com a complexidade exigida para o seu propósito, mas todas elas com capacidade para interpretação e inferência de informações disponibilizadas na Web, descritas formalmente a partir da linguagem comum de comunicação. Para isso, o uso de conceitos da inteligência artificial, por mais básicos que sejam, se tornam um pré-requisito na construção dessas ferramentas. Por outro lado, não se mostra necessário a utilização de uma IA avançada, uma vez que a utilização de conceitos básicos já atenderia grande parte do proposto pela Web Semântica [3]. 2.1.5 Falácias da Web Semântica A Web Semântica tem sido tema de discussões polêmicas a respeito da sua real utilidade e praticidade. Alguns pontos centrais se mostraram comuns entre as diversas críticas, que muitas vezes dão margem à suposições equivocadas sobre o modelo da Web Semântica, as quais foram denominadas de falácias da Web Semântica [2], são elas: A Web Semântica impõe padrões restritos quanto a formatação de dados através do RDF e do OWL: Na verdade, as linguagens RDF e OWL são completamente neutras a esse respeito, dando ao usuário a capacidade de construir suas próprias definições de termos e seus significados. O único ponto que pode ser considerado restrito é a própria sintaxe das linguagens, o que é mais do que esperado para uma interoperabilidade mundial. Aqui, cabe uma comparação com a linguagem HTML. Para formatar uma página o usuário não precisa respeitar layouts pré-determinados, pelo contrário, o HTML determina tags fixas mas que podem ser usadas conforme a necessidade e vontade do usuário. A Web Semântica requer o uso de significados únicos e pré-definidos para os termos utilizados pelos usuários: Essa falácia talvez seja a mais presente e a que gere mais dúvidas. Ela afirma que seria necessário a definição de apenas uma ontologia e que a mesma seria a referência global para significados de termos dentro da Web, o que anularia a capacidade de construção de ontologias por usuários personalizadas por aplicação. O que torna essa afirmação uma grande falácia é o fato de termos o mapeamento de ontologias como parte do núcleo da Web Semântica, o qual abre espaço para a definição de milhares de ontologias diferentes. É esperado que tais mapeamentos não sejam tão perfeitos como na teoria, contendo

Capítulo 2. Revisão Bibliográfica 17 definições parciais ou até incorretas e dependentes de contexto, porém, apesar disso, atenderiam boa parte dos requisitos da Web Semântica. A Web Semântica exige que todos os usuários entendam em detalhes a complicada representação formal de conhecimento: O erro nessa afirmação está na palavras "todos". Realmente a Web Semântica possui definições complexas sobre representação de conhecimento, como a construção semânticas do RDF e da OWL. A formação de boas e bem estruturadas ontologias dependem de certas especialidades na engenharia do conhecimento, o que cria a necessidade de usuários com esse conhecimento para essa tarefa. Mas, para a maioria dos usuários, a Web Semântica funcionaria como uma camada operando em modo caixa-preta. A Web Semântica necessita que todas as páginas existentes na Web sejam adicionadas de marcações manuais para a formatação adequada de conteúdo: Se fosse verdadeira, essa falácia realmente tornaria o projeto da Web Semântica um completo fracasso. Seria impraticável a tarefa de se remontar todas as páginas Web existentes em conformidade ao formato necessário para garantir a acessibilidade da informação pelas máquinas. A alternativa nesse caso seria a utilização de extratores e analisadores sintáticos, que extrairíam o conteúdo de uma página Web e montaria uma estrutura adequada como resultado. Essa abordagem foi utilizada como parte da implementação proposta nesse trabalho e se mostrou completamente viável. 2.2 Documentos Web Estruturados: XML O HTML (Hyper Text Markup Language), é a linguagem mais utilizada para descrever conteúdo na Internet desde a sua concepção em meados dos anos 90. Se originou da SGML (Standart Generalized Markup Language), a qual constitui um padrão internacional (ISO 8879) para métodos de representação de informações que são legíveis tanto para humanos quanto para computadores. Um arquivo HTML descreve a formatação de conteúdo para exibição em um navegador, ou seja, como esse conteúdo será mostrado para o usuário ao acessar a página que o HTML está formatando (conteúdo + layout). A XML (Extensible Markup Language) é outro tipo de linguagem dentro dos padrões SGML, a qual foi desenvolvida para suprir algumas deficiências que o HTML apresenta. Diferentemente do HTML, a XML é voltada para estruturação de dados, mantendoos em uma formato hierárquico bem definido e, principalmente, acessível por máquinas - um dos pontos cruciais na construção da Web Semântica. Outra principal diferença estre essas duas linguagens é que a XML possui o recurso da extensibilidade. A linguagem HTML define suas tags que são usadas para formatação e as mesmas são fixas, ou seja, não é possível a personalização ou criação de novas tags.

Capítulo 2. Revisão Bibliográfica 18 Já a XML permite que seja definido um vocabulário próprio para cada aplicação sendo, portanto, uma metalinguagem de marcação. Comunidades e setores de negócios já definem vocabulários especializados para a criação de aplicações XML, como por exemplo na matemática (MathML), bioinformática (BSML), recursos humanos (HRML), astronomia (AML), notícias (NewsML) e investimento (IRML) [2]. A estrutura de um arquivo XML é formada por um cabeçalho obrigatório, seguido de algumas referências externas para outros documentos, que são opcionais, e finalmente o corpo do documento, que deve estar dentro de um único elemento chamado de raiz (root). Dentro da raiz pode haver uma estrutura de tamanho qualquer respeitando um modelo hierárquico. O código 2.1 apresenta um exemplo básico de como um documento XML é estruturado. 1 <? xml version =" 1.0 " encoding ="UTF -8"?> 2 3 < character > 4 < firstname > Walter </ firstname > 5 < middlename > Hartwell </ middlename > 6 < lastname >White </ lastname > 7 <alias > Heisenberg </ alias > 8 </ character > Código 2.1 Estrutura XML Na linha 1 temos o cabeçalho do arquivo, que como dito anteriormente, é obrigatório, o atributo encoding é opcional porém bastante recomendado. O elemento raiz do arquivo está presente na linha 3, definindo o corpo do documento que se extende até a linha 8, onde se encontra o fechamento do elemento raiz. No corpo (linhas 4-7), temos a definição de quatro elementos que se encontram no mesmo nível hierárquico, todos contendo tags de abertura e de fechamento, outra obrigatoriedade para um documento XML bem estruturado. O texto entre uma tag de abertura e uma de fechamento é o valor literal da propriedade definida pela tag, por exemplo, a palavra "Walter" é o valor da propriedade <firstname>, linha 4. Uma explicação mais detalhada sobre a XML e como ela se difere do HTML pode ser encontrada no apêndice A. Nas próximas seções vamos apresentar as linguagens e frameworks que utilizam a XML e a importância dessas na implementação dos conceitos da Web Semântica. 2.3 Descrevendo Recursos Web: RDF O RDF (Resource Descripion Framework), framework para descrição de recursos, é um modelo de dados para descrever recursos (dados e meta-dados) que define uma construção em blocos.

Capítulo 2. Revisão Bibliográfica 19 Um bloco é uma tripla objeto-atributo-valor chamada de declaração (statement). No RDF todas as informações são representadas por declarações no formato: (objeto, atributo, valor). O RDF possui domínio independente, isto é, nenhuma suposição é feita sobre um domínio particular. Portanto, cabe ao usuário definir sua própria terminologia numa linguagem de esquema chamada RDF Schema. O nome RDF Schema pode gerar a suposição errada de que o RDF Schema possui uma relação com o RDF, similar à relação entre XML e XML Schema; XML Schema define a estrutura do documento XML, já o RDF Schema define o vocabulário do documento RDF. Nesta seção vamos utilizar o domínio de filmes para os exemplos. Figura 2 RDF e RDF Schema A figura 2 apresenta a separação entre RDF e RDF Schema. Na parte superior da figura o RDF Schema define o vocabulário, as classes são representadas por elipses, como Director e Person, as arestas representam as propriedades pré-definidas, como Type e subclassof, e o retângulo representa a propriedade do domínio Creator. Na parte inferior temos uma declaração RDF que utiliza o vocabulário. Num documento RDF Schema podemos definir um vocabulário, especificar quais

Capítulo 2. Revisão Bibliográfica 20 objetos possuem quais propriedades, quais valores essas propriedades podem assumir e descrever relações entre objetos. Por exemplo: Director is a subclass of Person. Esse fato significa que todo Director é também um Person. Nota-se que há um entendimento prévio do significado de is a subclass of (é uma sub-classe de), assim a aplicação deve interpretar o termo de uma maneira pré-definida. Considere a seguinte afirmação: Heat was direct by Michael Mann. Podemos escrever o seguinte documento RDF 2.2 para o nosso exemplo anterior, que declara que o filme "Heat" foi dirigido por "Michael Mann". 1 <? xml version =" 1.0 " encoding ="UTF -8"?> 2 3 < rdf:rdf 4 xmlns:rdf =" http: // www.w3.org /1999/02/22 - rdf - syntax -ns#" > 5 6 < rdf:description rdf:about ="# Heat "> 7 <directed -by rdf:resource ="# Michael Mann "/> 8 </ rdf: Description > 9 10 </ rdf:rdf > Código 2.2 Exemplo documento RDF A primeira linha do código 2.2 descreve que estamos usando a sintaxe XML, o encoding é opcional, mas declarar a codificação é uma boa prática. A sintaxe escolhida e recomendada pelo W3C para o RDF é a XML, mas outras sintaxes de representação de RDF não baseadas em XML são possíveis. As linhas 3-10 indicam que o documento possui declarações RDF, a propriedade xmlns na tag <rdf:rdf> indica os namespaces usados no documento. A linha 6 indica uma declaração com a tag <rdf:description>, sobre o recurso "#Heat", indentificado pela tag <rdf:about>. A linha 7 declara o diretor do recurso, abreviando a declaração no formato de tripla temos: (#Heat, directed-by, #Michael Mann). O framework RDF e a linguagem RDF Schema são descritos com mais detalhes no apêndice B, com informações sobre a linguagem para consultas SPARQL, axiomas para RDF Schema e inferências sobre recursos RDF.

Capítulo 2. Revisão Bibliográfica 21 2.3.1 RDF vs. XML XML é uma meta-linguagem para definir marcações (markups) e, como vimos na seção 2.2, provê um framework uniforme e um conjunto de ferramentas para análise sintática e troca de dados/metadados entre aplicações, isto é, permite que dados na Web sejam acessíveis por máquinas. Apesar de bastante utilizada na Web, a linguagem XML apresenta duas deficiências na Web Semântica: (1) possível ambiguidade nas declarações e (2) não fornece uma maneira de definir semânticas [4] [2]. Essas deficiências serão esclarecidas a seguir. Para esclarecer (1), considere o seguinte fato: Heat was direct by Michael Mann. Existem diversas formas de representar essa informação em XML. O código 2.3 apresenta três. 1 <movie > 2 <title > Heat </ title > 3 < director > Michael Mann </ director > 4 </ movie > 5 6 < director > 7 <movie > Heat </ movie > 8 < name > Michael Mann </ name > 9 </ director > 10 11 < director > 12 < movie > Heat </ movie > 13 < details > 14 < name > Michael Mann </ name > 15 </ details > 16 </ director > Código 2.3 Representação XML de três diferentes formas No código 2.3 temos três construções XML que para uma pessoa possuem o mesmo significado, porém uma máquina analisando os documentos produz diferentes interpretações. Sem um XML Schema, poderíamos deduzir do código 2.3 que o nome do filme "Heat" é "Michael Mann" e que "Heat" é um diretor, porém essa afirmação não é a correta. Para que todos os documentos sejam interpretados corretamente, é necessário a criação de um XML Schema que expresse as diferentes construções. Porém um documento XML pode ser mapeado em diversas árvores lógicas, o que implica na conversão de todas as possibilidades de representações de um fato em uma única declaração [4]. No RDF a

Capítulo 2. Revisão Bibliográfica 22 forma de escrever uma declaração é padronizada, resolvendo esse problema [2]. O modelo RDF permite encontrar afirmações (triplas) em documentos e distinguir sujeitos de objetos de maneira padronizada [4], como visto na seção 2.3. Outro problema na XML é que não há maneira de definir semânticas nos documentos, vamos esclarecer essa deficiência com o código 2.4. 1 < person > Robert de Niro </ person > 2 < director > Michael Mann </ director > 3 <movie title =" Heat " > 4 <directed -by > Michael Mann </ directed -by > 5 </ movie > Código 2.4 Exemplo XML O código 2.4 declara que "Robert de Niro" é uma pessoa e que "Michael Mann" é um diretor, e dirigiu o filme "Heat". Suponha que queiramos todas as instâncias da classe Person do documento. Em um analisador sintático XML, teríamos como resultado apenas "Robert de Niro", no ponto de vista XML o resultado está correto, mas a resposta é semanticamente insatisfatória, pois poderíamos incluir "Michael Mann" como pessoa, pois todos os diretores são pessoas, ou ainda filmes são dirigidos apenas por pessoas. Esse tipo de informação utiliza um modelo semântico de um domínio particular e não pode ser representado em um documento XML ou RDF, mas sim em um documento RDF Schema. Por isso, o RDF Schema torna informações semânticas acessíveis por máquinas (machine-accessible), de acordo com a visão da Web Semântica. 2.4 Linguagem de Ontologia Web: OWL Mesmo com toda a descritividade que o RDF proporciona, ele ainda possui algumas limitações. O próprio RDF e o RDF Schema combinados oferecem a possibilidade de construção de triplas, predicados simples com uma estruturação de classes e sub-classes, bem como hierarquia de propriedades com seus domínios e suas possíveis extensões, como descrito na seção 2.3. Porém, não é o suficiente para uma implementação completa no framework da Web Semântica [2]. Devido à essas limitações, uma linguagem muito mais robusta foi desenvolvida para atender aos requisitos da Web Semântica em sua visão integra, chamada OWL 5 (Web Ontology Language), a qual fornece determinadas características que dão uma maior carga ontológica, isto é, um modelo descritivo mais poderoso quando se trata de definições e relações de ou entre recursos. 5 OWL: http://www.w3.org/tr/owl-features.

Capítulo 2. Revisão Bibliográfica 23 Desse modo, a OWL provê a criação de um vocabulário adicional para descrição de propriedades e classes, como relação entre classes, cardinalidades, igualdade, distinção e inúmeros outros recursos, oferecendo a expressividade necessária na representação de ontologias mais complexas. Contudo, a OWL utiliza a mesma sintaxe do RDF e, por isso, também é baseada na linguagem XML. 2.4.1 Sub-linguagens da OWL Existem três classificações dentro da OWL, cada uma delas apresenta uma sublinguagem onde todas se derivaram da própria OWL [2], são elas: OWL-Lite: Sub-linguagem que contém uma sintática mais simples. Seu propósito está na descrição de restrições e hierarquia de classes simples; OWL-DL: Se apresenta como sendo expressivamente mais robusta em comparação com a OWL-Lite e baseia-se em lógica descritiva, um fragmento de lógica de primeira ordem, adicionando a possibilidade de raciocínio automatizado. A sigla DL em seu nome se deve à essa correspondência com a lógica descritiva (Description Logic); OWL-Full: A mais completa e expressiva das três sub-linguagens OWL. Seu uso é destinado à situações mais complexas onde a alta expressividade é o mais importante. Utilizando OWL-Full, não é possível realizar inferências em uma ontologia. Cada sub-linguagem é um extensão de sua predecessora, ou seja, cada ontologia válida em OWL-Lite é uma ontologia válida em OWL-DL, onde esta por sua vez é uma ontologia válida em OWL-Full, sendo que essa relação não se torna simétrica em momento algum. 2.4.2 Exemplos Abaixo seguem exemplos de OWL: 1 < rdf: Description rdf: about ="# Instinto Secreto " > 2 < owl:sameas rdf:resource ="#Mr Brooks "/> 3 </ rdf: Description > Código 2.5 Exemplo OWL 1 1 < owl:class rdf:id =" Professor "> 2 < owl:sameas rdf:resource =" Docente "/> 3 </ owl:class > Código 2.6 Exemplo OWL 2

Capítulo 2. Revisão Bibliográfica 24 Ambos os códigos 2.5 e 2.6 definem relações de igualdade entre dois recursos através da propriedade <owl:sameas>. O código 2.5 constrói uma relação de igualdade em nível de identificador, ou seja, duas URI s identificando um mesmo recurso, especificamente nesse caso o filme "#Mr Brooks" passa a ser também identificado pelo seu título traduzido para o português, "#Instinto Secreto". No código 2.6 temos a definição de sinônimos em nível de classe, onde definimos que a classe Professor e a classe Docente representam exatamente a mesma coisa. De maneira semelhante, poderíamos definir distinções entre recursos utilizando a propriedade <owl:differentfrom> ou <owl:distinctmembers>. Além dessas propriedades, a OWL possui diversos outros recursos, dos mais simples aos mais complexos, para a construção de ontologias mais robustas. Nesse trabalho não iremos tão além na descrição da OWL e todas as suas inúmeras possibilidades, pois está fora do escopo deste texto, bem como da implementação proposta. Algumas das construções da linguagem: equivalentclass, classes equivalentes. equivalentproperty, propriedades equivalentes. sameas, igualdade de recursos. TransitiveProperty, propriedade é transitiva. SymmetricProperty, propriedade é simétrica. FunctionalProperty, propriedade é uma função. unionof, união de classes e restrições. complementof, complemento de classes e restrições. intersectionof, interseção de classes e restrições. 2.5 SWI-Prolog e a Web Semântica A programação em lógica possui diversas propriedades positivas em relação à Web Semântica: segurança e gerenciamento automático de memória (essenciais para a programação web), processamento de linguagens naturais, raciocínio automatizado simples, paradigma de programação com restrições e uma maneira natural de lidar com a estrutura em triplas do RDF [11]. Existem diversas implementações da linguagem de programação em lógica Prolog, uma delas é o SWI-Prolog, Sociaal-Wetenschappelijke Informatica-Prolog, utilizada em

Capítulo 2. Revisão Bibliográfica 25 diversos projetos ligados à Web Semântica, como o projeto E-culture 6, desenvolvido pela Universidade Livre de Amsterdã, que permite o acesso à múltiplas coleções de dados de diversos museus. O SWI-Prolog é uma implementação desenvolvida desde 1987, sobre a licença GNU Public License, por Jan Wielemaker 7. A importância do SWI-Prolog na Web Semântica se dá devido a sua adaptação às recomendações do W3C, com suas bibliotecas de armazenamento e acesso a documentos RDF e RDF Schema, SPARQL, e outros protocolos implementados, e a própria linguagem em si que permite uma interface simples para implementação de inferências. As bibliotecas para a Web Semântica se encontram no pacote semweb do SWI- Prolog, que possui uma biblioteca para armazenamento de RDF de mais alto desempenho ligado à programação em lógica [12]. Outras bibliotecas fornecem métodos para leitura e escrita de documentos RDF/XML. O pacote semweb possui todos os requisitos para a implementação de um agente capaz de obter, interpretar e produzir RDF s. No capítulo 4 iremos apresentar um agente implementado em Prolog utilizando o pacote semweb, para demonstrar a prática dos conceitos da Web Semântica. O apêndice C apresenta detalhes do pacote semweb e da linguagem Prolog. 6 E-culture: http://e-culture.multimedian.nl/. 7 SWI-Prolog: http://www.swi-prolog.org.

26 3 Proposta do Trabalho A maior dificuldade no estudo da Web Semântica é encontrar exemplos de implementações de seus conceitos, isto é, implementações de informações prontamente processáveis por um computador, que podem ser usadas para responder consultas que atualmente requerem uma interação humana entre o conteúdo de várias páginas retornadas por um motor de busca [3]. A implementação proposta nesse trabalho é construir um agente capaz de obter e interpretar dados modelados no framework RDF e RDF Schema com o intuito de esclarecer a prática dos conceitos apresentados. Para isso, será apresentado um sistema de extração de documentos RDF. Em seguida, será apresentada uma modelagem de dados num RDF Schema. Por fim, um agente capaz de interpretar e inferir informações a partir dos RDF s. Semântica. De maneira geral o objetivo é demonstrar as vantagens e capacidades da Web Primeiramente, definimos um domínio do conhecimento: o compartilhamento de arquivos em uma rede utilizando BitTorrent. O BitTorrent é um protocolo de compartilhamento de arquivos projetado para se integrar com a Web, criado por Bram Cohen em 2001. Ele é uma extensão do protocolo peer-to-peer (P2P) que opera sobre o TCP (Transmission Control Protocol) [13]. O compartilhamento de arquivos é feito baseado em arquivos torrents. Um arquivo torrent possui apenas informações básicas sobre os arquivos que estão sendo compartilhados, como: tamanho dos arquivos, mapeamento dos fragmentos em que os arquivos estão divididos, nomes (URL s dos trackers), número de downloads e uploads, identificador do peer, e outras informações, que não explicitam o significado dos arquivos que ele representa. Para melhorar o compartilhamento de arquivos torrents, muitos Web Servers dedicados a BitTorrent trackers 1 foram criados, fornecendo informações sobre os arquivos que os torrents representam, além dos torrents em si. Um exemplo é o servidor Web do site Pirate Bay 2, que mantém uma base de arquivos torrents com a intenção de facilitar a busca na rede BitTorrent. O BitTorrent tracker Pirate Bay será o caso de estudo desse trabalho. 1 Um BitTorrent tracker é um servidor que auxilia na comunicação entre peers usando o protocolo BitTorrent. 2 Pirate Bay: http://thepiratebay.sx/about.

Capítulo 3. Proposta do Trabalho 27 Como o domínio dos arquivos na rede BitTorrent é muito vasto, serão utilizados nesse estudo apenas torrents relacionados à filmes. Os sistemas de busca de torrents se baseiam simplesmente em comparações de palavras-chaves dos nomes dos torrents, o que pode não satisfazer semanticamente certas buscas. Por isso vamos implementar um sistema de sugestão de torrents. A sugestão de torrents ocorrerá de duas maneiras: (1) sugerir torrents que representem o mesmo conteúdo e (2) sugerir torrents relacionados pelos seus conteúdos. Assim temos o seguinte cenário: uma base de dados já existente a ser modelada num RDF Schema, extraída num formato RDF e desenvolvida semanticamente. Uma segunda base de dados também foi escolhida: a biblioteca sobre filmes IMDB 3 (Internet Movie Database). O IMDB é um site que possui informações sobre filmes, no qual grande parte do conteúdo é desenvolvido e aperfeiçoado por uma comunidade. Visto que serão utilizados apenas torrents que representam filmes, o IMDB irá ajudar a explorar o conceito de relacionamento entre documentos RDF. Também serão extraídas informações do IMDB no framework RDF. Sendo assim, a base de dados a ser tratada será composta por documentos RDF s que representam torrents e filmes, procurando relacioná-los de uma maneira inteligente. É importante destacar que os documentos RDF s expostos não garantem acesso aos torrents em si, eles apenas representam os torrents e filmes. Tendo definido o domínio do conhecimento, definiremos as ações do agente. Como foi dito, o objetivo é implementar um agente capaz de obter e interpretar documentos RDF s e inferir informações sobre as declarações para sugerir torrents. O agente terá três comportamentos implementados: 1. Encontrar torrents que representem o mesmo conteúdo, ou seja, torrents equivalentes; 2. Encontrar torrents que possuam algum relacionamento pelo conteúdo que representam, ou seja, torrents relacionados; 3. Encontrar informações sobre o conteúdo que o torrent representa. por exemplo: De maneira geral, o agente irá responder a consultas sobre um torrent fornecido, Dado o torrent: "Den andalusiska hunden (Buñuel & Dali 1929)DivX". 3 IMDB: http://www.imdb.com.