sparql query language for rdf
Download
Skip this Video
Download Presentation
SPARQL Query Language for RDF

Loading in 2 Seconds...

play fullscreen
1 / 37

SPARQL Query Language for RDF - PowerPoint PPT Presentation


  • 183 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'SPARQL Query Language for RDF' - lynsey


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: .

dc:publisher "Bob" .

dc:publisher "Alice".

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

@prefix foaf: .

_:a foaf:name "Bob" .

_:a foaf:mbox .

querying the dataset
Querying the Dataset

# Graph: http://example.org/foaf/aliceFoaf @prefix foaf: . _:a foaf:name "Alice" . _:a foaf:mbox . _:a foaf:knows _:b . _:b foaf:name "Bob" . _:b foaf:mbox . _:b foaf:age 32 . _:b foaf:PersonalProfileDocument .

# Graph: http://example.org/foaf/bobFoaf @prefix foaf: . _:1 foaf:mbox . _:1 foaf:PersonalProfileDocument . _:1 foaf:age 35 .

accessing graph labels
Accessing Graph Labels

PREFIX foaf: PREFIX data: SELECT ?src ?age WHERE GRAPH ?src { ( ?x foaf:mbox ) ( ?x foaf:age ?age )

}

PREFIX foaf: PREFIX data: SELECT ?age WHERE GRAPH data:bobFoaf { ( ?x foaf:mbox ) ( ?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:

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: PREFIX ldap:

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: PREFIX ldap:

PREFIX foaf:

SELECT ?name

{

?doc dc:title ?title .

?doc dc:creator ?reseacher .

?researcher ldap:email .

}

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)

whttp:inputSerialization=“…" />

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

… …

walkthrough example 11
Walkthrough Example(1)
  • SPARQL

[ a :Person;

:name "Henry Story";

:mbox ; :knows [ a :Person; :name "Tim Bray"; :mbox ]; ] .

walkthrough example 2
Walkthrough Example(2)
  • XML File

Jonathan Story

[email protected]

France

Tim Bray

[email protected]

Canada

walkthrough example 21
Walkthrough Example(2)
  • SPARQL

[ a :Person;

:name "Tim Bray";

:mbox

:address [

a :Address;

:country "Canada"@en ]

].

[ a :Person;

:name "Jonathan Story";

:mbox

:address [

a :Address;

:country "France"@en ]

].

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 ;

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!
ad