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/07 22:18:13 UTC

[jena-site] branch asf-site updated: Updated site from main (bf2da0d1d265ef7d172db579cfde002a7fb4afe9)

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 7aa781444 Updated site from main (bf2da0d1d265ef7d172db579cfde002a7fb4afe9)
7aa781444 is described below

commit 7aa78144489cc608f980f6dc28ba651fa137e3c1
Author: jenkins <bu...@apache.org>
AuthorDate: Fri Apr 7 22:18:09 2023 +0000

    Updated site from main (bf2da0d1d265ef7d172db579cfde002a7fb4afe9)
---
 .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                       |  12 +-
 content/about_jena/roadmap.html                    |  12 +-
 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              |  10 +-
 .../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         |  10 +-
 content/documentation/index.html                   |  10 +-
 content/documentation/index.xml                    | 284 +++---
 content/documentation/inference/index.html         |  14 +-
 content/documentation/io/arp.html                  |  12 +-
 content/documentation/io/arp_sax.html              |  10 +-
 content/documentation/io/arp_standalone.html       |  10 +-
 content/documentation/io/index.html                |  10 +-
 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_howto.html         |  14 +-
 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            |  12 +-
 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                |  10 +-
 content/getting_involved/index.xml                 |  10 +-
 .../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                |  12 +-
 content/help_and_support/index.xml                 |   8 +-
 content/index.html                                 |  12 +-
 content/index.json                                 |   1 +
 content/index.xml                                  | 319 +++----
 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                                | 954 ++++++---------------
 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 +-
 258 files changed, 4535 insertions(+), 2794 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..a6b9cc456 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>
@@ -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..62278268e 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>
             
             
         
@@ -209,6 +216,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 e780fde37..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>
 
@@ -518,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 e396da078..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>
 
@@ -1059,6 +1066,7 @@ implementation based on reviewing several alternatives.</p>
 (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 86afbbb13..06294cd28 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>
@@ -951,7 +946,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 +976,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 +986,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 +997,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 +1006,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 +1028,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 +1048,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 +1058,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 +1082,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 +1091,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>
     
@@ -1120,7 +1114,7 @@ SelectBuilder sb = new SelectBuilder() .addVar( &amp;quot;*&amp;quot; ) .</descr
       <guid>https://jena.apache.org/documentation/io/rdfxml_howto.html</guid>
       <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. This is import to correctly handle character sets.</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>
@@ -1141,7 +1135,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>
@@ -1150,7 +1144,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>
@@ -1164,7 +1158,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>
@@ -1194,7 +1188,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>
     
@@ -1218,7 +1212,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>
@@ -1283,7 +1277,7 @@ Example This example ensures certain prefixes are in the dataset and adds some b
       
       <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>
     
@@ -1294,8 +1288,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>
@@ -1304,8 +1298,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>
     
@@ -1317,7 +1310,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>
@@ -1327,7 +1320,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>
@@ -1359,7 +1352,7 @@ 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>
@@ -1388,9 +1381,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>
@@ -1400,8 +1393,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>
@@ -1411,7 +1404,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>
@@ -1423,7 +1416,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>
     
@@ -1434,7 +1427,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>
@@ -1444,7 +1438,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>
@@ -1454,7 +1448,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>
     
@@ -1465,7 +1459,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>
     
@@ -1476,7 +1470,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>
@@ -1488,9 +1482,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>
@@ -1500,8 +1494,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>
@@ -1511,7 +1506,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>
@@ -1521,7 +1516,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>
@@ -1531,7 +1527,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>
@@ -1541,8 +1538,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>
     
@@ -1553,7 +1550,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>
     
@@ -1585,7 +1582,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>
@@ -1597,7 +1594,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>
@@ -1620,7 +1617,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>
     
@@ -1630,8 +1627,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>
@@ -1654,7 +1650,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;
@@ -1670,8 +1666,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>
@@ -1682,7 +1677,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>
@@ -1775,7 +1770,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>
@@ -1886,7 +1881,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>
@@ -1898,7 +1893,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.
@@ -1912,7 +1907,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>
     
@@ -1971,7 +1966,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>
@@ -1987,7 +1982,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>
@@ -2029,7 +2024,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>
@@ -2050,7 +2046,7 @@ Part of the remit for the 2001 RDF Core working group was to add to RDF support
       <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>
@@ -2072,9 +2068,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.html b/content/documentation/io/arp.html
index bf511c514..9a485da61 100644
--- a/content/documentation/io/arp.html
+++ b/content/documentation/io/arp.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">ARP</li>
+                <li class="breadcrumb-item active">ARP.HTML</li>
             
             
         
@@ -278,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_sax.html b/content/documentation/io/arp_sax.html
index 4417bc604..ff9533de7 100644
--- a/content/documentation/io/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>
 
@@ -409,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_standalone.html b/content/documentation/io/arp_standalone.html
index 25f19966d..1ba7e9334 100644
--- a/content/documentation/io/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>
 
@@ -393,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 58f765cc1..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>
 
@@ -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_howto.html b/content/documentation/io/rdfxml_howto.html
index 45259d50a..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>
 
@@ -636,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 />
@@ -649,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>
@@ -865,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..433014aea 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>
             
             
         
@@ -309,6 +316,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
 <em>to</em>. We will often refer to these as the <em>subject</em> and <em>object</em> of the RDF statement, respectively.
 The pattern subject-predicate-object is sufficiently commonplace that we will sometimes use the
@@ -291,20 +298,20 @@ distinction.</p>
 <p>Fortunately, RDF specifies that a property is identified by a URI, and &lsquo;price&rsquo; on its own is not a URI.
 A logical solution is for both Acme and Emca to use their own web spaces to provide different
 base URIs on which to construct the URI for the property:</p>
-<pre><code>http://acme.example/schema/products#price
+<pre tabindex="0"><code>http://acme.example/schema/products#price
 http://emca.example/ontology/catalogue/price
 </code></pre><p>These are clearly now two distinct identities, and so each company can define the semantics of the
 price property without interfering with the other. Writing out such long strings each time, however,
 can be unwieldy and a source of error. A <em>compact URI</em> or <a href="http://www.w3.org/TR/curie/"><em>curie</em></a>
 is an abbreviated form in which a namespace and name are separated by a colon character:</p>
-<pre><code>acme-product:price
+<pre tabindex="0"><code>acme-product:price
 emca-catalogue:price
 </code></pre><p>where <code>acme-product</code> is defined to be <code>http://acme.example/schema/products#</code>. This can be defined,
 for example, in Turtle:</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:#a2f;font-weight:bold">@prefix</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">acme-product:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://acme.example/schema/products#&gt;</span>.<span style="color:#bbb">
-</span><span style="color:#bbb">
-</span><span style="color:#bbb"></span><span style="color:#00f;font-weight:bold">acme-product:</span><span style="color:#008000;font-weight:bold">widget</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">acme-product:</span><span style="color:#008000;font-weight:bold">price</span><span style="color:#bbb"> </span><span style="color:#b44">&#34;44.99&#34;</span><span style="color:#666">^^</span><span style="font-style:italic">xsd:decimal</span>.<span style="col [...]
-</span></code></pre></div><p>The datatype <code>xsd:decimal</code> is another example of an abbreviated URI. Note that no <code>@prefix</code> rules
+<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:#a2f;font-weight:bold">@prefix</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">acme-product:</span><span style="color:#bbb"> </span><span style="color:#b8860b">&lt;http://acme.example/schema/products#&gt;</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:#00f;font-weight:bold">acme-product:</span><span style="color:#008000;font-weight:bold">widget</span><span style="color:#bbb"> </span><span style="color:#00f;font-weight:bold">acme-product:</span><span style="color:#008000;font-weight:bold">price</span><span style="color:#bbb"> </span><span style="color:#b44">&#34;44.99&#34;</span><span style="color:#666">^^</span><span style="font-s [...]
+</span></span></span></code></pre></div><p>The datatype <code>xsd:decimal</code> is another example of an abbreviated URI. Note that no <code>@prefix</code> rules
 are defined by RDF or Turtle: authors of RDF content should ensure that all prefixes used in curies
 are defined before use.</p>
 <p><strong>Note</strong></p>
@@ -428,6 +435,7 @@ For brevity, we shorten <code>org.apache.jena</code> to <code>oaj</code>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdfconnection/index.html b/content/documentation/rdfconnection/index.html
index b211af036..cc267160b 100644
--- a/content/documentation/rdfconnection/index.html
+++ b/content/documentation/rdfconnection/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>
 
@@ -462,6 +469,7 @@ and <code>RDFDatasetConnection</code> (read and write operations).</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdfpatch.html b/content/documentation/rdfpatch.html
new file mode 100644
index 000000000..d9d04e52c
--- /dev/null
+++ b/content/documentation/rdfpatch.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/rdf-patch/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/rdf-patch/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-patch/">
+  </head>
+</html>
diff --git a/content/documentation/rdfpatch/index.html b/content/documentation/rdfpatch/index.html
index 0a09f1d50..d9d04e52c 100644
--- a/content/documentation/rdfpatch/index.html
+++ b/content/documentation/rdfpatch/index.html
@@ -1 +1,10 @@
-<!DOCTYPE html><html><head><title>https://jena.apache.org/documentation/rdf-patch/</title><link rel="canonical" href="https://jena.apache.org/documentation/rdf-patch/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-patch/" /></head></html>
\ No newline at end of file
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/rdf-patch/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/rdf-patch/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-patch/">
+  </head>
+</html>
diff --git a/content/documentation/rdfs/index.html b/content/documentation/rdfs/index.html
index 95e1627bc..dbcb27bc5 100644
--- a/content/documentation/rdfs/index.html
+++ b/content/documentation/rdfs/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>
 
@@ -200,9 +207,9 @@ The vocabulary can not be changed during the lifetime of the RDFS dataset.</p>
 <h3 id="api-rdfsfactory">API: <code>RDFSFactory</code></h3>
 <p>The API provides operation to build RDF-enabled datasets from data storage and vocabularies:</p>
 <p>Example:</p>
-<pre><code>    DatasetGraph data = ...
+<pre tabindex="0"><code>    DatasetGraph data = ...
     // Load the vocabulary
-    Graph vocab = RDFDataMgr.loadGraph(&quot;vocabulary.ttl&quot;);
+    Graph vocab = RDFDataMgr.loadGraph(&#34;vocabulary.ttl&#34;);
     // Create a DatasetGraph with RDFS
     DatasetGraph dsg = datasetRDFS(DatasetGraph data, Graph vocab );
     // (Optional) Present as a Dataset.
@@ -210,10 +217,10 @@ The vocabulary can not be changed during the lifetime of the RDFS dataset.</p>
 </code></pre><p>The vocabulary is processed to produce datastructure needed for processing the
 data eficiently at run time. This is the <code>SetupRDFS</code> class that can be created
 and shared; it is thread-safe.</p>
-<pre><code>    SetupRDFS setup = setupRDFS(vocab);
+<pre tabindex="0"><code>    SetupRDFS setup = setupRDFS(vocab);
 </code></pre><h3 id="assembler-rdfs-dataset">Assembler: RDFS Dataset</h3>
 <p>Datasets with RDFS can be built with an assembler:</p>
-<pre><code>&lt;#rdfsDS&gt; rdf:type ja:DatasetRDFS ;
+<pre tabindex="0"><code>&lt;#rdfsDS&gt; rdf:type ja:DatasetRDFS ;
       ja:rdfsSchema &lt;vocabulary.ttl&gt;;
       ja:dataset &lt;#baseDataset&gt; ;
       .
@@ -224,7 +231,7 @@ and shared; it is thread-safe.</p>
 </code></pre><p>where <code>&lt;#baseDataset&gt;</code> is the definition of the dataset to be enriched.</p>
 <h3 id="assembler-rdfs-graph">Assembler: RDFS Graph</h3>
 <p>It is possible to build a single <code>Model</code>:</p>
-<pre><code>  &lt;#rdfsGraph&gt; rdf:type ja:GraphRDFS ;
+<pre tabindex="0"><code>  &lt;#rdfsGraph&gt; rdf:type ja:GraphRDFS ;
       ja:rdfsSchema &lt;vocabulary.ttl&gt;;
       ja:graph &lt;#baseGraph&gt; ;
       .
@@ -238,9 +245,9 @@ engine:
 <p>The files for this example are available at:
 <a href="https://github.com/apache/jena/tree/main/jena-fuseki2/examples/rdfs">jena-fuseki2/examples/rdfs</a>.</p>
 <p>From the command line (here, loading data from a file into an in-memory dataset):</p>
-<pre><code>fuseki-server --data data.trig --rdfs vocabulary.ttl /dataset
+<pre tabindex="0"><code>fuseki-server --data data.trig --rdfs vocabulary.ttl /dataset
 </code></pre><p>or from a configuration file with an RDFS Dataset:</p>
-<pre><code>PREFIX :        &lt;#&gt;
+<pre tabindex="0"><code>PREFIX :        &lt;#&gt;
 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;
@@ -254,7 +261,7 @@ PREFIX ja:      &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;
 ## Fuseki service /dataset with SPARQ query
 ## /dataset?query=
 :service rdf:type fuseki:Service ;
-    fuseki:name &quot;dataset&quot; ;
+    fuseki:name &#34;dataset&#34; ;
     fuseki:endpoint [ fuseki:operation fuseki:query ] ;
     fuseki:endpoint [ fuseki:operation fuseki:update ] ;
     fuseki:dataset :rdfsDataset ;
@@ -273,14 +280,14 @@ PREFIX ja:      &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt;
 </code></pre><h3 id="querying-the-fuseki-server">Querying the Fuseki server</h3>
 <p>With the <a href="/documentation/fuseki2/soh.html">SOH</a> tools, a query (asking for plain
 text output):</p>
-<pre><code>s-query --service http://localhost:3030/dataset --output=text --file query.rq 
+<pre tabindex="0"><code>s-query --service http://localhost:3030/dataset --output=text --file query.rq 
 </code></pre><p>or with <code>curl</code>:</p>
-<pre><code>curl --data @query.rq \
-      --header 'Accept: text/plain' \
-      --header 'Content-type: application/sparql-query' \
+<pre tabindex="0"><code>curl --data @query.rq \
+      --header &#39;Accept: text/plain&#39; \
+      --header &#39;Content-type: application/sparql-query&#39; \
       http://localhost:3030/dataset
 </code></pre><p>will return:</p>
-<pre><code>-------------------------
+<pre tabindex="0"><code>-------------------------
 | s  | p        | o     |
 =========================
 | :s | ns:p     | :o    |
@@ -291,12 +298,12 @@ text output):</p>
 -------------------------
 </code></pre><h3 id="files">Files</h3>
 <p>data.trig:</p>
-<pre><code>PREFIX :        &lt;http://example/&gt;
+<pre tabindex="0"><code>PREFIX :        &lt;http://example/&gt;
 PREFIX ns:      &lt;http://example/ns#&gt;
 
 :s ns:p :o .
 </code></pre><p><code>vocabulary.ttl</code>:</p>
-<pre><code>PREFIX xsd:     &lt;http://www.w3.org/2001/XMLSchema#&gt;
+<pre tabindex="0"><code>PREFIX xsd:     &lt;http://www.w3.org/2001/XMLSchema#&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 skos:    &lt;http://www.w3.org/2008/05/skos#&gt;
@@ -310,7 +317,7 @@ ns:T2 rdfs:subClassOf ns:T3 .
 ns:p rdfs:domain ns:D .
 ns:p rdfs:range  ns:T1 .
 </code></pre><p><code>query.rq</code>:</p>
-<pre><code>PREFIX :      &lt;http://example/&gt;
+<pre tabindex="0"><code>PREFIX :      &lt;http://example/&gt;
 PREFIX ns:    &lt;http://example/ns#&gt;
 PREFIX rdf:   &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt;
 
@@ -368,6 +375,7 @@ SELECT * { ?s ?p ?o }
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/rdfstar.html b/content/documentation/rdfstar.html
new file mode 100644
index 000000000..a5595a167
--- /dev/null
+++ b/content/documentation/rdfstar.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/rdf-star/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/rdf-star/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-star/">
+  </head>
+</html>
diff --git a/content/documentation/rdfstar/index.html b/content/documentation/rdfstar/index.html
index 2d0d95c4b..a5595a167 100644
--- a/content/documentation/rdfstar/index.html
+++ b/content/documentation/rdfstar/index.html
@@ -1 +1,10 @@
-<!DOCTYPE html><html><head><title>https://jena.apache.org/documentation/rdf-star/</title><link rel="canonical" href="https://jena.apache.org/documentation/rdf-star/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-star/" /></head></html>
\ No newline at end of file
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/rdf-star/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/rdf-star/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/rdf-star/">
+  </head>
+</html>
diff --git a/content/documentation/serving_data.html b/content/documentation/serving_data.html
new file mode 100644
index 000000000..1be870302
--- /dev/null
+++ b/content/documentation/serving_data.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/fuseki2/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/fuseki2/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/fuseki2/">
+  </head>
+</html>
diff --git a/content/documentation/serving_data/index.html b/content/documentation/serving_data/index.html
index dc1dea903..1be870302 100644
--- a/content/documentation/serving_data/index.html
+++ b/content/documentation/serving_data/index.html
@@ -1 +1,10 @@
-<!DOCTYPE html><html><head><title>https://jena.apache.org/documentation/fuseki2/</title><link rel="canonical" href="https://jena.apache.org/documentation/fuseki2/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/fuseki2/" /></head></html>
\ No newline at end of file
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <title>https://jena.apache.org/documentation/fuseki2/</title>
+    <link rel="canonical" href="https://jena.apache.org/documentation/fuseki2/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://jena.apache.org/documentation/fuseki2/">
+  </head>
+</html>
diff --git a/content/documentation/shacl/index.html b/content/documentation/shacl/index.html
index 8489e4650..32d9613d9 100644
--- a/content/documentation/shacl/index.html
+++ b/content/documentation/shacl/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>
 
@@ -218,10 +225,10 @@ separated by &ldquo;,&rdquo; and format <code>all</code> outputs all 3 formats.<
     .
 </pre>
 <p>This requires a &ldquo;new style&rdquo; endpoint declaration:  see
-&ldquo;<a href="/documentation/fuseki2/fuseki-config-endpoint.html">Fuseki Endpoint Configuration</a>&quot;.</p>
+&ldquo;<a href="/documentation/fuseki2/fuseki-config-endpoint.html">Fuseki Endpoint Configuration</a>&rdquo;.</p>
 <p>This is not installed into a dataset setup by default; a configuration file using</p>
-<pre><code>fuseki:endpoint [ fuseki:operation fuseki:shacl ;
-                  fuseki:name &quot;shacl&quot; ];
+<pre tabindex="0"><code>fuseki:endpoint [ fuseki:operation fuseki:shacl ;
+                  fuseki:name &#34;shacl&#34; ];
 </code></pre><p>is necessary (or programmatic setup for Fuseki Main).</p>
 <p>The service accepts a shapes graph posted as RDF to <tt>/<i>ds</i>/shacl</tt> with
 content negotiation.</p>
@@ -301,15 +308,15 @@ with the shorthand <code>-&gt;</code>) as well as the defined
 <code>SELECT</code> query.</p>
 <p>See <a href="https://w3c.github.io/shacl/shacl-af/#SPARQLTarget">SPARQL-based targets</a>
 for details.</p>
-<pre><code>ex:example
+<pre tabindex="0"><code>ex:example
     sh:target [
         a sh:SPARQLTarget ;
-        sh:select &quot;&quot;&quot;
+        sh:select &#34;&#34;&#34;
             SELECT ?this
             WHERE {
               ...
             }
-            &quot;&quot;&quot; ;
+            &#34;&#34;&#34; ;
     ] ;
 </code></pre><h2 id="validationlistener">ValidationListener</h2>
 <p>When given a <code>ValidationListener</code> the SHACL validation code emits events at each step of validation:</p>
@@ -319,7 +326,7 @@ for details.</p>
 <li>when validation of a constraint begins, ends and yields positive or negative results</li>
 </ul>
 <p>For example, the following listener will just record all events in a List:</p>
-<pre><code>public class RecordingValidationListener implements ValidationListener {
+<pre tabindex="0"><code>public class RecordingValidationListener implements ValidationListener {
         private final List&lt;ValidationEvent&gt; events = new ArrayList&lt;&gt;();
 
         @Override public void onValidationEvent(ValidationEvent e) {
@@ -332,7 +339,7 @@ for details.</p>
     }
 </code></pre><p>The listener must be passed to the constructor of the <code>ValidationContext</code>.
 The following example validates the <code>dataGraph</code> according to the <code>shapesGraph</code> using the ValidationListener above:</p>
-<pre><code>    Graph shapesGraph = RDFDataMgr.loadGraph(shapesGraphUri); //assuming shapesGraphUri points to an RDF file
+<pre tabindex="0"><code>    Graph shapesGraph = RDFDataMgr.loadGraph(shapesGraphUri); //assuming shapesGraphUri points to an RDF file
     Graph dataGraph = RDFDataMgr.loadGraph(dataGraphUri); //assuming dataGraphUri points to an RDF file
     RecordingValidationListener listener = new RecordingValidationListener();  // see above
     Shapes shapes = Shapes.parse(shapesGraph);
@@ -345,7 +352,7 @@ The following example validates the <code>dataGraph</code> according to the <cod
     }
     List&lt;ValidationEvent&gt; actualEvents = listener.getEvents(); // all events have been recorded
 </code></pre><p>The events thus generated might look like this (<code>event.toString()</code>, one per line):</p>
-<pre><code> FocusNodeValidationStartedEvent{focusNode=http://datashapes.org/sh/tests/core/node/class-001.test#Someone, shape=NodeShape[http://datashapes.org/sh/tests/core/node/class-001.test#TestShape]}
+<pre tabindex="0"><code> FocusNodeValidationStartedEvent{focusNode=http://datashapes.org/sh/tests/core/node/class-001.test#Someone, shape=NodeShape[http://datashapes.org/sh/tests/core/node/class-001.test#TestShape]}
  ConstraintEvaluationForNodeShapeStartedEvent{constraint=ClassConstraint[&lt;http://datashapes.org/sh/tests/core/node/class-001.test#Person&gt;], focusNode=http://datashapes.org/sh/tests/core/node/class-001.test#Someone, shape=NodeShape[http://datashapes.org/sh/tests/core/node/class-001.test#TestShape]}
  ConstraintEvaluatedOnFocusNodeEvent{constraint=ClassConstraint[&lt;http://datashapes.org/sh/tests/core/node/class-001.test#Person&gt;], focusNode=http://datashapes.org/sh/tests/core/node/class-001.test#Someone, shape=NodeShape[http://datashapes.org/sh/tests/core/node/class-001.test#TestShape], valid=true}
  ConstraintEvaluationForNodeShapeFinishedEvent{constraint=ClassConstraint[&lt;http://datashapes.org/sh/tests/core/node/class-001.test#Person&gt;], focusNode=http://datashapes.org/sh/tests/core/node/class-001.test#Someone, shape=NodeShape[http://datashapes.org/sh/tests/core/node/class-001.test#TestShape]}
@@ -353,7 +360,7 @@ The following example validates the <code>dataGraph</code> according to the <cod
 [...]    
 </code></pre><p>Many use cases can be addressed with the <code>HandlerBasedValidationListener</code>, which allows for registering event handlers on a per-event basis.
 For example:</p>
-<pre><code>    ValidationListener myListener = HandlerBasedValidationListener
+<pre tabindex="0"><code>    ValidationListener myListener = HandlerBasedValidationListener
         .builder()
         .forEventType(FocusNodeValidationStartedEvent.class)
         .addSimpleHandler(e -&gt; {
@@ -414,6 +421,7 @@ For example:</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/shex/index.html b/content/documentation/shex/index.html
index 0e18b4797..3b2fae252 100644
--- a/content/documentation/shex/index.html
+++ b/content/documentation/shex/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>
 
@@ -219,23 +226,23 @@ can be given, separated by "," and format `all` outputs all 3 formats.
 <h2 id="api-examples">API Examples</h2>
 <p>Examples:</p>
 <p><a href="https://github.com/apache/jena/tree/main/jena-examples/src/main/java/shex/examples/">https://github.com/apache/jena/tree/main/jena-examples/src/main/java/shex/examples/</a></p>
-<pre><code>    public static void main(String ...args) {
-        String SHAPES     = &quot;examples/schema.shex&quot;;
-        String SHAPES_MAP = &quot;examples/shape-map.shexmap&quot;;
-        String DATA       = &quot;examples/data.ttl&quot;;
+<pre tabindex="0"><code>    public static void main(String ...args) {
+        String SHAPES     = &#34;examples/schema.shex&#34;;
+        String SHAPES_MAP = &#34;examples/shape-map.shexmap&#34;;
+        String DATA       = &#34;examples/data.ttl&#34;;
 
-        System.out.println(&quot;Read data&quot;);
+        System.out.println(&#34;Read data&#34;);
         Graph dataGraph = RDFDataMgr.loadGraph(DATA);
 
-        System.out.println(&quot;Read schema&quot;);
+        System.out.println(&#34;Read schema&#34;);
         ShexSchema shapes = Shex.readSchema(SHAPES);
 
         // Shapes map.
-        System.out.println(&quot;Read shapes map&quot;);
+        System.out.println(&#34;Read shapes map&#34;);
         ShapeMap shapeMap = Shex.readShapeMap(SHAPES_MAP);
 
         // ShexReport
-        System.out.println(&quot;Validate&quot;);
+        System.out.println(&#34;Validate&#34;);
         ShexReport report = ShexValidator.get().validate(dataGraph, shapes, shapeMap);
 
         System.out.println();
@@ -286,6 +293,7 @@ can be given, separated by "," and format `all` outputs all 3 formats.
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/sparql-apis/http-auth.html b/content/documentation/sparql-apis/http-auth.html
index b2bc940cb..4f9d9b619 100644
--- a/content/documentation/sparql-apis/http-auth.html
+++ b/content/documentation/sparql-apis/http-auth.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>
 
@@ -227,51 +234,51 @@ recommended and should only be used if necessary because the password is
 in-clear in the SPARQL query.</p>
 <p>Jena also has <a href="#bearer-authentication">support for bearer authentication</a>.</p>
 <h3 id="jdk-httpclientauthenticator">JDK HttpClient.authenticator</h3>
-<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">// Basic or Digest - determined when the challenge happens.
-</span><span style="color:#080;font-style:italic"></span>    AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span>URI<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>dataURL<span style="color:#666">),</span> <span style="color:#b44">&#34;user&#34;</span><span style="color:#666">,</span> <sp [...]
-    <span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span> QueryExecution qExec <span style="color:#666">=</span> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
-        qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</span><span style="color:#666">();</span>
-    <span style="color:#666">}</span>
-</code></pre></div><p>alternatively, the java platform provides basic authentication.
+<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">// Basic or Digest - determined when the challenge happens.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>    AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span>URI<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span>dataURL<span style="color:#666">),</span> <span style="color:#b44">&#34;user& [...]
+</span></span><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> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>        qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
+</span></span></code></pre></div><p>alternatively, the java platform provides basic authentication.
 This is not challenge based - any request sent using a <code>HttpClient</code> configured
 with an authenticator will include the authentication details.
 (Caution - including sending username/password to the wrong site!).
 Digest authentication must use <code>AuthEnv.get().registerUsernamePassword</code>.</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">    Authenticator authenticator <span style="color:#666">=</span> AuthLib<span style="color:#666">.</span><span style="color:#b44">authenticator</span><span style="color:#666">(</span><span style="color:#b44">&#34;user&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;password&#34;</span><span style="color:#666">);</span>
-    HttpClient httpClient <span style="color:#666">=</span> HttpClient<span style="color:#666">.</span><span style="color:#b44">newBuilder</span><span style="color:#666">()</span>
-            <span style="color:#666">.</span><span style="color:#b44">authenticator</span><span style="color:#666">(</span>authenticator<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">();</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-java" data-lang="java">    <span style="color:#080;font-style:italic">// Use with RDFConnection      
-</span><span style="color:#080;font-style:italic"></span>    <span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span> RDFConnection conn <span style="color:#666">=</span> RDFConnectionRemote<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">httpClient</span><span style="color:#666">(</span>httpClient<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
-        conn<span style="color:#666">.</span><span style="color:#b44">queryAsk</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">);</span>
-    <span style="color:#666">}</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-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> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">httpClient</span><span style="color:#666">(</span>httpClient<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
-            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
-        qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</span><span style="color:#666">();</span>
-    <span style="color:#666">}</span>
-</code></pre></div><h3 id="challenge-registration">Challenge 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>    Authenticator authenticator <span style="color:#666">=</span> AuthLib<span style="color:#666">.</span><span style="color:#b44">authenticator</span><span style="color:#666">(</span><span style="color:#b44">&#34;user&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;pas [...]
+</span></span><span style="display:flex;"><span>    HttpClient httpClient <span style="color:#666">=</span> HttpClient<span style="color:#666">.</span><span style="color:#b44">newBuilder</span><span style="color:#666">()</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">authenticator</span><span style="color:#666">(</span>authenticator<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">();</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-java" data-lang="java"><span style="display:flex;"><span>    <span style="color:#080;font-style:italic">// Use with RDFConnection      
+</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> RDFConnection conn <span style="color:#666">=</span> RDFConnectionRemote<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">httpClient</span><span style="color:#666">(</span>httpClient<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>        conn<span style="color:#666">.</span><span style="color:#b44">queryAsk</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</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-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> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</ [...]
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">httpClient</span><span style="color:#666">(</span>httpClient<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>            <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>        qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</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="challenge-registration">Challenge registration</h3>
 <p><code>AuthEnv</code> maintains a registry of credentials and also a registry of which service URLs
 the credentials should be used. It supports registration of endpoint prefixes so that one
 registration will apply to all URLs starting with a common root.</p>
 <p>The main function is <code>AuthEnv.get().registerUsernamePassword</code>.</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">// Application setup code 
-</span><span style="color:#080;font-style:italic"></span>   AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span><span style="color:#b44">&#34;username&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;password&#34;</span><span style="color:#666">);</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-java" data-lang="java">   <span style="color:#666">...</span>
-   <span style="color:#a2f;font-weight:bold">try</span> <span style="color:#666">(</span> QueryExecution qExec <span style="color:#666">=</span> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-        <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
-        <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
-        <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
-       qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</span><span style="color:#666">();</span>
-   <span style="color:#666">}</span>
-</code></pre></div><p>When an HTTP 401 response with an <code>WWW-Authenticate</code> header is received, the Jena http handling 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:#080;font-style:italic">// Application setup code 
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>   AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span><span style="color:#b44">&#34;username&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;password&#34;</span><span style="color:#666">);</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-java" data-lang="java"><span style="display:flex;"><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 qExec <span style="color:#666">=</span> QueryExecutionHTTP<span style="color:#666">.</span><span style="color:#b44">service</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#666">.</span><span style="color:#b44">endpoint</span><span style="color:#666">(</span>dataURL<span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#666">.</span><span style="color:#b44">queryString</span><span style="color:#666">(</span><span style="color:#b44">&#34;ASK{}&#34;</span><span style="color:#666">)</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#666">.</span><span style="color:#b44">build</span><span style="color:#666">())</span> <span style="color:#666">{</span>
+</span></span><span style="display:flex;"><span>       qExec<span style="color:#666">.</span><span style="color:#b44">execAsk</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>   <span style="color:#666">}</span>
+</span></span></code></pre></div><p>When an HTTP 401 response with an <code>WWW-Authenticate</code> header is received, the Jena http handling code
 will will look for a suitable authentication registration (exact or longest prefix), and retry the
 request. If it succeeds, a modifier is installed so all subsequent request to the same endpoint will
 have the authentication header added and there is no challenge round-trip.</p>
@@ -282,15 +289,15 @@ the registry is consulted and authentication applied.</p>
 that user name is used to look in the authentication registry.</p>
 <p>If the <code>userinfo</code> is of the form &ldquo;username:password&rdquo; then the information as given in the URL is
 used.</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">    AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span>URI<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span><span style="color:#b44">&#34;http: [...]
-     <span style="color:#080;font-style:italic">// Registration applies to SERVICE.
-</span><span style="color:#080;font-style:italic"></span>    Query query <span style="color:#666">=</span> QueryFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span><span style="color:#b44">&#34;SELECT * { SERVICE &lt;http://host/sparql&gt; { ?s ?p ?o } }&#34;</span><span style="color:#666">);</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:#b44">query</span><span style="color:#666">(</span>query<span style="color:#666">).</span><span style="color:#b44">dataset</span><span style="color:#666">(...).</span><span style="color:#b44">build</span><sp [...]
-        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><span style="color:#b44">&#34;Call using SERVICE...&#34;</span><span style="color:#666">);</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>
-        ResultSetFormatter<span style="color:#666">.</span><span style="color:#b44">out</span><span style="color:#666">(</span>rs<span style="color:#666">);</span>
-    <span style="color:#666">}</span>
-</code></pre></div><h2 id="authentication-examples">Authentication Examples</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>    AuthEnv<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">registerUsernamePassword</span><span style="color:#666">(</span>URI<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:# [...]
+</span></span><span style="display:flex;"><span>     <span style="color:#080;font-style:italic">// Registration applies to SERVICE.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>    Query query <span style="color:#666">=</span> QueryFactory<span style="color:#666">.</span><span style="color:#b44">create</span><span style="color:#666">(</span><span style="color:#b44">&#34;SELECT * { SERVICE &lt;http://host/sparql&gt; { ?s ?p ?o } }&#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 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:#b44">query</span><span style="color:#666">(</span>query<span style="color:#666">).</span><span style="color:#b44">dataset</span><span style="color:#666">(...) [...]
+</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><span style="color:#b44">&#34;Call using SERVICE...&#34;</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></span><span style="display:flex;"><span>        ResultSetFormatter<span style="color:#666">.</span><span style="color:#b44">out</span><span style="color:#666">(</span>rs<span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>    <span style="color:#666">}</span>
+</span></span></code></pre></div><h2 id="authentication-examples">Authentication Examples</h2>
 <p><a href="https://github.com/apache/jena/tree/main/jena-examples/src/main/java/arq/examples/auth">jena-examples:arq/examples/auth/</a>.</p>
 <h2 id="bearer-authentication">Bearer Authentication</h2>
 <p>Bearer authentication requires that the application to obtain a token to present
@@ -303,9 +310,9 @@ to the server.</p>
 </ul>
 <p>How this token is obtained depends on the deployment environment.</p>
 <p>The application can either register the token to be used:</p>
-<pre><code>    AuthEnv.get().addBearerToken(targetURL, jwtString);
+<pre tabindex="0"><code>    AuthEnv.get().addBearerToken(targetURL, jwtString);
 </code></pre><p>or can provide a token provider for 401 challeneges stating bearer authentication.</p>
-<pre><code>    AuthEnv.get().setBearerTokenProvider( 
+<pre tabindex="0"><code>    AuthEnv.get().setBearerTokenProvider( 
         (uri, challenge)-&gt;{ ... ; return jwtString; });
 </code></pre>
   </article>
@@ -356,6 +363,7 @@ to 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/sparql-apis/index.html b/content/documentation/sparql-apis/index.html
index aca5aac98..d2f2f0f5b 100644
--- a/content/documentation/sparql-apis/index.html
+++ b/content/documentation/sparql-apis/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>
 
@@ -372,9 +379,9 @@ that is correct syntax. This means it does not apply to <code>INSERT DATA</code>
 <code>DELETE { ?s ?p ?o } WHERE {}</code>.</p>
 <p>Full example:
 <a href="https://github.com/apache/jena/tree/main/jena-examples/src/main/java/arq/examples/ExQuerySubstitute_01.java">ExQuerySubstitute_01.java</a>.</p>
-<pre><code>    ResultSet resultSet1 = QueryExecution.dataset(dataset)
-            .query(prefixes+&quot;SELECT * { ?person foaf:name ?name }&quot;)
-            .substitution(&quot;name&quot;, name1)
+<pre tabindex="0"><code>    ResultSet resultSet1 = QueryExecution.dataset(dataset)
+            .query(prefixes+&#34;SELECT * { ?person foaf:name ?name }&#34;)
+            .substitution(&#34;name&#34;, name1)
             .select();
     ResultSetFormatter.out(resultSet1);
 </code></pre><p>Substitution is to be preferred over &ldquo;initial bindings&rdquo; because it is clearly
@@ -388,19 +395,19 @@ defined and applies to both query and update in both local and remote uses.</p>
 <p>which provide different ways to build a query.</p>
 <h2 id="ttrdfconnectiontt"><tt>RDFConnection</tt></h2>
 <p><a href="../rdfconnection/">RDFConnection</a></p>
-<pre><code>    try ( RDFConnection conn = RDFConnectionRemote.service(dataURL).build()) {
-        conn.update(&quot;INSERT DATA{}&quot;);
-        conn.queryAsk(&quot;ASK{}&quot;);
+<pre tabindex="0"><code>    try ( RDFConnection conn = RDFConnectionRemote.service(dataURL).build()) {
+        conn.update(&#34;INSERT DATA{}&#34;);
+        conn.queryAsk(&#34;ASK{}&#34;);
     }
 </code></pre><p>or the less flexible:</p>
-<pre><code>    try ( RDFConnection conn = RDFConnection.connect(dataURL) ) {
-        conn.update(&quot;INSERT DATA{}&quot;);
-        conn.queryAsk(&quot;ASK{}&quot;);
+<pre tabindex="0"><code>    try ( RDFConnection conn = RDFConnection.connect(dataURL) ) {
+        conn.update(&#34;INSERT DATA{}&#34;);
+        conn.queryAsk(&#34;ASK{}&#34;);
     }
 </code></pre><h2 id="query-execution">Query Execution</h2>
 <p>Builder Examples
 Builders are reusable and modifiable after a &ldquo;build&rdquo; operation.</p>
-<pre><code>Dataset dataset = ...
+<pre tabindex="0"><code>Dataset dataset = ...
 Query query = ...
 try ( QueryExecution qExec = QueryExecution.create()
                                  .dataset(dataset)
@@ -410,27 +417,27 @@ try ( QueryExecution qExec = QueryExecution.create()
     ... use results ...
 }
 </code></pre><p>and remote calls:</p>
-<pre><code>try ( QueryExecution qExec = QueryExecutionHTTP.service(&quot;http://....&quot;)
+<pre tabindex="0"><code>try ( QueryExecution qExec = QueryExecutionHTTP.service(&#34;http://....&#34;)
                                  .query(query)
                                  .build() ) {
     ResultSet results = qExec.execSelect();
     ... use results ...
 }
 </code></pre><p>Factory Examples</p>
-<pre><code>  Dataset dataset = ...
+<pre tabindex="0"><code>  Dataset dataset = ...
   Query query = ...
   try ( QueryExecution qExec = QueryExecutionFactory.create(query, dataset) ) {
        ResultSet results = qExec.execSelect();
        ... use results ...
   }
 </code></pre><p>More complex setup:</p>
-<pre><code>// JDK HttpClient
+<pre tabindex="0"><code>// JDK HttpClient
 HttpClient httpClient = HttpClient.newBuilder()
                 .connectTimeout(Duration.ofSeconds(10))  // Timeout to connect
                 .followRedirects(Redirect.NORMAL)
                 .build();
 try ( QueryExecution qExec = QueryExecutionHTTP.create()
-                                 .service(&quot;http:// ....&quot;)
+                                 .service(&#34;http:// ....&#34;)
                                  .httpClient(httpClient)
                                  .query(query)
                                  .sendMode(QuerySendMode.asPost)
@@ -443,11 +450,11 @@ try ( QueryExecution qExec = QueryExecutionHTTP.create()
 connect&rdquo; is handled by the JDK <code>HttpClient</code>. Timeouts for local execution are
 &ldquo;time to first result&rdquo; and &ldquo;time to all results&rdquo; as before.</p>
 <h2 id="ttmodelstorett-and-ttgsptt"><tt>ModelStore</tt> and <tt>GSP</tt></h2>
-<pre><code>   Model model = ModelStore.service(&quot;http://fuseki/dataset&quot;).defaultGraph().GET();
-</code></pre><pre><code>   Graph graph = GSP.service(&quot;http://fuseki/dataset&quot;).defaultGraph().GET();
-</code></pre><pre><code>  Graph graph = ... ; 
-  GSP.request(&quot;http://fuseki/dataset&quot;).graphName(&quot;http;//data/myGraph&quot;).POST(graph);
-</code></pre><pre><code>  DatasetGraph dataset = GSP.request(&quot;http://fuseki/dataset&quot;).getDataset();
+<pre tabindex="0"><code>   Model model = ModelStore.service(&#34;http://fuseki/dataset&#34;).defaultGraph().GET();
+</code></pre><pre tabindex="0"><code>   Graph graph = GSP.service(&#34;http://fuseki/dataset&#34;).defaultGraph().GET();
+</code></pre><pre tabindex="0"><code>  Graph graph = ... ; 
+  GSP.request(&#34;http://fuseki/dataset&#34;).graphName(&#34;http;//data/myGraph&#34;).POST(graph);
+</code></pre><pre tabindex="0"><code>  DatasetGraph dataset = GSP.request(&#34;http://fuseki/dataset&#34;).getDataset();
 </code></pre><h2 id="ttservicett"><tt>SERVICE</tt></h2>
 <p><a href="../query/service.html">Old documentation </a> - configuration, especially for
 authentication, has changed.</p>
@@ -489,15 +496,15 @@ code.</p>
 <p>There is a mechanism to modify HTTP requests to specific endpoints or to a
 collection of endpoints with the same prefix.</p>
 <p>For example, to add a header <code>X-Tracker</code> to each request to a particular server:</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">    AtomicLong counter <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> AtomicLong<span style="color:#666">(</span>0<span style="color:#666">);</span>
-
-    HttpRequestModifier modifier <span style="color:#666">=</span> <span style="color:#666">(</span>params<span style="color:#666">,</span> headers<span style="color:#666">)-&gt;{</span>
-        <span style="color:#0b0;font-weight:bold">long</span> x <span style="color:#666">=</span> counter<span style="color:#666">.</span><span style="color:#b44">incrementAndGet</span><span style="color:#666">();</span>
-        headers<span style="color:#666">.</span><span style="color:#b44">put</span><span style="color:#666">(</span><span style="color:#b44">&#34;X-Tracker&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;Call=&#34;</span><span style="color:#666">+</span>x<span style="color:#666">);</span>
-    <span style="color:#666">};</span>
-    <span style="color:#080;font-style:italic">// serverURL is the HTTP URL for the server or part of the server HTTP space.
-</span><span style="color:#080;font-style:italic"></span>    RegistryRequestModifier<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">addPrefix</span><span style="color:#666">(</span>serverURL<span style="color:#666">,</span> modifier<span style="color:#666">);</span>
-</code></pre></div><p>The <code>RegistryRequestModifier</code> registry is checked on each HTTP operation. It
+<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>    AtomicLong counter <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">new</span> AtomicLong<span style="color:#666">(</span><span style="color:#666">0</span><span style="color:#666">);</span>
+</span></span><span style="display:flex;"><span>
+</span></span><span style="display:flex;"><span>    HttpRequestModifier modifier <span style="color:#666">=</span> <span style="color:#666">(</span>params<span style="color:#666">,</span> headers<span style="color:#666">)-&gt;{</span>
+</span></span><span style="display:flex;"><span>        <span style="color:#0b0;font-weight:bold">long</span> x <span style="color:#666">=</span> counter<span style="color:#666">.</span><span style="color:#b44">incrementAndGet</span><span style="color:#666">();</span>
+</span></span><span style="display:flex;"><span>        headers<span style="color:#666">.</span><span style="color:#b44">put</span><span style="color:#666">(</span><span style="color:#b44">&#34;X-Tracker&#34;</span><span style="color:#666">,</span> <span style="color:#b44">&#34;Call=&#34;</span><span style="color:#666">+</span>x<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:#080;font-style:italic">// serverURL is the HTTP URL for the server or part of the server HTTP space.
+</span></span></span><span style="display:flex;"><span><span style="color:#080;font-style:italic"></span>    RegistryRequestModifier<span style="color:#666">.</span><span style="color:#b44">get</span><span style="color:#666">().</span><span style="color:#b44">addPrefix</span><span style="color:#666">(</span>serverURL<span style="color:#666">,</span> modifier<span style="color:#666">);</span>
+</span></span></code></pre></div><p>The <code>RegistryRequestModifier</code> registry is checked on each HTTP operation. It
 maps URLs or prefix of URLs to a function of interface <code>HttpRequestModifier</code>
 which has access to the headers and the query string parameters of the request.</p>
 <h2 id="auth">Authentication</h2>
@@ -557,6 +564,7 @@ which has access to the headers and the query string parameters of the request.<
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/architecture.html b/content/documentation/tdb/architecture.html
index f475242b1..f7d04789d 100644
--- a/content/documentation/tdb/architecture.html
+++ b/content/documentation/tdb/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>
             
             
         
@@ -410,6 +417,7 @@ caches used by TDB.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/assembler.html b/content/documentation/tdb/assembler.html
index eae58592c..d5317ed65 100644
--- a/content/documentation/tdb/assembler.html
+++ b/content/documentation/tdb/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>
             
             
         
@@ -371,6 +378,7 @@ tdb:graphName a rdf:Property ;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/commands.html b/content/documentation/tdb/commands.html
index 6173cbfff..a74e58944 100644
--- a/content/documentation/tdb/commands.html
+++ b/content/documentation/tdb/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>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">COMMANDS</li>
+                <li class="breadcrumb-item active">COMMANDS.HTML</li>
             
             
         
@@ -371,6 +378,7 @@ during the indexing phase of the build.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/configuration.html b/content/documentation/tdb/configuration.html
index e4e5a9bd0..206e0c0b0 100644
--- a/content/documentation/tdb/configuration.html
+++ b/content/documentation/tdb/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>
 
@@ -156,7 +163,7 @@
         
         
             
-                <li class="breadcrumb-item active">CONFIGURATION</li>
+                <li class="breadcrumb-item active">CONFIGURATION.HTML</li>
             
             
         
@@ -346,6 +353,7 @@ defaults. See the <a href="store-parameters.html">full description</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/datasets.html b/content/documentation/tdb/datasets.html
index 080e04c78..1e2b04a3e 100644
--- a/content/documentation/tdb/datasets.html
+++ b/content/documentation/tdb/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>
             
             
         
@@ -312,6 +319,7 @@ The use of <a href="tdb_transactions.html">TDB Transactions</a> is <strong>stron
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/dynamic_datasets.html b/content/documentation/tdb/dynamic_datasets.html
index 73eea30ed..4470d514e 100644
--- a/content/documentation/tdb/dynamic_datasets.html
+++ b/content/documentation/tdb/dynamic_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>
 
@@ -255,6 +262,7 @@ FROM &lt;bob-foaf&gt;
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/faqs.html b/content/documentation/tdb/faqs.html
index 004d9cc85..bd220b5ca 100644
--- a/content/documentation/tdb/faqs.html
+++ b/content/documentation/tdb/faqs.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">FAQS</li>
+                <li class="breadcrumb-item active">FAQS.HTML</li>
             
             
         
@@ -213,7 +220,7 @@
 <li><a href="#tdb2-lock">What is the <em>Unable to check TDB lock owner, the lock file contents appear to be for a TDB2 database. Please try loading this location as a TDB2 database</em> error?</a></li>
 <li><a href="#not-answered">My question isn&rsquo;t answered here?</a></li>
 </ul>
-<p>&lt;a name=&quot;tdb1-tdb2&gt;</a></p>
+<p>&lt;a name=&ldquo;tdb1-tdb2&gt;</a></p>
 <h2 id="tdb1-and-tdb2">TDB1 and TDB2</h2>
 <p>TDB2 is a later generation of database for Jena. It is more robust and can
 handle large update transactions.</p>
@@ -425,6 +432,7 @@ the <code>--tdb2</code> option.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/index.html b/content/documentation/tdb/index.html
index b23686c5a..77d3abe8d 100644
--- a/content/documentation/tdb/index.html
+++ b/content/documentation/tdb/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>
 
@@ -251,6 +258,7 @@ for query, update and REST update over HTTP.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/java_api.html b/content/documentation/tdb/java_api.html
index 97d160d2f..2f3f76843 100644
--- a/content/documentation/tdb/java_api.html
+++ b/content/documentation/tdb/java_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>
 
@@ -318,6 +325,7 @@ returns without error.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/optimizer.html b/content/documentation/tdb/optimizer.html
index e8ee2fec0..da21d3a92 100644
--- a/content/documentation/tdb/optimizer.html
+++ b/content/documentation/tdb/optimizer.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">OPTIMIZER</li>
+                <li class="breadcrumb-item active">OPTIMIZER.HTML</li>
             
             
         
@@ -612,6 +619,7 @@ number of instances, in which case</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/quadfilter.html b/content/documentation/tdb/quadfilter.html
index 91accf070..240716502 100644
--- a/content/documentation/tdb/quadfilter.html
+++ b/content/documentation/tdb/quadfilter.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">QUADFILTER</li>
+                <li class="breadcrumb-item active">QUADFILTER.HTML</li>
             
             
         
@@ -273,6 +280,7 @@ under the symbol <code>SystemTDB.symTupleFilter</code> then execute the query as
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/requirements.html b/content/documentation/tdb/requirements.html
index f238ad77b..d8b1a57b7 100644
--- a/content/documentation/tdb/requirements.html
+++ b/content/documentation/tdb/requirements.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">REQUIREMENTS</li>
+                <li class="breadcrumb-item active">REQUIREMENTS.HTML</li>
             
             
         
@@ -228,6 +235,7 @@ if TDB is not actively processing a query or update.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/store-parameters.html b/content/documentation/tdb/store-parameters.html
index dec6eb622..383b3506b 100644
--- a/content/documentation/tdb/store-parameters.html
+++ b/content/documentation/tdb/store-parameters.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>
 
@@ -233,39 +240,39 @@ to share a database).</p>
 <thead>
 <tr>
 <th>JSON key name</th>
-<th align="right">Default value</th>
+<th style="text-align:right">Default value</th>
 <th>Notes</th>
 </tr>
 </thead>
 <tbody>
 <tr>
 <td>tdb.file_mode</td>
-<td align="right">See below</td>
+<td style="text-align:right">See below</td>
 <td></td>
 </tr>
 <tr>
 <td>tdb.node2nodeid_cache_size</td>
-<td align="right">100,000</td>
+<td style="text-align:right">100,000</td>
 <td>50,000 on 32 bit java</td>
 </tr>
 <tr>
 <td>tdb.nodeid2node_cache_size</td>
-<td align="right">500,000</td>
+<td style="text-align:right">500,000</td>
 <td>50,000 on 32 bit java</td>
 </tr>
 <tr>
 <td>tdb.node_miss_cache_size</td>
-<td align="right">100</td>
+<td style="text-align:right">100</td>
 <td></td>
 </tr>
 <tr>
 <td>tdb.block_read_cache_size</td>
-<td align="right">10000</td>
+<td style="text-align:right">10000</td>
 <td>Only in direct mode</td>
 </tr>
 <tr>
 <td>tdb.block_write_cache_size</td>
-<td align="right">2000</td>
+<td style="text-align:right">2000</td>
 <td>Only in direct mode</td>
 </tr>
 </tbody>
@@ -409,6 +416,7 @@ parameters modify the original.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/tdb-xloader.html b/content/documentation/tdb/tdb-xloader.html
index 9f87b820a..c2157a62c 100644
--- a/content/documentation/tdb/tdb-xloader.html
+++ b/content/documentation/tdb/tdb-xloader.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 @@ or temporary directory; it slows loading down.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/tdb_system.html b/content/documentation/tdb/tdb_system.html
index 5ab99c3cb..23cb560a6 100644
--- a/content/documentation/tdb/tdb_system.html
+++ b/content/documentation/tdb/tdb_system.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>
 
@@ -255,6 +262,7 @@ if TDB is not actively processing a query or update.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/tdb_transactions.html b/content/documentation/tdb/tdb_transactions.html
index 235ed6c03..43ef4a307 100644
--- a/content/documentation/tdb/tdb_transactions.html
+++ b/content/documentation/tdb/tdb_transactions.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>
 
@@ -427,6 +434,7 @@ protocol</a>.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb/value_canonicalization.html b/content/documentation/tdb/value_canonicalization.html
index ae874752c..e07cdc916 100644
--- a/content/documentation/tdb/value_canonicalization.html
+++ b/content/documentation/tdb/value_canonicalization.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>
 
@@ -242,6 +249,7 @@ millisecond accuracy, timezone to 15 minutes).</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb2/index.html b/content/documentation/tdb2/index.html
index 7e39f172b..fb6f3c1dd 100644
--- a/content/documentation/tdb2/index.html
+++ b/content/documentation/tdb2/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>
 
@@ -245,6 +252,7 @@ of millions of triples.</li>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb2/tdb2_admin.html b/content/documentation/tdb2/tdb2_admin.html
index 948126035..0b4c5b636 100644
--- a/content/documentation/tdb2/tdb2_admin.html
+++ b/content/documentation/tdb2/tdb2_admin.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 @@ backup process on a database not in use.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb2/tdb2_cmds.html b/content/documentation/tdb2/tdb2_cmds.html
index a596afb47..66c99d205 100644
--- a/content/documentation/tdb2/tdb2_cmds.html
+++ b/content/documentation/tdb2/tdb2_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>
 
@@ -200,7 +207,7 @@
 </ul>
 <p>On MS Windows, these commands are called <code>tdb2_tdbquery</code> etc.</p>
 <p>Example usage:</p>
-<pre><code>tdb2.tdbloader --loc &lt;DB location&gt; file1 file2 ...
+<pre tabindex="0"><code>tdb2.tdbloader --loc &lt;DB location&gt; file1 file2 ...
 </code></pre><p>Note:</p>
 <p><code>tdbloader2</code> is a TDB1 command tool.</p>
 <h2 id="tdb2tdbloader"><code>tdb2.tdbloader</code></h2>
@@ -312,6 +319,7 @@ any other applications running.</p>
 (function() {
     'use strict'
     
+    
 
     const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
     if (links !== undefined && links !== null) {
diff --git a/content/documentation/tdb2/tdb2_fuseki.html b/content/documentation/tdb2/tdb2_fuseki.html
index fc3c1b77f..e4738b34d 100644
--- a/content/documentation/tdb2/tdb2_fuseki.html
+++ b/content/documentation/tdb2/tdb2_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>
 
@@ -285,6 +292,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/tdb2/tdb2_migration.html b/content/documentation/tdb2/tdb2_migration.html
index 3b93e6241..acc98364b 100644
--- a/content/documentation/tdb2/tdb2_migration.html
+++ b/content/documentation/tdb2/tdb2_migration.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,19 +201,19 @@ datasets. <code>DatasetGraph</code> objects are now created via <code>DatabaseMg
 <p>Beware that many classes have the same name in TDB1 and TDB2 but are in
 different packages. The base package name for TDB2 is <code>org.apache.jena.tdb2</code>.</p>
 <p>Example code: <strong><code>TDB2Factory</code></strong></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.tdb2.TDB2Factory</span><span style="color:#666">;</span>
-<span style="color:#666">...</span>
-
-    <span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">static</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">main</span><span style="color:#666">(</span>String<span style="color:#666">[]</span> args<span style="color:#666">)</span> <span style="color:#666">{</span>
-       Dataset ds <span style="color:#666">=</span> TDB2Factory<span style="color:#666">.</span><span style="color:#b44">createDataset</span><span style="color:#666">()</span> <span style="color:#666">;</span>
-       Txn<span style="color:#666">.</span><span style="color:#b44">execWrite</span><span style="color:#666">(</span>ds<span style="color:#666">,</span> <span style="color:#666">()-&gt;{</span>
-            RDFDataMgr<span style="color:#666">.</span><span style="color:#b44">read</span><span style="color:#666">(</span>ds<span style="color:#666">,</span> <span style="color:#b44">&#34;SomeData.ttl&#34;</span><span style="color:#666">);</span>
-       <span style="color:#666">})</span> <span style="color:#666">;</span>
-        Txn<span style="color:#666">.</span><span style="color:#b44">execRead</span><span style="color:#666">(</span>dsg<span style="color:#666">,</span> <span style="color:#666">()-&gt;{</span>
-           RDFDataMgr<span style="color:#666">.</span><span style="color:#b44">write</span><span style="color:#666">(</span>System<span style="color:#666">.</span><span style="color:#b44">out</span><span style="color:#666">,</span> ds<span style="color:#666">,</span> Lang<span style="color:#666">.</span><span style="color:#b44">TRIG</span><span style="color:#666">)</span> <span style="color:#666">;</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:#a2f;font-weight:bold">import</span> <span style="color:#00f;font-weight:bold">org.apache.jena.tdb2.TDB2Factory</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>
... 6040 lines suppressed ...