FPS aula7 RDF SPARQL
Texto
(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)
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]