SlideShare a Scribd company logo
1 of 48
Download to read offline
Querying
                                  Linked Data
                                      with
                                    SPARQL

ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Brief Introduction to SPARQL
     ●   SPARQL: Query Language for RDF data
     ●   Main idea: pattern matching
          ●   Describe subgraphs of the queried RDF graph
          ●   Subgraphs that match your description yield a result
          ●   Mean: graph patterns (i.e. RDF graphs /w variables)

                                            ?v               rdf:type
                                                                        http://.../Volcano




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Brief Introduction to SPARQL
 Queried
 graph:
                                                             rdf:type
        http://.../Mount_Baker                                             http://.../Volcano
         p:lastEruption                                                             rdf:type
                                         "1880"                         htp://.../Mount_Etna



                                            ?v               rdf:type
   Results:                                                               http://.../Volcano
                      ?v
   http://.../Mount_Baker
   http://.../Mount_Etna
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
SPARQL Endpoints
     ●   Linked data sources usually provide a
         SPARQL endpoint for their dataset(s)
     ●   SPARQL endpoint: SPARQL query processing
         service that supports the SPARQL protocol*
     ●   Send your SPARQL query, receive the result




                    * http://www.w3.org/TR/rdf-sparql-protocol/

ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
SPARQL Endpoints
             Data Source                                     Endpoint Address

     DBpedia                                 http://dbpedia.org/sparql

     Musicbrainz                             http://dbtune.org/musicbrainz/sparql

     U.S. Census                             http://www.rdfabout.com/sparql

     Semantic Crunchbase http://cb.semsol.org/sparql


     More complete list:
      http://esw.w3.org/topic/SparqlEndpoints
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Accessing a SPARQL Endpoint
     ●   SPARQL endpoints: RESTful Web services
     ●   Issuing SPARQL queries to a remote SPARQL
         endpoint is basically an HTTP GET request to
         the SPARQL endpoint with parameter query

    GET /sparql?query=PREFIX+rd... HTTP/1.1
    Host: dbpedia.org
    User-agent: my-sparql-client/0.1
                                                              URL-encoded string
                                                             with the SPARQL query
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Query Results Formats
     ●   SPARQL endpoints usually support different
         result formats:
          ●   XML, JSON, plain text
              (for ASK and SELECT queries)
          ●   RDF/XML, NTriples, Turtle, N3
              (for DESCRIBE and CONSTRUCT queries)




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Query Results Formats
    PREFIX dbp: <http://dbpedia.org/ontology/>
    PREFIX dbpprop: <http://dbpedia.org/property/>

    SELECT ?name ?bday WHERE {
    ?p dbp:birthplace <http://dbpedia.org/resource/Berlin> ;
       dbpprop:dateOfBirth ?bday ;
       dbpprop:name ?name .
    }
        name                            | bday
      ------------------------+------------
        Alexander von Humboldt | 1769-09-14
        Ernst Lubitsch                 | 1892-01-28
                                      ...
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  <head>
    <variable name="name"/>
    <variable name="bday"/>
  </head>
  <results distinct="false" ordered="true">
   <result>
      <binding name="name">
         <literal xml:lang="en">Alexander von Humboldt</literal>
      </binding>
      <binding name="bday">
         <literal datatype="http://www.w3.org/2001/XMLSchema#date">1769-09-14</literal>
      </binding>
   </result>
   <result>
      <binding name="name">
         <literal xml:lang="en">Ernst Lubitsch</literal>
      </binding>
      <binding name="bday">
         <literal datatype="http://www.w3.org/2001/XMLSchema#date">1892-01-28</literal>
      </binding>
   </result>          http://www.w3.org/TR/rdf-sparql-XMLres/
   <!-- … -->
  </results>
 ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
</sparql>
{
 "head": { "link": [], "vars": ["name", "bday"] },
 "results": { "distinct": false, "ordered": true, "bindings": [
 { "name": { "type": "literal",
             "xml:lang": "en",
             "value": "Alexander von Humboldt" } ,
   "bday": { "type": "typed-literal",
             "datatype": "http://www.w3.org/2001/XMLSchema#date",
             "value": "1769-09-14" }
 },
 { "name": { "type": "literal",
             "xml:lang": "en",
             "value": "Ernst Lubitsch" } ,
   "bday": { "type": "typed-literal",
             "datatype": "http://www.w3.org/2001/XMLSchema#date",
             "value": "1892-01-28" }
  },
// ...
     ] }                    http://www.w3.org/TR/rdf-sparql-json-res/
}
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Query Result Formats
     ●   Use the ACCEPT header to request the
         preferred result format:
   GET /sparql?query=PREFIX+rd... HTTP/1.1
   Host: dbpedia.org
   User-agent: my-sparql-client/0.1
   Accept: application/sparql-results+json




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Query Result Formats
     ●   As an alternative some SPARQL endpoint
         implementations (e.g. Joseki) provide an
         additional parameter out

 GET /sparql?out=json&query=... HTTP/1.1
 Host: dbpedia.org
 User-agent: my-sparql-client/0.1




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Accessing a SPARQL Endpoint
     ●   More convenient: use a library
     ●   Libraries:
          ●   SPARQL JavaScript Library
              http://www.thefigtrees.net/lee/blog/2006/04/sparql_calendar_demo_a_sparql.html
          ●   ARC for PHP
              http://arc.semsol.org/
          ●   RAP – RDF API for PHP
              http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Accessing a SPARQL Endpoint
     ●   Libraries (cont.):
          ●   Jena / ARQ (Java) http://jena.sourceforge.net/
          ●   Sesame (Java) http://www.openrdf.org/
          ●   SPARQL Wrapper (Python)
              http://sparql-wrapper.sourceforge.net/
          ●   PySPARQL (Python)
              http://code.google.com/p/pysparql/




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Accessing a SPARQL Endpoint
     ●   Example with Jena / ARQ:
   import com.hp.hpl.jena.query.*;

   String service = "..."; // address of the SPARQL endpoint
   String query = "SELECT ..."; // your SPARQL query
   QueryExecution e = QueryExecutionFactory.sparqlService( service,
                                                             query );
   ResultSet results = e.execSelect();
   while ( results.hasNext() ) {
       QuerySolution s = results.nextSolution();
       // …
   }
   e.close();
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
●   Querying a single dataset is quite boring
                                             compared to:
     ●   Issuing SPARQL queries over multiple datasets

     ●   How can you do this?
          1. Issue follow-up queries to different endpoints
          2. Querying a central collection of datasets
          3. Build store with copies of relevant datasets
          4. Use query federation system



ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Follow-up Queries
     ●   Idea: issue follow-up queries over other
         datasets based on results from previous
         queries
     ●   Substituting placeholders in query templates




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
String s1 = "http://cb.semsol.org/sparql";
   String s2 = "http://dbpedia.org/sparql";

   String qTmpl = "SELECT ?c WHERE{ <%s> rdfs:comment ?c }";

   String q1 = "SELECT ?s WHERE { ...";
   QueryExecution e1 = QueryExecutionFactory.sparqlService(s1,q1);
   ResultSet results1 = e1.execSelect();
   while ( results1.hasNext() ) {
     QuerySolution s1 = results.nextSolution();
     String q2 = String.format( qTmpl, s1.getResource("s"),getURI() );
     QueryExecution e2= QueryExecutionFactory.sparqlService(s2,q2);
     ResultSet results2 = e2.execSelect();
     while ( results2.hasNext() ) {
       // ...
     }                               Find a list of companies
     e2.close();
   }
                                 filtered by some criteria and
   e1.close();                  return DBpedia URIs of them
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Follow-up Queries
     ●   Advantage:
          ●   Queried data is up-to-date
     ●   Drawbacks:
          ●   Requires the existence of a SPARQL endpoint for
              each dataset
          ●   Requires program logic
          ●   Very inefficient




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Querying a Collection of Datasets
     ●   Idea: Use an existing SPARQL endpoint that
         provides access to a set of copies of relevant
         datasets
     ●   Example:
          ●   SPARQL endpoint by OpenLink SW over a majority
              of datasets from the LOD cloud at:
                                  http://lod.openlinksw.com/sparql




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Querying a Collection of Datasets
     ●   Advantage:
          ●   No need for specific program logic
     ●   Drawbacks:
          ●   Queried data might be out of date
          ●   Not all relevant datasets in the collection




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Own Store of Dataset Copies
     ●   Idea: Build your own store with copies of
         relevant datasets and query it
     ●   Possible stores:
          ●   Jena TDB http://jena.hpl.hp.com/wiki/TDB
          ●   Sesame http://www.openrdf.org/
          ●   OpenLink Virtuoso http://virtuoso.openlinksw.com/
          ●   4store http://4store.org/
          ●   AllegroGraph http://www.franz.com/agraph/
          ●   etc.

ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Own Store of Dataset Copies
     ●   Advantages:
          ●   No need for specific program logic
          ●   Can include all datasets
          ●   Independent of the existence, availability, and
              efficiency of SPARQL endpoints
     ●   Drawbacks:
          ●   Requires effort to set up and to operate the store
          ●   Ideally, data sources provide RDF dumps; if not?
          ●   How to keep the copies in sync with the originals?
          ●   Queried data might be out of date
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Federated Query Processing
     ●   Idea: Querying a mediator which                         ?
         distributes subqueries to
         relevant sources and
         integrates the results
                                                             ?
                                                                 ?   ?



ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Federated Query Processing
     ●   Instance-based federation
          ●   Each thing described by only one data source
          ●   Untypical for the Web of Data
     ●   Triple-based federation
          ●   No restrictions
          ●   Requires more distributed joins


     ●   Statistics about datasets requires (both cases)

ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Federated Query Processing
     ●   DARQ (Distributed ARQ)
                            http://darq.sourceforge.net/
          ●   Query engine for federated SPARQL queries
          ●   Extension of ARQ (query engine for Jena)
          ●   Last update: June 28, 2006




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Federated Query Processing
     ●   Semantic Web Integrator and Query Engine
         (SemWIQ)        http://semwiq.sourceforge.net/
          ●   Actively maintained by Andreas Langegger




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Federated Query Processing
     ●   Advantages:
          ●   No need for specific program logic
          ●   Queried data is up to date
     ●   Drawbacks:
          ●   Requires the existence of a SPARQL endpoint for
              each dataset
          ●   Requires effort to set up and configure the mediator




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
In any case:
     ●   You have to know the relevant data sources
          ●   When developing the app using follow-up queries
          ●   When selecting an existing SPARQL endpoint over
              a collection of dataset copies
          ●   When setting up your own store with a collection of
              dataset copies
          ●   When configuring your query federation system
     ●   You restrict yourself to the selected sources



ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
In any case:
     ●   You have to know the relevant data sources
          ●   When developing the app using follow-up queries
          ●   When selecting an existing SPARQL endpoint over
              a collection of dataset copies
          ●   When setting up your own store with a collection of
              dataset copies
          ●   When configuring your query federation system
     ●   You restrict yourself to the selected sources
                    There is an alternative:
                Remember, URIs link to data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Automated
                              Link Traversal


ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Automated Link Traversal
     ●   Idea: Discover further data by looking-up
         relevant URIs in your application
     ●   Can be combined with the previous approaches




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
     ●   Applies the idea of automated link traversal to the
         execution of SPARQL queries
     ●   Idea:
          ●   Intertwine query evaluation with traversal of RDF links
          ●   Discover data that might contribute to query results
              during query execution
     ●   Alternately:
          ●   Evaluate parts of the query
          ●   Look up URIs in intermediate solutions

                                                             Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .
   ?cStats stat:unempRate ?u . }

     ●   Example:
         Return unemployment rate of the countries in
         which the movie http://mymovie.db/movie2449
         was filmed.

                                                             Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .
                                                                                             49
                                                                                      v ie24
   ?cStats stat:unempRate ?u                                 . }              .d b/mo
                                                                       m ovie
                                                             http ://my       ?




                                                                                                  Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .
   ?cStats stat:unempRate ?u . }




                                                             Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .
   ?cStats stat:unempRate ?u . }




                                                  ...
   <http://mymovie.db/movie2449>
          mov:filming_location <http://geo.../Italy> .
                                                             Queried data
                                                  ...
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                      ?loc
   ?cStats stat:unempRate ?u . }                             http://geo.../Italy




                                                  ...
   <http://mymovie.db/movie2449>
          mov:filming_location <http://geo.../Italy> .
                                                                 Queried data
                                                  ...
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                                               ?loc
   ?cStats stat:unempRate ?u . }                                                      http://geo.../Italy
                                                                               taly
                                                                        o.../I
                                                                  / / ge ?
                                                             http:




                                                                                          Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                                              ?loc
   ?cStats stat:unempRate ?u . }                                                ly
                                                                                     http://geo.../Italy
                                                                      eo .../Ita
                                                             http://g       ?




                                                                                         Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                      ?loc
   ?cStats stat:unempRate ?u . }                             http://geo.../Italy




                                                                 Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                      ?loc
   ?cStats stat:unempRate ?u . }                             http://geo.../Italy




                                                  ...
   <http://geo.../Italy>
           geo:statistics <http://example.db/stat/IT> .
                                                  ...            Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                                           ?loc
   ?cStats stat:unempRate ?u . }                                                  http://geo.../Italy


                                                                   ?loc                  ?stat
                                                             http://geo.../Italy http://stats.db/../it



                                                  ...
   <http://geo.../Italy>
           geo:statistics <http://example.db/stat/IT> .
                                                  ...                                  Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
 SELECT ?c ?u WHERE {
   <http://mymovie.db/movie2449> mov:filming_location ?c .
   ?c geo:statistics ?cStats .                                                           ?loc
   ?cStats stat:unempRate ?u . }                                                  http://geo.../Italy


                                                                   ?loc                  ?stat
                                                             http://geo.../Italy http://stats.db/../it

     ●   Proceed with this strategy
         (traverse RDF links
          during query execution)

                                                                                       Queried data
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Link Traversal Based
                             Query Execution
     ●   Advantages:
          ●   No need to know all data sources in advance
          ●   No need for specific programming logic
          ●   Queried data is up to date
          ●   Independent of the existence of SPARQL endpoints
              provided by the data sources
     ●   Drawbacks:
          ●   Not as fast as a centralized collection of copies
          ●   Unsuitable for some queries
          ●   Results might be incomplete
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Implementations
     ●   Semantic Web Client library (SWClLib) for Java
         http://www4.wiwiss.fu-berlin.de/bizer/ng4j/semwebclient/
     ●   SWIC for Prolog http://moustaki.org/swic/




ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Implementations
     ●   SQUIN http://squin.org
          ●   Provides SWClLib functionality as a Web service
          ●   Accessible like a SPARQL endpoint
          ●   Public SQUIN service at:
                       http://squin.informatik.hu-berlin.de/SQUIN/
          ●   Install package: unzip and start
          ●   Convenient access with SQUIN PHP tools:

               $s = 'http:// …'; // address of the SQUIN service
               $q = new SparqlQuerySock( $s, '… SELECT ...' );
               $res = $q->getJsonResult(); // or getXmlResult()
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
Real-World Examples
 SELECT DISTINCT ?author ?phone WHERE {
     ?pub swc:isPartOf
           <http://data.semanticweb.org/conference/eswc/2009/proceedings> .
     ?pub swc:hasTopic ?topic . ?topic rdfs:label ?topicLabel .
     FILTER regex( str(?topicLabel), "ontology engineering", "i" ) .

                                                                # of query results         2
     ?pub swrc:author ?author .                               # of retrieved graphs      297
     { ?author owl:sameAs ?authorAlt }                       # of accessed servers        16
     UNION                                                     avg. execution time    1min 30sec
     { ?authorAlt owl:sameAs ?author }
                                                                   Return
     ?authorAlt foaf:phone ?phone .                       phone numbers of authors
                                                       of ontology engineering papers
 }
                                                                at ESWC'09.
ISWC 2009 Tutorial "How to Consume Linked Data on the Web"

More Related Content

What's hot

Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission FormBram Luyten
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programmingThang Nguyen
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOChris Mungall
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid LayoutRachel Andrew
 
Mapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping LanguageMapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping Languageandimou
 
SPARQL in a nutshell
SPARQL in a nutshellSPARQL in a nutshell
SPARQL in a nutshellFabien Gandon
 
Grouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/SolrGrouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/Solrlucenerevolution
 
Model Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresMarkus Lanthaler
 
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개Dongbum Kim
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초slhead1
 
SHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudSHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudRichard Cyganiak
 
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...Altinity Ltd
 

What's hot (20)

Secrets of the DSpace Submission Form
Secrets of the DSpace Submission FormSecrets of the DSpace Submission Form
Secrets of the DSpace Submission Form
 
XML
XMLXML
XML
 
Basic perl programming
Basic perl programmingBasic perl programming
Basic perl programming
 
SHACL by example
SHACL by exampleSHACL by example
SHACL by example
 
CSS Grid
CSS GridCSS Grid
CSS Grid
 
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODOLinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
LinkML Intro July 2022.pptx PLEASE VIEW THIS ON ZENODO
 
SPARQL Cheat Sheet
SPARQL Cheat SheetSPARQL Cheat Sheet
SPARQL Cheat Sheet
 
Flexbox and Grid Layout
Flexbox and Grid LayoutFlexbox and Grid Layout
Flexbox and Grid Layout
 
Mapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping LanguageMapping Hierarchical Sources into RDF using the RML Mapping Language
Mapping Hierarchical Sources into RDF using the RML Mapping Language
 
SPARQL in a nutshell
SPARQL in a nutshellSPARQL in a nutshell
SPARQL in a nutshell
 
JSON-LD
JSON-LDJSON-LD
JSON-LD
 
Grouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/SolrGrouping and Joining in Lucene/Solr
Grouping and Joining in Lucene/Solr
 
Model Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON StructuresModel Your Application Domain, Not Your JSON Structures
Model Your Application Domain, Not Your JSON Structures
 
RDF 개념 및 구문 소개
RDF 개념 및 구문 소개RDF 개념 및 구문 소개
RDF 개념 및 구문 소개
 
Constructing SQL queries for AtoM
Constructing SQL queries for AtoMConstructing SQL queries for AtoM
Constructing SQL queries for AtoM
 
Introducing CSS Grid
Introducing CSS GridIntroducing CSS Grid
Introducing CSS Grid
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초[공간정보연구원] 1일차 - QGIS 개요 및 기초
[공간정보연구원] 1일차 - QGIS 개요 및 기초
 
SHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data MudSHACL: Shaping the Big Ball of Data Mud
SHACL: Shaping the Big Ball of Data Mud
 
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...
OSA Con 2022 - Arrow in Flight_ New Developments in Data Connectivity - David...
 

Similar to Query Linked Data with SPARQL

Querying Linked Data with SPARQL (2010)
Querying Linked Data with SPARQL (2010)Querying Linked Data with SPARQL (2010)
Querying Linked Data with SPARQL (2010)Olaf Hartig
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Olaf Hartig
 
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Informationballoon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference InformationKai Schlegel
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011Robert Engels
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011sesam4able
 
A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic webMarakana Inc.
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...Olaf Hartig
 
Introduction to SparkR
Introduction to SparkRIntroduction to SparkR
Introduction to SparkROlgun Aydın
 
SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)andyseaborne
 
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)Olaf Hartig
 
Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Martin Necasky
 
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Edureka!
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLMyungjin Lee
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And VisualizationIvan Ermilov
 
Semantic Web introduction
Semantic Web introductionSemantic Web introduction
Semantic Web introductionGraphity
 
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...CloudxLab
 
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...Spark Summit
 
An Introduction to Spark
An Introduction to SparkAn Introduction to Spark
An Introduction to Sparkjlacefie
 

Similar to Query Linked Data with SPARQL (20)

Querying Linked Data with SPARQL (2010)
Querying Linked Data with SPARQL (2010)Querying Linked Data with SPARQL (2010)
Querying Linked Data with SPARQL (2010)
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 3 (...
 
SFScon 2020 - Peter Hopfgartner - Open Data de luxe
SFScon 2020 - Peter Hopfgartner - Open Data de luxeSFScon 2020 - Peter Hopfgartner - Open Data de luxe
SFScon 2020 - Peter Hopfgartner - Open Data de luxe
 
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Informationballoon Fusion: SPARQL Rewriting Based on  Unified Co-Reference Information
balloon Fusion: SPARQL Rewriting Based on Unified Co-Reference Information
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011
 
Sesam4 project presentation sparql - april 2011
Sesam4   project presentation sparql - april 2011Sesam4   project presentation sparql - april 2011
Sesam4 project presentation sparql - april 2011
 
A hands on overview of the semantic web
A hands on overview of the semantic webA hands on overview of the semantic web
A hands on overview of the semantic web
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 2 (...
 
Introduction to SparkR
Introduction to SparkRIntroduction to SparkR
Introduction to SparkR
 
Introduction to SparkR
Introduction to SparkRIntroduction to SparkR
Introduction to SparkR
 
SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)SPARQL 1.1 Update (2013-03-05)
SPARQL 1.1 Update (2013-03-05)
 
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)
(An Overview on) Linked Data Management and SPARQL Querying (ISSLOD2011)
 
Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016Linked Open Data - Masaryk University in Brno 8.11.2016
Linked Open Data - Masaryk University in Brno 8.11.2016
 
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
Spark SQL Tutorial | Spark Tutorial for Beginners | Apache Spark Training | E...
 
The Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQLThe Semantic Web #10 - SPARQL
The Semantic Web #10 - SPARQL
 
Data Integration And Visualization
Data Integration And VisualizationData Integration And Visualization
Data Integration And Visualization
 
Semantic Web introduction
Semantic Web introductionSemantic Web introduction
Semantic Web introduction
 
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...
Apache Spark - Dataframes & Spark SQL - Part 2 | Big Data Hadoop Spark Tutori...
 
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
 
An Introduction to Spark
An Introduction to SparkAn Introduction to Spark
An Introduction to Spark
 

More from Olaf Hartig

LDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataLDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataOlaf Hartig
 
A Context-Based Semantics for SPARQL Property Paths over the Web
A Context-Based Semantics for SPARQL Property Paths over the WebA Context-Based Semantics for SPARQL Property Paths over the Web
A Context-Based Semantics for SPARQL Property Paths over the WebOlaf Hartig
 
Rethinking Online SPARQL Querying to Support Incremental Result Visualization
Rethinking Online SPARQL Querying to Support Incremental Result VisualizationRethinking Online SPARQL Querying to Support Incremental Result Visualization
Rethinking Online SPARQL Querying to Support Incremental Result VisualizationOlaf Hartig
 
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...Olaf Hartig
 
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...Olaf Hartig
 
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...Olaf Hartig
 
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Olaf Hartig
 
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)Olaf Hartig
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Olaf Hartig
 
An Overview on PROV-AQ: Provenance Access and Query
An Overview on PROV-AQ: Provenance Access and QueryAn Overview on PROV-AQ: Provenance Access and Query
An Overview on PROV-AQ: Provenance Access and QueryOlaf Hartig
 
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...Olaf Hartig
 
The Impact of Data Caching of on Query Execution for Linked Data
The Impact of Data Caching of on Query Execution for Linked DataThe Impact of Data Caching of on Query Execution for Linked Data
The Impact of Data Caching of on Query Execution for Linked DataOlaf Hartig
 
How Caching Improves Efficiency and Result Completeness for Querying Linked Data
How Caching Improves Efficiency and Result Completeness for Querying Linked DataHow Caching Improves Efficiency and Result Completeness for Querying Linked Data
How Caching Improves Efficiency and Result Completeness for Querying Linked DataOlaf Hartig
 
A Main Memory Index Structure to Query Linked Data
A Main Memory Index Structure to Query Linked DataA Main Memory Index Structure to Query Linked Data
A Main Memory Index Structure to Query Linked DataOlaf Hartig
 
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...Olaf Hartig
 
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)Olaf Hartig
 
Answers to usual issues in getting started with consuming Linked Data (2010)
Answers to usual issues in getting started with consuming Linked Data (2010)Answers to usual issues in getting started with consuming Linked Data (2010)
Answers to usual issues in getting started with consuming Linked Data (2010)Olaf Hartig
 
Linked Data on the Web
Linked Data on the WebLinked Data on the Web
Linked Data on the WebOlaf Hartig
 
Executing SPARQL Queries of the Web of Linked Data
Executing SPARQL Queries of the Web of Linked DataExecuting SPARQL Queries of the Web of Linked Data
Executing SPARQL Queries of the Web of Linked DataOlaf Hartig
 
Using Web Data Provenance for Quality Assessment
Using Web Data Provenance for Quality AssessmentUsing Web Data Provenance for Quality Assessment
Using Web Data Provenance for Quality AssessmentOlaf Hartig
 

More from Olaf Hartig (20)

LDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked DataLDQL: A Query Language for the Web of Linked Data
LDQL: A Query Language for the Web of Linked Data
 
A Context-Based Semantics for SPARQL Property Paths over the Web
A Context-Based Semantics for SPARQL Property Paths over the WebA Context-Based Semantics for SPARQL Property Paths over the Web
A Context-Based Semantics for SPARQL Property Paths over the Web
 
Rethinking Online SPARQL Querying to Support Incremental Result Visualization
Rethinking Online SPARQL Querying to Support Incremental Result VisualizationRethinking Online SPARQL Querying to Support Incremental Result Visualization
Rethinking Online SPARQL Querying to Support Incremental Result Visualization
 
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...
Tutorial "Linked Data Query Processing" Part 5 "Query Planning and Optimizati...
 
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...
Tutorial "Linked Data Query Processing" Part 4 "Execution Process" (WWW 2013 ...
 
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...
Tutorial "Linked Data Query Processing" Part 3 "Source Selection Strategies" ...
 
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
Tutorial "Linked Data Query Processing" Part 2 "Theoretical Foundations" (WWW...
 
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)
Tutorial "Linked Data Query Processing" Part 1 "Introduction" (WWW 2013 Ed.)
 
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
Tutorial "An Introduction to SPARQL and Queries over Linked Data" Chapter 1 (...
 
An Overview on PROV-AQ: Provenance Access and Query
An Overview on PROV-AQ: Provenance Access and QueryAn Overview on PROV-AQ: Provenance Access and Query
An Overview on PROV-AQ: Provenance Access and Query
 
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
Zero-Knowledge Query Planning for an Iterator Implementation of Link Traversa...
 
The Impact of Data Caching of on Query Execution for Linked Data
The Impact of Data Caching of on Query Execution for Linked DataThe Impact of Data Caching of on Query Execution for Linked Data
The Impact of Data Caching of on Query Execution for Linked Data
 
How Caching Improves Efficiency and Result Completeness for Querying Linked Data
How Caching Improves Efficiency and Result Completeness for Querying Linked DataHow Caching Improves Efficiency and Result Completeness for Querying Linked Data
How Caching Improves Efficiency and Result Completeness for Querying Linked Data
 
A Main Memory Index Structure to Query Linked Data
A Main Memory Index Structure to Query Linked DataA Main Memory Index Structure to Query Linked Data
A Main Memory Index Structure to Query Linked Data
 
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...
Towards a Data-Centric Notion of Trust in the Semantic Web (A Position Statem...
 
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)
Brief Introduction to the Provenance Vocabulary (for W3C prov-xg)
 
Answers to usual issues in getting started with consuming Linked Data (2010)
Answers to usual issues in getting started with consuming Linked Data (2010)Answers to usual issues in getting started with consuming Linked Data (2010)
Answers to usual issues in getting started with consuming Linked Data (2010)
 
Linked Data on the Web
Linked Data on the WebLinked Data on the Web
Linked Data on the Web
 
Executing SPARQL Queries of the Web of Linked Data
Executing SPARQL Queries of the Web of Linked DataExecuting SPARQL Queries of the Web of Linked Data
Executing SPARQL Queries of the Web of Linked Data
 
Using Web Data Provenance for Quality Assessment
Using Web Data Provenance for Quality AssessmentUsing Web Data Provenance for Quality Assessment
Using Web Data Provenance for Quality Assessment
 

Recently uploaded

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Recently uploaded (20)

Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Query Linked Data with SPARQL

  • 1. Querying Linked Data with SPARQL ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 2. Brief Introduction to SPARQL ● SPARQL: Query Language for RDF data ● Main idea: pattern matching ● Describe subgraphs of the queried RDF graph ● Subgraphs that match your description yield a result ● Mean: graph patterns (i.e. RDF graphs /w variables) ?v rdf:type http://.../Volcano ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 3. Brief Introduction to SPARQL Queried graph: rdf:type http://.../Mount_Baker http://.../Volcano p:lastEruption rdf:type "1880" htp://.../Mount_Etna ?v rdf:type Results: http://.../Volcano ?v http://.../Mount_Baker http://.../Mount_Etna ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 4. SPARQL Endpoints ● Linked data sources usually provide a SPARQL endpoint for their dataset(s) ● SPARQL endpoint: SPARQL query processing service that supports the SPARQL protocol* ● Send your SPARQL query, receive the result * http://www.w3.org/TR/rdf-sparql-protocol/ ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 5. SPARQL Endpoints Data Source Endpoint Address DBpedia http://dbpedia.org/sparql Musicbrainz http://dbtune.org/musicbrainz/sparql U.S. Census http://www.rdfabout.com/sparql Semantic Crunchbase http://cb.semsol.org/sparql More complete list: http://esw.w3.org/topic/SparqlEndpoints ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 6. Accessing a SPARQL Endpoint ● SPARQL endpoints: RESTful Web services ● Issuing SPARQL queries to a remote SPARQL endpoint is basically an HTTP GET request to the SPARQL endpoint with parameter query GET /sparql?query=PREFIX+rd... HTTP/1.1 Host: dbpedia.org User-agent: my-sparql-client/0.1 URL-encoded string with the SPARQL query ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 7. Query Results Formats ● SPARQL endpoints usually support different result formats: ● XML, JSON, plain text (for ASK and SELECT queries) ● RDF/XML, NTriples, Turtle, N3 (for DESCRIBE and CONSTRUCT queries) ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 8. Query Results Formats PREFIX dbp: <http://dbpedia.org/ontology/> PREFIX dbpprop: <http://dbpedia.org/property/> SELECT ?name ?bday WHERE { ?p dbp:birthplace <http://dbpedia.org/resource/Berlin> ; dbpprop:dateOfBirth ?bday ; dbpprop:name ?name . } name | bday ------------------------+------------ Alexander von Humboldt | 1769-09-14 Ernst Lubitsch | 1892-01-28 ... ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 9. <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="name"/> <variable name="bday"/> </head> <results distinct="false" ordered="true"> <result> <binding name="name"> <literal xml:lang="en">Alexander von Humboldt</literal> </binding> <binding name="bday"> <literal datatype="http://www.w3.org/2001/XMLSchema#date">1769-09-14</literal> </binding> </result> <result> <binding name="name"> <literal xml:lang="en">Ernst Lubitsch</literal> </binding> <binding name="bday"> <literal datatype="http://www.w3.org/2001/XMLSchema#date">1892-01-28</literal> </binding> </result> http://www.w3.org/TR/rdf-sparql-XMLres/ <!-- … --> </results> ISWC 2009 Tutorial "How to Consume Linked Data on the Web" </sparql>
  • 10. { "head": { "link": [], "vars": ["name", "bday"] }, "results": { "distinct": false, "ordered": true, "bindings": [ { "name": { "type": "literal", "xml:lang": "en", "value": "Alexander von Humboldt" } , "bday": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#date", "value": "1769-09-14" } }, { "name": { "type": "literal", "xml:lang": "en", "value": "Ernst Lubitsch" } , "bday": { "type": "typed-literal", "datatype": "http://www.w3.org/2001/XMLSchema#date", "value": "1892-01-28" } }, // ... ] } http://www.w3.org/TR/rdf-sparql-json-res/ } ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 11. Query Result Formats ● Use the ACCEPT header to request the preferred result format: GET /sparql?query=PREFIX+rd... HTTP/1.1 Host: dbpedia.org User-agent: my-sparql-client/0.1 Accept: application/sparql-results+json ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 12. Query Result Formats ● As an alternative some SPARQL endpoint implementations (e.g. Joseki) provide an additional parameter out GET /sparql?out=json&query=... HTTP/1.1 Host: dbpedia.org User-agent: my-sparql-client/0.1 ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 13. Accessing a SPARQL Endpoint ● More convenient: use a library ● Libraries: ● SPARQL JavaScript Library http://www.thefigtrees.net/lee/blog/2006/04/sparql_calendar_demo_a_sparql.html ● ARC for PHP http://arc.semsol.org/ ● RAP – RDF API for PHP http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/index.html ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 14. Accessing a SPARQL Endpoint ● Libraries (cont.): ● Jena / ARQ (Java) http://jena.sourceforge.net/ ● Sesame (Java) http://www.openrdf.org/ ● SPARQL Wrapper (Python) http://sparql-wrapper.sourceforge.net/ ● PySPARQL (Python) http://code.google.com/p/pysparql/ ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 15. Accessing a SPARQL Endpoint ● Example with Jena / ARQ: import com.hp.hpl.jena.query.*; String service = "..."; // address of the SPARQL endpoint String query = "SELECT ..."; // your SPARQL query QueryExecution e = QueryExecutionFactory.sparqlService( service, query ); ResultSet results = e.execSelect(); while ( results.hasNext() ) { QuerySolution s = results.nextSolution(); // … } e.close(); ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 16. Querying a single dataset is quite boring compared to: ● Issuing SPARQL queries over multiple datasets ● How can you do this? 1. Issue follow-up queries to different endpoints 2. Querying a central collection of datasets 3. Build store with copies of relevant datasets 4. Use query federation system ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 17. Follow-up Queries ● Idea: issue follow-up queries over other datasets based on results from previous queries ● Substituting placeholders in query templates ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 18. String s1 = "http://cb.semsol.org/sparql"; String s2 = "http://dbpedia.org/sparql"; String qTmpl = "SELECT ?c WHERE{ <%s> rdfs:comment ?c }"; String q1 = "SELECT ?s WHERE { ..."; QueryExecution e1 = QueryExecutionFactory.sparqlService(s1,q1); ResultSet results1 = e1.execSelect(); while ( results1.hasNext() ) { QuerySolution s1 = results.nextSolution(); String q2 = String.format( qTmpl, s1.getResource("s"),getURI() ); QueryExecution e2= QueryExecutionFactory.sparqlService(s2,q2); ResultSet results2 = e2.execSelect(); while ( results2.hasNext() ) { // ... } Find a list of companies e2.close(); } filtered by some criteria and e1.close(); return DBpedia URIs of them ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 19. Follow-up Queries ● Advantage: ● Queried data is up-to-date ● Drawbacks: ● Requires the existence of a SPARQL endpoint for each dataset ● Requires program logic ● Very inefficient ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 20. Querying a Collection of Datasets ● Idea: Use an existing SPARQL endpoint that provides access to a set of copies of relevant datasets ● Example: ● SPARQL endpoint by OpenLink SW over a majority of datasets from the LOD cloud at: http://lod.openlinksw.com/sparql ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 21. Querying a Collection of Datasets ● Advantage: ● No need for specific program logic ● Drawbacks: ● Queried data might be out of date ● Not all relevant datasets in the collection ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 22. Own Store of Dataset Copies ● Idea: Build your own store with copies of relevant datasets and query it ● Possible stores: ● Jena TDB http://jena.hpl.hp.com/wiki/TDB ● Sesame http://www.openrdf.org/ ● OpenLink Virtuoso http://virtuoso.openlinksw.com/ ● 4store http://4store.org/ ● AllegroGraph http://www.franz.com/agraph/ ● etc. ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 23. Own Store of Dataset Copies ● Advantages: ● No need for specific program logic ● Can include all datasets ● Independent of the existence, availability, and efficiency of SPARQL endpoints ● Drawbacks: ● Requires effort to set up and to operate the store ● Ideally, data sources provide RDF dumps; if not? ● How to keep the copies in sync with the originals? ● Queried data might be out of date ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 24. Federated Query Processing ● Idea: Querying a mediator which ? distributes subqueries to relevant sources and integrates the results ? ? ? ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 25. Federated Query Processing ● Instance-based federation ● Each thing described by only one data source ● Untypical for the Web of Data ● Triple-based federation ● No restrictions ● Requires more distributed joins ● Statistics about datasets requires (both cases) ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 26. Federated Query Processing ● DARQ (Distributed ARQ) http://darq.sourceforge.net/ ● Query engine for federated SPARQL queries ● Extension of ARQ (query engine for Jena) ● Last update: June 28, 2006 ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 27. Federated Query Processing ● Semantic Web Integrator and Query Engine (SemWIQ) http://semwiq.sourceforge.net/ ● Actively maintained by Andreas Langegger ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 28. Federated Query Processing ● Advantages: ● No need for specific program logic ● Queried data is up to date ● Drawbacks: ● Requires the existence of a SPARQL endpoint for each dataset ● Requires effort to set up and configure the mediator ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 29. In any case: ● You have to know the relevant data sources ● When developing the app using follow-up queries ● When selecting an existing SPARQL endpoint over a collection of dataset copies ● When setting up your own store with a collection of dataset copies ● When configuring your query federation system ● You restrict yourself to the selected sources ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 30. In any case: ● You have to know the relevant data sources ● When developing the app using follow-up queries ● When selecting an existing SPARQL endpoint over a collection of dataset copies ● When setting up your own store with a collection of dataset copies ● When configuring your query federation system ● You restrict yourself to the selected sources There is an alternative: Remember, URIs link to data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 31. Automated Link Traversal ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 32. Automated Link Traversal ● Idea: Discover further data by looking-up relevant URIs in your application ● Can be combined with the previous approaches ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 33. Link Traversal Based Query Execution ● Applies the idea of automated link traversal to the execution of SPARQL queries ● Idea: ● Intertwine query evaluation with traversal of RDF links ● Discover data that might contribute to query results during query execution ● Alternately: ● Evaluate parts of the query ● Look up URIs in intermediate solutions Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 34. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?cStats stat:unempRate ?u . } ● Example: Return unemployment rate of the countries in which the movie http://mymovie.db/movie2449 was filmed. Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 35. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . 49 v ie24 ?cStats stat:unempRate ?u . } .d b/mo m ovie http ://my ? Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 36. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?cStats stat:unempRate ?u . } Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 37. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?cStats stat:unempRate ?u . } ... <http://mymovie.db/movie2449> mov:filming_location <http://geo.../Italy> . Queried data ... ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 38. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy ... <http://mymovie.db/movie2449> mov:filming_location <http://geo.../Italy> . Queried data ... ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 39. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy taly o.../I / / ge ? http: Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 40. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } ly http://geo.../Italy eo .../Ita http://g ? Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 41. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 42. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy ... <http://geo.../Italy> geo:statistics <http://example.db/stat/IT> . ... Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 43. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy ?loc ?stat http://geo.../Italy http://stats.db/../it ... <http://geo.../Italy> geo:statistics <http://example.db/stat/IT> . ... Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 44. Link Traversal Based Query Execution SELECT ?c ?u WHERE { <http://mymovie.db/movie2449> mov:filming_location ?c . ?c geo:statistics ?cStats . ?loc ?cStats stat:unempRate ?u . } http://geo.../Italy ?loc ?stat http://geo.../Italy http://stats.db/../it ● Proceed with this strategy (traverse RDF links during query execution) Queried data ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 45. Link Traversal Based Query Execution ● Advantages: ● No need to know all data sources in advance ● No need for specific programming logic ● Queried data is up to date ● Independent of the existence of SPARQL endpoints provided by the data sources ● Drawbacks: ● Not as fast as a centralized collection of copies ● Unsuitable for some queries ● Results might be incomplete ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 46. Implementations ● Semantic Web Client library (SWClLib) for Java http://www4.wiwiss.fu-berlin.de/bizer/ng4j/semwebclient/ ● SWIC for Prolog http://moustaki.org/swic/ ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 47. Implementations ● SQUIN http://squin.org ● Provides SWClLib functionality as a Web service ● Accessible like a SPARQL endpoint ● Public SQUIN service at: http://squin.informatik.hu-berlin.de/SQUIN/ ● Install package: unzip and start ● Convenient access with SQUIN PHP tools: $s = 'http:// …'; // address of the SQUIN service $q = new SparqlQuerySock( $s, '… SELECT ...' ); $res = $q->getJsonResult(); // or getXmlResult() ISWC 2009 Tutorial "How to Consume Linked Data on the Web"
  • 48. Real-World Examples SELECT DISTINCT ?author ?phone WHERE { ?pub swc:isPartOf <http://data.semanticweb.org/conference/eswc/2009/proceedings> . ?pub swc:hasTopic ?topic . ?topic rdfs:label ?topicLabel . FILTER regex( str(?topicLabel), "ontology engineering", "i" ) . # of query results 2 ?pub swrc:author ?author . # of retrieved graphs 297 { ?author owl:sameAs ?authorAlt } # of accessed servers 16 UNION avg. execution time 1min 30sec { ?authorAlt owl:sameAs ?author } Return ?authorAlt foaf:phone ?phone . phone numbers of authors of ontology engineering papers } at ESWC'09. ISWC 2009 Tutorial "How to Consume Linked Data on the Web"