• Nenhum resultado encontrado

FPS aula7 RDF SPARQL

N/A
N/A
Protected

Academic year: 2021

Share "FPS aula7 RDF SPARQL"

Copied!
40
0
0

Texto

(1)Interoperabilidade na Web Semântica: RDF, SPARQL Renato Fernandes Corrêa. 1.

(2) Roteiro • RDF – Sintaxe – Exemplos. • SPARQL – – – – – –. Definição Exemplos de consulta SPARQL Protocolo Comandos Links Endpoints.

(3) RDF (Resource Description Framework) • Recurso (Resource) – Pode ser qualquer coisa – Deve ser unicamente identificado e referenciado via URI. • Descrição (Description) – Descrição de recursos – Via representação das propriedades e relações entre recursos como grafos. • Framework – Combinação de tecnologias web (URI, HTTP, XML, Turtle, …) – Baseado em modelo formal (semântica). • O conhecimento em RDF é expresso como uma lista de declarações (statements) • Todas as declarações RDF (RDF statements) seguem o mesmo esquema de triplas RDF (RDF Triple).

(4) RDF (Resource Description Framework) • Permite publicar e intercambiar dados (fatos). • Os fatos são declarados através da especificação de uma tripla: – Recurso (Sujeito) – especificado por uma URI – Propriedade (Predicado) – especificado por uma URI – Valor (Objeto) – especificado por uma URI ou um literal.

(5) Exemplo: Grafo RDF Dbpedia http://dbpedia.org/resource/Pluto http://www.w3.org/1999/02/22-rdf-syntax-ns#type. http://dbpedia.org/ontology/ Planet. http://dbpedia.org/property/discoverer. http://dbpedia.org/resource/ Clyde_Tombaugh http://dbpedia.org/ontology/discovered. “1930”.

(6) Exemplo: Dbpedia • RDF na notação N-Triples <http://dbpedia.org/resource/Pluto> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/ontology/Planet>. <http://dbpedia.org/resource/Pluto> <http://dbpedia.org/ontology/discovered> "1930" . <http://dbpedia.org/resource/Pluto> <http://dbpedia.org/ontology/discoverer> <http://dbpedia.org/resource/Clyde_Tombaugh> ..

(7) Exemplo: Dbpedia • RDF na notação Turtle (Terse RDF Triple Language) – @prefix – associa prefix-label com URI – @base – fornece URI para complementar todas as URI – As duas notações abaixo são equivalentes: @prefix dbo:<http://dbpedia.org/ontology/> . @prefix dbo:<http://dbpedia.org/ontology/> . @base <http://dbpedia.org/resource/> . @base <http://dbpedia.org/resource/> . <Pluto> dbo:discovered "1930" . <Pluto> dbo:discovered "1930" ; <Pluto> dbo:discoverer <Clyde_Tombaugh> . dbo:discoverer <Clyde_Tombaugh> ..

(8) Exemplo: Dbpedia • RDF na notação RDF/XML <?xml version="1.0" encoding="utf-8" ?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dbo="http://dbpedia.org/ontology/"> <rdf:Description rdf:about="http://dbpedia.org/resource/Pluto"> <dbo:discovered>1930</dbo:discovered> <dbo:discoverer rdf:resource="http://dbpedia.org/resource/Clyde_Tombaugh"/>. </rdf:Description> </rdf:RDF>.

(9) SPARQL • SPARQL é um acrônimo recursivo para – SPARQL Protocol and RDF Query Language. • Fornece facilidades para [Staab 2006]: – Extrair informação na forma de: URIs, blank nodes, literais. – extrair subgrafos RDF. – construir novos grafos RDF baseados na informação dos grafos consultados..

(10) SPARQL  É um protocol e linguagem de consulta a bases de dados RDF.  Tem uma semelhança sintática com a linguagem de consulta SQL para banco de dados, mas diferentemente é baseada em triplas rdf (na notação turtle) para busca sobre fatos, e pode resultar em subgrafos RDF.  Cada base de dados do Linked Data oferece geralmente um serviço chamado endpoint, que aceita consultas SPARQL.  Os agentes inteligentes na web utilizam SPARQL para obter conhecimento sobre fatos nas bases de dados RDF do linked data..

(11) SPARQL - Consultas As consultas SPARQL especificam basicamente: Namespaces prefix - prefixos dos espaços de nomes onde são definidas ontologias (classes, propriedades) ou instâncias. Os mais usados são: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dct: <http://purl.org/dc/terms/> PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX dbr: <http://dbpedia.org/resource/> PREFIX dbc: <http://dbpedia.org/resource/Category:> Variáveis - que serão extraídas do grafo RDF, iniciam sempre com o caractere ? Condições para seleção dos dados – uma ou mais triplas RDF (Recurso-Propriedade-Valor) que devem ser satisfeitas..

(12) SPARQL - Consultas Condições para seleção dos dados: Graph Pattern – uma tripla Recurso-PropriedadeValor (tripla RDF ou declaração RDF) que deve ser satisfeita. Group Pattern - um conjunto de graph patterns que deve ser satisfeito (casar) na totalidade. Restrição de Valor – restringe valores para variáveis RDF na solução. Graph pattern opcional – padrões adionais que podem expandir a solução se satisfeitos. Graph pattern alternativo – padrões alternativos que são aceitos como equivalentes..

(13) Exemplo: Dbpedia (Graph pattern) • SPARQL endpoint: http://dbpedia.org/sparql/ – Exemplo de query: select distinct ?planeta where { ?planeta dbo:discoverer dbr:Clyde_Tombaugh. } LIMIT 100. – Resultado planeta http://dbpedia.org/resource/3754_Kathleen http://dbpedia.org/resource/Pluto http://dbpedia.org/resource/2839_Annette.

(14) Exemplo: Dbpedia (Group pattern) • SPARQL endpoint: http://dbpedia.org/sparql/ – Exemplo de query: select distinct ?planeta where { ?planeta rdf:type dbo:Planet. ?planeta dbo:discoverer dbr:Clyde_Tombaugh. } LIMIT 100. – Resultado. planeta http://dbpedia.org/resource/Pluto.

(15) Exemplo: Dbpedia • SPARQL endpoint: http://dbpedia.org/sparql/ – Exemplo de query: select distinct ?Astronomo where { ?planeta rdf:type dbo:Planet. ?planeta dbo:discoverer ?Astronomo. ?Astronomo rdf:type dbo:Person. } LIMIT 1000. – Qual o resultado esperado?.

(16) Exemplo: Dbpedia • SPARQL endpoint: http://dbpedia.org/sparql/ – Como obter uma lista de Astrônomo e o respectivo planeta descoberto? select distinct ?Astronomo ?planeta where { ?planeta rdf:type dbo:Planet. ?planeta dbo:discoverer ?Astronomo. ?Astronomo rdf:type dbo:Person. } LIMIT 1000.

(17) Exemplo: Dbpedia (Restrição de valor) • SPARQL endpoint: http://dbpedia.org/sparql/ – Como obter uma lista de Astrônomo com nome Tombaugh e o respectivo planeta descoberto? select distinct ?Astronomo ?planeta where { ?planeta rdf:type dbo:Planet. ?planeta dbo:discoverer ?Astronomo. ?Astronomo foaf:name ?nome. FILTER(REGEX(?nome, 'Tombaugh')). } LIMIT 1000.

(18) Exemplo: Dbpedia (Graph pattern opcional) • SPARQL endpoint: http://dbpedia.org/sparql/ – O que a consulta abaixo retorna? SELECT DISTINCT ?escritor ?obra WHERE { ?escritor dct:subject dbc:Brazilian_writers. OPTIONAL{?escritor dbo:notableWork ?obra} } LIMIT 1000.

(19) Exemplo: Dbpedia (Graph pattern alternativo) • SPARQL endpoint: http://dbpedia.org/sparql/ – O que a consulta abaixo retorna? SELECT DISTINCT ?escritor WHERE { ?escritor dct:subject dbc:Brazilian_writers. {?escritor dbo:birthPlace dbr:Brazil.}UNION{ ?escritor dbo:birthPlace ?bp. ?bp dbo:country dbr:Brazil.} } LIMIT 1000.

(20) Exercício 1: Dbpedia • SPARQL endpoint: http://dbpedia.org/sparql/ – O que a consulta abaixo retorna? SELECT DISTINCT ?escritor ?obra WHERE { ?escritor dct:subject dbc:Portuguese-language_writers. ?escritor dbo:birthPlace <http://dbpedia.org/resource/Brazil>. OPTIONAL { ?escritor dbo:notableWork ?obra. ?obra rdf:type dbo:Book.} } LIMIT 1000.

(21) Exercício 2: Dbpedia • SPARQL endpoint: http://dbpedia.org/sparql/ – O que a consulta abaixo retorna? SELECT DISTINCT ?escritor ?obra WHERE { ?escritor dct:subject dbc:Portuguese-language_writers. ?escritor dbo:birthPlace ?bp. ?bp dbo:country dbr:Brazil. OPTIONAL { ?escritor dbo:notableWork ?obra. ?obra rdf:type dbo:Book.} } LIMIT 1000.

(22) Exercício 3: Dbpedia • Como recuperar os pernambucanos e seus trabalhos notáveis? – Recursos úteis: • dbo:Person • dbo:Place • dbr:Pernambuco. – Propriedades úteis: • • • •. rdf:type dbo:notableWork dbo:birthPlace dbo:isPartOf.

(23) Exercício 4: Dbpedia • SPARQL endpoint: http://dbpedia.org/sparql/ – O que a consulta abaixo retorna? SELECT distinct ?drug ?drugname ?drugbank WHERE { ?drug a dbo:Drug . ?drug rdfs:label ?drugname. FILTER (lang(?drugname) = 'en') ?drug owl:sameAs ?drugbank. FILTER regex(?drugbank,'sider') }.

(24) SPARQL faz consulta a apenas um endpoint Q. Endpoint. Porém, SPARQL 1.1 de 2013 prevê a possibilidade de consulta federada a vários endpoints.. 24.

(25) Problema: Execução de consultas complexas Consultas Estruturadas sobre múltiplas fontes Respostas das consultas como sendo a união dos múltiplos subgrafos de todos os datasets que responderam à consulta 25.

(26) Um exemplo • Seja a consulta q1 : “Retorne os títulos dos artigos publicados pelo autor Alon Y. Halevy. Além disso, recupere a homepage do autor bem como uma breve biografia. SELECT ?title, ?homepage, ?bio WHERE { ?publication Title ?title . ?publication Author ?author . ?author HomePage ?homepage . ?author Biography ?bio . ?author Name “Alon Y. Halevy” . }. 26.

(27) Um exemplo i. Extração dos termos da consulta – {Title, Author, HomePage, Biography e Name}. ii. Endpoints 1. http://dblp.rkbexplorer.com/sparql/ 2. http://acm.rkbexplorer.com/sparql/ 3. https://dbpedia.org/sparql. iii. Identificação de correspondências Variáveis\Propriedades ACM Name akt:full-name. 27. Biography HomePage Title. akt:has-title. DBLP akt:full-name akt:has-title. DBpedia dbpedia:name, foaf:surname, foaf:givenName rdf:comment foaf:page, foaf:homepage -.

(28) Um exemplo iii. Geração de subconsultas (reescrita) Consulta q1 (ACM) PREFIX akt: <http://www.aktors.org/ontology/portal#> PREFIX akts: <http://www.aktors.org/ontology/support#> SELECT DISTINCT ?title WHERE { ?publication akt:has-title ?title . ?publication akt:has-author ?author . ?author akt:full-name "Alon Y. Halevy".}Limit 5 Consulta q2 (DBLP) PREFIX akt: <http://www.aktors.org/ontology/portal#> PREFIX akts: <http://www.aktors.org/ontology/support#> SELECT DISTINCT ?title WHERE { ?publication akt:has-title ?title . ?publication akt:has-author ?author . ?author akt:full-name "Alon Y. Halevy".}Limit 5 Consulta q3 (dbpedia) PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT DISTINCT ?homepage ?bio WHERE { ?y dbo:wikiPageExternalLink ?homepage . ?y rdfs:comment ?bio . ?y rdf:type dbo:Person . 28 ?y foaf:name "Alon Y. Halevy"@en}. Resultado 1 2 3 4. Binding ?title ?title ?title ?title. Value Guest Editorial Answering queries using views Queries independent of updates Logic-based techniques in data…. 5. ?title. MiniCon: A scalable algorithm … Resultado. 1 2 3 4. Binding ?title ?title ?title ?title. Value Equivalence, Query-Reachability … Constraints and Redundancy in… Exploiting Irrelevance… Queries Independent of Updates.. 5. ?title. Query Optimization by… Resultado. 1. Binding ?homepage. Value http://alonhalevy.blogspot.com/. ?bio. Alon Yitzchack Halevy is...

(29) Um exemplo iv. Integração dos resultados. Biography Alon Yitzchack Halevy is a renowned Israeli-American computer scientist and a leading researcher in the area of data integration. … HomePage http://en.wikipedia.org/wiki/Alon_Y._Halevy Guest Editorial, Answering queries using views, Queries Title independent of updates…. 29.

(30) SPARQL como protocolo SPARQL Protocol client (SPARQL Query Language Specification). HTTP request. Q. R SPARQL Protocol operation. (SPARQL Query XML Results Format). HTTP response. SPARQL Protocol service Endpoint. RDF dataset https://www.w3.org/TR/2013/REC-sparql11-protocol-20130321/. 30.

(31) SPARQL como protocolo  Método para enviar consultas e receber resposta de SPARQL queries via http.  Um endereço SPARQL consiste de 3 partes: (1) URL do SPARQL endpoint (por exemplo https://dbpedia.org/sparql ) (2) Grafos RDF a serem pesquisados (opcional, parte da query string, por exemplo default-graph-uri=http%3A%2F%2Fdbpedia.org) (3) Consulta SPARQL (parte da query string, por exemplo query=SELECT...)  Exemplo: https://dbpedia.org/sparql?default-graphuri=http%3A%2F%2Fdbpedia.org&query=PREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2 F1999%2F02%2F22-rdf-syntaxns%23%3E%0D%0APREFIX+dbo%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2F%3E%0 D%0ASELECT+%3Fauthor+%3Fwork%0D%0AWHERE+%7B%0D%0A%3Fauthor+rdf%3Atype+db o%3AWriter+%3B%0D%0Adbo%3AnotableWork+%3Fwork+.%0D%0A%7D+LIMIT+100&format =text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=. on&run=+Run+Query+ . https://dbpedia.org/sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org&query=PREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX+dbo%3A+%3Chttp%3A%2F%2Fdbpedia.org%2Fontology%2F%3E%0D%0ASELECT+%3Fauthor+%3Fwork%0D%0AWHERE+%7B%0D%0A%3Fauthor+rdf%3Atype+dbo%3AWriter+%3B%0D%0Adbo%3AnotableWork+%3Fwork+.%0D%0A%7D+LIMIT+100&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on&run=+Run+Query+.

(32) SPARQL como protocolo  Consulta SPARQL PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?author ?work WHERE { ?author rdf:type dbo:Writer ; dbo:notableWork ?work . } LIMIT 100.  HTTP Trace da consulta SPARQL.

(33) SPARQL como protocolo  HTTP Trace da resposta SPARQL. Resultados codificados em arquivo XML variáveis resultados Aterramento das variáveis.

(34) Comandos SPARQL  SELECT – seleciona valores para variáveis (resposta no formato XML, JSON)  Consulta SPARQL – Liste autores e seus trabalhos notáveis PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> SELECT ?author ?work. WHERE { ?author rdf:type dbo:Writer ; dbo:notableWork ?work . } LIMIT 10.

(35) Comandos SPARQL  ASK – retorna verdadeiro se há pelos menos um valor para variáveis (resposta no formato XML, JSON).  Consulta SPARQL – Existe algum autor com trabalho notável? PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/>. ASK FROM <http://dbpedia.org/> WHERE { ?author rdf:type dbo:Writer ; dbo:notableWork ?work . }.

(36) Comandos SPARQL  DESCRIBE – retorna grafo rdf contendo os valores para variáveis (resposta no formato RDF/XML, Turtle).  Consulta SPARQL – retorne o grafo rdf de autores e trabalhos notáveis PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> DESCRIBE ?author ?work FROM <http://dbpedia.org/> WHERE { ?author rdf:type dbo:Writer ; dbo:notableWork ?work . } LIMIT 10.

(37) Comandos SPARQL  CONSTRUCT – constrói a partir de template grafo rdf contendo os valores para variáveis (resposta no formato RDF/XML, Turtle).  Consulta SPARQL – construa Grafo rdf de autores e trabalhos notáveis PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dbo: <http://dbpedia.org/ontology/> CONSTRUCT {?author <http://exemple.org/hasWritten> ?work .} FROM <http://dbpedia.org/> WHERE { ?author rdf:type dbo:Writer ; dbo:notableWork ?work . } LIMIT 10.

(38) Links  SPARQL for humanists  https://matthewlincoln.net/2014/07/10/sparql-for-humanists.html.  Using SPARQL to access Linked Open Data  https://programminghistorian.org/lessons/graph-databases-and-SPARQL.  SPARQL PLAYGROUND - aprenda SPARQL através de exemplos:  http://sparql-playground.sib.swiss/.  SPARQL Tutorial  https://www.cambridgesemantics.com/blog/semantic-university/learn-sparql/.  RDF tutorial  https://www.w3schools.com/xml/xml_rdf.asp.  W3C – Especificação do SPARQL  https://www.w3.org/TR/rdf-sparql-query/  https://www.w3.org/TR/sparql11-overview/.

(39) Endpoints  Europeana’s SPARQL endpoint  http://sparql.europeana.eu/.  Dbpedia’s SPARQL endpoint  https://dbpedia.org/sparql.  Interface amigável para Consulta a SPARQL endpoints no LOD  http://yasgui.org/.

(40) Referências  CUNHA, D. R. B.; SOUZA, D. Y. ; LOSCIO, B. F. (2011) Linked Data: da Web de Documentos para a Web de Dados. V Escola Regional de. Informática Ceará, Maranhão, Piauí: Livro texto dos minicursos, 07 e 08 de novembro de 2011. [livro eletrônico]  Heath, T.; Bizer, C. Linked Data: Evolving the Web into a Global Data. Space (1st edition). Synthesis Lectures on the Semantic Web: Theory and Technology. Morgan & Claypool, 2011..

(41)

Referências

Documentos relacionados

Os 41 diagnósticos médicos presentes na pri- meira e na segunda internação foram categorizados em: Arritmias (ablação de flutter atrial e tratamento de arritmia),

A segunda revisão do PDM de Paredes, à frente designada de 2.ª RPDMP, tem como objeto o cumprimento do novo quadro legal, resultante do RJIGT e da Lei de Bases da Política Pública de

O presente estudo teve como objetivo, avaliar a eficiência de diferentes malhas amostrais na iden- tificação da variabilidade espacial dos atributos químicos do solo e simular

Tabela 1 - Temperaturas e tempos de carbonização de duas marchas de carbonização...14 Tabela 1 - Densidade básica da madeira das espécies nativas: Xylopia aromática, Mouriri pusa

Caso a pilha recarregável esteja esgotada ou quase vazia ou quando o painel solar for removido, a pilha AAA pode atuar como uma fonte de energia reserva para a unidade

In particular, we verified: (1) the spatio-temporal distribution of the ecological quality in the study area according to the AMBI classification; (2) the relationships between

[r]