Jena 5.3.0 has changes in the structure of the Fuseki server, a new IRI
provider, together with a lot of clearup and simplification of Jena's
use of Apache Xerces. RDF 1.2 is ready but not merged.
Please provide feedback about Fuseki.
All issues in the release:
https://s.apache.org/jena-5.3.0-issues
Jena 5.2.0 was 2024-10-15
==== Contributions
@Ostrzyciel has contributed several test cases for initialization in
Datatypes:
https://github.com/apache/jena/issues/2797
JenaSystem.init deadlock
https://github.com/apache/jena/issues/2787
TypeMapper.getSafeTypeByName race condition
https://github.com/apache/jena/issues/2795
and also cleaning up of Jena's use of Apache Xerces-derived code for RDF
datatypes:
https://github.com/apache/jena/issues/2828
PRs:
GH-2828: Remove unused code in ext.xerces
https://github.com/apache/jena/pulls/2906
GH-2828: Remove validation for XML-only datatypes
https://github.com/apache/jena/pulls/2846
GH-2797: Lazy init for ValidationState hash maps
https://github.com/apache/jena/pulls/2798
@OyvindLGjesdal
Improve jena-text build (java21->)
https://github.com/apache/jena/pull/2782
@Aklakan
Support for Timeouts on Updates
https://github.com/apache/jena/issues/2821
Committers with PRs: rvesse, sszuev, kinow, arne-bdt, afs
and not forgetting @dependabot
==== Fuseki
The artifact jena-fuseki-main, which was the UI-less embedded simple
server, now has equivalent functionality, including UI, to the
Fuseki/webapp packaging.
The artifact jena-fuseki-server packages jena-fuseki-main with
dependencies and UI files into a single jar.
Please provide feedback!
It should be a drop-in replacement.
You can get the combined jar file jena-fuseki-server or use
jena-fuseki-main as a maven dependency.
The development download apache-jena-fuseki now packages this setup.
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-fuseki-server/5.3.0-SNAPSHOT/
https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/5.3.0-SNAPSHOT/
build 41 or later - at the bottom of the list
(Thu Jan 02 15:18:41 UTC 2025)
There is no functionality added or removed; it is a better base for
future development.
Fuseki/webapp packaging for the WAR file which will continue to be
produced but may not get all future Fuseki development features.
==== IRI3986
Issue: https://github.com/apache/jena/issues/2800
New maven artifact and jar: jena-iri3986.
This adds a new IRI parser and checker. It is the long term replacement
jena-iri.
"Bad syntax", that is, not passing the grammar of RFC 3986 is treated as
a parse error. Violations of scheme-specific rules are warnings.
This is the same as principle as Jena has had, but the parser/checker is
up-to-date with RFCs, and addressed some corner cases fixed. URNs are
better handled.
jena-iri3986 supports URI scheme-specific rules for the latest RFCs for:
http:, https:, did:, file:,
urn:, (including urn:uuid:, urn:oid:),
example:
and non-standard schemes
uuid: and oid:
This new IRI implementation is not active by default.
It is activated by setting the environment variable
JENA_IRIPROVIDER=IRI3986
(the existing jena-iri provider is called IRI0).
This can also be set via a system property when starting the JVM
-Djena.iriprovider=IRI3986, or set in code and calling
SystemIRIx.reset() (any existing IRIx are not affected).
On the command line, try it out with
env JENA_IRIPROVIDER=IRI3986 riot MyInterestingData.ttl
Please provide feedback. The intention is to make this the default IRI
provider at a convenient moment.
==== RDF 1.2
The standardization of RDF 1.2 has not finished yet.
The WG will likely be making further changes.
A PR is ready, the Turtle output is complete and valid for RDF 1.2 but
it is missing pretty printing using some of the new Turtle syntactic sugar.
There is an implementation of the current syntax additions and SPARQL
execution.
Jena 5.x as release currently has some support for the RDF-star CG but
this is changing for RDF 1.2.
Everything RDF 1.1 and SPARQL 1.1 continues to work.
If there is sufficient interest, we might consider including it with a
label of "experimental" - that is, subject to change - so users can try
out RDF 1.2.
It should have no impact to RDF-1.1 data or usage.