Sparql query language for rdf
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

SPARQL Query Language for RDF PowerPoint PPT Presentation


  • 145 Views
  • Uploaded on
  • Presentation posted in: General

SPARQL Query Language for RDF. 임형준 ( [email protected] ) 충남대학교 컴퓨터공학과 데이터베이스 시스템 연구실 2014년 9월 11일 목요일. Contents. SPARQL Status SPARQL Overview SPARQL Feature Summary References Appendix. SPARQL Status. SPARQL Query Language for RDF

Download Presentation

SPARQL Query Language for RDF

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Sparql query language for rdf

SPARQLQuery Language for RDF

임형준([email protected])

충남대학교 컴퓨터공학과

데이터베이스 시스템 연구실

2014년 9월 11일 목요일


Contents

Contents

  • SPARQL Status

  • SPARQL Overview

  • SPARQL Feature

  • Summary

  • References

  • Appendix


Sparql status

SPARQL Status

  • SPARQL Query Language for RDF

    • W3C, http://www.w3.org/TR/2007/WD-rdf-sparql-query-20070326/

    • Published W3C Working Draft 26 March 2007

  • SPARQL Protocol for RDF

    • W3C, http://www.w3.org/TR/2006/CR-rdf-sparql-protocol-20060406/

    • Published W3C Candidate Recommendation 6 April 2006

  • SPARQL Query Results XML Format

    • W3C,http://www.w3.org/TR/2006/CR-rdf-sparql-XMLres-20060406/

    • Published W3C Candidate Recommendation 6 April 2006


Sparql overview

SPARQL Overview

  • RDF

    • Resource Description Framework

    • Flexible and extensible way to represent information about WWW resources

  • SPARQL

    • SPARQL Protocol And RDF Query Language

    • Query Language + Protocol + XML Results Format

    • Product of the RDF Data Access Working Group

    • A query language for access and query RDF graphs

    • A protocol for issuing queries via HTTP GET, HTTP POST, or SOAP

    • Perfect for mashing up disparate data sources representable as RDF


Sparql overview1

SPARQL Overview

  • It provides facilities to:

    • Extract information in the form of URIs, blank nodes, plain and typed literals

    • Extract RDF subgraphs

    • Construct new RDF graphs based on information in the queried graphs

  • Feature

    • Matching graph patterns

    • Variables – global scope; indicated by ‘?‘ or ‘$‘

    • Query terms – based on Turtle syntax

    • Terms delimited by "<>" are relative URI references

    • Data description format - Turtle


Sparql query example

SPARQL Query Example

Find the URL of

the blog by the

person named

Jon Foobar

Figure 1. Basic graph structure for a single contributor in bloggers.rdf

Result

“http://foobar.xx/blog”


Sparql features

SPARQL Features

Graph Patterns

RDF Dataset

Result Forms

Testing Values

Inference

Data Virtualization

Access Multiple Sources

SPARQL Protocol

Walkthrough


Graph patterns

Graph Patterns

  • Set of Triple Patterns

    • Triple Pattern – similar to an RDF Triple (subject, predicate, object), but any component can be a query variable; literal subjects are allowed

    • Matching a triple pattern to a graph: bindings between variables and RDF Terms


Graph pattern multiple matches

Graph Pattern - Multiple Matches

Data

Query

Group Graph Pattern (set of graph patterns) also!

Query Result


Rdf dataset

RDF Dataset

  • The RDF data model expresses information as a graph

  • Many RDF data stores hold a multiple RDF graphs

  • There is one graph which does not have a name, called the background graph, and zero or more named graphs, identified by URI reference

# Default graph

@prefix dc: <http://purl.org/dc/elements/1.1/> .

<http://example.org/bob> dc:publisher "Bob" .

<http://example.org/alice> dc:publisher "Alice".

# Named graph: http://example.org/bob

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

_:a foaf:name "Bob" .

_:a foaf:mbox <mailto:[email protected]> .


Querying the dataset

Querying the Dataset

# Graph: http://example.org/foaf/aliceFoaf @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:a foaf:name "Alice" . _:a foaf:mbox <mailto:[email protected]> . _:a foaf:knows _:b . _:b foaf:name "Bob" . _:b foaf:mbox <mailto:[email protected]> . _:b foaf:age 32 . _:b foaf:PersonalProfileDocument <http://example.org/foaf/bobFoaf> .

# Graph: http://example.org/foaf/bobFoaf @prefix foaf: <http://xmlns.com/foaf/0.1/> . _:1 foaf:mbox <mailto:[email protected]> . _:1 foaf:PersonalProfileDocument <http://example.org/foaf/bobFoaf>. _:1 foaf:age 35 .


Accessing graph labels

Accessing Graph Labels

PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX data: <http://example.org/foaf/> SELECT ?src ?age WHERE GRAPH ?src{ ( ?x foaf:mbox <mailto:[email protected]> ) ( ?x foaf:age ?age )

}

PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX data: <http://example.org/foaf/> SELECT ?age WHERE GRAPH data:bobFoaf { ( ?x foaf:mbox <mailto:[email protected]> ) ( ?x foaf:age ?age ) }


Result forms

Result Forms

  • SPARQL has a number of query forms for returning results

    • SELECT

      • Returns all, or a subset of the variables bound in a query pattern match

      • Formats : XML or RDF/XML

    • CONSTRUCT

      • Returns an RDF graph constructed by substituting variables in a set of triple templates

    • DESCRIBE

      • Returns an RDF graph that describes the resources found

    • ASK

      • Returns whether a query pattern matches or not


Testing values

Testing Values

  • Named functions and syntactically constructed operations:

    • Operands: subset of XML Schema DataTypes {xsd:string, xsd:decimal, xsd:double, xsd:dateTime} and types derived from xsd:decimal.

  • Subset of XQuery 1.0 and XPath 2.0 functions and operators

    • Operands: xs:string, xs:double, xs:float, xs:decimal, xs:integer, xs:dateTime

    • Additional operators: sop:RDFterm-equal, sop:bound, sop:isURI, sop:isBlank, sop:isLiteral, sop:str , sop:lang, sop:datatype, sop:logical-or, sop:logical-and

  • Type Promotion : xs:double, xs:float, xs:decimal

    • Each of the numeric types is promoted to any type higher in the above list when used as an argument to function expecting that higher type


Inference

Inference

  • An RDF graph may be backed by inference

    • OWL, RDFS, application, rules

:x rdf:type :C .:C rdfs:subClassOf :D .

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?type

WHERE

{

?x rdf:type ?type .

}

--------

| type |

=====

| :C |

| :D |

--------


Data virtualization

Data Virtualization

  • SPARQL as integrator

    • Data remains where it is

    • Existing applications untouched

    • Data appears as RDF, query to native form

  • SPARQL to SQL

    • Direct mapping of tables

      • Semi-automatic generation of mapping

      • SquirrelRDF (also does LDAP)

    • Modelled: D2RQ

      • High-quality mapping, manually developed


Federated query single point of access

SPARQL Query

SPARQL Query

SPARQL Query

Federated QuerySingle Point of Access

  • Inputs:

    • Service Description

    • Information Directory

    • Request

  • Outputs:

    • Unified results

Query BrokerSPARQL => SPARQL

SPARQL Query

RDF

DocDB

CorpLDAP


Access multiple sources

Access Multiple Sources

  • “Find the name and email addresses of authors of a paper”

  • Query tech reports first, then go to LDAP for more information.

  • SQL database; LDAP server

PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX ldap: <http://ldap.hp.com/people#>

PREFIX foaf:

SELECT ?name ?email

{

?doc dc:title ?title .

FILTER regex(?title, “SPARQL”) .

?doc dc:creator ?reseacher .

?researcher ldap:email ?email .

?researcher ldap:name ?name

}


Access multiple sources1

Access Multiple Sources

  • “Find the reports written by the person with email address [email protected]

  • Go to LDAP first, then the reports database

PREFIX dc: <http://purl.org/dc/elements/1.1/>PREFIX ldap: <http://ldap.hp.com/people#>

PREFIX foaf:

SELECT ?name

{

?doc dc:title ?title .

?doc dc:creator ?reseacher .

?researcher ldap:email <mailto:[email protected]> .

}


Sparql as a protocol

SPARQL as a Protocol

  • A way of communication between parties that run SPARQL queries

  • Defining a way of invoking the service

  • Bindings of a transport protocol


Sparql protocol 1

SPARQL Protocol(1)

  • WSDL description file:

    • Description of the protocol

    • Not for human understanding

  • HTTP binding:

    • Specify how to encode SPARQL queries in URLs with GET and POST methods

  • SOAP binding:

    • Specify the SOAP message format (XML message exchange format for queries)


Sparql protocol 2

SPARQL Protocol(2)

  • Interface SparqlQuery

    • Only one operation: query

      • For transferring string query

    • Data types: via XML schema

    • Bindings: HTTP / SOAP binding for invokable operations

  • A service must support SparqlQuery interface

    • Support the bindings as described in the WSDL


Http binding example

HTTP Binding Example

  • HTTP Binding Get methods

GET /sparql/?query=EncodedQuery&default-graph-uri=http://my.example/publishers&named-graph-uri=http://my.example/bob&named-graph-uri=http://my.example/aliceHTTP/1.1Host: my.exampleUser-agent: sparql-client/0.1


Wsdl description file example

WSDLDescription File Example

WSDL description file: (HTTP binding part)

<binding name="queryHttp" interface="tns:SparqlQuery“

… >

<fault name="MalformedQuery" whttp:zode="400"/>

<!-- the GET binding for query operation -->

<operation ref="tns:query" whttp:method="GET"

whttp:inputSerialization=“…" />

</binding>


Soap binding example

SOAP Binding Example

HTTP/1.1 200 OK

Date: Wed, 27Dec 2005 12:48:25 GMT

Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3

Connection: closeContent-Type: application/sparql-results+xml;

charset=utf-8

<?xml version="1.0"?>

<sparql xmlns=“…"> … …

</sparql>


Walkthrough example 1

Walkthrough Example(1)

  • XML File

<Person> <name>Henry Story</name><mbox>[email protected]</mbox><knows><Person><name>Tim Bray</name>

<mbox>[email protected]</mbox>

</Person><Person><name>Jonathan Story</name>

<mbox>[email protected]</mbox>

</Person> </knows>

</Person>


Walkthrough example 11

Walkthrough Example(1)

  • SPARQL

[ a :Person;

:name "Henry Story";

:mbox <mailto:[email protected]>; :knows [ a :Person; :name "Tim Bray"; :mbox <mailto:[email protected]]; :knows [ a :Person; :name "Jonathan Story"; :mbox <mailto:[email protected]> ]; ] .


Graph representation

Graph Representation


Walkthrough example 2

Walkthrough Example(2)

  • XML File

<AddressBook><Person> <name>Jonathan Story</name>

<mbox>[email protected]</mbox>

<address><Country>France</Country>

</address>

</Person>

<Person>

<name>Tim Bray</name>

<mbox>[email protected]</mbox>

<address><Country>Canada</Country>

</address>

</Person>

</AddressBook>


Walkthrough example 21

Walkthrough Example(2)

  • SPARQL

[ a :Person;

:name "Tim Bray";

:mbox <mailto:[email protected]>

:address [

a :Address;

:country "Canada"@en ]

].

[ a :Person;

:name "Jonathan Story";

:mbox <mailto:[email protected]>

:address [

a :Address;

:country "France"@en ]

].


Graph representation1

Graph Representation


Merge graph representation

Merge Graph Representation


Summary

Summary

  • SPARQL (SPARQL Protocol And RDF Query Language) is a query language for getting information from RDF graphs

  • It provides facilities to:

    • Extract information in the form of URIs, bNodes, Plain and typed literals

    • Extract RDF subgraphs

    • Construct new RDF graphs based on information in the queried graphs


References

References

  • W3C, “SPARQL Query Language for RDF” http://www.w3.org/TR/2007/WD-rdf-sparql-query-20070326/, 26, March. 2007

  • IBM Developerworks, “Search RDF data with SPARQL” http://www-128.ibm.com/developerworks/java/library/j-sparql/, 10, May. 2005

  • Oreillynet, “SPARQL: Web 2.0 Meet the Semantic Web” http://www.oreillynet.com/xml/blog/2005/09/sparql_web_20_meet_the_semanti.html, 16, September. 2005


Appendix 01

Appendix-01

  • SPARQL Update

    • Future HP proposal to W3C

INSERT{ book:newBook dc:title “More about SPARQL” . book:newBook dc:creator

[ foaf:mbox <mailto:[email protected]> ;

foaf:name “Alex Author” ]

}

DELETE

{ ?book dc:title ?title ;

dc:creator ?c }WHERE{ ?book dc:title ?title ; dc:creator ?c FILTER regex(?title, “first edition”)}


Appendix 02

Appendix-02

  • SPARQL: Web 2.0 Meet the Semantic Web

    • RDF is pretty foundational to the Semantic Web

    • Most Web 2.0 applications and services involve a REST protocol or interface

    • REST offers a standard set of operations

      • GET, PUT, POST, DELETE

    • No standard way to execute an arbitrary query

      • A Web 2.0 app or service’s dataset

      • Get back a representation of that resource


Appendix 021

Appendix-02

  • SW and Web 2.0 need a data access protocol

    • Using WSDL 2.0, SPARQL Protocol for RDF describes a very simple web service with one operation, query

    • Available with both HTTP and SOAP bindings

      • The way you send SPARQL queries to other sites

      • The way you get back the results

  • Imagine having one query language, and one client, which lets you arbitrarily slice the data ofWeb 2.0 sites, all FOAF files, all of the RSS 1.0 feeds

  • A good SPARQL client implementation in Javascript, along with some conventions for building and moving queries around in an AJAX-friendly way

    • SPARQL over AJAX just by itself is so cool it gives me a headache!


  • Login