ARQ - Extending Query Execution

There are a number of ways of extending query execution. This page describes how to interface ARQ to data which requires an alternative is not in a Jena graph.

Property functions provide the most convenient way of adding custom code to the graph matching process for specific predicates.  The free text search capabilities, using Lucene, are done this way.

To replace several or all triple patterns in a SPARQL basic graph pattern (BGP) matching in a query, an application can enhance the main query engine and intercept the BGP matching process.

This page describes how to interface ARQ to data which requires an alternative matching for the BGP

Basic Graph Pattern matching

BGP matching proceeds a number of "stages".  Each stage matches a subset of the basic graph pattern.

@@Standard : break into plain BGP/ property function.  Optimize each plain BGP

 

The normal BGP matching is a single stage that finds all bindings for variables for a pattern.

@@stages

The query optimizer prefers execution plans that pass the results from previous patterns into later stages. This enables maximal indexing of pattern matching.

@@Somewhere: Bindings / Query Iterators

Query optimization, input  and substitution

ARQ Documentation Page