==== ARQ 2.1 ARQ 2.1 is a complete implementation of SPARQL including support for custom filter function, property functions and free text search. It also provides an update language based on SPARQL. == New in ARQ 2.1 * Cost-based Optimizer * GROUP BY * Counting * SERVICE - call-out to another query service * Expressions in the SELECT clause == Cost-based Optimizer The ARQ-2.1 release includes a static cost-based optimizer for Basic Graph Patterns for in-memory models. The optimizer uses heuristics to estimate the execution cost of triple patterns and reorders the patterns of a BGP according to their estimated costs. The optimizer is enabled by default in ARQ but may be disabled if this should be required. Please refer to the documentation for further information. http://jena.sourceforge.net/ARQ/bgp-optimization.html == GROUP BY Support for GROUP BY in SELECT queries. This groups pattern solutions by common variables, and applies aggregate functions to the solutiosn with common group variables. Counting is provided as an aggregate function. A HAVING clause allows a filer to be applied after the group operation == Counting Aggreggeate function over a GROUP BY query. Aggregate functiosn are uually name with AS using the syntax of SELECT expressions. Supported: count(*), count(?x), count(distinct *), count(distinct ?x) Examples: SELECT (count(*) AS ?count) { pattern } will return the number of matches of a pattern. SELECT ?p (count(?q) AS ?num_q) { ?x a :p . ?x :p ?p . ?x :q ?q . } GROUP BY ?p == Remote query support The ARQ query language, an extension of SPARQL, includes the ability to call a remote SPARQL service using the SERVICE form. SERVICE { pattern } The pattern is sent to and executed at the remote service. ARQ combines the results with the locally part of the query. The algebra supports a new operation, OpService, for this. Algebra expression can be turned back into SPARQL query syntax. == SELECT expressions Expressions, as well as plain variables, can be given in the SELECT clause. Example: SELECT (?x+?y AS ?z) Use of AS is not required but is strongly encouraged. == Links Download: http://prdownloads.sourceforge.net/jena/ARQ-2.1.zip Use jena.jar in this download - ARQ does not work with Jena.2.5.3 Home page: http://jena.sourceforge.net/ARQ/ ARQ is also available via anonymous SVN: https://jena.svn.sourceforge.net/svnroot/jena/ARQ/ SPARQL is described in: http://www.w3.org/TR/rdf-sparql-query/ SPARQL-Update is described in: http://jena.hpl.hp.com/~afs/SPARQL-Update.html == Status The implementation of SPARQL is complete and meets the SPARQL current editors' working draft and Candidate Recommendation. ARQ passes all the DAWG tests. Latest published: http://www.w3.org/TR/rdf-sparql-query/ Editors' working draft: http://www.w3.org/2001/sw/DataAccess/rq23/rq25.html Definition of SPARQL: http://www.w3.org/2001/sw/DataAccess/rq23/rq25.html#sparqlDefinition == Notes + The old ARQ-1 query engine "engine1" has been removed. == Online Services SPARQL syntax validator: http://www.sparql.org/validator.html SPARQL processor: http://www.sparql.org/sparql.html == Support and Questions Comments and questions about ARQ to the Jena mailing list jena-dev@groups.yahoo.com General questions and comments on SPARQL to jena-dev or public-sparql-dev@w3.org Formal comments specific to the SPARQL query language, protocol or result set documents to: public-rdf-dawg-comments@w3.org