Created at: Tue, May 8, 2007 at 1:45 PM (Delivered after 783 seconds)
From: "Seaborne, Andy"
To: jena-dev@yahoogroups.com
Subject: [jena-dev] ANN: ARQ 2.0

==== ARQ 2.0

ARQ 2.0 is a complete implementation of SPARQL including
support for custom filter function, property functions
and free text search.

This release also includes a first implementation of the
SPARQL/Update language. The API for this is not yet stable;
suggestions and feedback on it's utility most welcome.

ARQ 2.0 provides the same external API as ARQ 1.5. Internally,
query execution follows the SPARQL algebra, in development by
the RDF Data Access Working Group. There has been significant
reorganisation and renaming of implementation code to align with
terminology of the SPARQL specification.

This version also makes it easier to reuse and extend ARQ.
ARQ can also be used just as a SPARQL parser, as a SPARQL algebra
generator or as a basis for specialised query engines.

As well as custom functions and custom property functions, the
SPARQL algebra can be extended with new operators. There is a
new internal language for reading and writing algebra expressions
directly, allowing experimentation in query optimization or query
features not available in SPARQL currently.

Download:
http://prdownloads.sourceforge.net/jena/ARQ-2.0.zip

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/

== New features

Two new features in this release:

1/ A first cut at a SPARQL/Update API in "com.hp.hpl.jena.update"
This API is not considered stable. Your comments will be gratefully
received.
There is code to read and write SPARQL/Update requests.
It should meet the latest
http://jena.hpl.hp.com/~afs/SPARQL-Update.html
which has had a couple of grammar tweaks applied (version 2).

2/ Additonal control for queries with ARQ/Lucene (LARQ)
Can now get back the hit score for each match
Can now specify limits on scoring and/or hit count just for the
Lucene match.

e.g. all these propert function calls work:

?literal pf:textMatch '+text' .
(?literal ?score) pf:textMatch '+text' .
(?literal ?score) pf:textMatch ('+text' 0.5) .
(?literal ?score) pf:textMatch ('+text' 1000 0.5) .

Either or both of the Lucene limits can be supplied.

== Changes to SPARQL

There are changes to the correct results from SPARQL queries in
this release to reflect the new SPARQL algebra:

+ {} form scoping delimiters
+ { FILTER(?v > 3) :z : p ?v } is the same as
{ :z : p ?v FILTER(?v > 3) }
{ :z : p ?v { FILTER (?v > 3) } }
+ Variables outside the group are not in scope.
{ :z : p ?v { FILTER (?v > 3) } } has no solutions.
Any extraneous {} around FILTERs may cause different results.
+ Results from corner cases of doubly nested OPTIONALs change.
+ Increased characters in prefixed names - leading digits in the local
part.

== Changes to applications

The function library and property function library have both moved:
The correct base URIs are now:
Functions: http://jena.hpl.hp.com/ARQ/function#
Property functions: http://jena.hpl.hp.com/ARQ/property#

These are the perferred prefix URIs.

The code now resides in packages
"com.hp.hpl.jena.sparql.function.library" and
"com.hp.hpl.jena.sparql.pfunction.library". Old URIs using the old
package
name and "java:" should work because there is a redirection left
in-place.

== Other Enhancements

Preliminary support for SPARQL/Update. (The API is unstable.)

The Lucene-index property function (LARQ) now includes:
+ access to the matching score
+ limits, by score and by number of Lucene matches

== Status

The implementation of SPARQL is complete and meets the
SPARQL current editors' working draft and Last Call design.

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

Several query engines are available:

+ 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.
+ The query engine from ARQ1, for exact ARQ1 semantics and to assist
in migration (deprecated for new applications, it and will be
removed
sometime
+ RDQL engine

Not in ARQ 2.0:

Extensions beyond the SPARQL syntax: UNSAID and EXT.
OPTIONAL/!bound queries are support.

More details in ChangeLog.txt

== Services

SPARQL 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 docuemnts to:
public-rdf-dawg-comments@w3.org