Type-ARQuE project page

Type-ARQuE (Type-inferring AQL-based Resource Query Engine) is an experimental SPARQL-to-SQL query compiler. It is written mainly to demonstrate the use of an intermediate language (AQL) as a part of the translation process, and the related benefits such as the possibility to perform low-level optimizations.

The translation process is divided into three stages:

  1. SPARQL-to-AQL — Parses and translates an SPARQL query into AQL. The only fancy trick here is variable elimination, as SPARQL queries may contain variables but AQL queries do not. Basically, SPARQL variables are translated into AQL triple access expressions, but special care needs to be taken when there are alternative variable binders in a query.
  2. AQL transformations — These transformations prepare the AQL for translation to SQL. For example, some of the passes make the AQL easier to translate and some optimize the query. The latter passes lower the AQL by e.g. translating AQL access expressions to SQL access expressions for a specific repository layout. Type inference is also performed here.
  3. AQL-to-SQL — Translates the lowered AQL into SQL. This is very straightforward.

For detailed information on the translation, run some SPARQL queries with Type-ARQuE. See README.txt in the source package for compilation and usage howto.


Translation examples

Contact info