ChangeLog for ARQ ================= ARQ 2.1 ------- + (experimental for this release - permanent in next) GROUP BY, HAVING Aggregates: count(*), count(?x), count(distinct *), count(distinct ?x) + (experimental for this release - permanent in next) Expressions in SELECT clause Expression in brackets, optionally named with "AS ?var" Adding an explict namne is strongly encouraged especially if you use the SPARQL results format because internal variables variable names are not portable. SELECT (?x+?y AS ?z) ?y ?x SELECT ?x ?y (?x+?y AS ?sum) # Print a table of sums OpProject can have additional expressions that get added into the table from 'project' + removed old-style (and out-of-date) writers for internal forms: prefix, plain and XML forms of a SPARQL query. The XML form was incomplete anyway. (This does not affect algebra output which is what replaces these syntax-based forms). + Added examples of using Lisp (SISC - A Java-based scheme interpreter). See the directory Lisp/. + NodeVar renamed ExprVar (more consistent naming) Deprecated tombstones left for next release ARQ 2.1 beta ------------ + Cost-based optimizer for basic graph patterns on in-memory graphs. ** Uses the version of jena shipped with this release, can't use an earlier one. + Convert algebra expressions back into a SPARQL query (see OpToSyntax). + Old "NodeToLabelMap" => "NodeIsomorphismMap" Affects Element and Op ".equalTo" operation signature. + Added extension : a graph pattern SERVICE { pattern } ARQ syntax only. New algebra operation: OpService + Added SSE to the main codebase : http://jena.hpl.hp.com/wiki/SSE + Internal changes: the core engines are now Graph/DatasetGraph/Algebra-centric and there are classes to map betwen that and the Model/Dataset. QueryEngine construction and extension need not know about the upper layers now. + Algebra operator implment .hashCode() and .equals() based on structure/value equality + Legacy query engine1 removed. + Add new algebra operations OpGroupAgg, OpNull + VarsMentionedVisitor removed - convert to an algebra expression and use OpVars.allVars instead. ARQ 2.0 ------- This version uses the SPARQL algebra directly, then produces an execution scheme that uses streaming execution where possible. + SPARQL changes + Prefixed names can now start with a digit. ex:123 is now a legal prefix name. + The working group has removed attributes "ordered" and "distinct" from the XML Results format. These have been removed in this release. ARQ will read old style XML files (and ignore the attributes). JSON result format also updated. + Multiple query engines: + Main query engine for optimization and efficient execution + Reference engine for checking functionality (implements the SPARQL evaluation semantics very simply for clarity and validation) + Remote access engine for querying SPARQL endpoints over HTTP. + Engine1, for exact ARQ1 semantics and enhancements (deprecated for new applications (and will be removed sometime)) + RDQL engine + See also SDB - an ARQ query engine that for RDF stored in SQL databases + Access and extension points: + Filter functions + Property functions + The parsed syntax + Generation of the SPARQL algebra expression + Modification of SPARQL algebra expression before executin plan generation + Custom algebra operations + Basic graph pattern replacement or modification for access to other data sources + Modular query engine class hierarchy for reuse of machinary, resulting in less extra coding for extensions. + Internal changes + Package reorganisation Implemnentation in com.hp.hpl.jena.sparql + Filter functions now take a Context, not an ExecutionContext. + Deprecate "EXT" form from ARQ. (Property functions are better) + Experimental SPARQL/Update API See http://jena.hpl.hp.com/~afs/SPARQL-Update.html Post ARQ-2.0-beta: + Added REDUCED as per DAWG decision 2007-03-20 + OpDistinct and OpReduce no longer take a variable list + Removed ElementExtension/PlanExtension and extension package The ARQ(beyond SPARQL feature) of "EXT" has been removed. Element visitors may be affected. + Added an update API + LARQ + added access to the match score + added limits on score or number of results as part of Lucene search