  To provide stable and responsive public SPARQL query services, data providers
enforce quotas on server usage. Queries which exceed these quotas are
interrupted and deliver partial results. Such interruption is not an issue if
it is possible to resume queries execution afterward. Unfortunately, there is
no preemption model for the Web that allows for suspending and resuming SPARQL
queries. In this paper, we propose SaGe: a SPARQL query engine based on Web
preemption. SaGe allows SPARQL queries to be suspended by the Web server after
a fixed time quantum and resumed upon client request. Web preemption is
tractable only if its cost in time is negligible compared to the time quantum.
The challenge is to support the full SPARQL query language while keeping the
cost of preemption negligible. Experimental results demonstrate that SaGe
outperforms existing SPARQL query processing approaches by several orders of
magnitude in term of the average total query execution time and the time for
first results.
