||An interface for classes that take a query plan (DNF vector) from
a top-level NodeLogical) and break it down into conditions and
phrases representing disjunctions of conditions, which can then
be distributed across multiple sub-queries without destroying the
sense of the original query.
||An interface for classes that distribute minimal conditions
(gleaned from a query) across new subqueries (SimpleQueries).
||An interface for classes that take a list of variable declarations
and provide a preferred ordering for them based on properties of the variables
and/or their types.
||An interface for a class that accepts a query plan and
can rewrite the contents according to a set of rewriting rules
or heuristics, and also rewrite the results to match the form
expected by the provider of the original query.
||A utility class providing constants for use across the rewriter package.
||This class provides a template algorithm for the condition distribution process,
implementing the features that should be common to any rewriting, while leaving
as abstract the core distribution algorithm, which provides a solution to the
constraint-satisfaction problem of distributing the remaining conditions.
||A class encapsulating details about a variable which is to be declared in a suitable
SimpleQuery during a query rewrite.
||This implementation of ConditionAtomiser uses information internal to the NodeLogical
in order to infer the points at which the constituent conditions of the query plan may
be broken up.
||This implementation first creates skeleton subqueries without conditions, for any undeclared variables;
orders them by the summed frequencies of the variables declared in each; then distributes the remaining
conditions by placing them as early as possible in the sequence of subqueries.
||This implementation of DeclarationOrderingScheme uses corpus statistics
concerning the frequency of declared types to calculate scores for declarations.
||The default implementation of the QueryRewriter, implementing our first guess at a set of
||A class encapsulating details about a condition (NodeLogical or NodeCondition)
which is to be assigned to a new SimpleQuery during a query rewrite.
||A class which creates SimpleQueries from DeclarableVariables and MinimalConditions.
||A class recording the information which will eventually be used to create a subquery Node
for the new query.