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

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 8b40273f36a1187dfd472a66b3e37f72e2f6243a
Author: Andy Seaborne <[email protected]>
AuthorDate: Fri Nov 14 21:07:11 2025 +0000

    GH-3591: Remove initial binding
---
 .../jena/query/QueryExecutionDatasetBuilder.java   |  19 --
 .../apache/jena/query/QueryExecutionFactory.java   |  40 +----
 .../org/apache/jena/query/QuerySolutionMap.java    |  32 +++-
 .../jena/sparql/exec/QueryExecDatasetBuilder.java  |   7 -
 .../jena/sparql/exec/UpdateExecDatasetBuilder.java |   7 -
 .../jena/sparql/modify/UpdateEngineBase.java       |   7 +-
 .../jena/sparql/modify/UpdateEngineFactory.java    |   7 +-
 .../jena/sparql/modify/UpdateEngineMain.java       |  29 ++-
 .../sparql/modify/UpdateEngineNonStreaming.java    |  88 ++++-----
 .../jena/sparql/modify/UpdateEngineRegistry.java   |  38 ++--
 .../jena/sparql/modify/UpdateEngineWorker.java     |  23 +--
 .../jena/sparql/modify/UpdateProcessorBase.java    |  15 +-
 .../modify/UpdateProcessorStreamingBase.java       |  33 ++--
 .../apache/jena/sparql/util/graph/GraphUtils.java  |   4 +-
 .../java/org/apache/jena/update/UpdateAction.java  | 155 ++--------------
 .../jena/update/UpdateExecutionDatasetBuilder.java |  15 --
 .../apache/jena/update/UpdateExecutionFactory.java |  12 --
 .../org/apache/jena/update/UpdateStreaming.java    |  41 +++--
 .../java/org/apache/jena/sparql/api/TestAPI.java   | 199 ++++++++-------------
 .../sparql/modify/AbstractTestUpdateGraph.java     |  29 +--
 .../shacl/engine/constraint/SparqlValidation.java  |   3 +-
 .../apache/jena/shacl/validation/EvalSparql.java   |   3 +-
 .../apache/jena/tdb1/modify/UpdateEngineTDB.java   |  15 +-
 .../apache/jena/tdb2/modify/UpdateEngineTDB.java   |  12 +-
 24 files changed, 249 insertions(+), 584 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionDatasetBuilder.java
 
b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionDatasetBuilder.java
index 882e105642..8dc58f02af 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionDatasetBuilder.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionDatasetBuilder.java
@@ -103,25 +103,6 @@ public class QueryExecutionDatasetBuilder implements 
QueryExecutionBuilder {
         return this;
     }
 
-    /** @deprecated Prefer {@link #substitution(Binding)} which substitutes 
variables for values in the the query before execution. */
-    @Deprecated(forRemoval = true)
-    public QueryExecutionDatasetBuilder initialBinding(Binding binding) {
-        builder.initialBinding(binding);
-        return this;
-    }
-
-    /**
-     * @deprecated Prefer {@link #substitution(QuerySolution)} which 
substitutes variables for values in the the query before execution.
-     */
-    @Deprecated(forRemoval = true)
-    public QueryExecutionDatasetBuilder initialBinding(QuerySolution 
querySolution) {
-        if ( querySolution != null ) {
-            Binding binding = BindingLib.toBinding(querySolution);
-            initialBinding(binding);
-        }
-        return this;
-    }
-
     @Override
     public QueryExecutionDatasetBuilder substitution(QuerySolution 
querySolution) {
         if ( querySolution != null ) {
diff --git 
a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java 
b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
index a3c98f7a98..dcc49b9df8 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/QueryExecutionFactory.java
@@ -25,7 +25,6 @@ import org.apache.jena.rdf.model.Model;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.core.GraphView;
-import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.exec.QueryExecDataset;
 import org.apache.jena.sparql.exec.QueryExecDatasetBuilder;
 import org.apache.jena.sparql.exec.QueryExecutionCompat;
@@ -179,34 +178,6 @@ public class QueryExecutionFactory
         return create(makeQuery(queryStr, lang), model);
     }
 
-    /** Create a QueryExecution over a Dataset given some initial values of 
variables.
-     *
-     * @param query            Query
-     * @param dataset          Target of the query
-     * @param querySolution    Any initial binding of variables
-     * @return QueryExecution
-     * @deprecated Use {@code 
QueryExecution.dataset(dataset).query(query).substitution(querySolution).build()}.
-     */
-    @Deprecated(forRemoval = true)
-    public static QueryExecution create(Query query, Dataset dataset, 
QuerySolution querySolution) {
-        checkArg(query);
-        return 
QueryExecution.dataset(dataset).query(query).substitution(querySolution).build();
-    }
-
-    /** Create a QueryExecution over a Model given some initial values of 
variables.
-     *
-     * @param query            Query
-     * @param model            Target of the query
-     * @param querySolution   Any initial binding of variables
-     * @return QueryExecution
-     * @deprecated Use {@code 
QueryExecution#model(model).query(query).substitution(querySolution).build()}.
-     */
-    @Deprecated(forRemoval = true)
-    public static QueryExecution create(Query query, Model model, 
QuerySolution querySolution) {
-        checkArg(query);
-        return 
QueryExecution.model(model).query(query).substitution(querySolution).build();
-    }
-
     // ---------------- Internal routines
 
     private static Query toQuery(Element pattern) {
@@ -255,22 +226,13 @@ public class QueryExecutionFactory
     // dataset and datasetGraph can't both be set.
     // Null for both of them is allowed and assumes the query has a dataset 
description.
     private static QueryExecution make(Query query, Dataset dataset, 
DatasetGraph datasetGraph) {
-        return make$(query, dataset, datasetGraph, null);
-    }
-
-    // This form of "make" has support for "initialBinding" (seed the 
execution)
-    // The preferred approach is to use "substitution" )(replace variables 
with RDF terms).
-    @SuppressWarnings("removal")
-    private static QueryExecution make$(Query query, Dataset dataset, 
DatasetGraph datasetGraph, Binding initialBinding) {
         QueryExecDatasetBuilder builder = 
QueryExecDataset.newBuilder().query(query);
-        if ( initialBinding != null )
-            builder.initialBinding(initialBinding);
         if ( dataset == null && datasetGraph == null )
             return QueryExecutionCompat.compatibility(builder, null, query, 
builder.getQueryString());
         if ( dataset == null ) {
             builder.dataset(datasetGraph);
             dataset = DatasetFactory.wrap(datasetGraph);
-        } else {
+       } else {
             builder.dataset(dataset.asDatasetGraph());
         }
         return QueryExecutionCompat.compatibility(builder, dataset, query, 
builder.getQueryString());
diff --git a/jena-arq/src/main/java/org/apache/jena/query/QuerySolutionMap.java 
b/jena-arq/src/main/java/org/apache/jena/query/QuerySolutionMap.java
index 6a05a1a35d..fe99a45889 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/QuerySolutionMap.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/QuerySolutionMap.java
@@ -21,7 +21,9 @@ package org.apache.jena.query;
 import java.util.HashMap ;
 import java.util.Iterator ;
 import java.util.Map ;
+import java.util.stream.Collectors;
 
+import org.apache.jena.graph.Node;
 import org.apache.jena.rdf.model.RDFNode ;
 import org.apache.jena.sparql.core.QuerySolutionBase ;
 import org.apache.jena.sparql.core.Var ;
@@ -45,18 +47,20 @@ public class QuerySolutionMap extends QuerySolutionBase
     protected boolean _contains(String varName)     { return 
map.containsKey(varName) ; }
 
     @Override
-    public Iterator<String> varNames()                   { return 
map.keySet().iterator() ; }
+    public Iterator<String> varNames()              { return 
map.keySet().iterator() ; }
 
-    /** Add all of the solutions from one QuerySolutionMap into this 
QuerySolutionMap */
-    public void addAll(QuerySolutionMap other)
-    {
+    /**
+     * Add all of the solutions from one QuerySolutionMap into this 
QuerySolutionMap
+     */
+    public void addAll(QuerySolutionMap other) {
         map.putAll(other.map);
     }
 
-    /** Return a <code>Map&lt;String, RDFNode&gt;</code> representing the 
current
-     * state of this <code>QuerySolutionMap</code>. The map is not connected
-     * to the <code>QuerySolutionMap</code> and later changes to either 
<code>Map</code>
-     * or <code>QuerySolutionMap</code> will not reflected in the other.
+    /**
+     * Return a <code>Map&lt;String, RDFNode&gt;</code> representing the 
current
+     * state of this <code>QuerySolutionMap</code>. The map is not connected 
to the
+     * <code>QuerySolutionMap</code> and later changes to either 
<code>Map</code> or
+     * <code>QuerySolutionMap</code> will not reflected in the other.
      *
      * @return {@literal Map<String, RDFNode>}
      */
@@ -64,6 +68,18 @@ public class QuerySolutionMap extends QuerySolutionBase
         return Map.copyOf(map) ;
     }
 
+    /** Return a <code>Map&lt;Var, Node&gt;</code> representing the current
+     * state of this <code>QuerySolutionMap</code>. The map is not connected
+     * to the <code>QuerySolutionMap</code> and later changes to either 
<code>Map</code>
+     * or <code>QuerySolutionMap</code> will not reflected in the other.
+     *
+     * @return {@literal Map<Var, Node>}
+     */
+    public Map<Var, Node> asVarNodeMap() {
+        return map.entrySet().stream()
+                  .collect(Collectors.toMap(e -> Var.alloc(e.getKey()), e -> 
e.getValue().asNode()));
+    }
+
     /** Add all of the solutions from one QuerySolution into this 
QuerySolutionMap */
     public void addAll(QuerySolution other)
     {
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecDatasetBuilder.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecDatasetBuilder.java
index 4c3d84b659..3c3fb75924 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecDatasetBuilder.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/QueryExecDatasetBuilder.java
@@ -155,13 +155,6 @@ public class QueryExecDatasetBuilder implements 
QueryExecMod, QueryExecBuilder {
             substitutionMap = new HashMap<>();
     }
 
-    /** @deprecated Use {@link #substitution(Binding)} */
-    @Deprecated(forRemoval = true)
-    public QueryExecDatasetBuilder initialBinding(Binding binding) {
-        this.initialBinding = binding;
-        return this;
-    }
-
     @Override
     public QueryExecDatasetBuilder timeout(long timeout) {
         return timeout(timeout, TimeUnit.MILLISECONDS);
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
index e160117783..4560944917 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/exec/UpdateExecDatasetBuilder.java
@@ -148,13 +148,6 @@ public class UpdateExecDatasetBuilder implements 
UpdateExecBuilder {
         return this;
     }
 
-    /** @deprecated Use {@link #substitution(Binding)} */
-    @Deprecated(forRemoval = true)
-    public UpdateExecDatasetBuilder initialBinding(Binding initialBinding) {
-        this.initialBinding = initialBinding;
-        return this;
-    }
-
     @Override
     public UpdateExec build() {
         Objects.requireNonNull(dataset, "No dataset for update");
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineBase.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineBase.java
index c521ea63c8..0bdbd7cc4e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineBase.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineBase.java
@@ -20,22 +20,17 @@ package org.apache.jena.sparql.modify;
 
 import org.apache.jena.sparql.ARQConstants ;
 import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.util.Context ;
 import org.apache.jena.sparql.util.NodeFactoryExtra ;
 
 public abstract class UpdateEngineBase implements UpdateEngine
 {
     protected final DatasetGraph datasetGraph ;
-    protected final Binding inputBinding;
     protected final Context context ;
 
-    public UpdateEngineBase(DatasetGraph datasetGraph,
-                            Binding inputBinding,
-                            Context context)
+    public UpdateEngineBase(DatasetGraph datasetGraph, Context context)
     {
         this.datasetGraph = datasetGraph ;
-        this.inputBinding = inputBinding ;
         this.context = setupContext(context, datasetGraph) ;
     }
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineFactory.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineFactory.java
index 9c0599781f..e435031c55 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineFactory.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineFactory.java
@@ -19,17 +19,16 @@
 package org.apache.jena.sparql.modify;
 
 import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.util.Context ;
 
-/** 
+/**
  * Interface for factories that accept and process SPARQL update requests.
  */
 public interface UpdateEngineFactory
 {
     /** Answer whether this factory can produce an UpdateEngine for the 
specified GraphStore */
     public boolean accept(DatasetGraph datasetGraph, Context context) ;
-    
+
     /** Create the update engine - having returned true to accept, should not 
fail */
-    public UpdateEngine create(DatasetGraph datasetGraph, Binding 
inputBinding, Context context);
+    public UpdateEngine create(DatasetGraph datasetGraph, Context context);
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineMain.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineMain.java
index 45b23e387f..19c4e82b0b 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineMain.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineMain.java
@@ -21,10 +21,9 @@ package org.apache.jena.sparql.modify;
 import java.util.function.Consumer;
 
 import org.apache.jena.atlas.lib.Sink;
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.modify.request.UpdateVisitor ;
-import org.apache.jena.sparql.util.Context ;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.modify.request.UpdateVisitor;
+import org.apache.jena.sparql.util.Context;
 
 /**
  * Default implementation of an update engine based on stream updates to a 
worker
@@ -43,12 +42,11 @@ public class UpdateEngineMain extends UpdateEngineBase
     /**
      * Creates a new Update Engine
      * @param datasetGraph DatasetGraph the updates operate over
-     * @param inputBinding Initial binding to be applied to Update operations 
that can apply an initial binding (i.e. UpdateDeleteWhere, UpdateModify)
      * @param context Execution Context
      */
-    public UpdateEngineMain(DatasetGraph datasetGraph, Binding inputBinding, 
Context context)
+    public UpdateEngineMain(DatasetGraph datasetGraph, Context context)
     {
-        super(datasetGraph, inputBinding, context) ;
+        super(datasetGraph, context);
     }
 
     @Override
@@ -57,7 +55,7 @@ public class UpdateEngineMain extends UpdateEngineBase
     @Override
     public void finishRequest() {}
 
-    private UpdateSink updateSink = null ;
+    private UpdateSink updateSink = null;
 
     /*
      * Returns the {@link UpdateSink}. In this implementation, this is done by 
with
@@ -73,7 +71,7 @@ public class UpdateEngineMain extends UpdateEngineBase
             updateSink = new UpdateVisitorSink(this.prepareWorker(),
                                                sink(q->datasetGraph.add(q)),
                                                
sink(q->datasetGraph.delete(q)));
-        return updateSink ;
+        return updateSink;
     }
 
     /**
@@ -81,7 +79,7 @@ public class UpdateEngineMain extends UpdateEngineBase
      * @return The update visitor to be used to apply the updates
      */
     protected UpdateVisitor prepareWorker() {
-        return new UpdateEngineWorker(datasetGraph, inputBinding, context) ;
+        return new UpdateEngineWorker(datasetGraph, context);
     }
 
     /** Direct a sink to a Consumer. */
@@ -100,15 +98,14 @@ public class UpdateEngineMain extends UpdateEngineBase
     {
         @Override
         public boolean accept(DatasetGraph datasetGraph, Context context) {
-            return true ;
+            return true;
         }
 
         @Override
-        public UpdateEngine create(DatasetGraph datasetGraph, Binding 
inputBinding,
-                                   Context context) {
-            return new UpdateEngineMain(datasetGraph, inputBinding, context) ;
+        public UpdateEngine create(DatasetGraph datasetGraph, Context context) 
{
+            return new UpdateEngineMain(datasetGraph, context);
         }
-    } ;
+    };
 
-    public static UpdateEngineFactory getFactory() { return factory ; }
+    public static UpdateEngineFactory getFactory() { return factory; }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineNonStreaming.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineNonStreaming.java
index e9c2855249..5fc4597bdf 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineNonStreaming.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineNonStreaming.java
@@ -18,84 +18,84 @@
 
 package org.apache.jena.sparql.modify;
 
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.modify.request.UpdateVisitor ;
-import org.apache.jena.sparql.util.Context ;
-import org.apache.jena.update.Update ;
-import org.apache.jena.update.UpdateRequest ;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.modify.request.UpdateVisitor;
+import org.apache.jena.sparql.util.Context;
+import org.apache.jena.update.Update;
+import org.apache.jena.update.UpdateRequest;
 
 /**
- * Example implementation of an update engine that does not stream data, 
instead it will build it up into an
- * in-memory UpdateRequest, and then traverse it after all update operations 
have finished.
+ * Example implementation of an update engine that does not stream data, 
instead it
+ * will build it up into an in-memory UpdateRequest, and then traverse it 
after all
+ * update operations have finished.
  */
-public class UpdateEngineNonStreaming extends UpdateEngineMain
-{
+public class UpdateEngineNonStreaming extends UpdateEngineMain {
     // This is the internal accumulator of update operations.
     // It is used to accumulate Updates so as not to alter
     // the UpdateRequest at the application level.
-    protected final UpdateRequest accRequests ;
-    protected final UpdateSink    updateSink ;
-    
+    protected final UpdateRequest accRequests;
+    protected final UpdateSink updateSink;
+
     /**
      * Creates a new Update Engine
+     *
      * @param datasetGraph Store the updates operate over
-     * @param inputBinding Initial binding to be applied to Update operations 
that can apply an initial binding (i.e. UpdateDeleteWhere, UpdateModify)
      * @param context Execution Context
      */
-    public UpdateEngineNonStreaming(DatasetGraph datasetGraph, Binding 
inputBinding, Context context)
-    {
-        super(datasetGraph, inputBinding, context) ;
+    public UpdateEngineNonStreaming(DatasetGraph datasetGraph, Context 
context) {
+        super(datasetGraph, context);
         accRequests = new UpdateRequest();
-        updateSink = new UpdateRequestSink(accRequests)
-        {
+        updateSink = new UpdateRequestSink(accRequests) {
             @Override
-            public void close()
-            {
-                // Override the close() method to call execute() when we're 
done accepting update operations
+            public void close() {
+                // Override the close() method to call execute() when we're 
done
+                // accepting update operations
                 super.close();
                 execute();
             }
-        } ;
+        };
     }
 
     @Override
-    public void startRequest()  {}
-    
+    public void startRequest() {}
+
     @Override
     public void finishRequest() {}
-    
+
     /**
-     * Returns an {@link UpdateSink} that adds all update operations into an 
internal {@link UpdateRequest} object.
-     * After the last update operation has been added, the {@link #execute()} 
method is called.
+     * Returns an {@link UpdateSink} that adds all update operations into an 
internal
+     * {@link UpdateRequest} object. After the last update operation has been 
added,
+     * the {@link #execute()} method is called.
      */
     @Override
-    public UpdateSink getUpdateSink() { return updateSink ; }
-    
+    public UpdateSink getUpdateSink() {
+        return updateSink;
+    }
+
     /**
-     * Called after all of the update operations have been added to {@link 
#accRequests}.
+     * Called after all of the update operations have been added to
+     * {@link #accRequests}.
      */
-    protected void execute()
-    {
-        UpdateVisitor worker = this.prepareWorker() ;
-        for ( Update up : accRequests )
-        {
-            up.visit(worker) ;
+    protected void execute() {
+        UpdateVisitor worker = this.prepareWorker();
+        for ( Update up : accRequests ) {
+            up.visit(worker);
         }
     }
-    
+
     private static UpdateEngineFactory factory = new UpdateEngineFactory() {
         @Override
         public boolean accept(DatasetGraph datasetGraph, Context context) {
-            return true ;
+            return true;
         }
 
         @Override
-        public UpdateEngine create(DatasetGraph datasetGraph, Binding 
inputBinding,
-                                   Context context) {
-            return new UpdateEngineNonStreaming(datasetGraph, inputBinding, 
context) ;
+        public UpdateEngine create(DatasetGraph datasetGraph, Context context) 
{
+            return new UpdateEngineNonStreaming(datasetGraph, context);
         }
-    } ;
+    };
 
-    public static UpdateEngineFactory getFactory() { return factory ; }
+    public static UpdateEngineFactory getFactory() {
+        return factory;
+    }
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineRegistry.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineRegistry.java
index d45eef55f3..40ee4a8420 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineRegistry.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineRegistry.java
@@ -18,19 +18,19 @@
 
 package org.apache.jena.sparql.modify;
 
-import java.util.ArrayList ;
-import java.util.List ;
+import java.util.ArrayList;
+import java.util.List;
 
-import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.util.Context ;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.util.Context;
 
 public class UpdateEngineRegistry
 {
-    List<UpdateEngineFactory> factories = new ArrayList<>() ;
+    List<UpdateEngineFactory> factories = new ArrayList<>();
 
     // Singleton
-    private static UpdateEngineRegistry registry ;
-    static { init() ; }
+    private static UpdateEngineRegistry registry;
+    static { init(); }
 
     static public UpdateEngineRegistry get()
     {
@@ -41,8 +41,8 @@ public class UpdateEngineRegistry
 
     private static void init()
     {
-        registry = new UpdateEngineRegistry() ;
-        registry.add(UpdateEngineMain.getFactory()) ;
+        registry = new UpdateEngineRegistry();
+        registry.add(UpdateEngineMain.getFactory());
     }
 
     /** Locate a suitable factory for this dataset from the default registry
@@ -51,7 +51,7 @@ public class UpdateEngineRegistry
      * @return A QueryExecutionFactory or null if none accept the request
      */
     public static UpdateEngineFactory findFactory(DatasetGraph graphStore, 
Context context)
-    { return get().find(graphStore, context) ; }
+    { return get().find(graphStore, context); }
 
     /** Locate a suitable factory for this dataset
      *
@@ -63,34 +63,34 @@ public class UpdateEngineRegistry
         for ( UpdateEngineFactory f : factories )
         {
             if ( f.accept(graphStore, context) )
-                return f ;
+                return f;
         }
-        return null ;
+        return null;
     }
 
     /** Add a QueryExecutionFactory to the default registry */
-    public static void addFactory(UpdateEngineFactory f) { get().add(f) ; }
+    public static void addFactory(UpdateEngineFactory f) { get().add(f); }
 
     /** Add a QueryExecutionFactory */
     public void add(UpdateEngineFactory f)
     {
         // Add to low end so that newer factories are tried first
-        factories.add(0, f) ;
+        factories.add(0, f);
     }
 
     /** Remove a QueryExecutionFactory */
-    public static void removeFactory(UpdateEngineFactory f)  { get().remove(f) 
; }
+    public static void removeFactory(UpdateEngineFactory f)  { 
get().remove(f); }
 
     /** Remove a QueryExecutionFactory */
-    public void remove(UpdateEngineFactory f)  { factories.remove(f) ; }
+    public void remove(UpdateEngineFactory f)  { factories.remove(f); }
 
     /** Allow <b>careful</b> manipulation of the factories list */
-    public List<UpdateEngineFactory> factories() { return factories ; }
+    public List<UpdateEngineFactory> factories() { return factories; }
 
     /** Check whether a query engine factory is already registered in the 
default registry*/
-    public static boolean containsFactory(UpdateEngineFactory f) { return 
get().contains(f) ; }
+    public static boolean containsFactory(UpdateEngineFactory f) { return 
get().contains(f); }
 
     /** Check whether a query engine factory is already registered */
-    public boolean contains(UpdateEngineFactory f) { return 
factories.contains(f) ; }
+    public boolean contains(UpdateEngineFactory f) { return 
factories.contains(f); }
 
 }
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
index 3bc9b71039..330b2ea893 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
@@ -43,11 +43,11 @@ import org.apache.jena.riot.*;
 import org.apache.jena.riot.system.PrefixMap;
 import org.apache.jena.sparql.ARQInternalErrorException;
 import org.apache.jena.sparql.core.*;
+import org.apache.jena.sparql.engine.Timeouts;
+import org.apache.jena.sparql.engine.Timeouts.Timeout;
 import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.engine.binding.BindingRoot;
 import org.apache.jena.sparql.exec.*;
-import org.apache.jena.sparql.engine.Timeouts;
-import org.apache.jena.sparql.engine.Timeouts.Timeout;
 import org.apache.jena.sparql.graph.GraphFactory;
 import org.apache.jena.sparql.graph.GraphOps;
 import org.apache.jena.sparql.modify.request.*;
@@ -64,7 +64,6 @@ public class UpdateEngineWorker implements UpdateVisitor
 {
     protected final DatasetGraph datasetGraph;
     protected final boolean autoSilent = true;  // DROP and CREATE
-    protected final Binding inputBinding;       // Used for UpdateModify only: 
substitution is better.
     protected final Context context;
 
     protected final Timeout timeout;
@@ -76,9 +75,8 @@ public class UpdateEngineWorker implements UpdateVisitor
     protected final AtomicBoolean cancelSignal;
     protected volatile QueryExec activeQExec = null;
 
-    public UpdateEngineWorker(DatasetGraph datasetGraph, Binding inputBinding, 
Context context) {
+    public UpdateEngineWorker(DatasetGraph datasetGraph, Context context) {
         this.datasetGraph = datasetGraph;
-        this.inputBinding = inputBinding;
         this.context = context;
         this.timeout = Timeouts.extractUpdateTimeout(context);
         this.cancelSignal = Context.getOrSetCancelSignal(context);
@@ -403,7 +401,7 @@ public class UpdateEngineWorker implements UpdateVisitor
         ThresholdPolicy<Binding> policy = 
ThresholdPolicyFactory.policyFromContext(datasetGraph.getContext());
         DataBag<Binding> db = BagFactory.newDefaultBag(policy, 
SerializationFactoryFinder.bindingSerializationFactory());
         try {
-            Iterator<Binding> bindings = evalBindings(query, dsg, 
inputBinding, context);
+            Iterator<Binding> bindings = evalBindings(query, dsg, context);
 
             try {
                 if ( false ) {
@@ -560,15 +558,14 @@ public class UpdateEngineWorker implements UpdateVisitor
 
     protected Iterator<Binding> evalBindings(Element pattern) {
         Query query = elementToQuery(pattern);
-        return evalBindings(query, datasetGraph, inputBinding, context);
+        return evalBindings(query, datasetGraph, context);
     }
 
-    @SuppressWarnings("removal")
-    protected Iterator<Binding> evalBindings(Query query, DatasetGraph dsg, 
Binding inputBinding, Context context) {
+    protected Iterator<Binding> evalBindings(Query query, DatasetGraph dsg, 
Context context) {
         // The UpdateProcessorBase already copied the context and made it safe
         // ... but that's going to happen again :-(
         if ( query == null ) {
-            Binding binding = (null != inputBinding) ? inputBinding : 
BindingRoot.create();
+            Binding binding = BindingRoot.create();
             return Iter.singletonIterator(binding);
         }
 
@@ -576,12 +573,6 @@ public class UpdateEngineWorker implements UpdateVisitor
 
         // Not QueryExecDataset.dataset(...) because of initialBinding.
         QueryExecDatasetBuilder builder = 
QueryExecDatasetBuilder.create().dataset(dsg).query(query).context(context);
-        if ( inputBinding != null ) {
-            // Must use initialBinding - it puts the input in the results, 
unlike substitution.
-            builder.initialBinding(inputBinding);
-            // substitution does not put results in the output.
-            // builder.substitution(inputBinding);
-        }
         QueryExec qExec = builder.build();
         setQExec(qExec);
         return qExec.select();
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorBase.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorBase.java
index d51b96e050..d5885e6755 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorBase.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorBase.java
@@ -36,21 +36,11 @@ public class UpdateProcessorBase implements UpdateProcessor
 {
     protected final UpdateRequest request ;
     protected final DatasetGraph datasetGraph ;
-    protected final Binding inputBinding;
     protected final UpdateEngineFactory factory ;
     protected final Context context ;
     protected final Timeout timeout ;
 
-    @Deprecated
-    public UpdateProcessorBase(UpdateRequest request,
-                               DatasetGraph datasetGraph,
-                               Binding inputBinding,
-                               Context context,
-                               UpdateEngineFactory factory) {
-        this(request, datasetGraph, inputBinding, context, factory, null);
-    }
-
-    public UpdateProcessorBase(UpdateRequest request,
+        public UpdateProcessorBase(UpdateRequest request,
                                DatasetGraph datasetGraph,
                                Binding inputBinding,
                                Context context,
@@ -59,7 +49,6 @@ public class UpdateProcessorBase implements UpdateProcessor
     {
         this.request = request ;
         this.datasetGraph = datasetGraph ;
-        this.inputBinding = inputBinding;
         this.context = context;
         Context.setCurrentDateTime(this.context) ;
         this.factory = factory ;
@@ -72,7 +61,7 @@ public class UpdateProcessorBase implements UpdateProcessor
 
     @Override
     public void execute() {
-        UpdateEngine uProc = factory.create(datasetGraph, inputBinding, 
context);
+        UpdateEngine uProc = factory.create(datasetGraph, context);
         uProc.startRequest();
 
         // context.get(ARQ.updateTimeout);
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorStreamingBase.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorStreamingBase.java
index 359fb32a34..502eea35ab 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorStreamingBase.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateProcessorStreamingBase.java
@@ -18,55 +18,54 @@
 
 package org.apache.jena.sparql.modify;
 
-import org.apache.jena.sparql.core.DatasetGraph ;
+import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.Prologue;
-import org.apache.jena.sparql.engine.binding.Binding ;
-import org.apache.jena.sparql.util.Context ;
-import org.apache.jena.update.UpdateProcessorStreaming ;
+import org.apache.jena.sparql.util.Context;
+import org.apache.jena.update.UpdateProcessorStreaming;
 
 /** Class to hold the general state of a update request execution.
  *  See query ExecutionContext
  */
 public class UpdateProcessorStreamingBase implements UpdateProcessorStreaming
 {
-    protected final DatasetGraph datasetGraph ;
-    protected final Context context ;
-    
+    protected final DatasetGraph datasetGraph;
+    protected final Context context;
+
     protected final UpdateEngine proc;
     protected final Prologue prologue;
 
-    public UpdateProcessorStreamingBase(DatasetGraph datasetGraph, Binding 
inputBinding, Prologue prologue, Context context, UpdateEngineFactory factory)
+    public UpdateProcessorStreamingBase(DatasetGraph datasetGraph, Prologue 
prologue, Context context, UpdateEngineFactory factory)
     {
-        this.datasetGraph = datasetGraph ;
+        this.datasetGraph = datasetGraph;
         this.prologue = prologue;
         this.context = context;
-        Context.setCurrentDateTime(this.context) ;
-        proc = factory.create(datasetGraph, inputBinding, context) ;
+        Context.setCurrentDateTime(this.context);
+        proc = factory.create(datasetGraph, context);
     }
-    
+
     @Override
     public void startRequest() {
-        proc.startRequest() ;
+        proc.startRequest();
     }
 
     @Override
     public void finishRequest() {
-        proc.finishRequest() ;
+        proc.finishRequest();
     }
 
     @Override
     public UpdateSink getUpdateSink() {
-        return proc.getUpdateSink() ;
+        return proc.getUpdateSink();
     }
 
     @Override
     public DatasetGraph getDatasetGraph() {
-        return datasetGraph ;
+        return datasetGraph;
     }
 
     @Override
     public Context getContext() {
-        return context ;
+        return context;
     }
 
     @Override
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphUtils.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphUtils.java
index 18e486231f..349e29eb63 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphUtils.java
@@ -286,7 +286,7 @@ public class GraphUtils {
         QuerySolutionMap qsm = new QuerySolutionMap();
         qsm.add("ATYPE", atype);
 
-        try( @SuppressWarnings("removal") QueryExecution qExec = 
QueryExecution.model(model).query(q).initialBinding(qsm).build() ) {
+        try( QueryExecution qExec = 
QueryExecution.model(model).query(q).substitution(qsm).build() ) {
             return (Resource)QueryExecUtils.getAtMostOne(qExec, "root");
         }
     }
@@ -299,7 +299,7 @@ public class GraphUtils {
         Query q = QueryFactory.create(s);
         QuerySolutionMap qsm = new QuerySolutionMap();
         qsm.add("ATYPE", atype);
-        try( @SuppressWarnings("removal") QueryExecution qExec = 
QueryExecution.model(model).query(q).initialBinding(qsm).build() ) {
+        try( QueryExecution qExec = 
QueryExecution.model(model).query(q).substitution(qsm).build() ) {
             return QueryExecUtils.getAll(qExec, 
"root").stream().map(r->(Resource)r).toList();
         }
     }
diff --git a/jena-arq/src/main/java/org/apache/jena/update/UpdateAction.java 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateAction.java
index 987b76e7e6..cca3970c45 100644
--- a/jena-arq/src/main/java/org/apache/jena/update/UpdateAction.java
+++ b/jena-arq/src/main/java/org/apache/jena/update/UpdateAction.java
@@ -29,8 +29,6 @@ import org.apache.jena.rdf.model.Model;
 import org.apache.jena.sparql.ARQException;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
-import org.apache.jena.sparql.engine.binding.Binding;
-import org.apache.jena.sparql.engine.binding.BindingLib;
 import org.apache.jena.sparql.exec.UpdateExec;
 import org.apache.jena.sparql.lang.UpdateParser;
 import org.apache.jena.sparql.modify.UpdateSink;
@@ -81,31 +79,8 @@ public class UpdateAction {
      * @param dataset
      */
     public static void readExecute(String filename, DatasetGraph dataset) {
-        readExecute(filename, dataset, null);
-    }
-
-    /**
-     * Read a file containing SPARQL Update operations, and execute the 
operations.
-     *
-     * @param filename
-     * @param dataset
-     * @param inputBinding
-     */
-    public static void readExecute(String filename, Dataset dataset, 
QuerySolution inputBinding) {
-        UpdateRequest req = UpdateFactory.read(filename);
-        execute(req, dataset, inputBinding);
-    }
-
-    /**
-     * Read a file containing SPARQL Update operations, and execute the 
operations.
-     *
-     * @param filename
-     * @param datasetGraph
-     * @param inputBinding
-     */
-    public static void readExecute(String filename, DatasetGraph datasetGraph, 
Binding inputBinding) {
         UpdateRequest req = UpdateFactory.read(filename);
-        execute$(req, datasetGraph, inputBinding);
+        execute$(req, dataset);
     }
 
     /**
@@ -153,31 +128,6 @@ public class UpdateAction {
         execute(req, dataset);
     }
 
-    /**
-     * Parse a string containing SPARQL Update operations, and execute the
-     * operations.
-     *
-     * @param updateString
-     * @param dataset
-     * @param inputBinding
-     */
-    public static void parseExecute(String updateString, Dataset dataset, 
QuerySolution inputBinding) {
-        parseExecute(updateString, dataset.asDatasetGraph(), 
BindingLib.asBinding(inputBinding));
-    }
-
-    /**
-     * Parse a string containing SPARQL Update operations, and execute the
-     * operations.
-     *
-     * @param updateString
-     * @param dataset
-     * @param inputBinding
-     */
-    public static void parseExecute(String updateString, DatasetGraph dataset, 
Binding inputBinding) {
-        UpdateRequest req = UpdateFactory.create(updateString);
-        execute(req, dataset, inputBinding);
-    }
-
     /**
      * Execute SPARQL Update operations.
      *
@@ -215,7 +165,7 @@ public class UpdateAction {
      * @param dataset
      */
     public static void execute(UpdateRequest request, DatasetGraph dataset) {
-        execute$(request, dataset, null);
+        execute$(request, dataset);
     }
 
     /**
@@ -226,18 +176,7 @@ public class UpdateAction {
      * @param inputBinding
      */
     public static void execute(UpdateRequest request, Dataset dataset, 
QuerySolution inputBinding) {
-        execute(request, dataset.asDatasetGraph(), 
BindingLib.asBinding(inputBinding));
-    }
-
-    /**
-     * Execute SPARQL Update operations.
-     *
-     * @param request
-     * @param datasetGraph
-     * @param inputBinding
-     */
-    public static void execute(UpdateRequest request, DatasetGraph 
datasetGraph, Binding inputBinding) {
-        execute$(request, datasetGraph, inputBinding);
+        execute$(request, dataset.asDatasetGraph());
     }
 
     private static DatasetGraph toDatasetGraph(Graph graph) {
@@ -246,9 +185,8 @@ public class UpdateAction {
 
     // All non-streaming updates come through here.
 
-    private static void execute$(UpdateRequest request, DatasetGraph 
datasetGraph, Binding inputBinding) {
-        @SuppressWarnings("removal")
-        UpdateExec uProc = 
UpdateExec.newBuilder().update(request).dataset(datasetGraph).initialBinding(inputBinding).build();
+    private static void execute$(UpdateRequest request, DatasetGraph 
datasetGraph) {
+        UpdateExec uProc = 
UpdateExec.newBuilder().update(request).dataset(datasetGraph).build();
         if ( uProc == null )
             throw new ARQException("No suitable update procesors are 
registered/able to execute your updates");
         uProc.execute();
@@ -291,35 +229,13 @@ public class UpdateAction {
      * @param dataset
      */
     public static void execute(Update update, DatasetGraph dataset) {
-        execute(update, dataset, null);
-    }
-
-    /**
-     * Execute a single SPARQL Update operation.
-     *
-     * @param update
-     * @param dataset
-     * @param inputBinding
-     */
-    public static void execute(Update update, Dataset dataset, QuerySolution 
inputBinding) {
-        execute(update, dataset.asDatasetGraph(), 
BindingLib.asBinding(inputBinding));
-    }
-
-    /**
-     * Execute a single SPARQL Update operation.
-     *
-     * @param update
-     * @param datasetGraph
-     * @param inputBinding
-     */
-    public static void execute(Update update, DatasetGraph datasetGraph, 
Binding inputBinding) {
-        execute$(update, datasetGraph, inputBinding);
+        execute$(update, dataset);
     }
 
-    private static void execute$(Update update, DatasetGraph datasetGraph, 
Binding inputBinding) {
+    private static void execute$(Update update, DatasetGraph datasetGraph) {
         UpdateRequest request = new UpdateRequest();
         request.add(update);
-        execute$(request, datasetGraph, inputBinding);
+        execute$(request, datasetGraph);
     }
 
     // Streaming Updates:
@@ -336,18 +252,6 @@ public class UpdateAction {
 
     /** Parse update operations into a DatasetGraph by reading it from a file 
*/
     public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
String fileName, String baseURI, Syntax syntax) {
-        parseExecute(usingList, dataset, fileName, (Binding)null, baseURI, 
syntax);
-    }
-
-    /** Parse update operations into a DatasetGraph by reading it from a file 
*/
-    public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
String fileName, QuerySolution inputBinding, String baseURI,
-                                    Syntax syntax) {
-        parseExecute(usingList, dataset, fileName, 
BindingLib.asBinding(inputBinding), baseURI, syntax);
-    }
-
-    /** Parse update operations into a DatasetGraph by reading it from a file 
*/
-    public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
String fileName, Binding inputBinding, String baseURI,
-                                    Syntax syntax) {
         InputStream in = null;
         if ( fileName.equals("-") )
             in = System.in;
@@ -356,7 +260,7 @@ public class UpdateAction {
             if ( in == null )
                 throw new UpdateException("File could not be opened: " + 
fileName);
         }
-        parseExecute(usingList, dataset, in, inputBinding, baseURI, syntax);
+        parseExecute(usingList, dataset, in, baseURI, syntax);
         if ( in != System.in )
             IO.close(in);
     }
@@ -408,46 +312,7 @@ public class UpdateAction {
      * @param syntax The update language syntax
      */
     public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
InputStream input, String baseURI, Syntax syntax) {
-        parseExecute(usingList, dataset, input, (Binding)null, baseURI, 
syntax);
-    }
-
-    /**
-     * Parse update operations into a DatasetGraph by parsing from an 
InputStream.
-     *
-     * @param usingList A list of USING or USING NAMED statements that be 
added to
-     *     all {@link UpdateWithUsing} queries
-     * @param dataset The dataset to apply the changes to
-     * @param input The source of the update request (must be UTF-8).
-     * @param inputBinding Initial binding to be applied to Update operations 
that
-     *     can apply an initial binding (i.e. UpdateDeleteWhere, 
UpdateModify). May
-     *     be <code>null</code>
-     * @param baseURI The base URI for resolving relative URIs (may be
-     *     <code>null</code>)
-     * @param syntax The update language syntax
-     */
-    public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
InputStream input, QuerySolution inputBinding,
-                                    String baseURI, Syntax syntax) {
-        parseExecute(usingList, dataset, input, 
BindingLib.asBinding(inputBinding), baseURI, syntax);
-    }
-
-    /**
-     * Parse update operations into a DatasetGraph by parsing from an 
InputStream.
-     *
-     * @param usingList A list of USING or USING NAMED statements that be 
added to
-     *     all {@link UpdateWithUsing} queries
-     * @param dataset The dataset to apply the changes to
-     * @param input The source of the update request (must be UTF-8).
-     * @param inputBinding Initial binding to be applied to Update operations 
that
-     *     can apply an initial binding (i.e. UpdateDeleteWhere, 
UpdateModify). May
-     *     be <code>null</code>
-     * @param baseURI The base URI for resolving relative URIs (may be
-     *     <code>null</code>)
-     * @param syntax The update language syntax
-     */
-    public static void parseExecute(UsingList usingList, DatasetGraph dataset, 
InputStream input, Binding inputBinding, String baseURI,
-                                    Syntax syntax) {
-        @SuppressWarnings("removal")
-        UpdateProcessorStreaming uProc = 
UpdateStreaming.createStreaming(dataset, inputBinding);
+        UpdateProcessorStreaming uProc = 
UpdateStreaming.createStreaming(dataset);
         if ( uProc == null )
             throw new ARQException("No suitable update procesors are 
registered/able to execute your updates");
 
diff --git 
a/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionDatasetBuilder.java
 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionDatasetBuilder.java
index b0ce8acac2..4efd0dc08b 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionDatasetBuilder.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionDatasetBuilder.java
@@ -101,21 +101,6 @@ public class UpdateExecutionDatasetBuilder implements 
UpdateExecutionBuilder {
         return this;
     }
 
-//    public UpdateExecutionBuilder initialBinding(Binding initialBinding) {
-//        builder.initialBinding(initialBinding);
-//        return this;
-//    }
-
-    /** @deprecated Prefer {@link #substitution(QuerySolution)}. */
-    @Deprecated(forRemoval = true)
-    public UpdateExecutionDatasetBuilder initialBinding(QuerySolution 
querySolution) {
-        if ( querySolution == null )
-            return this;
-        Binding binding = BindingLib.asBinding(querySolution);
-        builder.initialBinding(binding);
-        return this;
-    }
-
     @Override
     public UpdateExecutionDatasetBuilder substitution(QuerySolution 
querySolution) {
         if ( querySolution == null )
diff --git 
a/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionFactory.java 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionFactory.java
index 9372de4e94..c9d2ddc1f5 100644
--- a/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/update/UpdateExecutionFactory.java
@@ -84,18 +84,6 @@ public class UpdateExecutionFactory
         return UpdateExecution.dataset(dataset).update(updateRequest).build();
     }
 
-    /**
-     * Create an UpdateExecution appropriate to the datasetGraph, or null if no
-     * available factory to make an UpdateExecution
-     *
-     * @param dataset
-     * @return UpdateExecution
-     */
-    @Deprecated(forRemoval = true)
-    public static UpdateProcessorStreaming createStreaming(Dataset dataset) {
-        return UpdateStreaming.makeStreaming(dataset.asDatasetGraph(), null, 
null);
-    }
-
     /**
      * Create an UpdateExecution that sends the update to a remote SPARQL 
Update
      * service.
diff --git a/jena-arq/src/main/java/org/apache/jena/update/UpdateStreaming.java 
b/jena-arq/src/main/java/org/apache/jena/update/UpdateStreaming.java
index feebfeac74..f3c69e313a 100644
--- a/jena-arq/src/main/java/org/apache/jena/update/UpdateStreaming.java
+++ b/jena-arq/src/main/java/org/apache/jena/update/UpdateStreaming.java
@@ -19,11 +19,8 @@
 package org.apache.jena.update;
 
 import org.apache.jena.query.Dataset;
-import org.apache.jena.query.QuerySolution;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.Prologue;
-import org.apache.jena.sparql.engine.binding.Binding;
-import org.apache.jena.sparql.engine.binding.BindingLib;
 import org.apache.jena.sparql.modify.UpdateEngineFactory;
 import org.apache.jena.sparql.modify.UpdateEngineRegistry;
 import org.apache.jena.sparql.modify.UpdateProcessorStreamingBase;
@@ -36,28 +33,34 @@ public class UpdateStreaming {
      * available factory to make an UpdateExecution
      *
      * @param dataset
-     * @param inputBinding Initial binding to be applied to Update operations 
that
-     *     can apply an initial binding (i.e. UpdateDeleteWhere, UpdateModify)
      * @return UpdateExecution
      */
-    @Deprecated(forRemoval = true)
-    public static UpdateProcessorStreaming createStreaming(Dataset dataset, 
QuerySolution inputBinding) {
-        return createStreaming(dataset.asDatasetGraph(), 
BindingLib.asBinding(inputBinding));
+    public static UpdateProcessorStreaming createStreaming(Dataset dataset) {
+        return makeStreaming(dataset.asDatasetGraph(), null);
     }
 
     /**
      * Create an UpdateExecution appropriate to the datasetGraph, or null if no
      * available factory to make an UpdateExecution
      *
-     * @param datasetGraph
-     * @param inputBinding Initial binding to be applied to Update operations 
that
-     *     can apply an initial binding (i.e. UpdateDeleteWhere, UpdateModify)
+     * @param dataset
+     * @param context (null means use merge of global and graph store context))
+     * @return UpdateExecution
+     */
+    public static UpdateProcessorStreaming createStreaming(Dataset dataset, 
Context context) {
+        return makeStreaming(dataset.asDatasetGraph(), context);
+    }
+
+
+    /**
+     * Create an UpdateExecution appropriate to the datasetGraph, or null if no
+     * available factory to make an UpdateExecution
+     *
+     * @param dataset
      * @return UpdateExecution
-     * @deprecated Use {@code UpdateExecution.dataset(dataset)... build()}
      */
-    @Deprecated(forRemoval = true)
-    public static UpdateProcessorStreaming createStreaming(DatasetGraph 
datasetGraph, Binding inputBinding) {
-        return makeStreaming(datasetGraph, inputBinding, null);
+    public static UpdateProcessorStreaming createStreaming(DatasetGraph 
dataset) {
+        return makeStreaming(dataset, null);
     }
 
     /**
@@ -68,16 +71,16 @@ public class UpdateStreaming {
      * @param context (null means use merge of global and graph store context))
      * @return UpdateExecution
      */
-    public static UpdateProcessorStreaming createStreaming(Dataset dataset, 
Context context) {
-        return makeStreaming(dataset.asDatasetGraph(), null, context);
+    public static UpdateProcessorStreaming createStreaming(DatasetGraph 
dataset, Context context) {
+        return makeStreaming(dataset, context);
     }
 
     // Everything for local updates comes through one of these two make methods
-    /*package*/ static UpdateProcessorStreaming makeStreaming(DatasetGraph 
datasetGraph, Binding inputBinding, Context context) {
+    /*package*/ static UpdateProcessorStreaming makeStreaming(DatasetGraph 
datasetGraph, Context context) {
         Prologue prologue = new Prologue();
         Context cxt = Context.setupContextForDataset(context, datasetGraph);
         UpdateEngineFactory f = UpdateEngineRegistry.get().find(datasetGraph, 
cxt);
-        UpdateProcessorStreamingBase uProc = new 
UpdateProcessorStreamingBase(datasetGraph, inputBinding, prologue, cxt, f);
+        UpdateProcessorStreamingBase uProc = new 
UpdateProcessorStreamingBase(datasetGraph, prologue, cxt, f);
         return uProc;
     }
 }
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java 
b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
index 686dad6f74..e00b75499e 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/api/TestAPI.java
@@ -38,6 +38,7 @@ import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.core.Quad;
 import org.apache.jena.sparql.graph.GraphFactory;
+import org.apache.jena.sparql.syntax.syntaxtransform.QueryTransformOps;
 import org.apache.jena.sparql.util.IsoMatcher;
 import org.apache.jena.vocabulary.OWL;
 import org.apache.jena.vocabulary.RDF;
@@ -66,75 +67,48 @@ public class TestAPI
         d.addNamedModel(g1.getURI(), m);
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindingsConstruct1()
-    {
+    @Test
+    public void test_API1() {
+        String qs = "SELECT * {?s ?p ?o}";
+        try (QueryExecution qExec = QueryExecution.model(m).query(qs).build()) 
{
+            ResultSet rs = qExec.execSelect();
+            assertTrue(rs.hasNext(), () -> "No results");
+            QuerySolution qSoln = rs.nextSolution();
+            Resource qr = qSoln.getResource("s");
+            Set<Statement> s1 = qr.getModel().listStatements().toSet();
+            Set<Statement> s2 = m.listStatements().toSet();
+            assertEquals(s1, s2);
+        }
+    }
+
+    @Test
+    public void testSubstitutionConstruct1() {
         QuerySolutionMap init = new QuerySolutionMap();
         init.add("z", m.createLiteral("zzz"));
         String qs = "CONSTRUCT {?s ?p ?z} {?s ?p 'x1'}";
-        try ( QueryExecution qExec = QueryExecution.model(m)
-                .query(qs)
-                .initialBinding(init)
-                .build() ) {
+        try (QueryExecution qExec = 
QueryExecution.model(m).query(qs).substitution(init).build()) {
             Model r = qExec.execConstruct();
-            assertTrue(r.size() > 0 , ()->"Empty model");
-            Property p1 = m.createProperty(ns+"p1");
-            assertTrue(r.contains(null,p1, init.get("z")), ()->"Empty model");
+            assertTrue(r.size() > 0, () -> "Empty model");
+            Property p1 = m.createProperty(ns + "p1");
+            assertTrue(r.contains(null, p1, init.get("z")), () -> "Empty 
model");
         }
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindingsConstruct2()
-    {
+    @Test
+    public void testSubstitutionConstruct2() {
         QuerySolutionMap init = new QuerySolutionMap();
         init.add("o", m.createLiteral("x1"));
         String qs = "CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }";
-        try ( QueryExecution qExec = QueryExecution.model(m).query(qs)
-                .initialBinding(init)
-                .build() ) {
+        try (QueryExecution qExec = 
QueryExecution.model(m).query(qs).substitution(init).build()) {
             Model r = qExec.execConstruct();
-            assertTrue(r.size() > 0 , ()->"Empty model");
-            Property p1 = m.createProperty(ns+"p1");
-            assertTrue(r.contains(null, p1, init.get("x1")), ()->"Empty 
model");
+            assertTrue(r.size() > 0, () -> "Empty model");
+            Property p1 = m.createProperty(ns + "p1");
+            assertTrue(r.contains(null, p1, init.get("x1")), () -> "Empty 
model");
         }
     }
 
-    // The original test (see commented out "assertSame) in the test is now 
bogus.
-    // DatasetImpl no longer caches the default model as that caused problems.
-    //
-    // This is testing that the model for the resource in the result is the
-    // same object as the model supplied to the query.
-    // "Same" here means "same contents" including blank nodes.
-    //
-    // it used to be that this tested whether they were the same object.
-    // That is dubious and no longer true even for DatasetImpl (the default 
mode
-    // is not cached but recreated on demand so there are no problems with
-    // transaction boundaries).
-    //
-    // Left as an active test so the assumption is tested (it has been true for
-    // many years).
-    //
-    // Using the Resource.getXXX and Resource.listXXX operations is dubious if
-    // there are named graphs and that has always been the case.
-
-    @Test public void test_API1()
-    {
-        String qs = "SELECT * {?s ?p ?o}";
-        try ( QueryExecution qExec = QueryExecution.model(m).query(qs)
-                .build() ) {
-            ResultSet rs = qExec.execSelect();
-            assertTrue(rs.hasNext(), ()->"No results");
-            QuerySolution qSoln = rs.nextSolution();
-            Resource qr = qSoln.getResource("s");
-            //assertSame("Not the same model as queried", qr.getModel(), m);
-            Set<Statement> s1 = qr.getModel().listStatements().toSet();
-            Set<Statement> s2 = m.listStatements().toSet();
-            assertEquals(s1,s2);
-        }
-    }
-
-    @Test public void testInitialBindings0()
-    {
+    @Test
+    public void testSubstitution0() {
         QuerySolutionMap smap1 = new QuerySolutionMap();
         QuerySolutionMap smap2 = new QuerySolutionMap();
         smap1.add("o", m.createLiteral("y1"));
@@ -149,70 +123,63 @@ public class TestAPI
         assertTrue(smap2.contains("o"));
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings1()
-    {
+    @Test
+    public void testSubstitution1() {
         QuerySolutionMap init = new QuerySolutionMap();
         init.add("o", m.createLiteral("y1"));
         String qs = "SELECT * {?s ?p ?o}";
-        try ( QueryExecution qExec = QueryExecution.model(m).query(qs)
-                .initialBinding(init)
-                .build() ) {
+        try (QueryExecution qExec = 
QueryExecution.model(m).query(qs).substitution(init).build()) {
             int count = queryAndCount(qExec);
-            assertEquals(1, count, ()->"Initial binding didn't restrict query 
properly");
+            assertEquals(1, count, () -> "Initial binding didn't restrict 
query properly");
         }
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings2()
-    {
+    @Test
+    public void testSubstitution2() {
         QuerySolutionMap init = new QuerySolutionMap();
         init.add("z", m.createLiteral("zzz"));
         String qs = "SELECT * {?s ?p ?o}";
-        try ( QueryExecution qExec = QueryExecution.model(m).query(qs)
-                .initialBinding(init)
-                .build() ) {
+        try (QueryExecution qExec = 
QueryExecution.model(m).query(qs).substitution(init).build()) {
             int count = queryAndCount(qExec);
             assertEquals(3, count, "Initial binding restricted query 
improperly");
         }
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings3()
-    {
+    @Test
+    public void testSubstitution3() {
+        // test requires the substitutions are returned.
         QuerySolutionMap init = new QuerySolutionMap();
         init.add("z", m.createLiteral("zzz"));
         String qs = "SELECT * {?s ?p 'x1'}";
-        try ( QueryExecution qExec = QueryExecution.model(m).query(qs)
-                .initialBinding(init)
-                .build() ) {
+        Query q = QueryFactory.create(qs);
+        Query q2 = QueryTransformOps.syntaxSubstitute(q, init.asVarNodeMap());
+
+        try (QueryExecution qExec = QueryExecution.model(m).query(q2).build()) 
{
             ResultSet rs = qExec.execSelect();
-            QuerySolution qSoln= rs.nextSolution();
-            assertTrue(qSoln.getLiteral("z").getLexicalForm().equals("zzz"), 
()->"Initial setting not set correctly now");
+            QuerySolution qSoln = rs.nextSolution();
+            assertTrue(qSoln.getLiteral("z").getLexicalForm().equals("zzz"), 
() -> "Initial setting not set correctly now");
         }
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings4()
-    {
+    @Test public void testSubstitution4() {
         // Test derived from report by Holger Knublauch
-        String queryString =
-            "PREFIX : <"+ns+">\n" +
-            "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" +
-            "SELECT * \n" +
-            "WHERE { \n" +
-            "    ?x :p1 ?z ." +
-            "    NOT EXISTS { \n" +
-            "        ?x rdfs:label ?z . \n" +
-            "    }\n" +
-            "}";
+        String queryString = "PREFIX : <"+ns+">\n" +
+                """
+            PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
+            SELECT *
+            WHERE {
+                ?x :p1 ?z .
+                NOT EXISTS {
+                    ?x rdfs:label ?z .
+                }
+            }""";
 
         Query query = QueryFactory.create(queryString, Syntax.syntaxARQ);
         QuerySolutionMap map = new QuerySolutionMap();
         map.add("this", OWL.Thing);
 
         try ( QueryExecution qExec = QueryExecution.model(m).query(queryString)
-                .initialBinding(map)
+                .substitution(map)
                 .build() ) {
             ResultSet rs = qExec.execSelect();
             while(rs.hasNext()) {
@@ -221,11 +188,7 @@ public class TestAPI
         }
     }
 
-    /**
-     * Initial binding substitution happens before optimization so initial 
bindings can make a semantically always false query into one that can return 
true
-     */
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings5() {
+    @Test public void testSubstitution5() {
         // From JENA-500
         Query query = QueryFactory.create(
                 "ASK\n" +
@@ -236,19 +199,15 @@ public class TestAPI
 
         Model model = ModelFactory.createDefaultModel();
         model.add(OWL.Thing, RDF.type, OWL.Class);
-        QuerySolutionMap initialBinding = new QuerySolutionMap();
-        initialBinding.add("a", 
ResourceFactory.createResource("http://constant";));
-        try ( QueryExecution qExec = 
QueryExecution.model(model).query(query).initialBinding(initialBinding).build() 
) {
+        QuerySolutionMap substitution = new QuerySolutionMap();
+        substitution.add("a", 
ResourceFactory.createResource("http://constant";));
+        try ( QueryExecution qExec = 
QueryExecution.model(model).query(query).substitution(substitution).build() ) {
             boolean result = qExec.execAsk();
             assertTrue(result);
         }
     }
 
-    /**
-     * Initial binding substitution happens before optimization so initial 
bindings can make a semantically always false query into one that can return 
true
-     */
-    @SuppressWarnings("removal")
-    @Test public void testInitialBindings6() {
+    @Test public void testSubstitution6() {
         // From JENA-500
         Query query = QueryFactory.create(
                 "ASK\n" +
@@ -259,23 +218,23 @@ public class TestAPI
 
         Model model = ModelFactory.createDefaultModel();
         model.add(OWL.Thing, RDF.type, OWL.Class);
-        QuerySolutionMap initialBinding = new QuerySolutionMap();
-        initialBinding.add("a", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
-        initialBinding.add("b", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
-        try ( QueryExecution qExec = 
QueryExecution.model(model).query(query).initialBinding(initialBinding).build() 
) {
+        QuerySolutionMap substitution = new QuerySolutionMap();
+        substitution.add("a", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
+        substitution.add("b", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
+        try ( QueryExecution qExec = 
QueryExecution.model(model).query(query).substitution(substitution).build() ) {
             boolean result = qExec.execAsk();
             assertTrue(result);
         }
     }
 
-    @Test public void testInitialBindings7() {
+    @Test public void testSubstitution7() {
         // JENA-1354
         Query query = QueryFactory.create("SELECT DISTINCT ?x WHERE {}");
         Dataset ds = DatasetFactory.create();
-        QuerySolutionMap initialBinding = new QuerySolutionMap();
-        initialBinding.add("a", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
+        QuerySolutionMap substitution = new QuerySolutionMap();
+        substitution.add("a", 
ResourceFactory.createTypedLiteral(Boolean.TRUE));
         try ( QueryExecution qExec = QueryExecution
-                .dataset(ds).query(query).substitution(initialBinding).build() 
) {
+                .dataset(ds).query(query).substitution(substitution).build() ) 
{
             assertFalse(qExec.execSelect().next().contains("a"));
         }
     }
@@ -340,24 +299,6 @@ public class TestAPI
     }
 
 
-//    // Execute a test both with and without regex optimization enabled
-//    // Check the number of results
-//    private void XexecRegexTest(int expected, String queryString)
-//    {
-//        Object b = ARQ.getContext().get(ARQ.enableRegexConstraintsOpt);
-//        try {
-//            ARQ.getContext().set(ARQ.enableRegexConstraintsOpt, "false");
-//            int count1 = queryAndCount(queryString);
-//            ARQ.getContext().set(ARQ.enableRegexConstraintsOpt, "true");
-//            int count2 = queryAndCount(queryString);
-//            assertEquals("Different number of results", count1, count2);
-//            if ( expected >= 0 )
-//                assertEquals("Unexpected number of results", expected, 
count1);
-//        } finally {
-//            ARQ.getContext().set(ARQ.enableRegexConstraintsOpt, b);
-//        }
-//    }
-
     // ARQ Construct Quad Tests:
     // Two types of query strings: a) construct triple string; b) construct 
quad string;
     // Two kinds of query methods: 1) execTriples(); 2) execQuads();
diff --git 
a/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java
 
b/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java
index 932360d5f9..0c4d8ff7ed 100644
--- 
a/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java
+++ 
b/jena-arq/src/test/java/org/apache/jena/sparql/modify/AbstractTestUpdateGraph.java
@@ -36,9 +36,6 @@ import org.apache.jena.query.QueryException;
 import org.apache.jena.query.QueryFactory;
 import org.apache.jena.sparql.core.DatasetGraph;
 import org.apache.jena.sparql.core.Quad;
-import org.apache.jena.sparql.core.Var;
-import org.apache.jena.sparql.engine.binding.Binding;
-import org.apache.jena.sparql.engine.binding.BindingFactory;
 import org.apache.jena.sparql.exec.UpdateExec;
 import org.apache.jena.sparql.graph.GraphFactory;
 import org.apache.jena.sparql.modify.request.*;
@@ -251,31 +248,7 @@ public abstract class AbstractTestUpdateGraph extends 
AbstractTestUpdateBase
         assertFalse(graphContains(gStore.getGraph(graphIRI), t));
     }
 
-    @Test
-    public void testModifyInitialBindings() {
-        DatasetGraph gStore = getEmptyDatasetGraph();
-        defaultGraphData(gStore, data12());
-        namedGraphData(gStore, graphIRI, GraphMemFactory.createDefaultGraph());
-
-        Binding initialBinding = BindingFactory.binding(Var.alloc("o"), o1);
-
-        UpdateModify modify = new UpdateModify();
-        Element element = QueryFactory.createElement("{ ?s <http://example/p> 
?o }");
-        modify.setElement(element);
-
-        modify.getInsertAcc().addQuad(new Quad(graphIRI, triple1));
-        modify.getDeleteAcc().addTriple(SSE.parseTriple("(?s 
<http://example/p> ?o)"));
-        modify.getDeleteAcc().addQuad(SSE.parseQuad("(<http://example/graph> 
?s <http://example/p> ?o)"));
-        UpdateAction.execute(modify, gStore, initialBinding);
-
-        assertFalse(graphEmpty(gStore.getGraph(graphIRI)));
-        assertFalse(graphEmpty(gStore.getDefaultGraph()));
-        assertTrue(graphContains(gStore.getGraph(graphIRI), triple1));
-        assertTrue(graphContains(gStore.getDefaultGraph(), triple2));
-        assertFalse(graphContains(gStore.getDefaultGraph(), triple1));
-    }
-
-    @Test
+        @Test
     public void testCopy() {
         // Use blank nodes (will expose any problems in serialization when 
spill
         // occurs)
diff --git 
a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/SparqlValidation.java
 
b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/SparqlValidation.java
index 1ceffdbcf2..c6cc0f0b11 100644
--- 
a/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/SparqlValidation.java
+++ 
b/jena-shacl/src/main/java/org/apache/jena/shacl/engine/constraint/SparqlValidation.java
@@ -96,7 +96,6 @@ import org.apache.jena.sparql.util.ModelUtils;
     }
 
     /** return true if the validation is "conforms" */
-    @SuppressWarnings("removal")
     private static boolean validateMap(ValidationContext vCxt, Graph data, 
Shape shape,
                                         Node focusNode, Path path, Node 
valueNode,
                                         Query _query, Map<Parameter, Node> 
parameterMap,
@@ -133,7 +132,7 @@ import org.apache.jena.sparql.util.ModelUtils;
             DatasetGraph dsg = 
DatasetGraphFactory.createGeneral(model.getGraph()); // Dataset by links.
             dsg.addGraph(shapesGraphResource.asNode(), shape.getShapeGraph());
             Dataset ds = DatasetFactory.wrap(dsg);
-            qExec = 
QueryExecution.create().query(query).dataset(ds).initialBinding(qsm).build();
+            qExec = 
QueryExecution.create().query(query).dataset(ds).substitution(qsm).build();
         }
 
         // ASK validator.
diff --git 
a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/EvalSparql.java 
b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/EvalSparql.java
index 67e6302d56..244a154058 100644
--- a/jena-shacl/src/main/java/org/apache/jena/shacl/validation/EvalSparql.java
+++ b/jena-shacl/src/main/java/org/apache/jena/shacl/validation/EvalSparql.java
@@ -50,7 +50,6 @@ public class EvalSparql {
 
     private static boolean USE_QueryTransformOps = true;
 
-    @SuppressWarnings("removal")
     public static Collection<Node> evalSparqlComponent(Graph data, Node node, 
SparqlComponent sparqlComponent) {
         checkForRequiredParams(data, node, sparqlComponent);
 
@@ -70,7 +69,7 @@ public class EvalSparql {
             // Done with pre-binding.
             Model model = ModelFactory.createModelForGraph(data);
             QuerySolutionMap qsm = parametersToPreBinding(model, node, 
sparqlComponent.getParams());
-            try ( QueryExecution qExec = 
QueryExecution.create().query(query).model(model).initialBinding(qsm).build() ) 
{
+            try ( QueryExecution qExec = 
QueryExecution.create().query(query).model(model).substitution(qsm).build() ) {
                 return evalSparqlOneVar(qExec);
             }
         }
diff --git 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/modify/UpdateEngineTDB.java 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/modify/UpdateEngineTDB.java
index 7f1cba7613..4e06efc8ef 100644
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb1/modify/UpdateEngineTDB.java
+++ b/jena-tdb1/src/main/java/org/apache/jena/tdb1/modify/UpdateEngineTDB.java
@@ -19,7 +19,6 @@
 package org.apache.jena.tdb1.modify;
 
 import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.engine.binding.Binding ;
 import org.apache.jena.sparql.modify.UpdateEngine ;
 import org.apache.jena.sparql.modify.UpdateEngineFactory ;
 import org.apache.jena.sparql.modify.UpdateEngineMain ;
@@ -29,12 +28,8 @@ import org.apache.jena.tdb1.store.DatasetGraphTDB;
 
 public class UpdateEngineTDB extends UpdateEngineMain
 {
-    public UpdateEngineTDB(DatasetGraphTDB graphStore, Binding inputBinding, 
Context context)
-    { super(graphStore, inputBinding, context) ; }
-    
-
     // ---- Factory
-    public static UpdateEngineFactory getFactory() { 
+    public static UpdateEngineFactory getFactory() {
         return new UpdateEngineFactory()
         {
             @Override
@@ -43,11 +38,15 @@ public class UpdateEngineTDB extends UpdateEngineMain
             }
 
             @Override
-            public UpdateEngine create(DatasetGraph graphStore, Binding 
inputBinding, Context context) {
-                return new UpdateEngineTDB((DatasetGraphTDB)graphStore, 
inputBinding, context) ;
+            public UpdateEngine create(DatasetGraph graphStore, Context 
context) {
+                return new UpdateEngineTDB((DatasetGraphTDB)graphStore, 
context) ;
             }
         } ;
     }
 
     public static void register() { 
UpdateEngineRegistry.get().add(getFactory()) ; }
+
+    public UpdateEngineTDB(DatasetGraphTDB graphStore, Context context)
+    { super(graphStore, context) ; }
+
 }
diff --git 
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/modify/UpdateEngineTDB.java 
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/modify/UpdateEngineTDB.java
index 8236c0d8c6..0d8a76998c 100644
--- a/jena-tdb2/src/main/java/org/apache/jena/tdb2/modify/UpdateEngineTDB.java
+++ b/jena-tdb2/src/main/java/org/apache/jena/tdb2/modify/UpdateEngineTDB.java
@@ -19,7 +19,6 @@
 package org.apache.jena.tdb2.modify;
 
 import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.engine.binding.Binding;
 import org.apache.jena.sparql.modify.UpdateEngine;
 import org.apache.jena.sparql.modify.UpdateEngineFactory;
 import org.apache.jena.sparql.modify.UpdateEngineMain;
@@ -29,10 +28,6 @@ import org.apache.jena.tdb2.store.DatasetGraphTxn;
 
 public class UpdateEngineTDB extends UpdateEngineMain
 {
-    public UpdateEngineTDB(DatasetGraphTxn graphStore, Binding inputBinding, 
Context context)
-    { super(graphStore, inputBinding, context); }
-
-
     // ---- Factory
     public static UpdateEngineFactory getFactory() {
         return new UpdateEngineFactory()
@@ -43,11 +38,14 @@ public class UpdateEngineTDB extends UpdateEngineMain
             }
 
             @Override
-            public UpdateEngine create(DatasetGraph dataset, Binding 
inputBinding, Context context) {
-                return new UpdateEngineTDB((DatasetGraphTxn)dataset, 
inputBinding, context);
+            public UpdateEngine create(DatasetGraph dataset, Context context) {
+                return new UpdateEngineTDB((DatasetGraphTxn)dataset, context);
             }
         };
     }
 
     public static void register() { 
UpdateEngineRegistry.get().add(getFactory()); }
+
+    public UpdateEngineTDB(DatasetGraphTxn graphStore, Context context)
+    { super(graphStore, context); }
 }

Reply via email to