The Intersector
To get from the Token Tree generated by te GUI to the Execution Tree the
following tasks have to be done done:
-
Translate the Token Tree into an Query Tree
-
Translate the Query Tree into an Execution Tree
-
Intersect the Sky and Flux Domains involved with the Index to get the IndexIntersections
for each Domain
-
Estimate the cost of the query and generate a feedback information.
These are the classes involved in the construction of the Translator:
-
Query Tree QT
-
Predicate Tree PT
-
Domain Classes
-
Intersection and IndexISect Class
-
Execution Tree XT
The hierarchy among these is in the order QT > PT > Domain,
i.e. the leaves of the QT are Predicates and the leaves of the PT are (also)
Domains. The Intersection class (which contains 4 IndexISect data members)
is a data member of the QT leaf node. At the translation, the XT should
be optimized for execution time based on the Engine's and the particular
hardware's behaviour. The cost of the query is calculated and returned
to the user for acknowledgement. The overall concept is as follows: