28 Dec 2023 11:41:25 Andy Seaborne <andy@xxxxxxxxxx>:
    
   
   
    Jena5 is the next planned release for Apache Jena. 
    
    
     ** All issues for Jena5: 
    
    
     https://github.com/apache/jena/issues?q=is%3Aissue+label%3AJena5 
    
    
     ** Java Requirement 
    
    
     Java 17 or later is required. 
    
     Artifacts are Java17 bytecode. 
    
     Java 17 language constructs now are used in the codebase. 
    
    
     ** Term graphs 
    
    
     Graphs are now term graphs in the API or SPARQL. That is, they do not match "same value" for some of the java mapped datatypes. The model API already normalizes values written. 
    
    
     The default in-memory graphs become term graphs. 
    
    
     TDB1, TDB2 keep their value canonicalization during data loading. 
    
    
     A legacy value-graph implementation can be obtained from GraphMemFactory. 
    
    
     ** Language tags 
    
    
     Language tags become are case-insensitive unique. 
    
    
     "abc"@EN and "abc"@en are the same RDF term. 
    
    
     Internally, language tags are formatted using the algorithm of RFC 5646. 
    
    
     Examples "@en", "@en-GB", "@en-Latn-GB". 
    
    
     SPARQL LANG(?literal) will return a formatted language tag. 
    
    
     Data stored in TDB using language tags must be reloaded. 
    
    
     ** RRX - New RDF/XML parser 
    
    
     RRX is the default RDF/XML parser. It is a replacement for ARP. 
    
     RIOT uses RRX. 
    
    
     * daml:collection is not supported. 
    
     * Strict rdf:parseType 
    
     * Relative namespaces supported. 
    
    
     The ARP parser is still temporarily available for transition assistance. 
    
    
     ** Remove support for JSON-LD 1.0 
    
    
     JSON-LD 1.1, using Titanium-JSON-LD, is the supported version of JSON-LD. 
    
    
     https://github.com/filip26/titanium-json-ld 
    
    
     ** Turtle/Trig Output 
    
    
     "PREFIX" and "BASE" are output by default for Turtle and TriG output. 
    
    
    
     ==== API Users 
    
    
     ** Deprecation removal 
    
    
     There has been a general clearing out of deprecated functions, methods and classes. This includes deprecations in Jena 4.10.0 added to show code that is being removed in Jena5. 
    
    
     ** QueryExecutionFactory 
    
    
     QueryExecutionFactory is simplified to cover commons cases only; it becomes a way to call the general QueryExecution builders are full query execution setup. 
    
    
     Local execution builder: 
    
     QueryExecution.create()... 
    
    
     Remote execution builder: 
    
     QueryExecution.service(URL)... 
    
    
     ** QueryExecution variable substitution 
    
    
     Using "substitution", where the query is modified by replacing one or more variables by RDF terms, is now preferred to using "initial bindings", where query solutions include (var,value) pairs. 
    
    
     "substitution" is available for all queries, local and remote, not just local executions. 
    
    
    
     ==== Fuseki Users 
    
    
     Fuseki: Uses the jakarta namespace for servlets and Fuseki has been upgraded to use Eclipse Jetty12. 
    
    
     Apache Tomcat10 or later, is required for running the WAR file. 
    
     Tomcat 9 or earlier will not work.