• Nenhum resultado encontrado

D2R editor: habilitando a publicação automática de anotações semânticas de sites dinâmicos

N/A
N/A
Protected

Academic year: 2021

Share "D2R editor: habilitando a publicação automática de anotações semânticas de sites dinâmicos"

Copied!
97
0
0

Texto

(1)

André Guerreiro Cantarelli

D2R EDITOR: HABILITANDO A PUBLICAÇÃO

AUTOMÁTICA DE ANOTAÇÕES SEMÂNTICAS

DE SITES DINÂMICOS

Dissertação submetida à Universidade Federal de Santa Catarina como parte dos requisitos para a obtenção do grau de Mestre em Ciência da Computação

Rogério Cid Bastos, Dr.

Professor Orientador

(2)

D2R Editor: Habilitando a Publicação Automática de Anotações

Semânticas de Sites Dinâmicos

André Guerreiro Cantarelli

Esta Dissertação foi julgada adequada para a obtenção do título de Mestre em Ciência da Computação, Área de Concentração em Sistemas de Computação e aprovada em sua forma final pelo programa de Pós-Graduação em Ciência da Computação.

___________________________________ Prof. Raul Sidnei Wazlawick, Dr. Coordenador do programa de pós-graduação

em Ciência da Computação. Banca Examinadora:

___________________________________ Prof. Rogério Cid Bastos, Dr.

Orientador

___________________________________ Prof. Raul Sidnei Wazlawick, Dr.

___________________________________ Prof. Fernando Ostuni Gauthier, Dr.

___________________________________ Profa. Anita Maria da Rocha Fernandes, Dra.

(3)

Sumário

Sumário ... 3 Lista de Figuras ... 6 Lista de Quadros... 7 Lista de Quadros... 7 Resumo ... 9 1 INTRODUÇÃO ... 10 1.1 Importância e Justificativa... 11 1.2 Objetivos... 12 1.2.1 Objetivos Específicos ... 12 1.3 Limitações ... 13 1.4 Organização do Texto... 14 2 A WEB SEMÂNTICA ... 15 2.1 XML ... 16 2.1.1 URIs e Namespaces XML ... 18

2.2 RDF – Resource Description Framework ... 19

2.2.1 O Modelo RDF ... 20

2.2.2 Identificação de Recursos... 21

2.2.3 Tipos de Dados ... 22

2.2.4 Literais ... 22

2.2.5 Sintaxe XML para RDF... 22

2.2.5.1 Elementos Nodos e Propriedades ... 23

2.2.5.2 Abreviaturas RDF/XML... 25

2.2.5.3 Propriedades Atributo... 27

2.2.6 Completando o Documento RDF/XML ... 27

2.2.7 Descrevendo Recursos em Diversas Línguas ... 28

(4)

2.2.9 Identificação de Nodos em Branco... 29

2.2.10 Conjuntos de Membros de Elementos Propriedades ... 29

2.2.11 Coleções ... 30 2.2.12 Reificação de Declarações... 30 2.3 O Esquema RDF... 31 2.3.1 Definição de Classes... 31 2.3.2 Definição de Propriedades... 33 2.4 Ontologias... 35

2.5 Um Caso de Uso da Web Semântica ... 37

2.6 Considerações Finais ... 39

3 CONSTRUÇÃO DA WEB SEMÂNTICA ... 40

3.1 Anotações de Sites Estáticos ... 40

3.2 Anotações de Sites Dinâmicos ... 41

3.2.1 D2R MAP e Processor... 43

3.3 Considerações Finais ... 45

4 D2R EDITOR... 46

4.1 Arquitetura do Sistema ... 47

4.2 Funcionamento ... 47

4.2.1 Passo 1 – Database Connection ... 48

4.2.2 Passo 2 – Database Queries ... 49

4.2.3 Passo 3 - Namespaces... 51

4.2.4 Passo 4 – RDF Schema... 52

4.2.5 Passo 5 - Geração do Mapa de Migração e do Esquema RDF ... 54

4.3 Integração com o D2R Processor ... 56

4.4 Implementação ... 57

(5)

4.4.3 Método para a Geração de D2R MAP... 61

4.5 Exemplo de Uso – Rede Semente Sul ... 63

4.5.1 Geração de Anotações Semânticas sobre Espécies Florestais... 64

5 CONCLUSÕES... 69

5.1 Resultados Gerais ... 69

5.2 Resultados Específicos ... 70

5.3 Recomendações para Trabalhos Futuros ... 70

6 REFERÊNCIAS BIBLIOGRÁFICAS ... 72

ANEXOS ... 75

I - Especificação da Estrutura da Linguagem D2R Map. ... 75

II - Principais Funções do D2R Editor ... 86

III - Esquema RDF de Espécies Florestais ... 90

IV - Mapa de Migração de Espécies Florestais ... 92

(6)

Lista de Figuras

Figura 2-1 - Declarações RDF na forma de grafos titulados e dirigidos ... 21

Figura 2-2 - Exemplo de grafo RDF... 23

Figura 2-3 - Funcionamento de um agente planejador de atividades ... 38

Figura 3-1 - Arquitetura de um site estático. ... 41

Figura 3-2 - Arquitetura de um site dinâmico. ... 42

Figura 3-3 – Arquitetura de funcionamento do D2R Processor. ... 44

Figura 4-1 – Arquitetura do Sistema D2R Editor... 47

Figura 4-2 - D2R Editor: Conexão com o banco de dados... 48

Figura 4-3 – Cadastro de uma consulta SQL no sistema... 49

Figura 4-4 – Visualização das colunas resultantes de uma consulta SQL ... 50

Figura 4-5 - Propriedades de uma coluna resultante ... 51

Figura 4-6 - Cadastro de informações de uma referência URI... 52

Figura 4-7 - Características de uma classe RDF resultante. ... 52

Figura 4-8 – Edição dos relacionamentos ontológicos de uma propriedade ... 53

Figura 4-9 - Interface de geração do mapa de migração e do esquema RDF... 54

Figura 4-10 - Chamada do D2R Processor em um site dinâmico. ... 57

Figura 4-11 - Modelo relacional do banco de dados do D2R Editor... 58

Figura 4-12 - Modelagem relacional do banco de dados de espécies florestais... 65

Figura 4-13 - Pseudo-modelagem do banco de dados de espécies florestais. ... 67

(7)

Quadro 2-1 - Exemplo de um código XML. ... 17

Quadro 2-2 - Exemplo do uso de namespace e URI em um documento XML... 18

Quadro 2-3 - Declarações RDF ... 21

Quadro 2-4 - Nodos e Arcos RDF/XML ... 24

Quadro 2-5 - Nodos com Referências URI ... 24

Quadro 2-6 - Grafo RDF serializado com a sintaxe XML ... 25

Quadro 2-7 - RDF/XML utilizando várias propriedades para um único elemento ... 26

Quadro 2-8 - RDF/XML com a abreviatura para elementos de propriedades em branco ... 27

Quadro 2-9 - Exemplo do uso de propriedades atributos ... 27

Quadro 2-10 - Documento RDF/XML completo ... 28

Quadro 2-11 - Uso do atributo xml:lang ... 28

Quadro 2-12 - Literais com tipos de dados definidos... 29

Quadro 2-13 - Identificação de nodos em branco... 29

Quadro 2-14 - Conjunto de membros de elementos propriedades ... 30

Quadro 2-15 - Propriedade que contém uma coleção de nodos ... 30

Quadro 2-16 – Reificação de uma declaração RDF/XML ... 30

Quadro 2-17 - Declaração de uma classe com o Esquema RDF ... 32

Quadro 2-18 - Declaração abreviada de uma classe com o Esquema RDF ... 32

Quadro 2-19 - Instância de uma classe definida em um Esquema RDF ... 32

Quadro 2-20 - Declaração de classes e subclasses com o Esquema RDF ... 33

Quadro 2-21 - Formas de declarações de uma propriedade RDF... 34

Quadro 2-22 - Restringindo os tipos de dados de uma propriedade... 34

Quadro 2-23 - Uma Classe RDF como tipo de uma propriedade... 34

(8)

Quadro 2-25 – Fragmento de uma ontologia definida com as linguagens OWL e RDF/XML ... 37 Quadro 4-1 - Exemplo de conteúdos gerados pelo D2R Editor. ... 55 Quadro 4-2 - Definições de namespaces e de uma classe RDF gerados automaticamente

... 59 Quadro 4-3 - Exemplo de um esquama RDF gerado automaticamente. ... 61 Quadro 4-4 - Consultas SQL registrados no D2R Editor ... 66

(9)

Resumo

O objetivo da Web Semântica é fazer com que sistemas entendam as informações publicadas na Internet para oferecer aos usuários um melhor aproveitamento no uso do computador. Para expressar uma semântica formal e viabilizar esta compreensão automatizada, os conteúdos devem estar descritos com a linguagem RDF (Resource

Description Framework), tendo seus significados definidos e interligados através de

relações ontológicas. Neste trabalho é desenvolvida uma ferramenta que, através de uma interface Web, permite o registro de informações sobre a estrutura de um banco de dados relacional e, com isto, gera um mapa de migração que facilita a geração automática de anotações semânticas sobre os conteúdos deste banco de dados. Adicionalmente, o sistema constrói um vocabulário RDF, que formaliza e compartilha a semântica dos termos utilizados nas anotações que serão geradas através do mapa. Com esta aplicação, diferentes sites dinâmicos se tornam aptos a publicar informações que possam ser igualmente compreendidas e relacionadas por agentes inteligentes.

Palavras-chave: Web Semântica; RDF; XML; Bancos de Dados Relacionais; Integração de Dados.

(10)

1 INTRODUÇÃO

A Web Semântica tem por objetivo fazer com que a Internet funcione como uma grande base de conhecimento que possa ser compreendida pelo computador, o qual estará apto a realizar tarefas mais proveitosas para os usuários. Neste novo ambiente, as aplicações serão capazes de trocar informações entre si, fazendo análises mais eficazes e chegando a conclusões que irão contribuir diretamente com o rendimento das pessoas que utilizam o computador.

Para que este processamento avançado seja viável, é necessário que o conteúdo da Internet seja estendido com representações formais de seu significado, isto é, adicionar declarações textuais que obedeçam a um mesmo padrão sintático e estrutural, onde os termos utilizados são definidos em vocabulários formais e compartilhados. Somente a partir desta padronização e compartilhamento de definições, um software é capaz de relacionar informações que antes só eram compreendidas por seres humanos. A Seção 2 aborda com mais detalhes as tecnologias utilizadas na Web Semântica para a representação formal do conhecimento.

Para chegar ao estágio onde o conteúdo da Internet esteja nos padrões da Web Semântica, é necessário utilizar alguns procedimentos que variam de acordo com a estrutura de cada fonte de informação. As principais estruturas identificadas são os sites estáticos, cujas informações encontram-se no formato HTML (Hiper Text Markup

Language [RAG 99]), e os sites dinâmicos, que possuem seus dados armazenados e

estruturados principalmente em bancos de dados relacionais.

O foco deste trabalho está voltado para um método o qual permite que conteúdos armazenados em bancos de dados relacionais possam ser publicados em um formato passível de processamento inteligente, ou seja, dentro dos padrões estebelecidos pela

Web Semântica. Para que esta publicação aconteça adequadamente, o método deve ser

aplicado de forma que as anotações semânticas sejam produzindas no mesmo momento que houver uma solicitação. Estas anotações devem, ainda, estar vinculadas a um vocabulário formal que defina e relacione seus termos com outras fontes de dados do mesmo domínio de conhecimento.

(11)

migração semântica. Estes mapas contêm as instruções necessárias para que declarações formais sejam criadas em tempo real. Adicionalmente, Chris Bizer desenvolveu um sistema capaz de realizar esta migração, gerando arquivos que declaram formalmente o conteúdo de tal banco de dados.

Contudo, esta arquitetura proposta por Chris Bizer não possui nenhum método automatizado para a criação de vocabulários que definem os termos utilizados nas anotações ou declarações geradas. Também é possível dizer que este método deveria ser mais simples de ser aplicado, pois, através desta abordagem, o mapa de migração deve ser criado manualmente pelo administrador do banco de dados.

A ferramenta desenvolvida no presente trabalho chama-se D2R Editor, e permite que o usuário registre informações sobre a estrutura de determinado banco de dados, através de uma interface gráfica. Com isto, o sistema realiza a geração automática de um mapa de migração de tal banco de dados, na linguagem especificada por Chris Bizer. Como resultado adicional, a ferramenta produz um vocabulário de definições ricas em uma semântica formal, o qual define o conceito de todos os termos utilizados neste banco de dados, viabilizando a integração com outras fontes de informação.

1.1 Importância e Justificativa

A publicação, por Tim Berners-Lee, do artigo “The Semantic Web” [BER 01] movimentou pesquisadores de várias áreas, pois, além da proposta de revolucionar o uso da Internet, foram mencionadas formas de representação do conhecimento de modo a viabilizar a compreensão por parte de novos agentes inteligentes. Deste então, a organização que regulamenta todos os padrões utilizados na Web [W3C 04] deu início a um grupo oficial de pesquisas sobre a Web Semântica e, além disso, muitos outros trabalhos vêm sendo desenvolvidos, com as mais diversas abrangências dentro deste tema.

Handschuh [HAN 03] apresenta uma abordagem onde usuários utilizam ferramentas para ajustar seus próprios vocabulários formais com as anotações semânticas encontradas em outros sites que já produzem conteúdos ricos em uma semântica formal. Os componentes disponibilizados contribuem muito para eliminar

(12)

ambigüidades entre fontes de dados distintas. Um outro trabalho, publicado por Grau [GRA 04], apresenta uma proposta para simplificar a arquitetura da Web Semântica, onde são sugeridas algumas modificações importantes aos padrões aceitos pela W3C.

Já sobre a migração de bases de dados relacionais para anotações semânticas, o trabalho publicado por Stojanovic [STO 02] apresenta um sistema onde o usuário, primeiramente, informa toda a estrutura de um modelo relacional e, em seguida, acompanha um processo semi-automático de geração de um vocabulário, que representa formalmente todo o modelo relacional informado. O sistema ainda viabiliza a criação das instâncias de declarações formais contendo as informações do banco de dados de acordo com a estrutura do vocabulário.

As tecnologias que circundam o desenvolvimento de uma Web inteligente são importantes para muitas áreas da ciência da computação, fazendo com que todas trabalhem em cooperação, desde a representação formal do conhecimento, passando pela pesquisa sobre novos modelos de interface com o usuário final, até a interpretação inteligente de conteúdos.

Com relação à aplicabilidade desta tecnologia, pode-se dizer que o uso do computador poderá se tornar uma experiência nova em todos os domínios. Isto por que o usuário não receberá mais informações desconexas, mas sim resultados de processamentos inteligentes, os quais relacionaram dados de diversos locais. Sendo assim, a utilização da Internet ficará mais rápida, prática, e eficiente.

1.2 Objetivos

Permitir com que administradores de sites dinâmicos e bancos de dados relacionais possam disponibilizar na Internet, com facilidade, conteúdos de acordo com os padrões da Web Semântica. Assim, as informações poderiam ser trocadas e processadas entre agentes inteligentes, o que tornaria a Internet um meio de comunicação ainda mais útil em diversos segmentos da sociedade.

1.2.1 Objetivos Específicos

• Desenvolver um sistema capas de gerar mapas de migração e esquemas RDF [MAN 03] de quaquer banco de dados relacional;

(13)

estrutura de um banco de dados;

o Armazenar informações sobre mais de uma base de dados;

o Permitir que o usuário aponte detalhes sobre a estrutura relacional da fonte de dados;

o Registrar relacionamentos entre os termos utilizados neste banco de dados com termos definidos em outros vocabulários da Web; • Criar um mapa de migração de acordo com as especificações definidas

por Chris Bizer, baseando-se nas informações registradas sobre a estrutura de um banco de dados;

• Gerar um vocabulário formal o qual defina os termos utilizados no mapa de migração, baseando-se nas mesmas características informadas sobre determinado banco de dados;

o Relacionar as definições deste vocabulário com termos definidos em outros vocabulários da Web;

1.3 Limitações

• O trabalho possui o objetivo de gerar mapas de migração e vocabulários semânticos sobre informações contidas apenas em bancos de dados relacionais, não abrangendo nenhum processo de anotação semântica de informações que estejam em qualquer outro formato;

• Com o D2R Editor não é possível gerar vocabulários contendo descrições em mais de um idioma;

• O sistema não faz nenhum relacionamento automático com outras definições de vocabulários espalhados pela Web, mas fornece uma interface para que o usuário os faça manualmente;

• O processo de reconhecimento da estrutura do banco de dados em questão não é automático, mas sim através de uma interface onde o

(14)

usuário registra quais informações deverão constar no mapa de migração e no vocabulário;

• O D2R Editor não é capaz de produzir as declarações formais dos dados contidos em um banco de dados. O sistema gera apenas um vocabulário formal e um mapa de migração que irá viabilizar este processo, que pode ser realizado pelo sistema apresentado por Chris Bizer.

1.4 Organização do Texto

Este trabalho está estruturado em sete capítulos.

O primeiro faz uma introdução do tema abordado, identificando objetivos, apontando limitações, ressaltando a importância e justificando o trabalho realizado.

O segundo capítulo apresenta a Web Semântica, explicando seu funcionamento e descrevendo as tecnologias que a envolvem.

O terceiro capítulo identifica formas de construir a base da Web Semântica ressaltando, inicialmente, a necessidade da existência de métodos simples para a descrição da semântica formal dos conteúdos da Internet.

O quarto capítulo apresenta o sistema D2R Editor, descrevendo sua estrutura, funcionamento e implementação. Ao fim do capítulo é apresentado um exemplo de uso desta aplicação.

No quinto capítulo são descritas as conclusões do trabalho desenvolvido, apresentado os resultados e indicando possibilidades para trabalhos futuros.

O sexto capítulo contém todas as referências bibliográficas utilizadas, e o sétimo capítulo é composto por alguns anexos que contribuem para a compreensão do presente texto.

(15)

2 A

WEB SEMÂNTICA

A Internet contém uma enorme quantidade de informações criadas pelas mais diversas organizações, pessoas e comunidades, cada qual com seus objetivos específicos. Para interagir com este universo, o usuário deve, ou especificar o endereço do site desejado, ou filtrar resultados em mecanismos de busca, ou clicar em links relacionados, dentre outras ações simples. Esta simplicidade foi definitiva para tanta popularidade e crescimento deste meio de comunicação.

Todavia, o crescimento da Internet trouxe uma série de conseqüências relacionadas ao acesso e organização de seu conteúdo. Com uma gama cada vez maior de dados disponíveis, é comum que informações relevantes sejam perdidas em uma busca, ou que conteúdos não relacionados à mesma sejam retornados. Isto ocorre por que a Web se tornou uma grande base de dados escrita e estruturada de maneiras distintas e, sendo assim, está sendo cada vez mais difícil a realização eficiente de buscas e relacionamentos automatizados nos conteúdos da Internet.

A Web Semântica pode ser definida como uma extensão da Web atual, onde as informações serão complementadas por descrições ricas de uma semântica formal, e os sistemas, trabalhando em cooperação, estarão habilitados a “entender” e integrar estes conteúdos, podendo realizar tarefas muito mais complexas do que as executadas atualmente [BER 01].

Representar os conteúdos da Web utilizando uma semântica formal significa, primeiramente, adicionar declarações textuais utilizando um único padrão sintático e estrutural e, posteriormente, estendê-las com a criação de vocabulários que definam e compartilhem o significado dos termos destas declarações. Adicionalmente, devem ser realizadas descrições lógicas sobre fatos que envolvem estes termos. A seguir são citadas as camadas utilizadas na representação da informação de forma a torná-la “compreensível” pelo computador.

• Extensible Markup Language (XML) [BRA 04]: provê uma sintaxe padronizada que permite a troca de informações entre diferentes

(16)

• Resource Description Framework (RDF): fornece um modelo uniforme para descrever dados sobre qualquer recurso na Web, viabilizando a integração de informações de origens distintas;

• Ontologias: eliminam ambigüidades e adicionam detalhes semânticos estendendo declarações RDF, criando vocabulários comuns sobre conceitos de um mesmo domínio.

Nas seções 2.1, 2.2, 2.3 e 2.4 são detalhadas estas camadas utilizadas na descrição da semântica formal de conteúdos da Web.

Além destas camadas apresentadas, ainda existem outras duas em nível superior, sendo uma responsável pela definição de regras para inferências lógicas, e a outra determina níveis de confiança para informações com procedências diferentes. Entretanto, estes dois níveis de representação não são abordados em detalhes, visto que não fazem parte do escopo deste trabalho.

Com as informações devidamente representadas, será viável o funcionamento de aplicações e agentes de software preparados para ler e interpretar dados providos de uma semântica formal. Assim, estes sistemas estarão prontos para trocar informações entre si, processá-las de forma homogênea, tomar decisões inteligentes baseados nas descrições lógicas de fatos, e realizar operações que possam reduzir e otimizar o trabalho do usuário no uso da Internet.

2.1 XML

A Linguagem de Marcação Extensível (Extensible Markup Language) XML foi projetada para permitir que qualquer um possa projetar e escrever sua própria estrutura de documento [BRA 04]. Assim como HTML, o documento XML contém um texto, que é marcado com tags. Esta marcação permite que uma aplicação interprete as partes (chamadas de elementos) do conteúdo. Em HTML, o conjunto de tags permitidas é finito, já com XML os usuários podem definir suas próprias tags e a estrutura hierárquica na qual elas estarão dispostas no documento. O Quadro 2-1 é um exemplo simples de um fragmento de código XML.

(17)

<declaracao><pessoa identificador="http://example.com/andre#">André Cantarelli</pessoa>

comeu uma <fruta>maçã</fruta>.</declaracao>

Quadro 2-1 - Exemplo de um código XML.

Os elementos delimitados pelas tags são utilizados para refletir uma estrutura particular associada à sentença. As tags permitem que o documento seja processado por um software desenvolvido para entender especificamente a estrutura destes elementos. Por exemplo, um dos elementos do Quadro 2-1 é <fruta>maçã</fruta>, e consiste na

tag de abertura <fruta>, seguido do conteúdo maçã, e da tag de fechamento </fruta>. O

elemento fruta, juntamente com o elemento pessoa, estão aninhados como parte do

elemento declaracao.

Em alguns casos um elemento pode não ter um conteúdo. Isto pode ser escrito de duas formas, onde uma se dá no uso de uma tag de abertura, seguida do seu fechamento (<fruta></fruta>). A outra ocorre simplesmente com a tag de abertura

junto da barra de fechamento no final (<fruta />).

Existem casos onde a tag de abertura pode ser acrescida de informações de caracterização ao invés de somente uma outra tag dentro de sua estrutura. É o exemplo do elemento pessoa que possui o atributo identificador=http://example.com/#andre.

Um atributo consiste em um nome, um sinal de igualdade e um valor dentro de aspas. O código do Quadro 2-1 usa termos particulares (declaracao, pessoa, fruta)

como nomes de tags visando dar um significado para a leitura do conteúdo. Esta semântica teria efeito somente em casos onde o consumidor desta informação fosse, ou um ser humano, ou um software programado para interpretar, especificamente, os termos deste documento. Se a situação não for nenhuma destas duas, não é possível o reconhecimento semântico ou estrutural.

A linguagem XML apresenta uma estrutura totalmente flexível, permitindo que se crie qualquer outra linguagem com uma estrutura própria, de forma que sua sintaxe possa ser lida por qualquer software. Esta característica viabiliza a troca de informações entre aplicações e, por este motivo, o padrão de sintaxe XML foi escolhido para o desenvolvimento das linguagens de representação de informações na Web Semântica [BEC 04].

(18)

2.1.1 URIs e Namespaces XML

URI (Uniform Resource Identifier) é uma forma de identificação de recursos na

Web [BER 98]. Diferentemente de URL, um URI não é limitado a identificar somente

elementos que possuem um local remoto válido. Para representar um URI, é necessário um prefixo e um nome de identificação. Existem muitos formatos de URIs, sendo que os mais comuns servem para identificar páginas da Web (http://www.example.org),

endereços de e-mail (mailto:andre@example.org), endereços de servidores de

transferências de arquivos (ftp://ftp.example.org), e nomes de recursos diversos

(urn:isbn:8-556-55225-5).

Na declaração formal de informações na Web existem situações onde são realizadas mais de uma definição de elementos que possuem o mesmo nome. Ocorre então, situações onde um termo possui um significado em um determinado documento, e outro completamente diferente em um segundo documento.

Para solucionar esta questão, foi implantado na estrutura da linguagem XML um mecanismo adicional objetivando manter únicos os vocabulários, tendo os elementos de marcação identificados sem duplicidades, através do uso de Namespaces XML [BRA 03]. Um namespace é uma forma de identificar (com uma abreviação que representa um URI) um espaço ou parte da Web que corresponde a um conjunto específico de nomes ou termos. Através da qualificação de nomes de tags com um namespace, é possível criar vocabulários e torná-los únicos na Internet. O Quadro 2-2 apresenta um exemplo de uso de namespace para identificar os termos usados em sentenças XML.

<user:declaração xmlns:user="http://example.com/usersdef#" > <user:pessoa user:identificador="http://example.com/andre#"> André Cantarelli </user:pessoa>

comeu uma <user:fruta>maçã</user:fruta>. </user:declaracao>

(19)

2.2 RDF – Resource Description Framework

O RDF é uma linguagem para representação de informações sobre recursos na

Internet [KLY 04]. Inicialmente era utilizada somente para representar metadados sobre

recursos específicos da Web, ou seja, propriedades como título, autor, ou data de modificação de documentos disponíveis na Internet. Entretanto, através da generalização do conceito “recurso da Web”, o RDF pode ser usado para fazer declarações sobre objetos das mais diversas naturezas (cd, pessoa, automóvel, livro, etc.) que podem ser identificados na Web, sem a necessidade do acesso direto pelo

browser ou navegador Web.

O RDF é utilizado quando informações sobre um ou mais recursos devem ser processadas por aplicações diferentes, independente da forma como o conteúdo é apresentado. A linguagem provê um framework comum para representação de dados, de modo que estes possam ser trocados entre aplicações sem haver perda de significado.

O RDF foi projetado para representar informações com o mínimo de restrições na expressão de seus significados, oferecendo grande flexibilidade na declaração dos fatos de forma que se possa chegar tão perto quanto possível da realidade. Este modelo de representação uniforme pode ser usado isoladamente em uma única aplicação, no entanto, sua estrutura facilita o compartilhamento, agregando valor à informação, uma vez que esta pode ser acessada por várias aplicações na Internet.

O RDF pode ser amplamente utilizado na descrição formal do significado de informações na Web, pelas seguintes características [KLY 04]:

• Modelo de dados simples: sua estrutura permite uma fácil interpretação por parte das aplicações, sendo independente de qualquer sintaxe;

• Semântica e inferência formais: possui uma semântica formal que provê uma base para o raciocínio sobre o significado de uma expressão RDF, bem como para a definição de regras de confiança e inferência;

• Vocabulário extensível baseado em URIs: apresenta uma grande flexibilidade para utilizar tipos de objetos diferentes, que podem ser identificados de forma única em toda a Web;

(20)

• Total integração com XML: é possível realizar declarações RDF utilizando a sintaxe XML, juntamente com os valores que estão de acordo com os tipos de dados definidos no esquema XML, facilitando mais ainda a troca de informações entre aplicações;

• Qualquer um pode realizar declarações sobre qualquer recurso: para facilitar operações na escala da Internet, o RDF é aberto no sentido de que a informação pode ser construída por todos que a compartilham.

2.2.1 O Modelo RDF

O modelo RDF assume que cada recurso tem uma ou mais propriedades que possuem valores. Sendo assim, os dados são representados pela estrutura “Sujeito – Predicado – Objeto”; Sujeito é o alvo da declaração, um recurso real ou virtual que sempre será representado por um URI; Predicado identifica a propriedade, a característica do sujeito; e Objeto determina o valor da propriedade, podendo assumir uma forma literal ou referenciar um outro recurso através de um URI [DEC 00].

Utilizando URIs para referenciar recursos, é possível realizar várias declarações sobre um mesmo conceito nos mais diferentes locais da Web, permitindo o surgimento uma rede de conhecimento.

O modelo de dados do RDF pode ser expresso de uma forma abstrata através de grafos titulados e dirigidos, conforme mostra a Figura 2-1.

(21)

Figura 2-1 - Declarações RDF na forma de grafos titulados e dirigidos

As declarações RDF da Figura 2-1 formam as seqüências “sujeito-predicado-objeto” apresentadas no Quadro 2-3.

Sujeito Predicado Objeto

http://exemplo.org/rogerio# é do tipo Professor

http://exemplo.org/rogerio# possui o aluno http://exemplo.org/andre# http://exemplo.org/andre# é do tipo Aluno

http://exemplo.org/andre# possui o endereço Rua 15

Quadro 2-3 - Declarações RDF

2.2.2 Identificação de Recursos

Uma referência URI é um identificador único que é atribuído a um recurso, objeto, ou propriedade, permitindo que este seja referenciado ou apontado em qualquer declaração RDF, independente de sua identificação remota. No modelo RDF, um grafo ou nodo pode ter como valor uma referência URI, um literal ou um valor em branco (blank node). Um literal ou uma referência URI usados como um nodo, identificam o

http://exemplo.org/pessoas/andre# http://exemplo.org/schema/aluno# Rua 15 http://exemplo.org/schema/temEndereço# rdfs:type# http://exemplo.org/pessoas/rogerio# http://exemplo.org/schema/professor# rdfs:type# http://exemplo.org/schema/temAluno#

(22)

que este nodo representa. Uma propriedade ou predicado é também uma referência URI, e identifica um relacionamento entre dois nodos de forma global.

Um nodo em branco (blank node) é um nodo que não é nem um literal, nem uma referência URI. Serve como uma referência local para identificar um conjunto de declarações sobre um determinado recurso.

2.2.3 Tipos de Dados

Tipos de dados são utilizados no RDF para representação de valores, tais como números inteiros, datas e strings. No entanto, não existe nenhum conceito pré-definido sobre o uso de tipos de dados comuns, ao invés disso, tipos de dados em RDF são definidos separadamente, identificados com referências URI. Os tipos de dados definidos no Esquema XML [FAL 04] são utilizados como referências para este propósito, pois, além de possuírem as definições dos tipos de dados mais conhecidos, apresentam recursos que viabilizam novas especificações.

2.2.4 Literais

Literais são usados para identificar valores como números e datas, através do significado de uma representação léxica. Qualquer coisa representada por um literal pode também ser representado por um URI. Um literal pode ser o objeto de uma declaração RDF, mas não o sujeito de um predicado. Um literal pode ser plano (plain) ou com um tipo definido (typed). Um literal plano é uma string convencional podendo ser combinada com uma tag que determina a linguagem, e um literal com um tipo definido é uma string combinada com um URI que aponta para um tipo de dados específico.

2.2.5 Sintaxe XML para RDF

Representações de declarações que utilizam o modelo RDF podem ser representadas através de grafos com nodos e arcos dirigidos e titulados, onde cada declaração contém três elementos: um sujeito, um predicado e um objeto. Os nodos podem ser referências URI, valores literais, ou nodos em branco. Entretanto, para viabilizar a interoperabilidade entre aplicações diferentes, é necessário serializar grafos RDF utilizando a sintaxe XML, ou seja, transformá-los em uma seqüência de caracteres fazendo uso de uma lógica estrutural e sintática. Para isto, os predicados e nodos podem

(23)

conteúdos de elementos e valores de atributos.

Um grafo de declarações RDF é um conjunto de nodos que representam sujeitos e objetos, interligados por arcos que representam predicados. Com RDF/XML, estas declarações tornam-se seqüências de elementos dentro de outros elementos que representam os nodos e os arcos. Um nodo que inicia uma seqüência em um grafo torna-se o elemento raiz em RDF/XML, já o arco que está ligado a este nodo torna-torna-se um elemento filho, e assim por diante [BEC 04].

2.2.5.1 Elementos Nodos e Propriedades

O caminho da esquerda, destacado no grafo da Figura 2-2, é composto por 3 nodos (sujeitos) e 2 arcos (predicados). Para representá-los em XML é necessário o uso de elementos dos tipos nodos e propriedades, respectivamente. No Quadro 2-4, os elementos rdf:Description representam os nodos (sujeitos), ao passo que ex:editor e ex:site representam as propriedades (arcos).

Figura 2-2 - Exemplo de grafo RDF

O RDF/XML usa nomes qualificados (XML QName - definido no namespace XML) para representar e abreviar referências URI. Todo o nome qualificado é uma pequena seqüência de caracteres a qual está atribuída a uma referência URI. Estes nomes qualificados podem ser utilizados para abreviar as referências URI de predicados, sujeitos e objetos dentro de um documento RDF/XML. O conjunto de

http://exemplo.org/artigos/rdf-sintax

http://purl.org/net/dajobe Dave Beckett

The RDF/XML Syntax

http://www.purl.org/dc/elements/1.1/title

http://exemplo.org/schema/nome http://exemplo.org/schema/site

(24)

nomes qualificados que abreviam referências URI em um documento XML forma

namespace deste documento.

<rdf:Description> <ex:editor> <rdf:Description> <ex:site> <rdf:Description> </rdf:Description> </ex:site> </rdf:Description> </ex:editor> </rdf:Description>

Quadro 2-4 - Nodos e Arcos RDF/XML

Alguns dos nodos da Figura 2-2 são referências URI. Estas são declaradas com RDF/XML usando o atributo rdf:about nos elementos rdf:Description, como mostra o

Quadro 2-5. <rdf:Description rdf:about=“http://exemplo.org/artigos/rdf-sintax”> <ex:editor> <rdf:Description> <ex:site> <rdf:Description rdf:about=“http://purl.org/net/dajobe”> </rdf:Description> </ex:site> </rdf:Description> </ex:editor> </rdf:Description>

Quadro 2-5 - Nodos com Referências URI

Adicionando os dois caminhos restantes, que não foram destacados na Figura 2-2, é possível notar que o nodo em branco dá origem a dois caminhos, ou seja, possui duas propriedades. O mesmo acontece com o nodo raiz, identificado pela referência URI http://exemplo.org/artigos/rdf-sintax. O Quadro 2-6 exibe a descrição

(25)

<rdf:Description rdf:about=“http://exemplo.org/artigos/rdf-sintax”> <ex:editor> <rdf:Description> <ex:site> <rdf:Description rdf:about=“http://purl.org/net/dajobe”> </rdf:Description> </ex:site> </rdf:Description> </ex:editor> </rdf:Description> <rdf:Description rdf:about=“http://exemplo.org/artigos/rdf-sintax”> <ex:editor> <rdf:Description> <ex:nome>Dave Beckett</ex:nome> </rdf:Description> </ex:editor> </rdf:Description> <rdf:Description rdf:about=“http://exemplo.org/artigos/rdf-sintax”> <dc:titulo>The RDF/XML Syntax</dc:titulo> </rdf:Description>

Quadro 2-6 - Grafo RDF serializado com a sintaxe XML

2.2.5.2 Abreviaturas RDF/XML

Muitos tipos de abreviaturas podem e devem ser utilizados para simplificar as serializações de grafos RDF, pelo fato de que os nodos (sujeitos) geralmente possuem vários arcos (predicados) os quais descrevem suas características. Sem abreviaturas, o código XML apresentará muitas repetições, o que aumentará, desnecessariamente, o tamanho e a complexidade dos arquivos.

2.2.5.2.1 Elementos com mais de uma propriedade

No Quadro 2-6, o elemento utilizado para representar o sujeito que possui a referência URI http://exemplo.org/artigos/rdf-sintax é declarado duas vezes, pois

possui duas propriedades: ex:editor e dc:titulo. O mesmo ocorre com o elemento que

(26)

Dentre os recursos de abreviatura providos pelo RDF/XML, está o uso de mais de um elemento XML que representa uma propriedade dentro de um elemento XML que representa um sujeito. Assim, é possível a definição de várias propriedades para um sujeito, sem a necessidade de várias declarações semelhantes, como é apresentado no Quadro 2-7. <rdf:Description rdf:about="http://exemplo.org/artigos/rdf-sintax"> <ex:editor> <rdf:Description> <ex:site> <rdf:Description rdf:about="http://purl.org/net/dajobe"> </rdf:Description> </ex:site> <ex:nome> Dave Beckett </ex:nome> </rdf:Description> </ex:editor> <dc:titulo>The RDF/XML Syntax</dc:titulo> </rdf:Description>

Quadro 2-7 - RDF/XML utilizando várias propriedades para um único elemento

2.2.5.2.2 Elementos de propriedades em branco

Quando um arco predicado aponta para um nodo que não aponta para nenhum sujeito, este nodo é representado no RDF/XML como um elemento nodo em branco

<rdf:Description rdf:about="http://www.exemplo.com/#b"> </rdf:Description> (ou <rdf:Description rdf:about="http://www.exemplo.com/#b" />). Estas declarações

RDF/XML podem ser abreviadas usando o URI do elemento nodo em branco como valor de um atributo chamado rdf:resource, instanciado no elemento que contém o

nodo em branco.

No Quadro 2-7 esta abreviatura pode ser aplicada no elemento identificado pela referência URI http://purl.org/net/dajobe, que é um elemento de propriedade em

branco. Neste caso o elemento ex:site ganhará o atributo rdf:resource, e seu elemento

(27)

<rdf:Description rdf:about="http://exemplo.org/artigos/rdf-sintax"> <ex:editor> <rdf:Description> <ex:site rdf:resource="http://purl.org/net/dajobe" /> <ex:nome>Dave Beckett</ex:nome> </rdf:Description> </ex:editor> <dc:titulo>The RDF/XML Syntax</dc:titulo> </rdf:Description>

Quadro 2-8 - RDF/XML com a abreviatura para elementos de propriedades em branco

2.2.5.3 Propriedades Atributo

Quando um elemento que representa uma propriedade contém uma String Literal, é possível que este elemento se torne um atributo do seu elemento raiz, desde que não existam ocorrências repetidas desta propriedade no mesmo elemento nodo.

No exemplo atual, é possível notar que os valores das propriedades ex:titulo e ex:nome são Strings Literais e não se repetem (não existem mais de um título e,

tampouco, mais de um nome), portanto podem ser incorporadas como propriedades atributos de seus elementos nodo, de acordo com o Quadro 2-9.

<rdf:Description

rdf:about="http://exemplo.org/artigos/rdf-sintax" ex:titulo="The RDF/XML Syntax">

<ex:editor>

<rdf:Description ex:nome="Dave Beckett">

<ex:site rdf:resource="http://purl.org/net/dajobe" /> </rdf:Description>

</ex:editor> </rdf:Description>

Quadro 2-9 - Exemplo do uso de propriedades atributos

2.2.6 Completando o Documento RDF/XML

Para criar um documento RDF/XML completo, a serialização do grafo em XML deve estar dentro do elemento XML rdf:RDF, que é o elemento raiz de todo o

documento. A especificação do XML também exige uma declaração XML no topo do documento que define a versão da Linguagem XML e, opcionalmente, o tipo de

(28)

codificação do conteúdo. O Quadro 2-10 mostra o código RDF/XML do Quadro 2-9 juntamente com os elementos necessários para a boa formatação de um documento RDF/XML. Na listagem a seguir possível notar, também, a existência das atribuições dos nomes qualificados utilizados no documento.

<?xml version="1.0" encoding="utf-8"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc=" http://purl.org/dc/elements/1.1/" xmlns:ex="http://exemplo.org/rdfschema/"> <rdf:Description rdf:about="http://exemplo.org/artigos/rdf-sintax" ex:titulo="The RDF/XML Syntax"> <ex:editor>

<rdf:Description ex:nome="Dave Beckett">

<ex:site rdf:resource="http://purl.org/net/dajobe" /> </rdf:Description>

</ex:editor> </rdf:Description>

</rdf:RDF>

Quadro 2-10 - Documento RDF/XML completo

2.2.7 Descrevendo Recursos em Diversas Línguas

O RDF/XML permite o uso do atributo xml:lang [BRA 04] , para viabilizar a

identificação do idioma do conteúdo dos elementos XML. O atributo xml:lang pode ser

utilizado dentro de qualquer elemento nodo ou elemento propriedade para indicar que o conteúdo ali incluído está escrito em um determinado idioma, de acordo com o Quadro 2-11. <ex:titulo xml:lang="en"> The RDF/XML Syntax </ex:titulo> <ex:titulo xml:lang="pt-br"> A Sintaxe RDF/XML </ex:titulo>

(29)

Com RDF/XML é possível especificar o tipo de dados dos valores literais de um predicado. Para isto, é adicionado o atributo rdf:datatype="datatypeURI" ao respectivo

elemento propriedade. O Quadro 2-12 mostra uma referência URI, definida no esquema XML [FAL 04], sendo utilizada para identificar o tipo dos possíveis valores da propriedade ex:tamanho. Entretanto, qualquer referência URI pode ser utilizada para

especificar tipos de dados.

<rdf:Description rdf:about="http://exemplo.org/item1">

<ex:tamanho rdf:datatype="http://www.w3.org/2001/XMLSchema#int"> 115

</ex:tamanho> </rdf:Description>

Quadro 2-12 - Literais com tipos de dados definidos

2.2.9 Identificação de Nodos em Branco

Nodos em branco são elementos que não possuem nenhuma referência URI como identificador. São utilizados quando for necessário agrupar um conjunto de outras declarações em um único elemento Este grupo de elementos é identificado através do atributo rdf:nodeID, que só é reconhecido por elementos do documento onde é definido.

Um exemplo de aplicação é apresentado no Quadro 2-13.

<rdf:Description rdf:about="http://exemplo.org/artigos/rdf-sintax" ex:titulo="The RDF/XML Syntax">

<ex:editor rdf:nodeID="abc"/> </rdf:Description>

<rdf:Description rdf:nodeID="abc" ex:nome="Dave Beckett"> <ex:site rdf:resource="http://purl.org/net/dajobe" /> </rdf:Description>

Quadro 2-13 - Identificação de nodos em branco

2.2.10

Conjuntos de Membros de Elementos

Propriedades

O RDF/XML possui as classes de elementos nodos rdf:Seq, rdf:Bag e rdf:Alt

que podem servir como conjunto de elementos propriedades. Estas propriedades podem ser enumeradas e ordenadas, sendo representadas pelos elementos da classe rdf:_1,

(30)

rdf:_2 e assim sucessivamente, ou da classe rdf:li. O Quadro 2-14 apresenta um

exemplo de uso destes recursos.

<rdf:Seq rdf:about="ex:fruta_favorita"> <rdf:_1 rdf:Resource="ex:banana"/> <rdf:_2 rdf:Resource="ex:melao"/> <rdf:_3 rdf:Resource="ex:mamao"/> </rdf:Seq>

Quadro 2-14 - Conjunto de membros de elementos propriedades

2.2.11 Coleções

O RDF/XML permite também que o elemento propriedade seja definido como uma coleção de elementos nodos, para isto basta adicionar rdf:parseType=”Collection”

como um atributo desta propriedade, conforme é demonstrado no Quadro 2-15.

<rdf:Description rdf:about="ex:cesta"> <ex:temFruta rdf:parseType="Collection"> <rdf:Description rdf:about="ex:banana"/> <rdf:Description rdf:about="ex:laranja"/> <rdf:Description rdf:about="ex:mamao"/> </ex:temFruta> </rdf:Description>

Quadro 2-15 - Propriedade que contém uma coleção de nodos

2.2.12

Reificação de Declarações

O atributo rdf:ID pode ser usado em um elemento propriedade para reificar uma

declaração em um documento RDF/XML. Este identificador serve para construir uma referência URI que aponta para a declaração. Esta referência URI será o resultado da concatenação do URI do documento, do símbolo “#”, e do valor do atributo rdf:ID. No

Quadro 2-16 é demonstrada a declaração de uma propriedade que pode ser referenciada diretamente por qualquer outro documento na Web através do URI

http://exemplo.org/#dave_beckett. <ex:editor>

<ex:nome rdf:ID="dave_beckett">Dave Beckett</ex:nome> </ex:editor>

(31)

2.3 O Esquema RDF

Declarações RDF são realizadas utilizando termos de domínios específicos, tais como ex:nome, ex:editor, entre outros. Porém, para viabilizar o processamento

inteligente destas informações, é necessário que estes termos estejam previamente estruturados e relacionados. Estas definições são realizadas através da construção de vocabulários RDF, com a utilização de termos do Esquema RDF [BRI 03].

O Esquema RDF é uma extensão do modelo RDF, onde, o conjunto de termos de seu vocabulário é incrementado com alguns itens específicos. Com este conjunto definido de nomes, é possível criar novos vocabulários RDF compostos por termos de qualquer domínio, dependendo de cada necessidade. Sendo assim, estas novas estruturas podem ser instanciadas em declarações RDF convencionais sobre os mais diversos recursos [MAN 03].

Todos os termos utilizados na descrição de vocabulários RDF devem ser previamente conhecidos por aplicações projetadas para interpretar dados no formato RDF/XML. Estes termos são capazes de descrever formalmente a estrutura de recursos na Web, através de uma abordagem semelhante à orientada a objetos, onde são declaradas Classes, Subclasses e Propriedades.

Da mesma forma que o RDF, o Esquema RDF possui um documento no qual estão definidos todos os seus termos. Este vocabulário possui a referência URI

http://www.w3.org/2000/01/rdf-schema# e, convencionalmente, é abreviado pelo

prefixo (QName) rdfs.

2.3.1 Definição de Classes

O primeiro passo no processo de descrever vocabulários que definem a estrutura recursos RDF na Web é identificar o tipo dos objetos que serão mencionados, ou seja, as categorias as quais os recursos pertencem. O Esquema RDF trata estes “tipos de objetos” como classes. Uma classe no Esquema RDF é um conceito genérico de um tipo ou categoria. Para realizar declarações RDF sobre diferentes tipos de “veículos”, por exemplo, é necessária a definição de uma classe que representa objetos (ou recursos) que são “veículos”. As declarações sobre os veículos em si serão chamadas de instâncias da classe “veículo”.

(32)

Para definir uma classe com o Esquema RDF, basta apenas declarar que um determinado recurso, que representa tal classe, possui a propriedade rdf:Type com o

valor rdfs:Class, conforme o Quadro 2-17. <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/veiculos"> <rdf:Description rdf:ID="Veículo"> <rdf:type rdf:resource="rdfs:Class"/> </rdf:Description> </rdf:RDF>

Quadro 2-17 - Declaração de uma classe com o Esquema RDF

No exemplo do Quadro 2-17, a propriedade rdf:Type é usada para indicar que o

recurso “Veículo” é uma instância de uma classe chamada rdfs:Class. Esta mesma

declaração também pode ser realizada da uma forma abreviada, como mostra o Quadro 2-18. <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/veiculos"> <rdfs:Class rdf:ID="Veículo"/> </rdf:RDF>

Quadro 2-18 - Declaração abreviada de uma classe com o Esquema RDF

Agora, tendo a classe “Veículo” definida, é possível fazer declarações sobre recursos do mundo real que são da categoria “veículo”. O Quadro 2-19 apresenta um exemplo de instância de “Veículo”.

<?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ex="http://example.org/schemas/veiculos" xml:base="http://example.org/objetos"> <ex:Veículo rdf:ID="carro1"/> </rdf:RDF>

(33)

subcategorias de veículos, ou seja, classes de objetos que também são veículos, mas que apresentam algumas características especiais, como veículos de passageiros, veículos de carga, ônibus, caminhões, etc. Estas classes podem ser, primeiramente, definidas da mesma forma que a classe “Veículo” e, em seguida, declaradas como subclasses, como mostra o Quadro 2-20. <?xml version="1.0"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xml:base="http://example.org/schemas/veiculos"> <rdfs:Class rdf:ID="Veículo"/> <rdfs:Class rdf:ID="VeículoDeCarga"> <rdfs:subClassOf rdf:resource="#Veículo" /> </rdfs:Class> <rdfs:Class rdf:ID="VeículoDePasseio"> <rdfs:subClassOf rdf:resource="#Veículo" /> </rdfs:Class> <rdfs:Class rdf:ID="Caminhao"> <rdfs:subClassOf rdf:resource="#VeículoDeCarga" /> </rdfs:Class> <rdfs:Class rdf:ID="Onibus"> <rdfs:subClassOf rdf:resource="#VeículoDeCarga" /> </rdfs:Class> </rdf:RDF>

Quadro 2-20 - Declaração de classes e subclasses com o Esquema RDF

2.3.2 Definição de Propriedades

Para diferenciar cada uma das classes de um Esquema RDF, é preciso definir seus respectivos conjuntos de propriedades de acordo com as características reais de cada tipo de objeto. Para criar uma definição de propriedade em um vocabulário RDF, é utilizada a classe rdf:property, associada as propriedades rdfs:domain, rdfs:range e,

opcionalmente, rdfs:subPropertyOf.

Todas as propriedades em RDF são descritas como instâncias da classe

rdf:property. Sendo assim, para definir uma nova propriedade em um Esquema RDF,

deve-se declarar que um determinado recurso com um URI definido tem a propriedade

(34)

de uma propriedade RDF. A primeira na forma convencional, e a segunda no formato abreviado. <!—- Formato convencional --> <rdf:Description rdf:ID=“temNome”> <rdf:type rdf:resource=“rdf:Property” /> </rdf:Description> <!—- Formato Abreviado --> <rdf:Property rdf:ID=“temNome” />

Quadro 2-21 - Formas de declarações de uma propriedade RDF

Além da definição de propriedades, o Esquema RDF ainda provê recursos específicos para a especificação dos tipos de valores permitidos nas instâncias RDF. Estes tipos podem ser identificados através da propriedade rdfs:range, conforme o

exemplo do Quadro 2-22, onde é declarado que a propriedade temNome pode receber

valores do tipo http://www.w3.org/2001/XMLSchema#String. <rdf:Property rdf:ID=“temNome”>

<rdfs:range rdf:resource=” http://www.w3.org/2001/XMLSchema#String” /> </rdf:Property>

Quadro 2-22 - Restringindo os tipos de dados de uma propriedade

Os tipos de dados que podem ser apontados pela propriedade rdfs:range não

estão restritos apenas às definições do esquema XML, tais como inteiros, datas, strings, etc. Adicionalmente, é comum declarar que uma determinada propriedade deve assumir valores que são instâncias de outras classes definidas em qualquer esquema ou vocabulário RDF, por exemplo, a propriedade temAluno pode assumir valores que são

do tipo ex:Aluno, como mostra o exemplo do Quadro 2-23. <rdf:Property rdf:ID=“temAluno”>

<rdfs:range rdf:resource=”ex:Aluno” /> </rdf:Property>

Quadro 2-23 - Uma Classe RDF como tipo de uma propriedade.

Para definir por completo uma propriedade em um vocabulário RDF, além de determinar quais os tipos de valores, devem ser especificadas quais as classes que têm esta propriedade como uma característica.

Ao contrário da modelagem orientada a objetos convencional, onde a definição da classe indica quais propriedades ela possui, o modelo RDF permite que a definição

(35)

chamada de definição do domínio de uma propriedade, e com isto é possível encontrar propriedades em vocabulários RDF que são características de mais de uma classe, podendo ou não possuir namespaces diferentes, viabilizando a formação de uma rede de definições espalhada pela Web.

Para identificar classes as quais uma determinada propriedade está vinculada, é utilizado o termo rdfs:domain, que significa declarar, por exemplo que a propriedade temAluno está dentro do domínio ex:Professor, como exemplifica o Quadro 2-24. <rdf:Property rdf:ID=“temAluno”>

<rdfs:domain rdf:resource=”ex:Professor” /> <rdfs:domain rdf:resource=”ex2:Mestre” /> <rdfs:range rdf:resource=”ex:Aluno” /> </rdf:Property>

Quadro 2-24 - Definição de domínios de uma propriedade

2.4 Ontologias

Ontologia é uma palavra originalmente utilizada pela filosofia, onde seu conceito é relacionado à “descrição da existência das coisas” [CHA 99]. No entanto, o termo vêm sendo empregado também em áreas da computação, onde uma ontologia é vista como uma “especificação formal e explícita de uma conceitualização

compartilhada” [GRU 93]. O termo “conceitualização” refere-se a um modelo abstrato

o qual representa a definição de algum elemento ou fenômeno do mundo real. “Explícita” significa que os tipos de conceitos utilizados, juntamente com seus relacionamentos e restrições, são explicitamente definidos. O uso do termo “formal” é justificado pela necessidade da ontologia possuir um padrão estrutural e sintático, de modo a viabilizar o seu reconhecimento em um computador.

O modelo RDF juntamente com a sintaxe XML, permite que diferentes declarações sobre um mesmo elemento possam ser postadas em locais distintos da Web, com a possibilidade de apontarem umas para as outras estabelecendo relações. Isto significa que a linguagem RDF/XML viabiliza a definição formal de características e relações simples entre objetos do mundo real de uma forma compartilhada, o que caracteriza a criação de ontologias simplificadas.

(36)

Todavia, para que as futuras aplicações da Web Semântica possam ser realmente “inteligentes”, as representações de informações realizadas com o modelo RDF/XML que alimentarão estes softwares, deverão ser estendidas de forma a enriquecer a semântica formal contida em suas declarações. Para isto, foi definida uma linguagem chamada OWL (Ontology Web Language) [SMI 03], que pode ser relacionada ou até mesmo utilizada em conjunto com declarações de vocabulários RDF/XML convencionais. A OWL é uma evolução da linguagem DAML+OIL [CON 01] e se tornou um padrão reconhecido e recomendado pela W3C [W3C 04]. A linguagem possui a finalidade de especificar formalmente, com o maior nível de detalhe possível, todas as características de elementos, relacionamentos, e restrições das informações sobre um determinado domínio de conhecimento.

Com o esquema RDF pode-se definir classes e subclasses, com suas propriedades, que podem ter suas sub-propriedades, domínios, e tipos de valores específicos. Através destes recursos é possível, por exemplo, compartilhar a seguinte declaração formal: “um quarteto de cordas é composto por músicos”. Embora estas definições sejam suficientes para que um software possa relacionar informações sobre quartetos de cordas provenientes de diversas fontes, poderíamos ter problemas para definir informações tais como o número de integrantes que compõem um quarteto de cordas. Com o enriquecimento semântico de vocabulários RDF é possível compartilhar e reutilizar declarações do tipo – “um quarteto de cordas é composto por exatamente quatro músicos” – ou até mesmo – “um músico é o mesmo que um instrumentista” – dentre muitas outras definições formais. O Quadro 2-25 mostra o exemplo de um esquema RDF enriquecido com definições semânticas mas detalhadas, através de termos da linguagem OWL.

(37)

<rdfs:Class rdf:ID="QuartetoCordas"/> <rdf:Property rdf:ID="temMusico"> <rdfs:domain rdf:resource="#QuartetoCordas" /> <rdfs:range rdf:resource="#Pessoa" /> <owl:sameAs rdf:resource="http://musicos.org/#temInstrumentista"/> </rdf:Property> <owl:Restriction> <owl:onProperty rdf:resource="#temMusico" /> <owl:maxCardinality rdf:datatype="&xsd;nonNegativeInteger">4</owl:maxCardinality> <owl:minCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality> </owl:Restriction>

Quadro 2-25 – Fragmento de uma ontologia definida com as linguagens OWL e RDF/XML

2.5 Um Caso de Uso da Web Semântica

A Web Semântica disponibiliza agentes com capacidade de realizar tarefas mais complexas para os usuários, entendendo e integrando informações provenientes de várias fontes. Para exemplificar esta efetividade, pode ser citado um exemplo de serviço na Web que funciona como agente planejador de atividades sociais, o qual recebe preferências de um usuário, tais como tipos de filmes, comida e esportes prediletos, e os utiliza para planejar e sugerir as atividades desta pessoa durante um dia, classificando-as por serviços mais utilizados, mais procurados e melhor conceituados no mercado.

(38)

Figura 2-3 - Funcionamento de um agente planejador de atividades

Primeiro o agente recebe as preferências do usuário e comunica-se com um

software (Serviço Web de Ontologias) que provê vocabulários sobre os domínios

relativos a hotéis, restaurantes, cinemas, e outros serviços. Com esta informação o agente consegue realizar uma busca por serviços em várias fontes distintas, utilizando os termos corretos nas requisições e filtrando as respostas de forma eficiente, pois a ontologia esclarece formalmente o significado dos termos utilizados em cada origem, como mostra a Figura 2-3.

Tendo informações sobre as atividades de locais diferentes, em conjunto com os vocabulários que alinham o significado dos termos, é possível realizar comparações com as preferências informadas pelo usuário.

Depois de decidir quais serviços se enquadram nas preferências do usuário, pode ser feita ainda uma classificação levando em conta a qualidade. Para isto, baseando-se novamente nas ontologias, são consultados agentes que disponibilizam resultados de avaliações sobre serviços, permitindo que o usuário receba um planejamento diário composto pelas melhores atividades que se enquadram nas suas preferências.

Muitos outros exemplos poderiam ser citados para destacar os benefícios do uso da Web Semântica, no entanto, o fato relevante é que as ontologias permitem que várias

(39)

seus significados semanticamente alinhados por agentes de software, permitindo que os dados sejam processados igualmente, não importando sua identificação URI ou estrutura de origem.

2.6 Considerações Finais

A Web atual é uma ferramenta muito eficiente na troca de informações em qualquer ramo de atividade, entretanto, com o seu crescimento, surgiu a necessidade de especializar ainda mais as suas funcionalidades. Esta especialização pode ser realizada através da criação de softwares que possam entender as informações disponíveis na

Internet e processá-las uniformemente, com o objetivo de prover informações mais

interessantes para os usuários.

Para se chegar a este estágio, as informações da Web precisam ser estendidas, e estas extensões devem ser representadas por textos ricos em uma semântica formal, composta por camadas que determinam padrões de sintaxe, estrutura, significado, lógica e confiança. Só assim a informação poderá ser interpretada pelos futuros agentes de

(40)

3 CONSTRUÇÃO DA WEB SEMÂNTICA

A existência da Web Semântica depende, inicialmente, de representações formais e compartilhadas dos significados das informações que estão disponíveis na

Internet. Para isto é necessário criar ontologias para a definição dos vocabulários de

termos comuns, e utilizar estes termos em declarações na linguagem RDF/XML, estendidas pela OWL. Depois desta etapa, será viável a plena utilização de softwares inteligentes os quais irão consumir toda esta informação, e o processo evolutivo da Web estará iniciado [HAN 02].

Para realizar estas representações ou anotações semânticas, as quais são determinantes para a evolução da nova Web, é necessário primeiro identificar os tipos de informações que já existem e, em seguida, utilizar técnicas de anotações específicas para cada tipo identificado.

A informação na Web encontra-se principalmente armazenada em sites estáticos ou em sites dinâmicos e, em cada caso, são necessárias técnicas diferentes para dar significado formal aos conteúdos disponibilizados.

3.1 Anotações de Sites Estáticos

Quando um navegador Web tenta localizar uma página, através de um determinado endereço, na verdade ele está enviando uma requisição para um servidor

Web que está em outro local da Internet. Esta requisição contém, dentre outras

informações, um endereço (URL) de resposta e um nome de arquivo (com o respectivo caminho de diretórios) que deverá existir no servidor. O servidor, por sua vez, quando encontra o arquivo no caminho especificado, lê o seu conteúdo e o envia como resposta para o cliente, conforme ilustra a Figura 3-1. Estes conteúdos encontram-se no formato HTML, o qual determina as características de apresentação da informação, e não o seu significado formal.

(41)

Figura 3-1 - Arquitetura de um site estático.

Para viabilizar a interpretação inteligente dos dados de sites estáticos da Internet, os arquivos HTML devem conter informações adicionais que descrevam formalmente a semântica de seus conteúdos. Estas anotações podem estar localizadas no cabeçalho do documento ou até mesmo serem referenciadas, caso estejam em um arquivo separado (localizado em um outro URL). Assim, o mesmo arquivo pode ser processado tanto por um navegador Web, quanto por um agente inteligente.

Siegfried Handschuh apresenta uma ferramenta chamada “Ont-O-Mat” [HAN

02], a qual permite que páginas HTML sejam editadas e anotadas ao mesmo tempo. O sistema conta com uma interface funcional e intuitiva, onde o usuário cria o conteúdo definindo o seu formato de apresentação (HTML) juntamente com o seu significado (RDF/XML).

3.2 Anotações de Sites Dinâmicos

Na arquitetura de sites dinâmicos, as tarefas executadas no lado cliente são exatamente as mesmas realizadas nos sites estáticos. Entretanto, no lado do servidor o procedimento é um pouco mais complexo. Quando o arquivo solicitado é encontrado, o aplicativo servidor varre o seu conteúdo em busca de instruções e as executa. Estas instruções podem ter as mais diversas funcionalidades, mas sempre com o objetivo de realizar algum processamento que retorne conteúdo HTML o qual será entregue para o cliente HTTP. Uma grande parte do sites da Internet são compostos por instruções que incluem no conteúdo HTML informações provenientes de bancos de dados relacionais, como mostra a Figura 3-2.

(42)

Figura 3-2 - Arquitetura de um site dinâmico.

Este tipo de arquitetura é a mais utilizada nos sites da Internet, pois assim, estes podem funcionar como verdadeiras aplicações distribuídas, onde usuários de qualquer lugar podem acessar e interagir ao mesmo tempo. Por este motivo, a criação de um mecanismo eficiente para a inclusão destas informações nos padrões da Web Semântica se torna uma tarefa muito importante para a evolução desta nova Web [HAN 03].

A estrutura de anotação semântica de informações de sites dinâmicos deve estar de acordo com as seguintes premissas.

• O cliente HTTP deve ser capaz de acessar as informações, tanto no formato de apresentação convencional (HTML), quanto na estrutura rica em semântica formal (RDF/XML);

• Os dados do banco de dados devem permanecer protegidos e acessíveis somente pelo servidor Web;

• A estrutura do banco de dados não deve ser alterada;

• O conteúdo RDF deve ser formado na hora da requisição HTTP, contendo as informações atuais do banco de dados, como acontece com o conteúdo HTML;

(43)

automaticamente, só assim será possível entregar informações sempre atualizadas;

• As instâncias RDF geradas automaticamente devem estar vinculadas a um vocabulário ou ontologia que defina os significado de seus termos e os relacione com outros existentes, para viabilizar o processamento inteligente das informações;

• É desejável que este mecanismo possa ser aplicado por administradores de bancos de dados, para que possa ser disseminado com mais facilidade. Na Seção 1.1 são mencionados trabalhos que estão relacionados com estas diretivas, mas nenhum chega a atender todos os objetivos citados. Entretanto Chris Bizer [BIZ 03] implementa um mecanismo que pode ser considerado o início de um

framework capaz de atingir tais objetivos de anotação semântica em tempo real.

3.2.1 D2R MAP e Processor

Chris Bizer definiu uma linguagem XML (D2R Map), a qual permite a descrição de mapeamentos entre esquemas de bases de dados relacionais e esquemas RDF. O objetivo principal da linguagem é permitir mapeamentos flexíveis e automatizados de estruturas relacionais complexas, viabilizando a geração de dados escritos no modelo RDF, sem alterar o esquema da base de dados existente. Esta flexibilidade é alcançada empregando consultas SQL diretamente nas regras de mapeamento [BIZ 03].

O conteúdo do mapa serve como entrada para um sistema (D2R Processor), o qual executa operações de acordo com as instruções contidas no mapa, conforme mostra a Figura 3-3. Os resultados deste processamento são primeiramente agrupados em tabelas relacionais e posteriormente, utilizados para criar instâncias RDF. No entanto estas duas etapas são transparentes para o usuário, que recebe apenas as instâncias RDF resultantes. A especificação da estrutura dos elementos e atributos da linguagem D2R

(44)

Figura 3-3 – Arquitetura de funcionamento do D2R Processor.

O mapa de migração é utilizado por um software específico, o qual utiliza as informações descritas em XML para executar operações que irão resultar na geração automática de declarações RDF sobre o conteúdo do banco de dados. O processo de mapeamento realizado pelo D2R Processor consiste em quatro passos, conforme a seguinte especificação [BIZ 03]:

• Seleção de um conjunto de registros da base de dados a partir de uma consulta SQL;

• Agrupamento de cada conjunto de registros utilizando a coluna indicada em d2r:groupBy;

• Criação de instâncias de classes e identificadores;

• Mapeamento dos dados dos conjuntos de registros para instâncias de propriedades.

O D2R Processor foi implementado com a linguagem de programação Java [JAV 04], baseado na API Jena [MCB 01]. O sistema exporta dados no formato RDF, no modelo Jena, dentre outros. Pode acessar qualquer banco de dados através de conexões ODBC (Open DataBase Connectivity) ou JDBC (Java DataBase

Connectivity), podendo ser usando como um servlet java (para publicar dinamicamente

conteúdo RDF como resposta a requisições HTTP), ou como um conector de bancos de dados em aplicações que utilizam o modelo Jena, ou até mesmo ser executado manualmente no sistema operacional.

Referências

Documentos relacionados

Avaliaram-se os custos para o trabalho em sistema de colheita de toras curtas com operações mecanizadas de abate e processamento. Na operação de corte foram utilizados dois

albipes workers had negative effects on species diversity of arboreal ant communities, this suggests that the invasion and domination of non-native species can

A tem á tica dos jornais mudou com o progresso social e é cada vez maior a variação de assuntos con- sumidos pelo homem, o que conduz também à especialização dos jor- nais,

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

esta espécie foi encontrada em borda de mata ciliar, savana graminosa, savana parque e área de transição mata ciliar e savana.. Observações: Esta espécie ocorre

Desta forma, foram criadas as seguintes hipóteses de investigação: H1 – O compromisso organizacional e o engagement são diferentes para as categorias dos militares dos

Este capítulo tem uma abordagem mais prática, serão descritos alguns pontos necessários à instalação dos componentes vistos em teoria, ou seja, neste ponto

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem