- compilation phase
- analysis of the query
- optimizations based on the control flow
- optimizations based on the underlying input ontologies
- optimizations based on the underlying result ontology
- optimizations based on the current data set: caching of partial or complete results
- optimizations of the data set and the organisation of data sets
- establishing an evaluation context (its like a database handle)
- string encoding
- extension packages defined via namespace associations (like exslt or tablibs)
- keep local topic identifiers stable while in an evaluation context?
- resource limit allocation (limits on CPU, memory, ...)?
- executing a query
- this is actually like calling a function
- parameters are passed in via key/value associations
- blocking vs. non-blocking interface: is purely an API issue (future functions)