Passage's Homepage
Engine: SPARQL query execution with continuations.
First and foremost, Passage is a regular SPARQL query engine. It takes SPARQL queries as input, and returns result mappings as output.
However, contrarily to other SPARQL engines, Passage does not simply abort its query execution when it reaches its timeout threshold: It returns the partial results of the executed query, along with a continuation query that allows for retrieving the missing results if any [1].
Enabling pausing at any time requires the use of specific physical operators. Physical operators that do not require a large state to restart from where it paused. For instance, if we oversimplify the execution of a triple pattern, it returns the elements of a list; resuming its execution only consists in jumping to the offset where it paused.
Core SPARQL
For the first release, we focused on a subset of SPARQL operators called core SPARQL [2], comprising triple/quad patterns, basic graph patterns, joins, unions, filters, and optionals.
Operator | Support | Comment |
tp/qp | 0.0.1 |
|
Join | 0.0.1 |
Nested loop join and mapping at a time. |
BGP | 0.0.1 |
BGPs are transformed in a series of joined tp/qp. |
Union | 0.0.1 |
|
Values | 0.0.1 |
|
Filter | 0.0.1 |
Contributing
But the principle of continuation queries goes beyond these operators. For instance, we already know that a subset of aggregation queries allow continuation…
plus a SPARQL continuation query as output metadata, to resume the query execution if it has been stopped.