(Don't rely on this list being complete!) --------------------------------------------------------- + Needed for a first proper release Documentation --------------------------------------------------------- + API & SPI + Substitution into query: remove tests, replace by CONSTRUCT test + Web Site Mechanism / production + Parsers + One subclass of Query per language? + Rework grammars to be tidier + Version of RDQL for this query engine "USING" via a fixup list. + Query prepare + Check for groups of one and remove? + Core + DESCRIBE handler framework (c.f. Joseki/fetch) + Creation of bNodes in CONSTRUCT ("_:a" syntax) + Check use of initial iterator being null + Engine + Need to ensure models are loaded once (per query execution - and wider) + Integrate a meta-model (GRAPH SYSTEM or similar design) + Unparsing + Add a QueryVisitor and use this to print. + Need to add prefix mapping to Printable.format/.asInfixString/.asPrefixString and add to ExprPrintUtils. + adds an extra outer {} + IndentedLineBuffers to IndentedWriter in Query.unparse + "unparse" => "format"? + Evaluation + Reorg: use Bindings New root abstract type eval(Query, Binding) Subclasses usually implement the value *version* e.g ExprNode2: eval(left, right) [No Binding] Printable.format(Binding) + Printing URIs as qnames in expressions + Convert RDQL test suite to SPARQL + Query class : reorganise into methods-by-type (and maybe split). + Split out unparsers and parser wrappers.? + Split out Query.init so Query class is "pure"? + ARQ / language + Features (futures): SERVICE Precedence of UNION seems wrong? + Build Check dist/ tree + Repackage?? ...jena.query ...jena.query.core -- The AST, visitor pattern ...jena.query.exec -- Query execution interfaces ...jena.query.engine -- QueryEngine , bindings and iterators ...jena.query.format -- presentation ...jena.query.unparse ...jena.query.parse ...jena.query.parse.