• Nenhum resultado encontrado

A web semântica e um site de busca semântica

N/A
N/A
Protected

Academic year: 2021

Share "A web semântica e um site de busca semântica"

Copied!
109
0
0

Texto

(1)

JOHANNES S. SILVEIRA FERREIRA

A WEB SEMÂNTICA

E UM SITE DE BUSCA SEMÂNTICA

Palhoça 2010

(2)

A WEB SEMÂNTICA

E UM SITE DE BUSCA SEMÂNTICA

Trabalho de Conclusão de Curso apresentado ao Curso de Graduação em Ciência da Computação da Universidade do Sul de Santa Catarina, como requisito parcial à obtenção do título de Bacharel em Ciência da Computação.

Orientador: Prof. Aran Bey Tcholakian Morales, Dr. Engº.

Palhoça 2010

(3)

JOHANNES S. SILVEIRA FERREIRA

A WEB SEMÂNTICA

E UM SITE DE BUSCA SEMÂNTICA

Este Trabalho de Conclusão de Curso foi julgado adequado à obtenção do título de Bacharel em Ciência da Computação e aprovado em sua forma final pelo Curso de Graduação em Ciência da Computação da Universidade do Sul de Santa Catarina.

Tubarão, 25 de novembro de 2010.

______________________________________________________ Professor e orientador Aran Bey Tcholakian Morales, Dr. Engº.

Universidade do Sul de Santa Catarina

______________________________________________________ Professora Maria Inés Castiñeira, Dra.

Universidade do Sul de Santa Catarina

______________________________________________________ Professor Osmar de Oliveira Braz Junior, Me.

(4)

Dedico este trabalho às pessoas mais importantes da minha vida, minha mãe Célia, meus irmãos Lahryssa e Nikollas e aos meus tios Nair e José Roberto, pois, não seria quem sou hoje sem suas presenças em minha vida. Obrigado. Amo vocês!

(5)

AGRADECIMENTOS

A todos que de alguma forma contribuíram para o meu sucesso. Principalmente aos professores e professoras que compartilharam seu precioso conhecimento, durante esta incrível jornada.

(6)

“Faça as coisas o mais simples que puder, porém não as mais simples.” (Albert Einstein).

(7)

RESUMO

Atualmente a internet se direciona para uma nova geração, denominada Web Semântica, termo definido por Tim Berners Lee, ou web 3.0, seguindo a sequência dada às outras gerações da internet, 1.0 e 2.0. Essa nova internet prevê a inclusão de metadados às informações hoje já existentes e, também às novas que virão. Com a inclusão de informações sobre as informações, os computadores passarão a interpretá-las e com isso, conseguirão processá-las, abrindo novas portas para aplicações que utilizarão esse conhecimento. A proposta para este projeto é trazer uma explicação sobre o que é e como funcionará a web semântica, apresentando as principais tecnologias empregadas em sua arquitetura. E a seguir, apresenta a construção de um protótipo para um mecanismo de busca semântica, ou seja, um mecanismo baseado nos que atualmente utilizamos, mas, se diferenciando por realizar uma busca específica em um determinado assunto. Em um sistema convencional (Google, Yahoo, UOL, entre muitos outros), quando se faz uma pesquisa por um termo qualquer, os resultados apresentados são os mais diversos e, muitos deles nem sempre tem alguma coisa a ver com o que era desejado. Para o desenvolvimento do protótipo, foi utilizado o Java, pois, esta apresenta diversas facilidades para o desenvolvimento. Também foi feito do uso da API Lucene que oferece um excelente mecanismo de indexação e pesquisa, visando tornar a apresentação dos resultados mais rápida. No protótipo apresentado, sistema de busca semântica, as pesquisas estão limitadas a um determinado assunto, com isso, a grande maioria dos resultados apresentados estará dentro do assunto em questão. Por fim, é apresentada uma comparação dos resultados obtidos no sistema convencional e o semântico.

(8)

ABSTRACT

Today the Internet is directed to a new generation, called the Semantic Web, a term defined by Tim Berners Lee, or web 3.0, following the order given to other generations of the Internet, 1.0 and 2.0. This new Internet provides for the inclusion of metadata to information currently existing and also new to come. With the inclusion of information about the information, computers will interpret them and, thus, able to process them, opening new doors to applications that use that knowledge. The proposal for this project is to bring an explanation of what work is and how the semantic web, showing the main technologies used in its architecture. And below, shows the construction of a prototype for a semantic search engine, or a mechanism based on that we currently use, but is differentiated by performing a specific search on a particular subject. In a conventional system (Google, Yahoo, YouTube, among many others), when doing a search for any one term, the results presented are the most diverse and many of them do not always have anything to do with what was desired. To develop the prototype, we used Java, because this has several facilities for development. It was also made use of Lucene API that provides an excellent mechanism for indexing and search, in order to make the presentation of results more quickly. In the prototype presented, semantic search engine, searches are limited to a particular subject, thus, the vast majority of results will be within the subject matter. Finally, we present a comparison of results obtained in the conventional system and semantics.

(9)

LISTA DE ILUSTRAÇÕES

Figura 1 – Evolução da Internet. ... 14

Figura 2- Da ARPANET à Internet. ... 18

Figura 3 - Criação e atualização do conteúdo da web 1.0. ... 20

Figura 4 - Número de websites até março de 2010. ... 21

Figura 5 - Criação e atualização do conteúdo da web 2.0. ... 22

Figura 6 - Diagrama em camadas de bolo (layer-cake). ... 26

Figura 7 - Diagrama de layer cake adaptado por Passin. ... 27

Figura 8 - Repretação gráfica de uma tripla... 35

Figura 9 - Rede semântica... 35

Figura 10 - Camadas RDF e RDFS. ... 38

Figura 11 - Taxonomia lineana dos seres vivos. ... 41

Figura 12 - Relacionamento semântico de um tesauro. ... 42

Figura 13 - Exemplo gráfico de ontologia: recuros humanos. ... 43

Figura 14 - Busca e seleção de hoje e futuramente. ... 47

Figura 15 – Funcionamento de uma web aranha. ... 51

Figura 16 - Proposta da solução. ... 57

Figura 17 - Visão macro do Iconix. ... 60

Figura 18- Linha do tempo da evolução da UML. ... 61

Figura 19 – Diagrama de Atividade. ... 63

Figura 20 – Casos de uso do sistema. ... 64

Figura 21 – Diagrama de Pacotes com suas respectivas classes. ... 65

Figura 22 – Análise robusta do processo de pesquisa. ... 66

Figura 23 – Análise robusta do processo de varredura da internet. ... 66

Figura 24 – Diagrama de Seqüência do Processo de Pesquisa. ... 67

Figura 25 – Diagrama de Sequência do processo de varredura da internet. ... 68

Figura 26 – Diagrama do pacote principal. ... 69

Figura 27 – Digrama do pacote atualização. ... 69

Figura 28 – Diagrama do pacote controle. ... 69

Figura 29 – Diagrama do pacote webcrawler. ... 70

(10)

Figura 31 – Arquitetura da Solução. ... 74

Figura 32 – Ferramentas Utilizadas. ... 75

Figura 33 – Página Principal do Sistema de Busca. ... 77

Figura 34 – Pesquisa Parte 1. ... 78

Figura 35 – Pesquisa Parte 2. ... 79

Figura 36 – Resultado da pesquisa em branco. ... 80

Figura 37 – História dos mecanismos de busca parte 1. ... 92

Figura 38 – História dos mecanismos de busca parte 2. ... 93

Figura 39 – História dos mecanismos de busca parte 3. ... 94

(11)

LISTA DE QUADROS

Quadro 1 - Benefícios da web semântica. ... 49 Quadro 2 – Resultado da Pesquisa do Sistema de Busca Convencional (termo: mamão). ... 82 Quadro 3 – Resultado da Pesquisa do Sistema de Busca Semântica (termo: mamão). ... 85 Quadro 4 - Resultado da Pesquisa do Sistema de Busca Convencional (termo: samambaia). . 97 Quadro 5 - Resultado da Pesquisa do Sistema de Busca Semântica (termo: samambaia). .... 100 Quadro 6 - Resultado da Pesquisa do Sistema de Busca Convencional (termo: pau-brasil). . 101 Quadro 7 - Resultado da Pesquisa do Sistema de Busca Semântica (termo: pau-brasil). ... 104 Quadro 8 - Resultado da Pesquisa do Sistema de Busca Convencional (termo: narciso). ... 105 Quadro 9 - Resultado da Pesquisa do Sistema de Busca Semântica (termo: narciso). ... 108

(12)

SUMÁRIO 1 INTRODUÇÃO ... 13 1.1 OBJETIVOS ... 14 1.1.1 Objetivo Geral ... 14 1.1.2 Objetivos Específicos ... 15 1.2 JUSTIFICATIVA ... 15 1.3 ESTRUTURA DA MONOGRAFIA ... 16 2 REVISÃO BIBLIOGRÁFICA ... 17 2.1 INTRODUÇÃO ... 17

2.2 PERSPECTIVA HISTÓRICA DA WEB ... 17

2.2.1 Conceitos ... 19

2.2.2 WEB 1.0 ... 19

2.2.3 WEB 2.0 ... 20

2.3 A PRÓXIMA GERAÇÃO DA WEB: WEB 3.0... 22

2.3.1 Como vai funcionar ... 22

2.3.2 O que a web semântica não é ... 23

2.3.2.1 A web semântica não é Inteligência Artificial ... 23

2.3.2.2 A web semântica não é uma web separada ... 24

2.3.2.3 A web semântica não vai exigir que todas as aplicações utilizem expressões complexas ... 24

2.3.3 O que é a web semântica ... 24

2.3.3.1 Definição ... 24

2.3.3.2 Arquitetura ... 26

2.3.4 Elementos da arquitetura da web semântica ... 28

2.3.4.1 Metadados ... 28 2.3.4.2 XML... 29 2.3.4.3 XML Schema ... 31 2.3.4.4 RDF ... 33 2.3.4.5 RDF Schema ... 36 2.3.4.6 Ontologias ... 40 2.3.5 Agentes ... 46

(13)

2.3.6 Ferramentas... 48

2.3.7 Benefícios ... 49

2.3.8 Mecanismos de busca ... 50

2.3.8.1 Mecanismos de busca comerciais ... 52

2.3.8.2 Mecanismo de busca semântica ... 53

3 METODOLOGIA ... 55

3.1 CARACTERIZAÇÃO DO TIPO DE PESQUISA ... 55

3.2 ETAPAS METODOLÓGICAS ... 55

3.3 PROPOSTA DA SOLUÇÃO ... 56

3.4 DELIMITAÇÕES ... 58

4 MODELAGEM DO SISTEMA ... 59

4.1 ICONIX ... 59

4.2 UML – UNIFIED MODELING LANGUAGE ... 61

4.3 MODELOS E DIAGRAMAS ... 62

4.3.1 Diagrama de atividades ... 62

4.3.2 Modelo de casos de uso ... 63

4.3.3 Diagrama de Pacotes ... 65 4.3.4 Diagramas de Robustez ... 65 4.3.5 Diagramas de Seqüência ... 66 4.3.6 Diagramas de Classe ... 68 5 DESENVOLVIMENTO DA PROPOSTA ... 72 5.1 SOLUÇÃO PROPOSTA... 72 5.2 ARQUITETURA DA SOLUÇÃO ... 73 5.3 FERRAMENTAS UTILIZADAS ... 75 5.4 APRESENTAÇÃO DO SISTEMA ... 77 5.5 VALIDAÇÃO ... 80 6 CONCLUSÕES ... 86 6.1 CONCLUSÕES ... 86 6.2 TRABALHOS FUTUROS ... 87 REFERÊNCIAS ... 89 ANEXOS... 91

ANEXO A – HISTÓRIA DOS MECANISMOS DE BUSCA ... 92

APÊNDICE ... 96

(14)

1 INTRODUÇÃO

Com a constante evolução da World Wide Web, desde sua criação, em 1990, por Tim Berners-Lee, ao longo dos anos, ela veio sofrendo alterações e melhorias e, atualmente, encontra-se na versão web 2.0. O termo web 2.0 foi introduzido por Tim O’Reilly em 2004. Essa é a versão atual da web, na qual encontramos diversas pessoas, criando mais e mais páginas a cada dia e, também, vemos inúmeras redes de relacionamento interligando pessoas do mundo inteiro, sem contar a enorme quantidade de conteúdo interativo, como, músicas, vídeos, imagens, textos e mais textos, entre outros, fazendo com que os internautas voltem diversas vezes aos mesmos sites que são atualizados frequentemente. Também, não podemos deixar de mencionar os sites de busca que, com apenas alguns cliques, trazem informações sobre qualquer assunto que nos interessa.

A partir do conceito 2.0, a primeira “geração” da internet foi denominada como web 1.0, em que apenas uma ou outra pessoa criava páginas com pouca ou nenhuma interatividade com o usuário, sendo que esse visitava uma ou duas vezes esse site e, dificilmente, acessava-o novamente. Suas páginas eram interligadas através de links que conduziam o internauta entre elas. O que podemos identificar, tanto na versão 1.0 como na 2.0, é que todas as informações inseridas na internet foram feitas por pessoas para que elas pudessem acessá-las e interpretá-las.

De acordo com Berners-Lee, Hendler e Lassia (2001), a nova “geração”, que virá, ficará conhecida como web 3.0. E essa idéia foi idealizada pelo próprio idealizador da internet, mas o termo utilizado foi de Web Semântica, em que a proposta é para que novas informações e dados, inseridos na internet, sejam feitos de tal forma que as máquinas também possam entendê-los e processá-los. Já, o conteúdo existente deverá ser transformado para atender essa característica. Em outras palavras, criar uma rede de dados interligados de forma que as máquinas, também, possam entendê-las. Veja a figura a seguir.

(15)

Figura 1 – Evolução da Internet. Fonte: www.radarnetworks.com.

1.1 OBJETIVOS

Os objetivos encontram-se divididos em: Objetivo Geral e Objetivos Específicos.

1.1.1 Objetivo Geral

Desenvolver um protótipo de uma aplicação web que simulará uma busca como se a web 3.0 fosse uma realidade. O sistema de busca fará uso de uma API (Application Programming Interface) já existente que dará suporte à aplicação, fornecendo recursos que facilitarão o desenvolvimento.

(16)

1.1.2 Objetivos Específicos

• descrever o que é e como funcionará a web semântica, suas características, tecnologias envolvidas, sua arquitetura e os benefícios que ela trará;

• pesquisar o funcionamento dos mecanismos de busca, ou seja, o que existe por trás destes, de que forma eles conseguem reunir tantas informações;

• modelar o sistema de busca semântica, este modelo apresentará as características principais do protótipo, sendo de grande importância para a conclusão do próximo objetivo;

• desenvolver o protótipo da aplicação, ele será a união dos objetivos anteriores, onde todo o conhecimento adquirido, será utilizado em sua construção.

1.2 JUSTIFICATIVA

A Web Semântica será diferente da internet que hoje conhecemos. Com as informações classificadas, organizadas, com fácil obtenção, de uma forma que não só façam sentido para os humanos, mas também para as máquinas. (BERNERS-LEE, HENDLER, LASSILA, 2001). Por exemplo, se fizéssemos uma pesquisa, em algum site de busca conhecido, por sorvete de abacaxi em Florianópolis, obteríamos diversos resultados que variam desde receitas de sorvete até um cardápio de churrascaria, tornando algumas buscas completamente ineficientes. Isso ocorre porque as palavras fornecidas à pesquisa são procuradas de forma independente e não fazem sentido algum para o computador, ou seja, os mecanismos de busca não conseguem tirar o máximo proveito dos documentos na web. Se as informações obedecessem aos padrões semânticos, a mesma busca, citada acima, poderia apresentar todas as sorveterias num raio de dois quilômetros da sua casa e também traria todo o cardápio de sabores, destacando o de abacaxi.

Como a Web Semântica será a nova geração da internet (web 3.0), este trabalho visa ao desenvolvimento profissional, pois o que tudo indica, nos próximos anos, essa geração será uma realidade. Com isso, a aquisição do conhecimento aqui reunido será de valiosa importância para a carreira profissional do autor, que também espera contribuir com novos

(17)

pesquisadores que se interessarem pelo o assunto e para que possam utilizar este como ponto de partida para seus estudos.

1.3 ESTRUTURA DA MONOGRAFIA

Capítulo 1: Introdução – Este capítulo apresenta uma visão geral do tema abordado neste trabalho e também, constam os objetivos, problemática e justificativa.

Capítulo 2: Revisão Bibliográfica – Neste, será encontrada a fundamentação teórica que serviu de base para o desenvolvimento do trabalho.

Capítulo 3: Método – Aqui, serão encontradas as estrutura e os passos para o desenvolvimento do projeto.

Capítulo 4: Modelagem do Sistema – Aqui o leitor encontrará a modelagem do sistema Capítulo 5: Arquitetura da Solução – Neste capítulo serão reunidos e descritos os recursos utilizados no desenvolvimento do projeto.

Capítulo 6: Conclusões e trabalhos futuros – Capítulo final do projeto onde o leitor encontrará as conclusões do autor sobre o trabalho e, também, algumas recomendações para trabalhos futuros.

(18)

2 REVISÃO BIBLIOGRÁFICA

2.1 INTRODUÇÃO

Neste capítulo, o leitor encontrará um pouco da história da internet, como e quando começou e, também, mais detalhes sobre as gerações da internet. Mas o foco principal deste será a web 3.0 que será referenciada de agora em diante como web semântica. Será contado um pouco de sua história, destacando suas características e os elementos que a compõem, que após definidos serão explicados com mais detalhes e, também, serão apresentadas algumas informações sobre os mecanismos de busca.

2.2 PERSPECTIVA HISTÓRICA DA WEB

A Internet tem revolucionado o mundo dos computadores e das comunicações como nenhuma invenção foi capaz de fazer antes. A invenção do telégrafo, telefone, rádio e computador prepararam o terreno para esta nunca antes havida integração de capacidades. A Internet é de um a vez e ao mesmo tempo, um mecanismo de disseminação da informação e divulgação mundial e um meio para colaboração e interação entre indivíduos e seus computadores, independentemente de suas localizações geográficas (LEINER et al., 2010).

Esta definição dada por Leiner destaca o quão grandioso é o meio de comunicação provido pela internet. A figura, a seguir, mostra a evolução da internet de 1968 a 1996, algumas das tecnologias que foram aparecendo durante sua evolução e o crescimento de redes operacionais na internet.

(19)

Figura 2- Da ARPANET à Internet.

Fonte: http://www.isoc.org/internet/history/brief.shtml.

Acompanhe alguns pontos importantes na evolução da internet:

- desenvolvida pela empresa ARPA (Advanced Research and Projects Agency) em 1969, com o objetivo de conectar os departamentos de pesquisa, esta rede foi batizada com o nome de ARPANET;

- nos anos 1970, as universidades e outras instituições que faziam trabalhos relativos à defesa tiveram permissão para se conectar à ARPANET;

- em 1972 o correio eletrônico, considerado a primeira aplicação "hot", foi introduzido. Este foi o prenúncio do tipo de atividade que vemos na WWW hoje, ou seja, o enorme crescimento de todos os tipos de aplicações e utilitários agregados pessoa a pessoa;

- em 1975, existiam aproximadamente 100 sites. Os pesquisadores que mantinham a ARPANET estudaram como o crescimento alterou o modo de como as pessoas usavam a rede;

- no final dos anos 1970, a ARPANET tinha crescido tanto que o seu protocolo de comutação de pacotes original, chamado de Network Control Protocol (NCP), tornou-se inadequado; - depois de algumas pesquisas, a ARPANET mudou do NCP para um novo protocolo chamado TCP/IP (Transfer Control Protocol/Internet Protocol) desenvolvido em UNIX. A maior vantagem do TCP/IP era que ele permitia (o que parecia ser na época) o crescimento praticamente ilimitado da rede, além de ser fácil de implementar em uma variedade de plataformas diferentes de hardware de computador;

- nesse momento, a Internet é composta de aproximadamente 50.000 redes internacionais, sendo que, mais ou menos, a metade delas nos Estados Unidos;

(20)

- a partir de julho de 1995, havia mais de 6 (seis) milhões de computadores permanentemente conectados à Internet, além de muitos sistemas portáteis e de desktop que ficavam online por apenas alguns momentos.

2.2.1 Conceitos

“A internet é um conjunto de redes de computadores interligadas que tem em comum um conjunto de protocolo e serviços, de uma forma que os usuários conectados possam usufruir de serviços de informação e comunicação de alcance mundial” (BOGO, 2000).

“Nos dias de hoje, não é mais um luxo ou simples questão de opção uma pessoa utilizar e dominar os serviços disponíveis na internet, pois é considerado o maior sistema de comunicação desenvolvido pelo homem” (BOGO, 2000), com mais de um bilhão de usuários no mundo todo.

Na internet, encontramos os mais variados tipos de serviços, como, comércio eletrônico, home banking, ensino à distância, lazer, diversão, redes sociais, comunicação, entre diversas outras. E toda hora surge um novo tipo de serviço na web. A internet está em constante evolução.

2.2.2 WEB 1.0

Algumas características da web 1.0 são: sites estáticos, sem interatividade e aplicativos fechados.

Estáticos, pois proviam muitas informações, na maioria das vezes, úteis e com baixa freqüência de atualização, com isso, dificilmente o visitante retornaria ao site.

Sem interatividade, porque o internauta podia visualizá-lo, mas não modificá-lo ou contribuir com eles.

(21)

Já, os aplicativos fechados referem-se aos softwares desenvolvidos pelas empresas, em que os usuários podiam baixar, mas não estavam autorizados a ver como estes funcionavam.

O conteúdo de um site era criado por uma pessoa que, também, era responsável pela atualização e disponibilizado à internet, onde ficava disponível aos internautas, como podemos visualizar na parte, em destaque, da Figura a seguir.

Figura 3 - Criação e atualização do conteúdo da web 1.0.

Fonte: http://www.sizlopedia.com/2007/08/18/web-10-vs-web-20-the-visual-difference/, adaptada.

2.2.3 WEB 2.0

Web 2.0 é a geração que hoje vivenciamos, com mais de 192.000.000 milhões de websites, como podemos visualizar na Figura 4. A quantidade de informação encontrada na internet hoje é imensa, devida à enorme quantidade de websites.

(22)

Figura 4 - Número de websites até março de 2010.

Fonte: http://news.netcraft.com/archives/2010/03/index.html.

Todas as informações são geradas e atualizadas por diversas pessoas, ao contrário da web 1.0, uma informação pode ser atualizada por inúmeras pessoas, permitindo que os usuários sejam muito mais do que meros espectadores e façam parte do espetáculo. Um exemplo em que podemos encontrar esse tipo de atualização é o site da Wikipédia. Nele, qualquer indivíduo pode inserir qualquer tipo de informação que varia entre filosofia, astronomia, doenças, política, entre outras infinidades de assuntos imagináveis. Também existem as redes sociais, como: Orkut, Flickr, Facebook, Twitter, MySpace, entre outros, que possuem inúmeros usuários, os quais inserem um enorme volume de informações a cada instante. Também, não podemos nos esquecer de mencionar os sites de busca tais, como, Google, Yahoo, AltaVista, Uol, entre outros, que são responsáveis por pesquisar e encontrar a diversidade de informações que foram inseridas na web a partir dos exemplos citados.

Pode-se ter uma idéia de como as informações são inseridas, e as atualizações são feitas na web, atualmente, através da parte, em destaque, da Figura 5.

(23)

Figura 5 - Criação e atualização do conteúdo da web 2.0.

Fonte: http://www.sizlopedia.com/2007/08/18/web-10-vs-web-20-the-visual-difference/, adaptada.

Como podemos perceber, todo esse volume de informação é inserido por pessoas para que outras pessoas possam consumi-las, as máquinas ficam como meras apresentadoras. Como sugere Breitman (2005, p. 2), “A Internet atual pode ser definida como a Web Sintática. Nela, os computadores fazem apenas a apresentação da informação, porém o processo de interpretação fica a cabo dos seres humanos mesmo.”

2.3 A PRÓXIMA GERAÇÃO DA WEB: WEB 3.0

A Web 3.0 foi idealizada por Tim Berners-Lee, também criador do World Wide Web, como Web Semântica.

2.3.1 Como vai funcionar

As informações contidas na web deverão possuir conteúdo semântico, ou seja, estas deverão estar dispostas de tal forma que poderão ser interpretadas também pelas máquinas.

(24)

Até a data, a World Wide Web desenvolveu mais rapidamente como um meio de documentos para pessoas em vez de informações que podem ser manipuladas automaticamente. Aumentando as páginas da Web com os dados destinados a computadores e acrescentando documentos apenas para computadores, vamos transformar a Web para a Web Semântica.

Computadores vão encontrar o significado semântico dos dados, seguindo links para definições dos principais termos e regras de raciocínio sobre eles, logicamente. A infra-estrutura resultante estimulará o desenvolvimento de serviços automatizados na Web, tais como agentes altamente funcionais.

Os usuários comuns irão compor as páginas da Web Semântica e adicionar novas definições e regras, utilizando softwares de prateleira que irão ajudar com a marcação semântica. (BERNERS-LEE; HENDLER; LASSILA, 2001, p. 36, tradução nossa).

Como se percebe, o significado dado à informação será a base para a construção da web semântica.

2.3.2 O que a web semântica não é

A seguir acompanhe algumas interpretações equivocadas sobre a web semântica.

2.3.2.1 A web semântica não é Inteligência Artificial

Para Breitman (2005, p. 9):

O conceito de documentos compreensíveis por máquinas não implica uma inteligência artificial mágica que faz com que os computadores passem a entender o que os seres humanos falam. Esse conceito apenas indica que computadores passarão a ter habilidades de resolver problemas bem definidos através do processamento de operações que se utilizem de dados.

Dados estes conterão informações sobre si próprias, facilitando o processamento dos conteúdos pelas máquinas.

(25)

2.3.2.2 A web semântica não é uma web separada

A idéia proposta por Tim Berners-Lee não é a invenção de uma nova internet, mas sim uma extensão da web atual. Nessa nova web, a semântica, as linguagens de marcação semântica serão utilizadas para dar um significado bem definido à informação. RDF (Resource Description Framework) e Ontologias serão acrescentadas às páginas, em uma arquitetura proposta por Berners, como afirma Breitman (2005).

2.3.2.3 A web semântica não vai exigir que todas as aplicações utilizem expressões complexas

“Apesar de a linguagem-padrão recomendada para a Web Semântica permitir a expressão de sentenças muito complexas, [...] não será exigido que todas as aplicações web utilizem a marcação semântica em seu potencial total.” (BREITMAN, 2005, p. 9).

2.3.3 O que é a web semântica

A seguir veja as definições dadas por diversos autores sobre a web semântica, e também sua arquitetura.

2.3.3.1 Definição

A definição dada para semântica, segundo o Dicionário de XML, Tecnologias e Web Semântica de Geroimenko (2004, p.144, tradução nossa), foi:

(26)

Semântica: 1. O significado das palavras, frases ou símbolos. 2. Em linguística, a ciência ou estudo do significado nas formas de linguagem. Em computação, o significado de palavras ou símbolos usados em programas ou relações entre eles e seus significados pretendidos. Em XML e Web semântica, este termo é usado geralmente para se referir ao significado dos dados.

Com a definição do que significa semântica, acompanhe algumas explicações dadas por outros autores sobre a web semântica.

‘‘A Web Semântica não é uma Web separada, mas uma extensão da atual, em que a informação ganha um significado bem definido, melhor permitindo que computadores e pessoas trabalhem em cooperação. ’’ (BERNERS-LEE; HENDLER; LASSILA, 2001, p. 37, tradução nossa).

“A Web Semântica permitirá às máquinas compreender documentos e dados semânticos, não a fala e a escrita humana.” (BERNERS-LEE; HENDLER; LASSILA, 2001, p. 40, tradução nossa).

“[...] Web Semântica representa uma visão em que os computadores, software, bem como pessoas, possam encontrar, ler, entender e usar dados sobre o World Wide Web para realizar objetivos úteis para os usuários.” (PASSIN, 2004, p. 3, tradução nossa).

“A Web Semântica é simplesmente uma rede de dados descritos e ligados em formas para estabelecer contexto ou semânticas que aderem à gramática definida e construções de linguagem.” (HEBELER et al, 2009, p5, tradução nossa).

“Expressões semânticas empregam um vocabulário semântico e da linguagem para identificar os diferentes tipos de declarações e relações.” (HEBELER et al, 2009, p. 8, tradução nossa).

“A Web Semântica e tecnologias de Web Semântica nos oferecem uma nova abordagem para a gestão de informação e processos, o princípio fundamental é a criação e a utilização de metadados semânticos.” (DAVIES; STUDER; WARREN, 2006, p.2, tradução nossa).

A Web Semântica visa a tornar a grande quantidade de informações na Web acessível às máquinas através da anotação do conteúdo da Web, usando formatos compreensíveis por máquina como RDF e permitir a compreensão e integração da informação através do uso de ontologias, que podem ser especificadas, utilizando a OWL Web Ontology Language. (BRUIJN et al, 2008, p. 1, tradução nossa).

Considerando todas as definições acima, pode-se dizer que a Web Semântica será a nossa Web atual, mas com modificações na forma em que seu conteúdo será inserido na web. Com modificações quer dizer que os dados possuirão informações sobre si próprios e

(27)

estas informações estarão classificadas e interligadas de forma que as máquinas também possam interpretar seus significados.

2.3.3.2 Arquitetura

A maioria das representações gráficas da arquitetura da Web Semântica é baseada no famoso diagrama de layer cake (camada de bolo), apresentado por Berners-Lee na XML conferência de 2000. Segundo ele, a Web Semântica será construída pela adição de mais camadas em cima das já existentes, podendo demorar cerca de dez anos para ser concluído. A seguir, podemos visualizar esse diagrama.

Figura 6 - Diagrama em camadas de bolo (layer-cake).

Fonte: http://www.w3.org/2000/Talks/1206-xml2k-tbl/slide10-0.html, adaptado.

O W3C (World Wide Web Consortium, www.w3.org) tem sido um líder no desenvolvimento de tecnologias para a web. A organização é liderada por Tim Berners-Lee, quem não descansou sobre suas realizações anteriores em relação à Web e, também, tem vindo a promover o desenvolvimento da Web Semântica. Muitas das tecnologias, aparentemente fundamentais tais, como XML e RDF têm sido desenvolvidas pelo W3C. Portanto, a abordagem do W3C, para a evolução da Web Semântica, deve ser considerada.

(28)

Em seguida, podemos visualizar outro diagrama, onde Passin (2004) apresenta outra versão do diagrama inicial da arquitetura da Web Semântica.

Figura 7 - Diagrama de layer cake adaptado por Passin. Fonte: Passin (2004, p. 14, adaptado).

A seguir, acompanhe uma breve definição para cada uma das camadas que compoem o diagrama de layer cake, proposto por Passin (2004, tradução nossa):

• XML (Extensible Markup Language). Um framework de linguagem que, desde 1998, tem sido usado para definir quase todas as novas linguagens que são utilizadas para troca de dados sobre a internet;

• XML Schema. Uma linguagem utilizada para definir a estrutura de uma linguagem XML específica;

• RDF (Resource Description Framework). Uma linguagem flexível, capaz de descrever todos os tipos de informações de dados e metadados;

• RDF Schema. Um framework que fornece um meio para especificar vocabulários básicos para utilização em aplicações específicas de linguagens RDF;

• ontology (ontologia). Linguagens usadas para definir vocabulários e estabelecer o uso de palavras e termos em um contexto de um vocabulário específico. RDF Schema é uma estrutura para a construção de ontologias, e é utilizado por muitos frameworks de ontologia mais avançados. OWL é uma linguagem de ontologia projetada para a Web Semântica;

• logic and proof (lógica e prova). O raciocínio lógico é usado para estabelecer a coerência e coesão de conjuntos de dados e inferir conclusões que não são explicitas,

(29)

mas são necessárias em um conjunto conhecido de dados. Provas de rastreamento explicam as etapas do raciocínio lógico;

• trust (confiança). Um meio de fornecer autenticação de identidade e prova da confiabilidade dos dados, serviços e agentes.

Com isso, percebe-se que cada camada deve ser construída sobre as outras e que cada uma delas vai se tornando mais especializada e, com isso, tendem a ser mais complexas que as camadas abaixo. Também podemos notar que as camadas inferiores não dependem das camadas superiores, assim, as camadas podem ser criadas e desenvolvidas de uma forma relativamente independente. (PASSIN, 2004).

Nos próximos tópicos, o leitor poderá acompanhar com mais detalhes algumas das tecnologias que farão parte da Web Semântica. Umas serão de fundamental importância para seu desenvolvimento, como os metadados e as ontologias e outras que aproveitarão dos benefícios providos pela Web Semântica, como os agentes.

2.3.4 Elementos da arquitetura da web semântica

Agora veja com mais detalhes os elementos que compõe a web semântica.

2.3.4.1 Metadados

Basicamente, metadados são dados sobre dados, por exemplo, informações sobre um documento, como data, autor, editora, entre outras.

A IFLA (International Federation of Library Associations) define metadados da seguinte forma:

“Metadados são dados sobre dados. O termo se refere a qualquer informação utilizada para a identificação, descrição e localização de recursos.”

Já, o W3C tem uma visão mais voltada para web semântica, definindo metadados como: “Informações para a Web que podem ser compreendidas por máquinas.”

(30)

Algumas definições mais simples encontradas para metadados: • dado sobre dado;

• informação sobre informação; • o significado ou semântica do dado;

• um recurso que fornece informações sobre outros recursos; • informação descritiva sobre um recurso web.

Metadado é a estrutura de construção fundamental da Web Semântica. Seu desenvolvimento, é basicamente, o processo de adicionar novos e mais níveis de metadados nos já existentes.

No diagrama de arquitetura, as camadas responsáveis pelos metadados são XML, XML Schema, RDF e RDF Schema. A seguir, será explicado o que cada um significa e o que eles representam para a web semântica.

2.3.4.2 XML

O World Wide Web Consortium define o XML (Extensible Markup Language) como:

[...] é um simples formato de texto muito flexível derivado do SGML (ISO 8879). Originalmente, concebido para responder aos desafios de grande escala a publicação eletrônica, XML, também, desempenha um papel cada vez mais importante na troca de uma ampla variedade de dados na Web e em outros lugares. (W3C, 2010, tradução nossa).

XML segundo Antoniou e Harmelen (2004), é constituído por uma declaração XML e uma referência (opcional) a estruturas de documentos externos. Veja um exemplo de declaração:

<?xml version=”1.0” encoding=”UTF-16” ?>

Isto especifica que o documento é um documento XML, define a versão e codificação de caracteres usados em um sistema particular. Uma referência a um documento externo é definida da seguinte forma:

(31)

<!DOCTYPE universidade SYSTEM “universidade.dtd”>

Nesse exemplo, a estrutura da informação é encontrada em um documento chamado universidade.dtd.

O XML possui elementos que representam as “coisas” que o documento XML representa como livros, autores e editores. Elas compõem o elemento principal dos documentos XML. Um elemento consiste na abertura de uma tag de abertura, seu conteúdo e uma tag de fechamento, e é representado da seguinte maneira:

<professor>Aran Bey T. Morales</professor>

O nome da tag pode ser, quase sempre, escolhido livremente, com poucas restrições.

O conteúdo de uma tag pode ser texto, outra tag (tags aninhadas) ou nada (elemento vazio). Por exemplo:

<professor>

<nome>Aran Bey T. Morales</nome> <telefone>48 1234-4321</telefone> </professor>

Os elementos podem possuir atributos que são constituídos por um conjunto nome-valor dentro da tag de abertura do elemento. Veja:

<professor nome=”Aran Bey T. Morales” telefone=”48 1234-4321”/>

A seguir acompanhe como ficaria um documento XML completo, representando um e-mail.

<?xml version=”1.0” encoding=”UTF-16” ?>

<!DOCTYPE universidade SYSTEM “universidade.dtd”> <email>

<cabecalho>

<de nome=”Fulano da Silva” email=”[email protected]”/> <para nome=”Ciclano Junqueira” email=”[email protected]”/> <assunto>Confirmação da reunião.</assunto>

(32)

</cabecalho> <corpo>

A reunião ficou marcada para 01/01/2020 às 14hs. </corpo>

</email>

2.3.4.3 XML Schema

A definição dada pelo W3C (tradução nossa) para o XML Schema foi: “expressam vocabulários comuns e permitem que as máquinas executem as regras feitas por pessoas. Eles fornecem uma forma de definir a estrutura, conteúdo e semântica de documentos XML.”

Já, a definição de XML Schema segundo Antoniou e Harmelen (2004) pra XML Schema foi: Uma de suas características é que sua estrutura é baseada em XML e, também, que sua estrutura melhorada fornece uma forma de reaproveitamento e refinamento de schemas. XML Schemas permitem a definição de novos tipos pela extensão ou restrição de documentos já existentes. Com isso, há uma grande redução do retrabalho. E, por fim, o XML Schema oferece um sofisticado conjunto de tipos de dados que podem ser usados em documentos XML.

A estrutura do XML Schema é bastante parecida com a do XML, como será visto adiante.

Um XML Schema é um elemento com uma tag de abertura como:

<schema xmlns=”http://www.w3.org” version=”1.0”>

Os elementos do schema servirão para definir a estrutura do documento. O conteúdo mais importante são as definições dos elementos e o tipo dos atributos, os quais são definidos, usando tipos de dados. Sintaxe para tipo de elementos:

<element name=”...”/>

(33)

type=”...”

ou limitação de cardinalidade.

minOccurs”x”

maxOccurs”x” (onde o x deve ser um número natural, incluindo o zero)

Para o tipo dos atributos a sintaxe é:

<attribute name=””/>

E também podem conter um número de atributos opcionais, tais como tipos.

type=”...”

ou existência,

use=”x” (onde x deve ser opcional ou requerido)

ou um valor padrão,

use=”x” value=”...” (onde x deve ser padrão ou fixo)

Existe uma série de outras ferramentas que não discutiremos neste trabalho, ficando a indicação para um trabalho futuro. A seguir, acompanhe um exemplo completo de como ficaria um XML Schema.

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="letra">

<xs:complexType> <xs:sequence>

<xs:element name="de" type="xs:string"/> <xs:element name="para" type="xs:string"/> <xs:element name="mensagem" type="xs:string"/>

(34)

</xs:sequence> </xs:complexType> </xs:element>

</xs:schema>

Por fim, o XML Schema define como o documento XML será, quais campos terá, quais serão os tipos destes campos, se ele é obrigatório ou não, se é um valor padrão, em outras palavras, conterá informações sobre elas contidas no documento em questão.

2.3.4.4 RDF

O W3C define o RDF (Resource Description Framework) como:

“A Resource Description Framework (RDF) é uma linguagem de propósito geral para representar as informações na web.”

Outra definição bastante interessante é:

O Resource Description Framework (RDF) é uma linguagem declarativa que fornece uma maneira padronizada de utilizar o XML para representar metadados no formato de sentenças sobre propriedades e relacionamentos entre itens na Web. Esses itens, chamados de recursos, podem ser virtualmente qualquer objeto (texto, figura, vídeo e outros), desde que possuam um endereço Web. (BREITMAN, 2005, p. 20).

Breitman (2005) também destaca alguns exemplos de utilização de descrições RDF, como:

• descrever propriedades para itens de compra, tais como preço e disponibilidade; • descrever cronogramas para eventos na web;

• descrever informações sobre páginas web, tais como data de criação, título e autor; • descrever conteúdo e classificação de figuras;

• descrever bibliotecas eletrônicas.

A seguir, o leitor encontrará algumas características do RDF de acordo com Antoniou e Harmelen (2004).

RDF é, essencialmente um modelo de dados. Seu bloco de construção básico é um objeto-atributo-valor (tripla), chamado de expressão. Um modelo de dados abstrato precisa de

(35)

uma sintaxe concreta para ser representada e transmitida, foi dado ao RDF, uma sintaxe semelhante ao XML.

Como resultado, ele herda os benefícios associados com XML. No entanto, é importante compreender que as representações sintáticas de outros RDF, não baseado em XML, também, são possíveis. XML não é um componente necessário do modelo RDF.

Os conceitos fundamentais do RDF são: recursos, propriedades e expressões. Podemos pensar em um recurso como um objeto, uma "coisa" que quer ser falada. Os recursos podem ser autores, livros, editoras, lugares, pessoas, hotéis, salas, pesquisas e, assim por diante. Cada recurso possui uma URI, um Universal Resource Identifier. Uma URI pode ser uma nota de URL (Unified Resource Locator, ou endereço da Web) ou algum outro tipo de identificador único. URI esquemas foram definidas não só para a web-locais, mas também para diversos objetos, tais como os números de telefone, números de ISBN e localizações geográficas, ou seja, URI é o identificador de um recurso da Internet.

As propriedades são um tipo especial de recursos, que descrevem as relações entre os recursos, por exemplo, “escrito por”, “idade”, “título” e assim por diante. Propriedades em RDF também são identificados por URIs (e na prática por URLs). Esta ideia de utilizar URIs, para identificar as “coisas” e as relações entre elas, é muito importante. Essa escolha nos dá uma definição global, um esquema de nomenclatura único. O uso desse sistema reduz, significativamente, o problema homônimo que tem atormentado a representação de dados distribuídos até agora.

As expressões afirmam as propriedades dos recursos. A declaração é um objeto-atributo-valor (tripla), consistindo de um recurso, uma propriedade e um valor. Os valores podem ser recursos ou literais. Literais são valores atômicos (strings), exemplo de uma expressão:

David Billigton é o proprietário da página web http://www.cit.gu.edu.au/~db.

A maneira mais simples de interpretar essa declaração é usar a definição e considerar a tripla:

(“DavidBillington”,http://www.mydomain.org/site-owner, http://www.cit.gu.edu.au/~db)

Podemos pensar nessa tripla (x, P, y) como uma fórmula lógica P (x, y), em que o predicado binário P relaciona o objeto x para objeto y. Na verdade, RDF oferece apenas

(36)

predicados binários (propriedades). Observe que a propriedade "proprietário do site" é um dos dois objetos que são identificados através de URLs, enquanto o outro objeto é simplesmente identificado por uma string. A seguir, veja uma representação gráfica de uma tripla.

Figura 8 - Repretação gráfica de uma tripla. Fonte: Antoniou e Harmelen (2004, p. 65).

Uma segunda visão é baseada em grafos. A próxima figura mostra o gráfico correspondente à visão anterior. É um grafo direcionado com nós rotulados e arcos, os arcos são dirigidos a partir do recurso (o sujeito do enunciado) com o valor (o objeto da declaração). Este tipo de gráfico é conhecido na comunidade de Inteligência Artificial como uma rede semântica. Como já foi dito, o valor de uma declaração pode ser um recurso. Portanto, ele pode ser ligado a outros recursos.

Figura 9 - Rede semântica.

Fonte: Antoniou e Harmelen (2004, p. 65).

Os grafos são uma poderosa ferramenta para a compreensão humana, mas a visão da Web Semântica exige representações acessíveis e processáveis por máquinas.

Ainda, existe a possibilidade de uma terceira representação, com base em XML. De acordo com essa possibilidade, um documento RDF é representado por um elemento XML com a tag rdf. O conteúdo deste elemento é um número de descrições que utilizam rdf:Description tags. Cada descrição faz uma afirmação sobre um recurso, que é identificada de três maneiras diferentes:

• um atributo about (sobre), que referencia um recurso existente; • um atributo ID, criando um novo recurso;

(37)

A seguir, veja um exemplo simples de um documento RDF representado na sintaxe XML. <?xml version="1.0" encoding="UTF-16"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns xmlns:mydomain="http://www.mydomain.org/my-rdf-ns"> <rdf:Description rdf:about="http://www.cit.gu.edu.au/~db"> <mydomain:site-owner> David Billington </mydomain:site-owner> </rdf:Description> </rdf:RDF>

A primeira linha especifica o uso do XML, o elemento rdf:Description cria uma expressão sobre o recurso http://www.cit.gu.edu.au/~db. Dentro de rdf:Description, a propriedade é usada como uma tag e o conteúdo é o valor da propriedade. As descrições são dadas em uma certa ordem, em outras palavras, a sintaxe XML impõe uma serialização. A ordem das descrições (ou recursos) não é significativa de acordo com o modelo abstrato de RDF.

2.3.4.5 RDF Schema

Geroimenko (2004, p. 133, tradução nossa) define o RDF Schema como:

Também conhecido como RDF Linguagem de Descrição de Vocabulário (um nome oficial) ou RDFS (acrônimo). Parte do RDF que é uma extensão do RDF que fornece mecanismos para descrever classes de recursos relacionados e suas propriedades em um formulário que é processável por máquina. Em outras palavras, um RDF esquema fornece um vocabulário XML para expressar as classes e seus relacionamentos (superclasse-subclass) e, também, para definir as propriedades e associá-las com as classes. Documentos RDF Schema são escritos em RDF, usando a sintaxe XML.

(38)

A seguir, acompanhe como Antoniou e Harmelen (2004) o descrevem o RDF Schema.

RDF é uma linguagem universal que permite aos usuários descrever recursos, usando seus vocabulários próprios. RDF não faz suposições sobre qualquer domínio de aplicação particular, nem define a semântica de qualquer domínio. É tarefa do usuário fazê-lo no RDF Schema (RDFS). O RDF Schema fornece primitivas de modelagem para expressar as informações. Uma decisão que deve ser tomada é qual linguagem formal será usada. O modelo primitivo do RDF Schema é definido, utilizando os recursos e propriedades. Essa escolha pode ser justificada pela figura, a seguir, em que é apresentado esse modelo. Lembre-se de que RDF permite expressar qualquer declaração sobre qualquer recurso e que qualquer coisa que tenha um URI pode ser um recurso. Por exemplo, se quiser dizer que a classe “professor” é uma subclasse de “membro do pessoal docente”, devemos:

1. definir o recurso professor, membropessoaldocente e subclassede; 2. definir subclassede sendo uma propriedade;

3. escrever a tripla (subclassede, professor, membropessoaldocente).

Todos esses passos fazem parte da capacidade do RDF. Então, um documento RDFS (que é um RDF Schema) é apenas um documento RDF baseado na sintaxe do XML.

(39)

Figura 10 - Camadas RDF e RDFS. Fonte: Antoniou e Harmelen (2004, p. 84).

A seguir, serão apresentadas algumas tags do RDF Schema e logo em seguida um exemplo completo de um documento RDF Schema.

Classes centrais (Core Class):

rdfs:Resource, a classe de todos recursos; rdfs:Class, a classe de todas as classes;

rdfs:Literal, a classe de todas literais (strings); rdf:Property, a classe de todas as propriedades;

rdf:Statement, a classe de todas as expressões (statements);

Propriedades centrais (Core Properties) usadas para definir relacionamentos: rdf:type, relaciona um recurso com sua classe;

rdfs:subClassOf, relaciona uma classe com sua superclasse;

(40)

Documento RDFS: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <rdfs:Class rdf:ID="lecturer"> <rdfs:comment>

The class of lecturers

All lecturers are academic staff members. </rdfs:comment>

<rdfs:subClassOf rdf:resource="#academicStaffMember"/> </rdfs:Class>

<rdfs:Class rdf:ID="academicStaffMember"> <rdfs:comment>

The class of academic staff members </rdfs:comment>

<rdfs:subClassOf rdf:resource="#staffMember"/> </rdfs:Class>

<rdfs:Class rdf:ID="staffMember">

<rdfs:comment>The class of staff members</rdfs:comment> </rdfs:Class>

<rdfs:Class rdf:ID="course">

<rdfs:comment>The class of courses</rdfs:comment> </rdfs:Class>

<rdf:Property rdf:ID="involves"> <rdfs:comment>

It relates only courses to lecturers. </rdfs:comment> <rdfs:domain rdf:resource="#course"/> <rdfs:range rdf:resource="#lecturer"/> </rdf:Property> <rdf:Property rdf:ID="isTaughtBy"> <rdfs:comment>

Inherits its domain ("course") and range ("lecturer") from its superproperty "involves"

</rdfs:comment>

<rdfs:subPropertyOf rdf:resource="#involves"/> </rdf:Property>

<rdf:Property rdf:ID="phone"> <rdfs:comment>

(41)

and takes literals as values. </rdfs:comment> <rdfs:domain rdf:resource="#staffMember"/> <rdfs:range rdf:resource="&rdf;Literal"/> </rdf:Property> </rdf:RDF> 2.3.4.6 Ontologias

Geroimenko (2004) define Ontologia como uma representação explícita do significado dos termos em um vocabulário e suas inter-relações. Em uma linguagem de definição de ontologias (tais como OWL ou RDF), uma ontologia é o conjunto de declarações ou outras definições semânticas para um domínio. Ontologias são uma das construções estruturais da arquitetura da Web Semântica. Várias tecnologias para WEB Semântica podem ser usadas para a construção de ontologias com diferentes níveis de expressividade. Note que, originalmente o termo “ontologia” foi usado em filosofia para se referir ao estudo dos tipos de entidades no mundo e de como elas estão relacionadas.

Mas não seria correto continuar com a definição da ontologia, sem antes definir Taxonomias e Tesauros que são dois conceitos que serão necessários para o entendimento da ontologia.

Uma taxonomia é definida pelo dicionário Merriam Webster (apud Breitman, 2006, p. 33, grifo do autor) como:

“O estudo dos princípios gerais de classificação científica: classificação sistemática; em particular, classificação ordenada de plantas e animais segundo relacionamentos naturais.”

Uma definição ligada à utilização de taxonomias em tecnologia da informação é proposta por Michael Daconta (apud Breitman, 2006, p. 34, grifo do autor):

“(Uma taxonomia é a) Classificação de entidades de informação no formato de uma hierarquia, de acordo com relacionamentos que estabelecem com entidades do mundo real que representam.”

Em resumo das idéias propostas pelos dois últimos autores, Breitman (2006, p. 34, grifo do autor) diz que “uma taxonomia serve para classificar informação em uma hierarquia

(42)

(árvore), utilizando o relacionamento pai-filho (generalização ou ‘tipo-de’).” Acompanhe a figura a seguir.

Figura 11 - Taxonomia lineana dos seres vivos. Fonte: Breitman (2006, p. 34).

Para finalizar a definição de taxonomia, acompanhe a terminologia proposta por Lassila e McGuiness (apud Breitman, 2006, p. 35, grifo do autor).

Em uma taxonomia, a generalização é o único tipo de relacionamento que existe entre seus termos. Através de uma taxonomia não se pode atribuir características

ou propriedades aos termos (atributos) nem exprimir outros tipos de relacionamento (parte-de, causa-efeito, localização, associação, entre outros). Para isso, é necessário construir uma ontologia.

Breitman (2006, p. 36) define tesauros como:

Um tesauro reúne um conjunto de relacionamentos entre termos que estão organizados em uma taxonomia (que pode ou não ser semanticamente fraca). Dessa forma, podemos definir um tesauro como uma taxonomia adicionada de um conjunto de relacionamentos semânticos (equivalência, associação, entre outros) entre seus termos.

Já, um tesauro é definido pelo padrão ANSI/NISO Monolingual Thesaurus Standard (apud Breitman, 2006, p. 36) como:

Um vocabulário controlado organizado segundo uma ordem conhecida e estruturado de modo a disponibilizar claramente os relacionamentos de equivalência, associação, hierarquia e homônimos existentes entre termos. Esses relacionamentos devem ser evidenciados através de identificadores padronizados para os relacionamentos. (...) O objetivo de um tesauro é facilitar a recuperação e obter consistência na indexação de documentos escritos.

Breitman (2005) reforça quando diz que, em um tesauro, os tipos de relacionamentos entre seus termos são finitos e bem definidos. E que esse conjunto de relacionamentos é bem útil na criação de vocabulários, mas não é suficiente para modelar outros aspectos do mundo real. E que, muitas vezes, é necessário relacionar conceitos,

(43)

utilizando relacionamentos do tipo parte-de, membro-conjunto, fase-processo, lugar-região, material-objeto, causa-efeito, entre muitos outros. E conclui, afirmando que um tesauro não permite aos seus usuários a criação desses novos tipos de relacionamento, para tal é necessário utilizar uma ontologia. Para concluir a definição de um tesauro, acompanhe o exemplo da figura a seguir.

Figura 12 - Relacionamento semântico de um tesauro. Fonte: Breitman (2006, p. 36, adaptada).

Koepsell (2010) define a ontologia de uma forma interessante, somo sendo a primeira ciência, envolvendo a descoberta de categorias e encaixando objetos nestas de um jeito que faça sentido. Por exemplo, quando fazemos uma lista de coisas para fazer ou de discos ou livros que pretendemos comprar, ou vídeos que queremos alugar, estamos classificando, estamos nos engajando na ontologia rudimentar. Ao priorizar os itens de uma lista, estamos atribuindo relações entre várias coisas. A ontologia pode ser bastante simples ou bastante complexa. Ela se torna mais complexa, até mesmo assustadora, quando começamos a lidar com grandes domínos de objetos com relações complexas entre eles. Por exemplo, descrever os processos e componentes de uma empresa, mesmo pequena, pode dar dor de cabeça, dor essa causada por uma ontologia complexa.

(44)

Daconta (2003, p. 181, tradução nossa) define a ontologia basicamente como: “ontologias são sobre vocabulário e seus significados, com explícita, expressiva e bem definida semântica, possivelmente, interpretável por máquina.”

Acompanhe, na figura a seguir um exemplo de uma simples ontologia de uma área de recursos humanos, criada por uma ferramenta utilizada na geração de ontologias.

Figura 13 - Exemplo gráfico de ontologia: recuros humanos. Fonte: Daconta (2003 p. 183).

Repare que existem classes como Person, Organization, e Employee. Em uma ontologia, esses são chamados conceitos, pois se pretende que esses correspondam aos conceitos mentais que seres humanos possuem quando entendem uma parte específica do conhecimento, área de assunto ou domínio, tal como o domínio dos recursos humanos.

Esses conceitos e relacionamentos entre eles são geralmente implementados como classes, relações, propriedades, atributos e valores.

Daconta (2003), ainda destaca, que imediatamente, pode-se perceber que uma ontologia tenta capturar o significado (o que é chamado de semântica) de uma área particular

(45)

ou área de conhecimento que corresponde ao que um ser humano sabe sobre esse domínio. Uma ontologia, também, caracteriza esse significado em termos de conceito e seus relacionamentos.

Acompanhe como o consórcio W3C (apud Breitman, 2006, p 40-42) estabeleceu alguns requisitos para uma linguagem de ontologia de modo a guiar o desenvolvimento dentro do contexto da web semântica. Esses requisitos são:

• ontologias devem ser artefatos distintos: ontologias devem ser objetos possuidores de identificadores únicos, como referências do tipo URI;

• termos de ontologias devem poder ser referenciados de forma não-ambígua através de URIs: dois termos em ontologias devem possuir identificadores absolutos. Deve ser possível identificá-los de forma não-ambígua através de uma referência do tipo URI;

• ontologias devem poder ser explicitamente estendidas: ontologias devem poder ser utilizadas para estender outras ontologias, de modo a realizar o reuso de termos ao mesmo tempo em que adicionam novas classes e propriedades;

• comprometimento com uma ontologia: recursos devem ser alocados explicitamente a ontologias, identificado de forma precisa em que estão localizadas suas definições; • metadados relativos à ontologias: a linguagem de ontologia deve fornecer

informações no formato de metadados sobre cada ontologia, tais como autor e data de publicação. A linguagem deve oferecer um conjunto-padrão de metadado, que podem ou não ser o conjunto fornecido pelo padrão Dublin Core;

• informação sobre versionamento: a linguagem deve fornecer mecanismos capazes de realizar a comparação e a relacionar diferentes versões da mesma ontologia, explicitar compatibilidade reversa e a habilidade de excluir novos itens, caso este não sejam compatíveis com versões anteriores;

• primitivas para definição de classes: a linguagem deve ser capaz de expressar definições complexas de classes da ontologia. Deve incluir, porém não está limitada a, subclasses e combinações de expressões de classe;

• primitivas para a definição de propriedades: a linguagem deve ser capaz de expressar definições de propriedades. Deve incluir, porém não está limitada a subpropriedades, restrição de domínio (domain) e escopo (range), transitividade e propriedades inversas;

(46)

• tipos de dados (datatypes): a linguagem deve fornecer um conjunto-padrão para tipos de dados. Esses tipos podem ser baseados nos tipos de dados fornecidos pelo XML Schema;

• equivalência entre propriedade e classes: a linguagem deve incluir mecanismos capazes de estabelecer duas classes ou duas propriedades são equivalentes;

• equivalência individual: a linguagem deve incluir mecanismos para estabelecer que dois identificadores representam um mesmo indivíduo. Dada a natureza distribuída da própria Web, é provável que mais de um identificador seja atribuído a um mesmo indivíduo. A utilização de uma URL padrão não resolve o problema, pois alguns indivíduos podem possuir múltiplas URLs, tais como uma pessoa que possui uma home page pessoal e outra profissional ou múltiplos endereços de e-mail;

• nomes locais únicos: de modo geral, a linguagem não vai assumir que os nomes locais sejam únicos. Isto é, não consideramos que identificadores distintos apontem necessariamente para indivíduos distintos (vide o requisito anterior). No entanto, existem casos que é de interesse garantir que essa condição seja validada. A linguagem deve fornecer esse mecanismo;

• acrescentar informação a sentenças: a linguagem deve fornecer uma maneira de “anotar” sentenças com informações adicionais, tais, como fonte, hora, nível de confiabilidade, entre outras. A linguagem não precisa fornecer um conjunto-padrão de propriedades a ser utilizado para essa função, mas prover um mecanismo que permita que usuários sejam capazes de fazê-lo;

• classes como instâncias: a linguagem deve fornecer suporte ao tratamento de classes enquanto instâncias, isto porque um mesmo conceito pode ser considerado uma classe ou um indivíduo, dependendo da perspectiva do usuário da ontologia;

• tipo complexos de dados: a linguagem deve oferecer suporte à identificação e à utilização de tipos de dados complexos e/ou estruturados. Esses podem ser utilizados para especificar datas, pares de coordenadas e endereços, entre outros;

• restrições de cardinalidade: a linguagem deve oferecer suporte à especificação de restrições à cardinalidade de determinadas propriedades. Essas restrições devem ajustar os limites inferiores e os superiores do número de objetos a que cada objeto pode se relacionar através dessa propriedade;

• etiquetas que possam ser visualizadas pelo usuário: a linguagem deve oferecer suporte à especificação de múltiplas opções de etiquetas (labels) para cada objeto da

(47)

ontologia. Esse mecanismo pode ser utilizado na visualização da ontologia em diversos idiomas;

• oferecer suporte a múltiplos caracteres: a linguagem deve oferecer suporte a conjuntos de caracteres utilizados em vários idiomas;

• oferecer suporte a sequências únicas de caracteres em Unicode: em determinada codificação de caracteres, por exemplo, codificações baseadas em Unicode, existem alguns casos em que duas sequências de caracteres diferentes podem parecer idênticas. Nesses casos, a expectativa dos usuários é de que essas sequências tenham valores de comparação idênticos. Um exemplo é o caso do ç (c cedilha). O padrão recomendado pelo consórcio W3C, para o tratamento desse tipo de problema, é adotar a normalização para o padrão Unicode Normal Form C.

A seguir, veja alguns serviços que se beneficiarão com a web semântica.

2.3.5 Agentes

Agentes de software terão um papel-chave na construção da Web Semântica. Segundo Tim Bearnes Lee, Hendler e Lassila (2001), os agentes de software serão os responsáveis por coordenar tarefas de busca, comparação e negociação na rede, reduzindo enormemente o esforço realizado pelos usuários. Uma distinção importante é que os agentes na Web Semântica não vão agir de modo totalmente autônomo. Eles vão realizar a parte “pesada” de investigação, porém vão apresentar os resultados ao usuário, para que este tome suas decisões. Eles agirão como assistentes.

Antoniou e Harmelen (2004, p. 14) definem os agentes da seguinte maneira: Agentes são porções de software que trabalham de forma autônoma e pro ativa. Um agente pessoal na Web Semântica vai receber uma lista de tarefas e preferências de uma pessoa, procurar recursos na rede, se comunicar com outros agentes, comparar informações, selecionar algumas opções e apresentar uma lista de soluções para o usuário.

A figura, a seguir, ilustra como é feita a busca e a seleção atualmente e de como ficará com a web semântica.

(48)

Figura 14 - Busca e seleção de hoje e futuramente. Fonte: Antoniou ; Harmelen (2004, p. 15).

Os autores Antoniou e Harmelen (2004) complementam dizendo que os agentes não substituirão os usuários humanos na web semântica e que, também, não tomarão decisões por eles. Em muitos casos, senão, na maioria das vezes, o seu papel será de recolher e organizar as informações e apresentar opções ao usuário para que ele possa fazer a escolha. Os agentes da web semântica farão uso de todas as tecnologias a seguir:

• metadados serão usados para identificar e extrair informações dos recursos web; • ontologias serão usadas para ajudar nas pesquisas web, para interpretar as informações

encontradas e na comunicação de outros agentes;

(49)

2.3.6 Ferramentas

Veja ferramentas que atualmente já estão disponíveis para o desenvolvimento de algumas tecnologias usadas na web semântica, reunidas por Breitman (2006):

• OilEd: editor simples de ontologias;

• OilViz: plugin do OilEd, é um visualizador de hierarquias de classes; • FaCT: verificador de consistência de ontologias criadas através do OilEd;

• Protégé2000: ambiente para criação e edição de ontologias e bases de conhecimento; • OntoViz: uma das opções de plugins para visualização de ontologias desenvolvidas

pela ferramenta Protege. Outras opções são TGViz, Jambalaya, PROMPTViz; • DC.dot: editor de metadados;

• SNOBASE: da IBM, é um sistema de gerenciamento de ontologias;

• Chimaera: sistema de software que apóia o usuário na criação e na manutenção de ontologias distribuídas na web.

• Sesame: é um repositório de dados e mecanismo de busca para dados em formato RDF-S;

• OntoEdit: editor de ontologias.

• KAON: é uma infra-estrutura de gerência de ontologias voltada ao domínio de negócios;

• OWL Validator: essa ferramenta verifica códigos em OWL.

• PhotoStuff: desenvolvida de modo a prover marcação semântica de imagens;

• SWOOP: Editor de ontologia que utiliza a metáfora de browser para exibir seu resultado;

• API JENA: API Java desenvolvida para dar suporte à implementação de aplicativos para a Web Semântca;

• Pellet: mecanismo de inferência para OWL DL;

Referências

Documentos relacionados

Entendendo a relevância do trabalho realizado no PSE para a consolidação e superação de adversidades das prá cas intersetoriais e da promoção da saúde no ambiente

Predicted values were calculated by measuring the joint probability of effects on isopods’ biomass variation found for single exposures to different soil

A partir deste momento é dada indicação para a seleção da população em estudo e é ativado o envio da medicação pelo promotor, ficando o FH da Unidade de

Assim sendo, no momento de recepção de encomendas é necessário ter em atenção vários aspetos, tais como: verificar se a encomenda é para a farmácia; caso estejam presentes

De acordo com o Estatuto de Medicamento, são considerados MSRM, todos aqueles que preencham um dos seguintes requisitos: 1) “Possam constituir um risco para a

As key results, we found that: the triceps brachii muscle acts in the elbow extension and in moving the humerus head forward; the biceps brachii, pectoralis major and deltoid

No presente estudo, catorze animais (34,15%) apresentavam algum tipo de parentesco procedente de oito diferentes propriedades rurais (26,66%), ora relacionado à vaca, ora ao touro,

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades