Semantic Data Services: Uma abordagem para leitura e atualização de dados semânticos

Post on 03-Jul-2015

130 views 1 download

description

Apresentação no workshop de teses e dissertações Webmedia 2013

Transcript of Semantic Data Services: Uma abordagem para leitura e atualização de dados semânticos

SEMANTIC DATA

SERVICES Dissertação de Mestrado

Aluno: Hermano A. Lira

Orientador: Pedro Porfírio M. Farias

Contexto

Web de Dados

Interligados

Serviços de Dados

Serviços de

dados

Semânticos

O que são Serviço de Dados?

• Os Serviços de dados são pontos de acesso a fontes de

dados por meio de serviços web.

• Uma característica que distingue os serviços de dados de

outros tipos de serviços web é que eles manipulam seus

dados mediante as operações de CRUD, assim não há

operações para computação de dados.

O que são Dados interligados (Linked

Data)?

De acordo com Tim Berners-Lee:

1. São dados identificados por URIs;

2. HTTP URIs para que as pessoas possam

localizar esses dados; (desreferenciar)

3. Quando alguém desreferenciar uma URI,

proveja informações úteis, usando

representações padrões (RDF, OWL, etc).

4. Inclua links URIs para outros dados. Para

que se possa descobrir mais coisas.

Cenário Atual

XML

JSON

Text

FORMATO PROTOCOLO

SOAP

HTTP

FTP

• Heterogeneidade sintática e semântica;

Cenário SERIN

• Provê uma camada de abstração uniforme para as fontes de dados;

• Semântica formal e explícita;

• Provê um mecanismo de verificação de restrições de integridade de dados;

RDF

RDF

RDF

HTTP

<<Interface>>

Serviço1

+ GET()

+ POST()

+ PUT()

+ DELETE()

Exemplos

• Diversos equipamentos de rede (e.g. roteadores) cujos

dados são acessíveis por serviços web RESTful segundo

a mesma interface;

• Diversos órgãos públicos (e.g. prefeituras) cujos dados

estão acessíveis para a população e órgãos de

fiscalização seguindo uma mesma interface;

• Diversas empresas que se dispõe a seguir uma mesma

interface para anunciar seus produtos dentro de uma

comunidade que conhece a interface.

Objetivo Geral

A pesquisa tem como objetivo geral definir uma

especificação para serviços de dados RESTful

semânticos, i.e., serviços de dados construídos sobre as

tecnologias da web semântica e que utilizam interfaces

semânticas SERIN.

RDF + OWL

SDS

RE

ST

SERIN

Objetivos Específicos

• Definir o conceito de mundo fechado localmente, no

contexto das interfaces SERIN;

• Estender a especificação SERIN, adicionando novas

anotações para prover a verificação de restrições de

integridade de dados;

• Estender a especificação SERIN, adicionando suporte a

queries URI com capacidade para ordenar, filtrar e

paginar dados.

Contribuições dos serviços de Dados

semânticos

Uma especificação de serviços web que:

• Facilite a integração de dados, por representá-los em

RDF;

• Permita a verificação de consistência dos dados por meio

da suposição de mundo fechado localmente;

• Seja alinhada ao estilo arquitetural REST e construída

sobre as especificações RDF e OWL;

• Seja descrita por interfaces semânticas e abstratas via a

especificação SERIN.

Elementos Arquiteturais dos Serviços de

Dados Semânticos • A Interface de serviço

• O modelo para representação dos dados

• O protocolo de comunicação

<<Interface>>

Serviço1

+ GET()

+ POST()

+ PUT()

+ DELETE()

Interface semântica - SERIN

O cliente conhece a interface

Interface semântica - SERIN

• A interface SERIN é representada por uma ontologia OWL, cujas classes são anotadas com os métodos de acesso aos dados.

• As anotações correspondem aos verbos do HTTP: • GET

• POST

• PUT

• DELETE

Interface semântica - SERIN

Convenção de Endereçamento Interface

http://<host>/serin/{ontologia}

Coleção de instâncias da classe selecionada

http://<host>/serin/{ontologia}/{classe}

Uma instância

http://<host>/serin/{ontologia}/{classe}/{id}

O valor de uma propriedade

http://<host>/serin/{ontologia}/{classe}/{id}/{propriedade}

Exemplo

http://Host A/ GET serin/interface.owl/C2

interface.owl

Restrições de Integridade

• Mecanismo inspirado na integridade relacional.

• Verifica a consistência dos dados interligados mantidos

por um Host.

• Adiciona 6 anotações à especificação SERIN.

Restrições de Integridade

Escopo das anotações

Anotações Class DatatypeProperty ObjectProperty

GET X - -

POST X - -

PUT X - -

DELETE X - -

NotNull - X X

ForeignURI - - X

Unique - X X

ReadOnly - X X

Id - X -

Embedded - - X

Restrições de Integridade

Definições de OWA x CWA

• Mundo Aberto (Open World Assumption - OWA)

• Mundo Fechado (Closed World Assumption - CWA)

β Base

Base β ⊂ β é falso nesse mundo

β Base

Base β ⊂ β é desconhecido nesse mundo

(nem falso nem verdadeiro)

Restrições de Integridade

• Mundo Fechado Localmente

• É uma combinação dos mundos aberto e fechado.

• É uma extensão das capacidades desejáveis do mundo fechado

(de completude e integridade dos dados) aplicada aos formalismos

de representação do conhecimento do mundo aberto (da Web

Semântica).

• Permite que cada host tenha um conhecimento completo de seus

dados.

Restrições de Integridade

Exemplo

#Pessoa

xsd#integer

xsd#integer

xsd#string

url#Endereco

Unique

Id

NotNull

Embedded

xsd#datetime

ReadOnly url#Empresa

ForeignURI

Restrições de Integridade

Anotações

• Anotação Unique

Assegura que o valor de uma propriedade é único.

• Exemplo

• <url#Pedro> <url#RG> “123456789”

• <url#João> <url#RG> “123456789”

Princípio da Suposição de Nome Único

Restrições de Integridade

Suposição de Nome Único

• Princípio da Suposição de Nome Único

Se dois recursos possuem nomes distintos, então serão

considerados recursos distintos.

• A suposição de nome único é predominante nos modelos

relacionais.

• As tecnologias da Web semântica (e.g. RDF e OWL) não

utilizam a suposição de nome único.

Restrições de Integridade

Suposição de Nome Único

• No SDS adotaremos as seguintes suposições a priori:

• Todas as instâncias gerenciadas por um Host são consideradas

distintas entre si; (owl:AllDifferent)

• Todas as classes da interface SERIN são consideradas distintas

entre si; (owl:AllDisjointClasses)

• Todas as propriedades da interface SERIN são consideradas

distintas entre si; (owl:AllDisjointProperties)

Restrições de Integridade

Anotações

• Anotação NotNull

Indica que uma propriedade não pode se armazenada

com valor NULO.

• Exemplo

• <url#Pedro> <url#nome> “Pedro”

• <url#Pedro> <url#nome> NULL

Restrições de Integridade

Anotações • Anotação Id

É análoga ao conceito de "Chave Primária" do modelo relacional,

onde uma propriedade identifica de maneira única uma instância

RDF no escopo do mundo aberto.

• Exemplo (No mesmo Host)

• <url#Pedro> <url#CPF> “123.456.789-11”

• <url#João> <url#CPF> “123.456.789-11”

Restrições de Integridade

Anotações

• Anotação Id (Em Hosts distintos)

• Host 1

• <url1#Pedro> <url1#CPF> “123.456.789-11”

• Host 2

• <url2#Porfírio> <url2#CPF> “123.456.789-11”

• Inferência implícita

• <url1#Pedro> <owl#sameAs> <url2#Porfírio>

Restrições de Integridade

Anotações

• Anotação ReadOnly Indica que uma aplicação cliente não pode alterar o valor de uma determinada propriedade.

• Exemplo • <url#Pedro> <url#nascimento> “08/10/2013”

• URL <host>/serin/pessoa.owl/Pessoa/Pedro/nascimento

• GET

• PUT

• POST

• DELETE

Restrições de Integridade

Anotações

• Anotação ForeignURI

• Exemplo

• <url#Pedro> <url#trabalha> <url#Unifor>

Pedro

Unifor

Pedro Unifor url:trabalha

url:trabalha

Assegura que a entidade

referenciada por uma

propriedade está armazenada

na base de dados do Host.

/serin/Pessoa.owl/Pessoa/Pedro

Restrições de Integridade

Anotações

• Anotação Embedded

Indica que uma entidade está embutida dentro de outra e

que ambas compartilham o mesmo ciclo de vida.

Pedro

EndCasa

url#mora

Pedro EndCasa url#mora

Requisição HTTP

Resposta HTTP

Queries URI

1. Parâmetro filter

2. Parâmetro orderBy

3. Parâmetro page

4. Parâmetro pageSize

5. Parâmetro fields

Queries URI

Exemplos

• Parâmetro filter

/serin/product.owl/Product?filter=price+gt+2+and+price+le+3.5

/serin/clinic.owl/Clinic?filter=clinicName+like+’*Medical*’

• Parâmetro orderBy

/serin/clinic.owl/Clinic?orderBy=clinicName+desc

• Parâmetros page e pageSize

/serin/clinic.owl/Clinic?page=3&pageSize=10

• Parâmetro fields

/serin/clinic.owl/Clinic?fields=clinicName+phoneNumber

Queries URI

Parâmetro filter

Operadores Descrição

eg Igual (=)

ne Diferente (!=)

lt Menor que (<)

le Menor ou igual (<=)

gt Maior que (>)

ge Maior ou igual (>=)

and E (AND)

or Ou (OR)

not Negação (NOT)

like ‘RegExp’ Expressão Regular

Queries URI

Parâmetro orderBy

Operadores Descrição

asc Ascendente

desc Descendente

Conclusão

• Esse trabalho apresentou uma especificação para

Serviços de Dados Semânticos:

• Alinhados aos princípios dos dados interligados;

• Alinhados ao estilo arquitetural REST;

• Com suporte a interfaces semânticas abstratas;

• Com suporte a integridade de dados de acordo com a suposição

de mundo fechado localmente; e

• Com suporte a queries URI.

Obrigado!

• Contatos

• hermano.lira@edu.unifor.br

• porfirio@unifor.br