See also:
Article

Introduction to SPARQL

SPARQL is a query language for graph data. The graph model of thinking fits well a lot of use cases.
Cube

SPARQL is a query language for RDF data. It is commonly used in semantic web, linked data, and big data applications. There is a growing number of websites and organizations that provide SPARQL endpoints for querying their public data like Wikidata and DBpedia.

What is RDF?

An RDF dataset is simply a set of subject-predicate-object triples. This way of conceptually describing or modeling data is different to the commonly used relational model and is very useful for semantic web applications.

Here is an example of an RDF document in the N-triples/Turtle format:

<http://example.org/#alice> <http://xmlns.com/foaf/0.1/knows> <http://example.org/#bob> .
<http://example.org/#alice> <http://xmlns.com/foaf/0.1/name> "Alice" .
<http://example.org/#bob> <http://xmlns.com/foaf/0.1/name> "Bob" .

The dataset above intrinsically represents a graph:

Alice knows Bob

Example SPARQL query

Here is an example of a SPARQL query against the RDF dataset:

SELECT ?name
WHERE
  {
    ?person <http://xmlns.com/foaf/0.1/knows> <http://example.org/#bob> .
    ?person <http://xmlns.com/foaf/0.1/name> ?name .
  }

This query searches for all matching sets of triples and returns the list of names of every person that knows Bob.

Public SPARQL endpoints

You can start writing and executing SPARQL queries right away using interactive SPARQL query services. The table below lists the SPARQL query services that provide access to public datasets:

The websites listed above are the best way to get started with SPARQL because they allow you to run queries without having to set anything up.

Further reading

For an in-depth discussion about SPARQL, take a look at Bob DuCharme's Learning SPARQL: Querying and Updating with SPARQL 1.1 published by O'Reilly Media. For a more technical overview of SPARQL, visit W3C's SPARQL 1.1 Overview document.

Last updated on 4/2/2020 by Anton Vasetenkov.