How are we doing for a Jena 2.10.0 release?
I think we're ready to start pre-release testing with the user community
in advance of the formal release? This is not a purely incremental
release and it would be good to remove any unnecessary disruption that
the changes cause.
I have put some draft text together (see below) for the testing cycle.
This includes some thing about /Experimental to let people see what's
also going on.
Rob - any feedback from your early testing work?
Stephan - I put in some text about update+streaming but if you want to
put some more in to pick out the key details, then please do so.
RIOT Status:
RIOT/readers:
RIOT - jena is not automatically initializing RIOT readers into
model.read currently; it only happens if ARQ initializes or RIOT.init is
explicitly called. May be doable for the release but I prefer to be
quite sure automatic initialization is stable for all ways to use Jena.
RIOT/writers:
The new code is not completely ready yet. It need more tests and tidying
up. The documentation needs writing.
I don't think waiting on this is a reason to hold the 2.10 release up.
If it is in good shape by the release proper, it could go in without it
wiring itself into model.write so it is only used when calling the new:
RDFWriterMgr.write(model, format)
so if you use it, you get the new code, but existing code continues with
the old writers.
Other:
Are there any contributed patches we should try to get in? I know of
one (JENA-228). Any others?
Have I forgotten anything else?
Andy
-----------------
**** DRAFT ****
Testing cycle announcement text:
== apache-jena-libs
There is a new maven artifact to help applications by providing a single
maven artifact that include the main Jena modules.
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>2.10.0</version>
</dependency>
Note the use of <type>pom</type>
BY using this artifact, applications will not be affected by any changes
to the internal development module structure of Jena.
See
http://jena.staging.apache.org/download/maven.html
== RIOT Reader
There is a new RDF parser subsystem, which includes
* improved content negotiation
* the ability to register new parsers into Jena
* alignment to RDF 1.1 Turtle
* these features apply when applications use model.read
http://jena.apache.org/documentation/io/index.html
The package name org.openjena.riot becomes org.apache.jena.riot.
There is some compatibility code in org.openjena.riot. Operations are
deprecated and will be removed after this release.
Call
org.apache.jena.riot.RIOT.init()
to ensure it is initialized.
(An automatic initialization inside Jena risks class init loops - we
will add automatic initialization in Jena 2.10.0 only if we can ensure
stability)
== Streaming Update
The SPARQL Update engine has been re-architected to make the fundamental
execution of SPARQL Updates streamable.
There is no change to applications using SPARQL Update.
There are changes to the interface for storage systems that make special
provision for SPARQL Update. If you are migrating such a storage system,
do talk to the developers on dev@jena.apache.org if you have any
questions or sugegstiosn for improvements.
== Portuguese Translations of the tutorial
Guilherme Cavalcanti has provided a Portuguese translation of the tutorials.
http://jena.staging.apache.org/tutorials/
== Reification
As part of simplifying Jena, the reification styles Convenient and
Minimal are being removed. These need a significant amount of internal
state management and impede scaling beyond storage in memory.
The only support style is "standard", which as always been the default
style in Jena. Only style "standard" has even been supported by TDB and
SDB.
Use of the constants for these styles is deprecated and will be treated
as "standard".
== Internal simplification
Other simplifications in this release include the removal of the graph
query handler subsystem. This is unrelated to SPARQL and existed in
support of RDQL.
The graph level bulk query handler has been removed - compatibility for
the Model API for all bulk update is maintained.
== Other interesting things
[ Not for the announcement@ message ]
There is an "experimental" area in Jena SVN where some new features are
being tried out. There is no commitment to these features becoming part
of trunk but you are welcome to browse and contribute to these developments.
https://svn.apache.org/repos/asf/jena/Experimental/
* jena-client
new interface to SPARQL services
* riot-output
These are new writers to go into RIOT, including Trig and an extensible
registry of writers.
* sparql-cache
a HTTP cache for SPARQL queries that caches query results and can also
deal with repeated use of limit/offset to mimic paging and represent
results in different formats without reissuing the query.
* cancellable-updates
An experiment into extending the query time mechanism to the SPARQL
Update code.