SPARQL SPARQL Protocol And RDF Query Language Robert Engels NFR Verdikt Project n o  2342453  Semantic Technology
from local to global Information management in the digital age   From Locally isolated ... ... to Globally interconnected
But What CAN you get out of this?
What is SPARQL? Query Language for interlinked graphs represented using RDF/OWL annotations SPARQL 1.0: W3C recommendation 2008 SPARQL 1.1: nearly a recommendation
Why SPARQL? allows for querying RDF/OWL data & models allows to define  globally unambiguous queries allows for distributed querying of datasets  query results can be merged automatically
Differences with SQL? querying “graphs” instead of tables local keys are replaced with global identifiers tables need to provide the same schema, graphs do not
What can you do with SPARQL? various result types DESCRIBE, SELECT,  ASK & CONSTRUCT create result sets using known operators  a union of two sets (UNION) a set representing the reverse of a statement (NOT) … . algoritmic operators like  count, avg , &  sum  specific to SPARQL 1.1
SPARQL - “DESCRIBE” Suppose The only thing you have is an Uri like this And no idea what is known about it.... http://data.esis.no/resource/projectID_111667 Simply send a SPARQL “DESCRIBE” to a sparql endpoint DESCRIBE <http://data.esis.no/resource/projectID_111667>
Result of SPARQL - “DESCRIBE” “ DESCRIBE” This node for me:
Result of SPARQL - “DESCRIBE” 1 1 1 1 1 2 2
SPARQL - “SElect” ... or you know what to look for and want to select specific resources. Send a sparql “select” to a sparql endpoint PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX  dct: <http://purl.org/dc/terms/> PREFIX  nfr: <http://data.esis.no/resource/> PREFIX  foaf: <http://xmlns.com/foaf/0.1/> SELECT ?projectID  ?projectName  WHERE { ?projectID a foaf:Project ;   dct:title ?projectName ;   nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> . }
SPARQL - “SELECT”
RESULT SPARQL - “SELECT”
SPARQL - “CONSTRUCT” REPLACE NEW PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX  dct: <http://purl.org/dc/terms/> PREFIX  nfr: <http://data.esis.no/resource/> PREFIX  foaf: <http://xmlns.com/foaf/0.1/> PREFIX  funder: <http://research.data.gov.uk/def/project/> CONSTRUCT { ?projectID funder:title ?title } WHERE { ?projectID a foaf:Project;  dct:title  ?title ; nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> . }
SPARQL - “ASK” TRUE  or   FALSE? PREFIX  nfr: <http://data.esis.no/resource/> ASK { ?projectID nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> }
Try it yourself! http://data.esis.no:2020/query.html http://opendata.computas.no:7001/joseki/
Further reading SPARQL 1.0 - W3C recommendation 2008 http://www.w3.org/TR/rdf-sparql-query/ SPARQL 1.1 – W3C SPARQL working group Wiki http://www.w3.org/2009/sparql/wiki/Main_Page Extensive tutorials by HP and Talis (and many others...)  http://openjena.org/ARQ/Tutorial/index.html http://www.slideshare.net/ldodds/sparql-tutorial
www.sesam4.net

Sesam4 project presentation sparql - april 2011

  • 1.
    SPARQL SPARQL ProtocolAnd RDF Query Language Robert Engels NFR Verdikt Project n o 2342453 Semantic Technology
  • 2.
    from local toglobal Information management in the digital age From Locally isolated ... ... to Globally interconnected
  • 3.
    But What CANyou get out of this?
  • 4.
    What is SPARQL?Query Language for interlinked graphs represented using RDF/OWL annotations SPARQL 1.0: W3C recommendation 2008 SPARQL 1.1: nearly a recommendation
  • 5.
    Why SPARQL? allowsfor querying RDF/OWL data & models allows to define globally unambiguous queries allows for distributed querying of datasets query results can be merged automatically
  • 6.
    Differences with SQL?querying “graphs” instead of tables local keys are replaced with global identifiers tables need to provide the same schema, graphs do not
  • 7.
    What can youdo with SPARQL? various result types DESCRIBE, SELECT, ASK & CONSTRUCT create result sets using known operators a union of two sets (UNION) a set representing the reverse of a statement (NOT) … . algoritmic operators like count, avg , & sum specific to SPARQL 1.1
  • 8.
    SPARQL - “DESCRIBE”Suppose The only thing you have is an Uri like this And no idea what is known about it.... http://data.esis.no/resource/projectID_111667 Simply send a SPARQL “DESCRIBE” to a sparql endpoint DESCRIBE <http://data.esis.no/resource/projectID_111667>
  • 9.
    Result of SPARQL- “DESCRIBE” “ DESCRIBE” This node for me:
  • 10.
    Result of SPARQL- “DESCRIBE” 1 1 1 1 1 2 2
  • 11.
    SPARQL - “SElect”... or you know what to look for and want to select specific resources. Send a sparql “select” to a sparql endpoint PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dct: <http://purl.org/dc/terms/> PREFIX nfr: <http://data.esis.no/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?projectID ?projectName WHERE { ?projectID a foaf:Project ; dct:title ?projectName ; nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> . }
  • 12.
  • 13.
    RESULT SPARQL -“SELECT”
  • 14.
    SPARQL - “CONSTRUCT”REPLACE NEW PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX dct: <http://purl.org/dc/terms/> PREFIX nfr: <http://data.esis.no/resource/> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX funder: <http://research.data.gov.uk/def/project/> CONSTRUCT { ?projectID funder:title ?title } WHERE { ?projectID a foaf:Project; dct:title ?title ; nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> . }
  • 15.
    SPARQL - “ASK”TRUE or FALSE? PREFIX nfr: <http://data.esis.no/resource/> ASK { ?projectID nfr:orgnrResponsibleOrg <https://ws.brreg.no/lod/enhet/962392687> }
  • 16.
    Try it yourself!http://data.esis.no:2020/query.html http://opendata.computas.no:7001/joseki/
  • 17.
    Further reading SPARQL1.0 - W3C recommendation 2008 http://www.w3.org/TR/rdf-sparql-query/ SPARQL 1.1 – W3C SPARQL working group Wiki http://www.w3.org/2009/sparql/wiki/Main_Page Extensive tutorials by HP and Talis (and many others...) http://openjena.org/ARQ/Tutorial/index.html http://www.slideshare.net/ldodds/sparql-tutorial
  • 18.

Editor's Notes

  • #3 Retorics: - where before information was locally managed, using local keys, and only accessible through customised interfaces using these “local keys” to identify information … … today this very same information is available from many different sources, represented in a standard way using globally unique identifiers … .. which are connected to each other and in such a way provide explicit key-references between different data-sets which can be used for automated harvesting and discovery
  • #4 So now you think: - this is too large, too complex and too big. I cannot possible see how I can work with this and yes: I cannot see what is wrong with normal relational databases and SQL querying .. - well there is good and bad news. The good news is that it is indeed BIG, the bad news is that it is also complex and maybe even huge. … - But there is more good news: some smart people at W3C have found a way to let you use this graphs using a query language which is very similar to SQL, called SPARQL.