Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Informática Programa de Pós-Graduação em Ciência da Computação Introdução ao SPARQL Anderson Bestteti [email protected] Orientadora: Prof(a). Dr(a). Renata Vieira Sumário Introdução A linguagem SPARQL Consultas sobre arquivos RDF & OWL Ferramentas Referências Perguntas 2 Introdução SPARQL é uma recomendação do W3C a partir de Janeiro de 2008. Seu propósito é permitir que arquivos RDF sejam consultados através de uma linguagem SQL Like. Permite ao usuário combinar dados de arquivos RDF, provenientes de diferentes fontes. SPARQL é uma linguagem orientada a dados, ou seja, recupera dados armazenados em arquivos RDF. 3 A linguagem SPARQL A vantagem da semelhança com SQL é que diminui a curva de aprendizado. Principais cláusulas: SELECT [DISTINCT] FROM (opcional) WHERE (opcional) ORDER BY (opcional) UNION (opcional – funcionamento diferente do SQL) 4 A linguagem SPARQL Algumas cláusulas específicas da SPARQL: BASE: define a URI base de um recurso; FILTER: aplica um filtro sobre as linhas recuperadas pela consulta; LIMIT: limita a quantidade de linhas recuperadas da consulta; OFFSET: permite que seja aplicado um deslocamento sobre o conjunto de linhas recuperadas pela consulta; OPTIONAL: permite que uma linha seja recuperada mesmo que não exista o valor de uma propriedade do RDF; PREFIX: cria um “apelido” para a URI de um arquivo RDF/OWL; Variáveis são identificadas com os símbolos “?” e/ou “$”. Literais são delimitados por aspas simples ou dupla 5 Consultas sobre RDF e OWL SPARQL é construída sobre triple pattern, ou seja: subject, predicate e object. Segue a mesma estrutura de construção de um arquivo RDF. Exemplo: <http://www.daml.org/2003/01/periodictable/PeriodicTable#Na> table:name "sodium". <Element rdf:ID="Na" xmlns="http://www.daml.org/2003/01/periodictable/PeriodicTable#"> <name>sodium</name> <symbol>Na</symbol> <atomicNumber>11</atomicNumber> <atomicWeight>22.989770</atomicWeight> <group rdf:resource="#group_1"/> <period rdf:resource="#period_3"/> <block rdf:resource="#s-block"/> <standardState rdf:resource="#solid"/> <color>silvery white</color> <classification rdf:resource="#Metallic"/> <casRegistryID>7440-23-5</casRegistryID> </Element> 6 Consultas sobre RDF e OWL Exemplo de uma consulta simples: PREFIX table:<http://www.daml.org/2003/01/periodictable/PeriodicTable#> SELECT ?name FROM http://www.daml.org/2003/01/periodictable/PeriodicTable.owl WHERE {?element table:name ?name.} Retorna: ---------------------------------------------------------| name | ========================================================== | "unununium"^^<http://www.w3.org/2001/XMLSchema#string> | | "copper"^^<http://www.w3.org/2001/XMLSchema#string> | | "bismuth"^^<http://www.w3.org/2001/XMLSchema#string> | ---------------------------------------------------------- 7 Consultas sobre RDF e OWL Aplicando outras cláusulas do SPARQL: BASE <http://www.daml.org/2003/01/periodictable/> PREFIX table:<PeriodicTable#> SELECT ?name ?symbol ?group FROM <PeriodicTable.owl> WHERE {?element table:name ?name. ?element table:symbol ?symbol. ?element table:group ?group.} ORDER BY ?group ?name LIMIT 8 OFFSET 5 Retorna: --------------------------------------| name | symbol | group | ======================================= | "rubidium" | "Rb" | #group_1> | | "sodium" | "Na" | #group_1> | | "nickel" | "Ni" | #group_10> | | "palladium" | "Pd" | #group_10> | | "platinum" | "Pt" | #group_10> | | "ununnilium" | "Uun" | #group_10> | | "copper" | "Cu" | #group_11> | | "gold" | "Au" | #group_11> | --------------------------------------- 8 Consultas sobre RDF e OWL Consultas sobre o modelo OMV: PREFIX omv: <http://omv.ontoware.org/2005/05/ontology#> SELECT ?x ?numberOfClasses ?numberOfIndividuals WHERE {?x omv:numberOfClasses ?numberOfClasses. ?x omv:numberOfIndividuals ?numberOfIndividuals. } Retorna: ------------------------------------------------------| x | numberOfClasses | numberOfIndividuals | ======================================================= | OntoMusica | 19 | 458 | | SmartPhone | 123 | 78 | | CvLattes | 179 | 0 | | LO | 117 | 117 | | Arte-dl | 170 | 151 | | OntoECO | 60 | 60 | |-----------------------------------------------------| 9 Consultas sobre RDF e OWL Consultas sobre o modelo OMV – Dados Opcionais: PREFIX omv: <http://omv.ontoware.org/2005/05/ontology#> SELECT ?x ?numberOfClasses ?numberOfIndividuals ?creationDate WHERE {?x omv:numberOfClasses ?numberOfClasses. ?x omv:numberOfIndividuals ?numberOfIndividuals. OPTIONAL {?x omv:creationDate ?creationDate.} } Retorna: ---------------------------------------------------------------------| x | numberOfClasses | numberOfIndividuals | creationDate | ====================================================================== | OntoMusica | 19 | 458 | "01/01/2006" | | SmartPhone | 123 | 78 | "01/01/2007" | | CvLattes | 179 | 0 | | | LO | 117 | 117 | "01/01/2007" | | Arte-dl | 170 | 151 | "01/01/2005" | | OntoECO | 60 | 60 | "01/01/2004" | ---------------------------------------------------------------------- 10 Ferramentas Protégé possui o SPARQL integrado em seu ambiente. 11 Ferramentas Twinkle: SPARQL Tool, é uma ferramenta que permite ao usuário criar e salvar as suas consultas. Apresenta algumas facilidades para definir a localização dos recursos. 12 Referências Tutoriais e Documentação Ferramentas utilizadas XML.com – Introducing SPARQL: Querying the Semantic Web. Disponível em http://www.xml.com/pub/a/2005/11/16/introducing-sparql-querying-semantic-webtutorial.html. Acesso em 03/2009. W3C – RDF Primer. Disponível em http://www.w3.org/TR/rdf-primer/. Acesso em 03/2009. IBM - Search RDF data with SPARQL. Diposnível em http://www.ibm.com/developerworks/library/j-sparql/. Acesso em 04/2009. W3C – SPARQL Query Language for RDF. Disponível em http://www.w3.org/TR/rdfsparql-query/#introduction. Acesso 03/2009. SPARQL RDF Query Language Reference. Disponível em http://www.dajobe.org/2005/04-sparql/. Acesso em 04/2009. XQuery/SPARQL Tutorial. Disponível em http://en.wikibooks.org/wiki/XQuery/SPARQL_Tutorial. Acesso em 03/2009. SPARQL e-Book download. Disponível em http://www.pdf-search-engine.com/sparqlpdf.html. Acesso em 04/2009. Wikipedia – SPARQL. Disponível em http://en.wikipedia.org/wiki/SPARQL. Acesso em 04/2009. Protégé 3.3.1 Twinkle: SPARQL Tool Pesquisas no Google: SPARQL e “SPARQL tutorial” 13 Fim Perguntas? 14