SPARQL¶
What’s in this document?
What is SPARQL?¶
SPARQL is a SQL-like query language for RDF data. SPARQL queries can produce result sets that are tabular or RDF graphs depending on the kind of query used.
SELECT
is similar to the SQL SELECT in that it produces tabular result sets.CONSTRUCT
creates a new RDF graph based on query results.ASK
returns Yes or No depending on whether the query has a solution.DESCRIBE
returns the RDF graph data about a resource. This is, of course, useful when the query client does not know the structure of the RDF data in the data source.INSERT
adds triples to a graph,DELETE
removes triples from a graph.
Let’s use SPARQL, the query language for RDF graphs, to create a graph. To write the SPARQL query that creates an RDF graph, perform these steps:
First, define prefixes to URIs with the PREFIX
keyword. In the example below,
we set bedrock
as the default namespace for the query.
Next, use INSERT DATA
to signify you want to insert statements.
Write the subject predicate object statements.
Finally, execute this query:

As you can see in the example shown in the gray box, we wrote a query which included PREFIX
,
INSERT DATA
, and several subject predicate object statements, which are:
Fred has spouse Wilma, Fred has child Pebbles, Wilma has child Pebbles, Pebbles has spouse Bamm-Bamm, and Pebbles has children Roxy and Chip.
Now, let’s write a SPARQL query to access the RDF graph you just created.
First, define prefixes to URIs with the PREFIX
keyword. As in the earlier example, we set
bedrock
as the default namespace for the query.
Next, use SELECT
to signify you want to select certain information, and WHERE
to signify
your conditions, restrictions, and filters.
Finally, execute this query:

As you can see in this example shown in the gray box, we wrote a SPARQL query which included
PREFIX
, SELECT
, and WHERE
. The red box displays the information which is returned
in response to the written query. We can see the familial relationships between Fred,
Pebbles, Wilma, Roxy, and Chip.
SPARQL is quite similar to SQL, however, unlike SQL which requires SQL schema and data in SQL tables, SPARQL can be used on graphs and does not need a schema to be defined initially.
In the following example, we will use SPARQL to find out if Fred has any grandchildren.
First, define prefixes to URIs with the PREFIX
keyword.
Next, we use ASK
to discover whether Fred has a grandchild, and WHERE
to signify the conditions.

As you can see in the query in the green box, Fred’s children’s children are his grandchildren.
Thus the query is easily written in SPARQL by matching Fred’s children and then matching his
children’s children. The ASK
query returns “Yes” so we know Fred has grandchildren.
If instead we want a list of Fred’s grandchildren we can change the ASK
query to a SELECT
one:

The query results, reflected in the red box, tell us that Fred’s grandchildren are Roxy and Chip.
Using SPARQL in GraphDB¶
The easiest way to execute SPARQL queries in GraphDB is by using the GraphDB Workbench. Just choose SPARQL from the navigation bar, enter your query and hit Run, as shown in this example:

See also¶
You can also watch the video from GraphDB Fundamentals Module 2: