• Nenhum resultado encontrado

BDR1 ciro2009

N/A
N/A
Protected

Academic year: 2021

Share "BDR1 ciro2009"

Copied!
102
0
0

Texto

(1)

FACULDADE DE TECNOLOGIA DE SÃO JOSÉ DOS CAMPOS

CIRO FERNANDES MATRIGRANI

SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS

SÃO JOSÉ DOS CAMPOS 2009

(2)

CIRO FERNANDES MATRIGRANI

SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS

Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para obtenção de título de Tecnólogo em Banco de Dados.

Orientador: Msc. Giuliano Araujo Bertoti

SÃO JOSÉ DOS CAMPOS 2009

(3)

CIRO FERNANDES MATRIGRANI

SEMANTICPAD: UMA FERRAMENTA WEB DE EDIÇÃO DE CONTEÚDO PARA WEB SEMÂNTICA ADEQUADA A USUÁRIOS LEIGOS

Trabalho de graduação apresentado à Faculdade de Tecnologia de São José dos Campos, como parte dos requisitos necessários para obtenção de título de Tecnólogo em Banco de Dados.

________________________________ MSC. ADRIANA DA SILVA JACINTO (FATEC)

________________________________

DRª. CARLA DIACUI MEDEIROS BERKENBROCK (ITA) ________________________________

MSC. GIULIANO ARAUJO BERTOTI (FATEC)

__/__/__

(4)

AGRADECIMENTOS

Agradeço a todos os professores e colaboradores da FATEC de São José dos Campos que tornaram possível a formação da primeira de muitas turmas de Tecnologia em Banco de Dados da qual faço parte. Em especial para o coordenador Fernando Masanori, meu orientador Giuliano Bertoti, a dona Lourdes do cafezinho além dos meus colegas que compuseram o cenário desta fantástica fase na minha vida. Obrigado!

(5)

“O importante não é o desenho, mas o desenhar” José Matrigrani

(6)

RESUMO

Há uma quantidade de documentos disponibilizados na web e seu conteúdo aumenta consideravelmente todos os dias. O usuário leigo, sem conhecimento acadêmico em tecnologia da informação, se tornou o principal responsável pelo conteúdo na Web 2.0 por meio de de blogs, wikis, redes sociais e ferramentas colaborativas. Hoje, uma pesquisa por “redes” numa ferramenta de busca como o Google, por exemplo, retorna milhões de resultados, e minerar essa informação pode levar horas de pesquisa. Organizar e selecionar todo este conteúdo se tornou um desafio para cientistas da computação contemporâneos. A World Wide Web Consortium, órgão responsável pelos padrões da web, desenvolveu nos últimos anos tecnologias como o Resource Description Framework que tornarão possível a Web Semântica, uma proposta para solucionar este problema. Porém, foram desenvolvidas por pessoas com conhecimento acadêmico em tecnologia da informação, e não são de fácil utilização para os usuários leigos. Este trabalho apresenta o desenvolvimento da Semanticpad, uma ferramenta web de edição de conteúdo semântico para usuários leigos apoiada na arquitetura de gadgets da Google e acoplável em páginas, blogs, sites e aplicações na web. A Semanticpad também utiliza a interface baseada em mapas conceituais tentando agregar a simplicidade e usabilidade reconhecida neste modelo e propõe um novo modelo de colaboração para criação de conteúdo semântico na web.

(7)

ABSTRACT

There are a lot of documents available on the web and its content increases significantly every day. The user layman without academic knowledge in information technology, became the main responsible for the content on the Web 2.0 through blogs, wikis, social networks and collaborative tools. Today, a search for "networks" in a search engine like Google, for example, returns millions of results, and to mine this information can take hours of research. Organize and select this content has become a challenge for the contemporary computer scientists. The World Wide Web Consortium, the organization responsible for web standards, has developed in last years technologies such as Resource Description Framework which will build the Semantic Web, a proposal to solve this problem. However, it was developed by people with academic knowledge in information technology, and is not easily accessible to lay users. This document presents the development of Semanticpad, a web editing tool semantic content for lay users supported by the technology of Google Gadgets, to allow be embeddable on webpages, blogs, websites and web applications. The Semanticpad interface also uses the concept maps based on trying to add simplicity and usability recognized in this model and proposes a new collaborative model for creating semantic content on the Web.

(8)

LISTA DE FIGURAS

Figura 1 - Pesquisa de imagens pela palavra “Vênus” ... 20

Figura 2 - Exemplo de conteúdo na web ... 20

Figura 3 - Exemplo de como uma máquina enxerga o conteúdo ... 21

Figura 4 - Camadas da web... 23

Figura 5 - Requisição de página cliente/servidor ... 25

Figura 6 - Exemplo de código HTML ... 25

Figura 7 - Renderização de HTML exibida pelo navegador Firefox versão 3.0.7 ... 26

Figura 8 - Exemplo de código XHTML ... 27

Figura 9 - Página HTML ligada em folha de estilo externa ... 28

Figura 10 - Exemplo de código CSS ... 28

Figura 11 - Página HTML associada com folha de estilo rederizada pelo navegador Mozilla Firefox 3.0.7 ... 28

Figura 12 - Arquitetura da Web Semântica ... 30

Figura 13 - Alguns exemplos de URI’s ... 32

Figura 14 - Exemplo de código XML ... 33

Figura 15 - Exemplo de código DTD ... 34

Figura 16 - Exemplo de código XML Schema ... 35

Figura 17 - Gráfico RDF somente com literais ... 37

Figura 18 - Exemplo de gráfico RDF ... 38

Figura 19 - Exemplo de gráfico RDF descrevendo Frank Manola ... 38

Figura 20 - Exemplo de gráfico RDF para loja de veículos ... 39

Figura 21 - Exemplo de gráfico RDF com vocabulário Dublin Core ... 41

Figura 22 - Exemplo de namespace ... 41

Figura 23 - Exemplo de gráfico RDF ilustrando tripla ... 42

Figura 24 - Gráfico RDF destacando namespace ... 42

Figura 25 - Declaração de namespaces ... 43

Figura 26 - Exemplo de código RDF Schema ... 44

Figura 27 - Exemplo de código RDF/XML... 44

Figura 28 - Árvore de ligações entre URI’s em tripla RDF ... 45

Figura 29 - Árvore de ligações de URI’s com XML namespaces ... 45

(9)

Figura 31 - Interface do Protégé-OWL... 50

Figura 32 - Interface do WebPrótegé ... 50

Figura 33 - Interface do OntoEdit ... 53

Figura 34 - Interface do SemanticWorks ... 55

Figura 35 - Exemplo de mapa conceitual ... 61

Figura 36 - Mapa conceitual tipo aranha ... 63

Figura 37 - Mapa conceitual tipo sistema ... 63

Figura 38 - Mapa conceitual tipo hierárquico ... 64

Figura 39 - Interface colaborativa ... 71

Figura 40 - Modelo de colaboração ... 72

Figura 41 - Gadget inserido em páginas recipientes... 74

Figura 42 - Linha de código para inserção de um gadget ... 74

Figura 43 - Interface de gerenciamento do Google Project Hosting ... 76

Figura 44 – Semanticpad em tela de edição Mapa Descritivo ... 81

Figura 45 - Semanticpad em tela Gerar RDF ... 82

Figura 46 - Semanticpad em tela Opções ... 83

Figura 47 – Ilustração de cada tipo de elemento de uma tripla na tela Mapa Descritivo ... 83

Figura 48 – Semanticpad em tela Mapa Descritivo inicial ... 84

Figura 49 - Botões de edição de conceito ... 84

Figura 50 - Menu de configuração de conceito ... 85

Figura 51- Exemplo de uso de coleção “rdf:Alt” ... 86

Figura 52 - Menu de inserção de coleções ... 86

Figura 53 - Exemplo de uso de “rdf:Alt” pelo Semanticpad ... 87

Figura 54 - Exemplo de uso de “rdf:Bag” pelo Semanticpad ... 87

Figura 55 - Exemplo de uso de “rdf:Seq” pelo Semanticpad ... 87

Figura 56 - Configurações de níveis de confiabilidade ... 88

Figura 57 - Principais opções disponíveis ... 88

(10)

LISTA DE ABREVIATURAS E SIGLAS

AJAX: Asynchronous Javascript and XML API: Application Programming Interface CSS: Cascate Style Sheets

DAML: DARPA Agent Makup Language DC: Dublin Core

DOM: Document Object Method DTD: Data Type Definition

GPL: GNU General Public License GUI: Grafic User Interface

HTML: Hiper Text Makup Language IP: Internet Protocol

JQueryUI: JQuery User Interface JRE: Java Runtime Environment

KAON: the KArlsruhe ONtology and semantic web tool suíte MPL: Mozilla Public License

OCML: Open Configuration and Management Layer OIL: Ontology Inference Layer

OKBC: Open Knowledge Base Connectivity OntoEdit: Ontology Enginnering Environment OWL: Ontology Web Language

PHP: Hipertext Preprocessor

RDF: Resource Description Framework RDF(S): RDF Schema

RDFa: Resource Description Framework in attributes RDFS: RDF Schema

RSS: Really Simple Syndication

SPARQL: SPARQL Protocol And RDF Query Language SWRL: Semantic Web Rule Language

URI: Uniform Resource Identifier URL: Uniform Resource Location

(11)

W3C: World Wide Web Consortium

WISEWIG: What You See Is What You Get XHTML: Extensible Hiper Text Makup Language XML: Extensible Makup Language

XMLNS: XML Namespace XSD: XML Schema

(12)

SUMÁRIO

1

INTRODUÇÃO ... 15

1.1 Objetivo ... 16 1.1.1 Objetivo Geral ... 16 1.1.2 Objetivo Específico ... 16 1.2 Metodologia ... 17 1.3 Organização do Trabalho ... 17

2

WEB SEMÂNTICA ... 18

2.1 O que é Web Semântica ... 18

2.1.1 Conteúdo para Máquinas ... 21

2.1.2 Agentes de Software ... 22

2.2 Ambiente da Web Sintática ... 23

2.2.1 URL ... 24 2.2.2 HTML ... 25 2.2.3 XHTML ... 26 2.2.4 CSS ... 27 2.2.5 Outras Tecnologias ... 29 2.2.6 Semântica na Web 2.0 ... 29

2.3 Ambiente da Web Semântica ... 30

2.3.1 Camada de Estrutura ... 30 2.3.2 Camada de Ontologia ... 31 2.3.3 Camada Lógica ... 31 2.3.4 URI ... 32 2.3.5 XML ... 32 2.3.5.1 DTD ... 34 2.3.5.2 XML Schema ... 34 2.3.6 RDF ... 35 2.3.6.1 Notação RDF ... 36 2.3.6.2 Vocabulários ... 39

(13)

2.3.6.4 Namespaces ... 41

2.3.6.5 RDF Schema ... 43

2.3.6.6 XML/RDF Sintaxe ... 43

2.3.7 Outras Tecnologias ... 46

2.4 Considerações Finais ... 46

3

FERRAMENTAS DE EDIÇÃO SEMÂNTICA PARA WEB ... 47

3.1 Principais Ferramentas de Edição para Web Semântica ... 47

3.1.1 Protégé ... 48 3.1.1.1 Disponibilidade ... 48 3.1.1.2 Suporte ... 49 3.1.1.3 Recursos ... 49 3.1.2 OntoEdit ... 51 3.1.2.1 Disponibilidade ... 52 3.1.2.2 Suporte ... 52 3.1.2.3 Recursos ... 52 3.1.3 SemanticWorks ... 53 3.1.3.1 Disponibilidade ... 54 3.1.3.2 Suporte ... 54 3.1.3.3 Recursos ... 54

3.2 Outras Ferramentas de Edição Semântica ... 55

3.2.1 WebODE ... 56 3.2.2 OntoEditor ... 56 3.2.3 RDFedt ... 56 3.2.4 WebOnto ... 56 3.2.5 KAON ... 57 3.2.6 IkkeWiki ... 57 3.2.7 OntoWiki ... 58 3.3 Considerações Finais ... 58

4

SEMANTICPAD: UMA FERRAMENTA DE EDIÇÃO WEB

SEMÂNTICA PARA LEIGOS ... 59

4.1 Modelagem ... 59

4.1.1 Modelo de Interface Gráfica ... 59

(14)

4.1.1.1.1 Escrita de Mapas Conceituais ... 60

4.1.1.1.2 Leitura de Mapas Conceituais ... 62

4.1.1.1.3 Tipos de Mapas Conceituais ... 62

4.1.1.1.4 Interface Baseada em Mapas Conceituais ... 64

4.1.2 Modelo de Colaboração ... 65

4.1.2.1 Colaboração na Web 2.0 ... 65

4.1.2.2 Colaboração na Representação de Conhecimento ... 66

4.1.2.3 Colaboração em Mapas Conceituais ... 66

4.1.2.4 Modelo em Níveis de Confiabilidade ... 67

4.1.2.4.1 Declaração Fraca e Forte ... 67

4.1.2.4.2 Descrição Aberta e Fechada... 68

4.1.2.4.3 Mapas Conceituais Individuais e Colaborativos... 69

4.1.2.4.4 Ligação entre Mapas e Incremento de Vocabulários ... 70

4.1.2.4.5 Interface Colaborativa ... 70

4.1.3 Modelo de Aplicação Web ... 72

4.1.3.1 Gadgets ... 73

4.1.3.1.1 Características dos Gadgets ... 73

4.1.3.1.2 Recursos do Google Gadgets... 75

4.1.3.1.3 API Gadgets... 76

4.1.3.1.4 OpenSocial. ... 77

4.1.3.2 Outras Bibliotecas e Recursos ... 78

4.1.3.2.1 JQuery ... 78

4.1.3.2.2 JQueryUI... 79

4.1.3.2.3 JSDraw2D ... 79

4.1.4 Visão Geral da Modelagem da Ferramenta ... 80

4.2 Protótipo ... 80

4.2.1 Principais Telas da Ferramenta ... 80

4.2.2 Interface de Edição de Mapas Conceituais ... 83

4.2.3 Interface de Edição de Coleções RDF ... 85

4.2.4 Interface de Colaboração de Mapas Conceituais ... 87

4.2.5 Outras Opções Disponíveis... 88

4.2.6 Suporte e Documentação ... 89

4.2.6.1 Teclas de Atalho ... 89

(15)

5

CONCLUSÃO ... 91

5.1 Contribuições e Conclusões ... 91

5.2 Publicação ... 93

5.3 Trabalhos Futuros ... 94

(16)

1 INTRODUÇÃO

Uma considerável quantidade de documentos e páginas está disponibilizada na Internet e cientistas procuram por novas formas de minerar todo esse conhecimento humano (MARKOFF, 2008). Em 2001 a World Wide Web Consortium (W3C, 2009) renovou seu esforço para a produção de tecnologias como o Resource Description Framework (RDF), que possibilitarão a chamada Web Semântica (HENDLER, 2006), ou seja, uma web que pode ser compreendida tanto por humanos quanto por máquinas.

A Web Semântica proverá acesso refinado às fontes de informação e permitirá a criação de produtos que possam minerar essas fontes baseando-se nas necessidades dos usuários (FENSEL,1998). A Web Semântica é uma proposta para solucionar as deficiências e organizar as informações na web (BERTOLINI, 2009).

Para que isto seja possível é necessário que os produtores de conteúdo disponibilizem seus dados de forma que possa ser lido por máquinas. Estas tecnologias foram desenvolvidas por pessoas com experiência em lógica e inteligência artificial, para desenvolvedores tradicionais isto não é muito fácil de entender (W3SCHOOLS, 2009).

Segundo DEITEL, 2008, é improvável que desenvolvedores codifiquem todo o conteúdo da web com estas tecnologias porque é tedioso e complexo. Isso provavelmente ocorrerá de forma gradual por meio de editores.

Para que a internet tenha seu conteúdo legível por máquinas é necessário que usuários produzam seu conteúdo de forma semântica, o usuário comum é o maior produtor de conteúdo na web 2.0 (O’REILLY, 2005), mas a grande maioria desses usuários não possui conhecimento sobre as tecnologias da Web Semântica ou como utilizá-las.

São biólogos, médicos, sociólogos e empresas que disponibilizam informações que só podem ser descritas por pessoas da sua área ou elas próprias. Não seria exatamente adequado que houvesse um profissional especializado para descrever informação de outrem.

Os editores disponíveis como Protégé, SemanticWorks ou OntoEdit são voltados para profissionais de TI, de qualquer forma um conteúdo descrito com RDF dificilmente será mais simples de produzir do que uma informação em linguagem natural.

Uma ferramenta simples de edição semântica focada no usuário comum se faz útil para contribuir com a proposta de uma web que possa atingir seus plenos potenciais.

(17)

1.1 Objetivo

A seguir serão expostos os objetivos gerais e os objetivos específicos deste trabalho.

1.1.1 Objetivo Geral

Desenvolver uma ferramenta web de edição de RDF, com objetivo de alcançar simplicidade, focando os usuários pouco familiarizados com tecnologia da informação.

1.1.2 Objetivo Específico

A seguir serão apresentados os objetivos específicos deste trabalho: a) desenvolver uma ferramenta simples para edição de código RDF;

b) modelar um editor semântico para ser disponibilizado como componente reutilizável em páginas da web;

c) disponibilizar uma ferramenta com foco no usuário leigo em TI para que possa ser utilizada nas primeiras fases da engenharia de ontologias;

d) desenvolver uma interface que permita a colaboração e aproveite os benefícios da inteligência coletiva;

e) desenvolver uma ferramenta simples e intuitiva para facilitar a usabilidade e aprendizado sem necessidade de suporte;

f) tornar a ferramenta disponível e acessível para qualquer produtor de conteúdo na web.

(18)

1.2 Metodologia

A seguir será apresentada a metodologia adotada para o desenvolvimento deste trabalho:

a) estudar a realidade das tecnologias da Web Semântica, suas aplicações e padrões;

b) coletar informações das principais ferramentas de edição utilizadas atualmente para edição de conteúdo semântico para web;

c) pesquisar sobre possíveis pontos a serem desenvolvidos nos editores existentes; d) pesquisar e aplicar os modelos mais adequados de desenvolvimento de

aplicações web;

e) utilizar tecnologias e bibliotecas atuais para implementação ágil e adequada do editor.

1.3 Organização do Trabalho

A seguir serão apresentados os demais capítulos deste trabalho:

a) o Capítulo 2 apresenta um resumo sobre a Web Semântica, suas principais tecnologias e diferenças da web de hoje;

b) o Capítulo 3 apresenta as principais ferramentas de edição de conteúdo semântico disponíveis para a comunidade;

c) o Capítulo 4 apresenta a modelagem e protótipo da ferramenta web de edição de conteúdo semântico para usuários leigos;

(19)

2 WEB SEMÂNTICA

Este capítulo apresenta a Web Semântica, bem como sua proposta e aplicação baseando-se na literatura existente. As próximas seções deste capítulo apresentam as diferenças entre a Web Sintática e a Web Semântica, bem como as suas principais tecnologias e arquiteturas.

O Capítulo está organizado como segue: a Seção 2.1 apresenta o cenário que motivou a Web Semântica. A Seção 2.2 apresenta o ambiente da Web Sintática e suas principais tecnologias, enquanto a Seção 2.3 apresenta o ambiente da Web Semântica, suas principais tecnologias e diferenças da Web Sintática.

2.1 O que é Web Semântica

Esta seção apresenta uma visão geral do cenário que motivou o desenvolvimento da Web Semântica, sua justificativa e aplicação como proposta para web do futuro.

Órgãos responsáveis pela regulamentação da web, como a Word Wide Web Consortium (W3C), preocupam-se com o seu futuro. As constantes e drásticas transformações que a web vem sofrendo nos últimos deram uma nova definição à web de Web 2.0 (O’REILLY, 2005). Uma das principais características desse novo conceito de internet é a participação do usuário como atraente recurso estratégico. O usuário passou a ser o centro da web perdendo a posição de consumidor de conteúdo e ganhando uma posição de produtor de conteúdo.

Todos os dias, grande quantidade de conteúdo é inserida na web por todo tipo de usuário, e toda essa informação nem sempre tem garantia de confiabilidade o que gera um crescente acúmulo de lixo virtual.

Uma pesquisa por Redes de Computadores poderia trazer várias informações sobre “redes” (redes de pesca ou redes de dormir) ou sobre “computadores” (lojas de computadores) quando na verdade essa pesquisa procura por um assunto que não corresponde a estes temas. Poder-se-ia definir a pesquisa melhor colocando entre aspas concatenando o

(20)

termo “redes de computadores” para que a busca retornasse apenas páginas com o conjunto completo dessas palavras-chave em seu conteúdo. Mas ainda assim permitiria o retorno de uma reportagem sobre a “precariedade das redes de computadores na África”, ou seja, informações que seriam irrelevantes para o foco da pesquisa.

Hoje, uma busca mais refinada na internet pode levar horas de navegação (MARKOFF, 2008). Com o tempo a situação tende a se agravar fazendo com que buscas demandem muito mais tempo e esforço. Segundo BERNERS-LEE, 2001, os motores de busca não podem fazer uma busca mais refinada porque não são capazes de entender as informações como os seres humanos, isso porque a web é produzida para humanos e não para que máquinas possam entender seu conteúdo.

Uma máquina num ambiente descrito para seres humanos, como a web de hoje, pode fazer uma busca por uma palavra ou conjunto de caracteres, como o nome de um quadro, mas não pode nos trazer informações adicionais sobre este determinado quadro, como sua época literária, de onde veio, o que o inspirou, informações do autor... Isto porque não é capaz de reconhecer ligações entre a palavra pesquisada e seus atributos (BREITMAN, 2005). Ainda se este quadro tivesse um nome de uma coisa comum, como “Vênus”, essa ferramenta de busca em um ambiente não descrito semanticamente não seria capaz de entender a diferença entre o quadro e o astro. A Figura 1 apresenta um exemplo de busca de imagens pela palavra “Vênus”.

(21)

Figura 1 - Pesquisa de imagens pela palavra “Vênus”

Apenas com buscas por palavras-chaves, a criação de resultados mais inteligentes e sofisticados é complicada sem que as máquinas entendam a informação tal qual os humanos entendem. Quando um ser humano observa uma página da web, como a página abaixo, ele pode deduzir simplesmente pela exibição do conteúdo e do significado das palavras, ainda que sem nenhuma descrição adicional, que se trata de uma receita culinária. A Figura 2 mostra um exemplo de página da web contendo uma receita culinária.

Figura 2 - Exemplo de conteúdo na web

Um ser humano pode perceber que bolo de cenoura é um subtipo de bolo que é composto pelos ingredientes da lista, e que os parágrafos abaixo são o modo de preparo e que

(22)

irão utilizar os ingredientes da lista para produzir o bolo de cenoura, etc. Mesmo sem nenhum enunciado adicional, um ser humano pode fazer inferências sobre a informação acima por meio da sua exibição. Toda esta semântica agregada permite ao ser humano fazer uma quantidade de inferências lógicas sobre este conteúdo que vão muito além do seu significado sintático, mais isso porque cada conceito presente também reúne semântica antecedente de outras fontes. Em um ambiente sintático, como a web atual, uma máquina enxerga essa informação mais ou menos como na Figura 3 (BREITMAN, 2005).

Figura 3 - Exemplo de como uma máquina enxerga o conteúdo

Para que uma máquina possa fazer inferências sobre o conteúdo da web assim como um ser humano é necessário que as informações estejam disponíveis num formato que possa ser lido por máquinas (BERNERS-LEE, 2001), que agreguem semântica e aproveitem a semântica antecedente de outras fontes.

2.1.1 Conteúdo para Máquinas

Gerenciado pela W3C, o grupo SEMANTIC WEB ACTIVIT, 2001, está desenvolvendo um novo conjunto de linguagens nos últimos anos. Essas novas tecnologias permitirão que as pessoas tornem suas informações legíveis para máquinas.

Segundo BERNERS-LEE, 2001, e HENDLER, 2009, a web é um espaço informativo concebido não apenas com o objetivo de prover comunicação entre humanos, mas também para que máquinas fossem capazes de participar e ajudar os usuários a se comunicarem.

(23)

Colocar semântica no conteúdo da web aumentará a possibilidade de computadores do futuro fazerem tarefas e buscas sofisticadas que hoje seriam complicadas (BERNERS-LEE, 2001). Será uma web capaz de responder perguntas complexas e sutis (DEITEL, 2008). Para atingir os plenos potenciais da web, é necessário que máquinas sejam capazes não apenas de varrer o conteúdo da internet para fazer buscas, mas entender o conteúdo para manipulá-lo.

Nomes de filmes, trabalhos artísticos e pessoas possuem atributos e relações muito difíceis de serem captados de forma automatizada sem uma descrição desta informação. Ao longo do tempo, essas tecnologias e linguagens desenvolvidas pela W3C que compõe o cenário da Web Semântica, estarão gradativamente formando uma web interligada por informações e não por páginas (MARKOFF. 2008), o que facilitará essa captação, interconexão de conceitos e informações sobre os conceitos.

A web permite que vejamos nossos dados bancários, agendas, calendários ou nossas fotos, mas não nossas fotos no calendário com a data que foram tiradas, ou os dados bancários na agenda. Isto porque essas páginas e serviços na web não estão conectados por seu conteúdo (WEB SEMANTIC ACTIVIT, 2009). A web semântica proverá tecnologias que permitirão progressivamente ligar conceitos em um conhecimento universal e unificado (BERNERS-LEE, 2001). Estamos longe dos plenos potenciais dos sistemas inteligentes na web e, quando chegarmos a esse ponto, chamaremos a internet de Web 3.0 (O’REILLY, 2006).

2.1.2 Agentes de Software

Grandes companhias como GOOGLE, 2009, e IBM, 2009, tem aderido a esta proposta de web com significado (MARKOFF, 2008). O mercado se interessa por agentes capazes de fazer buscas mais precisas e inteligentes.

O ambiente da web não possibilita o desenvolvimento de agentes de software que sejam capazes de fazer inferências sobre a informação (BREITMAN, 2009), porque eles não podem fazer inferências lógicas sofisticadas em ambientes sintáticos. A Web Semântica não visa criar software e agentes com inteligência artificial que possam fazer tarefas elaboradas, mas sim tornar a web um ambiente para que esses agentes possam existir e atuar no futuro (BERNERS-LEE, 2001).

(24)

Iniciativas como DBPEDIA, 2009, grupos de trabalho da W3C e DUBLIN CORE ACTIVITIT, 2009, estão estudando e ampliando as alternativas para tornar possível este ambiente onde estes agentes possam atuar (HENDLER, 2006).

Segundo MARKOFF, 2008, a Web Semântica permitirá a criação de softwares que atendam a uma busca como: “Estou procurando um lugar confortável para as férias, tenho um orçamento de 3000 dólares e um filho de 11 anos”, que retornasse um pacote completo de férias planejado tão meticulosamente como se tivesse sido feito por um agente humano em uma agência de turismo.

As próximas seções apresentaram respectivamente a Web Sintática de hoje e a Web Semântica do futuro, elucidando suas características e diferenças arquiteturais, conceituais e tecnológicas.

2.2 Ambiente da Web Sintática

Esta seção apresenta uma visão geral sobre a arquitetura e tecnologias da Web Sintática para destacar suas diferenças com a proposta da Web Semântica. As próximas subseções detalharão a arquitetura e principais tecnologias da web de hoje.

A web tem uma arquitetura em camadas. Isto a torna flexível de forma que diferentes partes podem ser alteradas independentemente contanto que o meio de comunicação entre elas esteja inalterado (HARA-NETO, 2009). As principais camadas são a de dados responsável pelo armazenamento da informação, a camada de negócio que manipula os dados e a camada de apresentação que exibe os dados para o usuário (WIKIPÉDIA, 2009). A Figura 4 apresenta um esquema que ilustra as principais camadas da web:

Figura 4 - Camadas da web

Nas próximas subseções será apresentado um resumo das principais tecnologias atuantes na web contemporânea.

(25)

2.2.1 URL

A camada de apresentação (máquinas clientes) geralmente se comunica com a camada de negócio (servidores) com uma requisição a um Uniform Resource Location (URL) que representa um endereço na web.

Todos URLs representam um endereço de Internet Protocol (IP) de uma máquina (roteador) na internet. Segue abaixo alguns URLs seguidos dos respectivos endereços IPs que representam na web (WIKIPÉDIA, 2009).

a) endereço URL (www.w3.org), endereço IP correspondente: 128.30.52.38; b) endereço URL (www.google.com), endereço IP correspondente:

74.125.93.147;

c) endereço URL (www.fatecsjc.edu.br), endereço IP correspondente: 208.70.188.17.

Um URL é um identificador de local, ou seja, um endereço de rede na internet. Um URL como “http://www.exemplo.com.br/diretório1/diretório2/recurso.html” apresenta as seguintes partes (ICMC USP, 2009):

a) o protocolo de acesso (http://);

b) o endereço IP da máquina pelo domínio (www.exemplo.com.br); c) o caminho de diretórios até o recurso (\diretorio1\ditretorio2\); d) o recurso a ser obtido (\recurso.html).

Após uma requisição ser enviada a um servidor, este responde com uma página (ou outro recurso). Outras requisições podem ser feitas para o servidor contendo dados de um formulário, dados inseridos na própria URL ou por objetos de requisição assíncrona (TABLELESS, 2009). Estes dados podem ser processados no servidor gerando novas respostas. Após a interação os dados podem ser armazenados na camada de persistência (DEITEL, 2008).

A web desenvolve-se por meio da arquitetura Cliente/Servidor, onde o servidor é qualquer recurso de hardware e software da rede que administra e oferece serviços, tais como: hospedagem de websites, bancos de dados, serviços de e-mails, dentre outros (AZAMBUJA, 2007).

(26)

2.2.2 HTML

Máquinas clientes solicitam recursos dos servidores. A resposta geralmente é uma página de código Hiper Text Makup Language (HTML) mesclada com o conteúdo como um documento, isto ocorre quando é digitado um endereço no navegador (DEITEL, 2008). O código HTML define o a marcação do conteúdo para indicarmos formatações, inserir imagens e ligações de hipertexto. Os Navegadores identificam essas marcações em HTML e apresentam a página como foi especificada na marcação (ICMC USP, 2009). A Figura 5 apresenta um esquema de uma requisição de página na arquitetura Cliente/Servidor:

Figura 5 - Requisição de página cliente/servidor

A sintaxe HTML é baseada em tags que marcam o conteúdo e descrevem para o interpretador de cada navegador como o documento será renderizado. Tags podem ser abertas e fechadas definindo um escopo onde o conteúdo dentro deste é exibido com um formato ou regra pré-definido no interpretador. A exibição descrita pela tag ainda pode sofrer modificações descritas por seus atributos (W3C XHTML2 WORKING GROUP, 2009). A Figura 6 mostra um exemplo de código HTML:

(27)

No exemplo de código HTML, a tag “<table> ... </table>” indica para o interpretador do navegador que o conteúdo dentro desse escopo deverá ser exibido dentro de uma tabela, as tags “<tr>....</tr>” (table row) e “<td>...</td>” (table dimension) indicam as linhas e células de cada linha da tabela respectivamente. O atributo “border=1” define a espessura da borda da tabela. O conteúdo é enviado para o navegador dentro de tags HTML que definem a regra de exibição para o usuário mostado na Figura 7.

Figura 7 - Renderização de HTML exibida pelo navegador Firefox versão 3.0.7

2.2.3 XHTML

Segundo o XHTML2 WORKING GROUP, 2009, atualmente a maior parte das páginas da web é feita em HTML, uma pequena parcela da internet utiliza Extensible Hiper Text Makup Language (XHTML)(DEITEL, 2008).

O XHTML foi projetado como uma iniciativa de evitar os problemas sintáticos do HTML, XHTML é o sucessor do HTML; este é baseado em Extensible Makup Language (XML) e projetado para trabalhar com aplicações e agentes baseados em XML. É uma recomendação da W3C e séries de especificações são desenvolvidas e reformuladas para a linguagem todo ano (XHTML2 WORKING GROUP, 2009).

O XHTML é sempre associado a um documento Data Type Definition (DTD) de validação por ser feito em XML, esse documento define as especificações das tags do XHTML. Assim como no XML, o XHTML não permite erros sintáticos que comumente são tolerados pelos navegadores nos códigos HTML, e é, desde a sua concepção, projetado para ser renderizado em qualquer dispositivo.

Uma página XHTML pode ser validada em 3 DTD’s diferentes disponibilizados na W3C, cada um com sua finalidade e nível de rigor. A Figura 8 mostra um exemplo documento XHTML válido associado com o DTD do tipo Strict, o mais rigoroso em temos de especificação de sintaxe.

(28)

Figura 8 - Exemplo de código XHTML

As linhas anteriores a tag “<html>” garantem a consistência da informação associando o documento ao DTD, daí para baixo é uma página HTML normal seguindo os padrões exigidos. Isto garante maior confiabilidade na exibição da página ou com sua iteração com outras tecnologias, mas o foco não é descrever a informação, apenas exibir o conteúdo.

2.2.4 CSS

Para tornar mais rica a exibição do conteúdo são usadas outras tecnologias em conjunto com o HTML como as Cascate Style Sheets (CSS), arquivos que permitem estilizar de forma mais específica e com muito mais recursos de exibição aplicados à marcação (TABLELESS, 2009).

O CSS é uma tecnologia que pode ser associada a páginas para definir o layout e formatação do conteúdo, permite a aplicação de cores, bordas, planos de fundo e sons. A folha de estilo em cascata pode ser aplicada diretamente na página HTML armazenada no código dentro da tag “<style>...</style>” ou ligadas de forma externa pela tag “<link>”. Abaixo um exemplo de aplicação de folha de estilo associada a uma página HTML de forma externa. A Figura 9 mostra uma página HTML comum associada a uma folha de estilos CSS por meio da tag “<link>”:

(29)

Figura 9 - Página HTML ligada em folha de estilo externa

A Figura 10 mostra um exemplo de código CSS que poderia ser associado a página HTML especificando tamanho, tipo e cores das margens e das bordas de cada elemento:

Figura 10 - Exemplo de código CSS

A Figura 11 mostra como será a renderização da página da Figura 9 ao aplicar-se a folha de estilos acima:

Figura 11 - Página HTML associada com folha de estilo rederizada pelo navegador Mozilla Firefox 3.0.7

(30)

2.2.5 Outras Tecnologias

O comportamento da página pode ser escrito em uma linguagem script como Javascript dentro da tag “<script>...</script>” ou incluso em arquivo externo. Isto permite adicionar comportamentos ou funções adicionais a página que são executados nos navegadores (DEITEL, 2008).

Existem recursos de exibição mais ricos que permitem animações, interação e comportamentos mais dinâmicos. Também existem linguagens ativas no servidor que possibilitam que páginas adquiram regras de negócio, contudo, nenhuma dessas tecnologias tem compromisso com a descrição dessa informação para máquinas (BERNERS-LEE, 2001).

2.2.6 Semântica na Web 2.0

A maior parte da web é composta por documentos em HTML ou XHTML ligados por hiperlinks (WIKIPÉDIA, 2009). As empresas usam mineração de dados para extrair o significado de páginas. O XHTML ou HTML, associado com folhas de estilo, especificam a marcação e a exibição como cores e layout, mas não especificam o significado de seu conteúdo para as máquinas (DEITEL, 2008). Isso torna difícil a mineração e uso dessas informações (MARKOFF, 2008).

Tanto o HTML quanto o XHTML não guardam nenhuma informação semântica sobre a informação que é nele inserido, somente como ela deve ser exibida ao usuário, é uma web feita para humanos entender seu conteúdo, não para máquinas (DEITEL, 2008) (BERNERS-LEE, 2006) (HENDLER, 2006). Descrever a semântica da informação é muito mais complexo do que etiquetá-la entre tags, para tornar um documento machine readable são necessárias tecnologias especializadas em descrição semântica que veremos na próxima seção.

(31)

2.3 Ambiente da Web Semântica

Esta seção detalha na arquitetura básica da Web Semântica e apresenta suas principais tecnologias.

A arquitetura da Web Semântica é comumente ilustrada por uma figura chamada “Bolo de Noiva” (BERNERS-LEE, 2008). Ela apresenta as camadas adicionais que a Web Semântica conterá e ilustra as principais tecnologias atuantes em cada uma. Pode ser reconhecida em três níveis sendo esses: estrutural, ontologia e lógica (WIKIPÉDIA, 2009) além de dois níveis verticais que garantem a segurança. A Figura 12 ilustra a arquitetura da Web Semântica.

Figura 12 - Arquitetura da Web Semântica

2.3.1 Camada de Estrutura

A Camada de Estrutura abrange os dois primeiros níveis com as tecnologias de Uniform Resource Identifier (URI), Unicode, XML e namespaces. Elas definem os aspectos sintáticos mais simples da web estrutural (JACINTO, 2006). Essa camada é o alicerce da Web

Lógica

Ontologia

(32)

Semântica. Segundo a W3C WEB SEMANTIC ACTIVIT, 2009, esta camada tem por finalidade de:

a) padronizar o uso de caracteres; b) definir significado sintático; c) definir localização dos recursos.

2.3.2 Camada de Ontologia

A Camada de Ontologia abrange os dois níveis com as tecnologias de Modelo e Sintaxe RDF, RDF Schema e Ontologias. Com o tempo surgiram outras linguagens como a Ontology Web Language (OWL) com maiores recursos de descrição semântica. Esta camada tem as seguintes finalidades (W3C, 2009):

a) descrever os recursos com meta-informação;

b) ter uma melhor e mais detalhada classificação e caracterização das relações entre os recursos;

c) garantir interoperabilidade e reuso de conceitos e termos;

d) para os casos mais complexos, definir as relações lógicas entre os recursos.

2.3.3 Camada Lógica

A Camada de Lógica abrange os últimos níveis chamados de Regras, Lógica, Prova e Confiança. É neste nível que é validada e especificada a meta-informação das camadas inferiores para que se atinja a confiabilidade (W3C, 2009). Este nível tem a finalidade de:

a) definir as regras entre os recursos e suas relações;

b) extrair e vincular fontes de dados para garantir o seu intercâmbio com os dados provenientes de outras fontes;

c) consultar informações descritas por meio dessas relações; d) revelar contradições;

(33)

Nas próximas seções serão apresentadas as principais tecnologias da Web Semântica.

2.3.4 URI

Um Uniform Resource Indentifier (URI) identifica um recurso na web, seja este abstrato ou físico (W3C, 2009). Um URI pode identificar de forma única qualquer coisa na internet. O URI é uma extensão do URL sendo que todo URL também é um URI (MANOLA, 2004). A Figura 13 mostra alguns exemplos de URI que apontam para recursos:

Figura 13 - Alguns exemplos de URI’s

No primeiro exemplo temos uma identificação de um recurso de caixa de email, no segundo um livro e no terceiro exemplo, a idade de uma pessoa. Por meio dos URI’s podemos identificar qualquer coisa na web como um recurso e, a partir disso, começar a descrevê-la. O URI é a base para o RDF e desde já soluciona o problema de ambigüidade como pesquisar por um nome comum já que a identificação do recurso passa a ser único na internet (BERNERS-LEE, 2004).

Logo, é conveniente utilizar URI’s para identificar recursos na web. No modelo do RDF quanto mais utilizar-se URI’s do que informações literais (caracteres em linguagem natural, por exemplo) mais adequado será para termos uma web ligada por informações (MANOLA, 2004). Nas próximas seções será apresentado o XML e o RDF, e como estes fazem uso das URI’s para sanar alguns dos problemas semânticos da web.

2.3.5 XML

Extensible Makup Language (XML)(W3C, 2009) é uma linguagem de marcação recomendada pela W3C que tem uma finalidade diferente do HTML. Trata-se se uma linguagem que representa informação em forma de árvores estruturando o conteúdo, são linguagens com finalidades diferentes (BRAY, 2008). O HTML é projetado para exibição da

(34)

informação enquanto o XML é projetado para seu armazenamento e transporte (W3SCHOOLS, 2009).

Diferente do HTML, o XML não possui tags pré-definidas, qualquer usuário pode definir suas próprias tags como lhe convenha para estruturar sua informação. A Figura 14 mostra um exemplo de arquivo XML:

Figura 14 - Exemplo de código XML

O XML tem a finalidade de prover comunicação padronizada entre máquinas especificando uma estrutura comum para a comunicação. Para isto, usa um documento que padroniza a informação como um DTD ou XML Schema. Na web as máquinas trocam informações entre si em XML e a exibem para o usuário em HTML (W3SCHOOLS, 2009)

O XML é usado como base para criação de vários outros padrões como o XHTML e o RDF. No entanto o XML por si só também não tem compromisso com a semântica da informação. Inserir semântica no conteúdo é mais complexo do que envolvê-los em tags. O XML serve de base para as linguagens de descrição semântica, mas ele próprio é apenas sintático (BERNERS-LEE, 2004) e pertence à camada estrutural da Web Semântica.

(35)

2.3.5.1 DTD

Um documento XML pode ser validado por um documento Data Type Definition (DTD), por meio dos DTD’s pode se criar padrões para o transporte e armazenamento da informação entre dispositivos diferentes, solucionando o problema de incompatibilidade dos dados. Dados marcados em XML são arquivos de textos simples legíveis por quaisquer dispositivos (W3SCHOOLS, 2009)

Para o documento XML mostrador anteriormente, poderia ser criado um DTD como o apresentado na Figura 15 para padronizar o transporte de informação sobre receitas culinárias.

Figura 15 - Exemplo de código DTD

O DTD acima descreve os elementos válidos para o documento XML, a tag “<receita>” na linha dois deve receber os elementos filhos “<modo_de_preparo>” e “<ingredientes>”, o elemento “<ingredientes>” deve receber o elemento “<ingrediente>” e o “<modo_de_preparo>” pode ou não receber o elemento “<passo>” e pode receber conteúdo de texto (#PCDATA).

Um documento DTD pode ser utilizado para criar um padrão de comunicação entre máquinas, por isso o XML não permite erros de sintaxe segundo as especificações da linguagem ou do documento de definição.

2.3.5.2 XML Schema

Assim como o DTD, um XML Schema pode ser usado para validar um documento XML, mas esse possui mais recursos como cardinalidade, suporte a criação de tipos, namespaces além de ser escrito em XML (W3C SCHOOLS, 2009). A Figura 16 mostra um exemplo de um documento XML Schema com a mesma finalidade do DTD da Figura 15:

(36)

Figura 16 - Exemplo de código XML Schema

2.3.6 RDF

A Web Sintática é destinada ao usuário humano sendo que o usuário máquina não pode dispor das informações contidas nela tal qual um ser humano, porque para uma máquina, essas informações não possuem um significado (BREITMAN, 2006). No contexto da Web Semântica essas informações são chamadas de recursos.

Um recurso é qualquer informação que possa ser descrita com suas propriedades e suas relações com outros recursos. Segundo (MANOLA, 2004) um recurso é qualquer informação na web que possa ser identificada e reutilizada. Para descrever esses recursos são utilizadas tecnologias como o Resourse Description Framework (RDF).

Podemos definir o RDF como um ambiente de descrição de recurso que tem suas características e padrões. A seguir, o RDF e suas particularidades serão mostrados com mais detalhes.

(37)

2.3.6.1 Notação RDF

O RDF é um ambiente simples que possibilita a descrição de meta-informação sobre recursos da web. As descrições são formadas por uma série de declarações que são chamadas de triplas. Uma tripla está presente em qualquer declaração descritiva (BERNERS-LEE, 2001). Triplas são compostas de três elementos: um sujeito, um predicado e um objeto (MANOLA, 2004) como serão descritos a seguir:

a) sujeito: É o recurso que a declaração descreve;

b) predicado: Uma propriedade do recurso que a declaração descreve;

c) objeto: O valor da propriedade do recurso que a declaração descreve, podendo este também ser outro recurso.

Um exemplo de declaração como: “RDF Primer foi criado em 10 de fevereiro de 2004”, pode ser expressa pela seguinte tripla: (a) “RDF Primer”, (b) “data de criação”, (c) “10 de Fevereiro de 2004”, sendo:

a) sujeito: RDF Primer; b) predicado: data de criação; c) objeto: 10 de Fevereiro de 2004.

Assim qualquer informação sobre qualquer recurso na web pode ser expressa por triplas, como na tripla “Frank Manola” “autor” “RDF Primer”. O recurso RDF Primer surge agora como um objeto da declaração, porém para uma máquina não existe nenhuma relação entre o sujeito “RDF Primer” da primeira declaração com o objeto “RDF Primer” da segunda declaração que garanta que sejam referentes ao mesmo conceito; trata-se apenas um conjunto de caracteres iguais sem garantia que sejam a mesma coisa para uma máquina (BREITMAN, 2006).

Da mesma forma “redes” (num contexto de pescaria) ou “redes” (num contexto de computadores) possuem o mesmo conjunto de caracteres, mas não agregam semântica que explicite que sejam conceitos diferentes.

Isto ocorre porque estamos trabalhando com literais. Literais são valores que podem ser utilizados em triplas RDF, mas que só representam o significado léxico da informação como em linguagem natural (W3SCHOOLS, 2009). Em gráficos RDF, literais são exibidas dentro de retângulos, a Figura 17 mostra as triplas acima expressas por um gráfico RDF somente com literais:

(38)

Figura 17 - Gráfico RDF somente com literais

Como visto, literais não bastam para identificar um recurso como sendo único e permitir sua reutilização, assim, na especificação da notação RDF, literais só podem ser utilizadas como objetos, mas nunca como sujeito ou predicado (W3SCHOOLS, 2004).

O RDF usa URI’s para identificar sujeitos e predicados nas triplas de forma que cada recurso pode ser referenciado como sendo único e suas diferenças possam ser descritas. A solução adequada no exemplo anterior é centralizar o recurso “RDF Primer” por meio de uma identificação única de recurso como: “http://www.w3.org/TR/2004/REC-rdf-primer-20040210”.

O conceito “RDF Primer” identificado por um URI aponta para o mesmo recurso, logo uma máquina entende que estão sendo feitas declarações sobre um mesmo recurso “RDF Primer”. A primeira tripla acima pode ser escrita da seguinte forma (MANOLA, 2004):

a) <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>; b) data de criação;

c) 10 Fevereiro 2004.

Logo a segunda tripla receberia o mesmo URI para identificar o recurso “RDF Primer” indicando que se trata de uma relação sobre a mesma informação:

a) “Frank Manola” b) “autor”

c) <http://www.w3.org/TR/2004/REC-rdf-primer-20040210>

Na notação RDF referências para URI’s são apresentadas dentro dos sinais de menor e maior como uma tag. As triplas acima representam um gráfico como o apresentado pela Figura 18.

URI’s são apresentadas com elipses em gráficos RDF. O gráfico da Figura 18 mostra duas triplas, uma que referência “RDF Primer” como objeto, e outro como sujeito. O termo “Frank Manola” é um sujeito neste exemplo, logo este também não pode ser uma literal. Segundo BERNERS-LEE, 2001, é sempre melhor que sujeitos e predicados sejam sempre identificados por URI’s para permitir a identificação e reuso da informação.

(39)

Figura 18 - Exemplo de gráfico RDF

Informações adicionais sobre os recursos “RDF Primer” e “Frank Manola” poderiam ser declaradas em outras triplas que ligariam várias informações sobre estes recursos. A Figura 19 mostra o conceito “Frank Manola” representado por um URI agregando mais informações:

Figura 19 - Exemplo de gráfico RDF descrevendo Frank Manola

Um conjunto de triplas consistente forma uma ontologia. No contexto da Web Semântica, uma ontologia caracteriza um conjunto de conceitos dentro de um domínio de conhecimento e os relacionamentos entre estes (WIKIPÉDIA, 2009). Ao longo do tempo, estas ontologias irão gradativamente formar uma web interligada por conceitos e não por páginas (MARKOFF, 2008). As tecnologias da Web Semântica permitirão progressivamente ligar conceitos em um conhecimento universal e unificado (BERNERS-LEE, 2001) (HENDLER, 2006).

Predicados em RDF (como “data de criação” e “autor”) também não podem ser expressos por literais, os predicados também ligam as relações em conceitos de relação centralizados (KLYNE, 2004) e seus conceitos podem ser sujeitos e objetos de outras

(40)

declarações. Conjuntos de conceitos reutilizáveis são chamados de vocabulários. Conheceremos a definição de vocabulários na seção a seguir:

2.3.6.2 Vocabulários

No exemplo acima não temos literais como sujeito, porém nota-se que os predicados não estão identificados de forma única. URI’s também são aplicados para identificar predicados. Termos utilizados em descrições RDF agrupados em um namespace que são chamados de vocabulários.

Uma loja de veículos que esteja descrevendo semanticamente seus produtos poderia definir um vocabulário que descreve as propriedades dos veículos como o vocabulário a seguir:

a) conceito “modelo”: “http://www.lojaveiculos1.com/prod/terms/modelo”; b) conceito “ano”: “http://www.lojaveiculos1.com/prod/terms/ano”;

c) conceito “cor”: “http://.www.lojaveiculos1.com/prod/terms/cor”.

Este vocabulário poderia ser reutilizado por uma segunda loja para descrever seus veículos e assim teríamos um vocabulário com termos únicos que interligariam a semântica de veículos como no exemplo da Figura 20:

Figura 20 - Exemplo de gráfico RDF para loja de veículos

Não foi necessário que a Loja de Veículos 2 (www.lojaveiculos2.com) criasse seu próprio vocabulário, mas esta reaproveitou o significado já descrito nos termos do vocabulário da Loja Veículos 1 (www.lojaveiculos1.com). Da mesma forma a Loja Veículos 2 reutilizou o URI “www.lojaveiculos1.com/automoveis/tipos/fusca” disponibilizado pela

(41)

Loja Veículos 1 para descrever um “modelo” (www.lojaveiculos1.com/prod/terms/modelo) de fusca. Isso é uma utilização de recurso, assim diferentes vocabulários vão sendo interligados formando descrições comuns de recursos.

Ambas as lojas utilizaram um vocabulário que já poderia ter coleções de triplas interligadas com outros termos ou outros vocabulários de outras fontes. Segundo MANOLA, 2004, isto é a segunda finalidade do URI, reuso de informação.

2.3.6.3 Vocabulário Dublin Core

Vocabulários comuns possibilitam o reuso da informação, alguns vocabulários como o DUBLIN CORE, 2009, já são recomendações. O Dublin Core é um vocabulário com quinze termos gerais utilizados para a descrição de recursos na internet (DUBLIN CORE, 2009), abaixo serão listados os termos desse vocabulário:

a) contribuidor (Contributor): Uma entidade responsável pela criação do recurso; b) cobertura (Coverage): Uma extensão ou escopo do conteúdo do recurso;

c) criador (Creator): Uma entidade principal responsável pela elaboração do conteúdo do recurso;

d) formato (Format): A manifestação física ou digital do recurso; e) data (Date): A data de um evento no ciclo de vida do recurso; f) descrição (Description): Uma descrição do conteúdo do recurso;

g) identificador (Identifier): Uma referência inequívoca para o recurso dentro de um determinado contexto;

h) língua (Language): A língua em que foi produzido o conteúdo do recurso; i) editora (Publisher): Uma entidade responsável por tornar o recurso disponível; j) relação (Relation): Uma referência a um recurso relacionado;

k) direitos (Rights): Informações sobre os direitos adquiridos sobre o recurso; l) fonte (Source): Uma referência a um recurso a partir do qual o presente recurso

é derivado;

m) assunto (Subject): Um tópico do conteúdo do recurso; n) título (Title): Um nome dado ao recurso;

(42)

A Figura 21 mostra as triplas da Figura 17 adequadamente descritas segundo a notação RDF e recomendações da W3C utilizando o vocabulário Dublin Core:

Figura 21 - Exemplo de gráfico RDF com vocabulário Dublin Core

Um namespace como o Dublin Core pode ser referenciado por um qname. O Vocabulário Dublin Core é comumente referenciado pelo prefixo “dc”. A definição de namespace e prefixo será apresentada na próxima seção.

2.3.6.4 Namespaces

Um namespace é um container abstrato que reúne um conjunto de recursos (WIKIPÉDIA, 2009). Um grupo de recursos disponíveis em um URI é chamado de namespace. A Figura 22 mostra um exemplo de namespace:

Figura 22 - Exemplo de namespace

Por meio do atributo “xmlns” (XML namespace) pode se reduzir os namespaces em prefixos também chamados de qnames facilitando a referência escrita para os

(43)

URI’s, ou seja, reaproveitar endereços de termos e recursos que sejam comuns em pequenas inscrições no código (MANOLA, 2004) como no exemplo mostrado na Figura 23:

Figura 23 - Exemplo de gráfico RDF ilustrando tripla

O predicado da tripla acima faz referência ao vocabulário Dublin Core na propriedade date (http://purl.org/dc/elements/1.1/date) e pode ser escrito pela tripla:

a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210> b) predicado: <http://purl.org/dc/elements/1.1/date>

c) objeto: “10 Fevereiro 2004”

Se fosse utilizada a propriedade “xmlns” aplicando o namespace do vocabulário Dublin Core (http://purl.org/dc/elements/1.1/), ele pode ser resumido a um QName como “dc”, desta forma o gráfico ficaria como mostrado na Figura 24:

Figura 24 - Gráfico RDF destacando namespace E a tripla poderia ser escrita da seguinte forma:

a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210> b) predicado: dc:date

c) objeto: “10 Fevereiro 2004”

Existem prefixos que são muito utilizados em documentos XML/RDF, e são tidos como padrões pela comunidade, os mais comuns são:

a) prefixo “rdf” referenciando “http://www.w3.org/1999/02/22-rdf-syntax-ns#”: define um documento RDF e as propriedades do namespace do RDF;

(44)

b) prefixo “rdfs” referenciando “http://www.w3.org/2000/01/rdf-schema#”: define o namespace do RDF Schema;

c) prefixo “dc” referenciando “http://purl.org/dc/elements/1.1/”: define o namespace para o vocabulário Dublin Core;

d) prefixo “xsd” referenciando “http://www.w3.org/2001/XMLSchema#”: define o namespace XML Schema.

A Figura 25 mostra um exemplo de declaração de namespaces num documento RDF:

Figura 25 - Declaração de namespaces

Os vocabulários são geralmente descritos por um RDF Schema. Na próxima seção será apresentada a definição de RDF Schema.

2.3.6.5 RDF Schema

O RDF Schema pode descrever recursos e vocabulários com classes e propriedades de forma semelhante ao conceito de Orientação a Objetos (W3SCHOLS, 2009). Ele foi originalmente desenvolvido pelo (RDF SCHEMA WORKING GROUP, 2000) da W3C (BRICKLEY, 2004), e tem por finalidade descrever vocabulários (MANOLA, 2004). A Figura 26 mostra um exemplo de RDF Schema descrevendo um vocabulário válido para descrição de receitas culinárias.

2.3.6.6 XML/RDF Sintaxe

Tanto o RDF quanto o RDF Schema são definidos em XML (FENSEL, 2009) (DEITEL, 2008). Esta sintaxe é chamada de RDF/XML (BECKETT, 2004).

(45)

Figura 26 - Exemplo de código RDF Schema

A tripla a seguir pode ser representada por um documento XML/RDF: a) sujeito: <http://www.w3.org/TR/2004/REC-rdf-primer-20040210> b) predicado: dc:date

c) objeto: “10 Fevereiro 2004”

A Figura 27 apresenta um exemplo de documento XML/RDF para a declaração acima:

(46)

O atributo “xmlns” faz as ligações ou arcos. A linha “xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#” define o trecho de código da Figura 27 como um gráfico XML/RDF válido, pois as tags “<rdf:RDF>...</rdf:RDF>” definem o escopo associado com o namespace do RDF. A linha logo abaixo desta faz a ligação com o vocabulário do namespace do Dublin Core. O documento provê a ligação dos seguintes URI’s formando uma árvore como apresentada na Figura 28:

Figura 28 - Árvore de ligações entre URI’s em tripla RDF

As três últimas são respectivamente o sujeito, predicado e objeto. A Figura 29 mostra como poderia ser a mesma árvore com os qnames definidos no escopo da tag “<rdf:RDF>”

Figura 29 - Árvore de ligações de URI’s com XML namespaces

Logo, com exceção das três últimas, as três primeiras URI’s que são o cabeçalho de uma descrição RDF válida (MANOLA, 2004). Cada documento RDF/XML pode fazer uma série de declarações sobre um recurso. Um conjunto de triplas RDF consistente forma uma ontologia (BRICKLEY 2004).

(47)

2.3.7 Outras Tecnologias

a) OWL: O Web Ontology Language se tornou recomendação da W3C em 2004. Surgiu da fusão entre outras duas linguagens de descrição semântica, Ontology Inference Layer (OIL) + DARPA Agent Makup Language (DAML) (WIKIPÉDIA, 2009). OWL é uma extensão do RDF Schema agregando mais recursos de descrição com maior quantidade de vocabulários possibilitando maior interpretação por máquinas (W3C SCHOOLS, 2009). Possui três níveis sendo do mais simples para o mais completo, OWL Lite, OWL DL e OWL Full respectivamente (MCGUINNESS, 2004).

b) SWRL: O Semantic Web Rule Language (SWRL) surgiu da combinação das linguagens OWL e Rules Makup Language (HORROCKS, 2004). É uma extensão do OWL que permite a inserção de regras sobre o conteúdo descrito; c) SPARQL: Trata-se de uma linguagem estruturada para consulta a ontologias

(PRUD'HOMMEAUX, 2008).

2.4 Considerações Finais

Este capítulo expôs as diferenças entre a Web Sintática e a Web Semântica bem como uma visão geral de suas principais tecnologias. No Capítulo 3 será mostrado algumas das mais utilizadas ferramentas edição de conteúdo semântico e ontologias. No próximo capítulo são apresentadas algumas ferramentas de edição de conteúdo semântico utilizadas atualmente pela comunidade desenvolvedora.

(48)

3 FERRAMENTAS DE EDIÇÃO SEMÂNTICA PARA WEB

Este capítulo apresenta as principais ferramentas utilizadas para produção, edição e manipulação de semântica para web. Foram selecionadas algumas das ferramentas utilizadas pela comunidade desenvolvedora de ontologias com base nas publicações e trabalhos desenvolvidos.

A as subseções da Seção 3.1 apresentam respectivamente as ferramentas Protégé, OntoEdit e SemanticWorks. A última seção deste capítulo descreve resumidamente algumas outras ferramentas disponíveis à comunidade.

3.1 Principais Ferramentas de Edição para Web Semântica

As subseções a seguir apresentam algumas ferramentas de edição de conteúdo semântico disponíveis para a comunidade desenvolvedora.

Três das principais ferramentas foram analisadas pelos seguintes critérios: a) disponibilidade: analisa a disponibilidade da ferramenta considerando versão

estável, beta ou protótipo, os direitos vigentes sobre a utilização da ferramenta e quais as plataformas e tecnologias necessárias para sua instalação.

b) suporte: considera o tipo de suporte que as entidades disponibilizam para a comunidade, a documentação da ferramenta, a facilidade de encontrar suporte e informações na internet, FAQ, fóruns, tutoriais, cursos e publicações.

c) recursos: considera a interface nos requisitos de usabilidade, verifica a existência de recursos para desenvolvimentos nos vários padrões e linguagens, analisa a existência de recursos para desenvolvimento colaborativo.

As demais ferramentas apresentadas contam com uma breve descrição. Espera-se com este estudo adquirir parâmetros que contribuam com a construção da ferramenta que se propõe este trabalho.

(49)

3.1.1 Protégé

Protégé é uma das mais difundidas ferramentas de edição semântica entre os desenvolvedores, foi desenvolvida pela Universidade de Stanford com colaboração da Universidade de Manchester (WIKIPÉDIA, 2009).

Várias comunidades de desenvolvedores trabalham para o aperfeiçoamento dessa ferramenta (JACINTO, 2006). Entre as entidades que fazem parte da comunidade de desenvolvimento e aperfeiçoamento da ferramenta estão PROTÉGÉ-STANFORD, 2009:

a) Defense Advanced Research Projects Agency; b) eBay Inc.;

c) National Cancer Institute;

d) National Institute of Standards and Technology;

e) National Institutes of Health's National Centers for Biomedical Computing; f) National Library of Medicine;

g) National Science Foundation.

O site oficial também divulga congressos e conferências sobre a ferramenta. Nas subseções a seguir serão apresentadas as principais características da ferramenta Protégé.

3.1.1.1 Disponibilidade

Protégé é um editor de ontologias livre, de código fonte aberto sobre a licença MPL (Mozilla Public License) (PROTÉGÉ-STANFORD, 2009). Pode ser encontrado em vários páginas para download gratuito em todas suas versões ou após um cadastro no site oficial da ferramenta.

Protégé também tem uma versão on-line chamada WebProtégé, porém oferece menos recursos do que em sua versão para instalação. Protégé é de plataforma independente, fácil instalação não carecendo de configuração alguma e foi desenvolvido principalmente em Java tendo a Java Runtime Environment (JRE) como pré-requisito.

(50)

3.1.1.2 Suporte

Protégé possui uma vasta documentação disponível tanto no site oficial quanto na ferramenta, Ela possui uma comunidade ativa, sites, FAQ,blogs e fóruns. O site oficial e disponibiliza alguns cursos rápidos e gratuitos com duração de 2 a 4 dias.

3.1.1.3 Recursos

Protégé é uma plataforma que suporta dois níveis de modelagem, Protégé-Frames e Protégé-OWL. Protégé-Protégé-Frames permite que usuários possam povoar ontologias, possui uma interface baseada em figuras para facilitar a ambientação do usuário não familiarizado com a arquitetura técnica das ontologias. As descrições são armazenadas em um conjunto de classes organizadas hierarquicamente em conformidade com o OKBC (Open Knowledge Base Connectivity) (PROTÉGÉ-STANFORD, 2009). A Figura 30 exibe a interface de Protégé-Frames:

Figura 30 - Interface do Protégé-Frames

Protégé-OWL permite que ontologias sejam criadas de forma mais técnica. Fornece recursos para edição de classes, propriedades, instâncias e lógica (PROTÉGÉ-STANFORD, 2009). Neste modelo, de todas as ferramentas analisadas, Protégé é a que dá

(51)

maior suporte as linguagens e padrões desde o RDF, RDF Schema, RDF(S), OWL Lite, OWL DL, OWL Full, OIL, DAML, DAML+OIL e até Turtle. A Figura 31 mostra a interface de Protégé-OWL (PROTÉGÉ-STANFORD, 2009).

Figura 31 - Interface do Protégé-OWL

Protégé também possui uma versão na web chamada WebProtégé. WebProtégé suporta a criação de ontologias colaborativamente no ambiente da web. A Figura 32 apresenta a interface do WebProtégé.

(52)

Segundo o FAQ de (PROTÉGÉ-STANFORD, 2009) as características que diferem Protégé de outras ferramentas são:

a) facilidade: na versão Protégé-Frames é intuitivo para facilitar a produção de ontologias para os usuários;

b) Escalabilidade: possui uma arquitetura que não deteriora o desempenho ainda que trabalhando milhares frames com uma comunidade que já conta com cerca de 150,000 frames;

c) extensibilidade: Aceita plug-ins de ampliação;

d) documentação: possui uma extensa documentação e cursos gratuitos.

Protégé-OWL possui um modo gráfico para visualização das triplas baseado em mapas conceituais e permite a geração do código ou edição do mesmo em modo textual diretamente em XML.

3.1.2 OntoEdit

OntoEdit é um ambiente de engenharia de ontologias criado pela empresa alemã ONTOPRISE, 2009. É uma parte do projeto ON-TO-KNOWLEDGE, 2009, que visa tornar disponíveis ontologias para empresas melhorarem sua gestão de conhecimento. A Seguir serão apresentadas as principais características da ferramenta de edição semântica para web OntoEdit.

Trata-se de um consórcio composto pelas entidades abaixo (ANGELE, 2001): a) Vrije Universiteit Amsterdam VUA;

b) Institute AIFB / University of Karlsruhe;

c) Schweizerische Lebensversicherungs- und Rentenanstalt/Swiss Life; d) British Telecommunications plc;

e) CognIT a.s.; f) EnerSearch AB;

(53)

Este projeto conta com diversas outras ferramentas utilizadas pela comunidade desenvolvedora de ontologias. OntoEdit é um ambiente extensível a plug-ins e add-ons e, constantemente, possui novos recursos incrementais (SURE, 2002).

3.1.2.1 Disponibilidade

OntoEdit (Ontology Enginnering Environment) é disponibilizado em três versões: freeware, standard e professional (SURE, 2003), todas com suporte a diversas linguagens.

Funciona principalmente na plataforma Windows. OntoEdit tem como requisito mínimo a JRE1.2.2 instalada, mas os autores recomendam a JRE1.3 (SURE, 2003), pode ser encontrado para download em vários sites em suas três versões.

3.1.2.2 Suporte

A ajuda da ferramenta inclui informações sobre a versão, contato e guia do usuário. O guia do usuário é simples e completo contendo figuras de exemplo (SURE, 2002).

Na web a empresa não disponibiliza muita informação, tutoriais, FAQ ou fóruns sobre a ferramenta, mas existe uma documentação oficial completa sobre a ferramenta disponibilizada em ON-TO-KNOWLEDGE, 2009. Além disso, existem vários artigos publicados contendo OntoEdit como foco sob diversos aspectos. Dentre estes, MAEDCHE, 2000, STAABET, 2000, e HANDSCHUH, 2001, são autores de algumas publicações (SURE, 2002).

3.1.2.3 Recursos

OntoEdit possibilita a inspeção, navegação, codificação e edição de ontologias. A interface possibilita a manipulação em modo gráfico ou textual. A configuração da

Referências

Documentos relacionados

O presente trabalho tem como objetivo a identificação e detalhamento das vertentes características e dos sistemas pedológicos dominantes nas principais unidades de

Apesar de Bertha Lutz ter organizado uma rede feminista nacional formada, majoritariamente, por mulheres das classes média e alta, mantendo a luta encampada por ela em um patamar

A seletividade da reação de formação do complexo ácido salicílico- Fe(III) é uma vantagem para o método espectrofotométrico pois este não sofre interferência por

Depois de formatar e salvar o seu mapa conceitual, para sair do software, você pode ir até Arquivo e clicar em Sair do Programa.. Para

15 A Rockwell Automation oferece uma impressionante linha de produtos de detecção de condição de estado sólido da Allen-Bradley para atender praticamente todas as necessidades

Será recusada matrícula nos Cursos de Graduação ao aluno que não concluir o Curso de Graduação no prazo máximo estabelecido pelo Conselho Nacional de Educação para

copyright, patentes, designs, etc. • Ativos de Infra-Estrutura, que compreendem as tecnologias, as metodologias e os processos empregados, como cultura, sistema de informação,

De acordo com Bortolotti 2010, a Educação Especial surgiu para preencher as lacunas do ensino voltado à inclusão social, requerendo para a prática pedagógica um professor