Working with constraints DBpedia's SPARQL endpoint MaxSortedTopRows Limits via LIMIT & OFFSET
The DBpedia SPARQL endpoint is configured with the following INI setting:
MaxSortedTopRows = 40000
The setting above sets a threshold for sorted rows. Thus, when using basic SPARQL queries that include OFFSET and LIMIT the following query will still exist the hard limit set in the INI:
DEFINE sql:big-data-const 0
SELECT DISTINCT ?p ?s
FROM <http://dbpedia.org>
WHERE
{
?s ?p <http://dbpedia.org/resource/Germany>
}
ORDER BY ASC(?p)
OFFSET 40000
LIMIT 1000
returns the following error on execution:
HttpException: 500 SPARQL Request Failed Virtuoso 22023 Error SR353: Sorted TOP clause specifies more then 41000 rows to sort. Only 40000 are allowed. Either decrease the offset and/or row count or use a scrollable cursor
To prevent the problem outlined above you can leverage the use of subqueries which make better use of temporary storage associated with this kind of quest. An example would take the form:
SELECT ?p ?s
WHERE
{
{
SELECT DISTINCT ?p ?s
FROM <http://dbpedia.org>
WHERE
{
?s ?p <http://dbpedia.org/resource/Germany>
} ORDER BY ASC(?p)
}
}
OFFSET 50000
LIMIT 1000