There are new releases of Jena and ARQ:
http://prdownloads.sourceforge.net/jena/Jena-2.5.4.zip
http://prdownloads.sourceforge.net/jena/ARQ-2.1.zip
This is a co-ordinated release because this version of Jena introduces
some low-level features that work with ARQ query planning to optimize
the performance of large in-memory graph query.
The versions of ARQ in the Jena download and version of Jena in the ARQ
download are sync'ed to these releases. You only need download one of
them to get both new versions.
New in ARQ 2.1
* Cost-based Optimizer
* GROUP BY
* Counting
* SERVICE - call-out to another query service
* Expressions in the SELECT clause
==== Jena 2.5.4
Graph
o Statistics can be exposed by graph implementations
through the StatisticsHandler interface.
o Access to the graph-level pattern for query handlers to make
alternative graph implementations simpler.
Assemblers
o ContentAssembler now respects the fileManager
property for external content.
N3 & Turtle Writer
o Correct writing nested bnodes with no properties to make strict
Turtle.
o No longer automatically add default namespace prefix.
Reasoners
o Added rebindAll() to FBRuleInfGraph
o Extended OWLMini/full to include validation of maxCardinality(1)
over individuals
o The (forward) deductions model is now preserved across rebind()
operations
so that listeners on deductions models are safe
o added now(?x) builtin to return the current xsd:dateTime
==== 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.
== 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 <serviceEndPoint> { 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
This version of 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 about ARQ
Comments and questions about ARQ to the Jena mailing list
jena-dev@...
General questions and comments on SPARQL to jena-dev or
public-sparql-dev@...
Formal comments specific to the SPARQL query language,
protocol or result set documents to:
public-rdf-dawg-comments@...