==== Announcing 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 termininology 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 avilable 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/ == 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. == Changes to applications The function library and property function libary 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