Skip to main content

SPARQL support

What the SPARQL endpoint supports, how closely it follows the W3C SPARQL 1.1 standard, and where it differs.

Supported​

Query formsSELECT, ASK, CONSTRUCT, DESCRIBE
Query featuresall of SPARQL 1.1 query except what is listed below: OPTIONAL, UNION, MINUS, FILTER [NOT] EXISTS, property paths, aggregates with GROUP BY and HAVING, sub-queries, BIND, VALUES, and the built-in functions
ProtocolSPARQL 1.1 Protocol query operation: GET, and POST with a form or a query body
ResultsSPARQL 1.1 JSON, XML, CSV and TSV results; RDF in Turtle, JSON-LD, N-Triples, RDF/XML and other formats

Not supported​

FeatureWhat happens
SPARQL Updaterefused with 422
Federated queries (SERVICE)refused with 422
Named graphs (GRAPH, FROM, FROM NAMED)accepted, but match nothing: the data is in the default graph
More than 1,000 rows or statementsthe answer stops at 1,000, without notice

W3C conformance​

The endpoint is tested against the W3C SPARQL 1.1 test suite on every build. Of the 232 read-only tests in the query and results suites:

Tests
Not run, because they need named graphs16
Run216
Passed215 (99.5%)
Passed, out of all 23292.7%

The one test that fails is BNODE(str). BNODE("x") should create a new blank node in each solution, but the endpoint returns the same blank node in all of them.

Limits​

LimitValue
Query length20,000 characters (2,000 with GET)
Rows or statements per answer1,000
Time per query10 seconds

A query that would read too much of the graph is refused with 422. Name a type or an IRI in the query to keep it small.