(Don't rely on this list being complete!) + Sort by property URI in rdfs:member + Either add post \u check in fixupPrefix and createVariable or do \u on input (depending on where SPARQL goes). + Document API (more) Document symbols Document PF's More documentation about writing extensions + Documentation + Describe interactions of transactions and query. + Document making and using datasets + Documentation for the parameter mechanism. And the parameters "advanced usage" + Merge .query.resultset.ResultSetFormat and arq.cmd.ResultFormat rename as query.resultset.ResultSetFormat => query.ResultsFormat (Partly done) + Need to be able to set options from the environment or the command line. ARQOPTS="Symbol/value,Symbol/value,..." Or symbol in the environment. arq.=true/false + E_Function always uses FunctionRegistry.get() + Swap to new IRI code + qtest + named graph input for qtest + manifest to command line? + Apps + dbquery + assembler datasets + QCmd ==> ACmd using assemblers (WorkSpace/ACmd) + TestManifestX property: plainGraphTest, valueSameAsTest etc as subclasses of QueryTest. tricky as affects reading results and external datasets so must be per-test and tests don't have contexts. + rset to handle boolean "result sets" + Two jars - arq.jar and arq-test.jar + Implement a binary result format : http://lists.w3.org/Archives/Public/public-rdf-dawg/2005OctDec/0131 reader and writer + rset support + Implement (or "obtain") a JSON output serialzier Will need better HTTP negotiation to tie HTTP content-type to serializer. + CONSTRUCT * where no graph + Property paths + Magic Properties + Done for lists and rdfs:member. + Important special case : transitive properties. + ext :trans(?s, URI, ?o) -- see extension Trans() + list:member with unbound list? + "util" split into "util" and "shared" + Command-line setting of config properties. + Documentation Alternative syntactic forms (N3 like stuff) / tutorial app_api.html needs reviewing - rest of non-tutorial documentation + Expressions in SELECT clause SELECT (?x := ?x*?y ) SELECT (?x*?y) AS ?z SELECT (?z = ?x*?y) SELECT lang(?z) AS ?z SELECT ((?x*?y) AS ?z) SELECT expr((?x*?y) AS ?z) + Long term : the need for testing for two of a thing (validation) and non-existances e.g. Find " :p 1 ; :p 2 ." + Commands to accept windows path names "\" + TestItem Split into the core elements of a test and the (delayed) construction (URIs to graphs) c.f. command line support + SPI javadoc for extensions + testing/ARQ/ExprDatatypes has poor coverage (or is mis-named!) + Tests + Utility to find duplicate tests (hash the query) + ARQ/General - organise + Library and extension tests + Printing tests - syntax tests + equality round tripping - done in qparse TestSerialization NodeValue.asNode() tests + Test XML result sets + qtest and http: test sets. + Core [low] Consider ElementBasePattern (again) = List Better to enhance ElementGroup to auto allocate ElementBasePattern when addTriple used May break parse tree rewrite + FOAF:person describe handler + build.xml rework Check dist/ tree javadoc-all to website Jena build : include bin and bat/ files from ARQ + ResultSet + package.html(?) for all the formatters. + Tidy up TextOutput for reuse. + XML results: process xml:lang on other elements than just Documentation for XML result set processing + Extensions and library Set operations Exists, in, all, difference (need graph patterns?). Generalize extensions: -- All extensions EXT [ :qname{pattern}() ] EXT [ :qname(){pattern} {pattern} ... ] // Set difference, exists EXT {pattern} :qname() -- All required / is :qname after/before? EXT :qname({pattern}|Expression, ....) + Sharing utility code with Joseki Convert: HttpContentType; check for others + Serialization + Need to take into account subject width across multiple chunks + One-conneced bNodes + Lists + Expressions - outer level does not need () - also SortCondition + SPARQL/X (via DOM/JDOM) and SPARQL/R + System + Need to ensure models are loaded once (per query execution - and wider) + Integrate a meta-model (GRAPH SYSTEM or similar design)