• 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)