34
SEMANTIC DATA SERVICES Dissertação de Mestrado Aluno: Hermano A. Lira Orientador: Pedro Porfírio M. Farias

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

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 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

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

Contexto

Web de Dados

Interligados

Serviços de Dados

Serviços de

dados

Semânticos

Page 3: Semantic Data Services: Uma abordagem para leitura e atualização 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.

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

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.

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

Cenário Atual

XML

JSON

Text

FORMATO PROTOCOLO

SOAP

HTTP

FTP

• Heterogeneidade sintática e semântica;

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

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()

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

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.

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

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

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

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.

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

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.

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

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()

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

Interface semântica - SERIN

O cliente conhece a interface

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

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

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

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

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

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.

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

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

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

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)

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

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.

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

Restrições de Integridade

Exemplo

#Pessoa

xsd#integer

xsd#integer

xsd#string

url#Endereco

Unique

Id

NotNull

Embedded

xsd#datetime

ReadOnly url#Empresa

ForeignURI

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

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

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

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.

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

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)

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

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

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

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”

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

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>

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

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

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

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.

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

/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

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

Queries URI

1. Parâmetro filter

2. Parâmetro orderBy

3. Parâmetro page

4. Parâmetro pageSize

5. Parâmetro fields

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

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

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

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

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

Queries URI

Parâmetro orderBy

Operadores Descrição

asc Ascendente

desc Descendente

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

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.

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

Obrigado!

• Contatos

[email protected]

[email protected]