You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by gi...@apache.org on 2023/04/10 09:18:15 UTC

[jena-site] branch asf-staging updated: Staged site from gh-jira (094f65a2dfd70946bfa8dc0610fe57054148f811)

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/jena-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 342875516 Staged site from gh-jira (094f65a2dfd70946bfa8dc0610fe57054148f811)
342875516 is described below

commit 34287551646e590035bc9da3b556000a1f12f86f
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Apr 10 09:18:06 2023 +0000

    Staged site from gh-jira (094f65a2dfd70946bfa8dc0610fe57054148f811)
---
 .hugo_build.lock                                   |    0
 content/about_jena.html                            |   10 +-
 content/about_jena/about.html                      |   12 +-
 content/about_jena/architecture.html               |   12 +-
 content/about_jena/citing.html                     |   14 +-
 content/about_jena/contributions.html              |   12 +-
 content/about_jena/index.html                      |   10 +-
 content/about_jena/index.xml                       |   16 +-
 content/about_jena/roadmap.html                    |   19 +-
 content/about_jena/security-advisories.html        |   10 +-
 content/about_jena/team.html                       |   12 +-
 content/documentation.html                         |   12 +-
 content/documentation/archive/csv/csv_index.html   |   10 +-
 content/documentation/archive/csv/design.html      |   12 +-
 content/documentation/archive/csv/get_started.html |   10 +-
 .../documentation/archive/csv/implementation.html  |   12 +-
 content/documentation/archive/csv/index.html       |   10 +-
 .../archive/eyeball/eyeball-getting-started.html   |   10 +-
 .../archive/eyeball/eyeball-guide.html             |   14 +-
 .../archive/eyeball/eyeball-manual.html            |   28 +-
 .../documentation/archive/hadoop/artifacts.html    |   12 +-
 content/documentation/archive/hadoop/common.html   |   12 +-
 content/documentation/archive/hadoop/demo.html     |   12 +-
 .../archive/hadoop/elephas_index.html              |   10 +-
 content/documentation/archive/hadoop/index.html    |   10 +-
 content/documentation/archive/hadoop/io.html       |   12 +-
 content/documentation/archive/hadoop/mapred.html   |   12 +-
 content/documentation/archive/larq/index.html      |   12 +-
 content/documentation/archive/sdb/commands.html    |   12 +-
 .../documentation/archive/sdb/configuration.html   |   12 +-
 .../archive/sdb/database_layouts.html              |   10 +-
 .../archive/sdb/databases_supported.html           |   10 +-
 .../archive/sdb/dataset_description.html           |   10 +-
 content/documentation/archive/sdb/db_notes.html    |   10 +-
 content/documentation/archive/sdb/faq.html         |   12 +-
 .../archive/sdb/fuseki_integration.html            |   10 +-
 content/documentation/archive/sdb/index.html       |   10 +-
 .../documentation/archive/sdb/installation.html    |   12 +-
 content/documentation/archive/sdb/javaapi.html     |   12 +-
 .../documentation/archive/sdb/loading_data.html    |   10 +-
 .../archive/sdb/loading_performance.html           |   10 +-
 .../archive/sdb/query_performance.html             |   10 +-
 content/documentation/archive/sdb/quickstart.html  |   12 +-
 content/documentation/archive/sdb/sdb_index.html   |   10 +-
 .../archive/sdb/store_description.html             |   10 +-
 .../archive/serving_data/fuseki1.html              |   12 +-
 .../archive/versions/http-auth-old.html            |   12 +-
 .../documentation/assembler/assembler-howto.html   |   14 +-
 content/documentation/assembler/index.html         |   10 +-
 .../documentation/assembler/inside-assemblers.html |   10 +-
 content/documentation/extras/index.html            |   10 +-
 .../documentation/extras/querybuilder/index.html   |   10 +-
 .../fuseki2/fuseki-config-endpoint.html            |   10 +-
 .../fuseki2/fuseki-configuration.html              |   23 +-
 .../fuseki2/fuseki-data-access-control.html        |   10 +-
 content/documentation/fuseki2/fuseki-docker.html   |   10 +-
 content/documentation/fuseki2/fuseki-embedded.html |   10 +-
 content/documentation/fuseki2/fuseki-layout.html   |   10 +-
 content/documentation/fuseki2/fuseki-logging.html  |   10 +-
 .../fuseki2/fuseki-main-security.html              |   10 +-
 content/documentation/fuseki2/fuseki-main.html     |   10 +-
 content/documentation/fuseki2/fuseki-modules.html  |  136 +--
 .../fuseki2/fuseki-old-config-endpoint.html        |   10 +-
 .../documentation/fuseki2/fuseki-quick-start.html  |   10 +-
 content/documentation/fuseki2/fuseki-security.html |   12 +-
 .../documentation/fuseki2/fuseki-server-info.html  |   10 +-
 .../fuseki2/fuseki-server-protocol.html            |   48 +-
 content/documentation/fuseki2/fuseki-webapp.html   |   22 +-
 content/documentation/fuseki2/index.html           |   12 +-
 .../fuseki2/rdf-sparql-standards.html              |   10 +-
 content/documentation/fuseki2/soh.html             |   12 +-
 .../geosparql/geosparql-assembler.html             |   30 +-
 .../documentation/geosparql/geosparql-fuseki.html  |   14 +-
 content/documentation/geosparql/index.html         |   37 +-
 content/documentation/index.html                   |   10 +-
 content/documentation/index.xml                    |  344 +++----
 content/documentation/inference/index.html         |   14 +-
 content/documentation/io/{arp => }/arp.html        |   26 +-
 content/documentation/io/{arp => }/arp_sax.html    |   20 +-
 .../documentation/io/{arp => }/arp_standalone.html |   20 +-
 content/documentation/io/index.html                |   12 +-
 content/documentation/io/json-ld-11.html           |   16 +-
 content/documentation/io/rdf-binary.html           |   16 +-
 content/documentation/io/rdf-input.html            |   12 +-
 content/documentation/io/rdf-output.html           |   20 +-
 content/documentation/io/rdfxml-input.html         |  412 --------
 content/documentation/io/rdfxml-io.html            |  310 ------
 content/documentation/io/rdfxml-output.html        |  483 ----------
 content/documentation/io/rdfxml_howto.html         |   18 +-
 content/documentation/io/streaming-io.html         |   10 +-
 content/documentation/io/trix.html                 |   26 +-
 content/documentation/javadoc.html                 |   12 +-
 content/documentation/jdbc/artifacts.html          |   12 +-
 content/documentation/jdbc/custom_driver.html      |   10 +-
 content/documentation/jdbc/drivers.html            |   12 +-
 content/documentation/jdbc/index.html              |   10 +-
 content/documentation/migrate_jena2_jena3.html     |   10 +-
 content/documentation/notes/concurrency-howto.html |   10 +-
 content/documentation/notes/datasetgraph.html      |   14 +-
 .../documentation/notes/event-handler-howto.html   |   10 +-
 content/documentation/notes/index.html             |   10 +-
 content/documentation/notes/iri.html               |   12 +-
 content/documentation/notes/jena-internals.html    |   18 +-
 content/documentation/notes/jena-repack.html       |   54 +-
 content/documentation/notes/model-factory.html     |   10 +-
 content/documentation/notes/rdf-frames.html        |   12 +-
 content/documentation/notes/reification.html       |   12 +-
 .../documentation/notes/reification_previous.html  |   10 +-
 content/documentation/notes/sse.html               |   12 +-
 content/documentation/notes/stream-manager.html    |   12 +-
 .../documentation/notes/system-initialization.html |   22 +-
 content/documentation/notes/typed-literals.html    |   10 +-
 content/documentation/ontology/index.html          |   16 +-
 content/documentation/ontology/toc-test.html       |   10 +-
 content/documentation/permissions/assembler.html   |   12 +-
 content/documentation/permissions/design.html      |   12 +-
 content/documentation/permissions/evaluator.html   |   20 +-
 content/documentation/permissions/example.html     |   16 +-
 content/documentation/permissions/index.html       |   10 +-
 .../documentation/permissions/migration2To3.html   |   10 +-
 content/documentation/query/algebra.html           |   12 +-
 content/documentation/query/app_api.html           |   10 +-
 content/documentation/query/architecture.html      |   12 +-
 content/documentation/query/arq-query-eval.html    |   12 +-
 content/documentation/query/assignment.html        |   12 +-
 content/documentation/query/cmds.html              |   12 +-
 content/documentation/query/collation.html         |   12 +-
 content/documentation/query/construct-quad.html    |   12 +-
 content/documentation/query/custom_aggregates.html |   10 +-
 .../query/custom_service_executors.html            |   82 +-
 content/documentation/query/download.html          |   12 +-
 content/documentation/query/explain.html           |   48 +-
 content/documentation/query/extension.html         |   12 +-
 content/documentation/query/faq.html               |   12 +-
 content/documentation/query/function_forms.html    |   26 +-
 .../query/generate-json-from-sparql.html           |   10 +-
 content/documentation/query/group-by.html          |   10 +-
 content/documentation/query/index.html             |   10 +-
 content/documentation/query/java-uri.html          |   20 +-
 .../documentation/query/javascript-functions.html  |   18 +-
 content/documentation/query/lateral-join.html      |  130 +--
 content/documentation/query/library-function.html  |   16 +-
 content/documentation/query/library-propfunc.html  |   10 +-
 content/documentation/query/logging.html           |   14 +-
 .../query/manipulating_sparql_using_arq.html       |   10 +-
 .../query/manipulating_sparql_using_arq_pt.html    |   10 +-
 content/documentation/query/negation.html          |   12 +-
 .../query/parameterized-sparql-strings.html        |   10 +-
 content/documentation/query/programmatic.html      |   12 +-
 content/documentation/query/property_paths.html    |   10 +-
 content/documentation/query/rdf_lists.html         |   10 +-
 content/documentation/query/select_expr.html       |   10 +-
 content/documentation/query/service.html           |   16 +-
 content/documentation/query/service_enhancer.html  |  486 +++++-----
 content/documentation/query/sparql-remote.html     |   10 +-
 content/documentation/query/spatial-query-doc.html |   24 +-
 content/documentation/query/spatial-query.html     |   10 +-
 content/documentation/query/sub-select.html        |   10 +-
 content/documentation/query/support.html           |   12 +-
 content/documentation/query/support_request.html   |   10 +-
 content/documentation/query/text-query.html        |   36 +-
 content/documentation/query/update.html            |   14 +-
 content/documentation/query/writing_functions.html |   10 +-
 content/documentation/query/writing_propfuncs.html |   32 +-
 content/documentation/query/xsd-support.html       |   12 +-
 content/documentation/rdf-patch/index.html         |   40 +-
 content/documentation/rdf-star/index.html          |   88 +-
 content/documentation/rdf/datasets.html            |   14 +-
 content/documentation/rdf/index.html               |   34 +-
 content/documentation/rdfconnection/index.html     |   10 +-
 content/documentation/rdfpatch.html                |   10 +
 content/documentation/rdfpatch/index.html          |   11 +-
 content/documentation/rdfs/index.html              |   42 +-
 content/documentation/rdfstar.html                 |   10 +
 content/documentation/rdfstar/index.html           |   11 +-
 content/documentation/serving_data.html            |   10 +
 content/documentation/serving_data/index.html      |   11 +-
 content/documentation/shacl/index.html             |   30 +-
 content/documentation/shex/index.html              |   26 +-
 content/documentation/sparql-apis/http-auth.html   |  106 ++-
 content/documentation/sparql-apis/index.html       |   66 +-
 content/documentation/tdb/architecture.html        |   12 +-
 content/documentation/tdb/assembler.html           |   12 +-
 content/documentation/tdb/commands.html            |   12 +-
 content/documentation/tdb/configuration.html       |   12 +-
 content/documentation/tdb/datasets.html            |   12 +-
 content/documentation/tdb/dynamic_datasets.html    |   10 +-
 content/documentation/tdb/faqs.html                |   14 +-
 content/documentation/tdb/index.html               |   10 +-
 content/documentation/tdb/java_api.html            |   10 +-
 content/documentation/tdb/optimizer.html           |   12 +-
 content/documentation/tdb/quadfilter.html          |   12 +-
 content/documentation/tdb/requirements.html        |   12 +-
 content/documentation/tdb/store-parameters.html    |   24 +-
 content/documentation/tdb/tdb-xloader.html         |   10 +-
 content/documentation/tdb/tdb_system.html          |   10 +-
 content/documentation/tdb/tdb_transactions.html    |   10 +-
 .../documentation/tdb/value_canonicalization.html  |   10 +-
 content/documentation/tdb2/index.html              |   10 +-
 content/documentation/tdb2/tdb2_admin.html         |   10 +-
 content/documentation/tdb2/tdb2_cmds.html          |   12 +-
 content/documentation/tdb2/tdb2_fuseki.html        |   10 +-
 content/documentation/tdb2/tdb2_migration.html     |   36 +-
 content/documentation/tools/index.html             |   10 +-
 content/documentation/tools/schemagen-maven.html   |   10 +-
 content/documentation/tools/schemagen.html         |   12 +-
 content/documentation/txn/index.html               |   10 +-
 content/documentation/txn/transactions_api.html    |   10 +-
 content/documentation/txn/transactions_tdb.html    |   10 +-
 content/documentation/txn/txn.html                 |   12 +-
 content/download.html                              |   12 +-
 content/download/index.html                        |   50 +-
 content/download/index.xml                         |   10 +-
 content/download/maven.html                        |   12 +-
 content/getting_involved.html                      |   10 +-
 content/getting_involved/index.html                |   13 +-
 content/getting_involved/index.xml                 |   12 +-
 .../getting_involved/reviewing_contributions.html  |   10 +-
 content/getting_started.html                       |   10 +-
 content/getting_started/index.html                 |   10 +-
 content/getting_started/index.xml                  |   10 +-
 content/help_and_support.html                      |   10 +-
 content/help_and_support/bugs_and_suggestions.html |   10 +-
 content/help_and_support/faq.html                  |   12 +-
 content/help_and_support/index.html                |   14 +-
 content/help_and_support/index.xml                 |    8 +-
 content/index.html                                 |   12 +-
 content/index.json                                 |    1 +
 content/index.xml                                  |  385 ++++----
 content/js/fuse.min.js                             |    9 +
 content/js/mark.min.js                             |    7 +
 .../tdb/tdb-xloader.html => search.html}           |  304 ++++--
 .../index.html}                                    |  291 ++++--
 content/search/index.xml                           |   19 +
 content/sitemap.xml                                | 1007 +++++---------------
 content/tutorials.html                             |   12 +-
 content/tutorials/index.html                       |   10 +-
 content/tutorials/index.xml                        |   24 +-
 content/tutorials/rdf_api.html                     |  818 ++++++++--------
 content/tutorials/rdf_api_pt.html                  |   10 +-
 content/tutorials/sparql.html                      |   12 +-
 content/tutorials/sparql_basic_patterns.html       |   10 +-
 content/tutorials/sparql_basic_patterns_pt.html    |   10 +-
 content/tutorials/sparql_data.html                 |   10 +-
 content/tutorials/sparql_data_pt.html              |   10 +-
 content/tutorials/sparql_datasets.html             |   10 +-
 content/tutorials/sparql_datasets_pt.html          |   10 +-
 content/tutorials/sparql_filters.html              |   10 +-
 content/tutorials/sparql_filters_pt.html           |   10 +-
 content/tutorials/sparql_optionals.html            |   78 +-
 content/tutorials/sparql_optionals_pt.html         |   10 +-
 content/tutorials/sparql_page.html                 |   10 +-
 content/tutorials/sparql_pt.html                   |   10 +-
 content/tutorials/sparql_query1.html               |   12 +-
 content/tutorials/sparql_query1_pt.html            |   12 +-
 content/tutorials/sparql_results.html              |   10 +-
 content/tutorials/sparql_results_pt.html           |   10 +-
 content/tutorials/sparql_union.html                |   10 +-
 content/tutorials/sparql_union_pt.html             |   10 +-
 content/tutorials/using_jena_with_eclipse.html     |   10 +-
 content/tutorials/using_jena_with_eclipse_pt.html  |   10 +-
 261 files changed, 4619 insertions(+), 4194 deletions(-)

diff --git a/.hugo_build.lock b/.hugo_build.lock
new file mode 100644
index 000000000..e69de29bb
diff --git a/content/about_jena.html b/content/about_jena.html
index 2baff7259..c7d721726 100644
--- a/content/about_jena.html
+++ b/content/about_jena.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -184,6 +191,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/about.html b/content/about_jena/about.html
index d840af08d..605aa7bad 100644
--- a/content/about_jena/about.html
+++ b/content/about_jena/about.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">ABOUT</li>
+                <li class="breadcrumb-item active">ABOUT.HTML</li>
             
             
         
@@ -251,6 +258,7 @@ Java and .NET applications. Take a look at YourKit&rsquo;s leading software prod
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/architecture.html b/content/about_jena/architecture.html
index 4336f3e84..c616e76a7 100644
--- a/content/about_jena/architecture.html
+++ b/content/about_jena/architecture.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">ARCHITECTURE</li>
+                <li class="breadcrumb-item active">ARCHITECTURE.HTML</li>
             
             
         
@@ -259,6 +266,7 @@ found in the detailed documentation on this site.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/citing.html b/content/about_jena/citing.html
index 05aa4ffb6..aef8fd74f 100644
--- a/content/about_jena/citing.html
+++ b/content/about_jena/citing.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">CITING</li>
+                <li class="breadcrumb-item active">CITING.HTML</li>
             
             
         
@@ -188,7 +195,7 @@ system). The paper is also prior to the move to under the Apache Software
 Foundation. It is also good to acknowledge Brian McBride, who started the
 project.</p>
 <p>Here is an example of what a citation may look like:</p>
-<pre><code>Apache Software Foundation, 2021. Apache Jena, Available at: https://jena.apache.org/.
+<pre tabindex="0"><code>Apache Software Foundation, 2021. Apache Jena, Available at: https://jena.apache.org/.
 </code></pre>
   </article>
   
@@ -226,6 +233,7 @@ project.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/contributions.html b/content/about_jena/contributions.html
index f0c375dab..ad70cf262 100644
--- a/content/about_jena/contributions.html
+++ b/content/about_jena/contributions.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">CONTRIBUTIONS</li>
+                <li class="breadcrumb-item active">CONTRIBUTIONS.HTML</li>
             
             
         
@@ -355,6 +362,7 @@ GitHub or JIRA issue with the details to be published.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/index.html b/content/about_jena/index.html
index 6d544a8b2..dbc40df2a 100644
--- a/content/about_jena/index.html
+++ b/content/about_jena/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -244,6 +251,7 @@ was approved as a top-level Apache project.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/index.xml b/content/about_jena/index.xml
index 14eefea67..23fec876c 100644
--- a/content/about_jena/index.xml
+++ b/content/about_jena/index.xml
@@ -5,11 +5,7 @@
     <link>https://jena.apache.org/about_jena.html</link>
     <description>Recent content in About_jenas on Apache Jena</description>
     <generator>Hugo -- gohugo.io</generator>
-    <language>en</language>
-    
-	<atom:link href="https://jena.apache.org/about_jena/index.xml" rel="self" type="application/rss+xml" />
-    
-    
+    <language>en</language><atom:link href="https://jena.apache.org/about_jena/index.xml" rel="self" type="application/rss+xml" />
     <item>
       <title>Apache Jena project team members</title>
       <link>https://jena.apache.org/about_jena/team.html</link>
@@ -17,7 +13,7 @@
       
       <guid>https://jena.apache.org/about_jena/team.html</guid>
       <description>In first name alphabetical order:
- Aaron Coburn (acoburn) C Adam Soroka (ajs6f) CP Andy Seaborne (andy) CP VP Bruno Kinoshita (kinow) CP Chris Dollin (chrisdollin) CP Chris Tomlinson (codeferret) CP Claude Warren (claude) CP Damian Steer (damian) CP Dave Reynolds (der) CP Ian Dickinson (ijd) CP Lorenz Buehmann (lbuehmann) C Osma Suominen (osma) CP Paolo Castagna (castagna) CP Rob Vesse (rvesse) CP Stephen Allen (sallen) CP Ying Jiang (jpz6311whu) C  Emeritus and Mentors:</description>
+Aaron Coburn (acoburn) C Adam Soroka (ajs6f) CP Andy Seaborne (andy) CP VP Bruno Kinoshita (kinow) CP Chris Dollin (chrisdollin) CP Chris Tomlinson (codeferret) CP Claude Warren (claude) CP Damian Steer (damian) CP Dave Reynolds (der) CP Ian Dickinson (ijd) CP Lorenz Buehmann (lbuehmann) C Osma Suominen (osma) CP Paolo Castagna (castagna) CP Rob Vesse (rvesse) CP Stephen Allen (sallen) CP Ying Jiang (jpz6311whu) C Emeritus and Mentors:</description>
     </item>
     
     <item>
@@ -46,8 +42,8 @@ At its core, Jena stores information as RDF triples in directed graphs, and allo
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/about_jena/roadmap.html</guid>
-      <description>You can view a list of the open issues on JIRA (sorted by priority). Or, you can look at the last week activity to get a sense of what people are working on.
-Patches and other contributions welcome!</description>
+      <description>You can view a list of the open issues on Github and older open issues on JIRA. priority)
+Pull requests, patches and other contributions welcome!</description>
     </item>
     
     <item>
@@ -80,7 +76,7 @@ If you wish your contribution to appear on this page, please raise a GitHub or J
       <guid>https://jena.apache.org/about_jena/</guid>
       <description>Welcome to the Apache Jena project! Jena is a Java framework for building Semantic Web applications. Jena provides a collection of tools and Java libraries to help you to develop semantic web and linked-data apps, tools and servers.
 The Jena Framework includes:
- an API for reading, processing and writing RDF data in XML, N-triples and Turtle formats; an ontology API for handling OWL and RDFS ontologies; a rule-based inference engine for reasoning with RDF and OWL data sources; stores to allow large numbers of RDF triples to be efficiently stored on disk; a query engine compliant with the latest SPARQL specification servers to allow RDF data to be published to other applications using a variety of protocols, including SPARQL  In April 2012, Jena [...]
+an API for reading, processing and writing RDF data in XML, N-triples and Turtle formats; an ontology API for handling OWL and RDFS ontologies; a rule-based inference engine for reasoning with RDF and OWL data sources; stores to allow large numbers of RDF triples to be efficiently stored on disk; a query engine compliant with the latest SPARQL specification servers to allow RDF data to be published to other applications using a variety of protocols, including SPARQL In April 2012, Jena g [...]
     </item>
     
     <item>
@@ -94,4 +90,4 @@ History Jena was originally developed by researchers in HP Labs, starting in Bri
     </item>
     
   </channel>
-</rss>
\ No newline at end of file
+</rss>
diff --git a/content/about_jena/roadmap.html b/content/about_jena/roadmap.html
index afb814848..1d8919afa 100644
--- a/content/about_jena/roadmap.html
+++ b/content/about_jena/roadmap.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">ROADMAP</li>
+                <li class="breadcrumb-item active">ROADMAP.HTML</li>
             
             
         
@@ -169,9 +176,10 @@
     <nav id="TableOfContents"></nav>
   </aside>
   <article class="flex-column me-lg-4">
-    <p>You can view a list of the <a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+JENA+AND+status+%3D+Open+ORDER+BY+priority+DESC&amp;mode=hide">open issues</a> on JIRA (sorted by priority).
-Or, you can look at the <a href="https://issues.apache.org/jira/secure/QuickSearch.jspa?searchString=jena+updated:-1w">last week activity</a> to get a sense of what people are working on.</p>
-<p>Patches and other contributions welcome!</p>
+    <p>You can view a list of the <a href="https://github.com/apache/jena/issues">open issues on Github</a>
+and <a href="https://issues.apache.org/jira/secure/IssueNavigator.jspa?reset=true&amp;jqlQuery=project+%3D+JENA+AND+status+%3D+Open+ORDER+BY+priority+DESC&amp;mode=hide">older open issues</a> on JIRA.
+priority)</p>
+<p>Pull requests, patches and other contributions welcome!</p>
 
   </article>
   
@@ -209,6 +217,7 @@ Or, you can look at the <a href="https://issues.apache.org/jira/secure/QuickSear
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/security-advisories.html b/content/about_jena/security-advisories.html
index 0619cfe2e..c0c11fa2d 100644
--- a/content/about_jena/security-advisories.html
+++ b/content/about_jena/security-advisories.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -306,6 +313,7 @@ for <a href="../documentation/fuseki2/">Fuseki</a> and our command line tools.</
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/about_jena/team.html b/content/about_jena/team.html
index 09f3e6d73..fcc80a19f 100644
--- a/content/about_jena/team.html
+++ b/content/about_jena/team.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">TEAM</li>
+                <li class="breadcrumb-item active">TEAM.HTML</li>
             
             
         
@@ -257,6 +264,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation.html b/content/documentation.html
index 06505df7c..c1a7cb92a 100644
--- a/content/documentation.html
+++ b/content/documentation.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -140,7 +147,7 @@
         
         
             
-                <li class="breadcrumb-item active">DOCUMENTATION</li>
+                <li class="breadcrumb-item active">DOCUMENTATION.HTML</li>
             
             
         
@@ -184,6 +191,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/csv/csv_index.html b/content/documentation/archive/csv/csv_index.html
index 6b03da454..cc90f6175 100644
--- a/content/documentation/archive/csv/csv_index.html
+++ b/content/documentation/archive/csv/csv_index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -285,6 +292,7 @@ The <a href="design.html">architecture</a> is designed to be able to accommodate
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/csv/design.html b/content/documentation/archive/csv/design.html
index 43ffba048..3e1119d6d 100644
--- a/content/documentation/archive/csv/design.html
+++ b/content/documentation/archive/csv/design.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">DESIGN</li>
+                <li class="breadcrumb-item active">DESIGN.HTML</li>
             
             
         
@@ -315,6 +322,7 @@ We don’t have metadata of the namespaces for the columns, But subjects can be
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/csv/get_started.html b/content/documentation/archive/csv/get_started.html
index cb1729e16..c4a5bd359 100644
--- a/content/documentation/archive/csv/get_started.html
+++ b/content/documentation/archive/csv/get_started.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -307,6 +314,7 @@ so that it also accepts the same arguments
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/csv/implementation.html b/content/documentation/archive/csv/implementation.html
index 65f3db77c..8d3d5d1cb 100644
--- a/content/documentation/archive/csv/implementation.html
+++ b/content/documentation/archive/csv/implementation.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">IMPLEMENTATION</li>
+                <li class="breadcrumb-item active">IMPLEMENTATION.HTML</li>
             
             
         
@@ -286,6 +293,7 @@ StageBuilder.setGenerator(ARQ.getContext(), stageGenerator) ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/csv/index.html b/content/documentation/archive/csv/index.html
index 5ccb2dde5..3f67af861 100644
--- a/content/documentation/archive/csv/index.html
+++ b/content/documentation/archive/csv/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -225,6 +232,7 @@ The <a href="csv_index.html">original documentation</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/eyeball/eyeball-getting-started.html b/content/documentation/archive/eyeball/eyeball-getting-started.html
index 735efab78..c2461d161 100644
--- a/content/documentation/archive/eyeball/eyeball-getting-started.html
+++ b/content/documentation/archive/eyeball/eyeball-getting-started.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -283,6 +290,7 @@ java jena.eyeballGUI</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/eyeball/eyeball-guide.html b/content/documentation/archive/eyeball/eyeball-guide.html
index 98e39221b..a06895f2c 100644
--- a/content/documentation/archive/eyeball/eyeball-guide.html
+++ b/content/documentation/archive/eyeball/eyeball-guide.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -393,10 +400,10 @@ Eyeball will run by adding to the command line:</p>
 <h3 id="-check-for-type-consistency">&hellip; check for type consistency?</h3>
 <p>One easy mistake to make in RDF is to make an assertion - we&rsquo;ll
 call it <strong>S P O</strong> - about some subject <strong>S</strong> which is &ldquo;of the wrong
-type&rdquo;, that is, not of whatever type <strong>P</strong>&lsquo;s domain is. This isn&rsquo;t,
+type&rdquo;, that is, not of whatever type <strong>P</strong>&rsquo;s domain is. This isn&rsquo;t,
 in principle, an error, since RDF resources can have multiple
 types, and this just makes <strong>S</strong> have a type which is a subtype of
-both <strong>P</strong>&lsquo;s domain and whatever type it was supposed to have.</p>
+both <strong>P</strong>&rsquo;s domain and whatever type it was supposed to have.</p>
 <p>To spot this, and related problems, Eyeball has the
 <strong>consistent-type</strong> inspector. You can add it to the inspections in
 the same way as the <strong>all-typed</strong> inspector:</p>
@@ -509,6 +516,7 @@ get listed inside the <code>values</code> curly braces.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/eyeball/eyeball-manual.html b/content/documentation/archive/eyeball/eyeball-manual.html
index 2f6925bc4..6b297d4ba 100644
--- a/content/documentation/archive/eyeball/eyeball-manual.html
+++ b/content/documentation/archive/eyeball/eyeball-manual.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -276,7 +283,7 @@ The <a href="https://svn.apache.org/viewvc/jena/Scratch/Eyeball/trunk/">original
 </b></p>
 <p>This document describes Eyeball, an
 &ldquo;<a href="http://www.w3.org/RDF/">RDF</a>
-<a href="http://en.wikipedia.org/wiki/Lint_programming_tool">lint</a>&quot;.
+<a href="http://en.wikipedia.org/wiki/Lint_programming_tool">lint</a>&rdquo;.
 See
 the release notes for descriptions of changes
 from previous versions. Eyeball was a part of the
@@ -448,7 +455,7 @@ as though the prefix <code>eye:</code> had been used.</li>
 URIs with empty local names, use:</p>
 <pre><code>-set URIInspector.reportEmptyLocalNames=&quot;'true'&quot;
 </code></pre>
-<p>Note the nested different quotes required to pass &lsquo;true&rsquo; to Eyeball
+<p>Note the nested different quotes required to pass &rsquo;true&rsquo; to Eyeball
 so that it can interpret this as a literal.</p>
 <h3 id="-include-exclude-shortnames">-include/-exclude shortNames</h3>
 <p>The various Eyeball inspectors are given <em>short names</em> in the
@@ -497,7 +504,7 @@ validation checks every time a model is loaded.</p>
 not for security against malicious users.</p>
 <h3 id="-version">-version</h3>
 <p>Eyeball will print its version on the standard error stream
-(currently &ldquo;<em>Eyeball 2.1 (Nova Embers)</em>&quot;).</p>
+(currently &ldquo;<em>Eyeball 2.1 (Nova Embers)</em>&rdquo;).</p>
 <h3 id="-remark">-remark</h3>
 <p>Normally Eyeball issues its report or signed model to the standard
 output and exits with code 0 (success) or 1 (failure) with no
@@ -696,14 +703,14 @@ string identifying the reason.</p>
 </tr>
 <tr>
 <td>eye:uriHasNoLocalname</td>
-<td>a URI has no local name according to the XML name-splitting rules. (For example, the URI <em>http://x.com/foo#12345</em> has no local name because a local name cannot start with a digit.)</td>
+<td>a URI has no local name according to the XML name-splitting rules. (For example, the URI <em><a href="http://x.com/foo">http://x.com/foo</a>#12345</em> has no local name because a local name cannot start with a digit.)</td>
 </tr>
 <tr>
-<td>&ldquo;did not match required pattern <em>Tail<sub>i</sub></em> for prefix <em>Head</em>&quot;.</td>
-<td>This badURI starts with <em>Head</em>, but the remainder doesn&rsquo;t match any of the <em>Tail<sub>i</sub></em>s associated with that prefix.</td>
+<td>&ldquo;did not match required pattern <em>Tail<sub>i</sub></em> for prefix <em>Head</em>&rdquo;.</td>
+<td>This badURI starts with <em>Head</em>, but the remainder doesn&rsquo;t match any of the *Tail<sub>i</sub>*s associated with that prefix.</td>
 </tr>
 <tr>
-<td>&ldquo;matched prohibited pattern <em>Tail</em> for prefix <em>Head</em>&quot;.</td>
+<td>&ldquo;matched prohibited pattern <em>Tail</em> for prefix <em>Head</em>&rdquo;.</td>
 <td>This badURI starts with <em>Head</em>, and the remainder matched a prohibited <em>Tail</em> associated with that prefix.</td>
 </tr>
 </tbody>
@@ -936,9 +943,9 @@ a file containing the query, rather than the entire query.</p>
 <pre><code>eye:require &quot;@'/home/kers/example/query-one.sparql'&quot;
 </code></pre>
 <p>The quoted filename is read using the Jena file manager and so
-respects any filename mappings. &ldquo;@&rdquo; characters not followed by &ldquo;'&rdquo;
+respects any filename mappings. &ldquo;@&rdquo; characters not followed by &ldquo;&rsquo;&rdquo;
 are not subject to substitution, except that the sequence &ldquo;@@&rdquo; is
-replaced by &ldquo;@&quot;.</p>
+replaced by &ldquo;@&rdquo;.</p>
 <p>Using <code>eye:prohibit</code> rather than <code>eye:require</code> means that the
 problem is reported if the query succeeds, rather than if it
 fails.</p>
@@ -1203,6 +1210,7 @@ as an <code>eye:inspector</code> property of the configuration root, <em>eg</em>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/artifacts.html b/content/documentation/archive/hadoop/artifacts.html
index 9cc30f124..7518e5e58 100644
--- a/content/documentation/archive/hadoop/artifacts.html
+++ b/content/documentation/archive/hadoop/artifacts.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">ARTIFACTS</li>
+                <li class="breadcrumb-item active">ARTIFACTS.HTML</li>
             
             
         
@@ -320,6 +327,7 @@ own RDF data:</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/common.html b/content/documentation/archive/hadoop/common.html
index 336d4e067..cd3c94296 100644
--- a/content/documentation/archive/hadoop/common.html
+++ b/content/documentation/archive/hadoop/common.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">COMMON</li>
+                <li class="breadcrumb-item active">COMMON.HTML</li>
             
             
         
@@ -263,6 +270,7 @@ Node value = nw.get();
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/demo.html b/content/documentation/archive/hadoop/demo.html
index 58fc89e95..11455ca7a 100644
--- a/content/documentation/archive/hadoop/demo.html
+++ b/content/documentation/archive/hadoop/demo.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">DEMO</li>
+                <li class="breadcrumb-item active">DEMO.HTML</li>
             
             
         
@@ -320,6 +327,7 @@ OPTIONS
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/elephas_index.html b/content/documentation/archive/hadoop/elephas_index.html
index e4ab65fcf..209ef7f8e 100644
--- a/content/documentation/archive/hadoop/elephas_index.html
+++ b/content/documentation/archive/hadoop/elephas_index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -441,6 +448,7 @@ public class RdfMapReduceExample {
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/index.html b/content/documentation/archive/hadoop/index.html
index 7ce08d8a9..ee3e2646c 100644
--- a/content/documentation/archive/hadoop/index.html
+++ b/content/documentation/archive/hadoop/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -225,6 +232,7 @@ The <a href="elephas_index.html">original documentation</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/io.html b/content/documentation/archive/hadoop/io.html
index be7d5cd1c..3bac2281d 100644
--- a/content/documentation/archive/hadoop/io.html
+++ b/content/documentation/archive/hadoop/io.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">IO</li>
+                <li class="breadcrumb-item active">IO.HTML</li>
             
             
         
@@ -463,6 +470,7 @@ FileOutputFormat.setOutputPath(job, &quot;/users/example/output&quot;);
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/hadoop/mapred.html b/content/documentation/archive/hadoop/mapred.html
index 1f3e81293..9b5f86526 100644
--- a/content/documentation/archive/hadoop/mapred.html
+++ b/content/documentation/archive/hadoop/mapred.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">MAPRED</li>
+                <li class="breadcrumb-item active">MAPRED.HTML</li>
             
             
         
@@ -363,6 +370,7 @@ FileOutputFormat.setOutputPath(job, new Path(&quot;/example/output&quot;));
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/larq/index.html b/content/documentation/archive/larq/index.html
index 791a4f890..6e5308c0c 100644
--- a/content/documentation/archive/larq/index.html
+++ b/content/documentation/archive/larq/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -263,7 +270,7 @@ LARQ.setDefaultIndex(qExec.getContext(), index) ;
 </code></pre>
 <p>In both these cases, the default index is set, which is the one expected by property function <code>pf:textMatch</code>. Use of multiple indexes in the same query can be achieved by introducing new properties.  The application can subclass the search class <code>org.apache.jena.larq.LuceneSearch</code> to set different indexes with different property names.</p>
 <h2 id="query-using-a-lucene-index">Query using a Lucene index</h2>
-<p>Query execution is as usual using the property function pf:textMatch. &ldquo;textMatch&rdquo; can be thought of as an implied relationship in the data. Note the prefix ends in &ldquo;.&quot;.</p>
+<p>Query execution is as usual using the property function pf:textMatch. &ldquo;textMatch&rdquo; can be thought of as an implied relationship in the data. Note the prefix ends in &ldquo;.&rdquo;.</p>
 <pre><code>String queryString = StringUtils.join(&quot;\n&quot;, new String[]{
         &quot;PREFIX pf: &lt;http://jena.hpl.hp.com/ARQ/property#&gt;&quot;,
         &quot;SELECT * {&quot; ,
@@ -385,6 +392,7 @@ You can also search the jena-users mailing list archives <a href="http://markmai
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/commands.html b/content/documentation/archive/sdb/commands.html
index cf7d3c264..fb3c97d1c 100644
--- a/content/documentation/archive/sdb/commands.html
+++ b/content/documentation/archive/sdb/commands.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">COMMANDS</li>
+                <li class="breadcrumb-item active">COMMANDS.HTML</li>
             
             
         
@@ -463,6 +470,7 @@ this command can corrupt the store.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/configuration.html b/content/documentation/archive/sdb/configuration.html
index 048b63e6d..49f57c853 100644
--- a/content/documentation/archive/sdb/configuration.html
+++ b/content/documentation/archive/sdb/configuration.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">CONFIGURATION</li>
+                <li class="breadcrumb-item active">CONFIGURATION.HTML</li>
             
             
         
@@ -358,6 +365,7 @@ for the command <code>sdbprint</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/database_layouts.html b/content/documentation/archive/sdb/database_layouts.html
index cc8cf2dd4..b4a524032 100644
--- a/content/documentation/archive/sdb/database_layouts.html
+++ b/content/documentation/archive/sdb/database_layouts.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -268,6 +275,7 @@ including mixed language use.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/databases_supported.html b/content/documentation/archive/sdb/databases_supported.html
index 2e06f71e0..6dabac338 100644
--- a/content/documentation/archive/sdb/databases_supported.html
+++ b/content/documentation/archive/sdb/databases_supported.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -276,6 +283,7 @@ otherwise stated.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/dataset_description.html b/content/documentation/archive/sdb/dataset_description.html
index 52e6273dd..99d7d2f2a 100644
--- a/content/documentation/archive/sdb/dataset_description.html
+++ b/content/documentation/archive/sdb/dataset_description.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -286,6 +293,7 @@ triggers full SPARQL to SQL translation, not a model.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/db_notes.html b/content/documentation/archive/sdb/db_notes.html
index cdd2b5780..3ad85fa3e 100644
--- a/content/documentation/archive/sdb/db_notes.html
+++ b/content/documentation/archive/sdb/db_notes.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -437,6 +444,7 @@ performance, particularly <code>effective_cache_size</code>. The parameter
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/faq.html b/content/documentation/archive/sdb/faq.html
index af2e89699..103b9fb9a 100644
--- a/content/documentation/archive/sdb/faq.html
+++ b/content/documentation/archive/sdb/faq.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">FAQ</li>
+                <li class="breadcrumb-item active">FAQ.HTML</li>
             
             
         
@@ -257,6 +264,7 @@ be noticeably faster.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/fuseki_integration.html b/content/documentation/archive/sdb/fuseki_integration.html
index cf3a10ea5..0ac7bf423 100644
--- a/content/documentation/archive/sdb/fuseki_integration.html
+++ b/content/documentation/archive/sdb/fuseki_integration.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -256,6 +263,7 @@ it needs only to be accessible to the Fuseki server itself.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/index.html b/content/documentation/archive/sdb/index.html
index 99e645ff5..709a64089 100644
--- a/content/documentation/archive/sdb/index.html
+++ b/content/documentation/archive/sdb/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -224,6 +231,7 @@ The <a href="sdb_index.html">original documentation</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/installation.html b/content/documentation/archive/sdb/installation.html
index 5778970ff..279fd4d24 100644
--- a/content/documentation/archive/sdb/installation.html
+++ b/content/documentation/archive/sdb/installation.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">INSTALLATION</li>
+                <li class="breadcrumb-item active">INSTALLATION.HTML</li>
             
             
         
@@ -251,6 +258,7 @@ environment variables <code>SDBROOT</code>, <code>SDB_USER</code>, <code>SDB_PAS
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/javaapi.html b/content/documentation/archive/sdb/javaapi.html
index 206a346e5..38b42a285 100644
--- a/content/documentation/archive/sdb/javaapi.html
+++ b/content/documentation/archive/sdb/javaapi.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">JAVAAPI</li>
+                <li class="breadcrumb-item active">JAVAAPI.HTML</li>
             
             
         
@@ -451,6 +458,7 @@ SDB.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/loading_data.html b/content/documentation/archive/sdb/loading_data.html
index 5ca2dd35d..c02e2fe7d 100644
--- a/content/documentation/archive/sdb/loading_data.html
+++ b/content/documentation/archive/sdb/loading_data.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -337,6 +344,7 @@ WHERE Triples.s IS NULL OR Triples.p IS NULL OR Triples.o IS NULL
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/loading_performance.html b/content/documentation/archive/sdb/loading_performance.html
index f2d00520d..cf6259c63 100644
--- a/content/documentation/archive/sdb/loading_performance.html
+++ b/content/documentation/archive/sdb/loading_performance.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -435,6 +442,7 @@ disks.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/query_performance.html b/content/documentation/archive/sdb/query_performance.html
index d33a99cbc..ffeff02e3 100644
--- a/content/documentation/archive/sdb/query_performance.html
+++ b/content/documentation/archive/sdb/query_performance.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -303,6 +310,7 @@ advantages in query performance.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/quickstart.html b/content/documentation/archive/sdb/quickstart.html
index 1ddae760d..70c409662 100644
--- a/content/documentation/archive/sdb/quickstart.html
+++ b/content/documentation/archive/sdb/quickstart.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">QUICKSTART</li>
+                <li class="breadcrumb-item active">QUICKSTART.HTML</li>
             
             
         
@@ -285,6 +292,7 @@ execute in a reasonable time.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/sdb_index.html b/content/documentation/archive/sdb/sdb_index.html
index e20c2a8d1..f9ea6ac51 100644
--- a/content/documentation/archive/sdb/sdb_index.html
+++ b/content/documentation/archive/sdb/sdb_index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -307,6 +314,7 @@ TDBs substantially better performance and scalability.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/sdb/store_description.html b/content/documentation/archive/sdb/store_description.html
index 6a13b6807..81bf30e50 100644
--- a/content/documentation/archive/sdb/store_description.html
+++ b/content/documentation/archive/sdb/store_description.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -341,6 +348,7 @@ constructed by SDB. The <code>sdbType</code> is still needed.</dd>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/serving_data/fuseki1.html b/content/documentation/archive/serving_data/fuseki1.html
index 7ab93f3bd..fd1307c08 100644
--- a/content/documentation/archive/serving_data/fuseki1.html
+++ b/content/documentation/archive/serving_data/fuseki1.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -164,7 +171,7 @@
         
         
             
-                <li class="breadcrumb-item active">FUSEKI1</li>
+                <li class="breadcrumb-item active">FUSEKI1.HTML</li>
             
             
         
@@ -666,6 +673,7 @@ s-update --service http://localhost:3030/ds/update --file=update.ru
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/archive/versions/http-auth-old.html b/content/documentation/archive/versions/http-auth-old.html
index 0e21ef634..4e957e306 100644
--- a/content/documentation/archive/versions/http-auth-old.html
+++ b/content/documentation/archive/versions/http-auth-old.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -271,7 +278,7 @@ CookieStore cookieStore = httpContext.getCookieStore();
 // lastly we build a client that uses that cookie
 HttpClient httpclient = HttpClients.custom()
     .setDefaultCookieStore(cookieStore)
-    .build();
+	.build();
 HttpOp.setDefaultHttpClient(httpclient);
 
 // alternatively we could use the context directly
@@ -451,6 +458,7 @@ HTTP traces i.e. allow you to see the exact HTTP requests and responses which ca
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/assembler/assembler-howto.html b/content/documentation/assembler/assembler-howto.html
index 8caf503c9..ee0d3015e 100644
--- a/content/documentation/assembler/assembler-howto.html
+++ b/content/documentation/assembler/assembler-howto.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -410,7 +417,7 @@ specification will create a DIG inference model that uses it.</p>
 inside the specification, or outside from some resource (file or
 http: URL):
 eg:rule-inference-example
-ja:reasoner [ja:rule &ldquo;[r1: (?x my:P ?y) -&gt; (?x rdf:type my:T)]&quot;]
+ja:reasoner [ja:rule &ldquo;[r1: (?x my:P ?y) -&gt; (?x rdf:type my:T)]&rdquo;]
 .</p>
 <p>This reasoner will infer a type declaration from a use of a
 property. (The prefix <em>my</em> will have to be known to the rule
@@ -610,7 +617,7 @@ the same as that of an OntModelSpec constant, then that constant is
 used as the default value.</p>
 <h3 id="document-managers">Document managers</h3>
 <p>An <code>OntDocumentManager</code> can be specified by a <code>ja:DocumentManager</code>
-specification which describes the <code>OntDocumentManager</code>'s file
+specification which describes the <code>OntDocumentManager</code>&rsquo;s file
 manager and policy settings.</p>
 <pre><code>eg:mapper
     lm:mapping [lm:altName &quot;file:etc/foo.n3&quot; ;
@@ -844,6 +851,7 @@ individual assemblers.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/assembler/index.html b/content/documentation/assembler/index.html
index 7c98f1dbf..d2c1244be 100644
--- a/content/documentation/assembler/index.html
+++ b/content/documentation/assembler/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -298,6 +305,7 @@ non-predefined OntModelSpecs.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/assembler/inside-assemblers.html b/content/documentation/assembler/inside-assemblers.html
index ab1e9ae9f..e0a552a1a 100644
--- a/content/documentation/assembler/inside-assemblers.html
+++ b/content/documentation/assembler/inside-assemblers.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -527,6 +534,7 @@ constructor of the class is used.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/extras/index.html b/content/documentation/extras/index.html
index bb82c6f53..4cc9836e8 100644
--- a/content/documentation/extras/index.html
+++ b/content/documentation/extras/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -225,6 +232,7 @@ but that do not fall within the standard Jena framework.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/extras/querybuilder/index.html b/content/documentation/extras/querybuilder/index.html
index c80f4d665..d63ae437b 100644
--- a/content/documentation/extras/querybuilder/index.html
+++ b/content/documentation/extras/querybuilder/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -356,6 +363,7 @@ WHERE
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-config-endpoint.html b/content/documentation/fuseki2/fuseki-config-endpoint.html
index b04feda35..acfa2eb39 100644
--- a/content/documentation/fuseki2/fuseki-config-endpoint.html
+++ b/content/documentation/fuseki2/fuseki-config-endpoint.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -547,6 +554,7 @@ covers the</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-configuration.html b/content/documentation/fuseki2/fuseki-configuration.html
index 98f31bd91..8ed6b541f 100644
--- a/content/documentation/fuseki2/fuseki-configuration.html
+++ b/content/documentation/fuseki2/fuseki-configuration.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -327,13 +334,12 @@ graph of data.</p>
 </code></pre>
 <h3 id="data-services-on-the-dataset">Data services on the dataset</h3>
 <p>The standard SPARQL operations can also be defined on the dataset URL with no secondary service name:</p>
-<pre><code>&lt;#service2&gt; rdf:type fuseki:Service ;
-    fuseki:name     &quot;/dataset&quot; ;
-    fuseki:endpoint  [ fuseki:operation fuseki:query ];
-    fuseki:endpoint  [ fuseki:operation fuseki:gsp_r ];
-    fuseki:dataset  &lt;#dataset&gt; ;
-    .
-</code></pre>
+<p>&lt;#service2&gt; rdf:type fuseki:Service ;
+fuseki:name     &ldquo;/dataset&rdquo; ;
+fuseki:endpoint  [ fuseki:operation fuseki:query ];
+fuseki:endpoint  [ fuseki:operation fuseki:gsp_r ];
+fuseki:dataset  &lt;#dataset&gt; ;
+.</p>
 <p>HTTP requests use the URL of the dataset.</p>
 <ul>
 <li>SPARQL Query: <tt>http://<i>host:port</i>/dataset?query=...</tt></li>
@@ -519,6 +525,7 @@ by searching the configuration file for the type <code>fuseki:Service</code>.</p
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-data-access-control.html b/content/documentation/fuseki2/fuseki-data-access-control.html
index 4ef1167ff..bff52d820 100644
--- a/content/documentation/fuseki2/fuseki-data-access-control.html
+++ b/content/documentation/fuseki2/fuseki-data-access-control.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -591,6 +598,7 @@ the deployed server can be run using a Jetty configuration.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-docker.html b/content/documentation/fuseki2/fuseki-docker.html
index 56b33b17d..7175e959f 100644
--- a/content/documentation/fuseki2/fuseki-docker.html
+++ b/content/documentation/fuseki2/fuseki-docker.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -333,6 +340,7 @@ This can be ignored.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-embedded.html b/content/documentation/fuseki2/fuseki-embedded.html
index 11ec262a0..012191b32 100644
--- a/content/documentation/fuseki2/fuseki-embedded.html
+++ b/content/documentation/fuseki2/fuseki-embedded.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -458,6 +465,7 @@ server.start() ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-layout.html b/content/documentation/fuseki2/fuseki-layout.html
index 49c42e884..510cb25a1 100644
--- a/content/documentation/fuseki2/fuseki-layout.html
+++ b/content/documentation/fuseki2/fuseki-layout.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -361,6 +368,7 @@ then restart the server.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-logging.html b/content/documentation/fuseki2/fuseki-logging.html
index d9823ac79..270b6bceb 100644
--- a/content/documentation/fuseki2/fuseki-logging.html
+++ b/content/documentation/fuseki2/fuseki-logging.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -322,6 +329,7 @@ assuming the log file has been put in <code>/etc/fuseki/logs/fuseki.log</code>.<
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-main-security.html b/content/documentation/fuseki2/fuseki-main-security.html
index 65e86429e..3ba766ae5 100644
--- a/content/documentation/fuseki2/fuseki-main-security.html
+++ b/content/documentation/fuseki2/fuseki-main-security.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -229,6 +236,7 @@ because it protects against man-in-the-middle attacks.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-main.html b/content/documentation/fuseki2/fuseki-main.html
index d5766274f..c89c98548 100644
--- a/content/documentation/fuseki2/fuseki-main.html
+++ b/content/documentation/fuseki2/fuseki-main.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -281,6 +288,7 @@ server.start() ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-modules.html b/content/documentation/fuseki2/fuseki-modules.html
index 0b0d7fef0..36b4bf9b8 100644
--- a/content/documentation/fuseki2/fuseki-modules.html
+++ b/content/documentation/fuseki2/fuseki-modules.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -197,7 +204,7 @@ sure the <code>ServicesResourceTransformer</code> is used. The module must have
 argument constructor.</p>
 <p>If using Fuseki as an <a href="./fuseki-embedded.html">embedded server</a>, the module is
 added in code as:</p>
-<pre><code>    FusekiModule module = new MyModule();
+<pre tabindex="0"><code>    FusekiModule module = new MyModule();
     FusekiModules.add(module);
 </code></pre><p>The method <code>start</code> is called when the module is loaded. Custom operations can
 be globally registered at this point (see the <a href="https://github.com/apache/jena/tree/main/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples">Fuseki
@@ -225,68 +232,68 @@ contains assembler descriptions not directly linked to the server).</p>
 Module</a>
 in the Fuseki examples directory.</p>
 <p><code>FusekiModule</code> interface:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic"> * Module interface for Fuseki.
-</span><span style="color:#080;font-style:italic"> * &lt;p&gt;
-</span><span style="color:#080;font-style:italic"> * A module is additional code, usually in a separate jar, 
-</span><span style="color:#080;font-style:italic"> * but can also be part of the application code.
-</span><span style="color:#080;font-style:italic"> */</span>
-<span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">FusekiModule</span> <span style="color:#a2f;font-weight:bold">extends</span> SubsystemLifecycle <span style="color:#666">{</span>
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * Unique (within this server) name to identify this module.
-</span><span style="color:#080;font-style:italic">     * The default is to generate an UUID.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> String <span style="color:#00a000">name</span><span style="color:#666">();</span>
-
-    <span style="color:#080;font-style:italic">/** Module loaded */</span>
-    <span style="color:#a2f">@Override</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">start</span><span style="color:#666">()</span> <span style="color:#666">{}</span>
-
-    <span style="color:#080;font-style:italic">// ---- Build cycle
-</span><span style="color:#080;font-style:italic"></span>
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * Called at the start of &#34;build&#34; step. The builder has been set according to the
-</span><span style="color:#080;font-style:italic">     * configuration. The &#34;configModel&#34; parameter is set if a configuration file was
-</span><span style="color:#080;font-style:italic">     * used otherwise it is null.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configuration</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> builder<span style="color:#666">,</span> DataAccessPointRegistry dapRegistry<span style="color:#666">,</span> Model configModel<span style="color:#666">)</ [...]
-        dapRegistry<span style="color:#666">.</span><span style="color:#b44">accessPoints</span><span style="color:#666">().</span><span style="color:#b44">forEach</span><span style="color:#666">(</span>accessPoint<span style="color:#666">-&gt;</span>configDataAccessPoint<span style="color:#666">(</span>builder<span style="color:#666">,</span> accessPoint<span style="color:#666">,</span> configModel<span style="color:#666">));</span>
-    <span style="color:#666">}</span>
-
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * This method is called for each {@link DataAccessPoint}
-</span><span style="color:#080;font-style:italic">     * by the default implementation of {@link #configuration}.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configDataAccessPoint</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> builder<span style="color:#666">,</span> DataAccessPoint dap<span style="color:#666">,</span> Model configModel<span style="color:#666">)</span> <s [...]
-
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * Built, not started, about to be returned to the builder caller.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">server</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
-
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * Server starting - called just before server.start happens.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverBeforeStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
-
-    <span style="color:#080;font-style:italic">/**
-</span><span style="color:#080;font-style:italic">     * Server started - called just after server.start happens, and before server
-</span><span style="color:#080;font-style:italic">     * .start() returns to the application.
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverAfterStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
-
-    <span style="color:#080;font-style:italic">/** Server stopping.
-</span><span style="color:#080;font-style:italic">     * Do not rely on this to clear up external resources.
-</span><span style="color:#080;font-style:italic">     * Usually there is no stop phase and the JVM just exits or is killed externally.
-</span><span style="color:#080;font-style:italic">     *
-</span><span style="color:#080;font-style:italic">     */</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverStopped</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
-
-    <span style="color:#080;font-style:italic">/** Module unloaded */</span>
-    <span style="color:#a2f">@Override</span>
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">stop</span><span style="color:#666">()</span> <span style="color:#666">{}</span>
-<span style="color:#666">}</span>
-</code></pre></div>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * Module interface for Fuseki.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * &lt;p&gt;
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * A module is additional code, usually in a separate jar, 
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> * but can also be part of the application code.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"> */</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">FusekiModule</span> <span style="color:#a2f;font-weight:bold">extends</span> SubsystemLifecycle <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Unique (within this server) name to identify this module.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * The default is to generate an UUID.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> String <span style="color:#00a000">name</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/** Module loaded */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f">@Override</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">start</span><span style="color:#666">()</span> <span style="color:#666">{}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">// ---- Build cycle
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Called at the start of &#34;build&#34; step. The builder has been set according to the
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * configuration. The &#34;configModel&#34; parameter is set if a configuration file was
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * used otherwise it is null.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configuration</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> builder<span style="color:#666">,</span> DataAccessPointRegistry dapRegistry<span style="color:#666">,</spa [...]
+</span></span><span style="display:flex;"><span>        dapRegistry<span style="color:#666">.</span><span style="color:#b44">accessPoints</span><span style="color:#666">().</span><span style="color:#b44">forEach</span><span style="color:#666">(</span>accessPoint<span style="color:#666">-&gt;</span>configDataAccessPoint<span style="color:#666">(</span>builder<span style="color:#666">,</span> accessPoint<span style="color:#666">,</span> configModel<span style="color:#666">));</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * This method is called for each {@link DataAccessPoint}
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * by the default implementation of {@link #configuration}.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">configDataAccessPoint</span><span style="color:#666">(</span>FusekiServer<span style="color:#666">.</span><span style="color:#b44">Builder</span> builder<span style="color:#666">,</span> DataAccessPoint dap<span style="color:#666">,</span> Model [...]
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Built, not started, about to be returned to the builder caller.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">server</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Server starting - called just before server.start happens.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverBeforeStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/**
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Server started - called just after server.start happens, and before server
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * .start() returns to the application.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverAfterStarting</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/** Server stopping.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Do not rely on this to clear up external resources.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     * Usually there is no stop phase and the JVM just exits or is killed externally.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     *
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">     */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">serverStopped</span><span style="color:#666">(</span>FusekiServer server<span style="color:#666">)</span> <span style="color:#666">{</span> <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">/** Module unloaded */</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f">@Override</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">stop</span><span style="color:#666">()</span> <span style="color:#666">{}</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span></code></pre></div>
   </article>
   
   <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
@@ -323,6 +330,7 @@ in the Fuseki examples directory.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-old-config-endpoint.html b/content/documentation/fuseki2/fuseki-old-config-endpoint.html
index a77f9dfd1..9673e2eff 100644
--- a/content/documentation/fuseki2/fuseki-old-config-endpoint.html
+++ b/content/documentation/fuseki2/fuseki-old-config-endpoint.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -273,6 +280,7 @@ additional dataset services are specified explicitly.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-quick-start.html b/content/documentation/fuseki2/fuseki-quick-start.html
index 3868b3da1..e9629dd47 100644
--- a/content/documentation/fuseki2/fuseki-quick-start.html
+++ b/content/documentation/fuseki2/fuseki-quick-start.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -251,6 +258,7 @@ servlet container such as <a href="http://tomcat.apache.org/">Apache Tomcat</a>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-security.html b/content/documentation/fuseki2/fuseki-security.html
index 6e85c5168..4bd4edd75 100644
--- a/content/documentation/fuseki2/fuseki-security.html
+++ b/content/documentation/fuseki2/fuseki-security.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -210,7 +217,7 @@ INI</a>
 documentation for best practices.</p>
 <p>As mentioned above, the default setup only restricts access to the admin pages
 of Fuseki. To avoid clashes with dataset names, the namespace of the admin
-interface starts with &lsquo;/$/', consult the <a href="../fuseki2/fuseki-server-protocol.html">Fuseki HTTP Administration Protocol
+interface starts with &lsquo;/$/&rsquo;, consult the <a href="../fuseki2/fuseki-server-protocol.html">Fuseki HTTP Administration Protocol
 </a> documentation for more details.</p>
 <p>If access to SPARQL endpoints should be restricted, additional <a href="https://shiro.apache.org/web.html#Web-WebINIconfiguration">Shiro
 ACLs</a> are necessary.
@@ -301,6 +308,7 @@ admin=pw
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-server-info.html b/content/documentation/fuseki2/fuseki-server-info.html
index 3c360451a..0a4fbfaf7 100644
--- a/content/documentation/fuseki2/fuseki-server-info.html
+++ b/content/documentation/fuseki2/fuseki-server-info.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -349,6 +356,7 @@ good request and bad requests.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-server-protocol.html b/content/documentation/fuseki2/fuseki-server-protocol.html
index 971cac381..c964f1f99 100644
--- a/content/documentation/fuseki2/fuseki-server-protocol.html
+++ b/content/documentation/fuseki2/fuseki-server-protocol.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -475,9 +482,9 @@ See <a href="fuseki-server-info.html">Fuseki Server Information</a> for details
 <p>Backups are written to the server local directory &lsquo;backups&rsquo; as gzip-compressed N-Quads files.</p>
 <p>See <a href="#tasks">Tasks</a> for how to monitor a backups progress.</p>
 <p>Return: A task is allocated a identifier (usually, a number).</p>
-<pre><code>{ &quot;taskId&quot; : &quot;{taskId}&quot; }
+<pre tabindex="0"><code>{ &#34;taskId&#34; : &#34;{taskId}&#34; }
 </code></pre><p>The task id can be used to construct a URL to get details of the task:</p>
-<pre><code>/$/tasks/{taskId}
+<pre tabindex="0"><code>/$/tasks/{taskId}
 </code></pre><p>Pattern: <code>/$/backups-list</code></p>
 <p>Returns a list of all the files in the backup area of the server. This is
 useful for managing the files externally.</p>
@@ -509,28 +516,28 @@ Pattern: <code>/$/tasks/{taskId}</code> – A particular task.</p>
 <p>Each background task has an id.  The URL <code>/$/tasks/{taskId}</code> gets a description about one single task.</p>
 <p>Details of the last few completed tasks are retained, up to a fixed number. The records will eventually be removed as later tasks complete, and the task URL will then return 404.</p>
 <p>Pattern: <code>/$/tasks</code> ; example:</p>
-<pre><code>[ { 
-    &quot;finished&quot; : &quot;2014-05-28T12:52:51.860+01:00&quot; ,
-    &quot;started&quot; : &quot;2014-05-28T12:52:50.859+01:00&quot; ,
-    &quot;task&quot; : &quot;sleep&quot; ,
-    &quot;taskId&quot; : &quot;1&quot; ,
-    &quot;success&quot; : true
+<pre tabindex="0"><code>[ { 
+    &#34;finished&#34; : &#34;2014-05-28T12:52:51.860+01:00&#34; ,
+    &#34;started&#34; : &#34;2014-05-28T12:52:50.859+01:00&#34; ,
+    &#34;task&#34; : &#34;sleep&#34; ,
+    &#34;taskId&#34; : &#34;1&#34; ,
+    &#34;success&#34; : true
   } ,
   { 
-    &quot;finished&quot; : &quot;2014-05-28T12:53:24.718+01:00&quot; ,
-    &quot;started&quot; : &quot;2014-05-28T12:53:14.717+01:00&quot; ,
-    &quot;task&quot; : &quot;sleep&quot; ,
-    &quot;taskId&quot; : &quot;2&quot; ,
-    &quot;success&quot; : true
+    &#34;finished&#34; : &#34;2014-05-28T12:53:24.718+01:00&#34; ,
+    &#34;started&#34; : &#34;2014-05-28T12:53:14.717+01:00&#34; ,
+    &#34;task&#34; : &#34;sleep&#34; ,
+    &#34;taskId&#34; : &#34;2&#34; ,
+    &#34;success&#34; : true
   }
 ]
 </code></pre><p>Pattern: <code>/$/tasks/1</code> : example:</p>
-<pre><code>[ { 
-    &quot;finished&quot; : &quot;2014-05-28T13:54:13.608+01:00&quot; ,
-    &quot;started&quot; : &quot;2014-05-28T13:54:03.607+01:00&quot; ,
-    &quot;task&quot; : &quot;backup&quot; ,
-    &quot;taskId&quot; : &quot;1&quot; ,
-    &quot;success&quot; : false
+<pre tabindex="0"><code>[ { 
+    &#34;finished&#34; : &#34;2014-05-28T13:54:13.608+01:00&#34; ,
+    &#34;started&#34; : &#34;2014-05-28T13:54:03.607+01:00&#34; ,
+    &#34;task&#34; : &#34;backup&#34; ,
+    &#34;taskId&#34; : &#34;1&#34; ,
+    &#34;success&#34; : false
   }
 ]
 </code></pre><p>This is inside an array to make the format returned the same as <code>/$/tasks</code>.</p>
@@ -603,6 +610,7 @@ Pattern: <code>/$/tasks/{taskId}</code> – A particular task.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/fuseki-webapp.html b/content/documentation/fuseki2/fuseki-webapp.html
index b4fe0660f..15a6587c0 100644
--- a/content/documentation/fuseki2/fuseki-webapp.html
+++ b/content/documentation/fuseki2/fuseki-webapp.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -258,10 +265,10 @@ made available and described on the
 logging configuration comes from the file <code>log4j2.properties</code> in the root of the
 unpacked war file, e.g. <code>/var/lib/tomcat9/webapps/fuseki/log4j2.properties</code>.</p>
 <p>The name of the file is taken from <code>web.xml</code>:</p>
-<p><context-param>
-<param-name>log4jConfiguration</param-name>
-<param-value>log4j2.properties</param-value>
-</context-param></p>
+  <context-param>
+    <param-name>log4jConfiguration</param-name>
+    <param-value>log4j2.properties</param-value>
+  </context-param>
 <p>This only applies when running in a webapp container. When run from the command
 line, the server looks for <code>log4j2.properties</code> in the current directory and if
 not found, uses a built-in configuration.</p>
@@ -272,10 +279,10 @@ be writable to Fuseki. To enable this area, add <code>ReadWritePaths=/etc/fuseki
 the file <code>/etc/systemd/system/tomcat9.service.d/override.conf</code>,
 creating the file if necessary.</p>
 <p><code>systemd</code> also captures standard out and routes it to the system journal:</p>
-<pre><code>  journalctl -u tomcat9
+<pre tabindex="0"><code>  journalctl -u tomcat9
 </code></pre><p>To direct the output to the traditional location of
 /var/log/tomcat9/catalina.out use the <code>StandardOutput</code> setting in <code>override.conf</code>:</p>
-<pre><code>    [Service]
+<pre tabindex="0"><code>    [Service]
    
     # Allow access to the Fuseki area
     ReadWritePaths=/etc/fuseki/
@@ -326,6 +333,7 @@ creating the file if necessary.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/index.html b/content/documentation/fuseki2/index.html
index fe10f07aa..41663a4d7 100644
--- a/content/documentation/fuseki2/index.html
+++ b/content/documentation/fuseki2/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -299,7 +306,7 @@ pull-requests.</p>
 <a href="https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-fuseki/">SNAPSHOT</a></p>
 <p>Source code:
 <a href="https://github.com/apache/jena/tree/main/jena-fuseki2">https://github.com/apache/jena/tree/main/jena-fuseki2</a></p>
-<p>The Fuseki code is under &ldquo;jena-fuseki2/&quot;:</p>
+<p>The Fuseki code is under &ldquo;jena-fuseki2/&rdquo;:</p>
 <table>
 <thead>
 <tr>
@@ -415,6 +422,7 @@ pull-requests.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/rdf-sparql-standards.html b/content/documentation/fuseki2/rdf-sparql-standards.html
index b48e9a9f6..0ff67b3e2 100644
--- a/content/documentation/fuseki2/rdf-sparql-standards.html
+++ b/content/documentation/fuseki2/rdf-sparql-standards.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -244,6 +251,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/fuseki2/soh.html b/content/documentation/fuseki2/soh.html
index 154dc9433..8dac88dfb 100644
--- a/content/documentation/fuseki2/soh.html
+++ b/content/documentation/fuseki2/soh.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">SOH</li>
+                <li class="breadcrumb-item active">SOH.HTML</li>
             
             
         
@@ -308,6 +315,7 @@ command:</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/geosparql/geosparql-assembler.html b/content/documentation/geosparql/geosparql-assembler.html
index a10789764..ff4d32e04 100644
--- a/content/documentation/geosparql/geosparql-assembler.html
+++ b/content/documentation/geosparql/geosparql-assembler.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -190,7 +197,7 @@ must be on the Fuseki server classpath, along with its dependencies.</p>
 <a href="https://repo1.maven.org/maven2/org/apache/jena/jena-geosparql/">Maven central repository org/apache/jena/jena-geosparql</a></p>
 <p>The GeoSPARQL assembler can be used in a Fuseki configuration file.</p>
 <p>This example is of a read-only:</p>
-<pre><code>PREFIX fuseki:    &lt;http://jena.apache.org/fuseki#&gt;
+<pre tabindex="0"><code>PREFIX fuseki:    &lt;http://jena.apache.org/fuseki#&gt;
 PREFIX rdf:       &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
 PREFIX rdfs:      &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
 PREFIX tdb2:      &lt;http://jena.apache.org/2016/tdb#&gt;
@@ -199,21 +206,21 @@ PREFIX ja:        &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;
 PREFIX geosparql: &lt;http://jena.apache.org/geosparql#&gt;
 
 &lt;#service&gt; rdf:type fuseki:Service;
-    fuseki:name &quot;geo&quot;;
+    fuseki:name &#34;geo&#34;;
     fuseki:endpoint [ fuseki:operation fuseki:query; ] ;
     fuseki:dataset &lt;#geo_ds&gt; .
 
 &lt;#geo_ds&gt; rdf:type geosparql:geosparqlDataset ;
-    geosparql:spatialIndexFile     &quot;DB/spatial.index&quot;;
+    geosparql:spatialIndexFile     &#34;DB/spatial.index&#34;;
     geosparql:dataset &lt;#baseDataset&gt; ;
     .
 
 &lt;#baseDataset&gt; rdf:type tdb2:DatasetTDB2 ;
-    tdb2:location &quot;DB/&quot; ;
+    tdb2:location &#34;DB/&#34; ;
     .
 </code></pre><p>It is possible to run with a data file loaded into memory and
 an spatial in-memory index:</p>
-<pre><code>PREFIX fuseki:    &lt;http://jena.apache.org/fuseki#&gt;
+<pre tabindex="0"><code>PREFIX fuseki:    &lt;http://jena.apache.org/fuseki#&gt;
 PREFIX rdf:       &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
 PREFIX rdfs:      &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
 
@@ -221,7 +228,7 @@ PREFIX ja:        &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;
 PREFIX geosparql: &lt;http://jena.apache.org/geosparql#&gt;
 
 &lt;#service&gt; rdf:type fuseki:Service;
-    fuseki:name &quot;ds&quot;;
+    fuseki:name &#34;ds&#34;;
     fuseki:endpoint [ fuseki:operation fuseki:query; ] ;
     fuseki:dataset &lt;#geo_ds&gt; .
 
@@ -234,9 +241,9 @@ PREFIX geosparql: &lt;http://jena.apache.org/geosparql#&gt;
     ja:data &lt;file:geosparql_data.ttl&gt; ;
     .
 </code></pre><p>The full assembler properties with the default settings is:</p>
-<pre><code>&lt;#geo_ds&gt; rdf:type geosparql:GeosparqlDataset ;
+<pre tabindex="0"><code>&lt;#geo_ds&gt; rdf:type geosparql:GeosparqlDataset ;
     # Build in-memory is absent.
-    geosparql:spatialIndexFile     &quot;spatial.index&quot;;
+    geosparql:spatialIndexFile     &#34;spatial.index&#34;;
 
     ## Default settings. See documentation for meanings.
     geosparql:inference            true ;
@@ -245,8 +252,8 @@ PREFIX geosparql: &lt;http://jena.apache.org/geosparql#&gt;
     geosparql:applyDefaultGeometry false ;
     
     # 3 item lists: [Geometry Literal, Geometry Transform, Query Rewrite]
-    geosparql:indexSizes           &quot;-1,-1,-1&quot; ;       # Default - unlimited.
-    geosparql:indexExpires         &quot;5000,5000,5000&quot; ; # Default - time in milliseconds.
+    geosparql:indexSizes           &#34;-1,-1,-1&#34; ;       # Default - unlimited.
+    geosparql:indexExpires         &#34;5000,5000,5000&#34; ; # Default - time in milliseconds.
 
     ## Required setting - data over which GeoSPARQL is applied.
     geosparql:dataset &lt;#baseDataset&gt; ;
@@ -288,6 +295,7 @@ PREFIX geosparql: &lt;http://jena.apache.org/geosparql#&gt;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/geosparql/geosparql-fuseki.html b/content/documentation/geosparql/geosparql-fuseki.html
index 4c9aaca41..1a99893c8 100644
--- a/content/documentation/geosparql/geosparql-fuseki.html
+++ b/content/documentation/geosparql/geosparql-fuseki.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -315,7 +322,7 @@ RDFS inferencing is applied using the GeoSPARQL schema to infer additional relat
 </li>
 </ul>
 <p>See <a href="https://github.com/galbiston/rdf-tables">rdf-tables</a> in <em>Output Formats/Serialisations</em> for supported RDF format keywords.</p>
-<p><strong>N.B.</strong> Windows Powershell will strip quotation pairs from arguments and so triple quotation pairs may be required, e.g. &ldquo;&ldquo;&ldquo;test.rdf&rdquo;&quot;&quot;. Otherwise, logging output will be sent to a file called &ldquo;xml&rdquo;. Also, &ldquo;The input line is too long&rdquo; error can mean the path to the  exceeds the character limit and needs shortening.</p>
+<p><strong>N.B.</strong> Windows Powershell will strip quotation pairs from arguments and so triple quotation pairs may be required, e.g. &ldquo;&ldquo;&ldquo;test.rdf&rdquo;&rdquo;&rdquo;. Otherwise, logging output will be sent to a file called &ldquo;xml&rdquo;. Also, &ldquo;The input line is too long&rdquo; error can mean the path to the  exceeds the character limit and needs shortening.</p>
 <h3 id="embedded-server">Embedded Server</h3>
 <p>Run within a Java application to provide GeoSPARQL support over HTTP to other applications:</p>
 <pre><code>FusekiLogging.setLogging();
@@ -389,7 +396,7 @@ e.g. <code>test.rdf#test&amp;xml,test2.rdf</code> will load <em>test.rdf</em> fi
 <h3 id="7-load-tabular-file-into-dataset">7) Load Tabular file into dataset</h3>
 <pre><code>--tabular_file, -tf
 </code></pre>
-<p>Comma separated list of [Tabular file path#graph name|delimiter] to load into dataset. See RDF Tables for table formatting. Graph name is optional and will use default graph. Column delimiter is optional and will default to COMMA. Any character except &lsquo;:', &lsquo;^&rsquo; and &lsquo;|&rsquo;. Keywords TAB, SPACE and COMMA are also supported.
+<p>Comma separated list of [Tabular file path#graph name|delimiter] to load into dataset. See RDF Tables for table formatting. Graph name is optional and will use default graph. Column delimiter is optional and will default to COMMA. Any character except &lsquo;:&rsquo;, &lsquo;^&rsquo; and &lsquo;|&rsquo;. Keywords TAB, SPACE and COMMA are also supported.
 e.g. <code>test.rdf#test|TAB,test2.rdf</code> will load <em>test.rdf</em> file into <em>test</em> graph as <em>TAB</em> delimited and <em>test2.rdf</em> into <em>default</em> graph as <em>COMMA</em> delimited.</p>
 <p>See RDF Tables project (<a href="https://github.com/galbiston/rdf-tables">https://github.com/galbiston/rdf-tables</a>) for more details on tabular format.</p>
 <p>Consider the <code>--inference</code>, <code>--default_geometry</code> and <code>--validate</code> options. These operations may add additional statements to the dataset.</p>
@@ -525,6 +532,7 @@ See <a href="index">GeoSPARQL Jena project</a> for more details.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/geosparql/index.html b/content/documentation/geosparql/index.html
index f3b50c994..c8c2fafd4 100644
--- a/content/documentation/geosparql/index.html
+++ b/content/documentation/geosparql/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -955,19 +962,30 @@ implementation based on reviewing several alternatives.</p>
 <tbody>
 <tr>
 <td>Implements all six components of the GeoSPARQL standard.</td>
-<td>Generally partially implement the Geometry Topology and Geometry Extensions. Do not implement the Query Rewrite</td>
+<td>Generally partially implement the Geometry Topology and Geometry Extensions. Do not implement the Query Rewrite Extension.</td>
+</tr>
+<tr>
+<td>Pure Java and does not require a supporting relational database. Configuration requires a single line of code (although Apache SIS may need some setting up, see above).</td>
+<td>Require setting up a database, configuring a geospatial extension and setting environment variables.</td>
+</tr>
+<tr>
+<td>Uses Jena, which conforms to the W3C standards for RDF and SPARQL. New versions of the standards will quickly feed through.</td>
+<td>Not fully RDF and SPARQL compliant, e.g. RDFS/OWL inferencing or SPARQL syntax. Adding your own schema may not produce inferences.</td>
 </tr>
 <tr>
-<td>Extension.</td>
-<td></td>
+<td>Automatically determines geometry properties and handles mixed cases of units or coordinate reference systems. The GeoSPARQL standard suggests this approach but does not require it.</td>
+<td>Tend to produce errors or no results in these situations.</td>
+</tr>
+<tr>
+<td>Performs indexing and caching on-demand which reduces set-up time and only performs calculations that are required.</td>
+<td>Perform indexing in the data loading phase and initialisation phase, which can lead to lengthy delays (even on relatively small datasets).</td>
+</tr>
+<tr>
+<td>Uses JTS which does not truncate coordinate precision and applies spatial equality.</td>
+<td>May truncate coordinate precision and apply lexical equality, which is quicker but does not comply with the GeoSPARQL standard.</td>
 </tr>
 </tbody>
 </table>
-<p>Pure Java and does not require a supporting relational database. Configuration requires a single line of code (although Apache SIS may need some setting up, see above).|Require setting up a database, configuring a geospatial extension and setting environment variables.
-Uses Jena, which conforms to the W3C standards for RDF and SPARQL. New versions of the standards will quickly feed through.|Not fully RDF and SPARQL compliant, e.g. RDFS/OWL inferencing or SPARQL syntax. Adding your own schema may not produce inferences.
-Automatically determines geometry properties and handles mixed cases of units or coordinate reference systems. The GeoSPARQL standard suggests this approach but does not require it.|Tend to produce errors or no results in these situations.
-Performs indexing and caching on-demand which reduces set-up time and only performs calculations that are required.|Perform indexing in the data loading phase and initialisation phase, which can lead to lengthy delays (even on relatively small datasets).
-Uses JTS which does not truncate coordinate precision and applies spatial equality.|May truncate coordinate precision and apply lexical equality, which is quicker but does not comply with the GeoSPARQL standard.</p>
 
   </article>
   
@@ -1048,6 +1066,7 @@ Uses JTS which does not truncate coordinate precision and applies spatial equali
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/index.html b/content/documentation/index.html
index 409548551..5acefb791 100644
--- a/content/documentation/index.html
+++ b/content/documentation/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -238,6 +245,7 @@ sections.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/index.xml b/content/documentation/index.xml
index c6e589090..3ded025a1 100644
--- a/content/documentation/index.xml
+++ b/content/documentation/index.xml
@@ -5,11 +5,7 @@
     <link>https://jena.apache.org/documentation.html</link>
     <description>Recent content in Documentations on Apache Jena</description>
     <generator>Hugo -- gohugo.io</generator>
-    <language>en</language>
-    
-	<atom:link href="https://jena.apache.org/documentation/index.xml" rel="self" type="application/rss+xml" />
-    
-    
+    <language>en</language><atom:link href="https://jena.apache.org/documentation/index.xml" rel="self" type="application/rss+xml" />
     <item>
       <title>A brief guide to Jena Eyeball</title>
       <link>https://jena.apache.org/documentation/archive/eyeball/eyeball-guide.html</link>
@@ -17,8 +13,7 @@
       
       <guid>https://jena.apache.org/documentation/archive/eyeball/eyeball-guide.html</guid>
       <description>This page is historical &amp;ldquo;for information only&amp;rdquo; - there is no Apache release of Eyeball and the code has not been updated for Jena3.
- The original source code is available. 
-So you&amp;rsquo;ve got Eyeball installed and you&amp;rsquo;ve run it on one of your files, and Eyeball doesn&amp;rsquo;t like it. You&amp;rsquo;re not sure why, or what to do about it. Here&amp;rsquo;s what&amp;rsquo;s going on.
+The original source code is available. So you&amp;rsquo;ve got Eyeball installed and you&amp;rsquo;ve run it on one of your files, and Eyeball doesn&amp;rsquo;t like it. You&amp;rsquo;re not sure why, or what to do about it. Here&amp;rsquo;s what&amp;rsquo;s going on.
 Eyeball inspects your model against a set of schemas.</description>
     </item>
     
@@ -39,7 +34,7 @@ To do this you will need a Fuseki installation, the Permissions Packages and a S
       
       <guid>https://jena.apache.org/documentation/</guid>
       <description>This section contains detailed information about the various Jena sub-systems, aimed at developers using Jena. For more general introductions, please refer to the Getting started and Tutorial sections.
-Documentation index  The RDF API - the core RDF API in Jena SPARQL - querying and updating RDF models using the SPARQL standards Fuseki - SPARQL server which can present RDF data and answer SPARQL queries over HTTP I/O - reading and writing RDF data RDF Connection - a SPARQL API for local datasets and remote services Assembler - describing recipes for constructing Jena models declaratively using RDF Inference - using the Jena rules engine and other inference algorithms to derive conseque [...]
+Documentation index The RDF API - the core RDF API in Jena SPARQL - querying and updating RDF models using the SPARQL standards Fuseki - SPARQL server which can present RDF data and answer SPARQL queries over HTTP I/O - reading and writing RDF data RDF Connection - a SPARQL API for local datasets and remote services Assembler - describing recipes for constructing Jena models declaratively using RDF Inference - using the Jena rules engine and other inference algorithms to derive consequen [...]
     </item>
     
     <item>
@@ -48,8 +43,7 @@ Documentation index  The RDF API - the core RDF API in Jena SPARQL - querying an
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/archive/hadoop/</guid>
-      <description>  The Jena Elephas module has been retired. The last release of Jena with Elephas is Jena 3.17.0. See jena-elephas/README.md. The original documentation.
-  </description>
+      <description>The Jena Elephas module has been retired. The last release of Jena with Elephas is Jena 3.17.0. See jena-elephas/README.md. The original documentation.</description>
     </item>
     
     <item>
@@ -103,7 +97,7 @@ Tasks The API is divided based upon implementations that support various common
       <guid>https://jena.apache.org/documentation/archive/hadoop/demo.html</guid>
       <description>The RDF Stats Demo is a pre-built application available as a ready to run Hadoop Job JAR with all dependencies embedded within it. The demo app uses the other libraries to allow calculating a number of basic statistics over any RDF data supported by Elephas.
 To use it you will first need to build it from source or download the relevant Maven artefact:
-&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-elephas-stats&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;x.y.z&amp;lt;/version&amp;gt; &amp;lt;classifier&amp;gt;hadoop-job&amp;lt;/classifier&amp;gt; &amp;lt;/dependency&amp;gt;  Where x.</description>
+&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-elephas-stats&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;x.y.z&amp;lt;/version&amp;gt; &amp;lt;classifier&amp;gt;hadoop-job&amp;lt;/classifier&amp;gt; &amp;lt;/dependency&amp;gt; Where x.</description>
     </item>
     
     <item>
@@ -125,7 +119,7 @@ Fuseki comes in two forms, a single system &amp;ldquo;webapp&amp;rdquo;, combine
       <description>An implementation of GeoSPARQL 1.0 standard for SPARQL query or API.
 Integration with Fuseki is provided either by using the GeoSPARQL assembler or using the self-contained original jena-fuseki-geosparql. In either case, this page describes the GeoSPARQL supported features.
 Getting Started GeoSPARQL Jena can be accessed as a library using Maven etc. from Maven Central.
-&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;  Features This implementation follows the 11-052r4 OGC GeoSPARQL standard (https://www.ogc.org/standards/geosparql). The implementation is pure Java and does not require any set-up or configuration of any third party relational databases and geospatial ex [...]
+&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Features This implementation follows the 11-052r4 OGC GeoSPARQL standard (https://www.ogc.org/standards/geosparql). The implementation is pure Java and does not require any set-up or configuration of any third party relational databases and geospatial ext [...]
     </item>
     
     <item>
@@ -147,8 +141,7 @@ The sequence from 0 to level 500 is the Jena platform initialization.</descripti
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/archive/sdb/</guid>
-      <description>  The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0. The original documentation.
-  </description>
+      <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0. The original documentation.</description>
     </item>
     
     <item>
@@ -159,7 +152,7 @@ The sequence from 0 to level 500 is the Jena platform initialization.</descripti
       <guid>https://jena.apache.org/documentation/shacl/</guid>
       <description>jena-shacl is an implementation of the W3C Shapes Constraint Language (SHACL). It implements SHACL Core and SHACL SPARQL Constraints.
 In addition, it provides:
- SHACL Compact Syntax SPARQL-based targets  Command line The command shacl introduces shacl operations; it takes a sub-command argument.
+SHACL Compact Syntax SPARQL-based targets Command line The command shacl introduces shacl operations; it takes a sub-command argument.
 To validate:
 shacl validate --shapes SHAPES.ttl --data DATA.ttl shacl v -s SHAPES.ttl -d DATA.ttl The shapes and data files can be the same; the --shapes is optional and defaults to the same as --data.</description>
     </item>
@@ -171,9 +164,10 @@ shacl validate --shapes SHAPES.ttl --data DATA.ttl shacl v -s SHAPES.ttl -d DATA
       
       <guid>https://jena.apache.org/documentation/shex/</guid>
       <description>jena-shex is an implementation of the ShEx (Shape Expressions) language.
- This implementation is experimental, starting with Jena 4.2.0. Please send usage reports and experience to  users@jena.apache.org. Status jena-shex reads ShExC (the compact syntax) files.
+This implementation is experimental, starting with Jena 4.2.0. Please send usage reports and experience to users@jena.apache.org. Status jena-shex reads ShExC (the compact syntax) files.
 Not currently supported:
- semantic actions EXTERNAL  Blank node label validation is meaningless in Jena because a blank node label is scoped to the file, and not retained after the file has been read.</description>
+semantic actions EXTERNAL Blank node label validation is meaningless in Jena because a blank node label is scoped to the file, and not retained after the file has been read.
+Command line The command shex introduces shex operations; it takes a sub-command argument.</description>
     </item>
     
     <item>
@@ -185,7 +179,8 @@ Not currently supported:
       <description>Jump to the &amp;ldquo;Changes&amp;rdquo; section.
 Overview The SPARQL specifications provide query, update and the graph store protocol (GSP). In addition, Jena provided store operations for named graph formats.
 For working with RDF data:
-   API GPI     Model Graph   Statement Triple   Resource Node   Literal Node   String Var   Dataset DatasetGraph    Quad    and for SPARQL,</description>
+API GPI Model Graph Statement Triple Resource Node Literal Node String Var Dataset DatasetGraph Quad and for SPARQL,
+API GPI RDFConnection RDFLink QueryExecution QueryExec UpdateExecution UpdateExec ResultSet RowSet ModelStore GSP ModelStore DSP Jena provides a single interface, RDFConnection for working with local and remote RDF data using these protocols in a unified way.</description>
     </item>
     
     <item>
@@ -195,7 +190,7 @@ For working with RDF data:
       
       <guid>https://jena.apache.org/documentation/query/</guid>
       <description>ARQ is a query engine for Jena that supports the SPARQL RDF Query language. SPARQL is the query language developed by the W3C RDF Data Access Working Group.
-ARQ Features  Standard SPARQL Free text search via Lucene SPARQL/Update Access and extension of the SPARQL algebra Support for custom filter functions, including javascript functions Property functions for custom processing of semantic relationships Aggregation, GROUP BY and assignment as SPARQL extensions Support for federated query Support for extension to other storage systems Client-support for remote access to any SPARQL endpoint  Introduction  A Brief Tutorial on SPARQL Application [...]
+ARQ Features Standard SPARQL Free text search via Lucene SPARQL/Update Access and extension of the SPARQL algebra Support for custom filter functions, including javascript functions Property functions for custom processing of semantic relationships Aggregation, GROUP BY and assignment as SPARQL extensions Support for federated query Support for extension to other storage systems Client-support for remote access to any SPARQL endpoint Introduction A Brief Tutorial on SPARQL Application AP [...]
     </item>
     
     <item>
@@ -218,7 +213,7 @@ PREFIX SELECT ?p ?q { . . . } GROUP BY ?</description>
       <description>The application API is in the package org.apache.jena.query.
 Other packages contain various parts of the system (execution engine, parsers, testing etc). Most applications will only need to use the main package. Only applications wishing to programmatically build queries or modify the behaviour of the query engine need to use the others packages directly.
 Key Classes The package org.apache.jena.query is the main application package.
- Query - a class that represents the application query.</description>
+Query - a class that represents the application query.</description>
     </item>
     
     <item>
@@ -231,7 +226,7 @@ Key Classes The package org.apache.jena.query is the main application package.
 This involves is syntactic extension and is available is the query is parsed with language Syntax.syntaxARQ (which is the default).
 See also SELECT expressions which is also a form of assignment.
 Assignment The general form is:
-LET ( variable := expression )  For example:</description>
+LET ( variable := expression ) For example:</description>
     </item>
     
     <item>
@@ -264,7 +259,7 @@ ARQ documentation index</description>
       <guid>https://jena.apache.org/documentation/query/collation.html</guid>
       <description>ARQ supports sorting results in a query. Users are able to specify an expression that can be a function (built-in function, custom function, or a variable).
 By default, results are sorted using the default behavior provided by the JVM. If you have the following query.
-SELECT ?label WHERE { VALUES ?label { &amp;quot;tsahurin kieli&amp;quot;@fi &amp;quot;tšekin kieli&amp;quot;@fi &amp;quot;tulun kieli&amp;quot;@fi &amp;quot;töyhtöhyyppä&amp;quot;@fi } } ORDER BY ?label  The results will be returned exactly in the following order.</description>
+SELECT ?label WHERE { VALUES ?label { &amp;quot;tsahurin kieli&amp;quot;@fi &amp;quot;tšekin kieli&amp;quot;@fi &amp;quot;tulun kieli&amp;quot;@fi &amp;quot;töyhtöhyyppä&amp;quot;@fi } } ORDER BY ?label The results will be returned exactly in the following order.</description>
     </item>
     
     <item>
@@ -304,8 +299,8 @@ See jena-examples:arq/examples/aggregates.</description>
       
       <guid>https://jena.apache.org/documentation/query/custom_service_executors.html</guid>
       <description>Since Jena 4.2.0, ARQ features a plugin system for custom service executors. The relevant classes are located in the package org.apache.jena.sparql.service and are summarized as follows:
-  ServiceExecutorRegistry: A registry that holds a list of service executors. When Jena starts up, it configures a default registry to handle SERVICE requests against HTTP SPARQL endpoints and registers it with the global ARQ context accessible under ARQ.getContext().
-  ServiceExecutorFactory: This is the main interface for custom SERVICE handler implementations:</description>
+ServiceExecutorRegistry: A registry that holds a list of service executors. When Jena starts up, it configures a default registry to handle SERVICE requests against HTTP SPARQL endpoints and registers it with the global ARQ context accessible under ARQ.getContext().
+ServiceExecutorFactory: This is the main interface for custom SERVICE handler implementations:</description>
     </item>
     
     <item>
@@ -356,10 +351,10 @@ Compare the output of this extension:</description>
       <guid>https://jena.apache.org/documentation/query/architecture.html</guid>
       <description>@@ Incomplete / misnamed?
 ARQ consists of the following parts:
-  The SPARQL abstract syntax tree (AST) and the SPARQL parser
-  The algebra generator that turns SPARQL AST into algebra expressions
- Implementation of the translation in the SPARQL specification. Quad version compiling SPARQL to quad expressions, not basic graph patterns.    Query engines to execute queries
- SPARQL protocol client - remote HTTP requests Reference engine - direct implementation of the algebra Quad engine - direct implementation of the algebra except The main engine TDB, a SPARQL database for large-sale persistent data    Result set handling for the SPARQL XML results format, the JSON and text versions.</description>
+The SPARQL abstract syntax tree (AST) and the SPARQL parser
+The algebra generator that turns SPARQL AST into algebra expressions
+Implementation of the translation in the SPARQL specification. Quad version compiling SPARQL to quad expressions, not basic graph patterns. Query engines to execute queries
+SPARQL protocol client - remote HTTP requests Reference engine - direct implementation of the algebra Quad engine - direct implementation of the algebra except The main engine TDB, a SPARQL database for large-sale persistent data Result set handling for the SPARQL XML results format, the JSON and text versions.</description>
     </item>
     
     <item>
@@ -401,7 +396,7 @@ ARQ does not output any logging messages at level INFO in normal operation. The
       
       <guid>https://jena.apache.org/documentation/query/negation.html</guid>
       <description>Negation by Failure (OPTIONAL + !BOUND) Standard SPARQL 1.0 can perform negation using the idiom of OPTIONAL/!BOUND. It is inconvenient and can be hard to use as complexity increases. SPARQL 1.1 supports additional operators for negation.
-# Names of people who have not stated that they know anyone PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; SELECT ?name WHERE { ?x foaf:givenName ?name . OPTIONAL { ?x foaf:knows ?who } . FILTER (!BOUND(?who)) }  EXISTS and NOT EXISTS The EXISTS and NOT EXISTS are now legal SPARQL 1.</description>
+# Names of people who have not stated that they know anyone PREFIX foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; SELECT ?name WHERE { ?x foaf:givenName ?name . OPTIONAL { ?x foaf:knows ?who } . FILTER (!BOUND(?who)) } EXISTS and NOT EXISTS The EXISTS and NOT EXISTS are now legal SPARQL 1.</description>
     </item>
     
     <item>
@@ -423,7 +418,7 @@ From your application The QueryExecutionHTTP has methods for creating a QueryExe
       
       <guid>https://jena.apache.org/documentation/query/rdf_lists.html</guid>
       <description>RDF collections, also called RDF lists, are difficult to query directly.
-ARQ provides a 3 property functions to work with RDF collections.  list:member &amp;ndash; members of a list list:index &amp;ndash; index of a member in a list list:length &amp;ndash; length of a list  list:member is similar to rdfs:member except for RDF lists. ARQ also provides rdfs:member.
+ARQ provides a 3 property functions to work with RDF collections. list:member &amp;ndash; members of a list list:index &amp;ndash; index of a member in a list list:length &amp;ndash; length of a list list:member is similar to rdfs:member except for RDF lists. ARQ also provides rdfs:member.
 See the property functions library page.
 ARQ documentation index</description>
     </item>
@@ -445,7 +440,7 @@ Expressions are enclosed in () and can be optionally named using AS. If no name
       
       <guid>https://jena.apache.org/documentation/query/algebra.html</guid>
       <description>A SPARQL query in ARQ goes through several stages of processing:
- String to Query (parsing) Translation from Query to a SPARQL algebra expression Optimization of the algebra expression Query plan determination and low-level optimization Evaluation of the query plan  This page describes how to access and use expressions in the SPARQL algebra within ARQ. The definition of the SPARQL algebra is to be found in the SPARQL specification in section 12.</description>
+String to Query (parsing) Translation from Query to a SPARQL algebra expression Optimization of the algebra expression Query plan determination and low-level optimization Evaluation of the query plan This page describes how to access and use expressions in the SPARQL algebra within ARQ. The definition of the SPARQL algebra is to be found in the SPARQL specification in section 12.</description>
     </item>
     
     <item>
@@ -454,11 +449,11 @@ Expressions are enclosed in () and can be optionally named using AS. If no name
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/query/update.html</guid>
-      <description>SPARQL Update is a W3C standard for an RDF update language with SPARQL syntax. It is described in &amp;ldquo;SPARQL 1.1 Update&amp;quot;.
+      <description>SPARQL Update is a W3C standard for an RDF update language with SPARQL syntax. It is described in &amp;ldquo;SPARQL 1.1 Update&amp;rdquo;.
 A SPARQL Update request is composed of a number of update operations, so in a single request graphs can be created, loaded with RDF data and modified.
 Some examples of ARQ&amp;rsquo;s SPARQL Update support are to be found in the download in jena-examples:arq/examples/update.
 The main API classes are:
- UpdateRequest - A list of Update to be performed.</description>
+UpdateRequest - A list of Update to be performed.</description>
     </item>
     
     <item>
@@ -507,6 +502,17 @@ Writing SPARQL Property Functions
 Similar to SPARQL Filter Functions, a SPARQL Property Function is an extension point of the SPARQL query language that allows a URI to name a function in the query processor.</description>
     </item>
     
+    <item>
+      <title>ARQ – Support</title>
+      <link>https://jena.apache.org/documentation/query/support.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://jena.apache.org/documentation/query/support.html</guid>
+      <description>Read the following first:
+Frequently Asked Questions Submitting a support request or bug reports The documentation Support for ARQ is provided via the Jena mailing list &amp;lt;mailto:users@jena.apache.org&amp;gt;.
+ARQ documentation index</description>
+    </item>
+    
     <item>
       <title>ARQ Downloads</title>
       <link>https://jena.apache.org/documentation/query/download.html</link>
@@ -528,17 +534,6 @@ Most property paths are now legal SPARQL 1.1 syntax, there are some advanced pro
 Path Language A property path expression (or just &amp;lsquo;path&amp;rsquo;) is similar to a string regular expression but over properties, not characters.</description>
     </item>
     
-    <item>
-      <title>ARQ – Support</title>
-      <link>https://jena.apache.org/documentation/query/support.html</link>
-      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-      
-      <guid>https://jena.apache.org/documentation/query/support.html</guid>
-      <description>Read the following first:
- Frequently Asked Questions Submitting a support request or bug reports The documentation  Support for ARQ is provided via the Jena mailing list &amp;lt;mailto:users@jena.apache.org&amp;gt;.
-ARQ documentation index</description>
-    </item>
-    
     <item>
       <title>Combining Apache Jena jars</title>
       <link>https://jena.apache.org/documentation/notes/jena-repack.html</link>
@@ -547,7 +542,7 @@ ARQ documentation index</description>
       <guid>https://jena.apache.org/documentation/notes/jena-repack.html</guid>
       <description>Apache Jena initializes uses Java&amp;rsquo;s ServiceLoader mechanism to locate initialization steps. The documentation for process in Jena is available here.
 There are a number of files (Java resources) in Jena jars named:
-META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle  Each has different contents, usually one or two lines.
+META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle Each has different contents, usually one or two lines.
 When making a combined jar (&amp;ldquo;uber-jar&amp;rdquo;, jar with dependencies) from Jena dependencies and application code, the contents of the Jena files must be combined and be present in the combined jar as a java resource of the same name.</description>
     </item>
     
@@ -558,9 +553,9 @@ When making a combined jar (&amp;ldquo;uber-jar&amp;rdquo;, jar with dependencie
       
       <guid>https://jena.apache.org/documentation/tools/</guid>
       <description>Jena includes various command-line utilities which can help you with a variety of tasks in developing Jena-based applications.
-Index of tools  schemagen using schemagen from maven  Setting up your Environment An environment variable JENA_HOME is used by all the command line tools to configure the class path automatically for you. You can set this up as follows:
+Index of tools schemagen using schemagen from maven Setting up your Environment An environment variable JENA_HOME is used by all the command line tools to configure the class path automatically for you. You can set this up as follows:
 On Linux / Mac
- export JENA_HOME=the directory you downloaded Jena to export PATH=$PATH:$JENA_HOME/bin  On Windows</description>
+export JENA_HOME=the directory you downloaded Jena to export PATH=$PATH:$JENA_HOME/bin On Windows</description>
     </item>
     
     <item>
@@ -569,7 +564,7 @@ On Linux / Mac
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/notes/concurrency-howto.html</guid>
-      <description>All datasets provide transactions. This is the preferred way to handle concurrenct access to data.    Applications need to be aware of the concurrency issues in access Jena models. API operations are not thread safe by default. Thread safety would simple ensure that the model data-structures remained intact but would not give an application consistent access to the RDF graph. It would also limit the throughput of multi-threaded applications on multiprocessor machines w [...]
+      <description>All datasets provide transactions. This is the preferred way to handle concurrenct access to data. Applications need to be aware of the concurrency issues in access Jena models. API operations are not thread safe by default. Thread safety would simple ensure that the model data-structures remained intact but would not give an application consistent access to the RDF graph. It would also limit the throughput of multi-threaded applications on multiprocessor machines wher [...]
     </item>
     
     <item>
@@ -599,8 +594,7 @@ Simple model creation The simplest way to create a model (if not the shortest) i
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/archive/csv/</guid>
-      <description>  This page covers the jena-csv module which has been retired. The last release of Jena with this module is Jena 3.9.0. See jena-csv/README.md. The original documentation.
-  </description>
+      <description>This page covers the jena-csv module which has been retired. The last release of Jena with this module is Jena 3.9.0. See jena-csv/README.md. The original documentation.</description>
     </item>
     
     <item>
@@ -610,7 +604,7 @@ Simple model creation The simplest way to create a model (if not the shortest) i
       
       <guid>https://jena.apache.org/documentation/archive/csv/csv_index.html</guid>
       <description>This page covers the jena-csv module which has been retired. The last release of Jena with this module is Jena 3.9.0. See jena-csv/README.md. This is the original documentation.
-  This module is about getting CSVs into a form that is amenable to Jena SPARQL processing, and doing so in a way that is not specific to CSV files. It includes getting the right architecture in place for regular table shaped data, using the core abstraction of PropertyTable.</description>
+This module is about getting CSVs into a form that is amenable to Jena SPARQL processing, and doing so in a way that is not specific to CSV files. It includes getting the right architecture in place for regular table shaped data, using the core abstraction of PropertyTable.</description>
     </item>
     
     <item>
@@ -620,7 +614,7 @@ Simple model creation The simplest way to create a model (if not the shortest) i
       
       <guid>https://jena.apache.org/documentation/archive/csv/design.html</guid>
       <description>Architecture The architecture of CSV PropertyTable mainly involves 2 components:
- PropertyTable GraphPropertyTable  PropertyTable A PropertyTable is collection of data that is sufficiently regular in shape it can be treated as a table. That means each subject has a value for each one of the set of properties. Irregularity in terms of missing values needs to be handled but not multiple values for the same property. With special storage, a PropertyTable</description>
+PropertyTable GraphPropertyTable PropertyTable A PropertyTable is collection of data that is sufficiently regular in shape it can be treated as a table. That means each subject has a value for each one of the set of properties. Irregularity in terms of missing values needs to be handled but not multiple values for the same property. With special storage, a PropertyTable</description>
     </item>
     
     <item>
@@ -630,8 +624,8 @@ Simple model creation The simplest way to create a model (if not the shortest) i
       
       <guid>https://jena.apache.org/documentation/archive/csv/get_started.html</guid>
       <description>Using CSV PropertyTable with Apache Maven See &amp;ldquo;Using Jena with Apache Maven&amp;rdquo; for full details.
-&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-csv&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;X.Y.Z&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;  Using CSV PropertyTable from Java through the API In order to switch on CSV PropertyTable, it&amp;rsquo;s required to register LangCSV into Jena RIOT, through a simple method call:
-import org.apache.jena.propertytable.lang.CSV2RDF; ... CSV2RDF.init() ;  It&amp;rsquo;s a static method call of registration, which needs to be run just one time for an application before using CSV PropertyTable (e.</description>
+&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-csv&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;X.Y.Z&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; Using CSV PropertyTable from Java through the API In order to switch on CSV PropertyTable, it&amp;rsquo;s required to register LangCSV into Jena RIOT, through a simple method call:
+import org.apache.jena.propertytable.lang.CSV2RDF; ... CSV2RDF.init() ; It&amp;rsquo;s a static method call of registration, which needs to be run just one time for an application before using CSV PropertyTable (e.</description>
     </item>
     
     <item>
@@ -641,7 +635,7 @@ import org.apache.jena.propertytable.lang.CSV2RDF; ... CSV2RDF.init() ;  It&amp;
       
       <guid>https://jena.apache.org/documentation/archive/csv/implementation.html</guid>
       <description>PropertyTable Implementations There are 2 implementations for PropertyTable. The pros and cons are summarised in the following table:
-   PropertyTable Implementation Description Supported Indexes Advantages Disadvantages     PropertyTableArrayImpl implemented by a two-dimensioned Java array of Nodes SPO, PSO compact memory usage, fast for querying with S and P, fast for query a whole Row slow for query with O, table Row/Column size provided   PropertyTableHashMapImpl implemented by several Java HashMaps PSO, POS fast for querying with O, table Row/Column size not required more memory usage for HashMaps    By default, [ [...]
+PropertyTable Implementation Description Supported Indexes Advantages Disadvantages PropertyTableArrayImpl implemented by a two-dimensioned Java array of Nodes SPO, PSO compact memory usage, fast for querying with S and P, fast for query a whole Row slow for query with O, table Row/Column size provided PropertyTableHashMapImpl implemented by several Java HashMaps PSO, POS fast for querying with O, table Row/Column size not required more memory usage for HashMaps By default, [PropertyTabl [...]
     </item>
     
     <item>
@@ -692,7 +686,7 @@ The effect of high-level optimizations can be seen using arq.</description>
       
       <guid>https://jena.apache.org/documentation/query/extension.html</guid>
       <description>There are several ways to extend the ARQ query engine within the SPARQL syntax.
- Expression Functions - additional operations in FILTERS, BIND and SELECT expressions. Property functions - adding predicates that introduce custom query stages DESCRIBE handlers Support for finding blank nodes by label Extending query evaluation for querying different storage and inference systems  Functions are standard part of SPARQL. ARQ provides application-written functions and provides a function library.</description>
+Expression Functions - additional operations in FILTERS, BIND and SELECT expressions. Property functions - adding predicates that introduce custom query stages DESCRIBE handlers Support for finding blank nodes by label Extending query evaluation for querying different storage and inference systems Functions are standard part of SPARQL. ARQ provides application-written functions and provides a function library. Applications can write and register their own functions.</description>
     </item>
     
     <item>
@@ -703,8 +697,7 @@ The effect of high-level optimizations can be seen using arq.</description>
       <guid>https://jena.apache.org/documentation/archive/eyeball/eyeball-getting-started.html</guid>
       <description>Eyeball is a Jena-based tool for checking RDF models (including OWL) for common problems. It is user-extensible using plugins.
 This page is historical &amp;ldquo;for information only&amp;rdquo; - there is no Apache release of Eyeball and the code has not been updated for Jena3.
- The original source code is available. 
-Documentation index  The brief guide. The manual. The JavaDoc.  Getting the Eyeball release Installation Eyeball needs to be compiled from source.</description>
+The original source code is available. Documentation index The brief guide. The manual. The JavaDoc. Getting the Eyeball release Installation Eyeball needs to be compiled from source.</description>
     </item>
     
     <item>
@@ -738,8 +731,9 @@ This build system allows the user to customize the docker image.</description>
       
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-embedded.html</guid>
       <description>Fuseki can be run within a larger JVM application as an embedded triplestore.
- Dependencies and Setup Logging Building a Server Examples  The application can safely access and modify the data published by the server if it does so inside a transaction using an appropriate storage choice. DatasetFactory.createTxnMem() is a good choice for in-memory use; TDB is a good choice for a persistent database.
-To build and start the server:</description>
+Dependencies and Setup Logging Building a Server Examples The application can safely access and modify the data published by the server if it does so inside a transaction using an appropriate storage choice. DatasetFactory.createTxnMem() is a good choice for in-memory use; TDB is a good choice for a persistent database.
+To build and start the server:
+Dataset ds = .</description>
     </item>
     
     <item>
@@ -750,7 +744,7 @@ To build and start the server:</description>
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-main.html</guid>
       <description>Fuseki main is a packaging of Fuseki as a triple store without a UI for administration.
 Fuseki can be run in the background by an application as an embedded server. The application can safely work with the dataset directly from java while having Fuseki provide SPARQL access over HTTP. An embedded server is useful for adding functionality around a triple store and also for development and testing.
- Running as a deployment or development server Running from Docker Running as an embedded server  Dependencies and Setup Logging Building a Server Examples    The main server does not depend on any files on disk (other than for databases provided by the application), and does not provide the Fuseki UI or admins functions to create dataset via HTTP.</description>
+Running as a deployment or development server Running from Docker Running as an embedded server Dependencies and Setup Logging Building a Server Examples The main server does not depend on any files on disk (other than for databases provided by the application), and does not provide the Fuseki UI or admins functions to create dataset via HTTP.</description>
     </item>
     
     <item>
@@ -772,7 +766,7 @@ PREFIX : &amp;lt;#&amp;gt; PREFIX fuseki: &amp;lt;http://jena.apache.org/fuseki#
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-old-config-endpoint.html</guid>
       <description>This page describes the original Fuseki2 server configuration syntax.
 Example:
-## Updatable dataset. &amp;lt;#service1&amp;gt; rdf:type fuseki:Service ; fuseki:name &amp;quot;ds&amp;quot; ; # http://host:port/ds fuseki:serviceQuery &amp;quot;sparql&amp;quot; ; # SPARQL query service fuseki:serviceQuery &amp;quot;query&amp;quot; ; # SPARQL query service (alt name) fuseki:serviceUpdate &amp;quot;update&amp;quot; ; # SPARQL update service fuseki:serviceReadWriteGraphStore &amp;quot;data&amp;quot; ; # SPARQL Graph Store Protocol (read and write) fuseki:serviceReadGraph [...]
+## Updatable dataset. &amp;lt;#service1&amp;gt; rdf:type fuseki:Service ; fuseki:name &amp;quot;ds&amp;quot; ; # http://host:port/ds fuseki:serviceQuery &amp;quot;sparql&amp;quot; ; # SPARQL query service fuseki:serviceQuery &amp;quot;query&amp;quot; ; # SPARQL query service (alt name) fuseki:serviceUpdate &amp;quot;update&amp;quot; ; # SPARQL update service fuseki:serviceReadWriteGraphStore &amp;quot;data&amp;quot; ; # SPARQL Graph Store Protocol (read and write) fuseki:serviceReadGraph [...]
     </item>
     
     <item>
@@ -793,7 +787,7 @@ FUSEKI_HOME - this contains the fixed files from the distribution and is used fo
       
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html</guid>
       <description>This page describes the HTTP Protocol used to control an Fuseki server via its administrative interface.
- Operations Server Information Datasets and Services  Adding a Dataset and its Services Removing a Dataset Dormant and Active   Removing a dataset  All admin operations have URL paths starting /$/ to avoid clashes with dataset names and this prefix is reserved for the Fuseki control functions. Further operations may be added within this naming scheme.</description>
+Operations Server Information Datasets and Services Adding a Dataset and its Services Removing a Dataset Dormant and Active Removing a dataset All admin operations have URL paths starting /$/ to avoid clashes with dataset names and this prefix is reserved for the Fuseki control functions. Further operations may be added within this naming scheme.</description>
     </item>
     
     <item>
@@ -804,7 +798,8 @@ FUSEKI_HOME - this contains the fixed files from the distribution and is used fo
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-logging.html</guid>
       <description>Fuseki logs operation details and also provides a standard NCSA request log.
 Logging is via SLF4J over Apache Log4J2, or by the Tomcat configuration if running the WAR file.
-   Full Log name Usage     org.apache.jena.fuseki.Server General Server Messages   org.apache.jena.fuseki.Request NCSA request Log   org.apache.jena.fuseki.Fuseki The HTTP request log   org.apache.jena.fuseki.Admin Administration operations   org.apache.jena.fuseki.Builder Dataset and service build operations   org.</description>
+Full Log name Usage org.apache.jena.fuseki.Server General Server Messages org.apache.jena.fuseki.Request NCSA request Log org.apache.jena.fuseki.Fuseki The HTTP request log org.apache.jena.fuseki.Admin Administration operations org.apache.jena.fuseki.Builder Dataset and service build operations org.apache.jena.fuseki.Config Configuration NCSA request Log This log is in NCSA extended/combined log format.
+Many web log analysers can process this format.</description>
     </item>
     
     <item>
@@ -825,7 +820,7 @@ Fuseki Modules are loaded use the JDK ServiceLoader by being placing a jar file
       
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-quick-start.html</guid>
       <description>This page describes how to achieve certain common tasks in the most direct way possible.
-Running with Apache Tomcat and loading a file.  Unpack the distribution. Copy the WAR file into the Apache tomcat webapp directory, under the name &amp;lsquo;fuseki&amp;rsquo; If the user under which Apache tomcat is running does not have write access to /etc, then please make sure to set the environment variable FUSEKI_BASE, whereas the value should be a directory where the user running Apache tomcat is able to write to.</description>
+Running with Apache Tomcat and loading a file. Unpack the distribution. Copy the WAR file into the Apache tomcat webapp directory, under the name &amp;lsquo;fuseki&amp;rsquo; If the user under which Apache tomcat is running does not have write access to /etc, then please make sure to set the environment variable FUSEKI_BASE, whereas the value should be a directory where the user running Apache tomcat is able to write to.</description>
     </item>
     
     <item>
@@ -837,7 +832,7 @@ Running with Apache Tomcat and loading a file.  Unpack the distribution. Copy th
       <description>A Fuseki server is configured by defining the data services (data and actions available on the data). There is also server configuration although this is often unnecessary.
 The data services configuration can come from:
 For Fuseki Full (webapp with UI):
- The directory FUSEKI_BASE/configuration/ with one data service assembler per file (includes endpoint details and the dataset description.) The system database. This includes uploaded assembler files. It also keeps the state of each data service (whether it&amp;rsquo;s active or offline).</description>
+The directory FUSEKI_BASE/configuration/ with one data service assembler per file (includes endpoint details and the dataset description.) The system database. This includes uploaded assembler files. It also keeps the state of each data service (whether it&amp;rsquo;s active or offline).</description>
     </item>
     
     <item>
@@ -857,10 +852,10 @@ Endpoints The following servers endpoints are available. They are present in Fus
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/archive/serving_data/fuseki1.html</guid>
-      <description>See the Fuseki2 documentation.   This page covers Fuseki v1. Fuseki1 is deprecated and has been retired. The last release of Jena with this module is Jena 3.9.0.
-  Fuseki is a SPARQL server. It provides REST-style SPARQL HTTP Update, SPARQL Query, and SPARQL Update using the SPARQL protocol over HTTP.
+      <description>See the Fuseki2 documentation. This page covers Fuseki v1. Fuseki1 is deprecated and has been retired. The last release of Jena with this module is Jena 3.9.0.
+Fuseki is a SPARQL server. It provides REST-style SPARQL HTTP Update, SPARQL Query, and SPARQL Update using the SPARQL protocol over HTTP.
 The relevant SPARQL standards are:
- SPARQL 1.1 Query SPARQL 1.1 Update SPARQL 1.1 Protocol SPARQL 1.1 Graph Store HTTP Protocol  Download Fuseki1 Binaries for Fuseki1 are available from the maven repositories.</description>
+SPARQL 1.1 Query SPARQL 1.1 Update SPARQL 1.1 Protocol SPARQL 1.1 Graph Store HTTP Protocol Download Fuseki1 Binaries for Fuseki1 are available from the maven repositories.</description>
     </item>
     
     <item>
@@ -870,8 +865,8 @@ The relevant SPARQL standards are:
       
       <guid>https://jena.apache.org/documentation/fuseki2/rdf-sparql-standards.html</guid>
       <description>SPARQL Standards The relevant SPARQL 1.1 standards are:
- SPARQL 1.1 Query SPARQL 1.1 Update SPARQL 1.1 Protocol SPARQL 1.1 Graph Store HTTP Protocol SPARQL 1.1 Query Results JSON Format SPARQL 1.1 Query Results CSV and TSV Formats SPARQL Query Results XML Format  RDF Standards Some RDF 1.1 standards
- RDF 1.1 Turtle RDF 1.1 Trig RDF 1.1 N-Triples RDF 1.1 N-Quads JSON-LD  </description>
+SPARQL 1.1 Query SPARQL 1.1 Update SPARQL 1.1 Protocol SPARQL 1.1 Graph Store HTTP Protocol SPARQL 1.1 Query Results JSON Format SPARQL 1.1 Query Results CSV and TSV Formats SPARQL Query Results XML Format RDF Standards Some RDF 1.1 standards
+RDF 1.1 Turtle RDF 1.1 Trig RDF 1.1 N-Triples RDF 1.1 N-Quads JSON-LD </description>
     </item>
     
     <item>
@@ -880,7 +875,7 @@ The relevant SPARQL standards are:
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/notes/</guid>
-      <description> Dataset Transactions Concurrency how-to Handling concurrent access to Jena models Event handler how-to Responding to events Stream manager how-to Redirecting URLs to local files Model factory Creating Jena models of various kinds RDF frames Viewing RDF statements as frame-like objects Reification API support for RDF reification Typed literals Creating and extracting RDF typed literals SSE SPARQL Syntax Expressions Repacking Jena jars Jena Initialization  </description>
+      <description> Dataset Transactions Concurrency how-to Handling concurrent access to Jena models Event handler how-to Responding to events Stream manager how-to Redirecting URLs to local files Model factory Creating Jena models of various kinds RDF frames Viewing RDF statements as frame-like objects Reification API support for RDF reification Typed literals Creating and extracting RDF typed literals SSE SPARQL Syntax Expressions Repacking Jena jars Jena Initialization </description>
     </item>
     
     <item>
@@ -891,7 +886,7 @@ The relevant SPARQL standards are:
       <guid>https://jena.apache.org/documentation/geosparql/geosparql-assembler.html</guid>
       <description>Details of the GeoSPARQL support are proivded on the GeoSPARQL page.
 The assembler for GeoSPARQL support is part of the jena-geosparql artifact and must be on the Fuseki server classpath, along with its dependencies.
-&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;  or download the binary from the Maven central repository org/apache/jena/jena-geosparql
+&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; or download the binary from the Maven central repository org/apache/jena/jena-geosparql
 The GeoSPARQL assembler can be used in a Fuseki configuration file.
 This example is of a read-only:
 PREFIX fuseki: &amp;lt;http://jena.apache.org/fuseki#&amp;gt; PREFIX rdf: &amp;lt;http://www.</description>
@@ -906,7 +901,7 @@ PREFIX fuseki: &amp;lt;http://jena.apache.org/fuseki#&amp;gt; PREFIX rdf: &amp;l
       <description>This application provides a HTTP server compliant with the GeoSPARQL standard.
 GeoSPARQL can also be integrated with Fuseki using the GeoSPARQL assembler with a general Fuseki server.
 jena-fuseki-geosparql GeoSPARQL Fuseki can be accessed as an embedded server using Maven etc. from Maven Central or run from the command line. SPARQL queries directly on Jena Datasets and Models can be done using the GeoSPARQL Jena module.
-&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-fuseki-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt;  or download the binary from the Maven central repository org/apache/jena/jena-fuseki-geosparql</description>
+&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.jena&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jena-fuseki-geosparql&amp;lt;/artifactId&amp;gt; &amp;lt;version&amp;gt;...&amp;lt;/version&amp;gt; &amp;lt;/dependency&amp;gt; or download the binary from the Maven central repository org/apache/jena/jena-fuseki-geosparql</description>
     </item>
     
     <item>
@@ -918,7 +913,7 @@ jena-fuseki-geosparql GeoSPARQL Fuseki can be accessed as an embedded server usi
       <description>Old documentation (Jena 3.1.1 to Jena 4.2.0)
 Jena 4.3.0 and later uses the JDK java.net.http package. Jena adds API support for challenge-based authentication and also provide HTTP digest authentication.
 Authentication There are 5 variations:
- Basic authentication Challenge-Basic authentication Challenge-Digest authentication URL user (that is, user@host.net in the URL) URL user and password in the URL (that is, user:password@host.net in the URL)  Basic authentication occurs where the app provides the user and password information to the JDK HttpClient and that information is always used when sending HTTP requests with that HttpClient.</description>
+Basic authentication Challenge-Basic authentication Challenge-Digest authentication URL user (that is, user@host.net in the URL) URL user and password in the URL (that is, user:password@host.net in the URL) Basic authentication occurs where the app provides the user and password information to the JDK HttpClient and that information is always used when sending HTTP requests with that HttpClient.</description>
     </item>
     
     <item>
@@ -928,7 +923,7 @@ Authentication There are 5 variations:
       
       <guid>https://jena.apache.org/documentation/archive/versions/http-auth-old.html</guid>
       <description>Documentation for HTTP Authentication (Jena3.1.1 to Jena 4.2.0) using Apache Commons HttpClient.
- After Jena 3.1.0, Jena exposes the underlying HTTP Commons functionality to support a range of authentication mechanisms as well as other HTTP configuration. From Jena 3.0.0 through Jena 3.1.0 there is a Jena-specific framework that provides a uniform mechanism for HTTP authentication. This documentation is therefore divided into two sections. The first explains how to use HTTP Commons code, and the second explains the older Jena-specific functionality.</description>
+After Jena 3.1.0, Jena exposes the underlying HTTP Commons functionality to support a range of authentication mechanisms as well as other HTTP configuration. From Jena 3.0.0 through Jena 3.1.0 there is a Jena-specific framework that provides a uniform mechanism for HTTP authentication. This documentation is therefore divided into two sections. The first explains how to use HTTP Commons code, and the second explains the older Jena-specific functionality.</description>
     </item>
     
     <item>
@@ -938,9 +933,8 @@ Authentication There are 5 variations:
       
       <guid>https://jena.apache.org/documentation/rdf/datasets.html</guid>
       <description>The in-memory, transactional dataset provides a dataset with full ACID transaction semantics, including abort. It provides for multiple readers and a concurrent writer together with full snapshot isolation of the dataset. Readers see an unchanging, consistent dataset where aggregate operations return stable results.
-First introduced in Jena version 3.0.1 as a beta, then in 3.1.0.
-During the beta phase, please log any issues with Apache Jena JIRA.
-API use A new instance of the class is obtained by a call to DatasetFactory.</description>
+API use A new instance of the class is obtained by a call to DatasetFactory.createTxnMem():
+Dataset ds = DatasetFactory.createTxnMem() ; This can then be used by the application for reading:</description>
     </item>
     
     <item>
@@ -951,7 +945,7 @@ API use A new instance of the class is obtained by a call to DatasetFactory.</de
       <guid>https://jena.apache.org/documentation/assembler/inside-assemblers.html</guid>
       <description>This document describes Jena&amp;rsquo;s built-in assembler classes and how to write and integrate your own assemblers. If you just need a quick guide to the common model specifications, see the assembler quickstart; if you want more details on writing assembler descriptions, see the assembler howto.
 The Assembler interface An Assembler is an object that builds objects (most importantly, Models) from RDF descriptions.
-public Object open( Assembler a, Resource root, Mode mode ); public Object open( Assembler a, Resource root ); public Object open( Resource root ); public Model openModel( Resource root ); public Model openModel( Resource root, Mode mode );  The fundamental method is the first: all the others are shorthands for ways of calling it.</description>
+public Object open( Assembler a, Resource root, Mode mode ); public Object open( Assembler a, Resource root ); public Object open( Resource root ); public Model openModel( Resource root ); public Model openModel( Resource root, Mode mode ); The fundamental method is the first: all the others are shorthands for ways of calling it.</description>
     </item>
     
     <item>
@@ -981,7 +975,7 @@ What is an Assembler specification? An Assembler specification is an RDF descrip
       
       <guid>https://jena.apache.org/documentation/extras/</guid>
       <description>Jena Extra modules are modules that provide utilities and larger packages that make Apache Jena development or usage easier but that do not fall within the standard Jena framework.
-Sub Packages  Bulk retrieval and caching with SERVICE clauses Query Builder  </description>
+Sub Packages Bulk retrieval and caching with SERVICE clauses Query Builder </description>
     </item>
     
     <item>
@@ -991,9 +985,8 @@ Sub Packages  Bulk retrieval and caching with SERVICE clauses Query Builder  </d
       
       <guid>https://jena.apache.org/documentation/archive/eyeball/eyeball-manual.html</guid>
       <description>This page is historical &amp;ldquo;for information only&amp;rdquo; - there is no Apache release of Eyeball and the code has not been updated for Jena3.
- The original source code is available. 
-This document describes Eyeball, an &amp;ldquo;RDF lint&amp;quot;. See the release notes for descriptions of changes from previous versions. Eyeball was a part of the Jena family of RDF/OWL tools.
-Throughout this document, the prefix eye: stands for the URL http://jena.</description>
+The original source code is available. This document describes Eyeball, an &amp;ldquo;RDF lint&amp;rdquo;. See the release notes for descriptions of changes from previous versions. Eyeball was a part of the Jena family of RDF/OWL tools.
+Throughout this document, the prefix eye: stands for the URL http://jena.hpl.hp.com/Eyeball\#.</description>
     </item>
     
     <item>
@@ -1003,7 +996,7 @@ Throughout this document, the prefix eye: stands for the URL http://jena.</descr
       
       <guid>https://jena.apache.org/documentation/query/text-query.html</guid>
       <description>This extension to ARQ combines SPARQL and full text search via Lucene. It gives applications the ability to perform indexed full text searches within SPARQL queries. Here is a version compatibility table:
-    Jena   Lucene   Solr   ElasticSearch      upto 3.2.0 5.x or 6.x 5.x or 6.x not supported   3.3.0 - 3.9.0 6.4.x not supported 5.2.2 - 5.</description>
+Jena Lucene Solr ElasticSearch upto 3.2.0 5.x or 6.x 5.x or 6.x not supported 3.3.0 - 3.9.0 6.4.x not supported 5.2.2 - 5.2.13 3.10.0 7.4.0 not supported 6.4.2 3.15.0 - 3.17.0 7.7.x not supported 6.8.6 4.0.0 - 4.6.1 8.</description>
     </item>
     
     <item>
@@ -1012,7 +1005,7 @@ Throughout this document, the prefix eye: stands for the URL http://jena.</descr
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/javadoc.html</guid>
-      <description> Jena Core JavaDoc ARQ JavaDoc (SPARQL) TDB JavaDoc RDF Connection Fuseki JavaDoc  Fuseki2 Webapp Fuseki2 Main   Text search SHACL ShEx RDF Patch GeoSPARQL Query Builder Service Enhancer Security Permissions JavaDoc JDBC JavaDoc  </description>
+      <description> Jena Core JavaDoc ARQ JavaDoc (SPARQL) TDB JavaDoc RDF Connection Fuseki JavaDoc Fuseki2 Webapp Fuseki2 Main Text search SHACL ShEx RDF Patch GeoSPARQL Query Builder Service Enhancer Security Permissions JavaDoc JDBC JavaDoc </description>
     </item>
     
     <item>
@@ -1034,7 +1027,7 @@ It provides type 4 drivers in that they are pure Java based but the drivers are
       <guid>https://jena.apache.org/documentation/jdbc/drivers.html</guid>
       <description>Jena JDBC comes with three built in drivers by default with the option of building custom drivers if desired. This page covers the differences between the provided drivers and the connection URL options for each.
 Connection URL Basics Connection URLs for Jena JDBC drivers have a common format, they all start with the following:
-jdbc:jena:foo:  Where foo is a driver specific prefix that indicates which specific driver implementation is being used.</description>
+jdbc:jena:foo: Where foo is a driver specific prefix that indicates which specific driver implementation is being used.</description>
     </item>
     
     <item>
@@ -1054,7 +1047,7 @@ Prerequisites We&amp;rsquo;ll assume that you have a basic familiarity with RDF
       
       <guid>https://jena.apache.org/documentation/permissions/</guid>
       <description>Jena Permissions is a SecurityEvaluator interface and a set of dynamic proxies that apply that interface to Jena Graphs, Models, and associated methods and classes. It does not implement any specific security policy but provides a framework for developers or integrators to implement any desired policy.
-Documentation  Overview Usage Notes Design Security Evaluator implementation Assembler for a Secured Model Adding Jena Permissions to Fuseki  Overview Jena Permissions transparently intercepts calls to the Graph or Model interface, evaluates access restrictions and either allows or rejects the access.</description>
+Documentation Overview Usage Notes Design Security Evaluator implementation Assembler for a Secured Model Adding Jena Permissions to Fuseki Overview Jena Permissions transparently intercepts calls to the Graph or Model interface, evaluates access restrictions and either allows or rejects the access.</description>
     </item>
     
     <item>
@@ -1064,10 +1057,10 @@ Documentation  Overview Usage Notes Design Security Evaluator implementation Ass
       
       <guid>https://jena.apache.org/documentation/permissions/assembler.html</guid>
       <description>Jena Permissions provides a standard Jena assembler making it easy to use the SecuredModel in an Assembler based environment. To use the permissions assembler the assembler file must contain the lines:
-[] ja:loadClass &amp;quot;org.apache.jena.permissions.SecuredAssembler&amp;quot; . sec:Model rdfs:subClassOf ja:NamedModel .  The secured assembler provides XXXXXXXXXXXx properties for the assembler files.
+[] ja:loadClass &amp;quot;org.apache.jena.permissions.SecuredAssembler&amp;quot; . sec:Model rdfs:subClassOf ja:NamedModel . The secured assembler provides XXXXXXXXXXXx properties for the assembler files.
 Assuming we define:
- @prefix sec: &amp;lt;http://apache.org/jena/permissions/Assembler#&amp;gt; .  Then the following resources are defined:
-  sec:Model - A secured model.</description>
+@prefix sec: &amp;lt;http://apache.org/jena/permissions/Assembler#&amp;gt; . Then the following resources are defined:
+sec:Model - A secured model. One against which the security evaluator is running access checks.</description>
     </item>
     
     <item>
@@ -1088,7 +1081,7 @@ The graph or model is created by the org.apache.jena.permissions.Factory object
       <guid>https://jena.apache.org/documentation/permissions/migration2To3.html</guid>
       <description>When Jena moved from version 2 to version 3 there was a major renaming of packages. One of the packages renamed was the Jena Permissions package. It was formerly named Jena Security. There are several changes that need to occur to migrate from jena-security version 2.x to jena-permissions version 3.x.
 Changes Package Rename There are two major changes to package names.
-  As with the rest of the Jena code all references to com.</description>
+As with the rest of the Jena code all references to com.</description>
     </item>
     
     <item>
@@ -1097,7 +1090,7 @@ Changes Package Rename There are two major changes to package names.
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/permissions/evaluator.html</guid>
-      <description>Overview The SecurityEvaluator interface defines the access control operations. It provides the interface between the authentication (answers the question: &amp;ldquo;who are you?&amp;quot;) and the authorization (answers the question: &amp;ldquo;what can you do?&amp;quot;), as such it provides access to the current principal (user). The javadocs contain detailed requirements for implementations of the SecurityEvaluator interface, short notes are provided below.
+      <description>Overview The SecurityEvaluator interface defines the access control operations. It provides the interface between the authentication (answers the question: &amp;ldquo;who are you?&amp;rdquo;) and the authorization (answers the question: &amp;ldquo;what can you do?&amp;rdquo;), as such it provides access to the current principal (user). The javadocs contain detailed requirements for implementations of the SecurityEvaluator interface, short notes are provided below.
 NOTE The permissions system caches intermediate results and will only call the evaluator if the answer is not already in the cache.</description>
     </item>
     
@@ -1112,54 +1105,15 @@ Each of the builders has a series of methods to define the query. Each method re
 SelectBuilder sb = new SelectBuilder() .addVar( &amp;quot;*&amp;quot; ) .</description>
     </item>
     
-    <item>
-      <title>Jena RDF XML</title>
-      <link>https://jena.apache.org/documentation/io/rdfxml-io.html</link>
-      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-      
-      <guid>https://jena.apache.org/documentation/io/rdfxml-io.html</guid>
-      <description>This is a guide to the RDF/XML I/O subsystem of Jena.
-The RDF/XML parser is designed for use with RIOT and to have the same handling of errors, IRI resolution, and treatment of base IRIs as other RIOT readers.
-RDF/XML Input The usual way to access the RDF/XML parser is via RDFDataMgr or RDFParser.
-Model model = RDFDataMgr.loadModel(&amp;quot;data.rdf&amp;quot;);  or
-Model model = RDFParser.source(&amp;quot;data.rdf&amp;quot;).toModel();  The original &amp;ldquo;ARP&amp;rdquo; parser is still available bu tmaybe pahsed out.</description>
-    </item>
-    
     <item>
       <title>Jena RDF/XML How-To</title>
       <link>https://jena.apache.org/documentation/io/rdfxml_howto.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/io/rdfxml_howto.html</guid>
-      <description>Legacy Documentation : may not be up-to-date
- This is a guide to the RDF/XML I/O subsystem of Jena, ARP. The first section gives a quick introduction to the I/O subsystem. The other sections are aimed at users wishing to use advanced features within the RDF/XML I/O subsystem.
+      <description>This is a guide to the RDF/XML I/O subsystem of Jena, ARP. The first section gives a quick introduction to the I/O subsystem. The other sections are aimed at users wishing to use advanced features within the RDF/XML I/O subsystem.
 Other content related to Jena RDF/XML How-To includes:
- Details of ARP, the Jena RDF/XML parser  Quick Introduction The main I/O methods in Jena use InputStreams and OutputStreams.</description>
-    </item>
-    
-    <item>
-      <title>Jena RDF/XML Input How-To</title>
-      <link>https://jena.apache.org/documentation/io/rdfxml-input.html</link>
-      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-      
-      <guid>https://jena.apache.org/documentation/io/rdfxml-input.html</guid>
-      <description>Legacy Documentation : may not be up-to-date
-Original RDF/XML HowTo.
- This is a guide to the RDF/XML legacy input subsystem of Jena, ARP.
-Advanced RDF/XML Input For access to these advanced features, first get an RDFReader object that is an instance of an ARP parser, by using the getReader() method on any Model. It is then configured using the [setProperty](/documentation/javadoc/jena/org/apache/jena/rdfxml/xmlinput0/JenaReader.html#setProperty(java.lang.String, java.lang.Object))(String, Object) method. This changes the properties for parsing RDF/XML.</description>
-    </item>
-    
-    <item>
-      <title>Jena RDF/XML Output How-To</title>
-      <link>https://jena.apache.org/documentation/io/rdfxml-output.html</link>
-      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
-      
-      <guid>https://jena.apache.org/documentation/io/rdfxml-output.html</guid>
-      <description>Legacy Documentation : may not be up-to-date
-Original RDF/XML HowTo.
- Advanced RDF/XML Output Two forms for output are provided: pretty printed RDF/XML (&amp;ldquo;RDF/XML-ABBREV&amp;rdquo;) or plain RDF/XML
-While some of the code is shared, these two writers are really very different, resulting in different but equivalent output. &amp;ldquo;RDF/XML-ABBREV&amp;rdquo; is slower, but should produce more readable XML.
-Properties to Control RDF/XML Output  Property NameDescriptionValue classLegal Values  xmlbase The value to be included for an xml:base attribute on the root element in the file.</description>
+Details of ARP, the Jena RDF/XML parser Quick Introduction The main I/O methods in Jena use InputStreams and OutputStreams. This is import to correctly handle character sets.</description>
     </item>
     
     <item>
@@ -1180,7 +1134,7 @@ Schemagen is typically invoked from the command line or from a built script (suc
       <guid>https://jena.apache.org/documentation/txn/</guid>
       <description>This page gives an overview of transactions in Jena.
 There are two API for transactions: the basic transaction interface styled after the conventional begin-commit and a higher level Txn API that builds on the basic API using Java8 features.
-APIs  Basic API for Transactions Txn, a high level API to transactions  Overview Transaction provide applications with a safe way to use and update data between threads. The properties of transactions are ACID</description>
+APIs Basic API for Transactions Txn, a high level API to transactions Overview Transaction provide applications with a safe way to use and update data between threads. The properties of transactions are ACID</description>
     </item>
     
     <item>
@@ -1189,7 +1143,7 @@ APIs  Basic API for Transactions Txn, a high level API to transactions  Overview
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/txn/transactions_api.html</guid>
-      <description>API for Transactions  Read transactions Write transactions Transaction promotion   Txn - A higher level API to transactions  API for Transactions This page describes the basic transaction API in Jena (3.1.0 and later).
+      <description>API for Transactions Read transactions Write transactions Transaction promotion Txn - A higher level API to transactions API for Transactions This page describes the basic transaction API in Jena (3.1.0 and later).
 There is also a higher-level API useful in many situations but sometimes it is necessary to use the basic transaction API described here.
 Read transactions These are used for SPARQL queries and code using the Jena API actions that do not change the data.</description>
     </item>
@@ -1203,7 +1157,7 @@ Read transactions These are used for SPARQL queries and code using the Jena API
       <description>As of Jena 2.11.0, LARQ is replaced by jena-text
 jena-text includes use of Apache Solr as a shared, search server, or Apache Lucene as a local text index. From Fuseki 0.2.7, jena-text is built into Fuseki.
 LARQ is not compatible with jena-text; the index format has changed and the integration with SPARQL is different.
- LARQ is a combination of ARQ and Lucene. It gives users the ability to perform free text searches within their SPARQL queries.</description>
+LARQ is a combination of ARQ and Lucene. It gives users the ability to perform free text searches within their SPARQL queries.</description>
     </item>
     
     <item>
@@ -1233,7 +1187,7 @@ Core Library The jena-jdbc-core artifact is the core library that contains much
       
       <guid>https://jena.apache.org/documentation/migrate_jena2_jena3.html</guid>
       <description>Apache Jena3 is a major version release for Jena - it is not binary compatible with Jena2. The migration consists of package renaming and database reloading.
-Key Changes  Package renaming RDF 1.1 Semantics for plain literals Persistent data (TDB, SDB) should be reloaded. Java8 is required. Security renamed to Permissions. Security Evaluator changes required  Package Name Changes Packages with a base name of com.hp.hpl.jena become org.apache.jena.
+Key Changes Package renaming RDF 1.1 Semantics for plain literals Persistent data (TDB, SDB) should be reloaded. Java8 is required. Security renamed to Permissions. Security Evaluator changes required Package Name Changes Packages with a base name of com.hp.hpl.jena become org.apache.jena.
 Global replacement of import com.</description>
     </item>
     
@@ -1257,7 +1211,7 @@ Key objectives for the enhanced node design One problem with the Jena 1 design w
       <guid>https://jena.apache.org/documentation/query/parameterized-sparql-strings.html</guid>
       <description>A Parameterized SPARQL String is a SPARQL query/update into which values may be injected.
 The intended usage of this is where using a QuerySolutionMap as initial bindings is either inappropriate or not possible e.g.
- Generating query/update strings in code without lots of error prone and messy string concatenation Preparing a query/update for remote execution Where you do not want to simply say some variable should have a certain value but rather wish to insert constants into the query/update in place of variables Defending against SPARQL injection when creating a query/update using some external input, see SPARQL Injection notes for limitations.</description>
+Generating query/update strings in code without lots of error prone and messy string concatenation Preparing a query/update for remote execution Where you do not want to simply say some variable should have a certain value but rather wish to insert constants into the query/update in place of variables Defending against SPARQL injection when creating a query/update using some external input, see SPARQL Injection notes for limitations.</description>
     </item>
     
     <item>
@@ -1316,13 +1270,13 @@ Example This example ensures certain prefixes are in the dataset and adds some b
     </item>
     
     <item>
-      <title>RDF/XML Input in Jena</title>
-      <link>https://jena.apache.org/documentation/io/arp/arp.html</link>
+      <title>RDF/XML Handling in Jena</title>
+      <link>https://jena.apache.org/documentation/io/arp.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>https://jena.apache.org/documentation/io/arp/arp.html</guid>
+      <guid>https://jena.apache.org/documentation/io/arp.html</guid>
       <description>This section details the Jena RDF/XML parser. ARP is the parsing subsystem in Jena for handling the RDF/XML syntax.
- ARP Features Using ARP without Jena Using other SAX and DOM XML sources  ARP Features  Java based RDF parser. Compliant with RDF Syntax and RDF Test Cases Recommendations. Compliant with following standards and recommendations:  xml:lang
+ARP Features Using ARP without Jena Using other SAX and DOM XML sources ARP Features Java based RDF parser. Compliant with RDF Syntax and RDF Test Cases Recommendations. Compliant with following standards and recommendations: xml:lang
 xml:lang is fully supported, both in RDF/XML and any document embedding RDF/XML. Moreover, the language tags are checked against RFC1766, RFC3066, ISO639-1, ISO3166.</description>
     </item>
     
@@ -1333,8 +1287,8 @@ xml:lang is fully supported, both in RDF/XML and any document embedding RDF/XML.
       
       <guid>https://jena.apache.org/documentation/io/</guid>
       <description>This page details the setup of RDF I/O technology (RIOT).
- Formats Commands Reading RDF in Jena Writing RDF in Jena Working with RDF Streams Additional details on working with RDF/XML  Formats The following RDF formats are supported by Jena. In addition, other syntaxes can be integrated into both the parser and writer registries.
- Turtle RDF/XML N-Triples JSON-LD RDF/JSON TriG N-Quads TriX RDF Binary  RDF/JSON is different from JSON-LD - it is a direct encoding of RDF triples in JSON.</description>
+Formats Commands Reading RDF in Jena Writing RDF in Jena Working with RDF Streams Additional details on working with RDF/XML Formats The following RDF formats are supported by Jena. In addition, other syntaxes can be integrated into both the parser and writer registries.
+Turtle RDF/XML N-Triples JSON-LD RDF/JSON TriG N-Quads TriX RDF Binary RDF/JSON is different from JSON-LD - it is a direct encoding of RDF triples in JSON.</description>
     </item>
     
     <item>
@@ -1343,8 +1297,7 @@ xml:lang is fully supported, both in RDF/XML and any document embedding RDF/XML.
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/io/json-ld-11.html</guid>
-      <description>JSON-LD 1.1 is the default version of JSON-LD supported by Apache Jena. This page is out of date and left temporary only for information about using JSON-LD 1.1 in versions 4.2.x to 4.4.x. 
- This page details support for reading JSON-LD 1.1 using Titanium JSON-LD.
+      <description>JSON-LD 1.1 is the default version of JSON-LD supported by Apache Jena. This page is out of date and left temporary only for information about using JSON-LD 1.1 in versions 4.2.x to 4.4.x. This page details support for reading JSON-LD 1.1 using Titanium JSON-LD.
 While Titanium is licensed under the Apache License, it has a dependency on the Eclipse Jakarta JSON Processing API, which is licensed under the Eclipse Public License 2.</description>
     </item>
     
@@ -1356,7 +1309,7 @@ While Titanium is licensed under the Apache License, it has a dependency on the
       <guid>https://jena.apache.org/documentation/io/rdf-input.html</guid>
       <description>This page details the setup of RDF I/O technology (RIOT) for Apache Jena.
 See Writing RDF for details of the RIOT Writer system.
- API  Determining the RDF syntax Example 1 : Using the RDFDataMgr Example 2 : Model usage Example 3 : Using RDFParser   Logging The StreamManager and LocationMapper  Configuring a StreamManager Configuring a LocationMapper   Advanced examples  Iterating over parser output Filtering the output of parsing Add a new language    Full details of operations are given in the javadoc.</description>
+API Determining the RDF syntax Example 1 : Using the RDFDataMgr Example 2 : Model usage Example 3 : Using RDFParser Logging The StreamManager and LocationMapper Configuring a StreamManager Configuring a LocationMapper Advanced examples Iterating over parser output Filtering the output of parsing Add a new language Full details of operations are given in the javadoc.</description>
     </item>
     
     <item>
@@ -1366,7 +1319,7 @@ See Writing RDF for details of the RIOT Writer system.
       
       <guid>https://jena.apache.org/documentation/inference/</guid>
       <description>This section of the documentation describes the current support for inference available within Jena. It includes an outline of the general inference API, together with details of the specific rule engines and configurations for RDFS and OWL inference supplied with Jena.
- Not all of the fine details of the API are covered here: refer to the Jena Javadoc to get the full details of the capabilities of the API.  Note that this is a preliminary version of this document, some errors or inconsistencies are possible, feedback to the mailing lists is welcomed.</description>
+Not all of the fine details of the API are covered here: refer to the Jena Javadoc to get the full details of the capabilities of the API. Note that this is a preliminary version of this document, some errors or inconsistencies are possible, feedback to the mailing lists is welcomed.</description>
     </item>
     
     <item>
@@ -1398,15 +1351,15 @@ Sometimes, this is not desirable. For example, in an application that reifies la
       
       <guid>https://jena.apache.org/documentation/fuseki2/fuseki-webapp.html</guid>
       <description>Fuseki/UI can be run in a number of ways:
- As a standalone server As a service run by the operation system, for example, started when the machine boots As a Web Application inside a container such as Apache Tomcat or Jetty.  Fuseki is also packaged as a plain server &amp;ldquo;Fuseki Main&amp;rdquo; with no UI for use as a configurable SPARQL server, for building as a Docker container, and as a deployment and development standalone server.</description>
+As a standalone server As a service run by the operation system, for example, started when the machine boots As a Web Application inside a container such as Apache Tomcat or Jetty. Fuseki is also packaged as a plain server &amp;ldquo;Fuseki Main&amp;rdquo; with no UI for use as a configurable SPARQL server, for building as a Docker container, and as a deployment and development standalone server.</description>
     </item>
     
     <item>
       <title>SAX Input into Jena and ARP</title>
-      <link>https://jena.apache.org/documentation/io/arp/arp_sax.html</link>
+      <link>https://jena.apache.org/documentation/io/arp_sax.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>https://jena.apache.org/documentation/io/arp/arp_sax.html</guid>
+      <guid>https://jena.apache.org/documentation/io/arp_sax.html</guid>
       <description>Normally, both ARP and Jena are used to read files either from the local machine or from the Web. A different use case, addressed here, is when the XML source is available in-memory in some way. In these cases, ARP and Jena can be used as a SAX event handler, turning SAX events into triples, or a DOM tree can be parsed into a Jena Model.
 1. Overview To read an arbitrary SAX source as triples to be added into a Jena model, it is not possible to use a Model.</description>
     </item>
@@ -1427,9 +1380,9 @@ Sometimes, this is not desirable. For example, in an application that reifies la
       
       <guid>https://jena.apache.org/documentation/archive/sdb/sdb_index.html</guid>
       <description>The Apache Jena SDB module has been retired and no longer supported. The last release of Jena with this module is Jena 3.17.0.
-  SDB uses an SQL database for the storage and query of RDF data. Many databases are supported, both Open Source and proprietary.
+SDB uses an SQL database for the storage and query of RDF data. Many databases are supported, both Open Source and proprietary.
 An SDB store can be accessed and managed with the provided command line scripts and via the Jena API.
-  Use of SDB for new applications is not recommended.</description>
+Use of SDB for new applications is not recommended.</description>
     </item>
     
     <item>
@@ -1439,8 +1392,8 @@ An SDB store can be accessed and managed with the provided command line scripts
       
       <guid>https://jena.apache.org/documentation/archive/sdb/configuration.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  This page describes the configuration options available. These are options for query processing, not for the database layout and storage, which is controlled by store descriptions.
-Setting Options Options can be set globally, throughout the JVM, or on a per query execution basis.</description>
+This page describes the configuration options available. These are options for query processing, not for the database layout and storage, which is controlled by store descriptions.
+Setting Options Options can be set globally, throughout the JVM, or on a per query execution basis. SDB uses the same mechanism as ARQ.</description>
     </item>
     
     <item>
@@ -1450,7 +1403,7 @@ Setting Options Options can be set globally, throughout the JVM, or on a per que
       
       <guid>https://jena.apache.org/documentation/archive/sdb/database_layouts.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  SDB does not have a single database layout. This page is an informal overview of the two main types (&amp;ldquo;layout2/hash&amp;rdquo; and &amp;ldquo;layout2/index&amp;rdquo;).
+SDB does not have a single database layout. This page is an informal overview of the two main types (&amp;ldquo;layout2/hash&amp;rdquo; and &amp;ldquo;layout2/index&amp;rdquo;).
 In SDB one store is one RDF dataset is one SQL database.
 Databases of type layout2 have a triples table for the default graph, a quads table for the named graphs.</description>
     </item>
@@ -1462,7 +1415,7 @@ Databases of type layout2 have a triples table for the default graph, a quads ta
       
       <guid>https://jena.apache.org/documentation/archive/sdb/db_notes.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-   DB2 Derby MS SQL MySQL PostgresQL  DB2 Database creation The database should be created with code set UTF-8 so unicode is enabled (SDB creates tables CCSID UNICODE for full internationalization support).
+DB2 Derby MS SQL MySQL PostgresQL DB2 Database creation The database should be created with code set UTF-8 so unicode is enabled (SDB creates tables CCSID UNICODE for full internationalization support).
 Derby Loading Restriction Only one load operation can be active at any one time.</description>
     </item>
     
@@ -1473,7 +1426,8 @@ Derby Loading Restriction Only one load operation can be active at any one time.
       
       <guid>https://jena.apache.org/documentation/archive/sdb/databases_supported.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-     Product Version     Oracle 10g Including OracleXE   Microsoft SQL Server 2005 Including MS SQL Express   DB2 9 Including DB2 9 Express   PostgreSQL v8.2   MySQL v5.0.22   Apache Derby v10.</description>
+Product Version Oracle 10g Including OracleXE Microsoft SQL Server 2005 Including MS SQL Express DB2 9 Including DB2 9 Express PostgreSQL v8.2 MySQL v5.0.22 Apache Derby v10.2.2.0 H2 1.0.71 HSQLDB 1.8.0 Support for a version implies support for later versions unless otherwise stated.
+Microsoft SQL Server 2000 is also reported to work.</description>
     </item>
     
     <item>
@@ -1483,7 +1437,7 @@ Derby Loading Restriction Only one load operation can be active at any one time.
       
       <guid>https://jena.apache.org/documentation/archive/sdb/dataset_description.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  Assembler descriptions for RDF Datasets and individual models are built from Store Descriptions. A dataset assembler just points to the store to use; a model assembler points to the store and identifies the model within the store to use (or use the default model).</description>
+Assembler descriptions for RDF Datasets and individual models are built from Store Descriptions. A dataset assembler just points to the store to use; a model assembler points to the store and identifies the model within the store to use (or use the default model).</description>
     </item>
     
     <item>
@@ -1493,7 +1447,7 @@ Derby Loading Restriction Only one load operation can be active at any one time.
       
       <guid>https://jena.apache.org/documentation/archive/sdb/faq.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  Tune your database Database performance depends on the database being tuned. Some databases default to &amp;ldquo;developer setup&amp;rdquo; which does not use much of the RAM but is only for functional testing.
+Tune your database Database performance depends on the database being tuned. Some databases default to &amp;ldquo;developer setup&amp;rdquo; which does not use much of the RAM but is only for functional testing.
 Improving loading rates For a large bulk load into an existing store, dropping the indexes, doing the load and then recreating the indexes can be noticeably faster.</description>
     </item>
     
@@ -1504,7 +1458,7 @@ Improving loading rates For a large bulk load into an existing store, dropping t
       
       <guid>https://jena.apache.org/documentation/archive/sdb/fuseki_integration.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  Fuseki is a server that implements the SPARQL protocol for HTTP. It can be used to give a SPARQL interface to an SDB installation.
+Fuseki is a server that implements the SPARQL protocol for HTTP. It can be used to give a SPARQL interface to an SDB installation.
 The Fuseki server needs the SDB jar files on its classpath. The Fuseki server configuration file needs to contain two triples to integrate SDB:</description>
     </item>
     
@@ -1515,7 +1469,7 @@ The Fuseki server needs the SDB jar files on its classpath. The Fuseki server co
       
       <guid>https://jena.apache.org/documentation/archive/sdb/installation.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  A suitable database must be installed separately. Any database installation should be tuned according to the database documentation.
+A suitable database must be installed separately. Any database installation should be tuned according to the database documentation.
 The SDB distribution is zip file of a directory hierarchy.
 Unzip this. You may need to run chmod u+x on the scripts in the bin/ directory.</description>
     </item>
@@ -1527,9 +1481,9 @@ Unzip this. You may need to run chmod u+x on the scripts in the bin/ directory.<
       
       <guid>https://jena.apache.org/documentation/archive/sdb/javaapi.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  This page describes how to use SDB from Java.
+This page describes how to use SDB from Java.
 Code examples are in src-examples/ in the SDB distribution.
-Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on the unit of a Store. The Store object has all the information for formatting, loading and accessing an SDB database.</description>
+Concepts Store SDBFactory SDBConnection SDB loads and queries data based on the unit of a Store. The Store object has all the information for formatting, loading and accessing an SDB database.</description>
     </item>
     
     <item>
@@ -1539,8 +1493,9 @@ Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on th
       
       <guid>https://jena.apache.org/documentation/archive/sdb/loading_data.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  There are three ways to load data into SDB:
- Use the command utility sdbload Use one of the Jena model.read operations Use the Jena model.add  The last one of these requires the application to signal the beginning and end of batches.</description>
+There are three ways to load data into SDB:
+Use the command utility sdbload Use one of the Jena model.read operations Use the Jena model.add The last one of these requires the application to signal the beginning and end of batches.
+Loading with Model.read A Jena Model obtained from SDB via:</description>
     </item>
     
     <item>
@@ -1550,7 +1505,7 @@ Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on th
       
       <guid>https://jena.apache.org/documentation/archive/sdb/loading_performance.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-   Introduction The Databases and Hardware  Hardware Windows setup Linux setup   The Dataset and Queries  LUBM dbpedia   Loading Results Uniprot 700m loading: Tuning Helps  Introduction Performance reporting is an area prone to misinterpretation, and such reports should be liberally decorated with disclaimers.</description>
+Introduction The Databases and Hardware Hardware Windows setup Linux setup The Dataset and Queries LUBM dbpedia Loading Results Uniprot 700m loading: Tuning Helps Introduction Performance reporting is an area prone to misinterpretation, and such reports should be liberally decorated with disclaimers. In our case there are an alarming number of variables: the hardware, the operating system, the database engine and its myriad parameters, the data itself, the queries, and planetary alignmen [...]
     </item>
     
     <item>
@@ -1560,7 +1515,8 @@ Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on th
       
       <guid>https://jena.apache.org/documentation/archive/sdb/query_performance.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  This page compares the effect of SDB with RDB, Jena&amp;rsquo;s usual database layout. RDB was designed for supporting the fine-grained API calls as well as having some support for basic graph patterns. Therefore, the RDB design goals were not those of SDB.</description>
+This page compares the effect of SDB with RDB, Jena&amp;rsquo;s usual database layout. RDB was designed for supporting the fine-grained API calls as well as having some support for basic graph patterns. Therefore, the RDB design goals were not those of SDB.
+RDB uses a denormalised database layout in order that all statement-level operations do not require additional joins.</description>
     </item>
     
     <item>
@@ -1570,7 +1526,8 @@ Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on th
       
       <guid>https://jena.apache.org/documentation/archive/sdb/quickstart.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  SDB provides some command line tools to work with SDB triple stores. In the following it assumed that you have a store description set up for your database (sdb.ttl). See the store description format for details. The Store/ directory for some examples.</description>
+SDB provides some command line tools to work with SDB triple stores. In the following it assumed that you have a store description set up for your database (sdb.ttl). See the store description format for details. The Store/ directory for some examples.
+Setting up your environment $ export SDBROOT=/path/to/sdb $ export PATH=$SDBROOT/bin:$PATH $ export SDB_USER=YourDatabaseUserName $ export SDB_PASSWORD=YourDatabasePassword $ export SDB_JDBC=YourJDBCdriver Initialising the database Be aware that this will wipe existing data from the database.</description>
     </item>
     
     <item>
@@ -1580,8 +1537,8 @@ Concepts  Store SDBFactory SDBConnection  SDB loads and queries data based on th
       
       <guid>https://jena.apache.org/documentation/archive/sdb/store_description.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  Use of an SDB store requires a Store object which is described in two parts:
- a connection to the database a description of the store configuration  These can be built from a Jena assembler description.
+Use of an SDB store requires a Store object which is described in two parts:
+a connection to the database a description of the store configuration These can be built from a Jena assembler description.
 Store objects themselves are lightweight so connections to an SDB database can be created on a per-request basis as required for use in J2EE application servers.</description>
     </item>
     
@@ -1592,7 +1549,7 @@ Store objects themselves are lightweight so connections to an SDB database can b
       
       <guid>https://jena.apache.org/documentation/archive/sdb/commands.html</guid>
       <description>The Apache Jena SDB module has been retired and is no longer supported. The last release of Jena with this module was Apache Jena 3.17.0.
-  This page describes the command line programs that can be used to create an SDB store, load data into it and to issue queries.
+This page describes the command line programs that can be used to create an SDB store, load data into it and to issue queries.
 Scripts The directory bin/ contains shell scripts to run the commands from the command line. The scripts are bash scripts which also run over Cygwin.</description>
     </item>
     
@@ -1624,7 +1581,7 @@ Serving RDF For any use of users-password information, and especially HTTP basic
       
       <guid>https://jena.apache.org/documentation/query/service_enhancer.html</guid>
       <description>The service enhancer (SE) plugin extends the functionality of the SERVICE clause with:
- Bulk requests Correlated joins also known as lateral joins A streaming cache for SERVICE requests results which can also cope with bulk requests and correlated joins. Furthermore, queries that only differ in limit and offset will result in cache hits for overlapping ranges. At present, the plugin only ships with an in-memory cache provider.  As a fundamental principle, a request making use of cache and bulk should return the exact same result as if those settings were omitted.</description>
+Bulk requests Correlated joins also known as lateral joins A streaming cache for SERVICE requests results which can also cope with bulk requests and correlated joins. Furthermore, queries that only differ in limit and offset will result in cache hits for overlapping ranges. At present, the plugin only ships with an in-memory cache provider. As a fundamental principle, a request making use of cache and bulk should return the exact same result as if those settings were omitted.</description>
     </item>
     
     <item>
@@ -1636,7 +1593,7 @@ Serving RDF For any use of users-password information, and especially HTTP basic
       <description>SOH (SPARQL Over HTTP) is a set of command-line scripts for working with SPARQL 1.1. SOH is server-independent and will work with any compliant SPARQL 1.1 system offering HTTP access.
 SOH is written in ruby.
 Commands:
- s-http – SPARQL 1.1 HTTP Protocol s-get, s-put, s-delete, s-post, s-head – abbreviation for s-http get ... etc. s-query – SPARQL 1.1 Query, both GET and POST of queries. s-update – SPARQL 1.1 Update s-update-form – SPARQL 1.</description>
+s-http – SPARQL 1.1 HTTP Protocol s-get, s-put, s-delete, s-post, s-head – abbreviation for s-http get ... etc. s-query – SPARQL 1.1 Query, both GET and POST of queries. s-update – SPARQL 1.1 Update s-update-form – SPARQL 1.</description>
     </item>
     
     <item>
@@ -1659,7 +1616,7 @@ It is convenient to be able to print out such algebra expressions for discussion
       <guid>https://jena.apache.org/documentation/query/spatial-query-doc.html</guid>
       <description>This module was first released with Jena 2.11.0. It was last released in Jena 3.12.0.
 Jena provides a GeoSPARQL implementation.
- This is an extension to Apache Jena ARQ, which combines SPARQL and simple spatial query. It gives applications the ability to perform simple spatial searches within SPARQL queries. Spatial indexes are additional information for accessing the RDF graph.
+This is an extension to Apache Jena ARQ, which combines SPARQL and simple spatial query. It gives applications the ability to perform simple spatial searches within SPARQL queries. Spatial indexes are additional information for accessing the RDF graph.
 The spatial index can be either Apache Lucene for a same-machine spatial index, or Apache Solr for a large scale enterprise search application.</description>
     </item>
     
@@ -1669,8 +1626,7 @@ The spatial index can be either Apache Lucene for a same-machine spatial index,
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/query/spatial-query.html</guid>
-      <description>  The Jena Spatial module has been retired. The last release of Jena with jena-spatial was Jena 3.12.0. See jena-spatial/README.md. The original documentation is here
-  </description>
+      <description>The Jena Spatial module has been retired. The last release of Jena with jena-spatial was Jena 3.12.0. See jena-spatial/README.md. The original documentation is here</description>
     </item>
     
     <item>
@@ -1693,7 +1649,7 @@ IRIFactory Gives the main class for creating IRIs, including specifying which sp
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/query/xsd-support.html</guid>
-      <description>ARQ supports the functions and operators from &amp;ldquo;XQuery 1.0 and XPath 2.0 Functions and Operators v3.1&amp;quot;.
+      <description>ARQ supports the functions and operators from &amp;ldquo;XQuery 1.0 and XPath 2.0 Functions and Operators v3.1&amp;rdquo;.
 ARQ supports all the XSD atomic datatypes.
 The prefix fn is &amp;lt;http://www.w3.org/2005/xpath-functions#&amp;gt; (the XPath and XQuery function namespace).
 The prefix math is &amp;lt;http://www.w3.org/2005/xpath-functions/math#&amp;gt;
@@ -1709,8 +1665,7 @@ The supported datatypes (including those required by SPARQL 1.1), including full
       <guid>https://jena.apache.org/documentation/rdf-star/</guid>
       <description>RDF-star is an extension to RDF that provides a way for one triple to refer to another triple. RDF* is the name of the original work which is described in Olaf Hartig&amp;rsquo;s blog entry.
 Example:
-&amp;lt;&amp;lt;:johnfoaf:name&amp;#34;John Smith&amp;#34;&amp;gt;&amp;gt;dct:source&amp;lt;http://example/directory&amp;gt;.The part &amp;lt;&amp;lt; :john foaf:name &amp;quot;John Smith&amp;quot; &amp;gt;&amp;gt; is a quoted triple and refers to the triple with subject :john, property foaf:name and object &amp;quot;John Smith&amp;quot;.
-Triple terms can be in the subject or object position.</description>
+&amp;lt;&amp;lt; :john foaf:name &amp;#34;John Smith&amp;#34; &amp;gt;&amp;gt; dct:source &amp;lt;http://example/directory&amp;gt; . The part &amp;lt;&amp;lt; :john foaf:name &amp;quot;John Smith&amp;quot; &amp;gt;&amp;gt; is a quoted triple and refers to the triple with subject :john, property foaf:name and object &amp;quot;John Smith&amp;quot;.</description>
     </item>
     
     <item>
@@ -1721,7 +1676,7 @@ Triple terms can be in the subject or object position.</description>
       <guid>https://jena.apache.org/documentation/query/support_request.html</guid>
       <description>Writing a Support Request A good support request or bug report is clear and concise. For ARQ, reduce the problem to a short dataset (20 triples should be enough; Turtle, N3 or N-triples preferred) and a query that illustrates the problem. State what you expected to happen as well as what did happen.
 It also a good idea to check the documentation.
- ARQ FAQ ARQ Documentation  Parse Errors The SPARQL parser outputs a line and column number - it is usually correct in identifying the first point of a syntax error.</description>
+ARQ FAQ ARQ Documentation Parse Errors The SPARQL parser outputs a line and column number - it is usually correct in identifying the first point of a syntax error.</description>
     </item>
     
     <item>
@@ -1814,7 +1769,7 @@ SPARQL has the concept of a dataset description. In a query string, the clauses
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
       <guid>https://jena.apache.org/documentation/tdb/faqs.html</guid>
-      <description>FAQs  What are TDB1 and TDB2? Does TDB support Transactions? Can I share a TDB dataset between multiple applications? What is the Impossibly Large Object exception? What are the ObjectFile.read() and ObjectFileStorage.read() errors? What is the difference between tdbloader and tdbloader2? How large a Java heap size should I use for TDB? Does Fuseki/TDB have a memory leak? Should I use a SSD? Why do I get the exception Can&amp;rsquo;t open database at location /path/to/ [...]
+      <description>FAQs What are TDB1 and TDB2? Does TDB support Transactions? Can I share a TDB dataset between multiple applications? What is the Impossibly Large Object exception? What are the ObjectFile.read() and ObjectFileStorage.read() errors? What is the difference between tdbloader and tdbloader2? How large a Java heap size should I use for TDB? Does Fuseki/TDB have a memory leak? Should I use a SSD? Why do I get the exception Can&amp;rsquo;t open database at location /path/to/d [...]
     </item>
     
     <item>
@@ -1925,7 +1880,7 @@ There are two scripts to load data using the xloader subsystem.
       <description>TDB2 is a component of Apache Jena for RDF storage and query. It supports the full range of Jena APIs. TDB2 can be used as a high performance RDF store on a single machine. TDB2 can be used with Apache Jena Fuseki.
 TDB1 is the previous generation native storage system for Jena.
 Compared to TDB1:
- No size limits on transactions : bulk uploads into a live Fuseki can be 100&amp;rsquo;s of millions of triples.</description>
+No size limits on transactions : bulk uploads into a live Fuseki can be 100&amp;rsquo;s of millions of triples.</description>
     </item>
     
     <item>
@@ -1937,7 +1892,7 @@ Compared to TDB1:
       <description>TDB2 is not compatible with TDB1
 Do not run TDB1 tools on a TDB2 database, nor run TDB2 tools on a TDB1 database.
 These scripts are available jena binary distribution.
- tdb2.tdbbackup tdb2.tdbdump tdb2.tdbcompact tdb2.tdbloader tdb2.tdbquery tdb2.tdbupdate tdb2.tdbstats  On MS Windows, these commands are called tdb2_tdbquery etc.
+tdb2.tdbbackup tdb2.tdbdump tdb2.tdbcompact tdb2.tdbloader tdb2.tdbquery tdb2.tdbupdate tdb2.tdbstats On MS Windows, these commands are called tdb2_tdbquery etc.
 Example usage:
 tdb2.tdbloader --loc &amp;lt;DB location&amp;gt; file1 file2 ... Note:
 tdbloader2 is a TDB1 command tool.
@@ -1951,7 +1906,7 @@ tdb2.tdbloader Basic usage: load files into a database at location &amp;ldquo;DB
       
       <guid>https://jena.apache.org/documentation/tdb2/tdb2_admin.html</guid>
       <description>TDB2 directory layout A TDB2 database is contained in a directory location DIR as:
-DIR/ Backups/ Data-0001/ Data-0002/ tdb.lock  where Data-NNNN are the compacted generations of the database. The highest number is the currently live database. The others are not used and not touched by the TDB2 subsystem. They can be deleted, moved elsewhere, or compressed as required. Each is a valid database in it own right.
+DIR/ Backups/ Data-0001/ Data-0002/ tdb.lock where Data-NNNN are the compacted generations of the database. The highest number is the currently live database. The others are not used and not touched by the TDB2 subsystem. They can be deleted, moved elsewhere, or compressed as required. Each is a valid database in it own right.
 Backups is the directory used to write backup files.</description>
     </item>
     
@@ -2010,7 +1965,7 @@ DatasetGraph - the interface DatasetGraphBase DatasetGraphBaseFind DatasetGraphC
       <description>The StreamManager is a utility to find and read files into models. There is a standard global StreamManager and applications may also define specific ones by constructing additional StreamManagers.
 The LocationMapper provides alternative locations for RDF data.
 The Stream Manager Files are named by a string, according to the conventions of their storage system. Typically this is by URI. There are a number of storage system adapters provided:
- File locator (with own current directory) URL locator (HTTP and FTP) Class loader locator Zip file locator  The global stream manager has a file location, a URL locator and a class loader (tried in that order).</description>
+File locator (with own current directory) URL locator (HTTP and FTP) Class loader locator Zip file locator The global stream manager has a file location, a URL locator and a class loader (tried in that order).</description>
     </item>
     
     <item>
@@ -2026,7 +1981,7 @@ I am the second h2 lorem fubarum
 I am the first h3 lorem fubarum
 And I&amp;rsquo;m back to h2 lorem fubarum
 TOC test The title above will generate an h1 element from the CMS scripts
- I am the first h2  I am the second h2  I am the first h3   And I&#39;m back to h2     I am the first h2 lorem fubarum</description>
+I am the first h2 I am the second h2 I am the first h3 And I&#39;m back to h2 I am the first h2 lorem fubarum</description>
     </item>
     
     <item>
@@ -2068,7 +2023,8 @@ TriX History TriX originated from work by Jeremy Carroll (then at HP Labs, Brist
       <guid>https://jena.apache.org/documentation/txn/txn.html</guid>
       <description>Txn provides a high level interface to Jena transactions. It is a library over the core functionality - applications do not have to use Txn to use transactions.
 Features:
- Java8 idioms Application exceptions cause transaction aborts. &amp;ldquo;Transaction continuation&amp;rdquo; - use any existing active transaction. Autocommit - ensure actions are inside a transaction even if none is active.  Transactions The basic transactions API provides operations begin, commit, abort and end.</description>
+Java8 idioms Application exceptions cause transaction aborts. &amp;ldquo;Transaction continuation&amp;rdquo; - use any existing active transaction. Autocommit - ensure actions are inside a transaction even if none is active. Transactions The basic transactions API provides operations begin, commit, abort and end.
+A write transaction looks like:</description>
     </item>
     
     <item>
@@ -2083,13 +2039,13 @@ Part of the remit for the 2001 RDF Core working group was to add to RDF support
     
     <item>
       <title>Using ARP Without Jena</title>
-      <link>https://jena.apache.org/documentation/io/arp/arp_standalone.html</link>
+      <link>https://jena.apache.org/documentation/io/arp_standalone.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>https://jena.apache.org/documentation/io/arp/arp_standalone.html</guid>
+      <guid>https://jena.apache.org/documentation/io/arp_standalone.html</guid>
       <description>ARP can be used both as a Jena subsystem, or as a standalone RDF/XML parser. This document gives a quick guide to using ARP standalone.
 Overview To load an RDF file:
- Create an ARP instance. Set parse options, particularly error detection control, using getOptions or setOptionsWith. Set its handlers, by calling the getHandlers or setHandlersWith methods, and then.  Setting the statement handler. Optionally setting the other handlers.   Call a load method  Xerces is used for parsing the XML.</description>
+Create an ARP instance. Set parse options, particularly error detection control, using getOptions or setOptionsWith. Set its handlers, by calling the getHandlers or setHandlersWith methods, and then. Setting the statement handler. Optionally setting the other handlers. Call a load method Xerces is used for parsing the XML.</description>
     </item>
     
     <item>
@@ -2111,9 +2067,9 @@ Files ending in .gz are assumed to be gzip-compressed. Input and output to such
       <guid>https://jena.apache.org/documentation/io/rdf-output.html</guid>
       <description>This page describes the RIOT (RDF I/O technology) output capabilities.
 See Reading RDF for details of the RIOT Reader system.
- API RDFFormat RDFFormats and Jena syntax names Formats  Normal Printing Pretty Printed Languages Streamed Block Formats Line printed formats Turtle and Trig format options N-Triples and N-Quads JSON-LD RDF Binary RDF/XML   Examples Notes  See Advanced RDF/XML Output for details of the Jena RDF/XML writer.
+API RDFFormat RDFFormats and Jena syntax names Formats Normal Printing Pretty Printed Languages Streamed Block Formats Line printed formats Turtle and Trig format options N-Triples and N-Quads JSON-LD RDF Binary RDF/XML Examples Notes See Advanced RDF/XML Output for details of the Jena RDF/XML writer.
 API There are two ways to write RDF data using Apache Jena RIOT, either via the RDFDataMgr</description>
     </item>
     
   </channel>
-</rss>
\ No newline at end of file
+</rss>
diff --git a/content/documentation/inference/index.html b/content/documentation/inference/index.html
index 28eed4e38..1afe95622 100644
--- a/content/documentation/inference/index.html
+++ b/content/documentation/inference/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -1480,7 +1487,7 @@ or   prefix:localname          // e.g. rdf:type
 or   &lt;<i>uri-ref</i>&gt;          // e.g. &lt;myscheme:myuri&gt;
 or   ?<i>varname                    </i>// variable
 or   &lsquo;a literal&rsquo;                 // a plain string literal
-or   &lsquo;lex'^^typeURI              // a typed literal, xsd:* type names supported
+or   &rsquo;lex&rsquo;^^typeURI              // a typed literal, xsd:* type names supported
 or   number                      // e.g. 42 or 25.5</pre></p>
 <p>The &quot;,&quot; separators are optional.</p>
 <p>The difference between the forward and backward rule syntax is only relevant
@@ -2083,7 +2090,7 @@ Property p = data.getProperty(demoURI, &ldquo;p&rdquo;);
 Resource a = data.getResource(demoURI + &ldquo;a&rdquo;);
 StmtIterator i = infmodel.listStatements(a, p, (RDFNode)null);
 while (i.hasNext()) {
-System.out.println(&rdquo; - &quot; + PrintUtil.print(i.nextStatement()));
+System.out.println(&quot; - &quot; + PrintUtil.print(i.nextStatement()));
 }</pre></p>
 <p>Here is file <code>data/demo.rules</code> which defines property <code>demo:p</code>
   as being both symmetric and transitive using pure forward rules:</p>
@@ -2395,6 +2402,7 @@ InfModel inf = ModelFactory.createInfModel(reasoner, data);
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/arp/arp.html b/content/documentation/io/arp.html
similarity index 94%
rename from content/documentation/io/arp/arp.html
rename to content/documentation/io/arp.html
index 1d513f70a..9a485da61 100644
--- a/content/documentation/io/arp/arp.html
+++ b/content/documentation/io/arp.html
@@ -3,7 +3,7 @@
 <head>
     
 
-    <title>Apache Jena - RDF/XML Input in Jena</title>
+    <title>Apache Jena - RDF/XML Handling in Jena</title>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -114,7 +121,7 @@
                 
                 
                 
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp/arp.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
+                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
             </ul>
         </div>
     </div>
@@ -156,15 +163,7 @@
         
         
             
-                <li class="breadcrumb-item"><a href='/documentation/io/arp'>ARP</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item active">ARP</li>
+                <li class="breadcrumb-item active">ARP.HTML</li>
             
             
         
@@ -175,7 +174,7 @@
 
 
             </div>
-            <h1 class="title">RDF/XML Input in Jena</h1>
+            <h1 class="title">RDF/XML Handling in Jena</h1>
             
             
 <main class="d-flex flex-xl-row flex-column">
@@ -286,6 +285,7 @@ sources.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/arp/arp_sax.html b/content/documentation/io/arp_sax.html
similarity index 97%
rename from content/documentation/io/arp/arp_sax.html
rename to content/documentation/io/arp_sax.html
index 8a3d6c80e..ff9533de7 100644
--- a/content/documentation/io/arp/arp_sax.html
+++ b/content/documentation/io/arp_sax.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -114,7 +121,7 @@
                 
                 
                 
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp/arp_sax.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
+                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp_sax.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
             </ul>
         </div>
     </div>
@@ -156,14 +163,6 @@
         
         
             
-                <li class="breadcrumb-item"><a href='/documentation/io/arp'>ARP</a></li>
-            
-            
-        
-    
-        
-        
-            
                 <li class="breadcrumb-item active">ARP SAX</li>
             
             
@@ -417,6 +416,7 @@ the factory indicates this usage.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/arp/arp_standalone.html b/content/documentation/io/arp_standalone.html
similarity index 96%
rename from content/documentation/io/arp/arp_standalone.html
rename to content/documentation/io/arp_standalone.html
index 2f72721ac..1ba7e9334 100644
--- a/content/documentation/io/arp/arp_standalone.html
+++ b/content/documentation/io/arp_standalone.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -114,7 +121,7 @@
                 
                 
                 
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp/arp_standalone.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
+                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/arp_standalone.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
             </ul>
         </div>
     </div>
@@ -156,14 +163,6 @@
         
         
             
-                <li class="breadcrumb-item"><a href='/documentation/io/arp'>ARP</a></li>
-            
-            
-        
-    
-        
-        
-            
                 <li class="breadcrumb-item active">ARP STANDALONE</li>
             
             
@@ -401,6 +400,7 @@ method has been used. In these cases ARP needs to remember the
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/index.html b/content/documentation/io/index.html
index e43d30cf4..441c5c103 100644
--- a/content/documentation/io/index.html
+++ b/content/documentation/io/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -185,7 +192,7 @@
 <li><a href="rdf-input.html">Reading RDF in Jena</a></li>
 <li><a href="rdf-output.html">Writing RDF in Jena</a></li>
 <li><a href="streaming-io.html">Working with RDF Streams</a></li>
-<li><a href="rdfxml-io.html">Additional details on working with RDF/XML</a></li>
+<li><a href="rdfxml_howto.html">Additional details on working with RDF/XML</a></li>
 </ul>
 <h2 id="formats">Formats</h2>
 <p>The following RDF formats are supported by Jena. In addition, other syntaxes
@@ -360,6 +367,7 @@ RDF subclass, subproperty, domain and range declarations.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/json-ld-11.html b/content/documentation/io/json-ld-11.html
index 70730fed6..694db1c3a 100644
--- a/content/documentation/io/json-ld-11.html
+++ b/content/documentation/io/json-ld-11.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -202,7 +209,7 @@ licensed under the
 <li>org.glassfish:jakarta.json</li>
 </ul>
 <p>Failure to add these dependencies will result in <code>UnsupportedOperationException</code></p>
-<pre><code>Need both titanium-json-ld (1.1.0 or later) and org.glassfish:jakarta on the classpath
+<pre tabindex="0"><code>Need both titanium-json-ld (1.1.0 or later) and org.glassfish:jakarta on the classpath
 </code></pre><h2 id="usage">Usage</h2>
 <p>Jena currently (from version 4.2.0) offers both JSON-LD 1.0 and also JSON-LD 1.1.</p>
 <p>The file extension for JSONLD 1.1 is <code>.jsonld11</code>.</p>
@@ -210,12 +217,12 @@ licensed under the
 force the language choice to be JSON-LD 1.1 with
 <a href="https://jena.apache.org/documentation/javadoc/arq/org/apache/jena/riot/RDFParser.html"><code>RDFParser</code></a>
 using <code>forceLang(Lang.JSONLD11)</code>:</p>
-<pre><code>RDFParser.source(...)
+<pre tabindex="0"><code>RDFParser.source(...)
     .forceLang(Lang.JSONLD11)
     ...
     .build()
 </code></pre><p>or short-cut form:</p>
-<pre><code>RDFParser.source(URL or InputStream)
+<pre tabindex="0"><code>RDFParser.source(URL or InputStream)
     .forceLang(Lang.JSONLD11)
     .parse(dataset);
 </code></pre>
@@ -260,6 +267,7 @@ using <code>forceLang(Lang.JSONLD11)</code>:</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/rdf-binary.html b/content/documentation/io/rdf-binary.html
index 68b1ddf1b..a3b2dc7f0 100644
--- a/content/documentation/io/rdf-binary.html
+++ b/content/documentation/io/rdf-binary.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -312,12 +319,12 @@ struct RDF_DataTuple {
 in the Java API).</p>
 <p>See
 <a href="https://developers.google.com/protocol-buffers/docs/techniques#streaming">Protobuf Techniques Streaming</a>.</p>
-<pre><code>syntax = &quot;proto3&quot;;
+<pre tabindex="0"><code>syntax = &#34;proto3&#34;;
 
-option java_package         = &quot;org.apache.jena.riot.protobuf.wire&quot; ;
+option java_package         = &#34;org.apache.jena.riot.protobuf.wire&#34; ;
 
 // Prefer one file with static inner classes.
-option java_outer_classname = &quot;PB_RDF&quot; ;
+option java_outer_classname = &#34;PB_RDF&#34; ;
 // Optimize for speed (default)
 option optimize_for = SPEED ;
 
@@ -485,6 +492,7 @@ message RDF_Graph {
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/rdf-input.html b/content/documentation/io/rdf-input.html
index d830f041a..0f2419176 100644
--- a/content/documentation/io/rdf-input.html
+++ b/content/documentation/io/rdf-input.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -468,7 +475,7 @@ following files, in order:</p>
 </ul>
 <p>This is a specified as a path - note the path separator is always
 the character &lsquo;;&rsquo; regardless of operating system because URLs
-contain &lsquo;:'.</p>
+contain &lsquo;:&rsquo;.</p>
 <p>Applications can also set mappings programmatically. No
 configuration file is necessary.</p>
 <p>The base URI for reading models will be the original URI, not the alternative location.</p>
@@ -586,6 +593,7 @@ together with a parser, can be added to RIOT as shown in
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/rdf-output.html b/content/documentation/io/rdf-output.html
index 6ecb175c2..34d15162c 100644
--- a/content/documentation/io/rdf-output.html
+++ b/content/documentation/io/rdf-output.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -581,10 +588,10 @@ otherwise noted, the setting applies to both Turtle and TriG.</p>
 <p>&nbsp;</b>
 <h4 id="format-option-usage">Format Option Usage</h4>
 <h5 id="_setting-directive-style_"><em>Setting directive style</em></h5>
-<pre><code>    riot --set ttl:directiveStyle=sparql --pretty Turtle file1.rdf file2.nt ...
+<pre tabindex="0"><code>    riot --set ttl:directiveStyle=sparql --pretty Turtle file1.rdf file2.nt ...
 </code></pre><p>and in code:</p>
-<pre><code>  RDFWriter.source(model)
-     .set(RIOT.symTurtleDirectiveStyle, &quot;sparql&quot;)
+<pre tabindex="0"><code>  RDFWriter.source(model)
+     .set(RIOT.symTurtleDirectiveStyle, &#34;sparql&#34;)
      .lang(Lang.TTL)
      .output(System.out);
 </code></pre><h5 id="_base-uri_"><em>Base URI</em></h5>
@@ -592,8 +599,8 @@ otherwise noted, the setting applies to both Turtle and TriG.</p>
 portable; its meaning depends on the base URI at the time of reading.</p>
 <p>Turtle and Trig can be written with relative URIs by
 setting the base URI for writing and switching off output of the base URI.</p>
-<pre><code>  RDFWriter.create()
-     .base(&quot;http://host/someBase&quot;)
+<pre tabindex="0"><code>  RDFWriter.create()
+     .base(&#34;http://host/someBase&#34;)
      .set(RIOT.symTurtleOmitBase, true)
      .lang(Lang.TTL)
      .source(model)
@@ -885,6 +892,7 @@ The only use of writers that is useful is using <code>java.io.StringWriter</code
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/rdfxml-input.html b/content/documentation/io/rdfxml-input.html
deleted file mode 100644
index 0bb4bcd3c..000000000
--- a/content/documentation/io/rdfxml-input.html
+++ /dev/null
@@ -1,412 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    
-
-    <title>Apache Jena - Jena RDF/XML Input How-To</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
-    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.8eddb17125a9203f3381ffcfb0cfa8dce63a381e136339a4ea8001dfd8fa9d82.css" integrity="sha256-jt2xcSWpID8zgf/PsM&#43;o3OY6OB4TYzmk6oAB39j6nYI=">
-    <link rel="shortcut icon" href="/images/favicon.ico" />
-    
-</head>
-
-<body>
-
-<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
-    <div class="container">
-        <div class="navbar-header">
-            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
-                <span class="navbar-toggler-icon"></span>
-            </button>
-            <a class="navbar-brand" href="/index.html">
-                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
-        </div>
-
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
-                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
-                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li class="dropdown-header">Tutorials</li>
-                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">References</li>
-                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/javadoc.html">Javadoc</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
-                    </ul>
-                </li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jdbc/">JDBC</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
-                    </ul>
-                </li>
-            </ul>
-
-            <ul class="navbar-nav ms-auto">
-                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span> Get involved <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
-                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">Project</li>
-                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">ASF</li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
-                    </ul>
-                </li>
-                
-                
-                
-                
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/rdfxml-input.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
-            </ul>
-        </div>
-    </div>
-</nav>
-
-<div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            
-            <div id="breadcrumbs">
-                
-
-
-
-
-
-<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
-    
-    
-        
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation/io'>IO</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item active">RDFXML INPUT</li>
-            
-            
-        
-    
-</ol>
-
-
-
-
-            </div>
-            <h1 class="title">Jena RDF/XML Input How-To</h1>
-            
-            
-<main class="d-flex flex-xl-row flex-column">
-  
-  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
-    <h2 class="h6 my-2">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#advanced-rdfxml-input">Advanced RDF/XML Input</a>
-      <ul>
-        <li><a href="#arp-properties">ARP properties</a></li>
-      </ul>
-    </li>
-    <li><a href="#further-details">Further details</a></li>
-  </ul>
-</nav>
-  </aside>
-  <article class="flex-column me-lg-4">
-    <p><em>Legacy Documentation : may not be up-to-date</em></p>
-<p>Original <a href="rdfxml_howto.html">RDF/XML HowTo</a>.</p>
-<hr>
-<p>This is a guide to the RDF/XML legacy input subsystem of Jena, ARP.</p>
-<h2 id="advanced-rdfxml-input">Advanced RDF/XML Input</h2>
-<p>For access to these advanced features, first get an <code>RDFReader</code>
-object that is an instance of an ARP parser, by using the
-<a href="/documentation/javadoc/jena/org/apache/jena/rdf/model/RDFReaderF.html#getReader()"><code>getReader</code></a><code>()</code>
-method on any <code>Model</code>. It is then configured using the
-[<code>setProperty</code>](/documentation/javadoc/jena/org/apache/jena/rdfxml/xmlinput0/JenaReader.html#setProperty(java.lang.String, java.lang.Object))<code>(String, Object)</code>
-method. This changes the properties for parsing RDF/XML. Many of
-the properties change the RDF parser, some change the XML parser.
-(The Jena RDF/XML parser, ARP, implements the
-<a href="http://www.w3.org/TR/rdf-syntax-grammar/#section-Infoset-Grammar">RDF grammar</a>
-over a <a href="http://xml.apache.org/xerces2-j/index.html">Xerces2-J</a> XML
-parser). However, changing the features and properties of the XML
-parser is not likely to be useful, but was easy to implement.</p>
-<p>[<code>setProperty</code>](/documentation/javadoc/jena/org/apache/jena/rdfxml/xmlinput0/JenaReader.html#setProperty(java.lang.String, java.lang.Object))<code>(String, Object)</code>
-can be used to set and get:</p>
-<ul>
-<li>ARP properties
-<br /> These allow fine grain control over the extensive error
-reporting capabilities of ARP. And are detailed directly below.</li>
-<li>SAX2 features
-<br />See
-<a href="http://xml.apache.org/xerces2-j/features.html">Xerces features</a>.
-Value should be given as a String <code>&quot;true&quot;</code> or <code>&quot;false&quot;</code> or a <code>Boolean</code>.</li>
-<li>SAX2 properties
-<br /> See <a href="http://xml.apache.org/xerces2-j/properties.html">Xerces properties</a>.</li>
-<li>Xerces features
-<br /> See <a href="http://xml.apache.org/xerces2-j/features.html">Xerces features</a>.
-Value should be given as a String <code>&quot;true&quot;</code> or <code>&quot;false&quot;</code> or a <code>Boolean</code>.</li>
-<li>Xerces properties
-<br /> See <a href="http://xml.apache.org/xerces2-j/properties.html">Xerces properties</a>.</li>
-</ul>
-<h3 id="arp-properties">ARP properties</h3>
-<p>An ARP property is referred to either by its property name, (see
-below) or by an absolute URL of the form
-<code>http://jena.hpl.hp.com/arp/properties/&lt;PropertyName&gt;</code>. The value
-should be a String, an Integer or a Boolean depending on the
-property.</p>
-<p>ARP property names and string values are case insensitive.</p>
-<table>
-<thead>
-<tr>
-<th>Property Name</th>
-<th>Description</th>
-<th>Value class</th>
-<th>Legal Values</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td><code>iri-rules</code></td>
-<td>Set the engine for checking and resolving. <code>&quot;strict&quot;</code> sets the IRI engine with rules for valid IRIs, XLink and RDF; it does not permit spaces in IRIs. <code>&quot;iri&quot;</code>sets the IRI engine to IRI (<a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>, <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>) <code>.</code> The default is <code>&quot;lax&quot;</code>(for backwards compatibility)<code>,</code> the rules for RDF URI references only, [...]
-<td>String</td>
-<td><code>lax</code><br /><code>strict</code><br /><code>iri</code></td>
-</tr>
-<tr>
-<td><code>error-mode</code></td>
-<td><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml/xmlinput0/ARPOptions.html#setDefaultErrorMode()"><code>ARPOptions.setDefaultErrorMode()</code></a> <br /><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml/xmlinput0/ARPOptions.html#setLaxErrorMode()"><code>ARPOptions.setLaxErrorMode()</code></a><br /><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPOptions.html#setStrictErrorMode()"><code>ARPOptions.setStrictErrorMode()</code></a><br /><a hr [...]
-<td><code>String</code></td>
-<td><code>default</code><br /><code>lax</code><br /><code>strict</code><br /><code>strict-ignore</code><br /><code>strict-warning</code><br /><code>strict-error</code><br /><code>strict-fatal</code></td>
-</tr>
-<tr>
-<td><code>embedding</code></td>
-<td><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPOptions.html#setEmbedding(boolean)"><code>ARPOptions.setEmbedding(boolean)</code></a> <br />This sets ARP to look for RDF embedded within an enclosing XML document.</td>
-<td><code>String</code> or <code>Boolean</code></td>
-<td><code>true</code><br /><code>false</code></td>
-</tr>
-<tr>
-<td><code>ERR_&lt;XXX&gt;</code> <br /><code>WARN_&lt;XXX&gt;</code><br /><code>IGN_&lt;XXX&gt;</code></td>
-<td>See <a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers.html"><code>ARPErrorNumbers</code></a> for a complete list of the error conditions detected. Setting one of these properties is equivalent to the method <a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPOptions.html#setErrorMode(int,%20int)"><code>ARPOptions.setErrorMode(int, int)</code></a>. Thus fine-grained control over the behaviour in response to specific error condit [...]
-<td><code>String</code> or <code>Integer</code></td>
-<td><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers.html#EM_IGNORE"><code>EM_IGNORE</code></a><br /><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers.html#EM_WARNING"><code>EM_WARNING</code></a><br /><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers.html#EM_ERROR"><code>EM_ERROR</code></a><br /><a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers. [...]
-</tr>
-</tbody>
-</table>
-<p>To set ARP properties, create a map of values to be set and put this in parser context:</p>
-<pre><code>    Map&lt;String, Object&gt; properties = new HashMap&lt;&gt;();
-    // See class ARPErrorNumbers for the possible ARP properties.
-    properties.put(&quot;WARN_BAD_NAME&quot;, &quot;EM_IGNORE&quot;);
-
-    // Build and run a parser
-    Model model = RDFParser.create()
-        .lang(Lang.RDFXML)
-        .source(...)
-        .set(SysRIOT.sysRdfReaderProperties, properties)
-        .base(&quot;http://base/&quot;)
-        .toModel();
-    System.out.println(&quot;== Parsed data output in Turtle&quot;);
-    RDFDataMgr.write(System.out,  model, Lang.TURTLE);
-</code></pre><p>See example
-<a href="https://github.com/apache/jena/blob/main/jena-examples/src/main/java/arq/examples/riot/ExRIOT_RDFXML_ReaderProperties.java">ExRIOT_RDFXML_ReaderProperties.java</a>.</p>
-<p><b>Legacy Example</b></p>
-<p>As an example, if you are working in an environment with legacy RDF
-data that uses unqualified RDF attributes such as &ldquo;about&rdquo; instead
-of &ldquo;rdf:about&rdquo;, then the following code is appropriate:</p>
-<pre><code>Model m = ModelFactory.createDefaultModel();
-RDFReader arp = m.getReader();
-m = null; // m is no longer needed.
-// initialize arp
-// Do not warn on use of unqualified RDF attributes.
-arp.setProperty(&quot;WARN_UNQUALIFIED_RDF_ATTRIBUTE&quot;,&quot;EM_IGNORE&quot;);
-
-…
-
-InputStream in = new FileInputStream(fname);
-arp.read(m,in,url);
-in.close();
-</code></pre>
-<p>As a second example, suppose you wish to work in strict mode, but
-allow <code>&quot;daml:collection&quot;</code>, the following works:</p>
-<pre><code> …
- arp.setProperty(&quot;error-mode&quot;, &quot;strict&quot; );
- arp.setProperty(&quot;IGN_DAML_COLLECTION&quot;,&quot;EM_IGNORE&quot;);
- …
-</code></pre>
-<p>The other way round does not work.</p>
-<pre><code> …
- arp.setProperty(&quot;IGN_DAML_COLLECTION&quot;,&quot;EM_IGNORE&quot;);
- arp.setProperty(&quot;error-mode&quot;, &quot;strict&quot; );
- …
-</code></pre>
-<p>This is because in strict mode
-<a href="/documentation/javadoc/jena/org/apache/jena/rdfxml0/xmlinput/ARPErrorNumbers.html#IGN_DAML_COLLECTION"><code>IGN_DAML_COLLECTION</code></a>
-is treated as an error, and so the second call to <code>setProperty</code>
-overwrites the effect of the first.</p>
-<p>The IRI rules and resolver can be set on a per-reader basis:</p>
-<pre><code>InputStream in = ... ;
-String baseURI = ... ;
-Model model = ModelFactory.createDefaultModel();
-RDFReader r = model.getReader(&quot;RDF/XML&quot;);
-r.setProperty(&quot;iri-rules&quot;, &quot;strict&quot;) ;
-r.setProperty(&quot;error-mode&quot;, &quot;strict&quot;) ; // Warning will be errors.
-
-// Alternative to the above &quot;error-mode&quot;: set specific warning to be an error.
-//r.setProperty( &quot;WARN_MALFORMED_URI&quot;, ARPErrorNumbers.EM_ERROR) ;
-r.read(model, in, baseURI) ;
-in.close();
-</code></pre>
-<p>The global default IRI engine can be set with:</p>
-<pre><code>ARPOptions.setIRIFactoryGlobal(IRIFactory.iriImplementation()) ;
-</code></pre>
-<p>or other IRI rule engine from <code>IRIFactory</code>.</p>
-<h2 id="further-details">Further details</h2>
-<p><a href="arp/arp.html">Details of ARP, the Jena RDF/XML parser</a></p>
-
-  </article>
-  
-  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
-    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#advanced-rdfxml-input">Advanced RDF/XML Input</a>
-      <ul>
-        <li><a href="#arp-properties">ARP properties</a></li>
-      </ul>
-    </li>
-    <li><a href="#further-details">Further details</a></li>
-  </ul>
-</nav>
-  </aside>
-</main>
-
-        </div>
-    </div>
-</div>
-
-<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
-    <div class="container" style="font-size:80%" >
-        <p>
-            Copyright &copy; 2011&ndash;2023 The Apache Software Foundation, Licensed under the
-            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
-        </p>
-        <p>
-            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
-            The Apache Software Foundation.
-            <br/>
-          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
-             >Apache Software Foundation Privacy Policy</a>.
-        </p>
-    </div>
-</footer>
-
-<script src="/js/popper.min.js.js" type="text/javascript"></script>
-<script src="/js/bootstrap.min.js" type="text/javascript"></script>
-<script src="/js/improve.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-(function() {
-    'use strict'
-    
-
-    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
-    if (links !== undefined && links !== null) {
-        for (const link of links) {
-            
-            link.classList.add('active')
-            let parentElement = link.parentElement
-            let count = 0
-            const levelsLimit = 4
-            
-            
-            
-            
-            
-            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
-                if (parentElement.tagName === 'LI') {
-                    
-                    
-                    
-                    parentElement.querySelector('a:first-child').classList.add('active')
-                }
-                parentElement = parentElement.parentElement
-                count++
-            }
-        }
-    }
-})()
-</script>
-
-</body>
-</html>
diff --git a/content/documentation/io/rdfxml-io.html b/content/documentation/io/rdfxml-io.html
deleted file mode 100644
index a84424253..000000000
--- a/content/documentation/io/rdfxml-io.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    
-
-    <title>Apache Jena - Jena RDF XML</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
-    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.8eddb17125a9203f3381ffcfb0cfa8dce63a381e136339a4ea8001dfd8fa9d82.css" integrity="sha256-jt2xcSWpID8zgf/PsM&#43;o3OY6OB4TYzmk6oAB39j6nYI=">
-    <link rel="shortcut icon" href="/images/favicon.ico" />
-    
-</head>
-
-<body>
-
-<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
-    <div class="container">
-        <div class="navbar-header">
-            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
-                <span class="navbar-toggler-icon"></span>
-            </button>
-            <a class="navbar-brand" href="/index.html">
-                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
-        </div>
-
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
-                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
-                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li class="dropdown-header">Tutorials</li>
-                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">References</li>
-                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/javadoc.html">Javadoc</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
-                    </ul>
-                </li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jdbc/">JDBC</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
-                    </ul>
-                </li>
-            </ul>
-
-            <ul class="navbar-nav ms-auto">
-                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span> Get involved <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
-                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">Project</li>
-                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">ASF</li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
-                    </ul>
-                </li>
-                
-                
-                
-                
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/rdfxml-io.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
-            </ul>
-        </div>
-    </div>
-</nav>
-
-<div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            
-            <div id="breadcrumbs">
-                
-
-
-
-
-
-<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
-    
-    
-        
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation/io'>IO</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item active">RDFXML IO</li>
-            
-            
-        
-    
-</ol>
-
-
-
-
-            </div>
-            <h1 class="title">Jena RDF XML</h1>
-            
-            
-<main class="d-flex flex-xl-row flex-column">
-  
-  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
-    <h2 class="h6 my-2">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#rdfxml-input">RDF/XML Input</a></li>
-    <li><a href="#rdfxml-output">RDF/XML Output</a></li>
-  </ul>
-</nav>
-  </aside>
-  <article class="flex-column me-lg-4">
-    <p>This is a guide to the RDF/XML I/O subsystem of Jena.</p>
-<p>The RDF/XML parser is designed for use with RIOT and to have the same handling
-of errors, IRI resolution, and treatment of base IRIs as other RIOT readers.</p>
-<h2 id="rdfxml-input">RDF/XML Input</h2>
-<p>The usual way to access the RDF/XML parser is via <code>RDFDataMgr</code> or <code>RDFParser</code>.</p>
-<pre><code>Model model = RDFDataMgr.loadModel(&quot;data.rdf&quot;);
-</code></pre>
-<p>or</p>
-<pre><code>Model model = RDFParser.source(&quot;data.rdf&quot;).toModel();
-</code></pre>
-<p>The original &ldquo;ARP&rdquo; parser is still available bu tmaybe pahsed out.  To access
-the legacy parser, use the context symbol <code>RIOT.symRDFXML0</code> to <code>true</code> or
-`&quot;true&rdquo;.</p>
-<pre><code>Model model = RDFParser.source(&quot;&quot;data.rdf&quot;)
-                       .set(RIOT.symRDFXML0, true)
-                       .parse(dest);
-</code></pre>
-<p>This applies to the command line:</p>
-<pre><code>riot --set rdfxml:rdfxml0=true data.rdf
-</code></pre>
-<p>This can be set globally in the JVM:</p>
-<pre><code>RIOT.getContext().set(RIOT.symRDFXML0, &quot;true&quot;);
-</code></pre>
-<p>Details of <a href="rdfxml-input.html">legacy RDF/XML input</a>.</p>
-<p>Details of the original Jena RDF/XML parser, <a href="arp/arp.html">ARP</a>.</p>
-<h2 id="rdfxml-output">RDF/XML Output</h2>
-<p>Two forms for output are provided:</p>
-<ul>
-<li>
-<p>The default output <code>Lang.RDFXML</code>, historically called &ldquo;RDF/XML-ABBREV&rdquo;, which
-also has a format name <code>RDFFormat.RDFXML_PRETTY</code>. It produces readable
-output. It requires working memory to analyse the data to be written and it is
-not streaming.</p>
-</li>
-<li>
-<p>For efficient, streaming output, the basic RDF/XML <code>RDFFormat.RDFXML_PLAIN</code>
-works for data of any size. It outputs each subject together with all property
-values without using the full features of RDF/XML.</p>
-</li>
-</ul>
-<p>For &ldquo;RDF/XML-ABBREV&rdquo;:</p>
-<pre><code>RDFDataMgr.write(System.out, model, Lang.RDFXML);
-</code></pre>
-<p>or</p>
-<pre><code>RDFWriter.source(model).lang(Lang.RDFXML).output(System.out);
-</code></pre>
-<p>and for plain RDF/XML:</p>
-<pre><code>RDFDataMgr.write(System.out, model, RDFFormat.RDFXML_PLAIN);
-</code></pre>
-<p>or</p>
-<pre><code>RDFWriter.source(model).format(RDFFormat.RDFXML_PLAIN).output(System.out);
-</code></pre>
-<p>Details of <a href="rdfxml-output.html">legacy RDF/XML output</a>.</p>
-
-  </article>
-  
-  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
-    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#rdfxml-input">RDF/XML Input</a></li>
-    <li><a href="#rdfxml-output">RDF/XML Output</a></li>
-  </ul>
-</nav>
-  </aside>
-</main>
-
-        </div>
-    </div>
-</div>
-
-<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
-    <div class="container" style="font-size:80%" >
-        <p>
-            Copyright &copy; 2011&ndash;2023 The Apache Software Foundation, Licensed under the
-            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
-        </p>
-        <p>
-            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
-            The Apache Software Foundation.
-            <br/>
-          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
-             >Apache Software Foundation Privacy Policy</a>.
-        </p>
-    </div>
-</footer>
-
-<script src="/js/popper.min.js.js" type="text/javascript"></script>
-<script src="/js/bootstrap.min.js" type="text/javascript"></script>
-<script src="/js/improve.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-(function() {
-    'use strict'
-    
-
-    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
-    if (links !== undefined && links !== null) {
-        for (const link of links) {
-            
-            link.classList.add('active')
-            let parentElement = link.parentElement
-            let count = 0
-            const levelsLimit = 4
-            
-            
-            
-            
-            
-            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
-                if (parentElement.tagName === 'LI') {
-                    
-                    
-                    
-                    parentElement.querySelector('a:first-child').classList.add('active')
-                }
-                parentElement = parentElement.parentElement
-                count++
-            }
-        }
-    }
-})()
-</script>
-
-</body>
-</html>
diff --git a/content/documentation/io/rdfxml-output.html b/content/documentation/io/rdfxml-output.html
deleted file mode 100644
index 05a7894ff..000000000
--- a/content/documentation/io/rdfxml-output.html
+++ /dev/null
@@ -1,483 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    
-
-    <title>Apache Jena - Jena RDF/XML Output How-To</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
-    <link href="/css/bootstrap-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.8eddb17125a9203f3381ffcfb0cfa8dce63a381e136339a4ea8001dfd8fa9d82.css" integrity="sha256-jt2xcSWpID8zgf/PsM&#43;o3OY6OB4TYzmk6oAB39j6nYI=">
-    <link rel="shortcut icon" href="/images/favicon.ico" />
-    
-</head>
-
-<body>
-
-<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
-    <div class="container">
-        <div class="navbar-header">
-            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
-                <span class="navbar-toggler-icon"></span>
-            </button>
-            <a class="navbar-brand" href="/index.html">
-                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
-        </div>
-
-        <div class="collapse navbar-collapse" id="navbarNav">
-            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
-                <li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
-                <li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li class="dropdown-header">Tutorials</li>
-                        <li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/notes/index.html">How-To's</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/sparql.html">SPARQL tutorial</a></li>
-                        <li><a class="dropdown-item"  href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">References</li>
-                        <li><a class="dropdown-item"  href="/documentation/index.html">Overview</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/assembler/index.html">Assembler</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tools/index.html">Command-line tools</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/inference/index.html">Inference API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/javadoc.html">Javadoc</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/ontology/">Ontology API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/permissions/index.html">Permissions</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdf/index.html">RDF API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/io/">RDF I/O</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/rdfstar/index.html">RDF-star</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shacl/index.html">SHACL</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/shex/index.html">ShEx</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb/index.html">TDB</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/tdb2/index.html">TDB2</a></li>
-                        <li><a class="dropdown-item"  href="/documentation/query/text-query.html">Text Search</a></li>
-                    </ul>
-                </li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jdbc/">JDBC</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
-                        <li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
-                    </ul>
-                </li>
-            </ul>
-
-            <ul class="navbar-nav ms-auto">
-                <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
-
-                <li class="nav-item dropdown">
-                    <a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span> Get involved <b class="caret"></b></a>
-                    <ul class="dropdown-menu">
-                        <li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
-                        <li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">Project</li>
-                        <li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
-                        <li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
-                        <li class="dropdown-divider"></li>
-                        <li class="dropdown-header">ASF</li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
-                        <li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
-                    </ul>
-                </li>
-                
-                
-                
-                
-                <li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/io/rdfxml-output.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span> Edit this page</a></li>
-            </ul>
-        </div>
-    </div>
-</nav>
-
-<div class="container">
-    <div class="row">
-        <div class="col-md-12">
-            
-            <div id="breadcrumbs">
-                
-
-
-
-
-
-<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
-    
-    
-        
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item"><a href='/documentation/io'>IO</a></li>
-            
-            
-        
-    
-        
-        
-            
-                <li class="breadcrumb-item active">RDFXML OUTPUT</li>
-            
-            
-        
-    
-</ol>
-
-
-
-
-            </div>
-            <h1 class="title">Jena RDF/XML Output How-To</h1>
-            
-            
-<main class="d-flex flex-xl-row flex-column">
-  
-  <aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
-    <h2 class="h6 my-2">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#advanced-rdfxml-output">Advanced RDF/XML Output</a>
-      <ul>
-        <li><a href="#properties-to-control-rdfxml-output">Properties to Control RDF/XML Output</a></li>
-      </ul>
-    </li>
-    <li><a href="#conformance">Conformance</a></li>
-    <li><a href="#faster-rdfxml-io">Faster RDF/XML I/O</a></li>
-  </ul>
-</nav>
-  </aside>
-  <article class="flex-column me-lg-4">
-    <p><em>Legacy Documentation : may not be up-to-date</em></p>
-<p>Original <a href="rdfxml_howto.html">RDF/XML HowTo</a>.</p>
-<hr>
-<h2 id="advanced-rdfxml-output">Advanced RDF/XML Output</h2>
-<p>Two forms for output are provided: pretty printed RDF/XML (&ldquo;RDF/XML-ABBREV&rdquo;) or plain RDF/XML</p>
-<p>While some of the code is shared, these
-two writers are really very different, resulting in different but
-equivalent output. &ldquo;RDF/XML-ABBREV&rdquo; is slower, but should produce
-more readable XML.</p>
-<h3 id="properties-to-control-rdfxml-output">Properties to Control RDF/XML Output</h3>
-<table>
-<tr><th>Property Name</th><th>Description</th><th>Value class</th><th>Legal Values</th></tr>
-<tr>
-<td><tt>xmlbase</tt></td>
-<td>The value to be included for an xml:base attribute on the root element in the file.</td>
-<td><tt>String</tt></td>
-<td>A URI string, or null (default)</td>
-</tr>
-<tr>
-<td><tt>longId</tt></td>
-<td>Whether to use long or short id's for anon resources. Short id's are easier to read and are the default, but can run out of memory on very large models.</td>
-<td><tt>String</tt> or <tt>Boolean</tt></td>
-<td><tt>"true"</tt>, <tt>"false"</tt> (default)</td>
-</tr>
-<tr>
-<td><tt>allowBadURIs</tt></td>
-<td>URIs in the graph are, by default, checked prior to serialization.</td>
-<td><tt>String</tt> or <tt>Boolean</tt></td>
-<td><tt>"true"</tt>, <tt>"false"</tt> (default)</td>
-</tr>
-<tr>
-<td><tt>relativeURIs</tt></td>
-<td>What sort of relative URIs should be used. A comma separated list of options:
-<ul>
-<li><em>same-document</em><br />
-same-document references (e.g. &quot;&rdquo; or &ldquo;#foo&rdquo;)</li>
-<li><em>network</em><br />
-network paths e.g. <code>&quot;//example.org/foo&quot;</code> omitting the URI scheme</li>
-<li><em>absolute</em><br />
-absolute paths e.g. <code>&quot;/foo&quot;</code> omitting the scheme and authority</li>
-<li><em>relative</em><br />
-relative path not beginning in <code>&quot;../&quot;</code></li>
-<li><em>parent</em><br />
-relative path beginning in <code>&quot;../&quot;</code></li>
-<li><em>grandparent</em><br />
-relative path beginning in <code>&quot;../../&quot;</code></li>
-</ul>
-<p>The default value is &ldquo;same-document, absolute, relative, parent&rdquo;.
-To switch off relative URIs use the value &ldquo;&quot;. Relative URIs of any
-of these types are output where possible if and only if the option
-has been specified.</td></p>
-<td>String</td>
-<td>&nbsp;</td>
-</tr>
-<tr>
-<td><tt>showXmlDeclaration</tt></td>
-<td>
-If true, an XML Declaration is included in the output, if false no XML declaration is included.
-The default behaviour only gives an XML Declaration when asked to write to an `OutputStreamWriter`
-that uses some encoding other than UTF-8 or UTF-16. In this case the encoding is shown in the
-XML declaration. To ensure that the encoding attribute is shown in the XML declaration either:
-<ul>
-<li>Set this option to true and use the
-<code>write(Model,Writer,String)</code> variant with an appropriate <code>OutputStreamWriter</code>.</li>
-<li>Or set this option to false, and write the declaration to an <code>OutputStream</code> before calling
-<code>write(Model,OutputStream,String)</code>.</li>
-</ul>
-</td>
-<td><tt>true</tt>, <tt>"true"</tt>, <tt>false</tt>, <tt>"false"</tt> or <tt>"default"</tt></td>
-<td>can be true, false or "default" (null)</td>
-</tr>
-<tr>
-<td><tt>showDoctypeDeclaration</tt></td>
-<td>
-If true, an XML Doctype declaration is included in the output. This
-declaration includes a `!ENTITY` declaration for each prefix mapping
-in the model, and any attribute value that starts with the URI of
-that mapping is written as starting with the corresponding entity
-invocation.
-</td>
-<td><tt>String</tt> or <tt>Boolean</tt></td>
-<td><tt>true</tt>, <tt>false</tt>, <tt>"true"</tt>, <tt>"false"</tt></td>
-</tr>
-<tr>
-<td><tt>tab</tt></td>
-<td>The number of spaces with which to indent XML child elements.</td>
-<td><tt>String</tt> or <tt>Integer</tt></td>
-<td>positive integer "2" is the default</td>
-</tr>
-<tr>
-<td><tt>attributeQuoteChar</tt></td>
-<td>How to write XML attributes.</td>
-<td><tt>String</tt></td>
-<td><tt>"\""</tt> or <tt>"'"</tt></td>
-</tr>
-<tr>
-<td><tt>blockRules</tt></td>
-<td>
-A list of `Resource` or a `String` being a comma separated list of
-fragment IDs from [http://www.w3.org/TR/rdf-syntax-grammar](http://www.w3.org/TR/rdf-syntax-grammar)
-indicating grammar rules that will not be used. Rules that can be blocked are:
-<ul>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#section-Reification">section-Reification</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#sectionReification"><code>RDFSyntax.sectionReification</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#section-List-Expand">section-List-Expand</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#sectionListExpand"><code>RDFSyntax.sectionListExpand</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#parseTypeLiteralPropertyElt"><code>RDFSyntax.parseTypeLiteralPropertyElt</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#parseTypeResourcePropertyElt">parseTypeResourcePropertyElt</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#parseTypeLiteralPropertyElt"><code>RDFSyntax.parseTypeLiteralPropertyElt</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#parseTypeCollectionPropertyElt">parseTypeCollectionPropertyElt</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#parseTypeCollectionPropertyElt"><code>RDFSyntax.parseTypeCollectionPropertyElt</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#idAttr">idAttr</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#idAttr"><code>RDFSyntax.idAttr</code></a>)</li>
-<li><a href="http://www.w3.org/TR/rdf-syntax-grammar#propertyAttr">propertyAttr</a>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/RDFSyntax.html#propertyAttr"><code>RDFSyntax.propertyAttr</code></a>)</li>
-</ul>
-<p>In addition <code>&quot;daml:collection&quot;</code>
-(<a href="/documentation/javadoc/jena/org/apache/jena/vocabulary/DAML_OIL.html#collection"><code>DAML_OIL.collection</code></a>)
-can be blocked. Blocking
-<a href="http://www.w3.org/TR/rdf-syntax-grammar#idAttr">idAttr</a> also
-blocks
-<a href="http://www.w3.org/TR/rdf-syntax-grammar#section-Reification">section-Reification</a>.
-By default, rule
-<a href="http://www.w3.org/TR/rdf-syntax-grammar#propertyAttr">propertyAttr</a>
-is blocked. For the basic writer (RDF/XML) only
-<a href="http://www.w3.org/TR/rdf-syntax-grammar#parseTypeLiteralPropertyElt">parseTypeLiteralPropertyElt</a>
-has any effect, since none of the other rules are implemented by
-that writer.</p>
-</td>
-<td><tt>Resource[]</tt> or <tt>String</tt></td>
-<td></td>
-</tr>
-<tr> 
-<td><tt>prettyTypes</tt></td>
-<td>
-Only for the RDF/XML-ABBREV writer. This is a list of the types of
-the principal objects in the model. The writer will tend to create
-RDF/XML with resources of these types at the top level.
-</td>
-<td>
-<tt>Resource[]</tt>
-</td>
-<td></td>
-</tr>
-</table>
-<p>To set properties on the RDF/XML writer:</p>
-<pre><code>    // Properties to be set.
-    Map&lt;String, Object&gt; properties = new HashMap&lt;&gt;() ;
-    properties.put(&quot;showXmlDeclaration&quot;, &quot;true&quot;);
-
-     RDFWriter.create()
-        .base(&quot;http://example.org/&quot;)
-        .format(RDFFormat.RDFXML_PLAIN)
-        .set(SysRIOT.sysRdfWriterProperties, properties)
-        .source(model)
-        .output(System.out);
-</code></pre><p>See
-<a href="https://github.com/apache/jena/blob/main/jena-examples/src/main/java/arq/examples/riot/ExRIOT_RDFXML_WriterProperties.java">ExRIOT_RDFXML_WriterProperties.java</a>.</p>
-<p><b>Legacy example</b></p>
-<p>As an example,</p>
-<pre><code>RDFWriter w = m.getWriter(&quot;RDF/XML-ABBREV&quot;);
-w.setProperty(&quot;attributeQuoteChar&quot;,&quot;'&quot;);
-w.setProperty(&quot;showXMLDeclaration&quot;,&quot;true&quot;);
-w.setProperty(&quot;tab&quot;,&quot;1&quot;);
-w.setProperty(&quot;blockRules&quot;,
-  &quot;daml:collection,parseTypeLiteralPropertyElt,&quot;
-  +&quot;parseTypeResourcePropertyElt,parseTypeCollectionPropertyElt&quot;);
-</code></pre>
-<p>creates a writer that does not use rdf:parseType (preferring
-rdf:datatype for rdf:XMLLiteral), indents only a little, and
-produces the XMLDeclaration. Attributes are used, and are quoted
-with <code>&quot;'&quot;</code>.</p>
-<p>Note that property attributes are not used at all, by default.
-However, the RDF/XML-ABBREV writer includes a rule to produce
-property attributes when the value does not contain any spaces.
-This rule is normally switched off. This rule can be turned on
-selectively by using the blockRules property as detailed above.</p>
-<h2 id="conformance">Conformance</h2>
-<p>The RDF/XML I/O endeavours to conform with the
-<a href="http://www.w3.org/TR/rdf-syntax-grammar/">RDF Syntax Recommendation</a>.</p>
-<p>The parser must be set to strict mode. (Note that, the conformant
-behaviour for <code>rdf:parseType=&quot;daml:collection&quot;</code> is to silently turn
-<code>&quot;daml:collection&quot;</code> into <code>&quot;Literal&quot;</code>).</p>
-<p>The RDF/XML writer is conformant, but does not exercise much of the
-grammar.</p>
-<p>The RDF/XML-ABBREV writer exercises all of the grammar and is
-conformant except that it uses the <code>daml:collection</code> construct for
-DAML ontologies. This non-conformant behaviour can be switched off
-using the <code>blockRules</code> property.</p>
-<h2 id="faster-rdfxml-io">Faster RDF/XML I/O</h2>
-<p>To optimise the speed of writing RDF/XML it is suggested that all
-URI processing is turned off. Also do not use RDF/XML-ABBREV. It is
-unclear whether the longId attribute is faster or slower; the short
-IDs have to be generated on the fly and a table maintained during
-writing. The longer IDs are long, and hence take longer to write.
-The following creates a faster writer:</p>
-<pre><code>Model m;
-…
-…
-RDFWriter fasterWriter = m.getWriter(&quot;RDF/XML&quot;);
-fasterWriter.setProperty(&quot;allowBadURIs&quot;,&quot;true&quot;);
-fasterWriter.setProperty(&quot;relativeURIs&quot;,&quot;&quot;);
-fasterWriter.setProperty(&quot;tab&quot;,&quot;0&quot;);
-</code></pre>
-<p>When reading RDF/XML the check for reuse of rdf:ID has a memory
-overhead, which can be significant for very large files. In this
-case, this check can be suppressed by telling ARP to ignore this
-error.</p>
-<pre><code>Model m;
-…
-…
-RDFReader bigFileReader = m.getReader(&quot;RDF/XML&quot;);
-bigFileReader.setProperty(&quot;WARN_REDEFINITION_OF_ID&quot;,&quot;EM_IGNORE&quot;);
-…
-</code></pre>
-
-  </article>
-  
-  <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
-    <h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
-    <nav id="TableOfContents">
-  <ul>
-    <li><a href="#advanced-rdfxml-output">Advanced RDF/XML Output</a>
-      <ul>
-        <li><a href="#properties-to-control-rdfxml-output">Properties to Control RDF/XML Output</a></li>
-      </ul>
-    </li>
-    <li><a href="#conformance">Conformance</a></li>
-    <li><a href="#faster-rdfxml-io">Faster RDF/XML I/O</a></li>
-  </ul>
-</nav>
-  </aside>
-</main>
-
-        </div>
-    </div>
-</div>
-
-<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
-    <div class="container" style="font-size:80%" >
-        <p>
-            Copyright &copy; 2011&ndash;2023 The Apache Software Foundation, Licensed under the
-            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
-        </p>
-        <p>
-            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
-            The Apache Software Foundation.
-            <br/>
-          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
-             >Apache Software Foundation Privacy Policy</a>.
-        </p>
-    </div>
-</footer>
-
-<script src="/js/popper.min.js.js" type="text/javascript"></script>
-<script src="/js/bootstrap.min.js" type="text/javascript"></script>
-<script src="/js/improve.js" type="text/javascript"></script>
-
-<script type="text/javascript">
-(function() {
-    'use strict'
-    
-
-    const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
-    if (links !== undefined && links !== null) {
-        for (const link of links) {
-            
-            link.classList.add('active')
-            let parentElement = link.parentElement
-            let count = 0
-            const levelsLimit = 4
-            
-            
-            
-            
-            
-            while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
-                if (parentElement.tagName === 'LI') {
-                    
-                    
-                    
-                    parentElement.querySelector('a:first-child').classList.add('active')
-                }
-                parentElement = parentElement.parentElement
-                count++
-            }
-        }
-    }
-})()
-</script>
-
-</body>
-</html>
diff --git a/content/documentation/io/rdfxml_howto.html b/content/documentation/io/rdfxml_howto.html
index 255f46e43..496cf6694 100644
--- a/content/documentation/io/rdfxml_howto.html
+++ b/content/documentation/io/rdfxml_howto.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -202,9 +209,7 @@
 </nav>
   </aside>
   <article class="flex-column me-lg-4">
-    <p><em>Legacy Documentation : may not be up-to-date</em></p>
-<hr>
-<p>This is a guide to the RDF/XML I/O subsystem of Jena, ARP.
+    <p>This is a guide to the RDF/XML I/O subsystem of Jena, ARP.
 The first section gives a quick introduction to the
 I/O subsystem. The other sections are aimed at users wishing to use
 advanced features within the RDF/XML I/O subsystem.</p>
@@ -638,7 +643,7 @@ method. This changes the properties for writing RDF/XML.</p>
 <td>What sort of relative URIs should be used. A comma separated list of options:
 <ul>
 <li><em>same-document</em><br />
-same-document references (e.g. &quot;&rdquo; or &ldquo;#foo&rdquo;)</li>
+same-document references (e.g. &quot;&quot; or &ldquo;#foo&rdquo;)</li>
 <li><em>network</em><br />
 network paths e.g. <code>&quot;//example.org/foo&quot;</code> omitting the URI scheme</li>
 <li><em>absolute</em><br />
@@ -651,7 +656,7 @@ relative path beginning in <code>&quot;../&quot;</code></li>
 relative path beginning in <code>&quot;../../&quot;</code></li>
 </ul>
 <p>The default value is &ldquo;same-document, absolute, relative, parent&rdquo;.
-To switch off relative URIs use the value &ldquo;&quot;. Relative URIs of any
+To switch off relative URIs use the value &ldquo;&rdquo;. Relative URIs of any
 of these types are output where possible if and only if the option
 has been specified.</td></p>
 <td>String</td>
@@ -867,6 +872,7 @@ bigFileReader.setProperty(&quot;WARN_REDEFINITION_OF_ID&quot;,&quot;EM_IGNORE&qu
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/streaming-io.html b/content/documentation/io/streaming-io.html
index dda2d0e76..a7ef0112f 100644
--- a/content/documentation/io/streaming-io.html
+++ b/content/documentation/io/streaming-io.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -365,6 +372,7 @@ StreamRDFOps.graphToStream(model.getGraph(), writer) ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/io/trix.html b/content/documentation/io/trix.html
index c1312f776..77c39caa0 100644
--- a/content/documentation/io/trix.html
+++ b/content/documentation/io/trix.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">TRIX</li>
+                <li class="breadcrumb-item active">TRIX.HTML</li>
             
             
         
@@ -209,9 +216,9 @@ is documented at <a href="https://www.w3.org/2004/03/trix/">https://www.w3.org/2
 Trix XML Schema: <a href="http://www.w3.org/2004/03/trix/trix-1/trix-1.0.xsd">http://www.w3.org/2004/03/trix/trix-1/trix-1.0.xsd</a></p>
 <p>The <a href="https://www.w3.org/2004/03/trix/trix-1/trix-1.0.dtd">W3C DTD</a> differs from
 HPL-2004-56 by having root element <code>&lt;trix&gt;</code> not <code>&lt;TriX&gt;</code>.</p>
-<pre><code>&lt;!-- TriX: RDF Triples in XML --&gt;
+<pre tabindex="0"><code>&lt;!-- TriX: RDF Triples in XML --&gt;
 &lt;!ELEMENT trix         (graph*)&gt;
-&lt;!ATTLIST trix         xmlns CDATA #FIXED &quot;http://www.w3.org/2004/03/trix/trix-1/&quot;&gt;
+&lt;!ATTLIST trix         xmlns CDATA #FIXED &#34;http://www.w3.org/2004/03/trix/trix-1/&#34;&gt;
 &lt;!ELEMENT graph        (uri, triple*)&gt;
 &lt;!ELEMENT triple       ((id|uri|plainLiteral|typedLiteral), uri, (id|uri|plainLiteral|typedLiteral))&gt;
 &lt;!ELEMENT id           (#PCDATA)&gt;
@@ -223,17 +230,17 @@ HPL-2004-56 by having root element <code>&lt;trix&gt;</code> not <code>&lt;TriX&
 </code></pre><h3 id="trix-star">TriX-star</h3>
 <p>The format is extended for <a href="https://w3c.github.io/rdf-star/">RDF-star</a> with
 embedded triples by allowing nested <code>&lt;triple&gt;</code>.</p>
-<p>Trix-star (2021) adds &lsquo;triple&rsquo; to subject and object positions
+<p>Trix-star (2021) adds &rsquo;triple&rsquo; to subject and object positions
 of <code>ELEMENT triple</code>.</p>
-<pre><code>&lt;!ELEMENT triple       ((id|uri|plainLiteral|typedLiteral|triple), uri, (id|uri|plainLiteral|typedLiteral|triple))&gt;
+<pre tabindex="0"><code>&lt;!ELEMENT triple       ((id|uri|plainLiteral|typedLiteral|triple), uri, (id|uri|plainLiteral|typedLiteral|triple))&gt;
 </code></pre><h4 id="example">Example</h4>
 <p>The Turtle:</p>
-<pre><code>PREFIX :      &lt;http://example/&gt;
+<pre tabindex="0"><code>PREFIX :      &lt;http://example/&gt;
 
-:s      :p      &quot;ABC&quot; .
+:s      :p      &#34;ABC&#34; .
 &lt;&lt; :s :p :o &gt;&gt;  :q  :r .
 </code></pre><p>is written in Trix as:</p>
-<pre><code>&lt;trix xmlns=&quot;http://www.w3.org/2004/03/trix/trix-1/&quot;&gt;
+<pre tabindex="0"><code>&lt;trix xmlns=&#34;http://www.w3.org/2004/03/trix/trix-1/&#34;&gt;
   &lt;graph&gt;
     &lt;triple&gt;
       &lt;uri&gt;http://example/s&lt;/uri&gt;
@@ -301,6 +308,7 @@ of <code>ELEMENT triple</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/javadoc.html b/content/documentation/javadoc.html
index 53f3c0bd8..ff24f5d12 100644
--- a/content/documentation/javadoc.html
+++ b/content/documentation/javadoc.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -148,7 +155,7 @@
         
         
             
-                <li class="breadcrumb-item active">JAVADOC</li>
+                <li class="breadcrumb-item active">JAVADOC.HTML</li>
             
             
         
@@ -227,6 +234,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/jdbc/artifacts.html b/content/documentation/jdbc/artifacts.html
index ec576fdef..2a6cabb19 100644
--- a/content/documentation/jdbc/artifacts.html
+++ b/content/documentation/jdbc/artifacts.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">ARTIFACTS</li>
+                <li class="breadcrumb-item active">ARTIFACTS.HTML</li>
             
             
         
@@ -280,6 +287,7 @@ to easily make Jena JDBC drivers available without having to do complex class pa
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/jdbc/custom_driver.html b/content/documentation/jdbc/custom_driver.html
index 3126f95d9..d04f08c17 100644
--- a/content/documentation/jdbc/custom_driver.html
+++ b/content/documentation/jdbc/custom_driver.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -260,6 +267,7 @@ all the built in drivers are tested so you can check out their test sources for
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/jdbc/drivers.html b/content/documentation/jdbc/drivers.html
index 0518eba58..40f7412f9 100644
--- a/content/documentation/jdbc/drivers.html
+++ b/content/documentation/jdbc/drivers.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">DRIVERS</li>
+                <li class="breadcrumb-item active">DRIVERS.HTML</li>
             
             
         
@@ -409,6 +416,7 @@ powerful in that it allows you to use any authentication method that you need.</
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/jdbc/index.html b/content/documentation/jdbc/index.html
index 05c42d06b..59126e63b 100644
--- a/content/documentation/jdbc/index.html
+++ b/content/documentation/jdbc/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -377,6 +384,7 @@ to accessing HTTP based SPARQL endpoints</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/migrate_jena2_jena3.html b/content/documentation/migrate_jena2_jena3.html
index ddebe0bc0..b3ad99c85 100644
--- a/content/documentation/migrate_jena2_jena3.html
+++ b/content/documentation/migrate_jena2_jena3.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -325,6 +332,7 @@ migration documentation</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/concurrency-howto.html b/content/documentation/notes/concurrency-howto.html
index cbaf5959b..a2828498b 100644
--- a/content/documentation/notes/concurrency-howto.html
+++ b/content/documentation/notes/concurrency-howto.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -279,6 +286,7 @@ safely pass these out of critical sections.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/datasetgraph.html b/content/documentation/notes/datasetgraph.html
index 9214a9e49..5383fb2e0 100644
--- a/content/documentation/notes/datasetgraph.html
+++ b/content/documentation/notes/datasetgraph.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">DATASETGRAPH</li>
+                <li class="breadcrumb-item active">DATASETGRAPH.HTML</li>
             
             
         
@@ -233,7 +240,7 @@ implementation style.</p>
 <p><strong>DatasetGraphBaseFind</strong></p>
 <p>This is the beginning of the hierarchy for DSGs that store using different units for default graph and named graphs.
 This class splits find/4 into the following variants:</p>
-<pre><code>    findInDftGraph
+<pre tabindex="0"><code>    findInDftGraph
     findInUnionGraph
     findQuadsInUnionGraph
     findUnionGraphTriples
@@ -375,6 +382,7 @@ the same <code>DatasetGraphTransaction</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/event-handler-howto.html b/content/documentation/notes/event-handler-howto.html
index f5ae25d7b..529510abd 100644
--- a/content/documentation/notes/event-handler-howto.html
+++ b/content/documentation/notes/event-handler-howto.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -348,6 +355,7 @@ happen.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/index.html b/content/documentation/notes/index.html
index cc4bb5571..0e2b1c998 100644
--- a/content/documentation/notes/index.html
+++ b/content/documentation/notes/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -222,6 +229,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/iri.html b/content/documentation/notes/iri.html
index 6045ba16c..79f4e7dc1 100644
--- a/content/documentation/notes/iri.html
+++ b/content/documentation/notes/iri.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">IRI</li>
+                <li class="breadcrumb-item active">IRI.HTML</li>
             
             
         
@@ -367,6 +374,7 @@ in any spec.
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/jena-internals.html b/content/documentation/notes/jena-internals.html
index 63ebe1b11..e1f1fcc93 100644
--- a/content/documentation/notes/jena-internals.html
+++ b/content/documentation/notes/jena-internals.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -403,7 +410,7 @@ dealt with by the Model transparently and appropriately.</p>
 <h3 id="context">Context</h3>
 <p>The first Jena implementation made some attempt to optimise the
 representation of reification. In particular it tried to avoid so
-called &lsquo;triple bloat&rsquo;, <em>ie</em> requiring four triples to represent the
+called &rsquo;triple bloat&rsquo;, <em>ie</em> requiring four triples to represent the
 reification of a statement. The approach taken was to make a
 <em>Statement</em> a subclass of <em>Resource</em> so that properties could be
 directly attached to statement objects.</p>
@@ -463,12 +470,12 @@ public interface Statement
 &hellip;
 public ReifiedStatement createReifiedStatement();
 public ReifiedStatement createReifiedStatement(String URI);
-/* */
+/* <em>/
 public boolean isReified();
 public ReifiedStatement getAnyReifiedStatement();
-/* */
+/</em> <em>/
 public RSIterator listReifiedStatements();
-/* */
+/</em> */
 public void removeAllReifications();
 &hellip;</p>
 <p><em>RSIterator</em> is a new iterator which returns <em>ReifiedStatement</em>s.
@@ -805,6 +812,7 @@ re-exploded into <code>Fragments</code>.)</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/jena-repack.html b/content/documentation/notes/jena-repack.html
index d1c6392a9..6ca8e8bb4 100644
--- a/content/documentation/notes/jena-repack.html
+++ b/content/documentation/notes/jena-repack.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -210,19 +217,19 @@ is capable of doing this process in a build using a &ldquo;transformer&rdquo;.</
 <p>The Apache Jena uses the shade plugin technique itself to make the combined jar
 for Fuseki.  It uses the maven shade plugin with a <code>transformer</code>.</p>
 <p>This is an extract from the POM:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"><span style="color:#008000;font-weight:bold">&lt;plugin&gt;</span>
-  <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.maven.plugins<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
-  <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>maven-shade-plugin<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
-  <span style="color:#008000;font-weight:bold">&lt;configuration&gt;</span>
-    ...
-    <span style="color:#008000;font-weight:bold">&lt;transformers&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;transformer</span> 
-          <span style="color:#b44">implementation=</span><span style="color:#b44">&#34;org.apache.maven.plugins.shade.resource.ServicesResourceTransformer&#34;</span><span style="color:#008000;font-weight:bold">/&gt;</span>
-      ... other transformers ...
-    <span style="color:#008000;font-weight:bold">&lt;/transformers&gt;</span>
-  <span style="color:#008000;font-weight:bold">&lt;/configuration&gt;</span>
-<span style="color:#008000;font-weight:bold">&lt;/plugin&gt;</span>
-</code></pre></div><p>See
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;plugin&gt;</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.maven.plugins<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>maven-shade-plugin<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#008000;font-weight:bold">&lt;configuration&gt;</span>
+</span></span><span style="display:flex;"><span>    ...
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;transformers&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;transformer</span> 
+</span></span><span style="display:flex;"><span>          <span style="color:#b44">implementation=</span><span style="color:#b44">&#34;org.apache.maven.plugins.shade.resource.ServicesResourceTransformer&#34;</span><span style="color:#008000;font-weight:bold">/&gt;</span>
+</span></span><span style="display:flex;"><span>      ... other transformers ...
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;/transformers&gt;</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#008000;font-weight:bold">&lt;/configuration&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;/plugin&gt;</span>
+</span></span></code></pre></div><p>See
 <a href="https://github.com/apache/jena/blob/main/jena-fuseki2/jena-fuseki-server/pom.xml">jena-fuseki2/jena-fuseki-server/pom.xml</a>
 for the complete shade plugin setup used by Fuseki.</p>
 <h4 id="gradle">Gradle</h4>
@@ -230,15 +237,15 @@ for the complete shade plugin setup used by Fuseki.</p>
 has the
 <a href="https://imperceptiblethoughts.com/shadow/configuration/merging/#merging-service-descriptor-files">mergeServiceFiles</a>
 operation.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-groovy" data-lang="groovy">plugins <span style="color:#666">{</span>
-  <span style="color:#666">...</span>    
-  id <span style="color:#b44">&#34;com.github.johnrengelman.shadow&#34;</span> version <span style="color:#b44">&#34;7.1.2&#34;</span>
-<span style="color:#666">}</span>
-shadowJar <span style="color:#666">{</span>
-  mergeServiceFiles<span style="color:#666">()</span>
-<span style="color:#666">}</span>
-<span style="color:#666">...</span>
-</code></pre></div><h4 id="manual-assembling">Manual assembling</h4>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-groovy" data-lang="groovy"><span style="display:flex;"><span>plugins <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#666">...</span>    
+</span></span><span style="display:flex;"><span>  id <span style="color:#b44">&#34;com.github.johnrengelman.shadow&#34;</span> version <span style="color:#b44">&#34;7.1.2&#34;</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>shadowJar <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>  mergeServiceFiles<span style="color:#666">()</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">...</span>
+</span></span></code></pre></div><h4 id="manual-assembling">Manual assembling</h4>
 <p>If doing manually, create a single file (<code>META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle</code>) in your application jar containing the
 lines of all the services resource files. The order does not matter.
 Jena calls modules in the right order.</p>
@@ -293,6 +300,7 @@ Jena calls modules in the right order.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/model-factory.html b/content/documentation/notes/model-factory.html
index 444411441..bc44108d9 100644
--- a/content/documentation/notes/model-factory.html
+++ b/content/documentation/notes/model-factory.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -444,6 +451,7 @@ and <em>vice versa</em>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/rdf-frames.html b/content/documentation/notes/rdf-frames.html
index f05d68b1e..413bdd0dd 100644
--- a/content/documentation/notes/rdf-frames.html
+++ b/content/documentation/notes/rdf-frames.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -220,7 +227,7 @@ well as a <code>Person</code>. This is unlikely to be the case in any
 real-world domain, but it is a valid RDF inference.</p>
 <p>A consequence of RDF&rsquo;s design is that it is not really possible to
 answer the commonly asked question &ldquo;Which properties can be applied
-to resources of class <em>C</em>?&quot;. Strictly speaking, the RDF answer is
+to resources of class <em>C</em>?&rdquo;. Strictly speaking, the RDF answer is
 &ldquo;Any property&rdquo;. However, many developers have a legitimate
 requirement to present a composite view of classes and their
 associated properties, forming more a more succinct structuring of
@@ -475,6 +482,7 @@ associations.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/reification.html b/content/documentation/notes/reification.html
index b6069f1f9..c317ca1b3 100644
--- a/content/documentation/notes/reification.html
+++ b/content/documentation/notes/reification.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">REIFICATION</li>
+                <li class="breadcrumb-item active">REIFICATION.HTML</li>
             
             
         
@@ -353,6 +360,7 @@ what was previously the &ldquo;standard&rdquo; style is supported.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/reification_previous.html b/content/documentation/notes/reification_previous.html
index c4f7ad0b3..afc04d440 100644
--- a/content/documentation/notes/reification_previous.html
+++ b/content/documentation/notes/reification_previous.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -257,6 +264,7 @@ produces a new model which does just that.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/sse.html b/content/documentation/notes/sse.html
index 74b70a02a..111ae57d9 100644
--- a/content/documentation/notes/sse.html
+++ b/content/documentation/notes/sse.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">SSE</li>
+                <li class="breadcrumb-item active">SSE.HTML</li>
             
             
         
@@ -656,6 +663,7 @@ context sorts out the different usages.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/stream-manager.html b/content/documentation/notes/stream-manager.html
index 010ecaad2..0aff29ab3 100644
--- a/content/documentation/notes/stream-manager.html
+++ b/content/documentation/notes/stream-manager.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -252,7 +259,7 @@ following files, in order:</p>
 </ul>
 <p>This is specified as a path - note the path separator is always
 the character &lsquo;;&rsquo; regardless of operating system because URLs
-contain &lsquo;:'.</p>
+contain &lsquo;:&rsquo;.</p>
 <p><code>location-mapping.ttl;location-mapping.rdf;etc/location-mapping.rdf;etc/location-mapping.ttl</code></p>
 <p>Applications can also set mappings programmatically.
 No configuration file is necessary.</p>
@@ -318,6 +325,7 @@ logger.location-manager.level  = ALL
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/system-initialization.html b/content/documentation/notes/system-initialization.html
index 38d34528a..e2b921743 100644
--- a/content/documentation/notes/system-initialization.html
+++ b/content/documentation/notes/system-initialization.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -204,12 +211,12 @@ with <code>ServiceLoader</code> files in repacked jars.</p>
 itself extends <code>SubsystemLifecycle</code>.</p>
 <p>For use in the default initialization, the class must have a zero-argument
 constructor and implement:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">JenaSubsystemLifecycle</span> <span style="color:#666">{</span>
-        <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">start</span><span style="color:#666">()</span> <span style="color:#666">;</span>
-        <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">stop</span><span style="color:#666">()</span> <span style="color:#666">;</span>
-        <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">level</span><span style="color:#666">()</span> <span style="color:#666">{</span> <span style="color:#a2f;font-weight:bold">return</span> 9999 <span style="color:#666">;</span> <span style="color:#666">}</span>
-    <span style="color:#666">}</span>
-</code></pre></div><p>The code should supply a level, indicating its place in the order of initialization.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">JenaSubsystemLifecycle</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">start</span><span style="color:#666">()</span> <span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">stop</span><span style="color:#666">()</span> <span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">default</span> <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">level</span><span style="color:#666">()</span> <span style="color:#666">{</span> <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#666">9999</span> <span style="color:#666">;</span> <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
+</span></span></code></pre></div><p>The code should supply a level, indicating its place in the order of initialization.
 The levels used by Jena are:</p>
 <ul>
 <li>0 - reserved</li>
@@ -290,6 +297,7 @@ intended for runtime logging.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/notes/typed-literals.html b/content/documentation/notes/typed-literals.html
index 00ee56ef6..79d79d71a 100644
--- a/content/documentation/notes/typed-literals.html
+++ b/content/documentation/notes/typed-literals.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -598,6 +605,7 @@ be to undeprecate the 3-argument version of createLiteral.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/ontology/index.html b/content/documentation/ontology/index.html
index 515f035ca..4fab7aedb 100644
--- a/content/documentation/ontology/index.html
+++ b/content/documentation/ontology/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -1168,9 +1175,9 @@ values that <code>listRDFTypes()</code> returns is more than usually dependent
 on the reasoner bound to the ontology model. For example,
 suppose we have class <code>A</code>, class <code>B</code> which is a subclass of <code>A</code>, and
 resource <code>x</code> whose asserted <code>rdf:type</code> is <code>B</code>. With no reasoner,
-listing <code>x</code>'s RDF types will return only <code>B</code>. If the reasoner is able
+listing <code>x</code>&rsquo;s RDF types will return only <code>B</code>. If the reasoner is able
 to calculate the closure of the subclass hierarchy (and most can),
-<code>x</code>'s RDF types would also include <code>A</code>. A complete OWL reasoner would
+<code>x</code>&rsquo;s RDF types would also include <code>A</code>. A complete OWL reasoner would
 also infer that <code>x</code> has <code>rdf:type</code> <code>owl:Thing</code> and <code>rdf:Resource</code>.</p>
 <p>For some tasks, getting a complete list of the RDF types of a
 resource is exactly what is needed. For other tasks, this is not
@@ -1287,7 +1294,7 @@ handled in this way are:</p>
 </tr>
 <tr>
 <td>equivalentClass</td>
-<td>A class that represents the same concept as this class. This is not just having the same class extension: the class &lsquo;British Prime Minister in 2003&rsquo; contains the same individual as the class &lsquo;the husband of Cherie Blair&rsquo;, but they represent different concepts.</td>
+<td>A class that represents the same concept as this class. This is not just having the same class extension: the class &lsquo;British Prime Minister in 2003&rsquo; contains the same individual as the class &rsquo;the husband of Cherie Blair&rsquo;, but they represent different concepts.</td>
 </tr>
 <tr>
 <td>disjointWith</td>
@@ -2390,6 +2397,7 @@ hierarchy in the given model which consists only of named classes.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/ontology/toc-test.html b/content/documentation/ontology/toc-test.html
index 8f8a9fce0..7768dce69 100644
--- a/content/documentation/ontology/toc-test.html
+++ b/content/documentation/ontology/toc-test.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -270,6 +277,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/assembler.html b/content/documentation/permissions/assembler.html
index b918c4ef1..167fe541e 100644
--- a/content/documentation/permissions/assembler.html
+++ b/content/documentation/permissions/assembler.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">ASSEMBLER</li>
+                <li class="breadcrumb-item active">ASSEMBLER.HTML</li>
             
             
         
@@ -271,6 +278,7 @@ my:securedModel rdf:type sec:Model ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/design.html b/content/documentation/permissions/design.html
index ad20c44d2..de07cb034 100644
--- a/content/documentation/permissions/design.html
+++ b/content/documentation/permissions/design.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">DESIGN</li>
+                <li class="breadcrumb-item active">DESIGN.HTML</li>
             
             
         
@@ -274,6 +281,7 @@ returns <code>false</code>. In general this type is used in query evaluation to
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/evaluator.html b/content/documentation/permissions/evaluator.html
index e023d096a..6b54104a4 100644
--- a/content/documentation/permissions/evaluator.html
+++ b/content/documentation/permissions/evaluator.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">EVALUATOR</li>
+                <li class="breadcrumb-item active">EVALUATOR.HTML</li>
             
             
         
@@ -190,7 +197,7 @@
   </aside>
   <article class="flex-column me-lg-4">
     <h2 id="overview">Overview</h2>
-<p>The SecurityEvaluator interface defines the access control operations. It provides the interface between the authentication (answers the question: &ldquo;who are you?&quot;) and the authorization (answers the question: &ldquo;what can you do?&quot;), as such it provides access to the current principal (user). The javadocs contain detailed requirements for implementations of the SecurityEvaluator interface, short notes are provided below.</p>
+<p>The SecurityEvaluator interface defines the access control operations. It provides the interface between the authentication (answers the question: &ldquo;who are you?&rdquo;) and the authorization (answers the question: &ldquo;what can you do?&rdquo;), as such it provides access to the current principal (user). The javadocs contain detailed requirements for implementations of the SecurityEvaluator interface, short notes are provided below.</p>
 <p><strong>NOTE</strong> The permissions system caches intermediate results and will only call the evaluator if the answer is not already in the cache. There is little or no advantage to implementing caching in the SecurityEvaluator itself.</p>
 <p><strong>NOTE</strong> In earlier versions ReadDeniedException was thrown whenever read permissions were not granted.  The current version defines a <code>isHardReadError</code> method that defines what action should be taken.  <strong>The default implementation has changed</strong>.  See Configuration Methods section below for information.</p>
 <h3 id="actions">Actions</h3>
@@ -299,9 +306,9 @@ implementation simply has a <code>setPrincipal(String name)</code> method. A rea
 
         // if the node is a URI or a blank node evaluate it as a resource.
         if (node.isURI() || node.isBlank()) {
-             Resource r = model.getRDFNode( node ).asResource();
-             return evaluate( principal, r );
-         }
+		     Resource r = model.getRDFNode( node ).asResource();
+		     return evaluate( principal, r );
+	     }
 
         return true;
     }
@@ -414,6 +421,7 @@ implementation simply has a <code>setPrincipal(String name)</code> method. A rea
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/example.html b/content/documentation/permissions/example.html
index 5b2d150f7..411b0dbf9 100644
--- a/content/documentation/permissions/example.html
+++ b/content/documentation/permissions/example.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">EXAMPLE</li>
+                <li class="breadcrumb-item active">EXAMPLE.HTML</li>
             
             
         
@@ -336,8 +343,8 @@ public Object getPrincipal() {
  */
 @Override
 public boolean evaluate(Object principal, Action action, Node graphIRI) {
-    // we allow any action on a graph.
-    return true;
+	// we allow any action on a graph.
+	return true;
 }
 
 /**
@@ -398,6 +405,7 @@ To implement your security design you should understand what each of the methods
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/index.html b/content/documentation/permissions/index.html
index 3cfd4f25d..28ac24ee8 100644
--- a/content/documentation/permissions/index.html
+++ b/content/documentation/permissions/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -241,6 +248,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/permissions/migration2To3.html b/content/documentation/permissions/migration2To3.html
index def49ff72..21aa2ecba 100644
--- a/content/documentation/permissions/migration2To3.html
+++ b/content/documentation/permissions/migration2To3.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -318,6 +325,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/algebra.html b/content/documentation/query/algebra.html
index 7ce33c6a9..f230b5102 100644
--- a/content/documentation/query/algebra.html
+++ b/content/documentation/query/algebra.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">ALGEBRA</li>
+                <li class="breadcrumb-item active">ALGEBRA.HTML</li>
             
             
         
@@ -324,6 +331,7 @@ engine is a one-time use object for each query execution.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/app_api.html b/content/documentation/query/app_api.html
index ecc77e309..78d06c919 100644
--- a/content/documentation/query/app_api.html
+++ b/content/documentation/query/app_api.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -429,6 +436,7 @@ dataset.addNamedModel(&quot;http://example/named-2&quot;, modelY) ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/architecture.html b/content/documentation/query/architecture.html
index ab2821da5..aa9c74db4 100644
--- a/content/documentation/query/architecture.html
+++ b/content/documentation/query/architecture.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">ARCHITECTURE</li>
+                <li class="breadcrumb-item active">ARCHITECTURE.HTML</li>
             
             
         
@@ -318,6 +325,7 @@ graph patterns.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/arq-query-eval.html b/content/documentation/query/arq-query-eval.html
index 631792c5f..4ab68668b 100644
--- a/content/documentation/query/arq-query-eval.html
+++ b/content/documentation/query/arq-query-eval.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -442,7 +449,7 @@ the <code>StageGenerator</code> mechanism, as compared to the more general
 requires less detail about the internal evaluation of the other
 SPARQL algebra operators.  This extension point corresponds to
 section 12.6
-&ldquo;<a href="http://www.w3.org/TR/sparql11-query/#sparqlBGPExtend">Extending SPARQL Basic Graph Matching</a>&quot;.</p>
+&ldquo;<a href="http://www.w3.org/TR/sparql11-query/#sparqlBGPExtend">Extending SPARQL Basic Graph Matching</a>&rdquo;.</p>
 <p>Below is the default code to match a BGP from
 <code>OpExecutor.execute(OpBGP, QueryIterator)</code>. It merely calls fixed
 code in the <code>StageBuilder</code> class.The input is a stream of results
@@ -688,6 +695,7 @@ method is called.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/assignment.html b/content/documentation/query/assignment.html
index 718c6ab65..341fbf913 100644
--- a/content/documentation/query/assignment.html
+++ b/content/documentation/query/assignment.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">ASSIGNMENT</li>
+                <li class="breadcrumb-item active">ASSIGNMENT.HTML</li>
             
             
         
@@ -295,6 +302,7 @@ the <code>NOT EXISTS</code> form.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/cmds.html b/content/documentation/query/cmds.html
index 149f762bb..82f4a3efc 100644
--- a/content/documentation/query/cmds.html
+++ b/content/documentation/query/cmds.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">CMDS</li>
+                <li class="breadcrumb-item active">CMDS.HTML</li>
             
             
         
@@ -362,6 +369,7 @@ form.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/collation.html b/content/documentation/query/collation.html
index 04c43901d..337e3b60d 100644
--- a/content/documentation/query/collation.html
+++ b/content/documentation/query/collation.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">COLLATION</li>
+                <li class="breadcrumb-item active">COLLATION.HTML</li>
             
             
         
@@ -259,6 +266,7 @@ implementation details.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/construct-quad.html b/content/documentation/query/construct-quad.html
index 57c8919b9..04f4c866e 100644
--- a/content/documentation/query/construct-quad.html
+++ b/content/documentation/query/construct-quad.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -259,7 +266,7 @@ and no complex graph patterns are allowed in the short form). The keyword
 <tr>
 <td>ConstructQuads</td>
 <td>::=</td>
-<td>TriplesTemplate? ( ConstructQuadsNotTriples &lsquo;.'? TriplesTemplate? )*</td>
+<td>TriplesTemplate? ( ConstructQuadsNotTriples &lsquo;.&rsquo;? TriplesTemplate? )*</td>
 </tr>
 <tr>
 <td>ConstructQuadsNotTriples</td>
@@ -371,6 +378,7 @@ try ( QueryExecution qExec = QueryExecution.service(serviceQuery).query(query).b
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/custom_aggregates.html b/content/documentation/query/custom_aggregates.html
index 7fcf70f99..2ef79b268 100644
--- a/content/documentation/query/custom_aggregates.html
+++ b/content/documentation/query/custom_aggregates.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -217,6 +224,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/custom_service_executors.html b/content/documentation/query/custom_service_executors.html
index df3172135..ff1c34bfa 100644
--- a/content/documentation/query/custom_service_executors.html
+++ b/content/documentation/query/custom_service_executors.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -195,53 +202,51 @@ The relevant classes are located in the package <code>org.apache.jena.sparql.ser
 <p><code>ServiceExecutorFactory</code>: This is the main interface for custom SERVICE handler implementations:</p>
 </li>
 </ul>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">ServiceExecutorFactory</span> <span style="color:#666">{</span>
-    <span style="color:#a2f;font-weight:bold">public</span> ServiceExecution <span style="color:#00a000">createExecutor</span><span style="color:#666">(</span>OpService substituted<span style="color:#666">,</span> OpService original<span style="color:#666">,</span> Binding binding<span style="color:#666">,</span> ExecutionContext execCxt<span style="color:#666">);</span>
-<span style="color:#666">}</span>
-</code></pre></div><p>The second OpService parameter represents the original <code>SERVICE</code> clause as it occurs in the query, whereas the first parameter is the OpService obtained after substitution of all mentioned variables w.r.t. the current binding.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">ServiceExecutorFactory</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> ServiceExecution <span style="color:#00a000">createExecutor</span><span style="color:#666">(</span>OpService substituted<span style="color:#666">,</span> OpService original<span style="color:#666">,</span> Binding binding<span style="color:#666">,</span> ExecutionContext execCxt<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span></code></pre></div><p>The second OpService parameter represents the original <code>SERVICE</code> clause as it occurs in the query, whereas the first parameter is the OpService obtained after substitution of all mentioned variables w.r.t. the current binding.
 A <code>ServiceExecutorFactory</code> can indicate its non-applicability for handling a request simply by returning <code>null</code>. In that case, Jena will ask the next service executor factory in the registry. If a request remains unhandled then the QueryExecException <code>No SERVICE handler</code> is raised.</p>
 <ul>
 <li><code>ServiceExecution</code>: If a <code>ServiceExectorFactory</code> can handle a request then it needs to returns a <code>ServiceExecution</code> instance:</li>
 </ul>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">ServiceExecution</span> <span style="color:#666">{</span>
-    <span style="color:#a2f;font-weight:bold">public</span> QueryIterator <span style="color:#00a000">exec</span><span style="color:#666">();</span>
-<span style="color:#666">}</span>
-</code></pre></div><p>The actual execution is started by calling the <code>exec()</code> method which returns a <code>QueryIterator</code>.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">ServiceExecution</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">public</span> QueryIterator <span style="color:#00a000">exec</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span></code></pre></div><p>The actual execution is started by calling the <code>exec()</code> method which returns a <code>QueryIterator</code>.
 Note, that there are uses cases where ServiceExecution instances may not have to be executed. For example, one may analyze which service executor factories among a set of them claim to be capable of handling a request. This can be useful for debugging or display in a dashboard of applicable service executors.</p>
 <h2 id="examples">Examples</h2>
 <p>A runnable example suite is located in the jena-examples module at <a href="https://github.com/apache/jena/blob/main/jena-examples/src/main/java/arq/examples/service/CustomServiceExecutor.java">CustomServiceExecutor.java</a>.</p>
 <p>In the remainder we summarize the essentials of setting up a custom service executor.
 The following snippet sets up a simple service executor factory that relays queries targeted at Wikidata to DBpedia:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">Node WIKIDATA <span style="color:#666">=</span> NodeFactory<span style="color:#666">.</span><span style="color:#b44">createURI</span><span style="color:#666">(</span><span style="color:#b44">&#34;http://query.wikidata.org/sparql&#34;</span><span style="color:#666">);</span>
-Node DBPEDIA <span style="color:#666">=</span> NodeFactory<span style="color:#666">.</span><span style="color:#b44">createURI</span><span style="color:#666">(</span><span style="color:#b44">&#34;http://dbpedia.org/sparql&#34;</span><span style="color:#666">);</span>
-
-ServiceExecutorFactory myExecutorFactory <span style="color:#666">=</span> <span style="color:#666">(</span>opExecute<span style="color:#666">,</span> original<span style="color:#666">,</span> binding<span style="color:#666">,</span> execCxt<span style="color:#666">)</span> <span style="color:#666">-&gt;</span> <span style="color:#666">{</span>
-    <span style="color:#a2f;font-weight:bold">if</span> <span style="color:#666">(</span>opExecute<span style="color:#666">.</span><span style="color:#b44">getService</span><span style="color:#666">().</span><span style="color:#b44">equals</span><span style="color:#666">(</span>WIKIDATA<span style="color:#666">))</span> <span style="color:#666">{</span>
-        opExecute <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> OpService<span style="color:#666">(</span>DBPEDIA<span style="color:#666">,</span> opExecute<span style="color:#666">.</span><span style="color:#b44">getSubOp</span><span style="color:#666">(),</span> opExecute<span style="color:#666">.</span><span style="color:#b44">getSilent</span><span style="color:#666">());</span>
-        <span style="color:#a2f;font-weight:bold">return</span> ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">httpService</span><span style="color:#666">.</span><span style="color:#b44">createExecutor</span><span style="color:#666">(</span>opExecute<span style="color:#666">,</span> original<span style="color:#666">,</span> binding<span style="color:#666">,</span> execCxt<span style="color:#666">);</span>
-    <span style="color:#666">}</span>
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">null</span><span style="color:#666">;</span>
-<span style="color:#666">};</span>
-</code></pre></div><h3 id="global-vs-local-service-executor-registration">Global vs Local Service Executor Registration</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Node WIKIDATA <span style="color:#666">=</span> NodeFactory<span style="color:#666">.</span><span style="color:#b44">createURI</span><span style="color:#666">(</span><span style="color:#b44">&#34;http://query.wikidata.org/sparql&#34;</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>Node DBPEDIA <span style="color:#666">=</span> NodeFactory<span style="color:#666">.</span><span style="color:#b44">createURI</span><span style="color:#666">(</span><span style="color:#b44">&#34;http://dbpedia.org/sparql&#34;</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>ServiceExecutorFactory myExecutorFactory <span style="color:#666">=</span> <span style="color:#666">(</span>opExecute<span style="color:#666">,</span> original<span style="color:#666">,</span> binding<span style="color:#666">,</span> execCxt<span style="color:#666">)</span> <span style="color:#666">-&gt;</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">if</span> <span style="color:#666">(</span>opExecute<span style="color:#666">.</span><span style="color:#b44">getService</span><span style="color:#666">().</span><span style="color:#b44">equals</span><span style="color:#666">(</span>WIKIDATA<span style="color:#666">))</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>        opExecute <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> OpService<span style="color:#666">(</span>DBPEDIA<span style="color:#666">,</span> opExecute<span style="color:#666">.</span><span style="color:#b44">getSubOp</span><span style="color:#666">(),</span> opExecute<span style="color:#666">.</span><span style="color:#b44">getSilent</span><span style="color:#666">());</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">return</span> ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">httpService</span><span style="color:#666">.</span><span style="color:#b44">createExecutor</span><span style="color:#666">(</span>opExecute<span style="color:#666">,</span> original<span style="color:#666">,</span> binding<span style="color:#666">,</span> execCxt<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">null</span><span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">};</span>
+</span></span></code></pre></div><h3 id="global-vs-local-service-executor-registration">Global vs Local Service Executor Registration</h3>
 <p>The global registry can be accessed and modified as shown below:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">ServiceExecutorRegistry globalRegistry <span style="color:#666">=</span> ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">();</span>
-
-<span style="color:#080;font-style:italic">// Note: registry.add() prepends executor factories to the internal list such
-</span><span style="color:#080;font-style:italic">// that they are consulted first!
-</span><span style="color:#080;font-style:italic"></span>globalRegistry<span style="color:#666">.</span><span style="color:#b44">add</span><span style="color:#666">(</span>myExecutorFactory<span style="color:#666">);</span>
-
-</code></pre></div><p>The following snippet shows how a custom service executor can be configured locally for an individual query execution:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">Context cxt <span style="color:#666">=</span> ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">copy</span><span style="color:#666">();</span>
-ServiceExecutorRegistry localRegistry <span style="color:#666">=</span> ServiceExecutorRegistry<span style="color:#666">().</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">copy</span><span style="color:#666">();</span>
-localRegistry<span style="color:#666">.</span><span style="color:#b44">add</span><span style="color:#666">(</span>myExecutorFactory<span style="color:#666">);</span>
-
-String queryStr <span style="color:#666">=</span> <span style="color:#b44">&#34;SELECT * { SERVICE &lt;http://query.wikidata.org/sparql&gt; { ?s ?p &#34;</span>Apache Jena<span style="color:#b44">&#34;@en } }&#34;</span><span style="color:#666">;</span>
-<span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span>QueryExecution qe <span style="color:#666">=</span> QueryExecutionFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>queryStr<span style="color:#666">))</span> <span style="color:#666">{</span>
-  ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">set</span><span style="color:#666">(</span>qe<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">(),</span> registry<span style="color:#666">);</span>
-  <span style="color:#080;font-style:italic">// ...
-</span><span style="color:#080;font-style:italic"></span><span style="color:#666">}</span>
-
-</code></pre></div>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ServiceExecutorRegistry globalRegistry <span style="color:#666">=</span> ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">// Note: registry.add() prepends executor factories to the internal list such
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">// that they are consulted first!
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>globalRegistry<span style="color:#666">.</span><span style="color:#b44">add</span><span style="color:#666">(</span>myExecutorFactory<span style="color:#666">);</span>
+</span></span></code></pre></div><p>The following snippet shows how a custom service executor can be configured locally for an individual query execution:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Context cxt <span style="color:#666">=</span> ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">copy</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>ServiceExecutorRegistry localRegistry <span style="color:#666">=</span> ServiceExecutorRegistry<span style="color:#666">().</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">copy</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>localRegistry<span style="color:#666">.</span><span style="color:#b44">add</span><span style="color:#666">(</span>myExecutorFactory<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>String queryStr <span style="color:#666">=</span> <span style="color:#b44">&#34;SELECT * { SERVICE &lt;http://query.wikidata.org/sparql&gt; { ?s ?p &#34;</span>Apache Jena<span style="color:#b44">&#34;@en } }&#34;</span><span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span>QueryExecution qe <span style="color:#666">=</span> QueryExecutionFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>queryStr<span style="color:#666">))</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>  ServiceExecutorRegistry<span style="color:#666">.</span><span style="color:#b44">set</span><span style="color:#666">(</span>qe<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">(),</span> registry<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#080;font-style:italic">// ...
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span><span style="color:#666">}</span>
+</span></span></code></pre></div>
   </article>
   
   <aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
@@ -286,6 +291,7 @@ String queryStr <span style="color:#666">=</span> <span style="color:#b44">&#34;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/download.html b/content/documentation/query/download.html
index 318b00852..2d718dcc1 100644
--- a/content/documentation/query/download.html
+++ b/content/documentation/query/download.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">DOWNLOAD</li>
+                <li class="breadcrumb-item active">DOWNLOAD.HTML</li>
             
             
         
@@ -216,6 +223,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/explain.html b/content/documentation/query/explain.html
index 26366a7de..c5656baaa 100644
--- a/content/documentation/query/explain.html
+++ b/content/documentation/query/explain.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">EXPLAIN</li>
+                <li class="breadcrumb-item active">EXPLAIN.HTML</li>
             
             
         
@@ -232,16 +239,16 @@ which applies all optimizations.</p>
 </table>
 <p>The argument <code>--explain</code> is equivalent to <code>--print=query --print=opt</code></p>
 <p>Examples:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">arq.qparse --explain --query Q.rq
-
-arq.qparse --explain <span style="color:#b44">&#39;SELECT * { ?s ?p ?o }&#39;</span>
-</code></pre></div><h2 id="execution-logging">Execution Logging</h2>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>arq.qparse --explain --query Q.rq
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>arq.qparse --explain <span style="color:#b44">&#39;SELECT * { ?s ?p ?o }&#39;</span>
+</span></span></code></pre></div><h2 id="execution-logging">Execution Logging</h2>
 <p>ARQ can log query and update execution details globally or for an
 individual operations. This adds another level of control on top of the
 logger level controls.</p>
 <p>From command line:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">arq.sparql --explain --data ... --query ...
-</code></pre></div><p>Explanatory messages are controlled by the <code>Explain.InfoLevel</code> level in
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>arq.sparql --explain --data ... --query ...
+</span></span></code></pre></div><p>Explanatory messages are controlled by the <code>Explain.InfoLevel</code> level in
 the execution context.</p>
 <p>Execution logging at level <code>ALL</code> can cause a significant slowdown in
 query execution speeds but the order of operations logged will be
@@ -249,20 +256,20 @@ correct.</p>
 <p>The logger used is called <code>org.apache.jena.arq.exec</code>. Message are sent
 at level &ldquo;info&rdquo;. So for log4j2, the following can be set in the
 <code>log4j2.properties</code> file:</p>
-<pre><code class="language-properties" data-lang="properties">logger.arq-exec.name  = org.apache.jena.arq.exec
-logger.arq-exec.level = INFO
-</code></pre><p>The context setting is for key (Java constant) <code>ARQ.symLogExec</code>. To set
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-properties" data-lang="properties"><span style="display:flex;"><span><span style="color:#b44">logger.arq-exec.name</span>  <span style="color:#666">=</span> <span style="color:#b44">org.apache.jena.arq.exec</span>
+</span></span><span style="display:flex;"><span><span style="color:#b44">logger.arq-exec.level</span> <span style="color:#666">=</span> <span style="color:#b44">INFO</span>
+</span></span></code></pre></div><p>The context setting is for key (Java constant) <code>ARQ.symLogExec</code>. To set
 globally:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">ARQ<span style="color:#666">.</span><span style="color:#b44">setExecutionLogging</span><span style="color:#666">(</span>Explain<span style="color:#666">.</span><span style="color:#b44">InfoLevel</span><span style="color:#666">.</span><span style="color:#b44">ALL</span><span style="color:#666">)</span> <span style="color:#666">;</span>
-</code></pre></div><p>and it may also be set on an individual query execution using its local
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ARQ<span style="color:#666">.</span><span style="color:#b44">setExecutionLogging</span><span style="color:#666">(</span>Explain<span style="color:#666">.</span><span style="color:#b44">InfoLevel</span><span style="color:#666">.</span><span style="color:#b44">ALL</span><span style="color:#666">)</ [...]
+</span></span></code></pre></div><p>and it may also be set on an individual query execution using its local
 context.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#a2f;font-weight:bold">try</span><span style="color:#666">(</span>QueryExecution qExec <span style="color:#666">=</span> QueryExecution<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">()</span> <span style="color:#666">...</span> <span style="color:#666">.</span><span style="col [...]
-   ResultSet rs <span style="color:#666">=</span> qExec<span style="color:#666">.</span><span style="color:#b44">execSelect</span><span style="color:#666">()</span> <span style="color:#666">;</span>
-   <span style="color:#666">...</span>
-<span style="color:#666">}</span>
-</code></pre></div><p>On the command line:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"> arq.query --explain --data data file --query<span style="color:#666">=</span>queryfile
-</code></pre></div><p>The command <code>tdbquery</code> takes the same &ndash;explain argument.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">try</span><span style="color:#666">(</span>QueryExecution qExec <span style="color:#666">=</span> QueryExecution<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">()</span> <span style="color:#666">...</span> < [...]
+</span></span><span style="display:flex;"><span>   ResultSet rs <span style="color:#666">=</span> qExec<span style="color:#666">.</span><span style="color:#b44">execSelect</span><span style="color:#666">()</span> <span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span>   <span style="color:#666">...</span>
+</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
+</span></span></code></pre></div><p>On the command line:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span> arq.query --explain --data data file --query<span style="color:#666">=</span>queryfile
+</span></span></code></pre></div><p>The command <code>tdbquery</code> takes the same &ndash;explain argument.</p>
 <p>Logging information levels: see the <a href="logging.html">logging page</a></p>
 <p>To get ARQ query explanation in Fuseki logs see <a href="/documentation/fuseki2/fuseki-logging.html">Fuseki logging</a></p>
 
@@ -307,6 +314,7 @@ context.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/extension.html b/content/documentation/query/extension.html
index 9a7d19139..387a8a284 100644
--- a/content/documentation/query/extension.html
+++ b/content/documentation/query/extension.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">EXTENSION</li>
+                <li class="breadcrumb-item active">EXTENSION.HTML</li>
             
             
         
@@ -379,6 +386,7 @@ _:b0 # A blank node in the query - a variable
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/faq.html b/content/documentation/query/faq.html
index 646060d01..399f0e0a9 100644
--- a/content/documentation/query/faq.html
+++ b/content/documentation/query/faq.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">FAQ</li>
+                <li class="breadcrumb-item active">FAQ.HTML</li>
             
             
         
@@ -295,6 +302,7 @@ as the 3rd argument, unlike Java where it is the end index.
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/function_forms.html b/content/documentation/query/function_forms.html
index 11ab6b867..c45a33a31 100644
--- a/content/documentation/query/function_forms.html
+++ b/content/documentation/query/function_forms.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -197,16 +204,16 @@ evaluate each branch and combining the results.</p>
 result, then evaluates and return the value of the second if the
 boolean result is true, and the third argument if it is false.</p>
 <p>Examples:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#00a000">IF</span> ( <span style="color:#b8860b">?x</span><span style="color:#666">&lt;</span><span style="color:#666">0</span> , <span style="color:#b44">&#34;negative&#34;</span> , <span style="color:#b44">&#34;positive&#34;</span> )
-
-<span style="color:#080;font-style:italic"># A possible way to do default values.</span>
-<span style="">LET</span>( <span style="color:#b8860b">?z</span> :<span style="color:#666">=</span> <span style="color:#00a000">IF</span>(<span style="color:#00a000">bound</span>(<span style="color:#b8860b">?z</span>) , <span style="color:#b8860b">?z</span> , <span style="color:#b44">&#34;DftValue&#34;</span> ) )
-</code></pre></div><h2 id="coalesce">COALESCE</h2>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#00a000">IF</span> ( <span style="color:#b8860b">?x</span><span style="color:#666">&lt;</span><span style="color:#666">0</span> , <span style="color:#b44">&#34;negative&#34;</span> , <span style="color:#b44">&#34;positive&#34;</span> )
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"># A possible way to do default values.</span>
+</span></span><span style="display:flex;"><span><span style="">LET</span>( <span style="color:#b8860b">?z</span> :<span style="color:#666">=</span> <span style="color:#00a000">IF</span>(<span style="color:#00a000">bound</span>(<span style="color:#b8860b">?z</span>) , <span style="color:#b8860b">?z</span> , <span style="color:#b44">&#34;DftValue&#34;</span> ) )
+</span></span></code></pre></div><h2 id="coalesce">COALESCE</h2>
 <p>The <code>COALESCE</code>form returns the first argument of its argument list
 that is bound.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#080;font-style:italic"># Suppose ?y is bound to &#34;y&#34; and ?z to &#34;z&#34; but ?x is not.</span>
-<span style="color:#00a000">COALESCE</span>(<span style="color:#b8860b">?x</span> , <span style="color:#b8860b">?y</span> , <span style="color:#b8860b">?z</span>) <span style="color:#080;font-style:italic"># return &#34;y&#34;</span>
-</code></pre></div><p><a href="index.html">ARQ documentation index</a></p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#080;font-style:italic"># Suppose ?y is bound to &#34;y&#34; and ?z to &#34;z&#34; but ?x is not.</span>
+</span></span><span style="display:flex;"><span><span style="color:#00a000">COALESCE</span>(<span style="color:#b8860b">?x</span> , <span style="color:#b8860b">?y</span> , <span style="color:#b8860b">?z</span>) <span style="color:#080;font-style:italic"># return &#34;y&#34;</span>
+</span></span></code></pre></div><p><a href="index.html">ARQ documentation index</a></p>
 
   </article>
   
@@ -249,6 +256,7 @@ that is bound.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/generate-json-from-sparql.html b/content/documentation/query/generate-json-from-sparql.html
index dde263836..eb1589d51 100644
--- a/content/documentation/query/generate-json-from-sparql.html
+++ b/content/documentation/query/generate-json-from-sparql.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -362,6 +369,7 @@ executed, and the results displayed as with other normal SPARQL queries.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/group-by.html b/content/documentation/query/group-by.html
index 46bb88024..23da4f321 100644
--- a/content/documentation/query/group-by.html
+++ b/content/documentation/query/group-by.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -306,6 +313,7 @@ variables from the query pattern to project out.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/index.html b/content/documentation/query/index.html
index 51ea65260..2abb0032d 100644
--- a/content/documentation/query/index.html
+++ b/content/documentation/query/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -354,6 +361,7 @@ SPARQL and Jena.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/java-uri.html b/content/documentation/query/java-uri.html
index 0511235fd..2550733ee 100644
--- a/content/documentation/query/java-uri.html
+++ b/content/documentation/query/java-uri.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -199,11 +206,11 @@ class files or jar files for dynamically loaded code.</p>
 <code>PREFIX</code>es but because dots can&rsquo;t appear in the local part of a
 prefixed name, all the package name and the final dot must be in
 the <code>PREFIX</code> declaration.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">fn</span>: <span style="color:#a0a000">&lt;java:org.example.functions.&gt;</span>    <span style="color:#080;font-style:italic"># Including the final dot</span>
-...
-  <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00f;font-weight:bold">fn</span>:<span style="color:#008000;font-weight:bold">alter</span>(<span style="color:#b8860b">?x</span>)
-...
-</code></pre></div><h2 id="remapping">Remapping</h2>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">fn</span>: <span style="color:#a0a000">&lt;java:org.example.functions.&gt;</span>    <span style="color:#080;font-style:italic"># Including the final dot</span>
+</span></span><span style="display:flex;"><span>...
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00f;font-weight:bold">fn</span>:<span style="color:#008000;font-weight:bold">alter</span>(<span style="color:#b8860b">?x</span>)
+</span></span><span style="display:flex;"><span>...
+</span></span></code></pre></div><h2 id="remapping">Remapping</h2>
 <p>All code loading is performed via the <code>MappedLoader</code> class. Before
 actually loading the code, the mapped loader applies any
 transformation of URIs. For example, the ARQ function library has a
@@ -254,6 +261,7 @@ name.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/javascript-functions.html b/content/documentation/query/javascript-functions.html
index 59ab96214..fc6eea9da 100644
--- a/content/documentation/query/javascript-functions.html
+++ b/content/documentation/query/javascript-functions.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -199,10 +206,10 @@ JavaScript datatypes are handled with a object class <code>NV</code>.</p>
 <h2 id="requirements">Requirements</h2>
 <p>ARQ requires a javascript engine such as <a href="https://www.graalvm.org/">GraalVM</a> to
 be added to the classpath.</p>
-<pre><code>    &lt;properties&gt;
+<pre tabindex="0"><code>    &lt;properties&gt;
       &lt;ver.graalvm&gt;....&lt;/ver.graalvm&gt;
       ...
-</code></pre><pre><code>    &lt;dependency&gt;
+</code></pre><pre tabindex="0"><code>    &lt;dependency&gt;
       &lt;groupId&gt;org.graalvm.js&lt;/groupId&gt;
       &lt;artifactId&gt;js&lt;/artifactId&gt;
       &lt;version&gt;${ver.graalvm}&lt;/version&gt;
@@ -258,8 +265,8 @@ For example, &ldquo;some words to process &quot; becomes &ldquo;someWordsToProce
 
 function toCamelCase(str) {
     return str.split(' ')
-    .map(cc)
-    .join('');
+	.map(cc)
+	.join('');
 }
 
 function ucFirst(word)    {
@@ -375,6 +382,7 @@ PREFIX ja:      &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/lateral-join.html b/content/documentation/query/lateral-join.html
index 91253c319..57e55aaa1 100644
--- a/content/documentation/query/lateral-join.html
+++ b/content/documentation/query/lateral-join.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -210,23 +217,23 @@ used for the join condition after evaluation of the left and right
 sub-patterns.</p>
 <p>Another way to think of a lateral join is as a <code>flatmap</code>.</p>
 <p>Examples:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#080;font-style:italic">## Get exactly one label for each subject with type `:T`</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span>
-  <span style="">LATERAL</span> {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
-  }
-}
-</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#080;font-style:italic">## Get zero or one labels for each subject.</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
-  <span style="">LATERAL</span> {
-    <span style="color:#a2f;font-weight:bold">OPTIONAL</span> {
-      <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
-    }
-  }
-}
-</code></pre></div><h4 id="syntax">Syntax</h4>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#080;font-style:italic">## Get exactly one label for each subject with type `:T`</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span>
+</span></span><span style="display:flex;"><span>  <span style="">LATERAL</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#080;font-style:italic">## Get zero or one labels for each subject.</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>  <span style="">LATERAL</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">OPTIONAL</span> {
+</span></span><span style="display:flex;"><span>      <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>    }
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><h4 id="syntax">Syntax</h4>
 <p>The <code>LATERAL</code> keyword which takes the graph pattern so far in the group, from
 the <code>{</code> starting of the current block, and a <code>{ }</code> block afterwards.</p>
 <h4 id="evaluation">Evaluation</h4>
@@ -239,12 +246,12 @@ the <code>{</code> starting of the current block, and a <code>{ }</code> block a
 the LHS.</p>
 <p>Such a variable assignment would conflict with the variable being set in
 variables of the row being joined.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#080;font-style:italic">## ** Illegal **</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
-  <span style="">LATERAL</span> { <span style="color:#a2f;font-weight:bold">BIND</span>( <span style="color:#666">123</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?o</span>) }
-}
-</code></pre></div><p>See <a href="https://www.w3.org/TR/sparql11-query/#sparqlGrammar">SPARQL Grammar note 12</a>.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#080;font-style:italic">## ** Illegal **</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>  <span style="">LATERAL</span> { <span style="color:#a2f;font-weight:bold">BIND</span>( <span style="color:#666">123</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?o</span>) }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>See <a href="https://www.w3.org/TR/sparql11-query/#sparqlGrammar">SPARQL Grammar note 12</a>.</p>
 <p>In ARQ, <a href="assignment.html">LET</a> would work.
 <code>LET</code> for a variable that is bound acts like a filter.</p>
 <h4 id="variable-scopes">Variable Scopes</h4>
@@ -254,28 +261,28 @@ available to the right-hand side pattern, setting their value from the top down.
 exposed within a sub-select. These are not lateral-joined to a variable of the
 same name from the LHS.</p>
 <p>This is not specific to lateral joins. In</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
-  {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> }
-  }
-}
-</code></pre></div><p>the inner <code>?s</code> can be replaced by <code>?z</code> without changing the results because the
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
+</span></span><span style="display:flex;"><span>  {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> }
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>the inner <code>?s</code> can be replaced by <code>?z</code> without changing the results because the
 inner <code>?s</code> is not joined to the outer <code>?s</code> but instead is hidden by the <code>SELECT ?label</code>.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
-  {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?z</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> }
-  }
-}
-</code></pre></div><p>The same rule applies to lateral joins.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
-  <span style="">LATERAL</span> {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
-  }
-}
-</code></pre></div><p>The inner <code>?s</code> in the <code>SELECT ?label</code> is not the outer <code>?s</code> because the <code>SELECT ?label</code> does not pass out <code>?s</code>. As a sub-query the <code>?s</code> could be any name except
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
+</span></span><span style="display:flex;"><span>  {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?z</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> }
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>The same rule applies to lateral joins.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> :<span style="color:#008000;font-weight:bold">T</span> 
+</span></span><span style="display:flex;"><span>  <span style="">LATERAL</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?label</span> { <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?label</span> } <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>The inner <code>?s</code> in the <code>SELECT ?label</code> is not the outer <code>?s</code> because the <code>SELECT ?label</code> does not pass out <code>?s</code>. As a sub-query the <code>?s</code> could be any name except
 <code>?label</code> for the same results.</p>
 <h3 id="notes">Notes</h3>
 <p>There is a similarity to filter <code>NOT EXISTS</code>/<code>EXISTS</code> expressed as the non-legal
@@ -285,21 +292,21 @@ available to &ldquo;pattern&rdquo;. This is similar to an SQL
 <h2 id="sparql-specification-additional-material">SPARQL Specification Additional Material</h2>
 <h3 id="syntax-1">Syntax</h3>
 <p><code>LATERAL</code> is added to the SPARQL grammar at rule <code>[[56] GraphPatternNotTriples](https://www.w3.org/TR/sparql11-query/#rGraphPatternNotTriples)</code>. As a syntax form, it is similar to <code>OPTIONAL</code>.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ebnf" data-lang="ebnf"><span style="">[56]</span>    <span style="color:#a2f;font-weight:bold">GraphPatternNotTriples    </span><span style="">::</span><span style="color:#666">=</span>    <span style="color:#a2f;font-weight:bold">GroupOrUnionGraphPattern </span>| <span style="color:#a2f;font-weight:bold">OptionalGraphPattern </span>| <span style="color:#a2f;font-we [...]
-<span style="">[57]</span>    <span style="color:#a2f;font-weight:bold">OptionalGraphPattern      </span><span style="">::</span><span style="color:#666">=</span>    <span style="color:#b44">&#39;OPTIONAL&#39;</span> <span style="color:#a2f;font-weight:bold">GroupGraphPattern</span>
-[  ]    <span style="color:#a2f;font-weight:bold">LateralGraphPattern       </span><span style="">::=</span>    <span style="color:#b44">&#39;LATERAL&#39;</span> <span style="color:#a2f;font-weight:bold">GroupGraphPattern</span>
-</code></pre></div><h3 id="algebra">Algebra</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ebnf" data-lang="ebnf"><span style="display:flex;"><span><span style="">[56]</span>    <span style="color:#a2f;font-weight:bold">GraphPatternNotTriples    </span><span style="">::</span><span style="color:#666">=</span>    <span style="color:#a2f;font-weight:bold">GroupOrUnionGraphPattern </span>| <span style="color:#a2f;font-weight:bold">OptionalGraph [...]
+</span></span><span style="display:flex;"><span><span style="">[57]</span>    <span style="color:#a2f;font-weight:bold">OptionalGraphPattern      </span><span style="">::</span><span style="color:#666">=</span>    <span style="color:#b44">&#39;OPTIONAL&#39;</span> <span style="color:#a2f;font-weight:bold">GroupGraphPattern</span>
+</span></span><span style="display:flex;"><span>[  ]    <span style="color:#a2f;font-weight:bold">LateralGraphPattern       </span><span style="">::=</span>    <span style="color:#b44">&#39;LATERAL&#39;</span> <span style="color:#a2f;font-weight:bold">GroupGraphPattern</span>
+</span></span></code></pre></div><h3 id="algebra">Algebra</h3>
 <p>The new algebra operator is <code>lateral</code> which takes two expressions</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#b8860b">?s</span>  <span style="color:#b8860b">?p</span>  <span style="color:#b8860b">?o</span>
-  <span style="">LATERAL</span>
-  { <span style="color:#b8860b">?a</span>  <span style="color:#b8860b">?b</span>  <span style="color:#b8860b">?c</span> }
-}
-</code></pre></div><p>is translated to:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-lisp" data-lang="lisp">(<span style="color:#b8860b">lateral</span>
-  (<span style="color:#b8860b">bgp</span> (<span style="color:#b8860b">triple</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>))
-  (<span style="color:#b8860b">bgp</span> (<span style="color:#b8860b">triple</span> <span style="color:#b8860b">?a</span> <span style="color:#b8860b">?b</span> <span style="color:#b8860b">?c</span>)))
-</code></pre></div><h3 id="evaluation-1">Evaluation</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?s</span>  <span style="color:#b8860b">?p</span>  <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>  <span style="">LATERAL</span>
+</span></span><span style="display:flex;"><span>  { <span style="color:#b8860b">?a</span>  <span style="color:#b8860b">?b</span>  <span style="color:#b8860b">?c</span> }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>is translated to:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-lisp" data-lang="lisp"><span style="display:flex;"><span>(<span style="color:#b8860b">lateral</span>
+</span></span><span style="display:flex;"><span>  (<span style="color:#b8860b">bgp</span> (<span style="color:#b8860b">triple</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>))
+</span></span><span style="display:flex;"><span>  (<span style="color:#b8860b">bgp</span> (<span style="color:#b8860b">triple</span> <span style="color:#b8860b">?a</span> <span style="color:#b8860b">?b</span> <span style="color:#b8860b">?c</span>)))
+</span></span></code></pre></div><h3 id="evaluation-1">Evaluation</h3>
 <p>To evaluate <code>lateral</code>:</p>
 <ul>
 <li>Evaluate the first argument (left-hand side from syntax) to get a multiset of solution mappings.</li>
@@ -312,7 +319,7 @@ available to &ldquo;pattern&rdquo;. This is similar to an SQL
 </li>
 </ul>
 <p>Outline:</p>
-<pre><code>Definition: Lateral
+<pre tabindex="0"><code>Definition: Lateral
 
 Let Ω be a multiset of solution mappings. We define:
 
@@ -326,7 +333,7 @@ Lateral(Ω, P) = { μ | union of Ω1 where
 operation.</p>
 <p>An alternative style is to define Lateral more like &ldquo;evaluate P such that ÎĽ is
 in-scope&rdquo; in some way, rather than rely on <code>inject</code> which is a mechanism.</p>
-<pre><code>Definition: Evaluation of Lateral
+<pre tabindex="0"><code>Definition: Evaluation of Lateral
 
 eval(D(G), Lateral(P1, P2) = Lateral(eval(D(G), P1), P2)
 </code></pre>
@@ -389,6 +396,7 @@ eval(D(G), Lateral(P1, P2) = Lateral(eval(D(G), P1), P2)
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/library-function.html b/content/documentation/query/library-function.html
index 6f80d7b80..30b7f68a8 100644
--- a/content/documentation/query/library-function.html
+++ b/content/documentation/query/library-function.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -201,7 +208,7 @@ functions.  Functions and property functions can be
 <a href="http://www.dotnetrdf.org/leviathan">Leviathan Function Library</a>.</p>
 <h3 id="xqueryxpath-functions-and-operators-supported">XQuery/XPath Functions and Operators supported</h3>
 <p>ARQ supports the scalar functions and operators from
-&ldquo;<a href="https://www.w3.org/TR/xpath-functions-3/">XQuery 1.0 and XPath 2.0 Functions and Operators v3.1</a>&quot;.</p>
+&ldquo;<a href="https://www.w3.org/TR/xpath-functions-3/">XQuery 1.0 and XPath 2.0 Functions and Operators v3.1</a>&rdquo;.</p>
 <p>Functions in involving sequences are not supported.</p>
 <p>See <a href="xsd-support.html">XSD Support</a> for details of datatypes and functions
 currently supported.  To check the exact current registrations, see
@@ -248,12 +255,12 @@ for compatibility.</p>
 <tr>
 <td><code>afn:localname(?x)</code></td>
 <td>The local name of ?x</td>
-<td><code>REPLACE(STR(?x), &quot;^(.*)(/|#)([^#/]*)$&quot;, &quot;$3&quot;)</code></td>
+<td>`REPLACE(STR(?x), &ldquo;^(.*)(/</td>
 </tr>
 <tr>
 <td><code>afn:namespace(?x)</code></td>
 <td>The namespace of ?x</td>
-<td><code>REPLACE(STR(?x), &quot;^(.*)(/|#)([^#/]*)$&quot;, &quot;$1&quot;)</code></td>
+<td>`REPLACE(STR(?x), &ldquo;^(.*)(/</td>
 </tr>
 </tbody>
 </table>
@@ -413,6 +420,7 @@ character after the substring.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/library-propfunc.html b/content/documentation/query/library-propfunc.html
index 4605f5993..f4a7a8606 100644
--- a/content/documentation/query/library-propfunc.html
+++ b/content/documentation/query/library-propfunc.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -363,6 +370,7 @@ The subject <code><i>var</i></code> is bound for each result of the split, and e
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/logging.html b/content/documentation/query/logging.html
index caf981c38..a7cbd448c 100644
--- a/content/documentation/query/logging.html
+++ b/content/documentation/query/logging.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">LOGGING</li>
+                <li class="breadcrumb-item active">LOGGING.HTML</li>
             
             
         
@@ -234,7 +241,7 @@ configuration work is required.</p>
 <p>The reading of <code>log4j2.properties</code> from the current directory is achieved
 by a call to <code>org.apache.jena.atlas.logging.Log.setlog4j2()</code>.</p>
 <p>Example <code>log4j2.properties</code> file:</p>
-<pre><code>status = error
+<pre tabindex="0"><code>status = error
 name = PropertiesConfig
 filters = threshold
 
@@ -364,6 +371,7 @@ the constants in <code>Explain.InfoLevel</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/manipulating_sparql_using_arq.html b/content/documentation/query/manipulating_sparql_using_arq.html
index 472bfe702..b31b984d0 100644
--- a/content/documentation/query/manipulating_sparql_using_arq.html
+++ b/content/documentation/query/manipulating_sparql_using_arq.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -387,6 +394,7 @@ course, but hopefully you now have a taste for what it can do.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/manipulating_sparql_using_arq_pt.html b/content/documentation/query/manipulating_sparql_using_arq_pt.html
index 54d1d4ca7..c57c887c1 100644
--- a/content/documentation/query/manipulating_sparql_using_arq_pt.html
+++ b/content/documentation/query/manipulating_sparql_using_arq_pt.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -371,6 +378,7 @@ filtros e juntando (merging) os padrões triplos. Nós podemos fazer isso usando
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/negation.html b/content/documentation/query/negation.html
index 2af9a27cf..da88bd3e3 100644
--- a/content/documentation/query/negation.html
+++ b/content/documentation/query/negation.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">NEGATION</li>
+                <li class="breadcrumb-item active">NEGATION.HTML</li>
             
             
         
@@ -347,6 +354,7 @@ WHERE
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/parameterized-sparql-strings.html b/content/documentation/query/parameterized-sparql-strings.html
index a50f3f146..9e3d58f35 100644
--- a/content/documentation/query/parameterized-sparql-strings.html
+++ b/content/documentation/query/parameterized-sparql-strings.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -394,6 +401,7 @@ as these can allow a chained injection attack though generally speaking the code
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/programmatic.html b/content/documentation/query/programmatic.html
index 47d5388c0..874b57436 100644
--- a/content/documentation/query/programmatic.html
+++ b/content/documentation/query/programmatic.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">PROGRAMMATIC</li>
+                <li class="breadcrumb-item active">PROGRAMMATIC.HTML</li>
             
             
         
@@ -222,6 +229,7 @@ it is more regular.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/property_paths.html b/content/documentation/query/property_paths.html
index fe4389f97..a48daac12 100644
--- a/content/documentation/query/property_paths.html
+++ b/content/documentation/query/property_paths.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -510,6 +517,7 @@ PathLib.install(RDF.type.getURI(), path) ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/rdf_lists.html b/content/documentation/query/rdf_lists.html
index cd9062e34..52ca12c86 100644
--- a/content/documentation/query/rdf_lists.html
+++ b/content/documentation/query/rdf_lists.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -226,6 +233,7 @@ ARQ also provides <code>rdfs:member</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/select_expr.html b/content/documentation/query/select_expr.html
index 0e0ae7a2d..558baab03 100644
--- a/content/documentation/query/select_expr.html
+++ b/content/documentation/query/select_expr.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -245,6 +252,7 @@ SELECT (count(*) AS ?count)
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/service.html b/content/documentation/query/service.html
index 4cd26f6cb..76faef4df 100644
--- a/content/documentation/query/service.html
+++ b/content/documentation/query/service.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">SERVICE</li>
+                <li class="breadcrumb-item active">SERVICE.HTML</li>
             
             
         
@@ -277,8 +284,8 @@ The values for configuration can be set in the global context (accessed via
 </tr>
 <tr>
 <td><code>arq:httpServiceSendMode</code></td>
-<td>`ARQ.httpServiceSendMode | unset</td>
-<td></td>
+<td>`ARQ.httpServiceSendMode</td>
+<td>unset</td>
 </tr>
 </tbody>
 </table>
@@ -442,6 +449,7 @@ specific settings will be used.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/service_enhancer.html b/content/documentation/query/service_enhancer.html
index 5a1cd25ff..99e78e4cf 100644
--- a/content/documentation/query/service_enhancer.html
+++ b/content/documentation/query/service_enhancer.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -238,109 +245,109 @@ Afterwards, the substituted rhs is evaluated to sequence of bindings. Each rhs b
 <h2 id="example">Example</h2>
 <p>The following query demonstrates the features of the service enhancer.
 It executes as a single remote request to Wikidata:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">rdfs</span>: <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span>
-<span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">wd</span>: <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/&gt;</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?l</span> {
-  <span style="color:#080;font-style:italic"># The ids below correspond in order to: Apache Jena, Semantic Web, RDF, SPARQL, Andy Seaborne</span>
-  <span style="">VALUES</span> <span style="color:#b8860b">?s</span> { <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q1686799</span> <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q54837</span> <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q54872</span> <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-we [...]
- 
-  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:loop:bulk+5:https://query.wikidata.org/sparql&gt;</span> {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?l</span> {
-      <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?l</span>
-      <span style="color:#a2f;font-weight:bold">FILTER</span>(<span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#39;en&#39;</span>))
-    } <span style="color:#a2f;font-weight:bold">ORDER BY</span> <span style="color:#b8860b">?l</span> <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
-  }
-}
-</code></pre></div><details>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">rdfs</span>: <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">wd</span>: <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?l</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#080;font-style:italic"># The ids below correspond in order to: Apache Jena, Semantic Web, RDF, SPARQL, Andy Seaborne</span>
+</span></span><span style="display:flex;"><span>  <span style="">VALUES</span> <span style="color:#b8860b">?s</span> { <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q1686799</span> <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q54837</span> <span style="color:#00f;font-weight:bold">wd</span>:<span style="color:#008000;font-weight:bold">Q54872</span> <span style="color:#00f;font-weight:bo [...]
+</span></span><span style="display:flex;"><span> 
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:loop:bulk+5:https://query.wikidata.org/sparql&gt;</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?l</span> {
+</span></span><span style="display:flex;"><span>      <span style="color:#b8860b">?s</span> <span style="color:#00f;font-weight:bold">rdfs</span>:<span style="color:#008000;font-weight:bold">label</span> <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#a2f;font-weight:bold">FILTER</span>(<span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#39;en&#39;</span>))
+</span></span><span style="display:flex;"><span>    } <span style="color:#a2f;font-weight:bold">ORDER BY</span> <span style="color:#b8860b">?l</span> <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><details>
   <summary>Click here to view the rewritten query</summary>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-<span style="color:#a2f;font-weight:bold">WHERE</span>
-  {   {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-              <span style="color:#a2f;font-weight:bold">WHERE</span>
-                { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
-                    <span style="color:#a2f;font-weight:bold">WHERE</span>
-                      { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q1686799&gt;</span>
-                                  <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
-                        <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
-                      }
-                  }
-                  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">0</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
-                }
-              <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
-            }
-          }
-        <span style="color:#a2f;font-weight:bold">UNION</span>
-          {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-                  <span style="color:#a2f;font-weight:bold">WHERE</span>
-                    { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
-                        <span style="color:#a2f;font-weight:bold">WHERE</span>
-                          { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54837&gt;</span>
-                                      <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
-                            <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
-                          }
-                      }
-                      <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">1</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
-                    }
-                  <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
-                }
-              }
-            <span style="color:#a2f;font-weight:bold">UNION</span>
-              {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-                      <span style="color:#a2f;font-weight:bold">WHERE</span>
-                        { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
-                            <span style="color:#a2f;font-weight:bold">WHERE</span>
-                              { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54872&gt;</span>
-                                          <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
-                                <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
-                              }
-                          }
-                          <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">2</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
-                        }
-                      <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
-                    }
-                  }
-                <span style="color:#a2f;font-weight:bold">UNION</span>
-                  {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-                          <span style="color:#a2f;font-weight:bold">WHERE</span>
-                            { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
-                                <span style="color:#a2f;font-weight:bold">WHERE</span>
-                                  { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54871&gt;</span>
-                                              <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
-                                    <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
-                                  }
-                              }
-                              <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">3</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
-                            }
-                          <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
-                        }
-                      }
-                    <span style="color:#a2f;font-weight:bold">UNION</span>
-                      { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
-                          <span style="color:#a2f;font-weight:bold">WHERE</span>
-                            { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
-                                <span style="color:#a2f;font-weight:bold">WHERE</span>
-                                  { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q108379795&gt;</span>
-                                              <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
-                                    <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
-                                  }
-                              }
-                              <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">4</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
-                            }
-                          <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
-                        }
-                      }
-                  }
-              }
-          }
-      }
-    <span style="color:#a2f;font-weight:bold">UNION</span>
-      <span style="color:#080;font-style:italic"># This union member adds an end marker</span>
-      <span style="color:#080;font-style:italic"># Its absence in responses is</span>
-      <span style="color:#080;font-style:italic"># used to detect result set size limits</span>
-      { <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">1000000000</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>) }
-  }
-<span style="color:#a2f;font-weight:bold">ORDER BY</span> <span style="color:#a2f;font-weight:bold">ASC</span>(<span style="color:#b8860b">?__idx__</span>) <span style="color:#b8860b">?l</span>
-</code></pre></div><p>Note that in the query above <code>?s</code> has been substituted based on the respective input bindings (in this case the Wikidata IRIs).
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>  {   {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span>              <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                    <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                      { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q1686799&gt;</span>
+</span></span><span style="display:flex;"><span>                                  <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                        <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
+</span></span><span style="display:flex;"><span>                      }
+</span></span><span style="display:flex;"><span>                  }
+</span></span><span style="display:flex;"><span>                  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">0</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
+</span></span><span style="display:flex;"><span>                }
+</span></span><span style="display:flex;"><span>              <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>            }
+</span></span><span style="display:flex;"><span>          }
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>          {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span>                  <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                    { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                        <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                          { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54837&gt;</span>
+</span></span><span style="display:flex;"><span>                                      <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                            <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
+</span></span><span style="display:flex;"><span>                          }
+</span></span><span style="display:flex;"><span>                      }
+</span></span><span style="display:flex;"><span>                      <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">1</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
+</span></span><span style="display:flex;"><span>                    }
+</span></span><span style="display:flex;"><span>                  <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>                }
+</span></span><span style="display:flex;"><span>              }
+</span></span><span style="display:flex;"><span>            <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>              {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span>                      <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                        { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                            <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                              { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54872&gt;</span>
+</span></span><span style="display:flex;"><span>                                          <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                                <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
+</span></span><span style="display:flex;"><span>                              }
+</span></span><span style="display:flex;"><span>                          }
+</span></span><span style="display:flex;"><span>                          <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">2</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
+</span></span><span style="display:flex;"><span>                        }
+</span></span><span style="display:flex;"><span>                      <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>                    }
+</span></span><span style="display:flex;"><span>                  }
+</span></span><span style="display:flex;"><span>                <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>                  {   { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span>                          <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                            { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                                <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                                  { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q54871&gt;</span>
+</span></span><span style="display:flex;"><span>                                              <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                                    <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
+</span></span><span style="display:flex;"><span>                                  }
+</span></span><span style="display:flex;"><span>                              }
+</span></span><span style="display:flex;"><span>                              <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">3</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
+</span></span><span style="display:flex;"><span>                            }
+</span></span><span style="display:flex;"><span>                          <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>                        }
+</span></span><span style="display:flex;"><span>                      }
+</span></span><span style="display:flex;"><span>                    <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>                      { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#666">*</span>
+</span></span><span style="display:flex;"><span>                          <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                            { { <span style="color:#a2f;font-weight:bold">SELECT</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                                <span style="color:#a2f;font-weight:bold">WHERE</span>
+</span></span><span style="display:flex;"><span>                                  { <span style="color:#a0a000">&lt;http://www.wikidata.org/entity/Q108379795&gt;</span>
+</span></span><span style="display:flex;"><span>                                              <span style="color:#a0a000">&lt;http://www.w3.org/2000/01/rdf-schema#label&gt;</span>  <span style="color:#b8860b">?l</span>
+</span></span><span style="display:flex;"><span>                                    <span style="color:#a2f;font-weight:bold">FILTER</span> <span style="color:#00a000">langMatches</span>(<span style="color:#00a000">lang</span>(<span style="color:#b8860b">?l</span>), <span style="color:#b44">&#34;en&#34;</span>)
+</span></span><span style="display:flex;"><span>                                  }
+</span></span><span style="display:flex;"><span>                              }
+</span></span><span style="display:flex;"><span>                              <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">4</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>)
+</span></span><span style="display:flex;"><span>                            }
+</span></span><span style="display:flex;"><span>                          <span style="color:#a2f;font-weight:bold">LIMIT</span>   <span style="color:#666">1</span>
+</span></span><span style="display:flex;"><span>                        }
+</span></span><span style="display:flex;"><span>                      }
+</span></span><span style="display:flex;"><span>                  }
+</span></span><span style="display:flex;"><span>              }
+</span></span><span style="display:flex;"><span>          }
+</span></span><span style="display:flex;"><span>      }
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#080;font-style:italic"># This union member adds an end marker</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#080;font-style:italic"># Its absence in responses is</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#080;font-style:italic"># used to detect result set size limits</span>
+</span></span><span style="display:flex;"><span>      { <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">1000000000</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?__idx__</span>) }
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">ORDER BY</span> <span style="color:#a2f;font-weight:bold">ASC</span>(<span style="color:#b8860b">?__idx__</span>) <span style="color:#b8860b">?l</span>
+</span></span></code></pre></div><p>Note that in the query above <code>?s</code> has been substituted based on the respective input bindings (in this case the Wikidata IRIs).
 For every bulk query execution, the SE plugin assigns an increasing ID to every input binding (starting from 0). This ID is included in the service request via the
 <code>?__idx__</code> variable. (If the variable is already used then an unused name is allocated by appending a number such as <code>?__idx__1</code>).
 Every obtained binding&rsquo;s <code>?__idx__</code>  value determines the input binding that has to be merged with in order to produce the final binding.
@@ -354,12 +361,12 @@ that lack cache entries.</p>
 <h2 id="namespace">Namespace</h2>
 <p>The plugin introduces the namespace <code>http://jena.apache.org/service-enhancer#</code> which is used for both ARQ context symbols as well as assembler configuration.</p>
 <h2 id="maven-dependency">Maven Dependency</h2>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml"><span style="color:#008000;font-weight:bold">&lt;dependency&gt;</span>
-    <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.jena<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
-    <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>jena-serviceenhancer<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
-    <span style="color:#008000;font-weight:bold">&lt;version&gt;</span><span style="color:#080;font-style:italic">&lt;!-- Check the link below for available versions --&gt;</span><span style="color:#008000;font-weight:bold">&lt;/version&gt;</span>
-<span style="color:#008000;font-weight:bold">&lt;/dependency&gt;</span>
-</code></pre></div><p><a href="https://mvnrepository.com/artifact/org.apache.jena/jena-serviceenhancer">Available Versions</a>.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;dependency&gt;</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;groupId&gt;</span>org.apache.jena<span style="color:#008000;font-weight:bold">&lt;/groupId&gt;</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;artifactId&gt;</span>jena-serviceenhancer<span style="color:#008000;font-weight:bold">&lt;/artifactId&gt;</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;version&gt;</span><span style="color:#080;font-style:italic">&lt;!-- Check the link below for available versions --&gt;</span><span style="color:#008000;font-weight:bold">&lt;/version&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">&lt;/dependency&gt;</span>
+</span></span></code></pre></div><p><a href="https://mvnrepository.com/artifact/org.apache.jena/jena-serviceenhancer">Available Versions</a>.</p>
 <p>Adding this dependency will automatically initialize the plugin via service-loading of <code>org.apache.jena.sparql.service.enhancer.init.ServiceEnhancerInit</code>
 using Jena&rsquo;s plugin system.</p>
 <h2 id="programmatic-setup">Programmatic Setup</h2>
@@ -367,13 +374,13 @@ using Jena&rsquo;s plugin system.</p>
 Correlated joins however require explicit activation because they require specific algebra transformations to run as part of the query optimization process.
 For more details about the transformation see <a href="#programmatic-algebra-transformation">Programmatic Algebra Transformation</a>.</p>
 <p>The following snippet globally enables correlated joins by overriding the context&rsquo;s optimizer:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#a2f;font-weight:bold">import</span> <span style="color:#00f;font-weight:bold">org.apache.jena.sparql.service.enhancer.init.ServiceEnhancerInit</span><span style="color:#666">;</span>
-
-ServiceEnhancerInit<span style="color:#666">.</span><span style="color:#b44">wrapOptimizer</span><span style="color:#666">(</span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">());</span>
-</code></pre></div><p>As usual, in order to avoid a global setup, the context of a dataset or statement execution (i.e. query / update) can be used instead:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">DatasetFactory dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">();</span>
-ServiceEnhancerInit<span style="color:#666">.</span><span style="color:#b44">wrapOptimizer</span><span style="color:#666">(</span>dataset<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">());</span>
-</code></pre></div><p>The lookup procedure for which optimizer to wrap first consults the given context and then the global one.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">import</span> <span style="color:#00f;font-weight:bold">org.apache.jena.sparql.service.enhancer.init.ServiceEnhancerInit</span><span style="color:#666">;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>ServiceEnhancerInit<span style="color:#666">.</span><span style="color:#b44">wrapOptimizer</span><span style="color:#666">(</span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">());</span>
+</span></span></code></pre></div><p>As usual, in order to avoid a global setup, the context of a dataset or statement execution (i.e. query / update) can be used instead:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>DatasetFactory dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>ServiceEnhancerInit<span style="color:#666">.</span><span style="color:#b44">wrapOptimizer</span><span style="color:#666">(</span>dataset<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">());</span>
+</span></span></code></pre></div><p>The lookup procedure for which optimizer to wrap first consults the given context and then the global one.
 If neither has an optimizer configured then Jena&rsquo;s default one will be used.</p>
 <p>Service requests that do not make use of this plugin&rsquo;s options will not be affected even if the plugin is loaded.
 The plugin registration makes use of the <a href="/documentation/query/custom_service_executors.html">custom service executor extension system</a>.</p>
@@ -383,34 +390,34 @@ This procedure also automatically enables correlated joins using the dataset&rsq
 By default, the SE assembler alters the base dataset&rsquo;s context and returns the base dataset again.
 There is one important exception: If <code>se:enableMgmt</code> is true then the assembler&rsquo;s final step is to create a wrapped dataset with a copy of the original dataset&rsquo;s context where <code>enableMgmt</code> is true.
 This way, management functions are not available in the base dataset.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ttl" data-lang="ttl"><span style="color:#080;font-style:italic"># assembler.ttl</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">PREFIX</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">PREFIX</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://jena.apache.org/service-enhancer#&gt;</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;urn:example:root&gt;</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">baseDataset</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;urn:example:base&gt;</span><span style="color:#bbb"> </span>;<span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">datasetId</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;https://my.dataset.id/&gt;</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#080;font-style:italic"># Defaults to the value of ja:baseDataset</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cacheMaxEntryCount</span><span style="color:#bbb"> </span><span style="color:#666">300</span><span style="color:#bbb"> </span>;<span style="color:#bbb">             </span><span style="color:#080;font-style:italic"># Maximum number of cache entries ;</span><span style="color:#bbb">
-</span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># identified by the tuple (service IRI, query, input binding)</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cacheMaxPageCount</span><span style="color:#bbb"> </span><span style="color:#666">15</span><span style="color:#bbb"> </span>;<span style="color:#bbb">               </span><span style="color:#080;font-style:italic"># Maximum number of pages per cache entry</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cachePageSize</span><span style="color:#bbb"> </span><span style="color:#666">10000</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                </span><span style="color:#080;font-style:italic"># Number of bindings per page</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkMaxSize</span><span style="color:#bbb"> </span><span style="color:#666">100</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                    </span><span style="color:#080;font-style:italic"># Maximum number of input bindings to group into a bulk request</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkSize</span><span style="color:#bbb"> </span><span style="color:#666">30</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                        </span><span style="color:#080;font-style:italic"># Default bulk size when not specifying a size</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkMaxOutOfBandSize</span><span style="color:#bbb"> </span><span style="color:#666">30</span><span style="color:#bbb"> </span>;<span style="color:#bbb">            </span><span style="color:#080;font-style:italic"># Dispatch non-full batches as soon as this number of non-fitting</span><span style="color:#bbb">
-</span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># input bindings have been encountered</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">enableMgmt</span><span style="color:#bbb"> </span>false<span style="color:#bbb">                     </span><span style="color:#080;font-style:italic"># Enables management functions;</span><span style="color:#bbb">
-</span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># wraps the base dataset with an independent context</span><span style="color:#bbb">
-</span><span style="color:#bbb">  </span>.<span style="color:#bbb">
-</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;urn:example:base&gt;</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">MemoryDataset</span><span style="color:#bbb"> </span>.<span style="color:#bbb">
-</span></code></pre></div><p>In the example above, the shown values for <code>se:cacheMaxEntryCount</code>, <code>se:cacheMaxPageCount</code>, <code>se:cachePageSize</code>, <code>se:bulkMaxSize</code>, <code>se:bulkSize</code> and <code>se:bulkMaxOutOfBandSize</code> are the defaults which are used if those options are left unspecified.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ttl" data-lang="ttl"><span style="display:flex;"><span><span style="color:#080;font-style:italic"># assembler.ttl</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">PREFIX</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#a2f;font-weight:bold">PREFIX</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://jena.apache.org/service-enhancer#&gt;</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;urn:example:root&gt;</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">baseDataset</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;urn:example:base&gt;</span><span style="color:#bbb"> </span>;<span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">datasetId</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;https://my.dataset.id/&gt;</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#080;font-style:italic"># Defaults to the value of ja:baseDataset</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cacheMaxEntryCount</span><span style="color:#bbb"> </span><span style="color:#666">300</span><span style="color:#bbb"> </span>;<span style="color:#bbb">             </span><span style="color:#080;font-style:italic"># Maximum number of cache entries ;</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># identified by the tuple (service IRI, query, input binding)</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cacheMaxPageCount</span><span style="color:#bbb"> </span><span style="color:#666">15</span><span style="color:#bbb"> </span>;<span style="color:#bbb">               </span><span style="color:#080;font-style:italic"># Maximum number of pages per cache entry</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">cachePageSize</span><span style="color:#bbb"> </span><span style="color:#666">10000</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                </span><span style="color:#080;font-style:italic"># Number of bindings per page</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkMaxSize</span><span style="color:#bbb"> </span><span style="color:#666">100</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                    </span><span style="color:#080;font-style:italic"># Maximum number of input bindings to group into a bulk request</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkSize</span><span style="color:#bbb"> </span><span style="color:#666">30</span><span style="color:#bbb"> </span>;<span style="color:#bbb">                        </span><span style="color:#080;font-style:italic"># Default bulk size when not specifying a size</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">bulkMaxOutOfBandSize</span><span style="color:#bbb"> </span><span style="color:#666">30</span><span style="color:#bbb"> </span>;<span style="color:#bbb">            </span><span style="color:#080;font-style:italic"># Dispatch non-full batches as soon as this number of non-fitting</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># input bindings have been encountered</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">enableMgmt</span><span style="color:#bbb"> </span>false<span style="color:#bbb">                     </span><span style="color:#080;font-style:italic"># Enables management functions;</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">                                          </span><span style="color:#080;font-style:italic"># wraps the base dataset with an independent context</span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">  </span>.<span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;urn:example:base&gt;</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">MemoryDataset</span><span style="color:#bbb"> </span>.<span style="color:#bbb">
+</span></span></span></code></pre></div><p>In the example above, the shown values for <code>se:cacheMaxEntryCount</code>, <code>se:cacheMaxPageCount</code>, <code>se:cachePageSize</code>, <code>se:bulkMaxSize</code>, <code>se:bulkSize</code> and <code>se:bulkMaxOutOfBandSize</code> are the defaults which are used if those options are left unspecified.
 They allow for caching up to 45mio bindings (300 x 15 x 10000).
 There is one caveat though: Specifying the cache options puts a new a cache instance in the dataset&rsquo;s context. Without these options the global cache instance that is registered in the ARQ context by the SE plugin during service loading is used.
 Presently, the global instance cannot be configured via the assembler.</p>
 <p>Creating a dataset from the specification above is programmatically accomplished as follows:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">Model spec <span style="color:#666">=</span> RDFDataMgr<span style="color:#666">.</span><span style="color:#b44">load</span><span style="color:#666">(</span><span style="color:#b44">&#34;assembler.ttl&#34;</span><span style="color:#666">);</span>
-Dataset dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">assemble</span><span style="color:#666">(</span>spec<span style="color:#666">.</span><span style="color:#b44">getResource</span><span style="color:#666">(</span><span style="color:#b44">&#34;urn:example:root&#34;</span><span style="color:#666">));</span>
-</code></pre></div><p>The value of <code>se:datasetId</code> is used to look up caches when referring to the active dataset using <code>SERVICE &lt;urn:x-arq:self&gt; {}</code>.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Model spec <span style="color:#666">=</span> RDFDataMgr<span style="color:#666">.</span><span style="color:#b44">load</span><span style="color:#666">(</span><span style="color:#b44">&#34;assembler.ttl&#34;</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>Dataset dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">assemble</span><span style="color:#666">(</span>spec<span style="color:#666">.</span><span style="color:#b44">getResource</span><span style="color:#666">(</span><span style="color:#b44">&#34;urn:example:root&#34;</span><span style="color:#666">));</span>
+</span></span></code></pre></div><p>The value of <code>se:datasetId</code> is used to look up caches when referring to the active dataset using <code>SERVICE &lt;urn:x-arq:self&gt; {}</code>.</p>
 <h3 id="configuration-with-fuseki">Configuration with Fuseki</h3>
 <h4 id="adding-the-service-enhancer-jar">Adding the Service Enhancer JAR</h4>
 <p>This section assumes that one of the distributions of <code>apache-jena-fuseki</code> has been downloaded from [https://jena.apache.org/download/].
@@ -422,14 +429,14 @@ Placing it into the <code>run/extra</code> folder makes it available for use wit
 Cache management can be performed via SPARQL extension functions. However, usually not every user should be allowed to invalidate caches as this
 could be exploited for service disruptions. Jena does not directly provide a security model for access privileges on functions such as
 known from SQL DBMSs. However, with Fuseki it is possible to create both a public and an admin endpoint over the same base dataset:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ttl" data-lang="ttl"><span style="color:#b8860b">&lt;#myServicePublic&gt;</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#008000;font-weight:bold">Service</span>;<span style="color:#bbb"> </span><span style="color:#00f [...]
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myServiceAdmin&gt;</span><span style="color:#bbb">  </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#008000;font-weight:bold">Service</span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#008000;font-weight:bold">name</span><span style="colo [...]
-</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsPublic&gt;</span><span style="color:#bbb">      </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-w [...]
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsAdmin&gt;</span><span style="color:#bbb">       </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-w [...]
-</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsBase&gt;</span><span style="color:#bbb">        </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">MemoryDataset</span><span style="color:#bbb"> </span>.<span style="color:#bbb">
-</span></code></pre></div><p>For configuring access control with Fuseki please refer to <a href="/documentation/fuseki2/fuseki-data-access-control.html">Data Access Control for Fuseki</a>.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-ttl" data-lang="ttl"><span style="display:flex;"><span><span style="color:#b8860b">&lt;#myServicePublic&gt;</span><span style="color:#bbb"> </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#008000;font-weight:bold">Service</span>;<span st [...]
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myServiceAdmin&gt;</span><span style="color:#bbb">  </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#008000;font-weight:bold">Service</span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">fuseki:</span><span style="color:#00800 [...]
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsPublic&gt;</span><span style="color:#bbb">      </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:b [...]
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsAdmin&gt;</span><span style="color:#bbb">       </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">se:</span><span style="color:#008000;font-weight:bold">DatasetServiceEnhancer</span><span style="color:#bbb"> </span>;<span style="color:#bbb"> </span><span style="color:#00f;font-weight:b [...]
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#b8860b">&lt;#myDsBase&gt;</span><span style="color:#bbb">        </span><span style="color:#0b0;font-weight:bold">a</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">ja:</span><span style="color:#008000;font-weight:bold">MemoryDataset</span><span style="color:#bbb"> </span>.<span style="color:#bbb">
+</span></span></span></code></pre></div><p>For configuring access control with Fuseki please refer to <a href="/documentation/fuseki2/fuseki-data-access-control.html">Data Access Control for Fuseki</a>.</p>
 <h2 id="context-symbols">Context Symbols</h2>
 <p>The service enhancer plugin defines several symbols for configuration via context.
 The context symbols are in the namespace <code>http://jena.apache.org/service-enhancer#</code>.</p>
@@ -490,23 +497,23 @@ The context symbols are in the namespace <code>http://jena.apache.org/service-en
 <p>* The value that is assumed if the symbol is absent.</p>
 <p>The class <code>org.apache.jena.sparql.service.enhancer.init.ServiceEnhancerConstants</code> defines the constants for programmatic usage.
 As usual, context attributes can be set on global, dataset and query execution level:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java"><span style="color:#080;font-style:italic">// Global level
-</span><span style="color:#080;font-style:italic"></span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">serviceBulkBindingCount</span><span style="color:#666">,</span> 5<span style="color:#666">);</span>
-
-<span style="color:#080;font-style:italic">// Dataset level
-</span><span style="color:#080;font-style:italic"></span>Dataset dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">();</span>
-dataset<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">datasetId</span><span style="color:#666">,</span> <span style="color:#b44">&#34;http://example.org/myDatasetId&#34;</span><span style="color:#666">);</span>
-
-<span style="color:#080;font-style:italic">// Query Execution level
-</span><span style="color:#080;font-style:italic"></span><span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span>QueryExecution qe <span style="color:#666">=</span> QueryExecutionFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>dataset<span style="color:#666">,</span> <span style="color:#b44">&#34;SELECT * { ?s ?p ?o }&#34;</span><span style="color:#666">))</span> <span style="color:#666">{</span>
-  qe<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">enableMgmt</span><span style="color:#666">,</span> <span style="color:#a2f;font-weight:bold">true</span><span style="color:#666">);</span>
-  <span style="color:#080;font-style:italic">// ...
-</span><span style="color:#080;font-style:italic"></span><span style="color:#666">}</span>
-</code></pre></div><h2 id="service-options">Service Options</h2>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#080;font-style:italic">// Global level
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">serviceBulkBindingCount</span><span style="color:#666">,</span> <span style="color:#666">5</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">// Dataset level
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>Dataset dataset <span style="color:#666">=</span> DatasetFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>dataset<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">datasetId</span><span style="color:#666">,</span> <span style="color:#b44">&#34;http://example.org/myDatasetId&#34;</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic">// Query Execution level
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span><span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span>QueryExecution qe <span style="color:#666">=</span> QueryExecutionFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>dataset<span style="color:#666">,</span> <span style="color:#b44">&#34;SELECT * { ?s ?p ?o }&#34;</span><span style="color:# [...]
+</span></span><span style="display:flex;"><span>  qe<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">().</span><span style="color:#b44">set</span><span style="color:#666">(</span>ServiceEnhancerConstants<span style="color:#666">.</span><span style="color:#b44">enableMgmt</span><span style="color:#666">,</span> <span style="color:#a2f;font-weight:bold">true</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#080;font-style:italic">// ...
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span><span style="color:#666">}</span>
+</span></span></code></pre></div><h2 id="service-options">Service Options</h2>
 <p>The service option syntax is used to express a list of key-value pairs followed by an optional IRI.
 The first pair must always be terminated by a <code>:</code> in order to avoid misinterpreting it as a relative IRI which would be resolved against the configured base IRI.
 Multiple pairs are separated using <code>:</code>. Pairs may be followed by an IRI for the service. If it is absent, then the IRI <code>urn:x-arq:self</code> is implicitly assumed.</p>
-<pre><code>(key[+value]:)* (key[+value][:] | IRI)
+<pre tabindex="0"><code>(key[+value]:)* (key[+value][:] | IRI)
 </code></pre><p>The special IRI <code>urn:x-arq:self</code> is used to refer to the active dataset. This is the dataset the query is executed against. If service options are present that are not followed by an IRI then this IRI is assumed.
 Consequently, Both e.g. <code>SERVICE &lt;cache:&gt;</code> or <code>SERVICE &lt;bulk:loop&gt;</code> refer the active dataset.</p>
 <h3 id="bulk-requests">Bulk Requests</h3>
@@ -527,12 +534,12 @@ Correlated joins alter the scoping rules of variables as demonstrated by the sub
 </ul>
 <h4 id="example-of-scoping-in-a-conventional-join">Example of Scoping in a Conventional join</h4>
 <p>Consider the following example.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?c</span> {
-  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
-  { <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> } }
-}
-</code></pre></div><p>Note that the <code>?p</code> on the right hand side becomes scoped as <code>?/p</code>. Consequently, lhs&rsquo; <code>?p</code>  and rhs&rsquo; <code>?/p</code> are considered different variables.</p>
-<pre><code>(project (?p ?c)
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?c</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
+</span></span><span style="display:flex;"><span>  { <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> } }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>Note that the <code>?p</code> on the right hand side becomes scoped as <code>?/p</code>. Consequently, lhs&rsquo; <code>?p</code>  and rhs&rsquo; <code>?/p</code> are considered different variables.</p>
+<pre tabindex="0"><code>(project (?p ?c)
   (join
     (extend ((?p &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;))
       (table unit))
@@ -543,12 +550,12 @@ Correlated joins alter the scoping rules of variables as demonstrated by the sub
 </code></pre><p>Because there is no overlap in the variables on either side of the join the join key is the empty set of variables.</p>
 <h4 id="example-of-scoping-in-a-correlated-join">Example of Scoping in a Correlated Join</h4>
 <p>The two effects of the <code>loop:</code> transform are shown below. First, a <code>sequence</code> is enforced. And second, the scope of <code>?p</code> is now the same on the lhs and rhs.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?c</span> {
-  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
-  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> } }
-}
-</code></pre></div><p>The obtained algebra now includes <code>sequence</code> instead of <code>join</code> and the variable <code>?p</code> appears on both sides of it:</p>
-<pre><code>(project (?p ?c)
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?c</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</ [...]
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>The obtained algebra now includes <code>sequence</code> instead of <code>join</code> and the variable <code>?p</code> appears on both sides of it:</p>
+<pre tabindex="0"><code>(project (?p ?c)
   (sequence
     (extend ((?p &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt;))
       (table unit))
@@ -570,14 +577,14 @@ The reason is that is does two things:</p>
 <li>It converts every OpJoin instance with a <code>loop:</code> on the right hand side into a <code>OpSequence</code>.</li>
 <li>Any <strong>mentioned</strong> variable on the rhs whose base name matches the base name of a <strong>visible</strong> variable on the lhs gets substituted by the lhs variable.</li>
 </ul>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-java" data-lang="java">String queryStr <span style="color:#666">=</span> <span style="color:#b44">&#34;SELECT ...&#34;</span><span style="color:#666">;</span> <span style="color:#080;font-style:italic">// Put any example query string here
-</span><span style="color:#080;font-style:italic"></span>Transform loopTransform <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> TransformSE_JoinStrategy<span style="color:#666">();</span>
-Op op0 <span style="color:#666">=</span> Algebra<span style="color:#666">.</span><span style="color:#b44">compile</span><span style="color:#666">(</span>QueryFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>queryStr<span style="color:#666">));</span>
-Op op1 <span style="color:#666">=</span> Transformer<span style="color:#666">.</span><span style="color:#b44">transform</span><span style="color:#666">(</span>loopTransform<span style="color:#666">,</span> op0<span style="color:#666">);</span>
-Op op2 <span style="color:#666">=</span> Optimize<span style="color:#666">.</span><span style="color:#b44">stdOptimizationFactory</span><span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">()).</span><span style="color:#b44">rewrite</span><span style="color:#666">(</span>op1<span style="color:#666">);</span>
-Op op3 <span style="color:#666">=</span> Transformer<span style="color:#666">.</span><span style="color:#b44">transform</span><span style="color:#666">(</span>loopTransform<span style="color:#666">,</span> op2<span style="color:#666">);</span>
-System<span style="color:#666">.</span><span style="color:#b44">out</span><span style="color:#666">.</span><span style="color:#b44">println</span><span style="color:#666">(</span>op3<span style="color:#666">);</span>
-</code></pre></div><h3 id="caching">Caching</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>String queryStr <span style="color:#666">=</span> <span style="color:#b44">&#34;SELECT ...&#34;</span><span style="color:#666">;</span> <span style="color:#080;font-style:italic">// Put any example query string here
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>Transform loopTransform <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> TransformSE_JoinStrategy<span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>Op op0 <span style="color:#666">=</span> Algebra<span style="color:#666">.</span><span style="color:#b44">compile</span><span style="color:#666">(</span>QueryFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>queryStr<span style="color:#666">));</span>
+</span></span><span style="display:flex;"><span>Op op1 <span style="color:#666">=</span> Transformer<span style="color:#666">.</span><span style="color:#b44">transform</span><span style="color:#666">(</span>loopTransform<span style="color:#666">,</span> op0<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>Op op2 <span style="color:#666">=</span> Optimize<span style="color:#666">.</span><span style="color:#b44">stdOptimizationFactory</span><span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>ARQ<span style="color:#666">.</span><span style="color:#b44">getContext</span><span style="color:#666">()).</span><span style="color:#b44">rewrite</span><span style="color:#666">(</span>op1<span style="co [...]
+</span></span><span style="display:flex;"><span>Op op3 <span style="color:#666">=</span> Transformer<span style="color:#666">.</span><span style="color:#b44">transform</span><span style="color:#666">(</span>loopTransform<span style="color:#666">,</span> op2<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>System<span style="color:#666">.</span><span style="color:#b44">out</span><span style="color:#666">.</span><span style="color:#b44">println</span><span style="color:#666">(</span>op3<span style="color:#666">);</span>
+</span></span></code></pre></div><h3 id="caching">Caching</h3>
 <p>Any graph pattern contained in a <code>SERVICE &lt;cache:&gt; { }</code> block is subject to caching.
 The key of a cache entry is composed of three components:</p>
 <ul>
@@ -594,24 +601,24 @@ and derive a backend request that only fetches the needed parts.</p>
 <li><code>cache+clear</code>: Clears all cache entries for the current batch of input bindings.</li>
 <li><code>cache+off</code>: Disables use the cache in the query execution</li>
 </ul>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">rdf</span>: <span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
-  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:cache:&gt;</span> {
-    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-      <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
-    } <span style="">OFSET</span> <span style="color:#666">10</span> <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">10</span>
-    <span style="color:#080;font-style:italic"># ^ Altering limit/offset will match overlapping ranges of data in the cache</span>
-  }
-}
-</code></pre></div><p>Note, that in pathological cases this can require a bulk request to be repeatedly re-executed with disabled caches for each input binding.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">rdf</span>: <span style="color:#a0a000">&lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#00f;font-weight:bold">rdf</span>:<span style="color:#008000;font-weight:bold">type</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?p</span>)
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:cache:&gt;</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>      <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>    } <span style="">OFSET</span> <span style="color:#666">10</span> <span style="color:#a2f;font-weight:bold">LIMIT</span> <span style="color:#666">10</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#080;font-style:italic"># ^ Altering limit/offset will match overlapping ranges of data in the cache</span>
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>Note, that in pathological cases this can require a bulk request to be repeatedly re-executed with disabled caches for each input binding.
 For example, assume that the largest result yet set seen for a service is 1000 and the system is about to serve the 1001st binding from cache for a specific input binding.
 The question is whether this would exceed the service&rsquo;s so far unknown result set size limit. Therefore, in order to answer that question a remote request that bypasses the cache is performed.
 Furthermore, let&rsquo;s assume that another request produced 2000 results. Then the problem repeats once another input binding&rsquo;s 2001st result were about to be served.</p>
 <h3 id="sparql-functions">SPARQL Functions</h3>
 <p>The service enhancer plugin introduces functions and property functions for listing cache content and removing cache entries.
 The namespace is</p>
-<pre><code>PREFIX se: &lt;http://jena.apache.org/service-enhancer#&gt;
+<pre tabindex="0"><code>PREFIX se: &lt;http://jena.apache.org/service-enhancer#&gt;
 </code></pre><table>
 <thead>
 <tr>
@@ -634,46 +641,46 @@ The namespace is</p>
 </tr>
 </tbody>
 </table>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">sepf</span>: <span style="color:#a0a000">&lt;java:org.apache.jena.sparql.service.enhancer.pfunction.&gt;</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> <span style="color:#a2f;font-weight:bold">WHERE</span> {
-  <span style="color:#b8860b">?id</span> <span style="color:#00f;font-weight:bold">sepf</span>:<span style="color:#008000;font-weight:bold">cacheLs</span> (<span style="color:#b8860b">?service</span> <span style="color:#b8860b">?query</span> <span style="color:#b8860b">?binding</span>)
-}
-</code></pre></div><p>If e.g. data was cached using the following query, then <code>se:cacheLs</code> will yield the result set below.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
-  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:&gt;</span> {
-    { <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:&gt;</span> {
-      <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#a0a000">&lt;urn:x-arq:DefaultGraph&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?g</span>) <span style="color:#b8860b">?p</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) {
-        <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
-      } <span style="color:#a2f;font-weight:bold">GROUP BY</span> <span style="color:#b8860b">?p</span>
-    } }
-  <span style="color:#a2f;font-weight:bold">UNION</span>
-    { <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:&gt;</span> {
-      <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) {
-        <span style="color:#a2f;font-weight:bold">GRAPH</span> <span style="color:#b8860b">?g</span> { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> }
-      } <span style="color:#a2f;font-weight:bold">GROUP BY</span> <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span>
-    } }
-  }
-
-  <span style="color:#080;font-style:italic"># FILTER(CONTAINS(STR(?g), &#39;filter over ?g&#39;))</span>
-  <span style="color:#080;font-style:italic"># FILTER(CONTAINS(STR(?p), &#39;filter over ?p&#39;))</span>
-} <span style="color:#a2f;font-weight:bold">order by</span> <span style="color:#a2f;font-weight:bold">DESC</span>(<span style="color:#b8860b">?c</span>) <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span>
-</code></pre></div><pre><code>------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">sepf</span>: <span style="color:#a0a000">&lt;java:org.apache.jena.sparql.service.enhancer.pfunction.&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> <span style="color:#a2f;font-weight:bold">WHERE</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?id</span> <span style="color:#00f;font-weight:bold">sepf</span>:<span style="color:#008000;font-weight:bold">cacheLs</span> (<span style="color:#b8860b">?service</span> <span style="color:#b8860b">?query</span> <span style="color:#b8860b">?binding</span>)
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>If e.g. data was cached using the following query, then <code>se:cacheLs</code> will yield the result set below.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#666">*</span> {
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;loop:&gt;</span> {
+</span></span><span style="display:flex;"><span>    { <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:&gt;</span> {
+</span></span><span style="display:flex;"><span>      <span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#a0a000">&lt;urn:x-arq:DefaultGraph&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?g</span>) <span style="color:#b8860b">?p</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) {
+</span></span><span style="display:flex;"><span>        <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>      } <span style="color:#a2f;font-weight:bold">GROUP BY</span> <span style="color:#b8860b">?p</span>
+</span></span><span style="display:flex;"><span>    } }
+</span></span><span style="display:flex;"><span>  <span style="color:#a2f;font-weight:bold">UNION</span>
+</span></span><span style="display:flex;"><span>    { <span style="color:#a2f;font-weight:bold">SERVICE</span> <span style="color:#a0a000">&lt;cache:&gt;</span> {
+</span></span><span style="display:flex;"><span>      <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span> (<span style="color:#00a000">COUNT</span>(<span style="color:#666">*</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?c</span>) {
+</span></span><span style="display:flex;"><span>        <span style="color:#a2f;font-weight:bold">GRAPH</span> <span style="color:#b8860b">?g</span> { <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> }
+</span></span><span style="display:flex;"><span>      } <span style="color:#a2f;font-weight:bold">GROUP BY</span> <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span>
+</span></span><span style="display:flex;"><span>    } }
+</span></span><span style="display:flex;"><span>  }
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>  <span style="color:#080;font-style:italic"># FILTER(CONTAINS(STR(?g), &#39;filter over ?g&#39;))</span>
+</span></span><span style="display:flex;"><span>  <span style="color:#080;font-style:italic"># FILTER(CONTAINS(STR(?p), &#39;filter over ?p&#39;))</span>
+</span></span><span style="display:flex;"><span>} <span style="color:#a2f;font-weight:bold">order by</span> <span style="color:#a2f;font-weight:bold">DESC</span>(<span style="color:#b8860b">?c</span>) <span style="color:#b8860b">?g</span> <span style="color:#b8860b">?p</span>
+</span></span></code></pre></div><pre tabindex="0"><code>------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 | id | service                           | query                                                                                                 | binding             |
 ========================================================================================================================================================================
-| 2  | &quot;urn:x-arq:self@dataset813601419&quot; | &quot;SELECT  (&lt;urn:x-arq:DefaultGraph&gt; AS ?g) ?p (count(*) AS ?c)\nWHERE\n  { ?s  a  ?o }\nGROUP BY ?p\n&quot; | &quot;( ?p = rdf:type )&quot; |
-| 3  | &quot;urn:x-arq:self@dataset813601419&quot; | &quot;SELECT  ?g ?p (count(*) AS ?c)\nWHERE\n  { GRAPH ?g\n      { ?s  a  ?o }\n  }\nGROUP BY ?g ?p\n&quot;     | &quot;( ?p = rdf:type )&quot; |
+| 2  | &#34;urn:x-arq:self@dataset813601419&#34; | &#34;SELECT  (&lt;urn:x-arq:DefaultGraph&gt; AS ?g) ?p (count(*) AS ?c)\nWHERE\n  { ?s  a  ?o }\nGROUP BY ?p\n&#34; | &#34;( ?p = rdf:type )&#34; |
+| 3  | &#34;urn:x-arq:self@dataset813601419&#34; | &#34;SELECT  ?g ?p (count(*) AS ?c)\nWHERE\n  { GRAPH ?g\n      { ?s  a  ?o }\n  }\nGROUP BY ?g ?p\n&#34;     | &#34;( ?p = rdf:type )&#34; |
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 </code></pre><h4 id="example-invaliding-all-cache-entries">Example: Invaliding All Cache Entries</h4>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">se</span>: <span style="color:#a0a000">&lt;http://jena.apache.org/service-enhancer#&gt;</span>
-<span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheRm</span>() <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?count</span>) { }
-</code></pre></div><h4 id="example-invalidating-specific-cache-entries">Example: Invalidating Specific Cache Entries</h4>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">se</span>: <span style="color:#a0a000">&lt;http://jena.apache.org/service-enhancer#&gt;</span>
-
-<span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#00a000">SUM</span>(<span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheRm</span>(<span style="color:#b8860b">?id</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?count</span>) {
-  <span style="color:#b8860b">?id</span> <span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheLs</span> (<span style="color:#a0a000">&lt;http://dbpedia.org/sparql&gt;</span>)
-}
-</code></pre></div><p>For completeness, the functions can be addressed via their fully qualified Java class names:</p>
-<pre><code>&lt;java:org.apache.jena.sparql.service.enhancer.pfunction.cacheLs&gt;
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">se</span>: <span style="color:#a0a000">&lt;http://jena.apache.org/service-enhancer#&gt;</span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheRm</span>() <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?count</span>) { }
+</span></span></code></pre></div><h4 id="example-invalidating-specific-cache-entries">Example: Invalidating Specific Cache Entries</h4>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">PREFIX</span> <span style="color:#00f;font-weight:bold">se</span>: <span style="color:#a0a000">&lt;http://jena.apache.org/service-enhancer#&gt;</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#00a000">SUM</span>(<span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheRm</span>(<span style="color:#b8860b">?id</span>) <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?count</span>) {
+</span></span><span style="display:flex;"><span>  <span style="color:#b8860b">?id</span> <span style="color:#00f;font-weight:bold">se</span>:<span style="color:#008000;font-weight:bold">cacheLs</span> (<span style="color:#a0a000">&lt;http://dbpedia.org/sparql&gt;</span>)
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>For completeness, the functions can be addressed via their fully qualified Java class names:</p>
+<pre tabindex="0"><code>&lt;java:org.apache.jena.sparql.service.enhancer.pfunction.cacheLs&gt;
 &lt;java:org.apache.jena.sparql.service.enhancer.function.cacheRm&gt;
 </code></pre><h2 id="limitations-troubleshooting-and-pitfalls">Limitations, Troubleshooting and Pitfalls</h2>
 <h3 id="storing-caches-to-disk">Storing Caches to Disk</h3>
@@ -683,21 +690,21 @@ A file-based storage system is expected to be shipped with a later version of th
 <p>There is a bug in Virtuoso that causes queries making use of DISTINCT a with non-zero OFFSET without LIMIT to fail.
 The remainder shows how the SE plugin may unexpectedly fail due to it and shows a workaround.</p>
 <p>The following query will cause caching of the first 10 results:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span style="color:#b8860b">?s</span> <span style="col [...]
-</code></pre></div><p>Executing the the following query afterwards will fail:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span style="color:#b8860b">?s</span> <span style="col [...]
-</code></pre></div><p>The reason is that the first 10 results will be read from cache and the actual query sent as a remote request is:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span style="color:#b8860b">?s</span> <span style="col [...]
-</code></pre></div><p>Thus we end up with a query using DISTINCT with a non-zero offset and without LIMIT.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span  [...]
+</span></span></code></pre></div><p>Executing the the following query afterwards will fail:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span  [...]
+</span></span></code></pre></div><p>The reason is that the first 10 results will be read from cache and the actual query sent as a remote request is:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span  [...]
+</span></span></code></pre></div><p>Thus we end up with a query using DISTINCT with a non-zero offset and without LIMIT.</p>
 <p>As a workaround, note that if the service enhancer plugin detects a result set size limit then it will inject it in remote requests.
 In such cases, executing the query <code>SELECT * { SERVICE &lt;http://dbpedia.org/sparql&gt; { ?s ?p ?o } }</code> once will make the result set size limit known
 (at the time of writing DBpedia was configured with a limit of 10000), and therefore the modified request becomes</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span style="color:#b8860b">?s</span> <span style="col [...]
-</code></pre></div><h3 id="order-of-bindings-differ-between-cache-and-remote-reads">Order of Bindings differ between Cache and Remote Reads</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a0a000">&lt;cache:http://dbpedia.org/sparql&gt;</span> { <span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#a2f;font-weight:bold">DISTINCT</span> <span style="color:#b8860b">?s</span> { <span  [...]
+</span></span></code></pre></div><h3 id="order-of-bindings-differ-between-cache-and-remote-reads">Order of Bindings differ between Cache and Remote Reads</h3>
 <p>In practice, many triple store engines return the same response for the same graph pattern / query over the same physical database even if ordering is absent.
 As can be seen from <a href="#example">example</a>, bulk requests result in a union which are sorted by the serial numbers assigned to the input bindings.
 However, SPARQL does not mandate stable sorting, therefore this approach may cause bindings with the same serial number to become &lsquo;shuffled&rsquo;.
-The solution is to is to include sort sufficient conditions in the <code>SERVICE</code>'s graph pattern. The bulk query will include those sort conditions after the serial number sort condition.</p>
+The solution is to is to include sort sufficient conditions in the <code>SERVICE</code>&rsquo;s graph pattern. The bulk query will include those sort conditions after the serial number sort condition.</p>
 
   </article>
   
@@ -779,6 +786,7 @@ The solution is to is to include sort sufficient conditions in the <code>SERVICE
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/sparql-remote.html b/content/documentation/query/sparql-remote.html
index e8548f9d2..f4310e70a 100644
--- a/content/documentation/query/sparql-remote.html
+++ b/content/documentation/query/sparql-remote.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -277,6 +284,7 @@ is also very helpful.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/spatial-query-doc.html b/content/documentation/query/spatial-query-doc.html
index 61a80bc34..b3e384c6f 100644
--- a/content/documentation/query/spatial-query-doc.html
+++ b/content/documentation/query/spatial-query-doc.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -312,31 +319,31 @@ try {
 </thead>
 <tbody>
 <tr>
-<td>*?place* **spatial:nearby** *(latitude, longitude, radius [, units, limit])*<br>*?place* **spatial:withinCircle** *(latitude, longitude, radius [, units, limit])*</td>
+<td><em>?place</em> <strong>spatial:nearby</strong> <em>(latitude, longitude, radius [, units, limit])</em><br><em>?place</em> <strong>spatial:withinCircle</strong> <em>(latitude, longitude, radius [, units, limit])</em></td>
 <td>Query for the <em>?place</em> within the <em>radius</em> distance of the location of <em>(latitude, longitude)</em>. The distance <em>units</em> can be: &ldquo;kilometres&rdquo;/&ldquo;km&rdquo;, &ldquo;miles&rdquo;/&ldquo;mi&rdquo;, &ldquo;metres&rdquo;/&ldquo;m&rdquo;, &ldquo;centimetres&rdquo;/&ldquo;cm&rdquo;, &ldquo;millimetres&rdquo;/&ldquo;mm&rdquo; or &ldquo;degrees&rdquo;/&ldquo;de&rdquo;, which are delivered as the optional strings (the default value is &ldquo;kilometres&rd [...]
 </tr>
 <tr>
-<td>*?place* **spatial:withinBox** *(latitude_min, longitude_min, latitude_max, longitude_max [, limit])*</td>
+<td><em>?place</em> <strong>spatial:withinBox</strong> <em>(latitude_min, longitude_min, latitude_max, longitude_max [, limit])</em></td>
 <td>Query for the <em>?place</em> within the box area of <em>(latitude_min, longitude_min, latitude_max, longitude_max)</em>.</td>
 </tr>
 <tr>
-<td>*?place* **spatial:intersectBox** *(latitude_min, longitude_min, latitude_max, longitude_max [, limit])*</td>
+<td><em>?place</em> <strong>spatial:intersectBox</strong> <em>(latitude_min, longitude_min, latitude_max, longitude_max [, limit])</em></td>
 <td>Query for the <em>?place</em> intersecting the box area of <em>(latitude_min, longitude_min, latitude_max, longitude_max)</em>.</td>
 </tr>
 <tr>
-<td>*?place* **spatial:north** *(latitude, longitude [, limit])*</td>
+<td><em>?place</em> <strong>spatial:north</strong> <em>(latitude, longitude [, limit])</em></td>
 <td>Query for the <em>?place</em> northing the location of <em>(latitude, longitude)</em>.</td>
 </tr>
 <tr>
-<td>*?place* **spatial:south** *(latitude, longitude [, limit])*</td>
+<td><em>?place</em> <strong>spatial:south</strong> <em>(latitude, longitude [, limit])</em></td>
 <td>Query for the <em>?place</em> southing the location of <em>(latitude, longitude)</em>.</td>
 </tr>
 <tr>
-<td>*?place* **spatial:west** *(latitude, longitude [, limit])*</td>
+<td><em>?place</em> <strong>spatial:west</strong> <em>(latitude, longitude [, limit])</em></td>
 <td>Query for the <em>?place</em> westing the location of <em>(latitude, longitude)</em>.</td>
 </tr>
 <tr>
-<td>*?place* **spatial:east** *(latitude, longitude [, limit])*</td>
+<td><em>?place</em> <strong>spatial:east</strong> <em>(latitude, longitude [, limit])</em></td>
 <td>Query for the <em>?place</em> easting the location of <em>(latitude, longitude)</em>.</td>
 </tr>
 </tbody>
@@ -500,6 +507,7 @@ They use a <code>EmbeddedSolrServer</code>with a <code>SOLR_HOME</code> sample <
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/spatial-query.html b/content/documentation/query/spatial-query.html
index fa529cb7b..75a0d3a0c 100644
--- a/content/documentation/query/spatial-query.html
+++ b/content/documentation/query/spatial-query.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -222,6 +229,7 @@ The <a href="spatial-query-doc.md">original documentation is here</a></p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/sub-select.html b/content/documentation/query/sub-select.html
index 7d7fd3dae..3afe6f993 100644
--- a/content/documentation/query/sub-select.html
+++ b/content/documentation/query/sub-select.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -237,6 +244,7 @@ SELECT ?x
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/support.html b/content/documentation/query/support.html
index ec19294fc..0679a3402 100644
--- a/content/documentation/query/support.html
+++ b/content/documentation/query/support.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">SUPPORT</li>
+                <li class="breadcrumb-item active">SUPPORT.HTML</li>
             
             
         
@@ -224,6 +231,7 @@
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/support_request.html b/content/documentation/query/support_request.html
index 1e252fd47..97d1d487e 100644
--- a/content/documentation/query/support_request.html
+++ b/content/documentation/query/support_request.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -310,6 +317,7 @@ to print the query out after building it programmatically.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/text-query.html b/content/documentation/query/text-query.html
index 161704a54..491dbf387 100644
--- a/content/documentation/query/text-query.html
+++ b/content/documentation/query/text-query.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -351,9 +358,9 @@ PREFIX rdfs: &lt;http://www.w3.org/2000/01/rdf-schema#&gt;
 
 SELECT ?s ?lbl
 WHERE { 
-    ?s a ex:Product ;
-       rdfs:label ?lbl
-    FILTER regex(?lbl, &quot;printer&quot;, &quot;i&quot;)
+	?s a ex:Product ;
+	   rdfs:label ?lbl
+	FILTER regex(?lbl, &quot;printer&quot;, &quot;i&quot;)
 }
 </code></pre>
 <p>then the search will need to examine <em>all</em> selected <code>rdfs:label</code>
@@ -374,9 +381,9 @@ PREFIX text: &lt;http://jena.apache.org/text#&gt;
 
 SELECT ?s ?lbl
 WHERE { 
-    ?s a ex:Product ;
-       text:query (rdfs:label 'printer') ;
-       rdfs:label ?lbl
+	?s a ex:Product ;
+	   text:query (rdfs:label 'printer') ;
+	   rdfs:label ?lbl
 }
 </code></pre>
 <p>This query makes a text query for <code>'printer'</code> on the <code>rdfs:label</code>
@@ -944,7 +951,7 @@ used to restrict the items found still further.</p>
 <h2 id="configuration">Configuration</h2>
 <p>The usual way to describe a text index is with a
 <a href="../assembler/index.html">Jena assembler description</a>.  Configurations can
-also be built with code. The assembler describes a &lsquo;text
+also be built with code. The assembler describes a &rsquo;text
 dataset&rsquo; which has an underlying RDF dataset and a text index. The text
 index describes the text index technology (Lucene or Elasticsearch) and the details
 needed for each.</p>
@@ -1220,7 +1227,7 @@ Lucene index.  For example:</p>
          ]
          ) .
 </code></pre>
-<p>will configure the index to analyze values of the &lsquo;text&rsquo; field
+<p>will configure the index to analyze values of the &rsquo;text&rsquo; field
 using a <code>StandardAnalyzer</code> with the given list of stop words.</p>
 <p>Other analyzer types that may be specified are <code>SimpleAnalyzer</code> and
 <code>KeywordAnalyzer</code>, neither of which has any configuration parameters. See
@@ -1292,7 +1299,7 @@ is useful in combination with accent-insensitive wildcard queries.</p>
 </li>
 <li>
 <p><code>ComplexPhraseQueryParser</code>: Permits complex phrase query syntax. Eg:
-&ldquo;(john jon jonathan~) peters*&quot;.  This is useful for performing wildcard
+&ldquo;(john jon jonathan~) peters*&rdquo;.  This is useful for performing wildcard
 or fuzzy queries on individual terms in a phrase.</p>
 </li>
 <li>
@@ -1884,10 +1891,10 @@ for use in composing a single multi-fielded Lucene document. <a href="#multiple-
 <p>To configure a <code>TextDocProducer</code>, say <code>net.code.MyProducer</code> in a dataset assembly,
 use the property <code>textDocProducer</code>, eg:</p>
 <pre><code>&lt;#ds-with-lucene&gt; rdf:type text:TextDataset;
-    text:index &lt;#indexLucene&gt; ;
-    text:dataset &lt;#ds&gt; ;
-    text:textDocProducer &lt;java:net.code.MyProducer&gt; ;
-    .
+	text:index &lt;#indexLucene&gt; ;
+	text:dataset &lt;#ds&gt; ;
+	text:textDocProducer &lt;java:net.code.MyProducer&gt; ;
+	.
 </code></pre>
 <p>where <code>CLASSNAME</code> is the full java class name. It must have either
 a single-argument constructor of type <code>TextIndex</code>, or a two-argument
@@ -2103,6 +2110,7 @@ include a compatible version of Lucene.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/update.html b/content/documentation/query/update.html
index 512f7b1dc..0e4ecc1be 100644
--- a/content/documentation/query/update.html
+++ b/content/documentation/query/update.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">UPDATE</li>
+                <li class="breadcrumb-item active">UPDATE.HTML</li>
             
             
         
@@ -179,7 +186,7 @@
   <article class="flex-column me-lg-4">
     <p>SPARQL Update is a W3C standard for an RDF update language with
 SPARQL syntax. It is described in
-&ldquo;<a href="http://www.w3.org/TR/sparql11-update/">SPARQL 1.1 Update</a>&quot;.</p>
+&ldquo;<a href="http://www.w3.org/TR/sparql11-update/">SPARQL 1.1 Update</a>&rdquo;.</p>
 <p>A SPARQL Update request is composed of a number of update
 operations, so in a single request graphs can be created, loaded
 with RDF data and modified.</p>
@@ -250,6 +257,7 @@ SPARQL Update operation, including prefixes if needed.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/writing_functions.html b/content/documentation/query/writing_functions.html
index 368bdb0cc..741d9f9f3 100644
--- a/content/documentation/query/writing_functions.html
+++ b/content/documentation/query/writing_functions.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -331,6 +338,7 @@ with the command line tools can load custom functions.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/writing_propfuncs.html b/content/documentation/query/writing_propfuncs.html
index 8c26b353d..4d215e4c1 100644
--- a/content/documentation/query/writing_propfuncs.html
+++ b/content/documentation/query/writing_propfuncs.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -244,18 +251,18 @@ has other <code>put</code> methods that allow registration by passing a <code>Cl
 at their disposal to do so. For example, if we wished to create a Property Function that returns no results
 regardless of their arguments we could do so as follows:</p>
 <pre><code>public class ExamplePropertyFunctionFactory implements PropertyFunctionFactory {
-    @Override
-    public PropertyFunction create(final String uri)
-    {	
-        return new PFuncSimple()
-        {
-            @Override
-            public QueryIterator execEvaluated(final Binding parent, final Node subject, final Node predicate, final Node object, final ExecutionContext execCtx) 
-            {	
+	@Override
+	public PropertyFunction create(final String uri)
+	{	
+		return new PFuncSimple()
+		{
+			@Override
+			public QueryIterator execEvaluated(final Binding parent, final Node subject, final Node predicate, final Node object, final ExecutionContext execCtx) 
+			{	
                 return QueryIterNullIterator.create(execCtx);
-            }
-        };
-    }
+			}
+		};
+	}
 }
 </code></pre>
 <p><code>Node</code> and <code>PropFuncArg</code> objects allow the developer to reflect on the state of the arguments, and choose what
@@ -340,6 +347,7 @@ Once retrieved the Graph can be operated upon directly, queried or wrapped in a
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/query/xsd-support.html b/content/documentation/query/xsd-support.html
index 0fc030789..aeff46642 100644
--- a/content/documentation/query/xsd-support.html
+++ b/content/documentation/query/xsd-support.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -189,7 +196,7 @@
 </nav>
   </aside>
   <article class="flex-column me-lg-4">
-    <p>ARQ supports the functions and operators from &ldquo;<a href="https://www.w3.org/TR/xpath-functions-3/">XQuery 1.0 and XPath 2.0 Functions and Operators v3.1</a>&quot;.</p>
+    <p>ARQ supports the functions and operators from &ldquo;<a href="https://www.w3.org/TR/xpath-functions-3/">XQuery 1.0 and XPath 2.0 Functions and Operators v3.1</a>&rdquo;.</p>
 <p>ARQ supports all the XSD atomic datatypes.</p>
 <p>The prefix <code>fn</code> is <code>&lt;http://www.w3.org/2005/xpath-functions#&gt;</code> (the
 XPath and XQuery function namespace).</p>
@@ -283,6 +290,7 @@ for later additions).</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdf-patch/index.html b/content/documentation/rdf-patch/index.html
index f8b7fead5..8d983e333 100644
--- a/content/documentation/rdf-patch/index.html
+++ b/content/documentation/rdf-patch/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -199,13 +206,13 @@ nodes are not generated afresh each time the document is parsed.</p>
 <h2 id="example">Example</h2>
 <p>This example ensures certain prefixes are in the dataset and adds some
 basic triples for a new subclass of <code>&lt;http://example/SUPER_CLASS&gt;</code>.</p>
-<pre><code>TX .
-PA &quot;rdf&quot; &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; .
-PA &quot;owl&quot; &quot;http://www.w3.org/2002/07/owl#&quot; .
-PA &quot;rdfs&quot; &quot;http://www.w3.org/2000/01/rdf-schema#&quot; .
+<pre tabindex="0"><code>TX .
+PA &#34;rdf&#34; &#34;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#34; .
+PA &#34;owl&#34; &#34;http://www.w3.org/2002/07/owl#&#34; .
+PA &#34;rdfs&#34; &#34;http://www.w3.org/2000/01/rdf-schema#&#34; .
 A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2002/07/owl#Class&gt; .
 A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#subClassOf&gt; &lt;http://example/SUPER_CLASS&gt; .
-A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; &quot;SubClass&quot; .
+A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; &#34;SubClass&#34; .
 TC .
 </code></pre><h2 id="structure">Structure</h2>
 <p>The text format for an RDF Patch is N-Triples-like: it is a series of
@@ -246,7 +253,7 @@ number of change blocks.</p>
 <p>Each change block is a transaction. Transactions can be explicit recorded (&lsquo;TX&rsquo;
 start, <code>TC</code> commit) to include multiple transaction in one patch. They are not
 required. If not present, the patch should be applied atomically to the data.</p>
-<pre><code>header
+<pre tabindex="0"><code>header
 TX
 Quad, triple or prefix changes
 TC or TA
@@ -265,23 +272,23 @@ it create a log and patches can be applied in the right order.</p>
 <p>A header section can be used to provide additional information. In this example
 a patch has an identifier and refers to a previous patch. This might be used to
 create a log of patches, a log being a sequnce of chnages to apply in-order.</p>
-<pre><code>H id &lt;uuid:0686c69d-8f89-4496-acb5-744f0157a8db&gt; .
+<pre tabindex="0"><code>H id &lt;uuid:0686c69d-8f89-4496-acb5-744f0157a8db&gt; .
 H prev &lt;uuid:3ee0eca0-6d5f-4b4d-85db-f69ab1167eb1&gt; .
 TX .
-PA &quot;rdf&quot; &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&quot; .
-PA &quot;owl&quot; &quot;http://www.w3.org/2002/07/owl#&quot; .
-PA &quot;rdfs&quot; &quot;http://www.w3.org/2000/01/rdf-schema#&quot; .
+PA &#34;rdf&#34; &#34;http://www.w3.org/1999/02/22-rdf-syntax-ns#&#34; .
+PA &#34;owl&#34; &#34;http://www.w3.org/2002/07/owl#&#34; .
+PA &#34;rdfs&#34; &#34;http://www.w3.org/2000/01/rdf-schema#&#34; .
 A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2002/07/owl#Class&gt; .
 A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#subClassOf&gt; &lt;http://example/SUPER_CLASS&gt; .
-A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; &quot;SubClass&quot; .
+A &lt;http://example/SubClass&gt; &lt;http://www.w3.org/2000/01/rdf-schema#label&gt; &#34;SubClass&#34; .
 TC .
 </code></pre><p>Header format:</p>
-<pre><code>H word RDFTerm .
+<pre tabindex="0"><code>H word RDFTerm .
 </code></pre><p>where <code>word</code> is a string in quotes, or an unquoted string (no spaces, starts with a letter,
 same as a prefix without the colon).</p>
 <p>The header is ended by the first non <code>H</code> line or the end of the patch.</p>
 <h3 id="transactions">Transactions</h3>
-<pre><code>TX .
+<pre tabindex="0"><code>TX .
 TC .
 </code></pre><p>These delimit a block of quad, triple and prefix changes.</p>
 <p>Abort, <code>TA</code> is provided so that changes can be streamed, not obliging the
@@ -296,14 +303,14 @@ changes to the data the patch is applied to.</p>
 <p>The prefix name is without the trailing colon. It can be given as a
 quoted string or unquoted string (keyword) with the same limitations as
 Turtle on the prefix name.</p>
-<pre><code>PA rdf &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
+<pre tabindex="0"><code>PA rdf &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
 </code></pre><p><code>PA</code> is adding a prefix, <code>PD</code> is deleting a prefix.</p>
 <h4 id="quads-and-triples">Quads and Triples</h4>
 <p>Triples and quads are written like N-Quads, 3 or 4 RDF terms,
 with the addition of an initial <code>A</code> or <code>D</code> for &ldquo;add&rdquo; or &ldquo;delete&rdquo;.
 Triples are in the order S-P-O, quads are S-P-O-G.</p>
 <p>Add a triple:</p>
-<pre><code>A  &lt;http://example/SubClass&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2002/07/owl#Class&gt; .
+<pre tabindex="0"><code>A  &lt;http://example/SubClass&gt; &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&gt; &lt;http://www.w3.org/2002/07/owl#Class&gt; .
 </code></pre><h2 id="blank-nodes">Blank nodes</h2>
 <p>In order to synchronize datasets, changes involving blank nodes may need
 to refer to a blank node already in the data.  RDF Patch deals with this
@@ -393,6 +400,7 @@ should be at the start of the file, before any <code>TX</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdf-star/index.html b/content/documentation/rdf-star/index.html
index ebf68781d..8eb2517eb 100644
--- a/content/documentation/rdf-star/index.html
+++ b/content/documentation/rdf-star/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -189,8 +196,8 @@ a way for one triple to refer to another triple. RDF* is the name of the
 original work which is described in
 <a href="https://blog.liu.se/olafhartig/2019/01/10/position-statement-rdf-star-and-sparql-star/">Olaf Hartig&rsquo;s blog entry</a>.</p>
 <p>Example:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-turtle" data-lang="turtle"><span style="">&lt;&lt;</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">:</span><span style="color:#008000;font-weight:bold">john</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">name</span><span style="color:#bbb"> </s [...]
-</span></code></pre></div><p>The part <code>&lt;&lt; :john foaf:name &quot;John Smith&quot; &gt;&gt;</code> is a quoted triple and refers to the triple with subject <code>:john</code>, property <code>foaf:name</code> and object <code>&quot;John Smith&quot;</code>.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-turtle" data-lang="turtle"><span style="display:flex;"><span><span style="">&lt;&lt;</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">:</span><span style="color:#008000;font-weight:bold">john</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weigh [...]
+</span></span></span></code></pre></div><p>The part <code>&lt;&lt; :john foaf:name &quot;John Smith&quot; &gt;&gt;</code> is a quoted triple and refers to the triple with subject <code>:john</code>, property <code>foaf:name</code> and object <code>&quot;John Smith&quot;</code>.</p>
 <p>Triple terms can be in the subject or object position.</p>
 <p>Jena provides support for RDF-star and the related SPARQL-star.</p>
 <ul>
@@ -210,23 +217,23 @@ as well as in-memory databases is supported.</p>
 <p>Datasets may have graphs that have quoted triples that refer to triples anywhere, not just in the same graph.</p>
 <h2 id="sparql-star">SPARQL-star</h2>
 <p>Matches for quoted triples:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?name</span> { <span style="color:#666">&lt;&lt;</span>:<span style="color:#008000;font-weight:bold">john</span> <span style="color:#00f;font-weight:bold">foaf</span>:<span style="color:#008000;font-weight:bold">name</span> <span style="color:#b8860b">?name [...]
-</code></pre></div><p>Insert triples terms into the default graph to record the graph source.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">INSERT</span> { <span style="color:#666">&lt;&lt;</span><span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span style="color:#00f;font-weight:bold">dct</span>:<span style="color:#008000;font-weig [...]
-<span style="color:#a2f;font-weight:bold">WHERE</span> {
-    <span style="color:#a2f;font-weight:bold">GRAPH</span> <span style="color:#a0a000">&lt;http://example/directory&gt;</span> {
-        <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
-    }
-}
-</code></pre></div><p>Use in expressions:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?t</span> {
-   <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> 
-   <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">&lt;&lt;</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?t</span>)
-}
-</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sparql" data-lang="sparql"><span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#666">&lt;&lt;</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color [...]
-   <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> 
-}
-</code></pre></div><h3 id="sparql-functions-related-to-quoted-triples">SPARQL Functions related to quoted triples</h3>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?name</span> { <span style="color:#666">&lt;&lt;</span>:<span style="color:#008000;font-weight:bold">john</span> <span style="color:#00f;font-weight:bold">foaf</span>:<span style="color:#008000;font-weight:bol [...]
+</span></span></code></pre></div><p>Insert triples terms into the default graph to record the graph source.</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">INSERT</span> { <span style="color:#666">&lt;&lt;</span><span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span style="color:#00f;font-weight:bold" [...]
+</span></span><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">WHERE</span> {
+</span></span><span style="display:flex;"><span>    <span style="color:#a2f;font-weight:bold">GRAPH</span> <span style="color:#a0a000">&lt;http://example/directory&gt;</span> {
+</span></span><span style="display:flex;"><span>        <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span>
+</span></span><span style="display:flex;"><span>    }
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><p>Use in expressions:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> <span style="color:#b8860b">?t</span> {
+</span></span><span style="display:flex;"><span>   <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> 
+</span></span><span style="display:flex;"><span>   <span style="color:#a2f;font-weight:bold">BIND</span>(<span style="color:#666">&lt;&lt;</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span style="color:#a2f;font-weight:bold">AS</span> <span style="color:#b8860b">?t</span>)
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sparql" data-lang="sparql"><span style="display:flex;"><span><span style="color:#a2f;font-weight:bold">SELECT</span> (<span style="color:#666">&lt;&lt;</span> <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span><span style="color:#666">&gt;&gt;</span> <span st [...]
+</span></span><span style="display:flex;"><span>   <span style="color:#b8860b">?s</span> <span style="color:#b8860b">?p</span> <span style="color:#b8860b">?o</span> 
+</span></span><span style="display:flex;"><span>}
+</span></span></code></pre></div><h3 id="sparql-functions-related-to-quoted-triples">SPARQL Functions related to quoted triples</h3>
 <p>These functions cause an expression error if passed the wrong type of arguments.</p>
 <table>
 <thead>
@@ -263,26 +270,26 @@ as well as in-memory databases is supported.</p>
 <code>application/sparql-results+xml</code> are extended to include quoted triples:</p>
 <p>The quoted triple <code>&lt;&lt; _:b0 &lt;http://example/p&gt; 123  &gt;&gt;</code> is encoded, in
 <code>application/sparql-results+json</code> as:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">    {
-      <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;triple&#34;</span> ,
-      <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: {
-        <span style="color:#008000;font-weight:bold">&#34;subject&#34;</span>:    { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;bnode&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="color:#b44">&#34;b0&#34;</span> } ,
-        <span style="color:#008000;font-weight:bold">&#34;predicate&#34;</span>:  { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;uri&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="color:#b44">&#34;http://example/p&#34;</span> } ,
-        <span style="color:#008000;font-weight:bold">&#34;object&#34;</span>:     { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;literal&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;datatype&#34;</span>: <span style="color:#b44">&#34;http://www.w3.org/2001/XMLSchema#integer&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="color:#b44">&#34;123&#34;</span> }
-    }
-</code></pre></div><p>and similarly in <code>application/sparql-results+xml</code>:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-xml" data-lang="xml">    <span style="color:#008000;font-weight:bold">&lt;triple&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;subject&gt;</span>
-        <span style="color:#008000;font-weight:bold">&lt;bnode&gt;</span>b0<span style="color:#008000;font-weight:bold">&lt;/bnode&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;/subject&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;predicate&gt;</span>
-        <span style="color:#008000;font-weight:bold">&lt;uri&gt;</span>http://example/p<span style="color:#008000;font-weight:bold">&lt;/uri&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;/predicate&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;object&gt;</span>
-        <span style="color:#008000;font-weight:bold">&lt;literal</span> <span style="color:#b44">datatype=</span><span style="color:#b44">&#34;http://www.w3.org/2001/XMLSchema#integer&#34;</span><span style="color:#008000;font-weight:bold">&gt;</span>123<span style="color:#008000;font-weight:bold">&lt;/literal&gt;</span>
-      <span style="color:#008000;font-weight:bold">&lt;/object&gt;</span>
-    <span style="color:#008000;font-weight:bold">&lt;/triple&gt;</span>
-</code></pre></div><h2 id="model-api">Model API</h2>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>    {
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;triple&#34;</span> ,
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: {
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&#34;subject&#34;</span>:    { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;bnode&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="color:#b44">&#34;b0&#34;</span> } ,
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&#34;predicate&#34;</span>:  { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;uri&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="color:#b44">&#34;http://example/p&#34;</span> } ,
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&#34;object&#34;</span>:     { <span style="color:#008000;font-weight:bold">&#34;type&#34;</span>: <span style="color:#b44">&#34;literal&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;datatype&#34;</span>: <span style="color:#b44">&#34;http://www.w3.org/2001/XMLSchema#integer&#34;</span> , <span style="color:#008000;font-weight:bold">&#34;value&#34;</span>: <span style="c [...]
+</span></span><span style="display:flex;"><span>    }
+</span></span></code></pre></div><p>and similarly in <code>application/sparql-results+xml</code>:</p>
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;triple&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;subject&gt;</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&lt;bnode&gt;</span>b0<span style="color:#008000;font-weight:bold">&lt;/bnode&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;/subject&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;predicate&gt;</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&lt;uri&gt;</span>http://example/p<span style="color:#008000;font-weight:bold">&lt;/uri&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;/predicate&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;object&gt;</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#008000;font-weight:bold">&lt;literal</span> <span style="color:#b44">datatype=</span><span style="color:#b44">&#34;http://www.w3.org/2001/XMLSchema#integer&#34;</span><span style="color:#008000;font-weight:bold">&gt;</span>123<span style="color:#008000;font-weight:bold">&lt;/literal&gt;</span>
+</span></span><span style="display:flex;"><span>      <span style="color:#008000;font-weight:bold">&lt;/object&gt;</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#008000;font-weight:bold">&lt;/triple&gt;</span>
+</span></span></code></pre></div><h2 id="model-api">Model API</h2>
 <p>RDF-star quoted triples are treated as <code>Resource</code> to preserve the typed Model API.
 They occur in the subject and object positions.</p>
 <p>A <code>Resource</code> contains a <code>Statement</code> object if the underlying RDF term is an RDF-star quoted triple.</p>
@@ -346,6 +353,7 @@ only one reification for each unique quoted triple term.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdf/datasets.html b/content/documentation/rdf/datasets.html
index be5885a8f..51e48b040 100644
--- a/content/documentation/rdf/datasets.html
+++ b/content/documentation/rdf/datasets.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">DATASETS</li>
+                <li class="breadcrumb-item active">DATASETS.HTML</li>
             
             
         
@@ -192,8 +199,6 @@ transaction semantics, including abort. It provides for multiple
 readers and a concurrent writer together with full snapshot isolation of
 the dataset.  Readers see an unchanging, consistent dataset where aggregate
 operations return stable results.</p>
-<p>First introduced in Jena version 3.0.1 as a beta, then in 3.1.0.</p>
-<p>During the beta phase, please log any issues with <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20JENA%20ORDER%20BY%20key%20DESC%2C%20priority%20DESC">Apache Jena JIRA</a>.</p>
 <h3 id="api-use">API use</h3>
 <p>A new instance of the class is obtained by a call to <code>DatasetFactory.createTxnMem()</code>:</p>
 <pre><code>Dataset ds = DatasetFactory.createTxnMem() ;
@@ -309,6 +314,7 @@ This uses <code>ja:graphName</code> to specific the name and <code>ja:data</code
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdf/index.html b/content/documentation/rdf/index.html
index 32038cfd5..187b1c53e 100644
--- a/content/documentation/rdf/index.html
+++ b/content/documentation/rdf/index.html
@@ -83,7 +83,14 @@
                     </ul>
                 </li>
             </ul>
-
+            <form class="d-flex" role="search" action="/search" method="GET">
+                <div class="input-group">
+                    <input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search">
+                    <button class="btn btn-outline-secondary border-start-0 border" type="submit">
+                        <i class="bi-search"></i>
+                    </button>
+                </div>
+            </form>
             <ul class="navbar-nav ms-auto">
                 <li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html"><span class="bi-patch-question"></span> Ask</a></li>
 
@@ -194,14 +201,14 @@ contained in a data structure called a <code>Model</code>. The model denotes an
 <em>RDF graph</em>, so called because it contains a collection of <em>RDF nodes</em>,
 attached to each other by labelled relations. Each relationship goes
 only in one direction, so the triple:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-turtle" data-lang="turtle"><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">name</span><span style="color:#bbb"> </span><span style="color:#b44">&#34;Ian&#34;</span><span st [...]
-</span></code></pre></div><p>can be read as &lsquo;<em>resource</em> <code>example:ijd</code> <em>has property</em> <code>foaf:name</code> <em>with value</em> <code>&quot;Ian&quot;</code>&rsquo;.
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-turtle" data-lang="turtle"><span style="display:flex;"><span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">name</span><span style="color:#bbb"> </span><span [...]
+</span></span></span></code></pre></div><p>can be read as &lsquo;<em>resource</em> <code>example:ijd</code> <em>has property</em> <code>foaf:name</code> <em>with value</em> <code>&quot;Ian&quot;</code>&rsquo;.
 Clearly the reverse is not true. Mathematically, this makes the model an instance of a
 <a href="http://en.wikipedia.org/wiki/Directed_graph">directed graph</a>.</p>
 <p>In Java terms, we use the class <code>Model</code> as the primary container of RDF information
 contained in graph form. <code>Model</code> is designed to have a rich API, with many methods
 intended to make it easier to write RDF-based programs and applications. One of
-<code>Model</code>'s other roles is to provide an abstraction over different ways of storing
+<code>Model</code>&rsquo;s other roles is to provide an abstraction over different ways of storing
 the RDF nodes and relations: in-memory data structures, disk-based persistent stores
 and inference engines, for example, all provide <code>Model</code> as a core API.</p>
 <p>While this common abstraction is appealing to API users, it is less convenient when trying
@@ -251,9 +258,9 @@ as nodes in a graph, the common interface <code>RDFNode</code> is a super-class
 <h3 id="triples">Triples</h3>
 <p>In an RDF graph, the relationships always connect one subject resource to one other resource or
 one literal. For example:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-turtle" data-lang="turtle"><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">firstName</span><span style="color:#bbb"> </span><span style="color:#b44">&#34;Ian&#34;</span>.<s [...]
-</span><span style="color:#bbb"></span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">knows</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">mary</span>.<span style="color:#bbb">
-</span></code></pre></div><p>The relationship, or <em>predicate</em>, always connects two nodes (formally, it has <em>arity</em> two). The first
+<div class="highlight"><pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-turtle" data-lang="turtle"><span style="display:flex;"><span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">firstName</span><span style="color:#bbb"> </span> [...]
+</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">ijd</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">foaf:</span><span style="color:#008000;font-weight:bold">knows</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">example:</span><span style="color:#008000;font-weight:bold">mary</span>.<s [...]
+</span></span></span></code></pre></div><p>The relationship, or <em>predicate</em>, always connects two nodes (formally, it has <em>arity</em> two). The first
 argument of the predicate is node we are linking <em>from</em>, and the second is the node we are linking
... 7727 lines suppressed ...